Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 430002

Summary: sys-kernel/dracut-022-r4 incorrectly blocks >=sys-fs/udev-187
Product: Gentoo Linux Reporter: Jan Vesely <jano.vesely>
Component: Current packagesAssignee: Amadeusz Żołnowski (RETIRED) <aidecoe>
Status: RESOLVED FIXED    
Severity: normal CC: cybertec.systems, dairinin, devurandom, dustin, egorov_egor, gentoo, joshua.rich, marduk, Martin.vGagern, milo000, naota, negril.nx, poncho
Priority: Normal    
Version: unspecified   
Hardware: x86   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Jan Vesely 2012-08-05 13:29:19 UTC
Changelog entry says that this combination fails to boot, but I've been runnig it for some time without any problems. Note that I'm using systemd instead of openrc for boot.

Reproducible: Always




emerge --info:
Portage 2.2.0_alpha120 (default/linux/x86/10.0, gcc-4.5.3, glibc-2.14.1-r3, 3.5.0-gentoo i686)
=================================================================
System uname: Linux-3.5.0-gentoo-i686-Intel-R-_Atom-TM-_CPU_N270_@_1.60GHz-with-gentoo-2.1
Timestamp of tree: Sun, 05 Aug 2012 11:30:01 +0000
app-shells/bash:          4.2_p20
dev-java/java-config:     2.1.11-r3
dev-lang/python:          2.7.3-r2, 3.2.3
dev-util/cmake:           2.8.7-r5
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.1-r1
sys-apps/openrc:          0.10.5
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.13, 2.68
sys-devel/automake:       1.11.1
sys-devel/binutils:       2.22-r1
sys-devel/gcc:            4.5.3-r2
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r1
sys-kernel/linux-headers: 3.5 (virtual/os-headers)
sys-libs/glibc:           2.14.1-r3
Repositories: gentoo
ACCEPT_KEYWORDS="x86"
ACCEPT_LICENSE="* -@EULA @BINARY-REDISTRIBUTABLE google-chrome"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=native -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -march=native -pipe"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -march=i686 -pipe"
FEATURES="assume-digests binpkg-logs candy config-protect-if-modified distlocks ebuild-locks fixlafiles news parallel-fetch parse-eapi-ebuild-head preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -march=i686 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="en"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="32bit X a52 aac acl aisleriot alsa apng berkdb branding bzip2 cairo call chroot cleartype cli clutter colord cracklib crypt cups curl cxx dbus dri eap-sim eds exif ffmpeg flac fortran g3dvl gallium gdbm gdm gif git glchess gnome-keyring gnome-online-accounts gnome-shell gnutls gpm graphite gstreamer gtk3 gudev hddtemp hwdb iconv icu introspection ipv6 irc jabber jit jpeg libkms libnotify llvm lm_sensors lto mad matroska mktemp mmx mng modules mp3 mp4 mpeg mudflap nautilus ncurses networkmanager nls nptl ogg opengl openmp orc pam pango pch pcre plymouth png policykit pppd pulseaudio readline sdl session shared-dricore smp sna socialweb socks5 spell sse sse2 ssl ssse3 svg systemd theora threads threadsafe tiff tor-hardening truetype udev udisks unicode upower usb vim-syntax vorbis weather webkit2 webm webp x264 x86 xcb xvmc zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 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 cgi cgid 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" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" DRACUT_MODULES="plymouth" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en" PHP_TARGETS="php5-3" PYTHON_TARGETS="python3_2 python2_7" QEMU_SOFTMMU_TARGETS="i386" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="intel i915" XFCE_PLUGINS="menu" 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"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 1 Amadeusz Żołnowski (RETIRED) gentoo-dev 2012-08-05 14:52:01 UTC
It blocks >=udev-187, because udev maintainer migrated surprisingly to /usr/lib without a notice.  It works ok with udev-186 which has used old dirs, but it is no longer in the tree what makes things even more surprising.  I will fix dracut ebuilds for that.
Comment 2 Jan Vesely 2012-08-05 15:06:33 UTC
sry the title is wrong must be typo...

I'm currently running (copypasted this time to avoid typos):

sys-fs/udev-187-r1 was built with the following:
USE="gudev hwdb introspection -doc -keymap -openrc (-selinux) -static-libs"

sys-kernel/dracut-022-r3 was built with the following:
USE="-debug -device-mapper -net -optimization (-selinux)" DRACUT_MODULES="plymouth -biosdevname -bootchart -btrfs -caps -crypt -crypt-gpg -dmraid -dmsquash-live -gensplash -iscsi -livenet -lvm -mdraid -multipath -nbd -nfs -ssh-client -syslog"

and it works ok.
Is this setup supposed to work? the Changelog comment gave me the impression that it is not.
Comment 3 Jan Vesely 2012-08-05 15:08:13 UTC
sry for the type in the title

I'm currently running:
sys-fs/udev-187-r1 was built with the following:
USE="gudev hwdb introspection -doc -keymap -openrc (-selinux) -static-libs"

sys-kernel/dracut-022-r3 was built with the following:
USE="-debug -device-mapper -net -optimization (-selinux)" DRACUT_MODULES="plymouth -biosdevname -bootchart -btrfs -caps -crypt -crypt-gpg -dmraid -dmsquash-live -gensplash -iscsi -livenet -lvm -mdraid -multipath -nbd -nfs -ssh-client -syslog"


Is this supposed to work? The comment and block gave me the impresssion that it is not.
Comment 4 Amadeusz Żołnowski (RETIRED) gentoo-dev 2012-08-05 15:34:21 UTC
(In reply to comment #3)
> Is this supposed to work? The comment and block gave me the impresssion that
> it is not.

Maybe it works for some basic setup, but generally it shouldn't work. udev has been moved to /usr/lib and on Gentoo dracut expects it in /lib, therefore some rules are not copied into initramfs. I am waiting for udev maintainer to explain his surprising move.
Comment 5 Jan Vesely 2012-08-05 15:43:36 UTC
(In reply to comment #4)
> (In reply to comment #3)
> > Is this supposed to work? The comment and block gave me the impresssion that
> > it is not.
> 
> Maybe it works for some basic setup, but generally it shouldn't work. udev
> has been moved to /usr/lib and on Gentoo dracut expects it in /lib,
> therefore some rules are not copied into initramfs. I am waiting for udev
> maintainer to explain his surprising move.

OK, thanks for the explanation. Feel free to close this bug and sorry for the noise.
Comment 6 Amadeusz Żołnowski (RETIRED) gentoo-dev 2012-08-05 19:49:30 UTC
The noise is justified. Don't feel sorry. :-)

I'm leaving the bug as is for reference until things are explained.
Comment 7 Dennis Schridde 2012-08-06 21:27:26 UTC
Could we please get sys-fs/udev-186 back, until this issue is solved?

It currently prevents me from updating, as it appears impossible to mask >=sys-fs/udev-187, apparently because sys-fs/udisks-1.99.0 requires >=sys-fs/udev-180, and there is no ebuild in Gentoo to satisfy that at the moment.
Comment 8 Martin von Gagern 2012-08-06 21:31:01 UTC
(In reply to comment #7)
> it appears impossible to mask >=sys-fs/udev-187

I managed to do just that, by masking

>=sys-fs/udev-187
sys-fs/udev-init-scripts
>=sys-fs/udisks-1.99.0

and manually downgrading those packages before doing any world updates.
That said, I very much second your request:

> Could we please get sys-fs/udev-186 back, until this issue is solved?

A fix at the distro level of dracut would be nice as well.
Comment 9 Dennis Schridde 2012-08-06 21:42:54 UTC
(In reply to comment #8)
> (In reply to comment #7)
> > it appears impossible to mask >=sys-fs/udev-187
> 
> I managed to do just that, by masking
> 
> >=sys-fs/udev-187
> sys-fs/udev-init-scripts
> >=sys-fs/udisks-1.99.0
Here I have (# equery depends udisks):
gnome-base/gvfs-1.12.3 (udisks ? >=sys-fs/udisks-1.90:2)

And the only version >=1.90 in Gentoo is 1.99 which needs =>sys-fs/udev-180.
Comment 10 Dustin C. Hatch 2012-08-07 01:54:33 UTC
I, too, am unable to update @world because of this block, but using the same entries in package.mask as listed in comment #8, I was able to manually downgrade udev and proceed with the update.

I'm sure the udev maintainer moved things for the "usr merge"[1], so I doubt that we'll see anything get moved back. I agree with comment #7, though; the best short-term solution seems to be returning udev 186 to the tree until dracut can be patched.

[1] https://fedoraproject.org/wiki/Features/UsrMove
Comment 11 Dustin C. Hatch 2012-08-07 02:51:00 UTC
I've extracted the dead udev-186.ebuild from CVS and copied it into my overlay. If you'd like to work around this bug simply, you can do this::

    layman -a dustin && ln -s /var/lib/layman/dustin/info/package.mask/gentoo-bug-430002 /etc/portage/package.mask/
Comment 12 Amadeusz Żołnowski (RETIRED) gentoo-dev 2012-08-07 06:07:24 UTC
(In reply to comment #10)
> I'm sure the udev maintainer moved things for the "usr merge"[1], so I doubt
> that we'll see anything get moved back. I agree with comment #7, though; the
> best short-term solution seems to be returning udev 186 to the tree until
> dracut can be patched.

Yes, this is because of usr merge, but there's a chance udev will be moved back to /lib and the steps will be rethought.

The best to do is to get udev 186 and wait until everything is explained. Sorry for the mess.
Comment 13 Ulenrich 2012-08-07 15:26:38 UTC
If I look deeply into activities of upstream git 
systemd
dracut
I see response activities in dracut-git with filenames systemd!
On 2012-08-01 there was a release dracut-023
Comment 14 Jan Vesely 2012-08-08 13:26:28 UTC
(In reply to comment #12)
> (In reply to comment #10)
> > I'm sure the udev maintainer moved things for the "usr merge"[1], so I doubt
> > that we'll see anything get moved back. I agree with comment #7, though; the
> > best short-term solution seems to be returning udev 186 to the tree until
> > dracut can be patched.
> 
> Yes, this is because of usr merge, but there's a chance udev will be moved
> back to /lib and the steps will be rethought.
> 
> The best to do is to get udev 186 and wait until everything is explained.
> Sorry for the mess.

There was a revbump for udev with this comment:
  07 Aug 2012; William Hubbs <williamh@gentoo.org> +udev-187-r2.ebuild,
  udev-9999.ebuild:
  rev bump to move everything back to /lib/udev from /usr/lib/udev.
  Also sync live ebuild.

I thought it could help this issue, but building initrd with this new udev results in:
/init: 124: /init: /lib/systemd/systemd-udevd: not found
loadkeys: /us/share/keymaps/i386/qwerty/us.map:4: cannot open include file qwerty-layout

using dracut --install /lib/systemd/systemd-udevd fixes the first message but udev is not started.
Comment 15 Florian Scandella 2012-08-08 14:32:41 UTC
same problem as comment #14, additionally i cannot boot my old initrd anymore. systemd hangs at mounting the filesystems.
i get dumped to a rescue shell, as far as i can see udev is not started (but no error messages regarding this). starting systemd-udevd from the rescue shell works fine.

using systemd-44-r1, inird generated with dracut (i think with udev 186, but i'm not sure).
Comment 16 Florian Scandella 2012-08-08 16:01:26 UTC
ok, found the problem .. udev-187-r2 does not install the systemd service files.
Comment 17 Ulenrich 2012-08-08 17:17:39 UTC
Instead of rev bumping dracut-023 there seemingly is a migrating plan:
zick-zack-panic-attack
Comment 18 Egor Y. Egorov 2012-08-09 07:55:21 UTC
udev-187-r3.ebuild again install binaries into /usr/lib/udev
I see, that udevdir=/lib/udev in /etc/dracut.conf.d/gentoo.conf
May be possible to define a variable udevdir in runtime?
udevdir=$(pkg-config --variable=udevdir udev)
Comment 19 Ulenrich 2012-08-09 10:31:37 UTC
@Egor isn't it both possible and therefore not needed to specify as udev-187-r3 changelog says:
"using /usr/lib and allowing packages to put things in /lib for now."
Comment 20 Egor Y. Egorov 2012-08-09 10:40:07 UTC
(In reply to comment #19)
> @Egor isn't it both possible and therefore not needed to specify as
> udev-187-r3 changelog says:
> "using /usr/lib and allowing packages to put things in /lib for now."

Here it is slightly different. What you say, it is necessary to udev could work with binaries and rules from third-party packages that are still putting their files in /lib/udev. Files of the udev will always be in $(pkg-config --variable=udevdir udev)
Comment 21 Arnaud Lech 2012-08-09 11:07:40 UTC
At least with udevdir=/usr/lib/udev in /etc/dracut.conf.d/gentoo.conf I can generate an initrd that boot my system (with udev-187-r3 & dracut-022-r4).
I've seen no side-effect for now.
Comment 22 Amadeusz Żołnowski (RETIRED) gentoo-dev 2012-08-09 16:33:35 UTC
  09 Aug 2012; Amadeusz Żołnowski <aidecoe@gentoo.org> dracut-019-r5.ebuild:
  Remove udev-187 blocker from 019.  Fixes bug #430002.

  09 Aug 2012; Amadeusz Żołnowski <aidecoe@gentoo.org> dracut-019-r5.ebuild:
  dracut-019 uses pkg-config at run-time to detect udevdir.  Rels bug #430002.

*dracut-022-r5 (09 Aug 2012)

  09 Aug 2012; Amadeusz Żołnowski <aidecoe@gentoo.org> -dracut-022-r4.ebuild,
  +dracut-022-r5.ebuild:
  pkg-config is now used to configure udevdir path in the ebuild.
  Rels bug #430002.

  09 Aug 2012; Amadeusz Żołnowski <aidecoe@gentoo.org> dracut-022-r4.ebuild:
  Use pkg-config to detect udevdir.  Remove udev-187 blocker.