Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 326561 - [PATCH] sys-apps/portage: emerge should warn about invalid values in FEATURES
Summary: [PATCH] sys-apps/portage: emerge should warn about invalid values in FEATURES
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Interface (emerge) (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS
Depends on: 326275
Blocks: 335925
  Show dependency tree
 
Reported: 2010-07-02 07:51 UTC by Marcin Kryczek
Modified: 2010-09-04 08:33 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
sample config.log (config.log,9.04 KB, text/plain)
2010-07-02 07:53 UTC, Marcin Kryczek
Details
Make emerge warn on unknown values in FEATURES (0001-Warn-if-FEATURES-contains-unknown-values.patch,2.79 KB, text/plain)
2010-07-03 11:05 UTC, Sebastian Luther (few)
Details
Warn if FEATURES contains unknown values and don't keep them (0001-Warn-if-FEATURES-contains-unknown-values-and-don-t-k.patch,2.92 KB, patch)
2010-07-03 17:42 UTC, Sebastian Luther (few)
Details | Diff
Warn if FEATURES contains unknown values and don't keep them (0001-Warn-if-FEATURES-contains-unknown-values-and-don-t-k.patch,2.85 KB, patch)
2010-07-03 19:39 UTC, Sebastian Luther (few)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Marcin Kryczek 2010-07-02 07:51:14 UTC
after upgrading mpfr to version 3.0.0, i get 'configure: error: C compiler cannot create executables' every package. downgrading to 2.4.2_p3 (from binary package) fix that issue

my emerge --info:

Portage 2.1.8.3 (default/linux/amd64/10.0/desktop/kde, gcc-4.4.4, glibc-2.11.2-r0, 2.6.32-gentoo-r7 x86_64)
=================================================================
                        System Settings
=================================================================
System uname: Linux-2.6.32-gentoo-r7-x86_64-Intel-R-_Core-TM-2_Duo_CPU_P9700_@_2.80GHz-with-gentoo-2.0.1
Timestamp of tree: Thu, 01 Jul 2010 20:30:01 +0000
app-shells/bash:     4.1_p7
dev-java/java-config: 2.1.11
dev-lang/python:     2.6.5-r2, 3.1.2-r3
dev-util/cmake:      2.8.1-r2
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.6.1-r1
sys-apps/sandbox:    2.2
sys-devel/autoconf:  2.13, 2.65
sys-devel/automake:  1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:  2.20.1-r1
sys-devel/gcc:       4.3.4, 4.4.4-r1
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.10
virtual/os-headers:  2.6.34
ABI="amd64"
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
ACCEPT_PROPERTIES="*"
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="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 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"
ARCH="amd64"
ASFLAGS_x86="--32"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CCACHE_DIR="/var/portage/ccache/"
CDEFINE_amd64="__x86_64__"
CDEFINE_x86="__i386__"
CFLAGS="-O2 -pipe -march=nocona"
CFLAGS_x86="-m32"
CHOST="x86_64-pc-linux-gnu"
CHOST_amd64="x86_64-pc-linux-gnu"
CHOST_x86="i686-pc-linux-gnu"
CLEAN_DELAY="5"
COLLISION_IGNORE="/lib/modules"
CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CVS_RSH="ssh"
CXXFLAGS="-O2 -pipe -march=nocona"
DEFAULT_ABI="amd64"
DISPLAY=":0"
DISTDIR="/usr/portage/distfiles"
EDITOR="/usr/bin/vim"
ELIBC="glibc"
EMERGE_WARNING_DELAY="10"
EPREFIX=""
EROOT="/"
FEATURES="assume-digests distlocks fixpackages news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"
FETCHCOMMAND="/usr/bin/wget -t 5 -T 60 --passive-ftp -O "${DISTDIR}/${FILE}" "${URI}""
GCC_SPECS=""
GDK_USE_XFT="1"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
HOME="/root"
INFOPATH="/usr/share/info:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.20.1/info:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.4.4/info"
INPUTRC="/etc/inputrc"
INPUT_DEVICES="evdev keyboard mouse synaptics"
KERNEL="linux"
LANG="en_US"
LANGUAGE=""
LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text"
LC_ADDRESS="pl_PL"
LC_ALL=""
LC_COLLATE="pl_PL"
LC_CTYPE="pl_PL"
LC_IDENTIFICATION="pl_PL"
LC_MEASUREMENT="pl_PL"
LC_MESSAGES="en_US"
LC_MONETARY="pl_PL"
LC_NAME="pl_PL"
LC_NUMERIC="pl_PL"
LC_PAPER="pl_PL"
LC_TELEPHONE="pl_PL"
LC_TIME="pl_PL"
LDFLAGS="-Wl,-O1"
LDFLAGS_x86="-m elf_i386"
LESS="-R -M --shift 5"
LESSOPEN="|lesspipe.sh %s"
LIBDIR_amd64="lib64"
LIBDIR_amd64_fbsd="lib64"
LIBDIR_ppc="lib32"
LIBDIR_ppc64="lib64"
LIBDIR_sparc32="lib32"
LIBDIR_sparc64="lib64"
LIBDIR_x86="lib32"
LIBDIR_x86_fbsd="lib32"
LINGUAS="pl"
LOGNAME="root"
LS_COLORS="rs=0:di=01;34:ln=01;36:mh=44;37:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.pdf=00;32:*.ps=00;32:*.txt=00;32:*.patch=00;32:*.diff=00;32:*.log=00;32:*.tex=00;32:*.doc=00;32:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:"
MAKEOPTS="-j3"
MANPATH="/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.20.1/man:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.4.4/man:/etc/java-config/system-vm/man/:/usr/share/postgresql-8.4/man:/usr/share/postgresql-7.4/man:/opt/vmware/workstation/man"
MULTILIB_ABIS="amd64 x86"
MULTILIB_STRICT_DENY="64-bit.*shared object"
MULTILIB_STRICT_DIRS="/lib32 /lib /usr/lib32 /usr/lib /usr/kde/*/lib32 /usr/kde/*/lib /usr/qt/*/lib32 /usr/qt/*/lib /usr/X11R6/lib32 /usr/X11R6/lib"
MULTILIB_STRICT_EXEMPT="(perl5|gcc|gcc-lib|binutils|eclipse-3|debug|portage)"
NETBEANS="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml"
OLDPWD="/usr/portage/packages"
OPENGL_PROFILE="nvidia"
OPERAPLUGINWRAPPER_PRIORITY="-1"
PAGER="/usr/bin/most"
PATH="/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.4.4:/usr/games/bin:/opt/vmware/workstation/bin:/bin:/usr/bin:/sbin:/usr/sbin:/opt/scripts:/usr/local/bin:/opt/oss/bin"
PKGDIR="/usr/portage/packages"
PORTAGE_ARCHLIST="ppc x86-openbsd ppc-openbsd ppc64 x86-winnt x86-fbsd ppc-aix alpha arm x86-freebsd s390 amd64 arm-linux x86-macos x64-openbsd ia64-hpux hppa x86-netbsd amd64-linux ia64-linux x86 sparc-solaris x64-freebsd sparc64-solaris x86-linux x64-macos sparc m68k-mint ia64 mips ppc-macos x86-interix hppa-hpux amd64-fbsd x64-solaris mips-irix m68k sh x86-solaris sparc-fbsd"
PORTAGE_BINHOST_CHUNKSIZE="3000"
PORTAGE_BIN_PATH="/usr/lib64/portage/bin"
PORTAGE_COMPRESS_EXCLUDE_SUFFIXES="css gif htm[l]? jp[e]?g js pdf png"
PORTAGE_CONFIGROOT="/"
PORTAGE_DEBUG="0"
PORTAGE_DEPCACHEDIR="/var/cache/edb/dep"
PORTAGE_ELOG_CLASSES="log warn error"
PORTAGE_ELOG_MAILFROM="portage@localhost"
PORTAGE_ELOG_MAILSUBJECT="[portage] ebuild log for ${PACKAGE} on ${HOST}"
PORTAGE_ELOG_MAILURI="root"
PORTAGE_ELOG_SYSTEM="save_summary echo"
PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS="5"
PORTAGE_FETCH_RESUME_MIN_SIZE="350K"
PORTAGE_GID="250"
PORTAGE_INST_GID="0"
PORTAGE_INST_UID="0"
PORTAGE_PYM_PATH="/usr/lib64/portage/pym"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_RSYNC_RETRIES="3"
PORTAGE_SYNC_STALE="30"
PORTAGE_TMPDIR="/var/tmp"
PORTAGE_VERBOSE="1"
PORTAGE_WORKDIR_MODE="0700"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/portage/local"
PRELINK_PATH_MASK="/usr/lib64/libfreebl3.so:/usr/lib64/libnssdbm3.so:/usr/lib64/libsoftokn3.so"
PROFILE_ONLY_VARIABLES="ARCH ELIBC KERNEL USERLAND"
PS1="\[\e[1;37m\]<\[\e[1;31m\]\u@\h\[\e[1;37m\]>\[\e[1;39m\]$(spwd)\[\e[0;39m\]: "
PWD="/usr/portage/packages/dev-libs"
PYTHONDONTWRITEBYTECODE="1"
RESUMECOMMAND="/usr/bin/wget -c -t 5 -T 60 --passive-ftp -O "${DISTDIR}/${FILE}" "${URI}""
ROOT="/"
ROOTPATH="/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.4.4:/opt/vmware/workstation/bin:/bin:/usr/bin:/sbin:/usr/sbin:/opt/scripts:/usr/local/bin"
RPMDIR="/usr/portage/rpm"
RUBY_TARGETS="ruby18"
SANE_CONFIG_DIR="/etc/sane.d"
SDL_DSP_NOSELECT="1"
SHELL="/bin/bash"
SHLVL="1"
STAGE1_USE="multilib nptl nptlonly unicode"
SUDO_COMMAND="/bin/bash"
SUDO_GID="100"
SUDO_UID="1000"
SUDO_USER="mkay"
SYMLINK_LIB="yes"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
TERM="xterm"
USB_DEVFS_PATH="/dev/bus/usb"
USE="X a52 aac aalib acpi alsa amd64 amr bash-completion bluetooth branding bzip2 cairo cdr chm cli consolekit cracklib crypt cups cvs cxx dbus dell djvu dri dts dvd dvdr ebook emboss encode exif fam ffmpeg firefox flac fortran gdbm gif git gphoto2 gpm gtk hal hpijs iconv java jpeg jpeg2k kde lame laptop lcms libnotify lzma mad mikmod mmx mng modules mp3 mp4 mpeg mudflap multilib ncurses nls nptl nptlonly ogg opengl openmp pam pango pcre pdf perl png postgres ppds pppd python qt3support qt4 readline reflection samba scanner sdl semantic-desktop session spell spl sse sse2 ssl startup-notification svg sysfs taglib tcpd theora threads tiff truetype unicode usb vcd vorbis x264 xcb xml xorg xulrunner xv xvid zlib" 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="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 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" ELIBC="glibc" INPUT_DEVICES="evdev keyboard mouse synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="pl" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="vesa 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" 
USER="root"
USERLAND="GNU"
USERNAME="root"
USE_EXPAND="ALSA_CARDS ALSA_PCM_PLUGINS APACHE2_MODULES APACHE2_MPMS CAMERAS CROSSCOMPILE_OPTS DVB_CARDS ELIBC FCDSL_CARDS FOO2ZJS_DEVICES FRITZCAPI_CARDS INPUT_DEVICES KERNEL LCD_DEVICES LINGUAS LIRC_DEVICES MISDN_CARDS NETBEANS_MODULES NGINX_MODULES_HTTP NGINX_MODULES_MAIL QEMU_SOFTMMU_TARGETS QEMU_USER_TARGETS RUBY_TARGETS SANE_BACKENDS USERLAND VIDEO_CARDS XTABLES_ADDONS"
USE_EXPAND_HIDDEN="CROSSCOMPILE_OPTS ELIBC KERNEL USERLAND"
USE_ORDER="env:pkg:conf:defaults:pkginternal:env.d"
VBOX_APP_HOME="/opt/VirtualBox"
VIDEO_CARDS="vesa nvidia"
XDG_CONFIG_DIRS="/etc/xdg"
XDG_DATA_DIRS="/usr/local/share:/usr/share"
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"
XZ_OPT="--memory=max"
_="/usr/bin/emerge"
bash4="4.1.7(2)-release"

sample config.log from instalation in attachment
Comment 1 Marcin Kryczek 2010-07-02 07:53:11 UTC
Created attachment 237223 [details]
sample config.log
Comment 2 Samuli Suominen (RETIRED) gentoo-dev 2010-07-02 08:40:15 UTC
/usr/libexec/gcc/x86_64-pc-linux-gnu/4.4.4/cc1: error while loading shared libraries: libmpfr.so.1: cannot open shared object file: No such file or directory

^ Upgrading to mpfr-3.0.0 keeps that file, and tells you to run 
"revdep-rebuild --library libmpfr.so.1". 
That will recompile GCC, and relink it against the new library from mpfr-3.0.0.

It's properly handled in Portage, so closing
Comment 3 Marcin Kryczek 2010-07-02 09:23:03 UTC
i don't think we understood each other correctly;)

i'm not able to rebuild gcc, since i get 'C compiler cannot create executables' error. also - i do not get any info after upgrading mpfr. here's what i see on console after finishing instalation:


>>> Installing (1 of 1) dev-libs/mpfr-3.0.0
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

 * Regenerating GNU info directory index...
 * Processed 153 info files.

 * IMPORTANT: 2 config files in '/etc' need updating.
 * See the CONFIGURATION FILES section of the emerge
 * man page to learn how to update config files.


PS: why preserve-libs in FEATURES doesn't help in this situation?
Comment 4 Marcin Kryczek 2010-07-02 09:55:30 UTC
i've found a problem - when i turn *off* 'preserve-libs' in FEATURES, this file is preserved and i get a notice.

so i think this bug should be reassigned to portage devs - it seems like 'preserve_old_lib' function *disable* 'preserve-libs' in FEATURES for users, who have it turned on
Comment 5 Samuli Suominen (RETIRED) gentoo-dev 2010-07-03 10:04:01 UTC
(In reply to comment #4)
> i've found a problem - when i turn *off* 'preserve-libs' in FEATURES, this file
> is preserved and i get a notice.
> 
> so i think this bug should be reassigned to portage devs - it seems like
> 'preserve_old_lib' function *disable* 'preserve-libs' in FEATURES for users,
> who have it turned on
> 

preserve-libs is a Portage 2.2 feature, not a Portage 2.1 one which you are using...
Comment 6 Sebastian Luther (few) 2010-07-03 11:05:44 UTC
Created attachment 237357 [details]
Make emerge warn on unknown values in FEATURES
Comment 7 Sebastian Luther (few) 2010-07-03 17:42:32 UTC
Created attachment 237369 [details, diff]
Warn if FEATURES contains unknown values and don't keep them
Comment 8 Sebastian Luther (few) 2010-07-03 19:39:14 UTC
Created attachment 237379 [details, diff]
Warn if FEATURES contains unknown values and don't keep them
Comment 9 Zac Medico gentoo-dev 2010-07-08 07:38:50 UTC
(In reply to comment #8)
> Created an attachment (id=237379) [details]
> Warn if FEATURES contains unknown values and don't keep them

Thanks, this is in git now:

http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=8f89f480b8b66b1b2254e937406e4b2b92813894
Comment 10 Zac Medico gentoo-dev 2010-07-16 05:31:20 UTC
I've added a way to disable the warning here:

http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=fc0e49d98177691813fe81d0ef678bb7192180b3

Just set FEATURES=-unknown-features-warn to disable the warning.
Comment 11 Zac Medico gentoo-dev 2010-07-16 07:45:54 UTC
We've had a complaint about this warning from ferringb, since pkgcore shares the same config files and supports some FEATURES settings that portage doesn't support. He's suggested adding something like a /etc/portage/valid_features.d/ directory so that pkgcore can install a file to indicate that some other features are exempt from the warning. However, it seems to me that this is getting rather complex for a warning that is of questionable value and was intended to be very simple. I'd prefer to encourage pkgcore users to set FEATURES=-unknown-features-warn than to go with the valid_features.d which seems like over-engineering to me.

It's also worth noting that the preserve_old_lib issue that brought this whole thing up could be solved by making preserve_old_lib cease to query FEATURES (as required by PMS), and using a separate environment variable to control preserve_old_lib (as suggested in bug 326275).
Comment 12 Jacob Godserv 2010-07-16 18:47:24 UTC
(In reply to comment #11)
> It's also worth noting that the preserve_old_lib issue that brought this whole
> thing up could be solved by making preserve_old_lib cease to query FEATURES (as
> required by PMS), and using a separate environment variable to control
> preserve_old_lib (as suggested in bug 326275).

_This_ makes sense to me. If someone writes code that breaks a user's machine because it breaks PMS, it seems logical to immediately rewrite the code in question to obey PMS so it doesn't break anything.
Comment 13 Zac Medico gentoo-dev 2010-08-23 06:26:36 UTC
This is in 2.2_rc68, but I'll leave this bug open until it's in an unmasked version.
Comment 14 Zac Medico gentoo-dev 2010-09-04 08:33:39 UTC
This is fixed in 2.1.9.