| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Only backtrack if changes break a USE dependency. Prior
to this fix, the included test case succeeded only with
a --backtrack setting of 3 or more, but now it succeeds
with a --backtrack setting of 2.
X-Gentoo-bug: 632598
X-Gentoo-bug-url: https://bugs.gentoo.org/632598
Acked-by: Brian Dolbec <dolsen@gentoo.org>
|
|
|
|
|
|
| |
Fixes: c4edb9ca3a6c ("postinst-qa-check.d: fix [[ ${files[@]} ]] logic in for loops")
X-Gentoo-bug: 632696
X-Gentoo-bug-url: https://bugs.gentoo.org/632696
|
|
|
|
|
| |
Closes: https://bugs.gentoo.org/631820
Reviewed-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
| |
Fix the slot conflict solver to use the _want_installed_pkg
method to identify installed packages that are intended to
be reinstalled for some reason (such as @preserved-rebuild).
X-Gentoo-bug: 632202
X-Gentoo-bug-url: https://bugs.gentoo.org/632202
Acked-by: Brian Dolbec <dolsen@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the slot conflict solver decides that it is "forced"
to choose a particular package, recursively force the
dependencies as well. Prior to this fix, substitution of
@world in the arguments for SlotConflictMaskUpdateTestCase
caused the test to fail because the solver removed
boost-build-1.53.0 from the graph event though it had
added the parent boost-1.53.0 package to the "forced"
set.
X-Gentoo-bug: 632210
X-Gentoo-bug-url: https://bugs.gentoo.org/632210
Acked-by: Brian Dolbec <dolsen@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes errors like the following:
File "_emerge/depgraph.py", line 3972, in _select_files
self._frozen_config.spinner, self._frozen_config.myopts)
File "_emerge/depgraph.py", line 9474, in ambiguous_package_name
s.output()
File "_emerge/search.py", line 469, in output
self.getInstallationStatus(mycat+'/'+mypkg))
File "_emerge/search.py", line 494, in getInstallationStatus
installed_package = self._vardb.match(package)
File "_emerge/FakeVartree.py", line 111, in _match_wrapper
matches = self._match(cpv, use_cache=use_cache)
File "_emerge/resolver/DbapiProvidesIndex.py", line 39, in match
if atom.soname:
AttributeError: 'str' object has no attribute 'soname'
|
|
|
|
|
|
|
|
|
|
|
| |
In order for the eliminate_pkg loop to produce deterministic results,
the order of the pkgs list must not be random. Prefer to eliminate
installed packages first, in case rebuilds are needed, and also sort
in ascending order so that older versions are eliminated first.
X-Gentoo-bug: 631894
X-Gentoo-bug-url: https://bugs.gentoo.org/631894
Reviewed-by: Manuel Rüger <mrueg@gentoo.org>
|
|
|
|
|
| |
Fixes: c4edb9ca3a6c ("postinst-qa-check.d: fix [[ ${files[@]} ]] logic in for loops")
Reported-by: Michał Górny <mgorny@gentoo.org>
|
|
|
|
| |
Fixes: 361f820b88de ("postinst-qa-check.d: fix false positive and expensive eqatag on first run")
|
| |
|
|
|
|
|
|
|
|
|
| |
When caches were missing, calls to eqatag could be prohibitively
expensive when a large number of files where found. Those files
did not necessaryily belong to the current package, so it was
also a false positive.
Bug: https://bugs.gentoo.org/631454
|
|
|
|
|
|
| |
Use a separate all_files array to accumulate the results
from all loops, so that [[ ${files[@]} ]] only checks for
files found during the current loop.
|
| |
|
|
|
|
| |
Closes: https://github.com/gentoo/portage/pull/206
|
|
|
|
|
|
|
|
| |
When calling retrieve_head from a SyncBase object, it is expected to
raise a NotImplementedError. However, all classes that do not inherit
from NewBase will raise an AttributeError which is not caught.
Fixes: 0e1699ad6b3f ("emerge: Add head commit per repo to --info")
|
|
|
|
|
|
|
|
|
| |
Python 3.7 does not support thread-less builds.
Reported-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
See: https://bugs.python.org/issue31370
X-Gentoo-bug: 630730
X-Gentoo-bug-url: https://bugs.gentoo.org/630730
|
|
|
|
|
|
|
|
|
|
| |
Set PATH to /dev/null when sourcing the ebuild for dependency resolution
in order to prevent shell from finding external commands via PATH
lookup. While this does not prevent executing programs via full path, it
should catch the majority of accidental uses.
Closes: https://github.com/gentoo/portage/pull/199
Reviewed-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
| |
Update the description for --bug and --closes to account for the fact
that the tags are now handled by git hooks on Gentoo Infra, and cause
actions on Gentoo Bugzilla.
Closes: https://github.com/gentoo/portage/pull/203
Reviewed-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replace the different logic used for --bug and --closes options with
a uniform solution. As a result, --closes now interprets numbers
as Gentoo bug numbers rather than GitHub pull request numbers.
This change is mostly done since the 'Closes' tag now started being used
to resolve Gentoo bugs. While changing the logic could be confusing,
it has not made it into a release yet and the GitHub default would not
be very useful anyway.
After all, repoman is normally used to commit the changes before a pull
request is created, which implies that the user does not know the pull
request number yet. The 'Closes' tag for pull request is usually added
by the reviewer before merging, using 'git --amend' since repoman has
no amending option. That considered, it is quite unlikely that anyone
would find --closes with pull request numbers useful.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
dev-python/pycparser-2.18+ exposes a design flaw in dev-python/ply that
makes it unable to work with -OO code. Given that Gentoo compiles its
Python packages with -OO and both -O and -OO use the same files for
Python < 3.5, using -O in Portage implicitly means -OO for those
implementations.
Remove the optimizations from Portage shebangs to prevent triggering the
issue until we find a proper solution for it.
Bug: https://bugs.gentoo.org/628386
Reviewed-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
| |
DOCS is used by default_src_install.
X-Gentoo-bug: 627106
X-Gentoo-bug-url: https://bugs.gentoo.org/627106
|
|
|
|
| |
Reported-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The PMS specifies that ebuilds must not call external commands in global
scope. We can not prevent that from happening at the moment since a few
ebuilds in Gentoo are still doing that.
Instead, start increasing strictness by explicitly failing if ebuilds
call external commands that are not found. This is not going to really
break any ebuilds that are not broken already (since command-not-found
usually indicates something is going wrong), and it will help noticing
typos and reliance on non-common external commands.
A similar change has been tested in pkgcore, and confirmed not to cause
any failures with the current state of the Gentoo repository.
Closes: https://github.com/gentoo/portage/pull/198
Reviewed-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The value of get_libdir depends on the profile, and so it is not useful
for dependency calculations. Furthermore, it seems that Portage does
not handle defining it in global scope well due to EAPI checking magic.
Ban it completely where it is defined as EAPI function to let developers
catch their mistakes early rather than see them as 'command not found'
errors during dependency calculation / cache updates.
Bug: https://bugs.gentoo.org/629010
Closes: https://github.com/gentoo/portage/pull/197
Reviewed-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
| |
Restrict the file types checked by the gtk-icon-cache-update check
to match the one used inside the tool. This ensures that we do not
report any false positives for files that are intentionally skipped.
Bug: https://bugs.gentoo.org/629148
Closes: https://github.com/gentoo/portage/pull/196
Reviewed-by: Gilles Dartiguelongue <eva@gentoo.org>
Reviewed-by: Brian Dolbec <dolsen@gentoo.org>
|
|
|
|
|
|
| |
In case both build tree and image tree are larger than 1MiB, the output
would lack MiB/GiB/etc and be misaligned due to the arguments not being
quoted.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prior to this commit, the reported sizes would look like:
* Final size of build directory: 34942 KiB
* Final size of installed tree: 5627 KiB
Because the sizes aren't aligned, it is hard to (visually) compare them.
On top of this, because the numbers are sometimes bigger, print a human
friendly size after the KiB size if applicable, like so:
* Final size of build directory: 1906 KiB (1.8 MiB)
* Final size of installed tree: 7 KiB
It should be noted that in case both sizes have a human-readable
variant, they are also aligned.
The helper functions are defined and used in a subshell to avoid
pollution of the caller's environment.
Reviewed-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
| |
Set default value of sync-rsync-extra-opts to "" instead of None, which
is no longer supported since:
https://github.com/python/cpython/commit/44e6ad87340d50f48daf53b6a61138377d0d0d10
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently Portage reports its progress in checking collisions forward
every 1000th file like so:
* checking 4149 files for package collisions
1000 files checked ...
2000 files checked ...
3000 files checked ...
4000 files checked ...
>>> Merging sys-apps/portage-2.3.8 to /
Change it to countdown style so it is easier to anticipate what the
next action will be:
* checking 4149 files for package collisions
3149 files remaining ...
2149 files remaining ...
1149 files remaining ...
149 files remaining ...
>>> Merging sys-apps/portage-2.3.8 to /
Reviewed-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
| |
Call the appropriate updater to update caches after reporting a missing
cache update, in order to stop repeating the same issue on subsequent
packages that did not install any relevant files.
Closes: https://github.com/gentoo/portage/pull/195
Reviewed-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
| |
Use ctime rather than mtime in cache post-postinst checks since mtime
may be preserved from the original tarball, and therefore be 'long time
ago'. ctime is more reliable in this regard.
Reviewed-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add postinst-qa-check.d checks for missed desktop, mime-info and GTK+
icon cache updates. In all of the cases the checks simply look for any
installed files that are newer than the cache.
This check has some limitations: it assumes that mtime is not preserved
when copying files to D, it can't distinguish whether the files
were installed by the current package (it reports all new files since
the last cache update) and it can't distinguish between the update
on postinst and postrm. However, it's certainly a step forward and will
help find a few bugs.
Reviewed-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
| |
Extend the QA check mechanics in Portage to support post-postinst QA
checks. They are like post-install QA checks, except they are run after
pkg_postinst(), and so they can be used to verify that necessary
postinst actions were performed (e.g. regenerating caches).
Reviewed-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
| |
It's more likely that a higher valued priority will not be
ignored, therefore search in descending order.
|
|
|
|
|
| |
Reported-by: Sergei Trofimovich <slyfox@gentoo.org>
Reviewed-by: Manuel Rüger <mrueg@gentoo.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Include the path to the log file if PORT_LOGDIR is being used
(and therefore the log is going to be preserved past the build). This is
useful when elog messages contain QA warnings or other errors that
require reporting a bug. In such case, having a path to the log is
handy.
After this commit, the mod_echo output becomes:
* Messages for package dev-foo/bar-1:
* Log file: /var/log/portage/dev-foo:bar-1:20170816-100533.log
* test
Reviewed-by: Brian Dolbec <dolsen@gentoo.org>
|
|
|
|
| |
Fixes: cff2c0149142 ("Support different compressors for binary packages")
|
|
|
|
|
|
|
|
|
|
| |
Revert premature return from the quickpkg_atom function for atoms
that match multiple slots. This fixes it to create packages for
all matched slots, rather than just the lowest version.
Fixes: cff2c0149142 ("Support different compressors for binary packages")
X-Gentoo-bug: 628060
X-Gentoo-bug-url: https://bugs.gentoo.org/628060
|
|
|
|
|
|
|
|
|
|
| |
Revert accidental changes to the "protect" function's return value
that were mixed in with changes to the "quickpkg_atom" function's
return value.
Fixes: cff2c0149142 ("Support different compressors for binary packages")
X-Gentoo-bug: 628010
X-Gentoo-bug-url: https://bugs.gentoo.org/628010
|
|
|
|
| |
Closes: https://github.com/gentoo/portage/pull/189
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The option prevents --autounmask from making changes to
package.accept_keywords. This option does not imply
--autounmask-keep-masks, so --autounmask is still allowed
to create package.unmask changes unless the
--autounmask-keep-masks is also specified.
X-Gentoo-bug: 622480
X-Gentoo-bug-url: https://bugs.gentoo.org/622480
Reviewed-by: Manuel Rüger <mrueg@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Combine the patch basenames from all matched directories into a
list, and apply them in POSIX sorted order. This allows patches in
more-specific directories to override patches of the same basename found
in less-specific directories. An empty patch (or /dev/null symlink)
negates a patch with the same basename found in a less-specific
directory.
This behavior is much more flexible and intuitive than the previous one,
while remaining backward-compatible to some extent.
NOTE: The implementation uses an associative array, which requires bash
version 4 or later.
X-Gentoo-bug: 608880
X-Gentoo-bug-url: https://bugs.gentoo.org/608880
Reviewed-by: Manuel Rüger <mrueg@gentoo.org>
|
|
|
|
| |
Fixes: 0e1699ad6b3f ("emerge: Add head commit per repo to --info")
|
|
|
|
| |
Fixes: 0e1699ad6b3f ("emerge: Add head commit per repo to --info")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Support two new options: --bug (-b) and --closes (-c) to add a plain
'Bug' reference and a 'Closes' footer for a GitHub pull request. Both
options can be specified multiple times, resulting in multiple footer
tags being written.
The --bug option accepts either a Gentoo Bugzilla bug number or an URL
to any bug tracker. In the latter case, it performs two trivial
transformations automatically: replaces long 'show_bug.cgi' Bugzilla
URLs with the short 'https://bugs.gentoo.org/NNNNNN', and forces
https:// for a few known services.
The --closes option accepts either a GitHub Gentoo repository pull
request number or an URL to any pull request (or bug) that uses
the 'Closes' tag. In the latter case, https:// is forced for a few known
services.
Reviewed-by: Zac Medico <zmedico@gentoo.org>
|
|
|
|
|
|
|
|
|
| |
The DCO Signed-off-by footer looks the same on the git branch, and on
the branch for other VCS-es. Therefore, move the code generating it
above the split branches. This also prepares the code for further footer
elements being added.
Reviewed-by: Zac Medico <zmedico@gentoo.org>
|