| Age | Commit message (Collapse) | Author |
|
Another way Cargo.toml can specify the minimum Rust version is using the
'rust-version=' field. This commit adds a check for that field, and
updates the required minimum Rust version accordingly.
Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
|
|
There is a possibility that the current packages uses dependencies
which require a newer version of Rust than the one listed in ${S}.
For those cases, scan over the full ${WORKDIR} directory tree
instead of just ${S}.
Maybe it will introduce false positives, for crates which are included
but not used during real compilation, but it is better than
missing a dependency which requires a newer version of Rust.
Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
|
|
Add an explicit check for deprecated pkg_resources namespace packages
to 60python-site. The eclass handled the most common
case of installing them via the deprecated `namespace_packages`
setuptools key, but it does not handle packages that worked around
the deprecation warning by installing the file manually, or ebuilds
that did strip `namespace_packages` to silence the setuptools
deprecation warning.
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Part-of: https://github.com/gentoo/gentoo/pull/42318
Closes: https://github.com/gentoo/gentoo/pull/42318
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
The existing check makes an intimidating value proposition: that all
software being checked was installed using distutils-r1.eclass, hence
moving the check from there as-is to a new home is sufficient. This
includes the use of functions specific to the distutils-r1 eclass
inheritance chain. In particular, get_modname is part of
multilib.eclass, which distutils-r1 inherits, but python-single-r1 does
not inherit.
This results in the following QA warning:
```
/var/db/repos/gentoo/metadata/install-qa-check.d/60python-site: line 53: get_modname: command not found
/var/db/repos/gentoo/metadata/install-qa-check.d/60python-site: line 53: get_modname: command not found
/var/db/repos/gentoo/metadata/install-qa-check.d/60python-site: line 53: get_modname: command not found
* Verifying compiled files for python3.12
*
* QA Notice: Extensions found compiled for the wrong Python version
* (likely broken build isolation):
*
* /usr/lib/python3.12/site-packages/__pycache__/init_calibre.cpython-312.pyc
* /usr/lib/python3.12/site-packages/__pycache__/init_calibre.cpython-312.opt-1.pyc
* /usr/lib/python3.12/site-packages/__pycache__/init_calibre.cpython-312.opt-2.pyc
```
because we are matching all files matching "*.cpython*" that are also
named "*" instead of all files named "*$(get_modname)".
Instead of using multilib.eclass, go directly to the preferred canonical
source, and query cpython what *it* thinks a module extension should be.
This is also more flexible since cpython itself doesn't really guarantee
that extension modules are named anything like get_modname, but
generally equals -- for backwards compatibility -- the final value from
`_PyImport_DynLoadFiletab` / `_imp.extension_suffixes()` (and on
Windows, that is .pyd instead of .dll, though admittedly,
sysconfig.get_config_vars is pretty empty there; on the other hand, PyPy
doesn't recognize unadorned .so because it doesn't need the
compatibility, so we see that it's not really a guarantee, and might as
well go for the sysconfig variable which is unambiguous where present).
Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
Signed-off-by: Sam James <sam@gentoo.org>
|
|
Fix Python implementation matching code to special-case pypy3 rather
than generally applying a glob that caused impl of `python3.13` to match
directory for `python3.13t`.
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
Closes: https://github.com/gentoo/gentoo/pull/41578
Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
|
|
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/41573
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
Add a QA check for Python extensions that were compiled for the wrong
implementation. This is particularly a case when build is not properly
isolated and extensions built for earlier Python versions end up
being included in the subsequent installs.
Bug: https://bugs.gentoo.org/953558
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
Pull-Request: https://github.com/gentoo/gentoo/pull/39042
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
* QA Notice: The ebuild is installing to one or more unexpected paths:
*
* /var/tmp/portage/sys-cluster/legion-9999/image/usr/bin/legion_prof_files
* /var/tmp/portage/sys-cluster/legion-9999/image/usr/bin/serializer_examples
*
* Please fix the ebuild to use correct FHS/Gentoo policy paths.
This message is hard to understand. Is it saying that the resulting
package contains files prefixed with ${D} which would be immensely
broken? Is it saying that these paths are *directories* and the FHS does
not approve of directories in /usr/bin/*/?
In fact, it's the latter. Fix this in two ways:
- clarify that it's an unexpected directory, not just some kind of path
- strip ${D} so that people can better visualize what sort of path gets
installed. This has the downside of not being able to copy/paste the
path in order to inspect the image directory, but I think this is a
very small downside. Usually by the time you see this message, portage
has cleaned up. And if it hasn't, you can still copy/paste that from:
Completed installing sys-cluster/legion-9999 into /var/tmp/portage/sys-cluster/legion-9999/image
Signed-off-by: Eli Schwartz <eschwartz93@gmail.com>
Signed-off-by: Sam James <sam@gentoo.org>
|
|
Check for deprecated .egg and .egg-info files. While at it, fix stray
file check not to barf on *.egg files.
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/34660
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
This is installed by dev-lang/python and dev-python/pypy*.
Historically, we didn't need to exempt them since the check was
in distutils-r1 and these ebuilds did not use it.
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
Bug: https://bugs.gentoo.org/836765
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
Bug: https://bugs.gentoo.org/702016
Bug: https://bugs.gentoo.org/770961
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
Forbid `lib`, `$(get_libdir)` and `usr` as package names, to catch
accidentally duplicating sitedir as prefix.
Bug: https://bugs.gentoo.org/618134
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
This was a case e.g. with =dev-python/pyrqlite-2.2.0.
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
Rename `60python-pyc` check to `60python-site`, as it will be used
to perform other checks on the site-packages directory.
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
Bug: https://bugs.gentoo.org/912354
Signed-off-by: Ulrich Müller <ulm@gentoo.org>
|
|
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
Bug: https://bugs.gentoo.org/869182
Fixes: c310e44692ad91777c71394dda97cd1f33f72589
Signed-off-by: Sam James <sam@gentoo.org>
|
|
This attempts to catch autotools-based tests that will pass without
actually executing any tests due to automagic-based rules like the
presence/absence of a dependency.
(sam: This was written based on my notes for implementation.)
Bug: https://bugs.gentoo.org/848579
Closes: https://github.com/gentoo/gentoo/pull/26237
Signed-off-by: Sam James <sam@gentoo.org>
|
|
During Python target migrations, if portage[-ipc], portageq can't
be invoked as a binary (which has_version does behind the scenes w/ -ipc),
so just call it w/ nonfatal, to avoid aborting the emerge and possibly
hurting the system (imagine python-exec gets upgraded but portage
wasn't yet).
Fails like:
```
${EPREFIX}/Gentoo/usr/lib/python-exec/python3.9/portageq: this Python implementation (python3.9) is not supported by the script.
* ERROR: app-admin/perl-cleaner-2.30::gentoo_prefix failed:
* has_version: unexpected portageq exit code: 127
*
* Call stack:
* misc-functions.sh, line 1334: Called install_qa_check
* misc-functions.sh, line 138: Called source 'install_symlink_html_docs'
* 60python-pyc, line 118: Called python_pyc_check
* 60python-pyc, line 22: Called has_version 'install_hooks'
* phase-helpers.sh, line 986: Called ___best_version_and_has_version_common '${EPREFIX}/Gentoo/var/db/repos/gentoo/metadata/install-qa-check.d/60python-pyc'
* phase-helpers.sh, line 973: Called die
* The specific snippet of code:
* die "${FUNCNAME[1]}: unexpected portageq exit code: ${retval}"
```
Bug: https://bugs.gentoo.org/778014
Signed-off-by: Sam James <sam@gentoo.org>
|
|
Avoid noise on all merges even if no Python files installed. No need
to use siteimpl function as > Python 2.7 (and .. 3.6? 3.7?) it's all
standard anyway.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
Only for EAPI 7+, duh. Not going with the faff of --host-root for EAPI
6 etc for now given it's just an optional check.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
When building libseccomp, say:
```
* Verifying compiled files for python3.9
usage: /usr/lib/python-exec/python3.9/gpep517 [-h] {get-backend,build-wheel,install-wheel} ...
/usr/lib/python-exec/python3.9/gpep517: error: argument command: invalid choice: 'verify-pyc' (choose from 'get-backend', 'build-wheel', 'install-wheel')
strip: i686-pc-linux-gnu-strip --strip-unneeded -N __gentoo_check_ldflags__ -R .comment -R .GCC.command.line -R .note.gnu.gold-version
```
The gpep517 >= dep is in distutils-r1 but this check applies to other
ebuilds. So, use has_version -b.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
Bug: https://bugs.gentoo.org/847436
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
|
|
Without -t, the delimiter (newline) is not stripped
and so elements do not end in .la to be replaced by .a
Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
|
|
Thanks-to: Ionen Wolkens <ionen@gentoo.org>
Signed-off-by: Sam James <sam@gentoo.org>
|
|
Signed-off-by: Agostino Sarubbo <ago@gentoo.org>
|
|
Very similar to tmpfiles.eclass check (60tmpfiles-paths).
Three checks:
1) Verify packages don't install udev rules to /etc/udev/rules.d, which
is a forbidden (user-configuration) location;
2) Check whether packages inherit udev.eclass if they're
installing files to /lib/udev/rules.d/..
(This helps to catch packages not calling udev_reload
in pkg_postinst).
3) Check for missing udev_process calls in pkg_postinst.
Bug: https://bugs.gentoo.org/433916
See: c7fe1066a8fcd35f965de4ea16c9cd1001830642
Signed-off-by: Sam James <sam@gentoo.org>
|
|
Signed-off-by: Sam James <sam@gentoo.org>
|
|
Needs newer Bash.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
Signed-off-by: Sam James <sam@gentoo.org>
|
|
Otherwise we end up not splitting correctly in the loop over files
(file contains two entries).
Signed-off-by: Sam James <sam@gentoo.org>
|
|
Signed-off-by: Sam James <sam@gentoo.org>
|
|
This reverts commit 8226609cee46af93656676350895135dbd910793.
This ends up not matching things like "dev-libs/libltdl:0" and breaks
(false positive) on e.g. imagemagick.
Closes: https://bugs.gentoo.org/839387
Signed-off-by: Sam James <sam@gentoo.org>
|
|
It's a bit cleaner and will hopefully mean we don't catch a hypothetical
libltdl2. Not too stressed over such a possibility anyway.
Thanks-to: michael Orlitzky <mjo@gentoo.org>
Signed-off-by: Sam James <sam@gentoo.org>
|
|
Signed-off-by: Sam James <sam@gentoo.org>
|
|
Signed-off-by: Sam James <sam@gentoo.org>
|
|
Signed-off-by: Sam James <sam@gentoo.org>
|
|
Bug: https://bugs.gentoo.org/832446
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
|
|
Work around broken rsync master script.
Bug: https://bugs.gentoo.org/832446
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
|
|
Remove the DISTUTILS_USE_SETUPTOOLS correctness check that is misfiring
once again (with setuptools-60+). All the special cases it was supposed
to detect are no longer relevant, and the upcoming PEP 517 mode
deprecates DUS entirely.
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
This is a good enough proxy for "this package has a complicated
relationship with tmpfiles" and replaces the hardcoded list of
exemptions.
Closes: https://bugs.gentoo.org/808781
Signed-off-by: Sam James <sam@gentoo.org>
|