Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 101416 - euse sources /etc/make.conf
Summary: euse sources /etc/make.conf
Status: RESOLVED INVALID
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Tools (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Portage Tools Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-08-05 03:21 UTC by guillaume
Modified: 2005-08-17 20:24 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 guillaume 2005-08-05 03:21:10 UTC
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
Comment 1 Jakub Moc (RETIRED) gentoo-dev 2005-08-05 03:51:49 UTC
Well, is does not fail for me, and enotice is a portage hack which is in no way
supported anyway.

Closing.
Comment 2 Harald van Dijk (RETIRED) gentoo-dev 2005-08-05 05:46:41 UTC
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.
Comment 3 Jakub Moc (RETIRED) gentoo-dev 2005-08-06 04:03:28 UTC
(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.
Comment 4 Harald van Dijk (RETIRED) gentoo-dev 2005-08-06 06:03:25 UTC
(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.
Comment 5 Jakub Moc (RETIRED) gentoo-dev 2005-08-06 06:16:15 UTC
(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. 
Comment 6 Alec Warner (RETIRED) archtester gentoo-dev Security 2005-08-17 20:24:50 UTC
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 ).