Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 280073 - Update ebuild message / ALSA docs about recent changes
Summary: Update ebuild message / ALSA docs about recent changes
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo ALSA team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-08-02 17:21 UTC by Timothy Miller
Modified: 2010-06-24 02:11 UTC (History)
2 users (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 Timothy Miller 2009-08-02 17:21:50 UTC
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
Comment 1 Samuli Suominen (RETIRED) gentoo-dev 2009-08-02 17:24:46 UTC
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.
Comment 2 Timothy Miller 2009-08-02 22:48:16 UTC
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.
Comment 3 Tony Vroon (RETIRED) gentoo-dev 2009-08-02 23:58:02 UTC
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.
Comment 4 Paul Varner (RETIRED) gentoo-dev 2009-08-03 20:40:36 UTC
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.
Comment 5 Steve Dibb (RETIRED) gentoo-dev 2009-08-03 20:42:41 UTC
(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. :)
Comment 6 Samuli Suominen (RETIRED) gentoo-dev 2009-08-03 20:51:26 UTC
No objections either, a more user friendly message would be fine

Please provide a suggestion ;)
Comment 7 Paul Varner (RETIRED) gentoo-dev 2009-08-04 04:35:24 UTC
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.
Comment 8 Steve Dibb (RETIRED) gentoo-dev 2009-08-04 05:28:48 UTC
(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.
Comment 9 Samuli Suominen (RETIRED) gentoo-dev 2009-09-20 16:40:14 UTC
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.
Comment 10 Samuli Suominen (RETIRED) gentoo-dev 2009-09-20 16:41:02 UTC
(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.)