public inbox for gentoo-user@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-user] emerge --newuse misses package that new USE affects
@ 2005-11-24 15:52 glen martin
  2005-11-24 16:06 ` Holly Bostick
                   ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: glen martin @ 2005-11-24 15:52 UTC (permalink / raw
  To: gentoo-user

I've googled and scanned recent messages archive of this list for this
issue - if I'm blind, apologies in advance.

I've changed some USE flags deliberately to add features to a package
(in this case, apache).  That package is also impacted by different
ACCEPT_KEYWORDS flag ("~86"), which I've specified in
/etc/portage/package.keywords

Despite the USE change, I find that that apache is not being caught by
"emerge --newuse world".  My expectation is that "--newuse world" will
rebuild everything that a new USE impacts.

So do I horribly misunderstand --newuse, or have I configured something
wrong, or does it not work with package.keywords, or is there a bug
someone would like more data on before I manually rebuild the various
packages in in my system that need it and blow the symptoms away?

I added "threads nptlonly mpm-worker" to USE in make.conf.  I've
probably made some other changes to USE since my last world rebuild. 
I've also done an emerge --sync. Then:

<snip>
# emerge --update --deep --newuse --pretend --verbose world

These are the packages that I would merge, in order:

Calculating world dependencies ...done!
[ebuild   R   ] sys-libs/ncurses-5.4-r6  -bootstrap -build -debug -doc
-gpm* -minimal -nocxx -unicode 0 kB
[ebuild     U ] sys-devel/gcc-config-1.3.12-r4 [1.3.12-r3] 0 kB
[ebuild     U ] sys-devel/binutils-config-1.8-r6 [1.8-r5] 0 kB
[ebuild     U ] sys-devel/binutils-2.16.1 [2.15.92.0.2-r10] -multislot
-multitarget +nls -test 12,392 kB
[ebuild   R   ] sys-devel/gcc-3.3.6  (-altivec) -bootstrap
-boundschecking -build -fortran* -gcj -gtk +hardened -ip28 -mudflap
(-multilib) -multislot (-n32) (-n64) +nls -nocxx -nopie -nossp -objc
-objc-gc -vanilla 0 kB
[ebuild   R   ] sys-libs/glibc-2.3.5-r2  -build -erandom -glibc-compat20
-glibc-omitfp +hardened -linuxthreads-tls (-multilib) +nls +nptl
+nptlonly* +pic -profile (-selinux) +userlocales 0 kB
[ebuild     U ] sys-apps/man-pages-2.13 [2.11] +nls 1,670 kB
[ebuild   R   ] sys-apps/grep-2.5.1-r8  -build +nls +pcre* -static 0 kB
[ebuild   R   ] dev-lang/python-2.4.2  -X +berkdb -bootstrap -build -doc
+gdbm -ipv6* +ncurses -nocxx +readline +ssl -tcltk -ucs2 0 kB
[ebuild   R   ] sys-libs/db-4.2.52_p2  -bootstrap -doc +java* -nocxx
-tcltk 0 kB
[ebuild   R   ] sys-apps/tcp-wrappers-7.6-r8  -ipv6* 0 kB
[ebuild   R   ] app-editors/nano-1.3.7  -build -debug -justify +ncurses
+nls -nomac -slang -spell* -unicode 0 kB
[ebuild   R   ] net-misc/wget-1.10.2  -build -debug -ipv6* +nls -socks5
+ssl -static 0 kB
[ebuild   R   ] net-dns/bind-9.2.5-r6  +berkdb -bind-mysql -dlz -doc
+idn* -ipv6 +ldap +mysql -odbc -postgres (-selinux) +ssl +threads* 0 kB
[ebuild   R   ] net-misc/openssh-4.2_p1  -X509 -chroot -hpn -ipv6*
-kerberos +ldap* -libedit +pam (-selinux) -sftplogging -skey -smartcard
-static +tcpd 58 kB
[ebuild     U ] app-crypt/hashalot-0.3-r1 [0.3] 0 kB
[ebuild   R   ] dev-java/commons-pool-1.2  -doc -jikes +junit* 0 kB
[ebuild   R   ] dev-java/commons-net-1.3.0-r1  -doc -examples -jikes
+junit* -source 0 kB
[ebuild   R   ] dev-java/commons-digester-1.6-r1  -doc -jikes +junit*
-source 0 kB
[ebuild   R   ] dev-php/php-4.4.0-r4  -X +berkdb +crypt +curl* -debug
-doc -fdftk -firebird -flash -freetds -gd -gd-external +gdbm +gmp*
-hardenedphp +imap -informix -ipv6 +java -jpeg -kerberos +ldap -mcal
-memlimit -mssql +mysql +ncurses +nls -oci8 -odbc +pam -png -postgres
+readline -snmp -spell +ssl -tiff -truetype +xml2 -yaz 0 kB
[ebuild   R   ] app-editors/vim-6.4  -acl -bash-completion -cscope -gpm*
-minimal +nls +perl +python -ruby -vim-with-x 0 kB
[ebuild   R   ] net-misc/iputils-021109-r3  -doc -ipv6* -static 0 kB

Total size of downloads: 14,122 kB
</snip>

note the lack of apache.  Now:

<snip>
# emerge --pretend --verbose apache

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild   R   ] net-www/apache-2.0.55  +apache2 -debug -doc +ldap
-mpm-leader -mpm-peruser -mpm-prefork -mpm-threadpool +mpm-worker*
-no-suexec (-selinux) +ssl -static-modules +threads* 0 kB

Total size of downloads: 0 kB
</snip>

As you see, apache is already installed. By the '*'s, emerge seems to
have noted the USE change.  also

<snip>
# equery uses apache
[ Searching for packages matching apache... ]
[ Colour Code : set unset ]
[ Legend    : Left column  (U) - USE flags from make.conf              ]
[           : Right column (I) - USE flags packages was installed with ]
[ Found these USE variables for net-www/apache-2.0.55 ]
 U I
 + + apache2        : Chooses Apache2 support when a package supports
both Apache1 and Apache2
 - - debug          : Tells configure and the makefiles to build for
debugging. Effects vary across packages, but generally it will at least
add -g to CFLAGS. Remember to set FEATURES=nostrip too
 - - doc            : Adds extra documentation (API, Javadoc, etc)
 + + ldap           : Adds LDAP support (Lightweight Directory Access
Protocol)
 - - mpm-leader     : <unknown>
 - - mpm-peruser    : <unknown>
 - - mpm-prefork    : <unknown>
 - - mpm-threadpool : <unknown>
 + - mpm-worker     : <unknown>
 - - no-suexec      : Don't install suexec with apache
 + + ssl            : Adds support for Secure Socket Layer connections
 - - static-modules : Build modules into apache instead of having them
load at run time
 + - threads        : Adds threads support for various packages. Usually
pthreads
 - - selinux        : !!internal use only!! Security Enhanced Linux
support, this must be set by the selinux profile or breakage will occur
</snip>

shows the uses change pretty clearly as well.

So, any thoughts on why "emerge --newuse" doesn't want to rebuild
apache? Again, misunderstanding on my part? Or bug? Or misconfiguration?

thanks in advance.

glen

PS FWIW, Here is my emerge --info:
<snip>
# emerge --info
Portage 2.0.51.22-r3 (default-linux/x86/2005.1, gcc-3.3.6,
glibc-2.3.5-r2, 2.6.11-hardened-r15_third i686)
=================================================================
System uname: 2.6.11-hardened-r15_third i686 VIA Samuel 2
Gentoo Base System version 1.6.13
dev-lang/python:     2.3.5, 2.4.2
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.15.92.0.2-r10
sys-devel/libtool:   1.5.20
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i586-pc-linux-gnu"
CFLAGS="-Os -march=c3 -m3dnow -mmmx -pipe -fomit-frame-pointer"
CHOST="i586-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config
/usr/share/config /var/bind /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-Os -march=c3 -m3dnow -mmmx -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks sandbox sfperms strict"
GENTOO_MIRRORS="http://gentoo.chem.wisc.edu/gentoo/
http://cudlug.cudenver.edu/gentoo/"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.us.gentoo.org/gentoo-portage"
USE="x86 apache2 berkdb bzip2 clamav crypt cups curl expat gdbm gmp
hardened idn imap innodb java junit ldap libg++ libwww lm_sensors mhash
mpm-worker mysql mysqli ncurses nls nptl nptlonly pam pcre perl php pic
python readline sapdb sockets ssl tcpd threads udev xml2 zlib
userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTDIR_OVERLAY
</snip>

And here is my package.keywords:
<snip>
dev-perl/Msql-Mysql-modules ~x86
www-servers/tomcat ~x86
dev-libs/apr ~x86
dev-libs/apr-util ~x86
net-www/apache ~x86
dev-java/struts ~x86
dev-java/struts-legacy ~x86
dev-java/commons-validator ~x86
perl-core/Storable ~x86
dev-perl/PlRPC ~x86
dev-perl/DBI ~x86
dev-perl/DBD-mysql ~x86
net-nds/openldap ~x86
dev-java/ant-core ~x86
app-arch/unzip ~x86
dev-java/bsh ~x86
dev-java/log4j ~x86
dev-java/commons-net ~x86
dev-java/jdepend ~x86
dev-java/gnu-crypto ~x86
dev-java/jsch ~x86
dev-java/antlr ~x86
dev-java/ant-tasks ~x86
dev-java/ant ~x86
dev-java/commons-daemon ~x86

</snip>

-- 
gentoo-user@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-user] emerge --newuse misses package that new USE affects
  2005-11-24 15:52 [gentoo-user] emerge --newuse misses package that new USE affects glen martin
@ 2005-11-24 16:06 ` Holly Bostick
  2005-11-24 19:01   ` glen martin
  2005-11-24 16:30 ` Roy Wright
  2005-11-24 17:10 ` sourcecode
  2 siblings, 1 reply; 13+ messages in thread
From: Holly Bostick @ 2005-11-24 16:06 UTC (permalink / raw
  To: gentoo-user

glen martin schreef:
<snip>
> 
> I've changed some USE flags deliberately to add features to a package
>
<snip>
> 
> Despite the USE change, I find that that apache is not being caught
> by "emerge --newuse world". 
> 
<snip>
> I added "threads nptlonly mpm-worker" to USE in make.conf.  I've 
> probably made some other changes to USE since my last world rebuild.
>  I've also done an emerge --sync. Then:
> 
<snip of all the proof that the assessment is correct>
> 
> So, any thoughts on why "emerge --newuse" doesn't want to rebuild 
> apache? 

Well, assuming it's not a bug (what version of Portage are you using?)
then is it possible that apache is neither in your world file, nor a
dependency of something that is (does it show up in the list of a
depclean -p)? That's the only reason I can think of that the combination
of --update and --deep wouldn't recognize that apache is one of the
packages that should be considered for --newuse.

HTH,
Holly
-- 
gentoo-user@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-user] emerge --newuse misses package that new USE affects
  2005-11-24 15:52 [gentoo-user] emerge --newuse misses package that new USE affects glen martin
  2005-11-24 16:06 ` Holly Bostick
@ 2005-11-24 16:30 ` Roy Wright
  2005-11-24 17:10 ` sourcecode
  2 siblings, 0 replies; 13+ messages in thread
From: Roy Wright @ 2005-11-24 16:30 UTC (permalink / raw
  To: gentoo-user

glen martin wrote:

>note the lack of apache.  Now:
>
><snip>
># emerge --pretend --verbose apache
>
>These are the packages that I would merge, in order:
>
>Calculating dependencies ...done!
>[ebuild   R   ] net-www/apache-2.0.55  +apache2 -debug -doc +ldap
>-mpm-leader -mpm-peruser -mpm-prefork -mpm-threadpool +mpm-worker*
>-no-suexec (-selinux) +ssl -static-modules +threads* 0 kB
>
>Total size of downloads: 0 kB
>  
>
Maybe you need "apache2" instead of "apache" USE flag?

Your understanding of --newuse matches mine.  I did notice
a similiar problem this past week.  I changed "-ffmpeg" to
"ffmpeg".  Ran emerge -uDNav and only kb3 was found.
The next day, emerge -uDNav found xine-lib.  So I too am
questioning whether --newuse is working properly in
Portage 2.0.51.22-r3.

HTH,
Roy
-- 
gentoo-user@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-user] emerge --newuse misses package that new USE affects
  2005-11-24 15:52 [gentoo-user] emerge --newuse misses package that new USE affects glen martin
  2005-11-24 16:06 ` Holly Bostick
  2005-11-24 16:30 ` Roy Wright
@ 2005-11-24 17:10 ` sourcecode
  2 siblings, 0 replies; 13+ messages in thread
From: sourcecode @ 2005-11-24 17:10 UTC (permalink / raw
  To: gentoo-user

On Thursday 24 November 2005 15:52, glen martin wrote:
> I've googled and scanned recent messages archive of this list for this
> issue - if I'm blind, apologies in advance.
>
> I've changed some USE flags deliberately to add features to a package
> (in this case, apache).  That package is also impacted by different
> ACCEPT_KEYWORDS flag ("~86"), which I've specified in
> /etc/portage/package.keywords
>
> Despite the USE change, I find that that apache is not being caught by
> "emerge --newuse world".  My expectation is that "--newuse world" will
> rebuild everything that a new USE impacts.
>
> So do I horribly misunderstand --newuse, or have I configured something
> wrong, or does it not work with package.keywords, or is there a bug
> someone would like more data on before I manually rebuild the various
> packages in in my system that need it and blow the symptoms away?
>
> I added "threads nptlonly mpm-worker" to USE in make.conf.  I've
> probably made some other changes to USE since my last world rebuild.
> I've also done an emerge --sync. Then:
>
> <snip>
> # emerge --update --deep --newuse --pretend --verbose world

If you Put the USE Flag into the make.conf it´s Generall to ALL Packages.

Just Put the Use Flag into the Apache Buil only.

-- 
MFG 

Christian Fuß,
replica-solutions.de 
( Linux, Poetry, Community 4 everyone, International German/English )

-- 
gentoo-user@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-user] emerge --newuse misses package that new USE affects
  2005-11-24 16:06 ` Holly Bostick
@ 2005-11-24 19:01   ` glen martin
  2005-11-24 19:11     ` Willie Wong
  2005-11-24 19:47     ` Neil Bothwick
  0 siblings, 2 replies; 13+ messages in thread
From: glen martin @ 2005-11-24 19:01 UTC (permalink / raw
  To: gentoo-user

Holly Bostick wrote:

>>So, any thoughts on why "emerge --newuse" doesn't want to rebuild 
>>apache? 
>>    
>>
>
>Well, assuming it's not a bug (what version of Portage are you using?)
>then is it possible that apache is neither in your world file,
>  
>
I'm on portage 2.0.51.22-r3.  This is a very new system - as part of the
install sequence portage was of course updated, so it was some earlier
portage version a week ago.

Seems a truism, but you're right. apache isn't in my world file. 
somehow. And adding it to my world file does work around the symptom I
describe.

This begs the question of why it isn't there, considering it is
installed. I must wonder, what else that I've installed has somehow not
been added to the world file.  Perhaps I'm exposing my ignorance, but is
the world file not supposed to have everything that is installed and not
in the base system definition?  Under what circumstances (other than
failed/aborted emerge, which didn't happen) could something fail to go
into world?

Thanks,

glen

-- 
gentoo-user@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-user] emerge --newuse misses package that new USE affects
  2005-11-24 19:01   ` glen martin
@ 2005-11-24 19:11     ` Willie Wong
  2005-11-25 14:16       ` glen martin
  2005-11-24 19:47     ` Neil Bothwick
  1 sibling, 1 reply; 13+ messages in thread
From: Willie Wong @ 2005-11-24 19:11 UTC (permalink / raw
  To: gentoo-user

On Thu, Nov 24, 2005 at 11:01:43AM -0800, glen martin wrote:
> Seems a truism, but you're right. apache isn't in my world file. 
> somehow. And adding it to my world file does work around the symptom I
> describe.
> 
> This begs the question of why it isn't there, considering it is
> installed. I must wonder, what else that I've installed has somehow not
> been added to the world file.  Perhaps I'm exposing my ignorance, but is
> the world file not supposed to have everything that is installed and not
> in the base system definition?  Under what circumstances (other than
> failed/aborted emerge, which didn't happen) could something fail to go
> into world?

simple. Maybe you installed apache with 'emerge --oneshot' which
doesn't modify the world file. Maybe apache was installed as a
dependency of something else, and that something else has since got
removed. 

W
-- 
I cannot go to school today"  
Said little Peggy Ann McKay.
"I have the measles and the mumps,   
A gash, a rash and purple bumps.
My mouth is wet, my throat is dry.
I'm going blind in my right eye.  
My tonsils are as big as rocks,
I've counted sixteen chicken pox
And there's one more-that's seventeen,
And don't you think my face looks green?
My leg is cut, my eyes are blue 
It might be instamatic flu.
I cough and sneeze and gasp and choke,
I'm sure that my left leg is broke
My hip hurts when I move my chin,
My belly button's caving in,
My back is wrenched, my ankle's sprained,
My 'pendix pains each time it rains.
My toes is cold, my toes are numb,
I have a sliver in my thumb.
My neck is stiff, my voice is weak,
I hardly whisper when I speak.
My tongue is filling up my mouth,
I think my hair is falling out.      
My elbow's bent, my spine ain't straight,
My temperature is one-o-eight.
My brain is shrunk, I cannot hear,
There's a hole inside my ear.  
I have a hangnail, and my heart is - What?
What's that? What's that you say?
You say today is .......Saturday?
Goodbye, I'm going out to play!"
Sortir en Pantoufles: up 12 days, 11:30
-- 
gentoo-user@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-user] emerge --newuse misses package that new USE affects
  2005-11-24 19:01   ` glen martin
  2005-11-24 19:11     ` Willie Wong
@ 2005-11-24 19:47     ` Neil Bothwick
  1 sibling, 0 replies; 13+ messages in thread
From: Neil Bothwick @ 2005-11-24 19:47 UTC (permalink / raw
  To: gentoo-user

[-- Attachment #1: Type: text/plain, Size: 953 bytes --]

On Thu, 24 Nov 2005 11:01:43 -0800, glen martin wrote:

> This begs the question of why it isn't there, considering it is
> installed. I must wonder, what else that I've installed has somehow not
> been added to the world file.  Perhaps I'm exposing my ignorance, but is
> the world file not supposed to have everything that is installed and not
> in the base system definition?

The world file contains everything that you installed directly.
Dependencies of packages you install are not included in world. If you
installed a package that depended on Apache, Apache would have been
installed but not added to world. If you subsequently removed the
original package, or changed your USE flags so that it no longer required
Apache, then Apache would no longer be a dependency of anything in
world. In that case, emerge --ask depclean would offer to remove it. 


-- 
Neil Bothwick

And all the Borg left was this copy of System 7...

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-user] emerge --newuse misses package that new USE affects
  2005-11-24 19:11     ` Willie Wong
@ 2005-11-25 14:16       ` glen martin
  2005-11-25 14:44         ` Holly Bostick
  2005-11-25 19:29         ` Neil Bothwick
  0 siblings, 2 replies; 13+ messages in thread
From: glen martin @ 2005-11-25 14:16 UTC (permalink / raw
  To: gentoo-user

Willie Wong wrote:

>On Thu, Nov 24, 2005 at 11:01:43AM -0800, glen martin wrote:
>  
>
>>Seems a truism, but you're right. apache isn't in my world file. 
>>somehow. And adding it to my world file does work around the symptom I
>>describe.
>>
>>This begs the question of why it isn't there, considering it is
>>installed. I must wonder, what else that I've installed has somehow not
>>been added to the world file.  Perhaps I'm exposing my ignorance, but is
>>the world file not supposed to have everything that is installed and not
>>in the base system definition?  Under what circumstances (other than
>>failed/aborted emerge, which didn't happen) could something fail to go
>>into world?
>>    
>>
>
>simple. Maybe you installed apache with 'emerge --oneshot' which
>doesn't modify the world file. Maybe apache was installed as a
>dependency of something else, and that something else has since got
>removed. 
>
Ok, so ignorance. :)

I've tracked down what happened and offer it up as a lesson.

I installed apache as a dependency of metadot. Metadot itself is masked
by ~x86, so I did that install with
   ACCEPT_KEYWORDS="~x86" emerge metadot
a syntax I picked up from a HOWTO or FAQ or article someplace.

metadot was in the world file, but because it has no unmasked version,
without ~x86 it has no dependencies. So apache was not required by
"anything else in the system". Indeed, depclean offered to remove it,
despite the fact that it was in use, indeed was currently being used by
an active service.

On reflection, the right way to install metadot was not to use the
syntax above, but probably instead to use /etc/portage/package.keywords
to specify the ~x86 keyword for metadot permanently.  Certainly
post-install, setting this caused --newuse to correspond better to my
expectations.

Thanks again to those whose suggestions and comments helped in tracking
this down.

As an aside, I wonder whether it is a good feature idea that
  ACCEPT_KEYWORDS="<keyword>" emerge <foo>
without --oneshot should automatically add <foo> <keyword> to the
package.keywords file.

glen

-- 
gentoo-user@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-user] emerge --newuse misses package that new USE affects
  2005-11-25 14:16       ` glen martin
@ 2005-11-25 14:44         ` Holly Bostick
  2005-11-25 15:42           ` glen martin
  2005-11-25 19:47           ` Richard Fish
  2005-11-25 19:29         ` Neil Bothwick
  1 sibling, 2 replies; 13+ messages in thread
From: Holly Bostick @ 2005-11-25 14:44 UTC (permalink / raw
  To: gentoo-user

glen martin schreef:
> 
> As an aside, I wonder whether it is a good feature idea that 
> ACCEPT_KEYWORDS="<keyword>" emerge <foo> without --oneshot should
> automatically add <foo> <keyword> to the package.keywords file.
> 

That's an idea with some merit, but imo not enough (merit) to make it
feasible (but it's not my decision; submit a feature request and see
what happens).

You now know firsthand one of the many reasons that using
ACCEPT_KEYWORDS on the command line is *not* recommended.

It is a temporary setting, useful only for testing situations. The fact
that if you use it, then decide to make the testing situation permanent
but do not add a permanent setting (in package.keywords), you will
encounter problems of this sort underlines the nature of the setting
(temporary, temporary, use for explicit testing only; if you want a
permanent setting, make one explicitly).

The idea of having the temporary setting invisibly add a permanent
setting seems cool, but undermines both the function of the temporary
setting (since it's no longer truly temporary), and the function of the
permanent setting (since you have not explicitly made the setting, you
may or may not want it set), and what about dependencies? You'd have to
unmask them explicitly (or else you'll get a lot of "thus and so cannot
be installed because thus and so is masked" errors, and if you have to
do that, you've already destroyed any usefulness an automatic addition
might have had.

So it's not something for me, but I'm weird ;-) ; others might feel
differently.

Holly



-- 
gentoo-user@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-user] emerge --newuse misses package that new USE affects
  2005-11-25 14:44         ` Holly Bostick
@ 2005-11-25 15:42           ` glen martin
  2005-11-25 17:21             ` Holly Bostick
  2005-11-25 19:47           ` Richard Fish
  1 sibling, 1 reply; 13+ messages in thread
From: glen martin @ 2005-11-25 15:42 UTC (permalink / raw
  To: gentoo-user

Holly Bostick wrote:

>glen martin schreef:
>  
>
>>As an aside, I wonder whether it is a good feature idea that 
>>ACCEPT_KEYWORDS="<keyword>" emerge <foo> without --oneshot should
>>automatically add <foo> <keyword> to the package.keywords file.
>>    
>>
>That's an idea with some merit, but imo not enough (merit) to make it
>feasible (but it's not my decision; submit a feature request and see
>what happens).
>
>You now know firsthand one of the many reasons that using
>ACCEPT_KEYWORDS on the command line is *not* recommended.
>
>It is a temporary setting, useful only for testing situations.
>
That makes sense. I hadn't encountered that recommendation at the time -
I'd seen the ACCEPT_KEYWORDS syntax without such warning. Not in the man
page, obviously, which has it right.

> The idea of having the temporary setting invisibly add a permanent
> setting seems cool,

The trick here is the word 'temporary'. If 'temporary', the keyword --oneshot would (should?) be present. In absence thereof ... It seems analogous to the world file - the world file is the permanent specification, and it written per presence or absence of oneshot. Why not so for /etc/portage/package.*? How are those files different-in-kind from world?

I don't know.  I am far from an expert at the design philosophy behind these tools. I just note that there seem to be failures of consistency in application (or not) of a flag across different situations. Permanence for one setting is accomplished with a flag (well, absence), permanence for another requires a file change and the flag is ignored. Or there's a failure in my understanding, which I've found to be very well served by saying the wrong things and waiting for stones.

> So it's not something for me, but I'm weird  ;-)  

I am too. Without the smiley. Or so is frequently said. 

glen


-- 
gentoo-user@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-user] emerge --newuse misses package that new USE affects
  2005-11-25 15:42           ` glen martin
@ 2005-11-25 17:21             ` Holly Bostick
  0 siblings, 0 replies; 13+ messages in thread
From: Holly Bostick @ 2005-11-25 17:21 UTC (permalink / raw
  To: gentoo-user

glen martin schreef:
> Holly Bostick wrote:
> 
>> glen martin schreef:
>> 
>>> As an aside, I wonder whether it is a good feature idea that 
>>> ACCEPT_KEYWORDS="<keyword>" emerge <foo> without --oneshot should
>>>  automatically add <foo> <keyword> to the package.keywords file.
>> 
>> That's an idea with some merit, but imo not enough (merit) to make 
>> it feasible (but it's not my decision; submit a feature request and
>> see what happens).
>> 
>> You now know firsthand one of the many reasons that using 
>> ACCEPT_KEYWORDS on the command line is *not* recommended.
>> 
>> It is a temporary setting, useful only for testing situations.
> 
> That makes sense. I hadn't encountered that recommendation at the 
> time - I'd seen the ACCEPT_KEYWORDS syntax without such warning. Not 
> in the man page, obviously, which has it right.
> 
>> The idea of having the temporary setting invisibly add a permanent
>>  setting seems cool,
> 
> The trick here is the word 'temporary'. If 'temporary', the keyword 
> --oneshot would (should?) be present. In absence thereof ... It seems
>  analogous to the world file - the world file is the permanent 
> specification, and it written per presence or absence of oneshot. Why
>  not so for /etc/portage/package.*? How are those files 
> different-in-kind from world?


OK, I'm not an expert either, but I *think* that the issue is the fact
that ACCEPT_KEYWORDS and emerge are *two separate commands*.

Are you familiar with exporting variables? ACCEPT_KEYWORDS is, of course
a variable. When you export a variable (DISPLAY, LD_ASSUME_KERNEL,
LD_LIBRARY_PATH, LD_PRELOAD, PS1, ACCEPT_KEYWORDS), the
variable is changed for the current login shell session, but is not
persistent. Period. That has nothing to do with Portage or any program,
that's how Linux works. Variables are permanently set in configuration
files (in the case of ACCEPT_KEYWORDS, in /etc/make.conf, with
modifications allowed from /etc/portage/package.keywords).

Most of the time, the temporary nature of this change can be assumed
without thinking-- if the startup script for Neverwinter Nights includes an

export LD_LIBRARY_PATH=./lib:./miles:$LD_LIBRARY_PATH

command, the fact that it's temporary doesn't matter, because it only
needs to be in effect while I'm running Neverwinter Nights, which is a
temporary condition.

This is completely different from the state of the Portage tree and your
world file when running emerge. Basically, when you use ACCEPT_KEYWORDS
on the command line, you are changing a variable temporarily, which
Portage then reads, but because the condition does not persist-- and the
state of Portage variables must persist across sessions-- you're
essentially confusing Portage, which must rely on you to have a stable
list of variable conditions in order for it to know what it's doing.
This is not a flaw in Portage, it's just how it's constructed, and it
really couldn't be constructed any better than it is-- it already does a
lot more than one might have thought possible in terms of being flexible
and 'pushing the envelope'.

But the conditions of the environment must be respected. There is no way
for Portage to become aware that you exported a variable prior to
running the emerge command, and so there is no way for Portage to
automatically add the --oneshot switch if you had done so, in the same
way that "--update implies --pretend" or whichever switch it is that
implies another, so the second switch is automatically added if the
first is present. Because (export) ACCEPT_KEYWORDS is not part of the
emerge command, and the emerge command can only adjust itself, based on
its own settings, not other settings that you have manually adjusted
prior to running the command.

If you see what I mean.

Anyway, I could be totally wrong, but I think it hangs together, and I
suspect it is in fact the case.

Perhaps it could be better explained to people, though, so that they
understood the relationship between the variables that Portage is
reading and the commands that one might run to modify them. Of course, a
good thorough grounding in shell operations would take care of that,
too, I suppose....

Holly
-- 
gentoo-user@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-user] emerge --newuse misses package that new USE affects
  2005-11-25 14:16       ` glen martin
  2005-11-25 14:44         ` Holly Bostick
@ 2005-11-25 19:29         ` Neil Bothwick
  1 sibling, 0 replies; 13+ messages in thread
From: Neil Bothwick @ 2005-11-25 19:29 UTC (permalink / raw
  To: gentoo-user

[-- Attachment #1: Type: text/plain, Size: 549 bytes --]

On Fri, 25 Nov 2005 06:16:40 -0800, glen martin wrote:

> As an aside, I wonder whether it is a good feature idea that
>   ACCEPT_KEYWORDS="<keyword>" emerge <foo>
> without --oneshot should automatically add <foo> <keyword> to the
> package.keywords file.

It's a bad idea. Specifying a setting on the command line is temporary,
and is useful when used as such. Making a setting the user intends to be
temporary permanent is a recipe for disaster.


-- 
Neil Bothwick

I couldn't possibly be wrong. I use an error correcting modem!

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-user] emerge --newuse misses package that new USE affects
  2005-11-25 14:44         ` Holly Bostick
  2005-11-25 15:42           ` glen martin
@ 2005-11-25 19:47           ` Richard Fish
  1 sibling, 0 replies; 13+ messages in thread
From: Richard Fish @ 2005-11-25 19:47 UTC (permalink / raw
  To: gentoo-user

On 11/25/05, Holly Bostick <motub@planet.nl> wrote:
> The idea of having the temporary setting invisibly add a permanent
> setting seems cool, but undermines both the function of the temporary
> setting (since it's no longer truly temporary), and the function of the
> permanent setting (since you have not explicitly made the setting, you
> may or may not want it set), and what about dependencies?

Yes, I think the dependancy issue alone makes this an unworkable idea.
 There is a big difference between

ACCEPT_KEYWORDS=~x86 emerge <pkg>

and

echo "<pkg> ~x86" >> /etc/portage/package.keywords
emerge <pkg>

This is because the first will allow ~x86 for <pkg> and all of its
dependancies, while the second only allows ~x86 for <pkg> (you would
have to add additional entries for masked dependancies).

IMO, the ACCEPT_KEYWORDS environment variable should only be used in
combination with --pretend, where it can be used to give a list of the
packages that you (might) need to add to package.keywords.

Besides, Portage is designed to explicity allow environment variables
to override configuration file settings, whether that be
/etc/make.conf or /etc/portage/*.  Modifying any configuration files
based on environment variables would do away with the entire point of
supporting the environment variables to begin with.

-Richard

-- 
gentoo-user@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2005-11-25 19:57 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-11-24 15:52 [gentoo-user] emerge --newuse misses package that new USE affects glen martin
2005-11-24 16:06 ` Holly Bostick
2005-11-24 19:01   ` glen martin
2005-11-24 19:11     ` Willie Wong
2005-11-25 14:16       ` glen martin
2005-11-25 14:44         ` Holly Bostick
2005-11-25 15:42           ` glen martin
2005-11-25 17:21             ` Holly Bostick
2005-11-25 19:47           ` Richard Fish
2005-11-25 19:29         ` Neil Bothwick
2005-11-24 19:47     ` Neil Bothwick
2005-11-24 16:30 ` Roy Wright
2005-11-24 17:10 ` sourcecode

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox