| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Reported-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
| |
Fixes: 1342b456c460 ("Remove --update greedy SLOTs code from depgraph.select_files()")
Reported-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
| |
Bug: https://bugs.gentoo.org/707820
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
| |
Closes: https://github.com/gentoo/portage/pull/503
Signed-off-by: Manuel Rüger <manuel@rueg.eu>
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
| |
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
| |
Fixes: d318bcce356b ("vartree: add missing _merge_unicode_error import")
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
| |
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
| |
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
| |
This solves common name collisions introduced by GLEP 81 user and group
management packages.
TODO: Provide user configuration so that users an ignore name
collisions with selected categories like app-emacs or dev-haskell.
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For depclean actions, prefer choices where all packages have been
pulled into the graph, except for choices that eliminate upgrades.
This solves the test case for bug 707108, where depclean eliminated
a new slot of python that had been pulled in by a world update.
This should also prevent non-deterministic elimination of the
latest vala slot that was reported in bug 693790.
NOTE: There's a common perception (expressed in bug 705700) that
emerge is pulling in an "unecessary" python slot in cases when that
python slot is not enabled in PYTHON_TARGETS. However, the so-called
"unnecessary" slot is practically indistinguishable from a desirable
upgrade such as the missed llvm slot upgrade that was reported in
bug 706278. Therefore, be advised that emerge must pull in the
highest visible slot (regardless of PYTHON_TARGETS) in order to
ensure that a desirable upgrade is not missed.
Fixes: f7d83d75c6b0 ("dep_zapdeps: adjust || preference for slot upgrades (bug 706278)")
Bug: https://bugs.gentoo.org/707108
Bug: https://bugs.gentoo.org/706278
Bug: https://bugs.gentoo.org/705700
Bug: https://bugs.gentoo.org/693790
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
| |
Bug: https://bugs.gentoo.org/707108
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
| |
This will prevent problems if another package named "portage" is added
in another category.
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
Reviewed-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
| |
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
| |
Suggested-by: Jeroen Roovers <jer@gentoo.org>
Bug: https://bugs.gentoo.org/706298
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prefer choices that include a slot upgrade when appropriate, like for
the || ( llvm:10 ... llvm:7 ) case reported in bug 706278. In order
to avoid pulling in inappropriate slot upgrades, like those which
should only be pulled in with --update and --deep, add a want_update
flag to each choice which is True for choices that pull in a new slot
for which an update is desirable.
Mark the test case for bug 480736 as todo, since the "undesirable"
slot upgrade which triggers a blocker conflict in this test case is
practically indistinguishable from a desirable slot upgrade. This
particular blocker conflict is no longer relevant, since current
versions of media-libs/libpostproc are no longer compatible with
any available media-video/ffmpeg slot. In order to solve this test
case, some fancy backtracking (like for bug 382421) will be required.
Bug: https://bugs.gentoo.org/706278
Bug: https://bugs.gentoo.org/480736
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
| |
This case will become an expected failure after bug 706278
is fixed. The packages that triggered bug 480736 not longer
exist.
Bug: https://bugs.gentoo.org/480736
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
| |
Bug: https://bugs.gentoo.org/607852
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
| |
Bug: https://bugs.gentoo.org/706278
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
| |
Since SonameAtom instances are immutable, the __getstate__ and
__setstate__ methods need to be implemented for pickle support.
Bug: https://bugs.gentoo.org/706186
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
| |
Bug: https://bugs.gentoo.org/706186
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
| |
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Example output for maven-bin-3.6.2 (bug 704618):
* QA Notice: Unresolved soname dependencies:
*
* /usr/share/maven-bin-3.6/lib/jansi-native/freebsd32/libjansi.so: libc.so.7 libutil.so.9
* /usr/share/maven-bin-3.6/lib/jansi-native/freebsd64/libjansi.so: libc.so.7 libutil.so.9
*
This warning comes up when a library or executable has one or
more soname dependencies (found in its NEEDED.ELF.2 metadata)
that could not be resolved by usual means. If you run ldd
on files like these then it will report a "not found" error
for each unresolved soname dependency. In order to correct
problems with soname dependency resolution, use one or more
of the approaches described in the following sections.
Content of the NEEDED.ELF.2 metadata file may be useful
for debugging purposes. Find the NEEDED.ELF.2 file in the
${D}/../build-info/ directory after the ebuild src_install
phase completes, or in the /var/db/pkg/*/*/ directory for an
installed package. Each line of the NEEDED.ELF.2 file contains
semicolon separated values for a single ELF file. The soname
dependencies are found in the DT_NEEDED column:
E_MACHINE;path;DT_SONAME;DT_RUNPATH;DT_NEEDED;multilib category
External dependencies
For packages that install pre-built binaries, it may be possible
to resolve soname dependencies simply by adding dependencies
for one or more other packages that are known to provide the
needed sonames.
Removal of unecessary files
For packages that install pre-built binaries, it may be possible
to resolve soname dependencies simply by removing unnecessary
files which have unresolved soname dependencies. For example,
some pre-built binary packages include binaries intended for
irrelevant architectures or operating systems, and these files
can simply be removed because they are unnecessary.
Addition of DT_RUNPATH entries
If the relevant dependencies are installed in a location that
is not included in the dynamic linker search path, then it's
necessary for files to include a DT_RUNPATH entry which refers
to the appropriate directory. The special $ORIGIN value can
be used to create a relative path reference in DT_RUNPATH,
where $ORIGIN is a placeholder for the directory where the
file having the DT_RUNPATH entry is located.
For pre-built binaries, it may be necessary to fix up
DT_RUNPATH using patchelf --set-rpath. For example, use
patchelf --set-rpath '$ORIGIN' if a given binary should link
to libraries found in the same directory as the binary itself,
or use patchelf --set-rpath '$ORIGIN/libs' if a given binary
should link to libraries found in a subdirectory named libs
found in the same directory as the binary itself.
For binaries built from source, a flag like
-Wl,-rpath,/path/of/directory/containing/libs will create
binaries with the desired DT_RUNPATH entry.
Addition of DT_SONAME settings
If a package installs dynamic libraries which do not
set DT_SONAME, then this can lead to unresolved soname
dependencies. For dynamic libraries built from source, a flag
like -Wl,-soname=foo.so.1 will create a DT_SONAME setting. For
pre-built dynamic libraries, it may be necessary to fix up
DT_SONAME using patchelf --set-soname.
Adjustment to Portage soname resolution logic
It may be necessary to adjust Portage soname resolution logic
in order to account for special circumstances. For example,
Portage soname resolution tolerates missing DT_SONAME for
dynamic libraries that a package installs in a directory that
its binaries reference via DT_RUNPATH. This behavior is useful
for packages that have internal dynamic libraries stored in
a private directory. An example is ebtables, as discussed in
bug 646190.
Bug: https://bugs.gentoo.org/704320
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
| |
In order to avoid a SANDBOX_LOG collision with another process
having the same pid when pid-sandbox is enabled, export a
unique SANDBOX_LOG value. The ${T} directory is a convenient
location, since it is guaranteed to exist and be writable during
relevant ebuild phases.
Bug: https://bugs.gentoo.org/704848
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The /etc/portage/package.keywords file has been long deprecated
in favor of /etc/portage/package.accept_keywords. The file would
be useful if we could make it behave like package.keywords in
profiles (see bug 491166), but it's safest if we trigger a
UserWarning for some time before we change the meaning in a
future version of portage. The message looks like this:
UserWarning: /etc/portage/package.keywords is deprecated, use /etc/portage/package.accept_keywords instead
Bug: https://bugs.gentoo.org/491166
Bug: https://bugs.gentoo.org/607852
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
| |
According to PMS, dosym callers need to explicitly prefix the first
argument with ${EPREFIX} if that's desired.
https://bugs.gentoo.org/615594
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Buildtime cycle breaking was not enabled in cases where
the all_in_graph variable was False, and this prevented the
pypy / pypy-exe dependency cycle from being broken as shown
in the test case for bug 705986. In order to break more
buildtime cycles, enable cycle breaking regardless of the
state of the all_in_graph variable.
Bug: https://bugs.gentoo.org/705986
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
| |
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This USE suggestion appears to prevent application of || preference
adjustment to solve the cycle (pypy-exe-bin would solve it):
* Error: circular dependencies:
(dev-python/pypy-exe-7.3.0:7.3.0/7.3.0::test_repo, ebuild scheduled for merge) depends on
(dev-python/pypy-7.3.0:0/73::test_repo, ebuild scheduled for merge) (buildtime)
(dev-python/pypy-exe-7.3.0:7.3.0/7.3.0::test_repo, ebuild scheduled for merge) (buildtime)
It might be possible to break this cycle
by applying the following change:
- dev-python/pypy-exe-7.3.0 (Change USE: +low-memory)
Meanwhile, an explicit pypy-exe-bin argument adjusts the || preference
and breaks the cycle:
$ emerge -pq pypy pypy-exe-bin
[ebuild N ] dev-python/pypy-exe-bin-7.3.0
[ebuild N ] dev-python/pypy-7.3.0
Bug: https://bugs.gentoo.org/705986
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
| |
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
| |
Bug: https://bugs.gentoo.org/575840
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
| |
Before the rsync call, chmod 755 the temporary directory so that the
root directory of the repository will have appropriate permissions.
Fixes: fa0f8720e168 ("emerge-delta-webrsync: handle gentoo-YYYYMMDD directory name")
Bug: https://bugs.gentoo.org/704256
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
| |
Before the rsync call, chmod 755 the temporary directory so that the
root directory of the repository will have appropriate permissions.
Fixes: 92f4b283c86a ("emerge-webrsync: handle gentoo-YYYYMMDD directory name")
Bug: https://bugs.gentoo.org/704256
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
| |
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ensure that all members of a buildtime dependency cycle are merged
as a group, such that packages which depend on one or more members
of the group will only be merged *after* the entire group has been
merged.
This extends runtime cycle handling to also handle buildtime cycles
in cases where the buildtime dependencies happen to be satisfied by
installed packages. In situations when this is necessary, it is
desirable to rely on the old installed instances of these packages
as little as possible, since they might have been broken by the
upgrade of a package that is a member of the dependency cycle.
Upgrading members of the cycle as a group effectively minimizes
reliance on the old installed package instances, avoiding some cases
of bug 199856. For example, it should avoid bug 703676, where
libspectre reportedly failed to build against an old installed
instance of ghostscript-gpl.
Bug: https://bugs.gentoo.org/199856
Bug: https://bugs.gentoo.org/689644
Bug: https://bugs.gentoo.org/690436
Bug: https://bugs.gentoo.org/703676
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
| |
This delays evaluation of || deps, avoiding possible redundant
packages and conflicts.
Fixes: 85f0dd173ab7 ("emerge --with-test-deps: allow circular deps")
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
| |
This didn't add any information beyond what is already present in the
output of patch. Developers will know how to interpret its output, and
users won't see the warning anyway with the standard configuration.
Signed-off-by: Ulrich Müller <ulm@gentoo.org>
|
|
|
|
|
|
| |
Reviewed-by: Zac Medico <zmedico@gentoo.org>
Closes: https://github.com/gentoo/portage/pull/490
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
|
|
|
|
|
|
|
| |
Update mergelist for the circ-buildtime test case so that it will pass
after the fix for bug 690436, and also add a commented merge order
assertion which will succeed after the fix.
Bug: https://bugs.gentoo.org/690436
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
| |
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Store dependency cycle edges as backtracking parameters, and use them
to adjust || preferences in order to break dependency cycles. This
extends direct cycle breaking to handle indirect dependency cycles,
which solves the cmake-bootstrap test case for bug 703440. If any
cycle(s) remain unsolved by the next backtracking run, then backtracking
aborts and the cycle(s) are reported as usual.
Note that backtracking is necessary in order to avoid bugs of the form
"emerge installs packages only to have them removed by depclean", since
this sort of behavior is desirable only when it eliminates a dependency
cycle.
Bug: https://bugs.gentoo.org/382421
Bug: https://bugs.gentoo.org/384107
Bug: https://bugs.gentoo.org/703440
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
| |
When disjunctive dependencies are queued, recursively group together
disjunctions from the same dependency string so that any overlap between
them will trigger expansion to DNF.
Fixes: fa7b6ea6ecdc ("_queue_disjunctive_deps: group disjunctions (bug 701996)")
Bug: https://bugs.gentoo.org/701996
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
| |
When USE=test is not enabled, allow circular test dependencies
by treating them like PDEPEND. When USE=test is enabled, circular
dependencies are still not allowed, as shown in unit tests.
Suggested-by: Michał Górny <mgorny@gentoo.org>
Bug: https://bugs.gentoo.org/703348
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
| |
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If we split the dependency conditional on the bootstrap USE flag into a
virtual, then it suffices to rebuild the virtual with USE=-bootstrap
instead of rebuilding jsoncpp:
* Error: circular dependencies:
(dev-libs/jsoncpp-1.9.2:0/0::test_repo, ebuild scheduled for merge) depends on
(virtual/cmake-0:0/0::test_repo, ebuild scheduled for merge) (buildtime)
(dev-util/cmake-3.16.2:0/0::test_repo, ebuild scheduled for merge) (buildtime)
(dev-libs/jsoncpp-1.9.2:0/0::test_repo, ebuild scheduled for merge) (buildtime_slot_op)
It might be possible to break this cycle
by applying the following change:
- virtual/cmake-0 (Change USE: +bootstrap)
Note that this change can be reverted, once the package has been installed.
Bug: https://bugs.gentoo.org/703440
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The testCircularJsoncppCmakeBootstrapOrDeps method fails due to circular
dependencies triggered when it ignores cmake-bootstrap in order to
eliminate redundant packages.
Meanwhile, the testVirtualCmakeBootstrapUseConditional method solves the
problem by using a dependency conditional on the bootstrap USE flag.
Bug: https://bugs.gentoo.org/703440
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
| |
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
| |
For example, the message will now look like this:
Unable to unshare: EPERM (for FEATURES="ipc-sandbox mount-sandbox network-sandbox pid-sandbox")
Bug: https://bugs.gentoo.org/680456
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
| |
Support gentoo-YYYYMMDD snapshots for forward compatibility, and
portage-YYYYMMDD snapshots for backward compatibility.
Bug: https://bugs.gentoo.org/693454
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
| |
There's xz support in current versions of diffball.
Bug: https://bugs.gentoo.org/702970
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
| |
Bug: https://bugs.gentoo.org/310009
Signed-off-by: Zac Medico <zmedico@gentoo.org>
|