Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 528998 - sys-kernel/dracut-040 should install skipcpio
Summary: sys-kernel/dracut-040 should install skipcpio
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Amadeusz Żołnowski (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-11-12 03:14 UTC by satmd
Modified: 2014-11-30 12:02 UTC (History)
3 users (show)

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


Attachments
build.log (build.log,11.74 KB, text/plain)
2014-11-17 07:37 UTC, Peter Volkov (RETIRED)
Details
0001-Install-skipcpio-into-libexec-dir-instead-of-lib-dir.patch (0001-Install-skipcpio-into-libexec-dir-instead-of-lib-dir.patch,1.81 KB, patch)
2014-11-17 18:25 UTC, Alexander Tsoy
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description satmd 2014-11-12 03:14:35 UTC
The ebuild for dracut does not build the file skipcpio/skipcpio and the file will be silently skipped during install phase.

The skipcpio binary is needed for lsinitrd to work correctly when there's early microcode or the initrd consists of several cpio images.

The trivial change to the ebuild is below.

--- /usr/portage/sys-kernel/dracut/dracut-040.ebuild    2014-11-09 10:01:17.000000000 +0100
+++ sys-kernel/dracut/dracut-040-r1.ebuild      2014-11-12 04:05:46.816587429 +0100
@@ -148,7 +148,7 @@
 
 src_compile() {
        tc-export CC
-       emake doc install/dracut-install
+       emake doc install/dracut-install skipcpio/skipcpio
 }
 
 src_install() {
Comment 1 Maxim Koltsov (RETIRED) gentoo-dev 2014-11-13 18:46:54 UTC
Commited, thanks.
Comment 2 Peter Volkov (RETIRED) gentoo-dev 2014-11-17 07:37:10 UTC
Hi, I experience problem with this fix:

Files matching a file type that is not allowed:
   usr/lib/dracut/skipcpio
Comment 3 Peter Volkov (RETIRED) gentoo-dev 2014-11-17 07:37:53 UTC
Created attachment 389556 [details]
build.log
Comment 4 Peter Volkov (RETIRED) gentoo-dev 2014-11-17 15:37:46 UTC
ebuild explicitly sets:

MY_LIBDIR=/usr/lib
--libdir=${MY_LIBDIR}

There is no comment why this is done this way, so it's not evident how to fix this.
Comment 5 Alexander Tsoy 2014-11-17 18:25:17 UTC
Created attachment 389587 [details, diff]
0001-Install-skipcpio-into-libexec-dir-instead-of-lib-dir.patch

We have already applied patch that moves dracut-install into libexec dir. Could someone try the attached patch?


Another alternative is to set QA_MULTILIB_PATHS in ebuild:

QA_MULTILIB_PATHS="
    usr/lib/dracut/dracut-install
    usr/lib/dracut/skipcpio
    "

and drop the following patch:
"Install dracut-install into libexec dir instead of lib"

Amadeusz, what do you think?
Comment 6 Alexander Tsoy 2014-11-17 19:32:32 UTC
(In reply to Peter Volkov from comment #4)

This is similar to udev, systemd, etc. And we already have exceptions for them:

# grep MULTILIB_STRICT_EXEMPT /var/cache/portage/tree/profiles/features/multilib/make.defaults
MULTILIB_STRICT_EXEMPT="(perl5|gcc|gcc-lib|binutils|eclipse-3|debug|portage|udev|systemd|clang|python-exec)"


Also there is a related thread on the dracut ML where Harald said that /usr/lib/dracut is the only supported dir:
http://thread.gmane.org/gmane.linux.kernel.initramfs/3433
Comment 7 Amadeusz Żołnowski (RETIRED) gentoo-dev 2014-11-18 20:07:05 UTC
Installing skipcpio next to dracut-install (into libexec) would be a way to go. But maybe QA_MULTILIB_PATHS approach is better.


+*dracut-040-r2 (18 Nov 2014)
+
+  18 Nov 2014; Amadeusz Żołnowski <aidecoe@gentoo.org> +dracut-040-r2.ebuild:
+  Drop patch "Install dracut-install into libexec dir instead of lib"
+  and install skipcpio and dracut-install into /usr/lib/dracut/. Set
+  QA_MULTILIB_PATHS accordingly for these binaries.
+
+  Fix bug #528998.  Commit on behalf of Alexander Tsoy <alexander@tsoy.me>.
+


Peter, could you test, please?