aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* dosym: revert deprecated prefix compat (bug 615594)Zac Medico2020-01-221-11/+2
| | | | | | | | 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>
* dep_zapdeps: break more buildtime cycles (bug 705986)Zac Medico2020-01-222-13/+6
| | | | | | | | | | | | 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>
* Test /etc/portage/modules portdbapi.auxdbmodule settingsZac Medico2020-01-212-1/+51
| | | | Signed-off-by: Zac Medico <zmedico@gentoo.org>
* Add unit test which demonstrates bug 705986Zac Medico2020-01-201-0/+48
| | | | | | | | | | | | | | | | | | | | | | | | | 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>
* travis.yml: drop pypy and python 3.5Zac Medico2020-01-042-6/+4
| | | | Signed-off-by: Zac Medico <zmedico@gentoo.org>
* travis.yml: enable pypy3Zac Medico2020-01-041-0/+1
| | | | | Bug: https://bugs.gentoo.org/575840 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* emerge-delta-webrsync: chmod 755 temp dir (bug 704256)Zac Medico2019-12-301-0/+1
| | | | | | | | | 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>
* emerge-webrsync: chmod 755 temp dir (bug 704256)Zac Medico2019-12-301-0/+1
| | | | | | | | | 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>
* Updates for portage-2.3.84 releaseportage-2.3.84Zac Medico2019-12-262-1/+9
| | | | Signed-off-by: Zac Medico <zmedico@gentoo.org>
* _serialize_tasks: limit scope of dropped circular dependenciesZac Medico2019-12-262-41/+78
| | | | | | | | | | | | | | | | | | | | | | | | | 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>
* emerge --with-test-deps: use _queue_disjunctive_depsZac Medico2019-12-261-5/+9
| | | | | | | | 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>
* eapply: Drop QA warning for fuzz factor.Ulrich Müller2019-12-261-2/+0
| | | | | | | | 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>
* Clean up remnants of eapi5-hdepend, HDEPEND and targetrootMichał Górny2019-12-2621-138/+53
| | | | | | Reviewed-by: Zac Medico <zmedico@gentoo.org> Closes: https://github.com/gentoo/portage/pull/490 Signed-off-by: Michał Górny <mgorny@gentoo.org>
* MergeOrderTestCase: update circ-buildtime mergelist for bug 690436Zac Medico2019-12-251-2/+7
| | | | | | | | | 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>
* Updates for portage-2.3.83 releaseportage-2.3.83Zac Medico2019-12-232-1/+9
| | | | Signed-off-by: Zac Medico <zmedico@gentoo.org>
* backtracking: adjust || preference to break dependency cyclesZac Medico2019-12-234-4/+84
| | | | | | | | | | | | | | | | | | | 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>
* _queue_disjunctive_deps: group disjunctions recursively (bug 701996)Zac Medico2019-12-231-4/+4
| | | | | | | | | | 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>
* emerge --with-test-deps: allow circular depsZac Medico2019-12-234-8/+166
| | | | | | | | | | 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>
* testVirtualCmakeBootstrapUseConditional: use RDEPEND for virtual/cmakeZac Medico2019-12-211-1/+1
| | | | Signed-off-by: Zac Medico <zmedico@gentoo.org>
* testVirtualCmakeBootstrapUseConditional: split out virtual/cmakeZac Medico2019-12-211-3/+7
| | | | | | | | | | | | | | | | | | | | | | 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>
* test_circular_choices: add cases for bug 703440Zac Medico2019-12-211-0/+75
| | | | | | | | | | | | 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>
* Updates for portage-2.3.82 releaseportage-2.3.82Zac Medico2019-12-152-1/+11
| | | | Signed-off-by: Zac Medico <zmedico@gentoo.org>
* process: display relevant FEATURES when unshare failsZac Medico2019-12-151-2/+13
| | | | | | | | | 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>
* emerge-webrsync: support gentoo-YYYYMMDD snapshotsZac Medico2019-12-151-5/+7
| | | | | | | | 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>
* emerge-webrsync: enable xz snapshots for tarsyncZac Medico2019-12-141-5/+1
| | | | | | | There's xz support in current versions of diffball. Bug: https://bugs.gentoo.org/702970 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* emerge: Show package USE in conflict messagesZac Medico2019-12-142-9/+34
| | | | | Bug: https://bugs.gentoo.org/310009 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* emerge-delta-webrsync: handle gentoo-YYYYMMDD directory nameZac Medico2019-12-091-7/+6
| | | | | Bug: https://bugs.gentoo.org/693454 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* emerge-webrsync: handle gentoo-YYYYMMDD directory nameZac Medico2019-12-091-8/+4
| | | | | Bug: https://bugs.gentoo.org/693454 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* fetch: skip _checksum_failure_temp_file in force modeZac Medico2019-12-081-1/+1
| | | | | | | | | | | Avoid files like this in DISTDIR: $ md5sum .layout* 92dbdc707e5a40c7bfcbd1883173076a .layout.conf.distfiles.gentoo.org 92dbdc707e5a40c7bfcbd1883173076a .layout.conf.distfiles.gentoo.org._checksum_failure_.yrje0wk5 Reported-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* emerge: drop FEATURES=distcc-pump support, bug #702146Sergei Trofimovich2019-12-084-22/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'distcc' distributes code generation for preprocessed files. 'pump' distributes preprocessing and code generation of files and imposes very strict requirement: """ Note that distcc's pump-mode assumes that sources files will not be modified during the lifetime of the include server, so modifying source files during a build may cause inconsistent results. """ `src_configure()` (where we used to start include server before this change) almost always violates that requirement. It is not uncommon to generate more intermediate source files as a package builds (`bison`, `flex`, child `./configure` calls from `make`) and thus quite unsafe to use `pump`. This change drops `FEATURES=distcc-pump` and leaves only FEATURES=distcc. This way all the proprocessing happens as expected and only code generation is offloaded. Bug: https://bugs.gentoo.org/702146 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* repoman-2.3.20repoman-2.3.20Zac Medico2019-12-052-1/+8
| | | | Signed-off-by: Zac Medico <zmedico@gentoo.org>
* repoman: support profiles/package.deprecated (bug 702100)Zac Medico2019-12-055-0/+23
| | | | | Bug: https://bugs.gentoo.org/702100 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* Updates for portage-2.3.81 releaseportage-2.3.81Zac Medico2019-12-053-1/+20
| | | | Signed-off-by: Zac Medico <zmedico@gentoo.org>
* emerge: add --implicit-system-deps <y|n> option (bug 681312)Zac Medico2019-12-055-3/+25
| | | | | | | | | | | | Assume that packages may have implicit dependencies on packages which belong to the @system set. This option is enabled by default. One of the effects of disabling this option is to allow the --jobs option to spawn jobs without accounting for the possiblity of implicit dependencies on packages that belong to the @system set (this causes the @system set to behave more like the @profile set). Bug: https://bugs.gentoo.org/681312 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* _queue_disjunctive_deps: group disjunctions (bug 701996)Zac Medico2019-12-052-2/+45
| | | | | | | | | When disjunctive dependencies are queued, group together disjunctions from the same dependency string so that any overlap between them will trigger expansion to DNF. Bug: https://bugs.gentoo.org/701996 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* repoman commit: ignore unadded hidden files except '.' itselfZac Medico2019-12-031-1/+1
| | | | | | | Fixes: a561ac910331 ("repoman commit: ignore unadded hidden files") Bug: https://bugs.gentoo.org/541076 Copyright: Sony Interactive Entertainment Inc. Signed-off-by: Zac Medico <zmedico@gentoo.org>
* repoman commit: ignore unadded hidden filesZac Medico2019-12-031-1/+2
| | | | | | Bug: https://bugs.gentoo.org/541076 Copyright: Sony Interactive Entertainment Inc. Signed-off-by: Zac Medico <zmedico@gentoo.org>
* depgraph: fix buildtime_blockers logicZac Medico2019-11-271-3/+1
| | | | | | Fixes: 1b3131db0e22 ("emerge --buildpkgonly: respect buildtime hard blockers") Bug: https://bugs.gentoo.org/689226 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* eapply: Output verbosely only if patch fails to apply with -F0Michał Górny2019-11-271-2/+14
| | | | | | | | | | | | | | | | | | 12d0c48ad disabled silent output for eapply, in order to obtain fuzz factors in build logs. However, this also causes eapply to report all patched files which can make logs unreadable when there are no fuzz factors to be reported. Instead, use verbose output only when applying the patch with -F0 fails. To achieve that, attempt to apply each patch with -F0 --dry-run first. If this succeeds, just silently apply the patch for real. If it doesn't, output an explicit eqawarn that the patch does not apply cleanly and retry with the default fuzz factor and verbose output. Non-silenced output applies both to successful application with fuzz and to failure. Reviewed-by: Zac Medico <zmedico@gentoo.org> Signed-off-by: Michał Górny <mgorny@gentoo.org>
* repoman: Update for a repoman-2.3.19 releaserepoman-2.3.19Zac Medico2019-11-262-1/+8
| | | | Signed-off-by: Zac Medico <zmedico@gentoo.org>
* Updates for portage-2.3.80 releaseportage-2.3.80Zac Medico2019-11-262-1/+10
| | | | Signed-off-by: Zac Medico <zmedico@gentoo.org>
* emerge: add --quickpkg-direct optionZac Medico2019-11-2610-47/+338
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enable use of installed packages directly as binary packages. This is similar to using binary packages produced by quickpkg(1), but installed packages are used directly as though they are binary packages. This option only works in combination with the --root=DIR option, and it comes with the caveat that packages are only allowed to be installed into the root that is specified by the --root=DIR option. The other root which serves as a source of packages is assumed to be immutable during the entire operation (similar to --buildpkgonly mode). Default behavior for handling of protected configuration files is controlled by the QUICKPKG_DEFAULT_OPTS variable. When a configuration file is not included because it is protected, an ewarn message is logged. Suggested use cases: * Install packages from a buildtime container into an empty root, in order to create a minimal runtime container (which need not include a package manager). In a multi-stage Dockerfile, install runtime files to an empty directory in the build stage, and in the final stage use COPY to populate a container with the contents of that directory. For greater efficiency, use buildah to install directly into a mounted container, avoiding the COPY step. Use the emerge --usepkgonly and --ignore-soname-deps=n options to account for soname dependencies, allowing implicit system dependencies such as glibc to be automatically pulled into the runtime image. * Enable a live usb, iso, or pxe image to act as a binary installer that uses packages installed in the live image as a source of binary packages. Bug: https://bugs.gentoo.org/699986 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* man/emerge.1: fix \fB typoZac Medico2019-11-261-1/+1
| | | | | | | $ groff -man man/emerge.1 >/dev/null man/emerge.1:117: warning: can't find font `b' Signed-off-by: Zac Medico <zmedico@gentoo.org>
* emerge --buildpkgonly: respect buildtime hard blockersZac Medico2019-11-262-9/+102
| | | | | Bug: https://bugs.gentoo.org/689226 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* Rename DCO_SIGNED_OFF_BY config variable to SIGNED_OFF_BY.Ulrich Müller2019-11-264-8/+18
| | | | | | | | Provide compatibility support for old name. Update make.conf.5 man page. Bug: https://bugs.gentoo.org/667432 Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* eapply: Drop -s option for patch.Ulrich Müller2019-11-251-2/+1
| | | | | | | | | | | | | We generally try to have verbose build logs, e.g., by calling configure with --disable-silent-rules. Silencing patch contradicts this, and will suppress reporting of fuzz factors. Note that the eapply specification in PMS calls patch without -s: https://projects.gentoo.org/pms/7/pms.html#x1-127001r1 Traditionally, the -s option wasn't used by epatch either. Bug: https://bugs.gentoo.org/674562 Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* Scheduler._run_pkg_pretend: don't use local event loopZac Medico2019-11-241-5/+1
| | | | | | Relevant hooks should be added/removed in the _merge method. Signed-off-by: Zac Medico <zmedico@gentoo.org>
* repoman/man/repoman.1: fix \fI typoZac Medico2019-11-211-1/+1
| | | | | | | | | $ groff -man repoman/man/repoman.1 >/dev/null repoman/man/repoman.1:105: warning: can't find font `L' Reported-by: Ulrich Müller <ulm@gentoo.org> Fixes: 2ecf4e2b0ebd ("repoman: add --experimental-repository-modules=<y|n> option") Signed-off-by: Zac Medico <zmedico@gentoo.org>
* man/make.conf.5: fix \fI typoZac Medico2019-11-211-1/+1
| | | | | | | | | $ groff -man man/make.conf.5 >/dev/null man/make.conf.5:15: warning: can't find font `L' Reported-by: Ulrich Müller <ulm@gentoo.org> Fixes: b5365341dad1 ("refresh many URIs in the code base") Signed-off-by: Zac Medico <zmedico@gentoo.org>
* repoman: add --include-profiles=PROFILESSergei Trofimovich2019-11-207-3/+30
| | | | | | | | | | | | | | | | | | | | repoman slows down ~linearly with amount of profiles being scanned. In case of amd64 we have 28 stable profiles. To speed up processing and fit into time budged of various CIs we can split the work across different processes that handle different profiles. Example benchmark on ::haskell overlay: $ ./repoman full --include-arches=amd64 ~65 minutes $ ./repoman full --include-profiles=default/linux/amd64/17.0 ~4 minutes This allows for a crude sharding of work across processes and allows for cheap tree-wide scans for early failures. Bug: https://bugs.gentoo.org/700456 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> Signed-off-by: Zac Medico <zmedico@gentoo.org>