From 76943da75ef209b3478ceac74591ad16792899f3 Mon Sep 17 00:00:00 2001 From: Stefan Reimer Date: Sat, 30 Mar 2013 13:09:46 -0700 Subject: [PATCH] sys-kernel/dracut: Emergency sync --- sys-kernel/dracut/Manifest | 2 - ...dracut-023.ebuild => dracut-026-r1.ebuild} | 68 +++++++++++++------ .../dracut/files/dracut-crypt-ssh.patch | 64 +++++++++++++++++ 3 files changed, 112 insertions(+), 22 deletions(-) delete mode 100644 sys-kernel/dracut/Manifest rename sys-kernel/dracut/{dracut-023.ebuild => dracut-026-r1.ebuild} (79%) create mode 100644 sys-kernel/dracut/files/dracut-crypt-ssh.patch diff --git a/sys-kernel/dracut/Manifest b/sys-kernel/dracut/Manifest deleted file mode 100644 index adf09b0..0000000 --- a/sys-kernel/dracut/Manifest +++ /dev/null @@ -1,2 +0,0 @@ -DIST dracut-023.tar.bz2 238823 SHA256 6899cbf0c32f0d8ec1c420a4b6b3fd348b30fe3f4d557783ec40de1e8da26239 SHA512 abd5b165e67cf7298ef0ba8352de924232bdeb7390917f5fbd98a7a2a10b01fe1b3e35f8b619154ce21e5a90b3f9cb07a6fae9e4d8f017b9d7696d15ae46f11f WHIRLPOOL b50b309f4d128d785e62f21c084f4a79100aed0570127376643626e84d9d019b2c5bc32ff14aecec23fbb929456ac51d0a334a1aee275bafc6e4135e80a03789 -EBUILD dracut-023.ebuild 7908 SHA256 84821711a3acc14f22b91be6784a0a0f6213c28f20a52038854b914c020c28e2 SHA512 c97103f23e9fa8792d43664cf410abdf39fee38c4245f943677637b107a980fc80a7247d95c33d38d9bbee596999fbaadcedc4d7409fd1fe196acf797c159442 WHIRLPOOL d59152c69d3a7f3d4dbe5e641e430e28ce7ba7ee632fd31007a8f1d5b62e76dfcd27f690b680a6564ef90eb7d20cb397d8b6d662e1d458291bed5cf22fc7750c diff --git a/sys-kernel/dracut/dracut-023.ebuild b/sys-kernel/dracut/dracut-026-r1.ebuild similarity index 79% rename from sys-kernel/dracut/dracut-023.ebuild rename to sys-kernel/dracut/dracut-026-r1.ebuild index 90a7a98..b986301 100644 --- a/sys-kernel/dracut/dracut-023.ebuild +++ b/sys-kernel/dracut/dracut-026-r1.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2012 Gentoo Foundation +# Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/dracut/dracut-023.ebuild,v 1.2 2012/09/09 16:48:14 aidecoe Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/dracut/dracut-026-r1.ebuild,v 1.1 2013/03/12 08:47:57 aidecoe Exp $ EAPI=4 -inherit eutils linux-info toolchain-funcs +inherit eutils linux-info add_req_use_for() { local dep="$1"; shift @@ -21,10 +21,11 @@ HOMEPAGE="http://dracut.wiki.kernel.org" SRC_URI="mirror://kernel/linux/utils/boot/${PN}/${P}.tar.bz2" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~amd64 ~x86" +KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86" REQUIRED_USE="dracut_modules_crypt-gpg? ( dracut_modules_crypt ) dracut_modules_crypt-loop? ( dracut_modules_crypt ) + dracut_modules_crypt-ssh? ( dracut_modules_crypt ) dracut_modules_livenet? ( dracut_modules_dmsquash-live ) " COMMON_MODULES=" @@ -33,6 +34,7 @@ COMMON_MODULES=" dracut_modules_btrfs dracut_modules_caps dracut_modules_crypt-gpg + dracut_modules_crypt-ssh dracut_modules_crypt-loop dracut_modules_gensplash dracut_modules_mdraid @@ -74,18 +76,21 @@ RDEPEND="${CDEPEND} || ( >=sys-apps/module-init-tools-3.8 >sys-apps/kmod-5[tools] ) >=sys-apps/sysvinit-2.87-r3 >=sys-apps/util-linux-2.21 + virtual/pkgconfig debug? ( dev-util/strace ) device-mapper? ( || ( sys-fs/device-mapper >=sys-fs/lvm2-2.02.33 ) ) - net? ( net-misc/curl >=net-misc/dhcp-4.2.1-r1[client,ipv6] sys-apps/iproute2 ) + net? ( net-misc/curl >=net-misc/dhcp-4.2.4_p2-r1[client] sys-apps/iproute2 ) selinux? ( sys-libs/libselinux sys-libs/libsepol ) dracut_modules_biosdevname? ( sys-apps/biosdevname ) - dracut_modules_bootchart? ( app-benchmarks/bootchart2 ) + dracut_modules_bootchart? ( app-benchmarks/bootchart2 sys-apps/usleep + sys-process/acct ) dracut_modules_btrfs? ( sys-fs/btrfs-progs ) dracut_modules_caps? ( sys-libs/libcap ) dracut_modules_cifs? ( net-fs/cifs-utils ) dracut_modules_crypt? ( sys-fs/cryptsetup ) dracut_modules_crypt-gpg? ( app-crypt/gnupg ) + dracut_modules_crypt-ssh? ( net-misc/dropbear ) dracut_modules_dmraid? ( sys-fs/dmraid sys-fs/multipath-tools ) dracut_modules_gensplash? ( media-gfx/splashutils ) dracut_modules_iscsi? ( >=sys-block/open-iscsi-2.0.871.3 ) @@ -103,9 +108,12 @@ DEPEND="${CDEPEND} >=dev-libs/libxslt-1.1.26 app-text/docbook-xml-dtd:4.5 >=app-text/docbook-xsl-stylesheets-1.75.2 - virtual/pkgconfig " +DOCS=( AUTHORS HACKING NEWS README README.generic README.kernel README.modules + README.testsuite TODO ) +DRACUT_LIBDIR="/usr/lib" + # # Helper functions # @@ -148,11 +156,12 @@ rm_module() { # src_prepare() { - local udevdir="$($(tc-getPKG_CONFIG) udev --variable=udevdir)" - [[ ${udevdir} ]] || die "Couldn't detect udevdir" - einfo "Setting udevdir to ${udevdir}..." - sed -e "s@udevdir=.*@udevdir=\"${udevdir}\"@" \ - -i "${S}/dracut.conf.d/gentoo.conf.example" || die + epatch "${FILESDIR}/${PV}-0001-dracut-functions.sh-support-for-altern.patch" + epatch "${FILESDIR}/${PV}-0002-gentoo.conf-let-udevdir-be-handled-by-.patch" + epatch "${FILESDIR}/${PV}-0004-lsinitrd.sh-fix-for-default-initrd-not.patch" + epatch "${FILESDIR}/${PV}-0005-lsinitrd.sh-removed-trailing.patch" + epatch "${FILESDIR}/${PV}-0006-make-host_fs_types-a-hashmap.patch" + chmod +x "${S}/modules.d/95udev-rules/udev-rules-prepare.sh" if use dracut_modules_systemd; then local systemdutildir="$($(tc-getPKG_CONFIG) systemd \ @@ -169,37 +178,46 @@ src_prepare() { sed -e "5asystemdsystemunitdir=\"${systemdsystemunitdir}\"" \ -i "${S}/dracut.conf.d/gentoo.conf.example" || die fi + + if use dracut_modules_crypt-ssh; then + epatch "${FILESDIR}/${PV}-crypt-ssh.patch" + fi +} + +src_configure() { + econf --libdir="${DRACUT_LIBDIR}" } src_compile() { - emake prefix=/usr sysconfdir=/etc DESTDIR="${D}" doc + emake doc + if use optimization; then ewarn "Enabling experimental optimization!" tc-export CC - emake prefix=/usr sysconfdir=/etc DESTDIR="${D}" install/dracut-install + emake install/dracut-install fi } src_install() { - emake prefix=/usr libdir="/usr/$(get_libdir)" sysconfdir=/etc \ - DESTDIR="${D}" install + default - dodir /var/lib/dracut/overlay - dodoc HACKING TODO AUTHORS NEWS README* + local libdir="${DRACUT_LIBDIR}" - insinto /etc/dracut.conf.d + insinto "${libdir}/dracut/dracut.conf.d/" newins dracut.conf.d/gentoo.conf.example gentoo.conf insinto /etc/logrotate.d newins dracut.logrotate dracut + dodir /var/lib/dracut/overlay + dohtml dracut.html # # Modules # local module - modules_dir="${D}/usr/$(get_libdir)/dracut/modules.d" + modules_dir="${D%/}/${libdir#/}/dracut/modules.d" # Remove modules not enabled by USE flags for module in ${IUSE_DRACUT_MODULES} ; do @@ -267,4 +285,14 @@ pkg_postinst() { ewarn " CONFIG_MODULES" ewarn "" fi + + if use dracut_modules_crypt || use dracut_modules_dmraid || use \ + dracut_modules_mdraid || use dracut_modules_lvm; then + + if ! [[ $(=dracut-024." + ewarn "Use rd.auto option to turn it on." + fi + fi } diff --git a/sys-kernel/dracut/files/dracut-crypt-ssh.patch b/sys-kernel/dracut/files/dracut-crypt-ssh.patch new file mode 100644 index 0000000..d0eca39 --- /dev/null +++ b/sys-kernel/dracut/files/dracut-crypt-ssh.patch @@ -0,0 +1,64 @@ +commit 435277eac4489ef0fe1aa33591ae4aa27520ab63 +Author: Stefan Reimer +Date: Sat Mar 30 13:02:51 2013 -0700 + + Add initial version of crypt-ssh + +diff --git a/modules.d/90crypt/cryptroot-ask.sh b/modules.d/90crypt/cryptroot-ask.sh +index 9665e48..026b127 100755 +--- a/modules.d/90crypt/cryptroot-ask.sh ++++ b/modules.d/90crypt/cryptroot-ask.sh +@@ -146,11 +146,16 @@ fi + + if [ $ask_passphrase -ne 0 ]; then + luks_open="$(command -v cryptsetup) $cryptsetupopts luksOpen" +- ask_for_password --ply-tries 5 \ +- --ply-cmd "$luks_open -T1 $device $luksname" \ +- --ply-prompt "Password ($device)" \ +- --tty-tries 1 \ +- --tty-cmd "$luks_open -T5 $device $luksname" ++ ++ if getarg 1 rc.luks.ssh; then ++ ask_for_password --ply-tries 5 \ ++ --ply-cmd "$luks_open -T1 $device $luksname" \ ++ --ply-prompt "Password ($device)" \ ++ --tty-tries 1 \ ++ --tty-cmd "$luks_open -T5 $device $luksname" ++ else ++ /usr/sbin/dropbear -p 22001 -F -m -j -k -s ++ fi + unset luks_open + fi + +diff --git a/modules.d/92crypt-ssh/module-setup.sh b/modules.d/92crypt-ssh/module-setup.sh +new file mode 100644 +index 0000000..d5e1342 +--- /dev/null ++++ b/modules.d/92crypt-ssh/module-setup.sh +@@ -0,0 +1,26 @@ ++#!/bin/bash ++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- ++# ex: ts=8 sw=4 sts=4 et filetype=sh ++ ++# Author: Stefan Reimer ++# Date: 2013-Mar-24 ++ ++check() { ++ [ -x /usr/sbin/dropbear ] ++} ++ ++depends() { ++ echo "network crypt" ++ return 0 ++} ++ ++install() { ++ #Install dropbear incl. keys ++ [ -r /etc/dropbear/dropbear_dss_host_key ] || /usr/bin/dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key ++ [ -r /etc/dropbear/dropbear_rsa_host_key ] || /usr/bin/dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key ++ ++ inst /usr/sbin/dropbear "/usr/sbin/dropbear" ++ inst /etc/dropbear/dropbear_dss_host_key "/etc/dropbear/dropbear_dss_host_key" ++ inst /etc/dropbear/dropbear_rsa_host_key "/etc/dropbear/dropbear_rsa_host_key" ++ [ -r /root/.ssh/authorized_keys ] && inst /root/.ssh/authorized_keys "/root/.ssh/authorized_keys" ++}