Commit Graph

56 Commits

Author SHA1 Message Date
Zuul 0842d310b3 Merge "Fix building python-nss==1.0.1 for Focal images" 2024-04-26 19:49:52 +00:00
Vladimir Kozhukalov 3fa460580d Fix building python-nss==1.0.1 for Focal images
Change-Id: I7c6e676087b4ed1f8acc9dd39558dfa79e1b0dff
2024-04-24 19:25:57 -05:00
ricolin eb2ce826ef Revert "Remove uwsgi by default"
This reverts commit 39aaeb3f32.

Change-Id: Ib607f3ecd5ada46ffe724fbc0d245d08f2a0fe01
2024-01-18 21:01:12 +08:00
Vladimir Kozhukalov 2f88cf4644 Fix build of those wheels which depend on python-nss
In the https://review.opendev.org/c/openstack/loci/+/888351
we build python-nss separately because we need to
patch it before building. Then we moved the result
.whl file to the root directory.

Now let's add --find-links / to all pip wheel commands.

Change-Id: I5faca92eb229af989b4bf63e6e044e49c7bacb5a
2023-07-13 03:25:03 +03:00
Vladimir Kozhukalov ce9fea8fe6 Fix building python-nss on Ubuntu Jammy
The libnss3 headers in Ubuntu Jammy are compatible
with python-nss===1.0.1. Ubuntu Jammy itself
provides the binary package python-nss and
they apply the patch that renames RSAPublicKey/DSAPublicKey
types into PyRSAPublicKey/PyDSAPublicKey.

This change applies the same patch before
building python-nss wheel.

Change-Id: I5211aac7b6a3bbc1f1b74e8662170dc8932525f9
2023-07-12 22:45:24 +03:00
Sam Yaple 39aaeb3f32 Remove uwsgi by default
Not all deploys will use uwsgi by default but there is no way to disable
it currently. Since uwsgi itself isnt truly a python app (just a C
program with a python building shim).

The user will still be able to install binary package based uwsgi or
include uwsgi in the extra pip packages to install if they wish to.

Related-Id: I76612794c1ba8dbc45b62dff00cee43c6ba10a34
Change-Id: I15008d41633168fda31e061003ccf4681cade68e
2022-11-18 16:44:58 +00:00
Gage Hugo 23a95c5e19 Remove python2 references from requirements.sh
This change removes the python 2 references and workarounds from
the requirements.sh script. This is part of the effort to remove
the python 2 uses and workarounds from the loci repository.

Change-Id: I23271067587dff938c3bcce4f798db8dc33a428b
2022-04-27 08:19:16 -05:00
Gage Hugo 8b514187cc Remove trollius workaround
The workaround for trollius appears to be no longer needed since
openstack has moved away from python 2. This change removes the
logic to handle removing trollius since it's no longer present
in upper-constraints.

Change-Id: Icd832edffec2cea907276480fd8c67e44459ad90
2022-04-26 20:31:51 +00:00
Zuul 279af7f51b Merge "aarch64: stop trying to build confluent-kafka" 2022-03-01 23:37:05 +00:00
Mohammed Naser a7a31b18c4 aarch64: stop trying to build confluent-kafka
This package requires a version of libfdkafka-dev that is too old inside
the distributinos to be able to build the wheel.  In amd64, it has
wheels on PyPI so it doesn't attempt to build it but it fails to build
it inside an aarch64 system.

Change-Id: If0a90919cdddaf91a67ce96646dea87cf0b9632c
2022-03-01 21:41:48 +00:00
Mohammed Naser 0dd8eb61b6 uwsgi: fix occasional failures
Without CPUCOUNT=1, uwsgi frequently fails to build in
certain environments.  Once this was implemented, the
builds were stable again.

Change-Id: If85687046297c582b39ca591b21e93c76b7de876
2022-03-01 21:41:36 +00:00
Andrii Ostapenko a61c73e9b2
Update gates
* Use bionic for ussuri build as it's the latest supported
release [0][1].
* Switch to centos 8 to run master [1][2].
* Switch default base image to ubuntu:focal.

[0] https://governance.openstack.org/tc/reference/runtimes/ussuri.html
[1] https://governance.openstack.org/tc/reference/runtimes/victoria.html
[2] https://governance.openstack.org/tc/reference/runtimes/train.html

Change-Id: I9a70aebd9636e170c6e04398356933668a2bfbba
Signed-off-by: Andrii Ostapenko <andrii.ostapenko@att.com>
2021-10-12 18:30:09 -06:00
Andrii Ostapenko c19db02c6d
Fix setup_pip.sh and remove xenial based builds
Also fix monasca bindep.

Change-Id: I2b5b1a31165e98ce71380824e8f57af8906701c6
Signed-off-by: Andrii Ostapenko <andrii.ostapenko@att.com>
2021-07-29 17:27:51 -06:00
Andrii Ostapenko a26fa6fb98
Add support for unnamed constraints to loci with new pip resolver
New pip resolver is being released with pip 20.3 and does not support
unnamed constraints. Instead of using pip functionality to handle
unnamed constraints we'll instead first build corresponding wheels,
determine their versions and substitude unnamed constraints with named
ones in upper-constraints.txt. They'll be fed to general wheel build
afterwards and used by wheel bundle consumer.

Change-Id: Ie2acf93d4c91c6bbf3a3777b6ee697253207e2ef
Signed-off-by: Andrii Ostapenko <andrii.ostapenko@att.com>
2020-08-07 18:34:38 -05:00
Andrii Ostapenko af1cdd69bf
Build/download all wheels including dependencies
If KEEP_ALL_WHEELS flag is not False, keep all packages specified in
upper-constraints.txt together with their dependencies.

Change-Id: I79051757780eabba15a2995fa8eaece0ff459f9e
Signed-off-by: Andrii Ostapenko <andrii.ostapenko@att.com>
2020-08-07 18:33:39 -05:00
Andrii Ostapenko f041966a8c Fix KEEP_ALL_WHEELS flag usage
Change-Id: Ia1c4774aede69f83e1f43c7b511e176edc10cc9e
Signed-off-by: Andrii Ostapenko <andrii.ostapenko@att.com>
2020-08-06 19:45:06 +00:00
Andrii Ostapenko 3e78a46caf
Workaround unicode issue with py2 and scandir==1.4
Also move manila ocata to eol.

Change-Id: I0282b57ab27a51698f55294037dd3429d6a11416
Signed-off-by: Andrii Ostapenko <andrii.ostapenko@att.com>
2020-08-01 00:37:22 -05:00
Zuul a08b229441 Merge "Avoid storing cache in pip install for requirements image" 2020-07-24 05:33:36 +00:00
Vasyl Saienko 75bba38822 Add KEEP_ALL_WHEELS flag
The patch adds KEEP_ALL_WHEELS set to False by default.
The flag allows to do not remove wheels after built of
requirement image. This is useful where reproducibility
of builds with the same WHEEL image is needed as will allow
to keep 3rd party libs (not specified in upper-constraints.txt)
file with same versions.

Change-Id: I00fd3df2ba46072b3f19c9d08f69bb3c1f53d01f
2020-07-13 18:35:26 +00:00
Andrii Ostapenko a7b46b1aa5 Avoid storing cache in pip install for requirements image
If additional pip packages are provided for requirements image, they
will be installed into system before building wheels and, in addition,
wheel stored to local pip cache. Later, during wheels creation, this
cached wheel will be used and then deleted as system will think that
package is available in wheel form.

This only matters when package is not available in wheel form and needs
to be a part of requirements image.

Change-Id: I6d5410da02ff9717418de55876162d34b6185e1d
2020-01-27 18:48:42 +00:00
Zuul 3c3caa0765 Merge "Revert "Remove explict enum-compat"" 2019-08-16 15:58:05 +00:00
Jean-Philippe Evrard 435bd3731d Revert "Remove explict enum-compat"
This reverts commit acfd446c03.
The workarounds discussed here are implemented in ocata/pike,
Stein and above doesn't need enum-compat. However Rocky
would still fail without this.

Change-Id: I83fe0c46cad24d9a1c64c4047429bb3491791fe5
2019-08-14 12:06:27 +00:00
Zuul c7a68ed0d5 Merge "Remove explict enum-compat" 2019-08-13 01:05:56 +00:00
Jean-Philippe Evrard c64ea7529b Bypass trollius building
Trollius cannot build (not present on pypi anymore), and is only
used for Zaqar. If we don't bypass this, we can't build LOCI
in older branches. I have proposed fixes in requirements and
zaqar, when these merge in the eldest branches, we can revert
this.

Change-Id: Id1a5413ce36a82063301c011b7adf8d8ac5d06ba
2019-07-30 09:35:11 +02:00
Sam Yaple acfd446c03
Remove explict enum-compat
This bug was fixed in requirements repo a while back.
upper-constraints.txt contains a constraint for enum-compat now and we
do not need to explicity call it out anymore.

Related-Id: I7c8bfbb89f13db1c251e762dfaf2020fa1f2fdc8
Change-Id: I42b9f3d253e2062a5e2ec92ae24be88d24617f3f
2019-05-29 18:13:21 -04:00
Sam Yaple 370eecee18
Move comment to correct location
Git blame shows this not shifting over time, moving it to make more
sense

Change-Id: Iaadaf924bf38465ca70f685cb0e80d1e36c29539
2019-05-29 18:13:21 -04:00
Sam Yaple 87d96f89b1
Remove unused vars
Prior usage of these was to filter wheels upstream.

Change-Id: I0e5c8a2ccad71df873dbea70c5f20a74c9d031b7
2019-05-29 18:13:17 -04:00
Jean-Philippe Evrard 97ef1b74be Remove pywbem to blacklist M2Crypto
M2Crypto wheel building (tested on 0.33 and 0.31) requires the openssl
devel libraries. Yet, building the wheel with the default libraries
on CentOS and Ubuntu fails, due to an incompatible version shipped
by default.

M2Crypto is only used for some specific cinder drivers, and
can probably be installed from distro packages as a post build
action, if necessary. Alternatively, using the python3 version of
pywbem doesn't need M2Crypto.

Change-Id: I0ae1df6a71bbaabd21c2dfcfd1ffe847a811e008
2019-05-23 07:33:28 +00:00
Jean-Philippe Evrard b901ac0bed Remove pylxd before 2.2.7
Any pylxd version before 2.2.7 fails to build now that
urllib3 1.25 is out. This removes them, and therefore
allows us to build requirements for older openstack
branches than Rocky.

See also https://review.opendev.org/#/c/655498/

Change-Id: I632f648f59020a2010ffe05f59ca634461752997
2019-04-25 11:17:39 +00:00
Jean-Philippe Evrard 1dbc250a22 Revert "For OpenSUSE Leap, use more recent version of zVMCloudConnector"
Now that requirements patch has merged, we can remove this hack.
This reverts commit 329e83a6e3.

Depends-On: https://review.openstack.org/#/c/641738/
Change-Id: I2b3f6fc95df6e15077d280436ca5ea06715b3c5a
2019-03-08 08:44:55 +01:00
Jiří Suchomel 329e83a6e3 For OpenSUSE Leap, use more recent version of zVMCloudConnector
When building requirements image, contraints try to bring in 0.3.5
version of zVMCloudConnector, however this one requires python
version at most 3.5. However Leap 15 only has python 3.6.

Change-Id: I15f57006246059ead08d2cbc4ee494b3891e2081
2019-03-07 21:49:04 +01:00
Zuul 6082b0b70b Merge "Remove python-qpid-proton 0.14.0 build" 2019-02-15 16:17:49 +00:00
Jean-Philippe Evrard fd832fafe8 Remove python-qpid-proton 0.14.0 build
At least one distro (ubuntu xenial)
does not have the necessary packages in its default repositories
for building python-qpid-proton 0.14.0 (libqpid-proton2-dev doesn't provide
the necessary qpid-proton required in the wheel build).

When building the wheel, the bundling of qpid-proton fails
due to apache mirrors having removed this old version.

This prevents the newton branch to build.

Example pip wheel log:
```
Collecting python-qpid-proton===0.14.0 (from -r requirements.txt (line 1))
  Using cached d39f0e805fdda8ebc0eae03d2647f6/python-qpid-proton-0.14.0.tar.gz
Building wheels for collected packages: python-qpid-proton
  Running setup.py bdist_wheel for python-qpid-proton ... error
  Complete output from command /usr/bin/python -u -c (redacted)
  running bdist_wheel
  running build
  running build_ext
  running configure
  Did not find libqpid-proton via pkg-config:
  Bundling qpid-proton into the extension
  fetching http://www.apache.org/dist/qpid/proton/0.14.0/qpid-proton-0.14.0.tar.gz into build/bundled
  error: HTTP Error 404: Not Found
```

Change-Id: I1b3708da4cefa7e15ec5f5623e182a3258508fc7
2018-12-11 14:31:24 +00:00
Chris Hoge 7fd814b15e Fix error reporting in requirements.sh script
The 'echo %1' in requirements.sh did just that, echoed %1 without
reporting the source of the pip error. This patch changes this
command to 'cat $1', which dumps the content of the file referred
to by $1. This content is the pip package to install. Upon failure,
the user can know exactly which pip build failed and search for the
relevant error message in the build log.

Change-Id: Ieb5c928c31f1a6673152a0b1a15f6efe21cc063e
2018-12-10 23:12:21 -08:00
Thippaiah, Balachandra (bt061u) 88df24b24d Add PIP_WHEEL_ARGS and use PIP_ARGS for pip install
This ps adds new argument PIP_WHEEL_ARGS
 - allows additional parameters for pip wheel
 - defaults to PIP_ARGS
Also use PIP_ARGS with all pip installs

Useful when building requirements image with local pip mirrors

Change-Id: I43c6b921467150509d013554aaa1983f30abedff
2018-11-12 10:44:46 -05:00
Chris Hoge d0ef425ef6 Clean up comment style and identify bugs and workarounds
Cleans up the comment style to remove author names and clarify
the comment as it relates to the code. Using the NOTE (NAME):
format is redundant and takes away attention from the purpose
of documenting why an action is being taken.

Also updates status of TODO and FIXME items, including removing
code was a workaround fixed by a recent patch.

Change-Id: I2e087be1e204c618d1dbe499b3f69eae34ce656f
2018-10-25 11:33:25 -07:00
Andrii Ostapenko ce0c76813e Install pip packages during requirements build
Install packages from PIP_PACKAGES before wheel build to be able
to limit dependencies specified in "setup_requires" of packages
listed in upper-constraints.txt, that pip has no way to control.
This is intended to work around https://github.com/lxc/pylxd/issues/308
or similar issues.

Change-Id: I36bd4347727b4c7f4beea2cdba6674445fbb4ca4
2018-10-19 14:22:29 +00:00
Jean-Philippe Evrard 06b5321eda Remove bindep pin
Without this patch, we are stuck to an old version of bindep
and distro. There is no reason to pin or patch bindep anymore.

This is a problem because more recent distributions like
opensuse leap 15 will have profile detection issues.

This should fix it.

Change-Id: Ia3637b3801590cda92be433ca3ba79f62e15512a
2018-07-26 20:27:03 +02:00
Marcin Juszkiewicz c4fe11104f requirements.sh: ignore scipy and scikit-learn
'scikit-learn' requires 'numpy' and 'scipy' packages. Which take long
time to build.

We need 'numpy' for nova image but can ignore rest (they are needed by
'monasca_analytics' project we do not use).

On x86-64 architecture all those packages come as binaries from Pypi.

Change-Id: I36b6ca9d094f83d48e7fa41a7818441169bd04e6
2018-07-25 19:15:41 +00:00
Marcin Juszkiewicz f24da65571 requirements: drop package install phase
This script is called from install.sh which does that already.

Change-Id: Ie0dccafcd69ae20f90682059b2695f4600d651ef
2018-07-25 15:42:34 +01:00
Sam Yaple 0d4142f12b
Fix enum-compat in a better way
Upstream requirements generator has a bug and is not pulling in
enum-compat. lower-contraints.txt has it strangely. This is the quick
fix to the issue.

Change-Id: I7c8bfbb89f13db1c251e762dfaf2020fa1f2fdc8
2018-05-18 11:51:54 -04:00
Sam Yaple 1e7370e22b
Switch to bindep 2.6.0
Change-Id: Ice88bfc7cc45a1b05c2f55d9df92f88fe13fd599
2018-02-08 02:27:22 -05:00
Sam Yaple 70717c7535
Revert "Ignore wheels that exist natively whl upstream"
This reverts commit b3b26b7b4b.

Change-Id: I892f9c0731cd5df6b9b227e7dffbfa68ed309a34
2017-12-20 16:37:16 -05:00
Sam Yaple f272aa3cd0
Fix requirements building
We were not failing when wheels failed to build. Implement a quick fix
for that issue

Change-Id: I934beb526caca90db93c01c8ec5ac9dd63d6ddc9
2017-12-14 01:53:33 -05:00
Sam Yaple f4e45ef2a3
Stop installing bindep via git
One of the claims we have made is that we can install in an airgapped
environemnt. This was true until we started installing master bindep to
take advantage of the new syntax.

Instead of installing master, we can just patch the file and remove the
patch when the new tag is created. Lets do that.

Change-Id: I7a86e6315c44e4e9aa050ce19865708dd6c90ff6
2017-12-04 16:17:04 -05:00
Sam Yaple b3b26b7b4b Ignore wheels that exist natively whl upstream
This prevents ~200MB of needless pypi downloading and speeds up the
build process, esspecially in environments without a PyPI mirror.

Change-Id: Icb36ad752923730f5daca22ef08455551e1161a8
2017-10-31 18:58:31 -04:00
Sam Yaple a4991d7715 Build cassandra-driver with concurrency
The cassandra driver is far and away the longest package we build. It
normally takes 3-4 minutes *after* all the other packages have built to
finish. The recommendation for this is to increase the build concurrency
with the variable above.

Change-Id: I3965f62525d509e8811ed65c599d55b558ce39e4
2017-10-31 18:53:59 -04:00
Zuul 2d10f49678 Merge "Add back debian support" 2017-10-31 22:05:57 +00:00
Sam Yaple 471ad839dd Add back debian support
We cannot build python-qpid-proton pip package on debian due to it
having 1.1.0 openssl. This seems like a lesser used package, so for now
we will just skip building it and give the world some time to resolve
the issue.

Change-Id: I4af88cb57ce2fc614d373c83cf3745c4aaaa5c7b
2017-10-31 03:03:14 -04:00
Sam Yaple e074cdf6d9 Only save compiled wheels
With this patch we stop trying to collect all possible packages we would
want and instead only save packages that we needed to build into wheels
ourselves because they were only distrubuted as source tarballs upstream

Doing it this way has a few advantages:
  * Reduced layer size to 50MB wheels from 250MB wheels
  * Can install additional packages that were not built into the wheels
image ahead of time (assuming they exist as wheels upstream)
  * Faster build times on slower WAN connections
  * Less I/O when building

We explicitly limit to binary installs with "--only-binary :all:" to
prevent any accidental source building.

This has no affect on building in an air-gapped environment. You would
already need a PyPI mirror to build in an air-gapped environment in the
first place.

Change-Id: I746d315ff642c951bbe798af7fbf951b5aa81a4f
2017-10-28 09:32:14 -04:00