Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 586714 - Loosen package.provided syntax
Summary: Loosen package.provided syntax
Status: RESOLVED DUPLICATE of bug 277838
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Configuration (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-06-22 14:35 UTC by Martin Mokrejš
Modified: 2020-05-15 06:37 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Mokrejš 2016-06-22 14:35:50 UTC
Hi Zac,
  I see Gentoo:Prefix users used to advise to place in /etc/portage/profile/package.provided  e.g.:
sys-libs/glibc

  This is not possible anymore, I need to specify a version and without leading '='. It is awkward, on a Prefix host I really want to avoid glibc, kmod, pciutils, etc.

  See http://how-to.wikia.com/wiki/How_to_install_Gentoo_emerge_on_a_non-Gentoo_Distribution_of_Linux

Thank you

# emerge --info
Portage 2.2.28-prefix (python 2.7.11-final-0, prefix/linux/amd64, gcc-5.3.0, unavailable, 2.6.32-573.12.1.el6.Bull.88.x86_64 x86_64)
=================================================================
System uname: Linux-2.6.32-573.12.1.el6.Bull.88.x86_64-x86_64-Intel-R-_Xeon-R-_CPU_E5-2670_0_@_2.60GHz-with-redhat-6.4-Santiago
KiB Mem:   131942764 total,  30106836 free
KiB Swap:   65536128 total,  65525100 free
Timestamp of repository gentoo_prefix: Mon, 20 Jun 2016 21:57:56 +0000
sh bash 4.3_p39
ld GNU ld (Gentoo 2.24 p1.3) 2.24
app-shells/bash:          4.3_p39::gentoo_prefix
dev-java/java-config:     2.2.0-r3::gentoo_prefix
dev-lang/perl:            5.24.0-r1::gentoo_prefix
dev-lang/python:          2.7.11::gentoo_prefix
dev-util/cmake:           3.5.2-r1::gentoo_prefix
dev-util/pkgconfig:       0.29.1::gentoo_prefix
sys-devel/autoconf:       2.69::gentoo_prefix
sys-devel/automake:       1.13.4::gentoo_prefix, 1.14.1::gentoo_prefix, 1.15::gentoo_prefix
sys-devel/binutils:       2.24-r2::gentoo_prefix
sys-devel/gcc:            4.2.4-r2::gentoo_prefix, 4.8.5::gentoo_prefix, 4.9.3::gentoo_prefix, 5.3.0::gentoo_prefix
sys-devel/gcc-config:     1.8-r1::gentoo_prefix
sys-devel/libtool:        2.4.6-r1::gentoo_prefix
sys-devel/make:           4.2.1::gentoo_prefix
sys-kernel/linux-headers: 4.6::gentoo_prefix (virtual/os-headers)
Repositories:

gentoo_prefix
    location: /scratch/mmokrejs/gentoo/usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.prefix.bitzolder.nl/gentoo-portage-prefix
    priority: -1000
    aliases: gentoo

science
    location: /scratch/mmokrejs/gentoo/var/lib/layman/science
    masters: gentoo_prefix
    priority: 0

haskell
    location: /scratch/mmokrejs/gentoo/var/lib/layman/haskell
    masters: gentoo_prefix
    priority: 1

x-layman
    location: /scratch/mmokrejs/gentoo/var/lib/layman
    masters: gentoo_prefix
    priority: 2

ACCEPT_KEYWORDS="~amd64-linux"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -O2 -pipe -march=native"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -pipe -O2 -pipe -march=native"
DISTDIR="/scratch/mmokrejs/gentoo/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs case-insensitive-fs collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles force-prefix merge-sync news parallel-fetch preserve-libs protect-owned sfperms strict unknown-features-warn unmerge-logs unmerge-orphans unprivileged userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://gentoo.wheel.sk/ http://ftp.fi.muni.cz/pub/linux/gentoo/ http://gentoo.mirror.web4u.cz/ rsync://gentoo.mirror.dkm.cz/gentoo/ ftp://gentoo.mirror.web4u.cz/"
LDFLAGS="-Wl,-O1"
MAKEOPTS="-j4"
PKGDIR="/scratch/mmokrejs/gentoo/usr/portage/packages"
PORTAGE_CONFIGROOT="/scratch/mmokrejs/gentoo/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/scratch/mmokrejs/gentoo/var/tmp"
USE="amd64 berkdb bzip2 cli cracklib crypt cxx dri fortran gdbm iconv ipv6 mmx mmxext modules ncurses nls nptl openmp pcre prefix prefix-guest readline seccomp session sse sse2 ssl tcpd unicode zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7" RUBY_TARGETS="ruby20 ruby21" USERLAND="GNU" VIDEO_CARDS="amdgpu fbdev intel nouveau radeon radeonsi vesa dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
USE_PYTHON="2.7"
Unset:  CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 SpanKY gentoo-dev 2016-06-22 15:07:09 UTC
i'm not sure package.provided ever allowed unversioned atoms.  it's needed because packages will do things like ">=sys-apps/kmod-20" and portage has to know what version you've provided an equivalent for.  conversely, if you provided a new version, but a package wants an older, portage needs to compare that too.

i suspect it's difficult in the depresolver to inject a new type that will behave correctly in all cases.  for example, if a package had a blocker against an old version, presumably you wouldn't want it to get flagged (on the assumption you provided a newer one).  but you would want it to block if no version was specified.

seems easier to just force people to stick a version on there.
Comment 2 Martin Mokrejš 2016-06-23 10:10:21 UTC
(In reply to SpanKY from comment #1)
> i suspect it's difficult in the depresolver to inject a new type that will
> behave correctly in all cases.  for example, if a package had a blocker
> against an old version, presumably you wouldn't want it to get flagged (on
> the assumption you provided a newer one).  but you would want it to block if
> no version was specified.
> 
> seems easier to just force people to stick a version on there.

On a Gentoo:Prefix-ed installation, you want to avoid sys-libs/glibc altogether, likewise sys-apps/kmod, pciutils, etc. Possibly also many apps with SUID binaries because you cannot give away file perms, you cannot create the SUID bit, cannot even mount a filesystem as root, etc. In overall, updating the version numbers would be a boring task and truly a nightmare. Adding alt@ for eventual comments.
Comment 3 Arfrever Frehtes Taifersar Arahesis 2020-05-14 23:39:02 UTC

*** This bug has been marked as a duplicate of bug 277838 ***
Comment 4 Michael Haubenwallner (RETIRED) gentoo-dev 2020-05-15 06:37:14 UTC
(In reply to Martin Mokrejš from comment #2)
> On a Gentoo:Prefix-ed installation, you want to avoid sys-libs/glibc
> altogether, likewise sys-apps/kmod, pciutils, etc. Possibly also many apps
> with SUID binaries because you cannot give away file perms, you cannot
> create the SUID bit, cannot even mount a filesystem as root, etc. In
> overall, updating the version numbers would be a boring task and truly a
> nightmare. Adding alt@ for eventual comments.

When you do have glibc in your Prefix, then you have the "Standalone Prefix" (having "~amd64" style keywords), which is the default choice on Linux.
To omit glibc and similar from Prefix, you want the "Guest Prefix" instead (having "~amd64-linux" style keywords), which you get when PREFIX_DISABLE_RAP=yes environment variable is set during bootstrap, like:

$ PREFIX_DISABLE_RAP=yes ./bootstrap-prefix.sh ...