when using euse, it fails due to enotice declaration in make.conf another curiousity is that it lists files under the current directory Reproducible: Always Steps to Reproduce: 1.euse -i 2. 3. Actual Results: [root@gui - 12:07:21 - ~] # euse -i /etc/make.conf: line 304: PORT_ENOTICE_DIR: command not found /etc/make.conf: line 304: PORT_ENOTICE_DIR: command not found /etc/make.conf: line 304: PORT_ENOTICE_DIR: command not found global use flags (searching: Desktop appareil_photo.sh config_kernel dump files_2_save installation_softs kredentials logitech_mouse save_system teleir temp true_upgrade tutoriaux upgrade) ************************************************************ no matching entries found /etc/make.conf: line 304: PORT_ENOTICE_DIR: command not found local use flags (searching: Desktop appareil_photo.sh config_kernel dump files_2_save installation_softs kredentials logitech_mouse save_system teleir temp true_upgrade tutoriaux upgrade) ************************************************************ [root@gui - 12:17:12 - ~] # emerge info Portage 2.0.51.22-r2 (default-linux/x86/2005.0, gcc-3.4.4, glibc-2.3.5-r1, 2.6.12-gentoo-r6 i686) ================================================================= System uname: 2.6.12-gentoo-r6 i686 AMD Athlon(TM) MP 2400+ Gentoo Base System version 1.6.13 dev-lang/python: 2.2.3-r5, 2.3.5, 2.4.1-r1 sys-apps/sandbox: 1.2.11 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6 sys-devel/binutils: 2.16.1 sys-devel/libtool: 1.5.18-r1 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=athlon-mp -O2 -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d" CXXFLAGS="-march=athlon-mp -O2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://ftp.gentoo.skynet.be/pub/gentoo/ http://ftp.easynet.nl/mirror/gentoo/ http://ftp.snt.utwente.nl/pub/os/linux/gentoo http://gentoo.mirror.sdv.fr" LINGUAS="fr" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/usr/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow 3dnowex 3dnowext X aac aalib acpi alsa apm arts artswrappersuid avi bash-completion berkdb bigger-fonts bindist bitmap-fonts bonobo bootsplash cdparanoia cdr chroot crypt cscope cups curl dga directfb divx4linux dv dvb dvd dvdr dvdread eds emboss encode esd evo fam fbcon ffmpeg flac foomaticdb fortran gd gdbm ggi gif gnome gphoto2 gpm gstreamer gtk gtk2 gtkhtml guile hal imagemagick imap imlib ipv6 jack java jikes jpeg junit kde kdeenablefinal kdexdeltas kipi libg++ libwww lirc lm_sensors mad mikmod mmx mmxext motif mozilla mp3 mpeg nas ncurses nls nptl nvidia ogg oggvorbis opengl oss pam pdflib perl png python qt quicktime readline real ruby samba scanner sdl slang slp speex spell sse ssl svga tcltk tcpd tetex theora tiff truetype truetype-fonts type1-fonts unicode usb vorbis win32codecs x86 xine xml xml2 xmms xosd xv xvid zlib linguas_fr userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS
Well, is does not fail for me, and enotice is a portage hack which is in no way supported anyway. Closing.
This can be seen without enotice as well. euse assumes that you can just source /etc/make.conf. You can't anymore. A way of seeing this is by changing USE="..." to USE = "..." in your make.conf. The file will still be valid, portage will still work the same way, but euse will not work correctly with it. Or, if your portage tree is not in /usr/portage, change PORTDIR="..." to PORTDIR = "...", and euse won't work at all.
(In reply to comment #2) > This can be seen without enotice as well. euse assumes that you can just source > /etc/make.conf. You can't anymore. Uhm, maybe we should first define what is a valid syntax when make.conf is concerned. This works just fine if you don't put superfluous spaces in there. Also see Bug 100373 and Bug 101486.
(In reply to comment #3) > Uhm, maybe we should first define what is a valid syntax when make.conf is > concerned. Agreed, and the meaning of that syntax should also be clearly described. You get subtle differences if make.conf does VAR2="${VAR1} ...", but the setting of VAR1 is commented out at the moment. With portage, "${VAR1}" will be "". With sourcing, VAR1 will be read from the environment. > This works just fine if you don't put superfluous spaces in there. A="B"C="D". Portage reads it as two assignments (A="B" C="D"). bash reads it as one (A="BC=D"). The extra space is necessary here if you want to source it correctly. (This is really a portage bug that's supposed to be fixed with 2.1 but for the 2.0 series, this won't be changed.) > Also see Bug 100373 and Bug 101486. Yup, a clear description of the file format would be very useful.
(In reply to comment #4) > subtle differences if make.conf does VAR2="${VAR1} ...", but the setting of VAR1 > is commented out at the moment. With portage, "${VAR1}" will be "". With > sourcing, VAR1 will be read from the environment. Heh, I did hit that one in Bug 94850. > A="B"C="D". Portage reads it as two assignments (A="B" C="D"). bash reads it as > one (A="BC=D"). The extra space is necessary here if you want to source it > correctly. (This is really a portage bug that's supposed to be fixed with 2.1 > but for the 2.0 series, this won't be changed.) Just to add, these superfluous/double/multiple spaces break a couple of ebuilds as well when they are in C[XX]FLAGS - just search bugzilla for 'ALL flags changed'. That should be solved on portage level as well, IMHO.
I believe the consensus from gentoo-portage-dev ML was that /etc/make.conf should be bash sourceable, and anything not bash sourceable was in fact an invalid make.conf file. I know Brian is working on the parsing for the portage rewrite to be as close to bash syntax as he can make it so that no functionality is lost. However in this case the user would need to modify their make.conf to be sourceable by bash. Applications may depend on that assumption ( which euse does ).