I've noticed more packages in ~amd64 failing to build lately. I suspect that I may have something odd about my USE flags. Would someone who knows what they're doing mind having a look at those? Anyhow, here's the first error I get: * Messages for package media-sound/alsa-utils-1.0.20-r3: * Obsolete config /etc/modprobe.d/alsa found. * * ERROR: media-sound/alsa-utils-1.0.20-r3 failed. * Call stack: * ebuild.sh, line 49: Called pkg_setup * alsa-utils-1.0.20-r3.ebuild, line 38: Called die * The specific snippet of code: * die "Move /etc/modprobe.d/alsa to /etc/modprobe.d/alsa.conf." * The die message: * Move /etc/modprobe.d/alsa to /etc/modprobe.d/alsa.conf. * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/media-sound/alsa-utils-1.0.20-r3/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/media-sound/alsa-utils-1.0.20-r3/temp/die.env'. * There isn't anything interesting in any other logs. So it would appear that the build script should be moving or copying the config, but it didn't and then crapped out when it checked itself. BTW, if the admin is supposed to do the move, I think this kind of error is not a user-friendly way to handle it. It's alarming, not helpful, too easy to miss, not prominent enough, etc. At the very least, the error should SAY that the user most do the move manually. This stuff about the config being obsolete isn't informative. Reproducible: Always Portage 2.1.6.13 (default/linux/amd64/2008.0, gcc-4.3.3, glibc-2.10.1-r0, 2.6.30-gentoo x86_64) ================================================================= System uname: Linux-2.6.30-gentoo-x86_64-Intel-R-_Core-TM-2_Quad_CPU_Q9450_@_2.66GHz-with-gentoo-2.0.1 Timestamp of tree: Sun, 02 Aug 2009 17:00:01 +0000 app-shells/bash: 4.0_p28 dev-java/java-config: 2.1.8-r1 dev-lang/python: 2.6.2-r1, 3.1 dev-util/cmake: 2.6.4-r2 sys-apps/baselayout: 2.0.1 sys-apps/openrc: 0.4.3-r3 sys-apps/sandbox: 2.0 sys-devel/autoconf: 2.13, 2.63-r1 sys-devel/automake: 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2, 1.11 sys-devel/binutils: 2.19.1-r1 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6a virtual/os-headers: 2.6.30-r1 ACCEPT_KEYWORDS="amd64 ~amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -march=core2 -ggdb -pipe" 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/share/config" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/udev/rules.d" CXXFLAGS="-O2 -march=core2 -ggdb -pipe" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--jobs=4" FEATURES="distlocks fixpackages parallel-fetch protect-owned sandbox sfperms splitdebug strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://gentoo.osuosl.org/ http://gentoo.netnitco.net http://mirror.csclub.uwaterloo.ca/gentoo-distfiles/ ftp://mirror.datapipe.net/gentoo ftp://mirror.csclub.uwaterloo.ca/gentoo-distfiles/ http://gentoo.mirrors.easynews.com/linux/gentoo/ ftp://ftp.free.fr/mirrors/ftp.gentoo.org/ ftp://gentoo.imj.fr/pub/gentoo/ ftp://distro.ibiblio.org/pub/linux/distributions/gentoo/" LANG="en_US.utf8" LDFLAGS="-Wl,-O1" LINGUAS="en en_US" MAKEOPTS="--jobs=5" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --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="X a52 aac acl acpi alsa amd64 apache2 apm bash-completion berkdb bidi bzip2 cairo cdda cdio cdr cli cracklib crypt ctype cups dbus dri dts dvd dvdr encode fbcon ffmpeg filter flac fortran freetype gcj gd gdbm gnutls gpm hal httpd iconv ipv6 isdnlog jadetex java jpeg jpeg2k kde kde4 kerberos lapack ldap live lm_sensors mad matroska mjpeg mmx mng mp3 mpeg mudflap multilib mysql mysqli ncurses nls nptl nptlonly ogg oggvorbis opengl openmp openssl pam pcre perl php png pppd python qt3support qt4 quicktime readline reflection ruby samba session spl sse sse2 sse3 ssl stream svg sysfs tcpd theora threads tiff tk truetype unicode utempter vcd vlm vorbis webkit wxwindows x264 xorg xv xvid zeroconf 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="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_US" USERLAND="GNU" VIDEO_CARDS="radeon radeonhd" Unset: CPPFLAGS, CTARGET, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
It does say so, * The specific snippet of code: * die "Move /etc/modprobe.d/alsa to /etc/modprobe.d/alsa.conf." Right there on your paste.
And that's how I figured out that I needed to move the file. But what the message says, directly, is that the build died because the file hadn't been moved. It does not tell the user that THEY are supposed to move it, or even that doing do wouldn't break something. In other words, the bug is that the error message is making the user GUESS at the correct action, rather than telling them the correct action. Looking at it another way, we're getting an error message on a condition that is not an error. It wasn't an error for the file to have the old name before. No mistakes have been made. All we're doing is installing an upgrade package. It doesn't make sense for the act of upgrading to be an error or create and error message. That being said, saying nothing about the fact that the filename has changed would be WORSE. The way it is, I was able to figure out how to migrate my configuration. Moreover, if it had just built and I got a warning message, I might have missed that and wondered why sound stopped working. So I can't say that the way it is now is BAD. I just think the migration could have been AUTOMATIC. Now, maybe you'll complain that it shouldn't be automatic. God knows, Gentoo does a lousy job of handling trivial config file merges that really should be completely automatic. There isn't even really a Gentoo installer. The installer is documentation. Gentoo is the distro you use if you want to learn a lot and want a highly customized installation. Ironically, then, when Gentoo appeared on the scene, it was ahead of its time when it came to automatic management of package dependencies. Few things are as convenient and automatic as "emerge". Apt-get only out-does emerge when it comes to things like automatically setting up init scripts.
The init scripts have told you for weeks if not months, on bootup with very noticeable yellow stars, that these files should be renamed. You didn't do it. Then your grace period finally expires, and the ebuild tells you what to do. Listen to the ebuild. The ebuild is your friend.
I'm not going to reopen, but can we make the die message friendlier? I had to read the ebuild itself to figure out what was wrong, since it wasn't obvious to me based on the output from emerge. A lot of users are going to hit this, since not everyone watches their init scripts startup.
(In reply to comment #4) > I'm not going to reopen, but can we make the die message friendlier? I had to > read the ebuild itself to figure out what was wrong, since it wasn't obvious to > me based on the output from emerge. A lot of users are going to hit this, since > not everyone watches their init scripts startup. > I certainly have absolutely no objection ... patches would be welcome, though. :)
No objections either, a more user friendly message would be fine Please provide a suggestion ;)
I was going to change the message to something along the lines of "The location and name of the ALSA module configuration file has changed. Please verify the current configuration file and rename to /etc/modprobe.d/alsa.conf." With a pointer to the Gentoo Linux ALSA guide for help. However, in reading through the guide, I noticed that it still references /etc/modules.d. Additionally, it talks about running alsaconf, which when run creates /etc/modules.d/alsa. I think we need to update those things before we start strictly enforcing that the config file belongs at /etc/modprobe.d/alsa.conf.
(In reply to comment #7) > I was going to change the message to something along the lines of "The location > and name of the ALSA module configuration file has changed. Please verify the > current configuration file and rename to /etc/modprobe.d/alsa.conf." With a > pointer to the Gentoo Linux ALSA guide for help. > > However, in reading through the guide, I noticed that it still references > /etc/modules.d. Additionally, it talks about running alsaconf, which when run > creates /etc/modules.d/alsa. I think we need to update those things before we > start strictly enforcing that the config file belongs at > /etc/modprobe.d/alsa.conf. > Yah, I need to update the docs, too.
I've patched alsaconf to write modprobe.d/alsa.conf and documentation has also been updated. If you want to change the message printed by the ebuild, feel free to commit.
(In reply to comment #9) > I've patched alsaconf to write modprobe.d/alsa.conf and documentation has also > been updated. If you want to change the message printed by the ebuild, feel > free to commit. > (This wasn't today, in fact, it was like month+ ago.)