Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
KEYWORDs="*" - What does this mean, and how to mask?
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
kai.scorpio
n00b
n00b


Joined: 01 Sep 2011
Posts: 46

PostPosted: Thu Mar 14, 2013 2:54 pm    Post subject: KEYWORDs="*" - What does this mean, and how to mas Reply with quote

Hi all,

I've recently added the 'progress' overlay, with the reasoning that it's in the main funtoo portage tree so shouldn't be horribly broken, and I need it to install Django-1.5. The only problem I've had so far is the installation of dev-lang/python-x.x.x_pre* packages. These are all labelled with KEYWORDS="*", which comes through in eix:

Code:

eix -se python                             
[U] dev-lang/python
     Available versions: 
        (2.5)   2.5.4-r4 ~2.5.4-r5
        (2.6)   2.6.8 ~2.6.8-r1 2.6.8-r1000[1]
        (2.7)   2.7.3-r2{tbz2} ~2.7.3-r3{tbz2} 2.7.3-r1000[1] [m]*2.7.4_pre20130210[1] [m]**2.7.4_pre20130224[1] [m]*2.7.4_pre20130303[1] [m]*2.7.4_pre20130310[1]
        (3.0)   ~3.0.1[1]
        (3.1)   3.1.5 ~3.1.5-r1 3.1.5-r1000[1]
        (3.2)   3.2.3 ~3.2.3-r1{tbz2} ~3.2.3-r2{tbz2} 3.2.3-r1000[1] [m]*3.2.4_pre20130210[1] [m]*3.2.4_pre20130224[1] [m]*3.2.4_pre20130303[1] [m]*3.2.4_pre20130310[1]
        (3.3)   (**)3.3.0{tbz2} (**)3.3.0-r1{tbz2} [M](~)3.3.0-r1000[1] [M](~*)3.3.1_pre20130210[1] [M](~*)3.3.1_pre20130224[1] [M](~*)3.3.1_pre20130303[1] [M](~*)3.3.1_pre20130310[1]
        (3.4)   [M]~*3.4_pre20130210[1] [M]~*3.4_pre20130224[1] [M]~*3.4_pre20130303[1] [M]~*3.4_pre20130310[1]
        {{-berkdb build doc elibc_uclibc examples gdbm ipv6 +ncurses +readline sqlite +ssl +threads tk +wide-unicode wininst +xml}}
     Installed versions:  2.7.3-r3(2.7){tbz2}(19:44:57 16/12/12)(gdbm ipv6 ncurses readline sqlite ssl threads wide-unicode xml -berkdb -build -doc -elibc_uclibc -examples -tk -wininst) 3.2.3-r2(3.2){tbz2}(19:47:39 16/12/12)(gdbm ipv6 ncurses readline sqlite ssl threads wide-unicode xml -build -doc -elibc_uclibc -examples -tk -wininst) 3.3.0-r1(3.3){tbz2}(12:22:57 24/02/13)(gdbm ipv6 ncurses readline sqlite ssl threads xml -build -doc -elibc_uclibc -examples -tk -wininst)
     Homepage:            http://www.python.org/
     Description:         Python is an interpreted, interactive, object-oriented programming language.

[1] "progress" /var/lib/layman/progress


I have only unmasked the following in package.keywods: dev-lang/python:3.3 **

However, it still insists on installing all these pre-release packages for the 2.7 and 3.2 slots, is there a simple way to mask them all?

Kai
Back to top
View user's profile Send private message
eyoung100
Veteran
Veteran


Joined: 23 Jan 2004
Posts: 1428

PostPosted: Thu Mar 14, 2013 6:05 pm    Post subject: Reply with quote

Code:
/etc/portage/package.mask
>=dev-lang/python-3.3.0-r1000

but I believe they are already masked as per the m's

m = masked by keyword
M = Hard Masked by Profile
_________________
The Birth and Growth of Science is the Death and Atrophy of Art -- Unknown
Registerd Linux User #363735
Adopt a Post | Strip Comments| Emerge Wrapper
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21633

PostPosted: Fri Mar 15, 2013 1:33 am    Post subject: Reply with quote

I believe modern Portage allows you to write a repository-specific mask, such as dev-lang/python::progress, which would mask all versions of Python from the progress overlay, but leave Python from other sources untouched.
Back to top
View user's profile Send private message
khayyam
Watchman
Watchman


Joined: 07 Jun 2012
Posts: 6227
Location: Room 101

PostPosted: Fri Mar 15, 2013 12:37 pm    Post subject: Reply with quote

kai.scorpio, et al ...

I would add to Hu's comment re repository-specific keywording and say that in general its a good idea to mask the whole repo, and then specifically unmask packages from that repo. The reason for this being that should a package be keyworded above that of the same package in ::gentoo then you may inadvertantly install the repo's package when doing 'emerge --update'. To avoid such things:

/etc/portage/package.mask
Code:
# mask all packages from the progress repo/overlay
*/*::progress

/etc/portage/package.unmask
Code:
# unmask a specific package
<category>/<package>::progress

You can similarly keyword the package from a specific repo using:

/etc/portage/package.accept_keywords
Code:
# accept ~arch keyword on package from the progress repo/overlay
<category>/<package>::progress

HTH & best ... khay
Back to top
View user's profile Send private message
kai.scorpio
n00b
n00b


Joined: 01 Sep 2011
Posts: 46

PostPosted: Fri Mar 15, 2013 2:35 pm    Post subject: Reply with quote

Great tips so far, thanks all. I didn't know about the category/package::overlay syntax, handy and that's effectively worked around my problem. I would like to specifically block the * - keyworded packages though, since they are the ones causing trouble, so...

The original question still stands - what is the * keyword, why is portage installing packages with it and how do I block them?

eix -se python:
Code:

[I] dev-lang/python
     Available versions: 
        (2.5)   2.5.4-r4 ~2.5.4-r5
        (2.6)   2.6.8 ~2.6.8-r1 2.6.8-r1000[1]
        (2.7)   2.7.3-r2{tbz2} ~2.7.3-r3{tbz2} 2.7.3-r1000{tbz2}[1] *2.7.4_pre20130210[1] **2.7.4_pre20130224[1] *2.7.4_pre20130303[1] *2.7.4_pre20130310[1]
        (3.0)   ~3.0.1[1]
        (3.1)   3.1.5 ~3.1.5-r1 3.1.5-r1000[1]
        (3.2)   3.2.3 ~3.2.3-r1{tbz2} ~3.2.3-r2{tbz2} 3.2.3-r1000{tbz2}[1] *3.2.4_pre20130210[1] *3.2.4_pre20130224[1] *3.2.4_pre20130303[1] *3.2.4_pre20130310[1]
        (3.3)   (**)3.3.0{tbz2} (**)3.3.0-r1{tbz2} [M](~)3.3.0-r1000[1] [M](~*)3.3.1_pre20130210[1] [M](~*)3.3.1_pre20130224[1] [M](~*)3.3.1_pre20130303[1] [M](~*)3.3.1_pre20130310[1]
        (3.4)   [M]~*3.4_pre20130210[1] [M]~*3.4_pre20130224[1] [M]~*3.4_pre20130303[1] [M]~*3.4_pre20130310[1]
        {{-berkdb build doc elibc_uclibc examples gdbm ipv6 +ncurses +readline sqlite +ssl +threads tk +wide-unicode wininst +xml}}
     Installed versions:  2.7.3-r1000(2.7){tbz2}[1](16:21:32 14/03/13)(gdbm ipv6 ncurses readline sqlite ssl threads wide-unicode xml -berkdb -build -doc -elibc_uclibc -examples -tk -wininst) 3.2.3-r1000(3.2){tbz2}[1](17:12:06 14/03/13)(gdbm ipv6 ncurses readline sqlite ssl threads wide-unicode xml -build -doc -elibc_uclibc -examples -tk -wininst) 3.3.0-r1(3.3){tbz2}(12:22:57 24/02/13)(gdbm ipv6 ncurses readline sqlite ssl threads xml -build -doc -elibc_uclibc -examples -tk -wininst)
     Homepage:            http://www.python.org/
     Description:         Python is an interpreted, interactive, object-oriented programming language.

[1] "progress" /var/lib/layman/progress


emerge -pu python:
Code:

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild     U  ] dev-lang/python-2.7.4_pre20130310 [2.7.3-r1000]
[ebuild     U  ] dev-lang/python-3.2.4_pre20130310 [3.2.3-r1000]


emerge --info
Code:
Portage 2.1.11.52 (default/linux/amd64/13.0/desktop/kde, gcc-4.6.3, glibc-2.15-r3, 3.7.9-gentoo x86_64)
=================================================================
System uname: Linux-3.7.9-gentoo-x86_64-Intel-R-_Core-TM-2_Quad_CPU_Q6600_@_2.40GHz-with-gentoo-2.1
KiB Mem:     4050732 total,   1805968 free
KiB Swap:    4194300 total,   4143332 free
Timestamp of tree: Wed, 13 Mar 2013 22:30:01 +0000
ld GNU ld (GNU Binutils) 2.22
ccache version 3.1.9 [disabled]
app-shells/bash:          4.2_p37
dev-java/java-config:     2.1.12-r1000::progress
dev-lang/python:          2.7.3-r1000::progress, 3.2.3-r1000::progress, 3.3.0-r1
dev-util/ccache:          3.1.9
dev-util/cmake:           2.8.9
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.1-r1
sys-apps/openrc:          0.11.8
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.11.6
sys-devel/binutils:       2.22-r1
sys-devel/gcc:            4.6.3
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4-r1
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.6 (virtual/os-headers)
sys-libs/glibc:           2.15-r3
Repositories: gentoo kde sunrise progress x-portage
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -fomit-frame-pointer -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/openvpn/easy-rsa /usr/share/themes/oxygen-gtk/gtk-2.0 /var/lib/hsqldb"
CONFIG_PROTECT_MASK="${EPREFIX}/etc/gconf /etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=native -O2 -fomit-frame-pointer -pipe"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs buildpkg config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/ http://gentoo.mneisen.org/ http://gentoo.mirror.dkm.cz/pub/gentoo/ rsync://rsync.de.gentoo.org/gentoo-portage"
LANG="en_GB.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/kde /var/lib/layman/sunrise /var/lib/layman/progress /usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi alsa amd64 avahi berkdb bluetooth bonjour branding bzip2 cairo cdda cdr cjk cli consolekit cracklib crypt cups cxx dbus declarative dri dts dvd dvdr emboss encode exif fam firefox flac fortran gdbm gif gpm iconv ipv6 jpeg kde kerberos kipi lcms ldap libnotify mad mmx mng modules mp3 mp4 mpeg mudflap multilib ncurses nls nptl ogg opengl openmp pam pango pcre pdf phonon plasma png pni policykit ppds pulseaudio qt3support qt4 readline samba sdl semantic-desktop session spell sse sse2 sse3 ssl ssse3 startup-notification svg symlink tcpd tiff truetype udev udisks unicode upower usb vorbis wxwidgets x264 xcb xcomposite xinerama xml xscreensaver xv xvid zeroconf 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" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" 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 rewrite auth_digest" APACHE2_MPMS="prefork" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" DRACUT_MODULES="plymouth caps" 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 ubx" INPUT_DEVICES="evdev wacom" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" NETBEANS_MODULES="java apisupport websvccommon cnd profiler" PHP_TARGETS="php5-3" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" QEMU_SOFTMMU_TARGETS="x86_64" QEMU_USER_TARGETS="x86_64" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="nouveau nvidia" 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"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON


Kai
Back to top
View user's profile Send private message
eyoung100
Veteran
Veteran


Joined: 23 Jan 2004
Posts: 1428

PostPosted: Fri Mar 15, 2013 2:56 pm    Post subject: Reply with quote

khayyam wrote:
kai.scorpio, et al ...

/etc/portage/package.mask
Code:
# mask all packages from the progress repo/overlay
*/*::progress

/etc/portage/package.unmask
Code:
# unmask a specific package
<category>/<package>::progress

You can similarly keyword the package from a specific repo using:
/etc/portage/package.accept_keywords
Code:
# accept ~arch keyword on package from the progress repo/overlay
<category>/<package>::progress

HTH & best ... khay


Masking the overlay, will mask the * packages, as he stated. The * keyword is for a package with no arch keywords, meaning in the official ::gentoo tree this package is Hardmasked until it completes proper testing.

Normal Testing routine is:
  1. New Package > Sunrise Overlay
  2. Sunrise overlay to ~arch
  3. ~arch to arch

For a package like Python, which is assigned to a HERD (python@gentoo.org), the order is:
  1. Hard-Masked for testing. See /usr/portage/profiles/<profile>/base/use.mask IIRC. By adding an overlay, you overrode the default behavior
  2. A bug is filed for the masked package with the keyword TRACKER. Python's tracker bug is: (python-3.3) [TRACKER] Python-3.3 incompatible packages
  3. The bug Contains Depends On Bugs, The Depends On Bugs are marked as Blockers. Blockers keep a bug from being closed until the Blocker itself is Closed
  4. After the Tracking Bug is Closed the package is moved into ~arch and then to arch.

All in all, the process can take anywhere from 3 months to a year...
_________________
The Birth and Growth of Science is the Death and Atrophy of Art -- Unknown
Registerd Linux User #363735
Adopt a Post | Strip Comments| Emerge Wrapper
Back to top
View user's profile Send private message
khayyam
Watchman
Watchman


Joined: 07 Jun 2012
Posts: 6227
Location: Room 101

PostPosted: Fri Mar 15, 2013 3:10 pm    Post subject: Reply with quote

eyoung100 wrote:
Masking the overlay, will mask the * packages, as he stated. The * keyword is for a package with no arch keywords, meaning in the official ::gentoo tree this package is Hardmasked until it completes proper testing.

eyoung100 ... yes, I know, and in the above example I masked the overlay, and unmasked a specific package from that overlay. I was meerly following on from Hu's comment re "repository-specific masks" and how they can be implimented, so I'm missing your point somewhat.

best ... khay
Back to top
View user's profile Send private message
eyoung100
Veteran
Veteran


Joined: 23 Jan 2004
Posts: 1428

PostPosted: Fri Mar 15, 2013 3:19 pm    Post subject: Reply with quote

That isn't what I intended. Masking the entire overlay and then unmasking particular pieces is the proper way to go. Kai asked what the * keyword meant. I couldn't explain it without using your post as a baseline, although sometimes I do think users miss the point as to why packages are hard masked. Unmasking them is not supposed to be an easy process which is why it requires 4 files to do properly 8O This post caught my eye after having to unmask Python 3.3 for blender
_________________
The Birth and Growth of Science is the Death and Atrophy of Art -- Unknown
Registerd Linux User #363735
Adopt a Post | Strip Comments| Emerge Wrapper
Back to top
View user's profile Send private message
khayyam
Watchman
Watchman


Joined: 07 Jun 2012
Posts: 6227
Location: Room 101

PostPosted: Fri Mar 15, 2013 3:52 pm    Post subject: Reply with quote

eyoung100 wrote:
That isn't what I intended. Masking the entire overlay and then unmasking particular pieces is the proper way to go. Kai asked what the * keyword meant. I couldn't explain it without using your post as a baseline.

eyoung100 ... I see, I'd thought you were responding to me directly ... and so was puzzled.

best ... khay
Back to top
View user's profile Send private message
eyoung100
Veteran
Veteran


Joined: 23 Jan 2004
Posts: 1428

PostPosted: Fri Mar 15, 2013 5:15 pm    Post subject: Reply with quote

i was responding to kai
_________________
The Birth and Growth of Science is the Death and Atrophy of Art -- Unknown
Registerd Linux User #363735
Adopt a Post | Strip Comments| Emerge Wrapper
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum