Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 144077 - Adding ~* to package.keywords does not allow package to be merged
Summary: Adding ~* to package.keywords does not allow package to be merged
Status: RESOLVED INVALID
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Dependencies (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-08-15 23:37 UTC by Michael Jones
Modified: 2006-08-19 21:19 UTC (History)
0 users

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 Michael Jones 2006-08-15 23:37:07 UTC
Portage 2.1-r2 (default-linux/amd64/2006.0, gcc-3.4.4, glibc-2.3.5-r2, 2.6.16-gentoo-r9 x86_64)
=================================================================
System uname: 2.6.16-gentoo-r9 x86_64 AMD Turion(tm) 64 Mobile Technology MT-40
Gentoo Base System version 1.6.15
app-admin/eselect-compiler: [Not Present]
dev-lang/python:     2.4.2
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     [Not Present]
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.12
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1
sys-devel/binutils:  2.16.1
sys-devel/gcc-config: 1.3.12-r6
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -march=k8"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/lib/X11/xkb /usr/lib64/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/"
CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/revdep-rebuild /etc/splash /etc/terminfo"
CXXFLAGS="-O2 -pipe -march=k8"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks metadata-transfer sandbox sfperms strict"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="amd64 X aac acpi alsa apache2 avi berkdb bitmap-fonts blender-game bluetooth bmpx browserplugin cdparanoia cdr cdrom cdsound cli cpudetection crypt cups dbus dlloader dri dvd dvdr dvdread eds emboss encode exif ffmpeg flac foomaticdb fortran gd gif gnome gpm gstreamer gtk gtk2 imagemagick imap imlib ipod ipv6 irmc isdnlog jabber jack jpeg lame lm_sensors lzw lzw-tiff mad mikmod mozilla mp3 mpeg msn msnextras mysql ncurses nls nptl nsplugin ogg oggvorbis openal openexr opengl openssl pam pcre pda pdflib perl png pppd python qt3 qt4 quicktime readline reflection samba sdl sensord session spell spl ssl tcl tcltk tcpd tiff transmitter truetype-fonts type1-fonts udev usb visual visualization vnc vorbis xchatdccserver xine xinerama xml xmlreader xmlwriter xmms xorg xpm xscreensaver xv yahoo zlib elibc_glibc input_devices_keyboard input_devices_mouse input_devices_evdev kernel_linux userland_GNU"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_RSYNC_EXTRA_OPTS


I've noticed recently that I've had a couple of packages show up as missing keyword, and adding app-group/package ~* to package.keywords doesn't seem to have an effect.  

I've tried several combinations of the ~arch, ~*, -*, and even the word missing as flags... as well as trying putting the package in package.unmask.. to no avail.  It has worked in the past, and I'm reasonably sure it stopped working after my last portage update.  I'm currently on portage 2.1-r2. Re-emerging portage didn't help either.

The package that I'm trying to merge right now is x11-plugins/autoprofile, but others (including hfsplusutils) did the same thing.
Comment 1 Jakub Moc (RETIRED) gentoo-dev 2006-08-15 23:43:47 UTC
echo "x11-plugins/autoprofile x86" >> /etc/portage/package.keywords; emerge autoprofile
Comment 2 SpanKY gentoo-dev 2006-08-19 10:55:37 UTC
~* used to work ... i specifically requested it ;)

useful for doing porting to a new architecture
Comment 3 Alec Warner (RETIRED) archtester gentoo-dev Security 2006-08-19 13:07:09 UTC
(In reply to comment #2)
> ~* used to work ... i specifically requested it ;)
> 
> useful for doing porting to a new architecture
> 

~* = match any unstable keyword on any arch for which an unstable keyword is listed
* = match any stable keyword on any arch for which a stable keyword is listed

If you want it to match all the time use both (assuming no package has KEYWORDS="" which would match nothing).
Comment 4 Michael Jones 2006-08-19 13:59:27 UTC
(In reply to comment #3)

So, if the keyword is missing for a given arch, which would work?  It's neither stable or unstable, since there is no keyword given for the arch.

I would assume that should imply the build as unstable, which is why the docs say to use ~*.  Actually one page I saw showed an example with ~* -*, but neither have worked.

I have used ~* in the past for a missing keyword on this same machine and it worked perfectly, but since the last time I updated portage it's as if emerge ignores the ~*, telling me the build is still blocked because of missing keyword.
Comment 5 SpanKY gentoo-dev 2006-08-19 14:44:52 UTC
if no KEYWORD is specified, then it defaults to ~ARCH (whatever your host ARCH is)

if the behavior Antarus describes in Comment #3 still exists (i didnt verify), then i'm happy
Comment 6 Michael Jones 2006-08-19 16:03:18 UTC
(In reply to comment #5)

So, if I am to understand correctly, then it defaults to ~arch -- in my case ~amd64.  So if the package has KEYWORDS="x86 ppc", that leaves a missing keyword for amd64, so should not ~* allow the package to be installed? 

That's how the docs say it should be, and that's what makes the most sense, since it effectively would be unstable for the untested arch.  Using * in keywords does appear to work, but previously ~* worked as well.  If it should infact require you to use only * for an unlisted arch, that needs to be updated in the docs... but it still doesn't make sense to me since the missing keyword indicates the package has not been tested on the arch, let alone confirmed as stable (and according to comment #3... * is used for stable only, ~* should be for unstable).  

As you said, if the keyword is not specified it should default to ~arch, or in the case of missing keyword, ~*.


> if no KEYWORD is specified, then it defaults to ~ARCH (whatever your host ARCH
> is)
> 
> if the behavior Antarus describes in Comment #3 still exists (i didnt verify),
> then i'm happy
> 
Comment 7 SpanKY gentoo-dev 2006-08-19 16:17:36 UTC
no, the behavior you're seeing is correct

i dont know what docs you're referring to, but i think you just read them wrong

if the ebuild has KEYWORDS="x86 ppc", then you would need '*' in package.keywords, not '~*'

as for defaulting to a global glob, i dont like that idea ... if a user is trying to install a package that has not been installed on their architecture, then they need to explicitly state which arch they'd like to fake out
Comment 8 Michael Jones 2006-08-19 16:40:08 UTC
(In reply to comment #7)

As for the docs, I've found instruction to use ~* or ~arch in a couple places, including the gentoo-wiki site and the official gentoo documentation:

http://www.gentoo.org/doc/en/gentoo-amd64-faq.xml#keyword
http://gentoo-wiki.com/Masked#Masked_by_missing_keyword

I agree that you should need to specify the arch... which is why explicitly stating app-cat/package ~amd64 in package.keywords seems like it would make more sense than just putting a * to allow all arches.

Either way I guess it works for me, I'll just use * but I think it'd be better to have some way to specify in the keywords to allow building on a specific arch if the keyword for that arch is missing, regardless of what other keywords were specified in the build.  

If I want to build a package that has no keyword for my arch, I shouldn't have to check the build to see whether or not it has keywords for other arches to determine what kind of keyword to put, and while putting * ~* as mentioned in #3 above works, it seems like putting something like ~arch (or %arch or ^arch or whatever you prefer) to explicitly say "yes I know the keyword is missing, build it anyways for this arch) would be better.

Just my $0.02.

> no, the behavior you're seeing is correct
> 
> i dont know what docs you're referring to, but i think you just read them wrong
> 
> if the ebuild has KEYWORDS="x86 ppc", then you would need '*' in
> package.keywords, not '~*'
> 
> as for defaulting to a global glob, i dont like that idea ... if a user is
> trying to install a package that has not been installed on their architecture,
> then they need to explicitly state which arch they'd like to fake out
> 

Comment 9 SpanKY gentoo-dev 2006-08-19 21:19:55 UTC
installing packages that have not been tested on your arch is not a trivial matter so trying to do so should not be trivial either

you need to know what you're getting yourself into