| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Signed-off-by: Allen-Kristjan Päll <akpall+gentoo@fst.ee>
Closes: https://github.com/gentoo/portage/pull/1373
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
| |
Signed-off-by: Lucio Sauer <watermanpaint@posteo.net>
Closes: https://github.com/gentoo/portage/pull/1367
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Download packages to a custom location if it is configured
in binrepos.conf, instead of PKGDIR. If a custom download
location is not configured then inject downloaded packages
into PKGDIR as usual.
The binarytree download_required method should now be used
instead of the isremote method to check if download is
required, since a remote package may or may not be cached
in the custom location. The get_local_repo_location method
should be used to check if there is a custom download
location, and if there is then downloaded packages must
not be injected into PKGDIR.
If any packages from a repo with a custom download location
were injected into PKGDIR in the past, their identity will
be recognized and will not be re-downloaded to the custom
location.
Bug: https://bugs.gentoo.org/934784
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
| |
Rather than instead of / for EAPI 6 and below. This changes the
behaviour, but it is arguably not a breaking change, as no installations
are being dropped. The previous behaviour was highly likely to break
anyway.
Bug: https://bugs.gentoo.org/435066
Closes: https://github.com/gentoo/portage/pull/1319
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
/var/log/emerge.log doesn't "[contain] a log of all emerge output". This
commit changes this description to better reflect what emerge.log
contains:
- Packages that were built
- emerge's invocation (i.e. its command-line arguments)
Signed-off-by: Waldo Lemmer <waldolemmer1@gmail.com>
Closes: https://github.com/gentoo/portage/pull/1331
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The history of synced revisions is provided by a new
get_repo_revision_history function and corresponding
/var/lib/portage/repo_revisions file, with history
limit currently capped at 25 revisions. If a change
is detected and the current process has permission
to update the repo_revisions file, then the file will
be updated with any newly detected revisions.
For volatile repos the revisions may be unordered,
which makes them unusable for the purposes of the
revision history, so the revisions of volatile repos
are not tracked. This functions detects revisions
which are not yet visible to the current process due
to the sync-rcu option.
The emaint revisions --purgerepos and --purgeallrepos
options allow revisions for some or all repos to be
easily purged from the history. For example, the
emerge-webrsync script uses this emaint commmand to
purge the revision history of the gentoo repo when
the emerge-webrsync --revert option is used to roll
back to a previous snapshot:
emaint revisions --purgerepos="${repo_name}"
Bug: https://bugs.gentoo.org/924772
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In order to allow consistent and reproducible dependency calculations
during mixed source and binary updates, add a "frozen" binrepos.conf
attribute which will freeze binrepo index updates and cause messsages
to indicate that the repo is frozen rather than up-to-date:
Local copy of remote index is frozen and will be used.
This should only be set temporarily in order to guarantee consistent
and reproducible dependency calculations for mixed binary and source
updates.
Bug: https://bugs.gentoo.org/932739
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
| |
Raw carats are converted to circumflex characters which are not
searchable, so they need to be escaped. See groff_char(7).
Signed-off-by: Bryan Gardiner <bog@khumba.net>
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
| |
Signed-off-by: Alexey Gladkov <legion@kernel.org>
Closes: https://github.com/gentoo/portage/pull/1264
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
| |
Signed-off-by: Gábor Oszkár Dénes <gaboroszkar@protonmail.com>
Closes: https://github.com/gentoo/portage/pull/1291
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For system packages, always serialize install regardless of
parallel-install, in order to mitigate failures triggered
by fragile states as in bug 256616. For other packages,
continue to populate self._task_queues.merge, which will
serialize install unless parallel-install is enabled.
Fixes: 825db01b91a3 ("Add merge-wait FEATURES setting enabled by default")
Bug: https://bugs.gentoo.org/256616
Bug: https://bugs.gentoo.org/925213
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Support PROPERTIES=test_userpriv and a corresponding ALLOW_TEST=userpriv
to disable FEATURES=userpriv when running the test phase. This can be
used e.g. in dev-python/reflink that needs to be able to mount
filesystem on a loopback device for testing.
Bug: https://bugs.gentoo.org/924585
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Closes: https://github.com/gentoo/portage/pull/1274
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This this gates behind FEATURES=dedupdebug, and packages can
opt-out with RESTRICT=dedupdebug, though I'm not sure why a package
would need to opt this out, unless dwz could break something I'm not
aware of...
Bug: https://bugs.gentoo.org/906368
Signed-off-by: YiFei Zhu <zhuyifei1999@gmail.com>
Closes: https://github.com/gentoo/portage/pull/1245
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make the _accept_blocker_conflicts method always return
True when backtracking is enabled, so that backtracking
results will be identical regardless of options that
_accept_blocker_conflicts treats specially. This way,
conflicts will only be accepted when backtracking is
disabled or all backtracking tries have been exhausted.
Make --nodeps imply --backtrack=0, since backtracking
is only useful with dependencies.
Make _eliminate_rebuilds return early if there are
slot conflicts, since the merge list is invalid anyway,
and its possible that state inconsistencies could
trigger unexpected exceptions as in bug 922038. Make
the KeyError from bug 922038 a warning, and include
relevant information to help trace the inconsistency
back to the _eliminate_rebuilds method or some other
source like _solve_non_slot_operator_slot_conflicts.
Bug: https://bugs.gentoo.org/161422
Bug: https://bugs.gentoo.org/607252
Bug: https://bugs.gentoo.org/675748
Bug: https://bugs.gentoo.org/922038
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a new merge-wait FEATURES setting, enabled by default,
which prevents packages from being merged while other packages
are building. Previously, this behavior was already implemented
for packages that satisfy direct or indirect dependencies of
the system set. This feature can be disabled only for other
packages which do not satisfy direct or indirect dependencies
of the system set, in order to trade the possibility of random
build failures for greater parallelism.
Currently, it is known that having merge-wait disabled can
cause "random" build failures for builds using setuptools when
setuptools plugins are merged during the build.
Bug: https://bugs.gentoo.org/663324
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
| |
Signed-off-by: John Helmert III <ajak@gentoo.org>
|
|
|
|
|
|
| |
Thanks to codespell.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
| |
Signed-off-by: Florian Schmaus <flow@gentoo.org>
Closes: https://github.com/gentoo/portage/pull/1158
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
| |
Experience shows that 10 is too low and that in some cases a slighlty
higher number results in a successful dependency calculation.
Signed-off-by: Florian Schmaus <flow@gentoo.org>
Closes: https://github.com/gentoo/portage/pull/1127
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
| |
Bug: https://bugs.gentoo.org/915330
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
| |
In the presence of multiple parallel emerge jobs, i.e., emerge
-j<num>, it is good to limit the overall parallelism in the system via
its load average. This avoids overprovisioning the system with tasks
and losing performance due to an increased number of context switches.
Signed-off-by: Florian Schmaus <flow@gentoo.org>
Closes: https://github.com/gentoo/portage/pull/1072
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
| |
We recommend min(RAM/2GB, threads) nowadays because C++ projects may need
up to 2GB per job.
Bug: https://bugs.gentoo.org/821529
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
| |
It takes a dependency specification, not just a package name and version.
(e.g. it accepts USE flags, like app-misc/foo[x]).
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
| |
groff replaces normal tilde (~) with a weird "modifier" on output.
Use the escape sequence from groff_char(7) to avoid this.
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
Closes: https://github.com/gentoo/portage/pull/1094
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
| |
Right now this is somewhat suboptimal because the helper is only
called if FEATURES="binpkg-request-signature" is set, but existing
signatures are also verified otherwise.
Closes: https://github.com/gentoo/portage/pull/1085
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
|
|
|
|
|
|
|
| |
We support it as of recent (from today) commits.
Bug: https://bugs.gentoo.org/587484
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The description of the 'volatile' keyword in the 'repos.conf' section in the portage(5)
man page seems to be inconsistent.
I think the first two sentences correctly describe the behaviour of 'volatile' and
agree with the comments in portage/repository/config.py:
"Specifies whether a repository is volatile. Volatile repositories are assumed to
contain changes made outside of Portage. This prohibits optimizations from occurring
by assuming the integrity of the repository and its caches may be violated."
The remainder of the paragraph inverts the meaning of 'volatile' and does not
agree with the code in portage/repository/config.py:
"Disabling this option allows local changes to be made to the repository for
e.g. development safely. For git-synced repositories, Portage will not perform
destructive operations. Per default, repositories are considered volatile if
their directory is owned by either 'root' or 'portage' and if it is under
/var/db/repos. Otherwise, the repository is considered non volatile."
Bug: https://bugs.gentoo.org/911594
Signed-off-by: Christian Becke <christianbecke@web.de>
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
| |
This makes Portage PEP 517 compliant.
When building via meson-python, the man pages and logrotate config are
no longer included as there seems little point.
Bug: https://bugs.gentoo.org/910035
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove portage's usage of Linux version 1 cgroups, which are itself
superseded by version 2 cgroups. This basically reverts
b01a1b90d8c5 ("Add FEATURES=cgroup to isolate phase processes.").
Portage's usage of version 1 cgroups has caused some issues in the
past. For example https://bugs.gentoo.org/894398, where LXD got
confused by the existence of the version 1 cgroup created by portage.
Arguably, this could be considered a bug in LXD, but with
FEATURES=pid-sandbox, as better alternative to FEATURES=cgroup
exists. And removing the code for FEATURES=cgroup reduces portage's
code size, which is also a plus.
Bug: https://bugs.gentoo.org/894398
Signed-off-by: Florian Schmaus <flow@gentoo.org>
Reviewed-by: Michał Górny <mgorny@gentoo.org>
Closes: https://github.com/gentoo/portage/pull/1057
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ignore-mtime feature violates PMS:
https://projects.gentoo.org/pms/8/pms.html#x1-14500013.3.2
Allowing the package manager to arbitrarily modify timestamps of
installed files will lead to problems with several languages:
- Lisp (*.fasl must be newer than corresponding *.lisp)
- Emacs (*.elc must not be older than *.el)
- ghdl/VHDL (libraries check their mtimes)
- Python (*.pyc vs *.py, not sure if this one is still an issue)
If the PM does not preserve timestamps, there is no reasonable way to
work around this on the ebuild level. (Some horrible hacks existed in
the past, see for example impl-*-timestamp-hack in previous versions
of common-lisp-common*.eclass which used to overwrite its installed
files in pkg_postinst.)
This partially reverts commit 89703c688868c9eb8cd6115cb42ff92f0b9668b8.
Closes: https://bugs.gentoo.org/906978
See-also: https://bugs.gentoo.org/264130
Signed-off-by: Ulrich Müller <ulm@gentoo.org>
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
| |
Updates the mtime per default if the file is equal and adds a new
feature flag called "ignore-mtime" to ignore mtime updates if the
target file is equal.
Signed-off-by: gcarq <egger.m@protonmail.com>
Closes: https://github.com/gentoo/portage/pull/991
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PMS says that PVR is "Package version and revision (if any)".
https://projects.gentoo.org/pms/8/pms.html#x1-109001r1
Pkgcore and Paludis follow PMS, i.e. PVR includes an explicit -r0
(in other words, ${PF} is always equal to ${PN}-${PVR} for them).
The previous logic for PVR had been added in 2001:
https://gitweb.gentoo.org/archive/repo/gentoo-2.git/commit/?id=9aa2cf18b4de3c81fd5bc98718b2614bd2e73d23
Bug: https://bugs.gentoo.org/875362
Closes: https://github.com/gentoo/portage/pull/1028
Signed-off-by: Ulrich Müller <ulm@gentoo.org>
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
| |
Note that Portage doesn't really do anything with these
right now AFAICT but it may in future (not planned though) decide
to ignore non-acceptable tokens, etc.
Bug: https://bugs.gentoo.org/861659
Closes: https://github.com/gentoo/portage/pull/874
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
| |
Signed-off-by: Ulrich Müller <ulm@gentoo.org>
|
|
|
|
|
|
|
| |
These would either be incomplete for RESTRICT or become very long.
In any case, tokens are listed below.
Signed-off-by: Ulrich Müller <ulm@gentoo.org>
|
|
|
|
|
|
|
|
| |
Plural instead of singular. Thanks to Arfrever and arthurzam for
noticing the mistake.
Fixes: 1255f758559e9f0bd733154abc8b89641351531d
Signed-off-by: Ulrich Müller <ulm@gentoo.org>
|
|
|
|
|
|
|
| |
Bug https://bugs.gentoo.org/898224
Signed-off-by: Ulrich Müller <ulm@gentoo.org>
Closes: https://github.com/gentoo/portage/pull/1011
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
| |
This adds a new feature to portage which issues a warning if portage
is about to execute a new child process with a large environment.
Signed-off-by: Florian Schmaus <flow@gentoo.org>
Closes: https://github.com/gentoo/portage/pull/963
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
| |
Signed-off-by: Oskari Pirhonen <xxc3ncoredxx@gmail.com>
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
| |
Signed-off-by: Oskari Pirhonen <xxc3ncoredxx@gmail.com>
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a new emerge option '--update-if-installed'.
The use case for such an option is as follows:
- User finds out libfoo-1.2 is buggy.
- They want to upgrade all their systems if libfoo is installed.
- They don't want to install libfoo if it's not already installed.
Unfortunately, --update fails this last point, hence
the need for a new option.
Closes: https://github.com/gentoo/portage/pull/988
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
| |
Signed-off-by: Florian Schmaus <flow@gentoo.org>
Closes: https://github.com/gentoo/portage/pull/889
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add --onlydeps-with-ideps option in order to include install-time
dependencies with --onlydeps and --onlydeps-with-rdeps=n. The
dependencies that get pulled in are those that are necessary for
emerge --nodeps to succeed when run after the equivalent --onlydeps.
The default --onlydeps --onlydeps-with-rdeps=n behavior is unchanged.
This also adds a new test file test_onlydeps_ideps.py that is derived
from test_onlydeps_minimal.py and tests the behavior for EAPI={7,8}.
Additional tests have been added to test_onlydeps_minimal.py to ensure
that the behavior at EAPI=0 remains unchanged.
Bug: https://bugs.gentoo.org/890777
Signed-off-by: Tom Gillespie <tgbugs@gmail.com>
Closes: https://github.com/gentoo/portage/pull/979
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
| |
Signed-off-by: Diego Viola <diego.viola@gmail.com>
Closes: https://github.com/gentoo/portage/pull/986
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
| |
The volatile option was hidden in the sync-webrsync-verify-signature
entry. Add a separate entry for volatile, specifying its possible
values in the portage(5) man page.
Closes: https://bugs.gentoo.org/888585
Signed-off-by: Philipp Rösner <rndxelement@protonmail.com>
Closes: https://github.com/gentoo/portage/pull/982
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
| |
Reviewed-by: James Le Cuirot <chewi@gentoo.org>
Reviewed-by: Fabian Groffen <grobian@gentoo.org>
Signed-off-by: Ulrich Müller <ulm@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The os.SCHED_* aliases are not reliable enough, the mainline Python lacks
deadline, and the pypy lacks them all together. The IDs are not going to
change, at most new would arrive, so it is safe to use it as is.
By extension, the deadline policy was also added, since those originally
were not present in aliases.
Bug: https://bugs.gentoo.org/867031
Closes: https://github.com/gentoo/portage/pull/976
Signed-off-by: KARBOWSKI Piotr <slashbeast@gentoo.org>
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
|
|
|
|
|
|
| |
Closes: https://bugs.gentoo.org/834038
Signed-off-by: Jernej Jakob <jernej.jakob+gentoo@gmail.com>
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
| |
Suggested-by: Florian Schmaus <flow@gentoo.org>
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This introduces a 'volatile' configuration option for repos.conf.
* If a repository is marked as volatile (volatile=true), then Portage
will assume the repository may be changed at any time, and that
it may contain e.g. local changes.
Portage will not perform optimizations based on assuming its integrity.
It will also not perform destructive operations if it is a git repository
(it will not prioritise being able to continue to sync).
* If a repository is marked as non-volatile (volatile=false), then Portage
will assume that only Portage changes the repository and that it will not
be modified otherwise.
Portage will perform optimizations based on assuming this, like not
needing to verify the metadata cache for ebuilds & eclasses.
Portage will prioritise the repository continuing to work and may
e.g. 'git reset --hard' or 'git clean -fdx' in order to keep git repositories
working for sync purposes. (If you do not like this, please set 'volatile=true').
Bug: https://bugs.gentoo.org/528394
Bug: https://bugs.gentoo.org/887025
See: https://github.com/gentoo/portage/pull/801
See: https://github.com/gentoo/portage/pull/931
See: https://github.com/gentoo/portage/pull/939
See: https://github.com/gentoo/portage/pull/960
Signed-off-by: Sam James <sam@gentoo.org>
|