According to man page of rc-update openrc can handle stacked runlevels. I gave this a try on some of my machines and found out that this breaks dependency order if the dependencies are not in the same runlevel. Here's an example: # ls -l /etc/runlevels/noX total 0 lrwxrwxrwx 1 root root 15 Dec 17 2010 atd -> /etc/init.d/atd lrwxrwxrwx 1 root root 18 Jul 18 2011 cronie -> /etc/init.d/cronie lrwxrwxrwx 1 root root 17 Dec 17 2010 local -> /etc/init.d/local lrwxrwxrwx 1 root root 20 Dec 17 2010 net.eth0 -> /etc/init.d/net.eth0 lrwxrwxrwx 1 root root 16 Jun 28 2011 ntpd -> /etc/init.d/ntpd lrwxrwxrwx 1 root root 21 Dec 17 2010 pure-ftpd -> /etc/init.d/pure-ftpd lrwxrwxrwx 1 root root 18 Dec 17 2010 rsyncd -> /etc/init.d/rsyncd lrwxrwxrwx 1 root root 17 Dec 17 2010 samba -> /etc/init.d/samba lrwxrwxrwx 1 root root 18 Dec 17 2010 smartd -> /etc/init.d/smartd lrwxrwxrwx 1 root root 16 Dec 17 2010 sshd -> /etc/init.d/sshd lrwxrwxrwx 1 root root 20 Dec 17 2010 sysklogd -> /etc/init.d/sysklogd # ls -l /etc/runlevels/default total 0 lrwxrwxrwx 1 root root 21 Dec 17 2010 alsasound -> /etc/init.d/alsasound lrwxrwxrwx 1 root root 24 Sep 19 2011 avahi-daemon -> /etc/init.d/avahi-daemon lrwxrwxrwx 1 root root 17 Dec 17 2010 cupsd -> /etc/init.d/cupsd lrwxrwxrwx 1 root root 20 Oct 10 2011 netmount -> /etc/init.d/netmount lrwxrwxrwx 1 root root 6 Jul 17 10:40 noX -> ../noX lrwxrwxrwx 1 root root 19 Dec 17 2010 uptimed -> /etc/init.d/uptimed lrwxrwxrwx 1 root root 15 Dec 17 2010 xdm -> /etc/init.d/xdm # grep ^rc_.*after /etc/rc.conf /etc/conf.d/xdm /etc/rc.conf:rc_netmount_after="net.eth0" /etc/conf.d/xdm:rc_after="alsasound" With this setup netmount won't get started after net.eth0 was started but before. On the other hand, xdm gets started after alsasound because both are in the same runlevel. If I move netmount from default to noX it gets started after net.eth0 as expected. # emerge --info openrc Portage 2.2.0_alpha118 (default/linux/amd64/10.0/desktop/kde, gcc-4.6.3, glibc-2.14.1-r3, 3.0.37 x86_64) ================================================================= System Settings ================================================================= System uname: Linux-3.0.37-x86_64-Intel-R-_Core-TM-_i7-2600_CPU_@_3.40GHz-with-gentoo-2.1 Timestamp of tree: Mon, 16 Jul 2012 06:00:01 +0000 app-shells/bash: 4.2_p36 dev-java/java-config: 2.1.12 dev-lang/python: 2.7.3-r2, 3.2.3-r1 dev-util/cmake: 2.8.8-r3 dev-util/pkgconfig: 0.27 sys-apps/baselayout: 2.1-r1 sys-apps/openrc: 0.10.5 sys-apps/sandbox: 2.6 sys-devel/autoconf: 2.13, 2.69 sys-devel/automake: 1.9.6-r3, 1.11.6, 1.12.2 sys-devel/binutils: 2.22-r1 sys-devel/gcc: 4.6.3 sys-devel/gcc-config: 1.7.3 sys-devel/libtool: 2.4.2 sys-devel/make: 3.82-r3 sys-kernel/linux-headers: 3.4-r1 (virtual/os-headers) sys-libs/glibc: 2.14.1-r3 Repositories: gentoo poly-c ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="* -@EULA AdobeFlash-10.3 dlj-1.1 PUEL" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=corei7 -mtune=corei7 -O2 -pipe -fomit-frame-pointer -finline-functions" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="${EPREFIX}/etc/gconf /etc/X11/Sessions /etc/X11/app-defaults /etc/X11/xinit /etc/adobe /etc/bash_completion.d /etc/bonobo-activation /etc/ca-certificates.conf /etc/cups /etc/dbus-1 /etc/env.d /etc/eselect/compiler /etc/fish /etc/fonts /etc/fonts/fonts.conf /etc/foomatic /etc/gconf /etc/gentoo-release /etc/gimp /etc/gnome-vfs-2.0 /etc/gtk /etc/gtk-2.0 /etc/hotplug /etc/hotplug.d /etc/htdig /etc/imlib /etc/init.d /etc/iproute2 /etc/libgda-3.0 /etc/ntop /etc/pam.d /etc/pango /etc/profile.d /etc/qt4 /etc/revdep-rebuild /etc/sandbox.d /etc/sasl2 /etc/sgml /etc/sound /etc/ssl /etc/ssmtp /etc/t1lib /etc/terminfo /etc/usb_modeswitch.d /etc/xinetd.d /etc/xml /etc/zsh" CXXFLAGS="-march=corei7 -mtune=corei7 -O2 -pipe -fomit-frame-pointer -finline-functions" DISTDIR="/var/tmp/distfiles" EMERGE_DEFAULT_OPTS="--alphabetical --with-bdeps=y --jobs=1 --keep-going --misspell-suggestions=n --autounmask=n --quiet-build=n" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles news parallel-fetch parse-eapi-ebuild-head protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror/ ftp://ftp.tu-clausthal.de/pub/linux/gentoo/ http://gentoo.oregonstate.edu http://www.ibiblio.org/pub/Linux/distributions/gentoo" INSTALL_MASK="/lib/systemd /lib32/systemd /lib64/systemd /usr/lib/systemd /usr/lib32/systemd /usr/lib64/systemd" LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--sort-common -Wl,--as-needed" LINGUAS="de en" MAKEOPTS="-j8" 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="/var/lib/layman/poly-c" SYNC="rsync://rsync.de.gentoo.org/gentoo-portage" USE="3dnow 3dnowext X a52 aac acpi alsa amd64 berkdb branding bzip2 cairo caps cdda cdparanoia cdr cli cracklib crypt cups cxx dbus declarative dts dvd dvdr dvdread emboss encode exif fam ffmpeg flac gdbm gif gmp gnutls gpg gtk iconv idn imagemagick imlib jpeg jpeg2k kde kdehiddenvisibility kipi lame lcms libnotify mad mjpeg mmx mmxext mng modules mp3 mp4 mpeg mudflap multilib ncurses nls nptl nsplugin ogg opengl openmp pam pango pcre pdf plasma png ppds pppd projectm qt3support qt4 quicktime readline rtmp sdl session silc slang smp spell sse sse2 ssl startup-notification svg theora threads tiff truetype twolame udev unicode upower usb vcd vorbis vpx wxwidgets x264 xcb xcomposite xinerama xml xorg xscreensaver xulrunner xv xvid zlib zsh-completion" ALSA_CARDS="hda-intel" 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" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" 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 joystick" KERNEL="linux" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="de en" PHP_TARGETS="php5-3" PYTHON_TARGETS="python3_2 python2_7" RUBY_TARGETS="ruby19" SANE_BACKENDS="hp" USERLAND="GNU" VIDEO_CARDS="radeon" 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, LANG, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON ================================================================= Package Settings ================================================================= sys-apps/openrc-0.10.5 was built with the following: USE="-debug (multilib) ncurses pam (-selinux) -static-libs unicode"
Any progress in here? Did even someone look into this?
I just submitted another bug report which fixes some other issues and should resolve these too - see bug 467368 for more details. I'd really appreciate wider testing if possible. Thanks!
Created attachment 346838 [details, diff] Patch to fix run-level stacking (chaining) dependency issues. It seems the problem space for this bug was more interesting than I originally thought. :-) I've attached a more comprehensive patch which should resolve these issues.
I have tried runlevel stacking feature and this bug appeared. $ emerge --info openrc Portage 2.2.7 (default/linux/amd64/13.0/desktop, gcc-4.7.3, glibc-2.15-r3, 3.10.7-gentoo-r1.39 x86_64) ================================================================= System Settings ================================================================= System uname: Linux-3.10.7-gentoo-r1.39-x86_64-Intel-R-_Core-TM-2_Quad_CPU_Q6700_@_2.66GHz-with-gentoo-2.2 KiB Mem: 4051120 total, 2418748 free KiB Swap: 1052252 total, 1052252 free Timestamp of tree: Sun, 27 Oct 2013 00:45:01 +0000 ld GNU ld (GNU Binutils) 2.23.1 app-shells/bash: 4.2_p45 dev-lang/python: 2.7.5-r3, 3.2.5-r3, 3.3.2-r2 dev-util/cmake: 2.8.11.2 dev-util/pkgconfig: 0.28 sys-apps/baselayout: 2.2 sys-apps/openrc: 0.12.3 sys-apps/sandbox: 2.6-r1 sys-devel/autoconf: 2.13, 2.69 sys-devel/automake: 1.11.6, 1.12.6, 1.13.4 sys-devel/binutils: 2.23.1 sys-devel/gcc: 4.6.3, 4.7.3-r1 sys-devel/gcc-config: 1.7.3 sys-devel/libtool: 2.4.2 sys-devel/make: 3.82-r4 sys-kernel/linux-headers: 3.9 (virtual/os-headers) sys-libs/glibc: 2.15-r3 Repositories: gentoo local-overlay ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe -fomit-frame-pointer" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo" CXXFLAGS="-march=native -O2 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--with-bdeps=y --binpkg-respect-use=y --autounmask=n --complete-graph=y --keep-going" FCFLAGS="-O2 -pipe" FEATURES="binpkg-logs distlocks ebuild-locks fakeroot fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync webrsync-gpg xattr" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="rsync://gentoo.bloodhost.ru/gentoo-distfiles http://gentoo.mirror.web4u.cz/ http://gentoo.mirror.dkm.cz/pub/gentoo/ ftp://ftp.df.lth.se/pub/gentoo/ http://gentoo.lagis.at/" INSTALL_MASK=" /lib/systemd /lib32/systemd /lib64/systemd /lib/tmpfiles.d /lib32/tmpfiles.d /lib64/tmpfiles.d /usr/lib/systemd /usr/lib32/systemd /usr/lib64/systemd /usr/lib/tmpfiles.d /usr/lib32/tmpfiles.d /usr/lib64/tmpfiles.d " LANG="ru_RU.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j5" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-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="/usr/local/portage" SYNC="" USE="X a52 aac acl acpi alsa amd64 amr apm ares bash-completion bidi branding bzip2 c++0x cairo caps cdda cdio cdr cleartype cli consolekit cracklib crypt cue cups custom-cflags custom-optimization cxx dbus dga dirac dri dts dvd dvdr emboss encode exif faad fam ffmpeg firefox flac fontconfig fontforge freetype gcrypt gif gmp gnutls gpm gtk iconv icu idn imlib inotify ipv6 jadetex jpeg kde lcms libass libdvdcss lzma lzo mad matroska midi mmap mmx mng modules mp3 mp4 mpeg mpi mplayer mudflap multilib ncurses network nfs nls nptl offensive ogg openal opengl openmp pango pch pcmcia pcntl pcre pdf pic plasma png policykit posix postproc ppds private-headers projectm qt3support qt4 raw readline schroedinger session sftp sndfile sockets spell sse sse2 ssl ssse3 startup-notification svg system-sqlite tcpd tga theora threads tiff truetype udev udisks unicode upower usb utils vaapi vdpau vlc vorbis vpx wavpack wma wxwidgets x264 xattr xcb xcomposite xft xinerama xpm xscreensaver xv xvid zlib" ABI_X86="64" ALSA_CARDS="hda-intel" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd 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 author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" 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" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="ru en ru_RU en_US" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby19 ruby18" SANE_BACKENDS="hp" USERLAND="GNU" VIDEO_CARDS="vesa vga 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" Unset: CPPFLAGS, CTARGET, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON ================================================================= Package Settings ================================================================= sys-apps/openrc-0.12.3 was built with the following: USE="ncurses netifrc unicode -debug -newnet -pam (-prefix) (-selinux) -static-libs -tools"
> ================================================================= > Package Settings > ================================================================= > > sys-apps/openrc-0.12.3 was built with the following: > USE="ncurses netifrc unicode -debug -newnet -pam (-prefix) (-selinux) > -static-libs -tools" Fixes was not backported and will be included into OpenRC-0.13.