- 05 Dec, 2023 40 commits
-
-
Kirill Smelkov authored
Currently only zc.recipe.egg:custom supports setting environment variables, and zc.recipe.egg:develop does not. My motivation for allowing setting environment in :develop is wendelin.core https://lab.nexedi.cn/nexedi/slapos/blob/b5faab3b/component/wendelin.core/buildout.cfg There we have [wendelin.core] part which installs released egg from pypi, and [wendelin.core-dev] part which installs wendelin.core from its latest git version via zc.recipe.egg:develop . The problem is, wendelin.core for setup.py to work, needs git available, and with slapos we usually don't have git available on base system, so we build it by our own and do something like [wendelin.core-dev] recipe = zc.recipe.egg:develop environment = wendelin.core-dev-env [wendelin.core-dev-env] # wendelin.core-dev needs git to build PATH = ${git:location}/bin:%(PATH)s and the problem is environment does not currently work for zc.recipe.egg:develop, and thus git is not found -> build fails. ~~~~ In order to support environment in :develop, we just move environment setting/restoring bits from Custom to Base, and provide Base.install() which uses this bits. Custom & Develop .install() becomes ._install() which gets hooked into Base.install() . I've tested the patch only manually, because currently automated tests are broken in a lot of places for slapos.buildout and zc.recipe.egg . /cc @kazuhiko, @Tyagov
-
Kazuhiko Shiozaki authored
- Support on the fly patches in zc.recipe.egg by ``EGGNAME-patches``, ``EGGNAME-patch-options``, ``EGGNAME-patch-binary`` (or ``patch-binary``) and ``EGGNAME-patch-revision`` options. - Support on the fly patches in zc.recipe.egg:custom by ``patches``, ``patch-options``, ``patch-binary`` and ``patch-revision`` options. (options ``EGGNAME-*`` are also supported as well).
-
Kazuhiko Shiozaki authored
-
Michael Howitz authored
Fixes #484. (cherry picked from commit 5aa3e5bd)
-
Julien Muchembled authored
-
Julien Muchembled authored
This is a rewrite of commit 6e4b8efe ("Support network cache in Download.download()").
-
Julien Muchembled authored
Like for URL that contain credentials, we still skip auth challenge because it's faster and: - we only support one auth scheme (basic) - netrc provides no way to specify realms, which seem anyway to be less and less used (https://stackoverflow.com/q/69303610 reports that recent browsers don't display them anymore) See merge request nexedi/slapos.buildout!25
-
Julien Muchembled authored
- Py3: stop using legacy API of urllib.request and fix download of http(s) URLs containing user:passwd@ - Py2: avoid OOM when downloading huge files This is implemented as a method in case we want to make it configurable via [buildout].
-
Julien Muchembled authored
To be dropped once all buildout in the wild are able to upgrade to a version that supports new names in expression of conditional sections (see previous commit).
-
Julien Muchembled authored
Adding new names for expression is currently not possible because buildout aborts before it tries to upgrade (in-place or bootstrap).
-
Jason Madden authored
(cherry picked from commit f1589378)
-
Julien Muchembled authored
For example, existing values were not enough to distinguish 'arm-linux-gnueabi' from 'arm-linux-gnueabihf'. The 'multiarch' value is the output of $CC -dumpmachine where CC defaults to 'gcc'. See also https://wiki.debian.org/Multiarch/Tuples
-
Julien Muchembled authored
Sometimes, most parts are reinstalled for a reason that the user didn't think about and it can take time to understand why. Explaining for all parts would be too verbose and useless because many are reinstalled just because their dependencies changed.
-
Julien Muchembled authored
This alternate URL is used in case of HTTPError with the main one. In any case, the main URL is used for both downloading & uploading from/to networkcache. This will be exposed by slapos.recipe.build:download* and slapos.recipe.cmmi recipes.
-
Julien Muchembled authored
An optimization is to avoid temporary file when possible: a rename (or hard link) is not always possible (different mount points). Another one is to not check md5sum twice when using cache file. Fall-back mode is ignored if an MD5 checksum is given. In case of checksum mismatch for a cached path, remove it and download again, mainly to cover the following cases: - the url content changes and the user updates the checksum - buildout killed while downloading directly to cache (see above optimization) - shutil.copyfile is interrupted
-
Julien Muchembled authored
-
Julien Muchembled authored
-
Julien Muchembled authored
Egg is install from wheel the requested version ends with :whl This replaces: <removed>
-
Thomas Gambier authored
-
Jérome Perrin authored
When recipes mutate the options, we should not allow invalid syntax otherwise it gets written in .installed.cfg and generate invalid configparser syntax.
-
Jérome Perrin authored
When recipe mutate options, options values are written to .installed.cfg without escaping buildout substitution syntax, so if a recipe sets an option value that could be interpreted as a buildout substitution, it is written as is in .installed.cfg. This can be a problem if options read from _read_installed_part_options are accessed, like it's the case with slapos patched buildout which saves installed options after an error with part installation or after each part installation when running in verbose mode.
-
Jérome Perrin authored
python ZipFile module does not support updating an entry in place, instead make a new zip file and copy all entries.
-
Godefroid Chapelle authored
-
Jason Madden authored
On Python 3, these made the build output very hard to read (e.g., https://travis-ci.org/buildout/buildout/jobs/394026829) On Python 3.7, these could actually break the doctests. Closing the files should get us closer to being able to pass the tests with PyPy.
-
Marius Gedminas authored
Add a RENormalizer so the easy_install.txt will be happy with scripts generated on Python 2 (using open(..., 'U')) and on Python 3 (using just open(...)). This was suggested by @sallner. (cherry picked from commit 2cf42066)
-
Laurence Rowe authored
Python 3.7 began warning about open's 'U' mode. Universal newline mode (newline=None) is default in Python 3 so avoid specifying it on Python 3. (cherry picked from commit 978a6af9)
-
Julien Muchembled authored
-
Julien Muchembled authored
fixup! Apply += & -= in correct order with respect to extends If a.cfg extends b.cfg and both contain [a], it was already not possible for a.cfg:[a] to combine <= & +=. But it worked when a.cfg:[a] does not extend anything, and commit 161fb191 broke that. The only proper way to solve all this seems to process <= before += & -=. But since processing <= while extending files would cause other issues, we'd rather process +=&-= when initializing parts.
-
Julien Muchembled authored
This is useful when using OS Python & eggs. Useless for SlapOS.
-
Julien Muchembled authored
-
Julien Muchembled authored
The version of Python should not affect the behaviour of a recipe. Anyway, it was already ignored for DEVELOP_DIST eggs. This makes the slapos mechanism to share parts more efficient. And with the upcoming changes in buildout & slapos.recipe.cmmi, there would be no way for the slapos.reboostrap extension to prevent everything from being rebuilt when reboostrapping to a different version of Python, if bootstrap parts are shared. The monkey-patch by slapos.reboostrap now becomes useless.
-
Kazuhiko Shiozaki authored
-
Julien Muchembled authored
-
Julien Muchembled authored
-
Kazuhiko Shiozaki authored
-
Jérome Perrin authored
When buildout encounter an error, program exists with error code 1, this should also be the case when exiting from a debugger session when running with -D option. /reviewed-on nexedi/slapos.buildout!17
-
Jérome Perrin authored
When a recipe is developed in a git working copy, .git administrative database folder should be ignored, like we did with CVS and svn. /reviewed-on nexedi/slapos.buildout!14
-
Yusei Tahara authored
_install_and_load is slow, using cache saves time when there are many sections.
-
Julien Muchembled authored
Contrary to bash, dash filters out environment variables containing '-' characters. And for example, /bin/sh is dash on Debian. <rebased>
-
Kazuhiko Shiozaki authored
-