| 1 |
# Copyright 1999-2012 Gentoo Foundation
|
| 2 |
# Distributed under the terms of the GNU General Public License v2
|
| 3 |
# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mkinitcpio/mkinitcpio-0.9.2.ebuild,v 1.2 2012/07/02 12:58:33 xmw Exp $
|
| 4 |
|
| 5 |
EAPI=3
|
| 6 |
inherit eutils linux-info
|
| 7 |
|
| 8 |
DESCRIPTION="Modular initramfs image creation utility ported from Arch Linux"
|
| 9 |
HOMEPAGE="http://www.archlinux.org/"
|
| 10 |
MY_SRC_URI_CORE="ftp://ftp.archlinux.org/core/os/x86_64"
|
| 11 |
SRC_URI="ftp://ftp.archlinux.org/other/${PN}/${P}.tar.gz
|
| 12 |
udev? ( ${MY_SRC_URI_CORE}/systemd-tools-185-4-x86_64.pkg.tar.xz )
|
| 13 |
device-mapper? ( ${MY_SRC_URI_CORE}/device-mapper-2.02.96-2-x86_64.pkg.tar.xz
|
| 14 |
${MY_SRC_URI_CORE}/lvm2-2.02.96-2-x86_64.pkg.tar.xz )
|
| 15 |
cryptsetup? ( ${MY_SRC_URI_CORE}/cryptsetup-1.4.3-1-x86_64.pkg.tar.xz )
|
| 16 |
mdadm? ( ${MY_SRC_URI_CORE}/mdadm-3.2.5-2-x86_64.pkg.tar.xz )
|
| 17 |
dmraid? ( ${MY_SRC_URI_CORE}/dmraid-1.0.0.rc16.3-7-x86_64.pkg.tar.xz )
|
| 18 |
pcmcia? ( ${MY_SRC_URI_CORE}/pcmciautils-018-4-x86_64.pkg.tar.xz )
|
| 19 |
plymouth? ( http://aur.archlinux.org/packages/pl/plymouth-git/plymouth-git.tar.gz )"
|
| 20 |
|
| 21 |
LICENSE="GPL-2"
|
| 22 |
SLOT="0"
|
| 23 |
KEYWORDS=""
|
| 24 |
IUSE="cryptsetup device-mapper dmraid mdadm pcmcia plymouth udev"
|
| 25 |
|
| 26 |
DEPEND="sys-apps/sed"
|
| 27 |
RDEPEND="app-arch/cpio
|
| 28 |
app-arch/gzip
|
| 29 |
app-arch/libarchive
|
| 30 |
app-shells/bash
|
| 31 |
>=sys-apps/busybox-1.20[static]
|
| 32 |
sys-apps/coreutils
|
| 33 |
sys-apps/file
|
| 34 |
sys-apps/findutils
|
| 35 |
sys-apps/grep
|
| 36 |
>=sys-apps/kmod-7
|
| 37 |
>=sys-apps/util-linux-2.21
|
| 38 |
udev? ( >sys-fs/udev-171-r6 )
|
| 39 |
device-mapper? ( sys-fs/lvm2[static] )
|
| 40 |
cryptsetup? ( sys-fs/cryptsetup[static] )
|
| 41 |
mdadm? ( sys-fs/mdadm[static] )
|
| 42 |
dmraid? ( sys-fs/dmraid[static] )
|
| 43 |
pcmcia? ( sys-apps/pcmciautils[static] )
|
| 44 |
plymouth? ( sys-boot/plymouth )"
|
| 45 |
|
| 46 |
pkg_setup() {
|
| 47 |
if kernel_is -lt 2 6 32 ; then
|
| 48 |
eerror "Sorry, your kernel must be 2.6.32-r103 or newer!"
|
| 49 |
fi
|
| 50 |
|
| 51 |
use udev && CONFIG_CHECK+=" ~DEVTMPFS"
|
| 52 |
use mdadm && CONFIG_CHECK+=" ~MD ~MD_LINEAR ~MD_RAID0 ~MD_RAID1 ~MD_RAID10 ~MD_RAID456"
|
| 53 |
use dmraid && CONFIG_CHECK+=" ~BLK_DEV_DM ~DM_SNAPSHOT ~DM_MIRROR ~DM_RAID ~DM_UEVENT"
|
| 54 |
use device-mapper && CONFIG_CHECK+=" ~BLK_DEV_DM ~DM_SNAPSHOT ~DM_UEVENT"
|
| 55 |
use cryptsetup && CONFIG_CHECK+=" ~DM_CRYPT"
|
| 56 |
|
| 57 |
linux-info_pkg_setup
|
| 58 |
}
|
| 59 |
|
| 60 |
src_prepare() {
|
| 61 |
epatch "${FILESDIR}"/${PN}-base-install.patch
|
| 62 |
epatch "${FILESDIR}"/${PN}-consolefont-install.patch
|
| 63 |
epatch "${FILESDIR}"/${PN}-keymap-install.patch
|
| 64 |
cd "${WORKDIR}"
|
| 65 |
use udev && epatch "${FILESDIR}"/${PN}-udev-install.patch
|
| 66 |
use device-mapper && epatch "${FILESDIR}"/${PN}-lvm2-install.patch
|
| 67 |
use mdadm epatch "${FILESDIR}"/${PN}-mdadm_udev-install.patch
|
| 68 |
use dmraid && epatch "${FILESDIR}"/${PN}-dmraid-install.patch
|
| 69 |
use pcmcia && epatch "${FILESDIR}"/${PN}-pcmcia-install.patch
|
| 70 |
use cryptsetup && epatch "${FILESDIR}"/${PN}-encrypt-install.patch
|
| 71 |
}
|
| 72 |
|
| 73 |
src_install() {
|
| 74 |
emake DESTDIR="${D}" install
|
| 75 |
|
| 76 |
cd "${WORKDIR}/usr/lib/initcpio/hooks"
|
| 77 |
insinto /usr/lib/initcpio/hooks/
|
| 78 |
use udev && doins udev
|
| 79 |
use device-mapper && doins lvm2
|
| 80 |
if use mdadm ; then
|
| 81 |
doins mdadm
|
| 82 |
dosym mdadm /usr/lib/initcpio/hooks/raid
|
| 83 |
fi
|
| 84 |
use dmraid && doins dmraid
|
| 85 |
use cryptsetup && doins encrypt
|
| 86 |
use plymouth && newins "${WORKDIR}"/plymouth-git/plymouth.initcpio_hook pylmouth
|
| 87 |
|
| 88 |
cd "${WORKDIR}/usr/lib/initcpio/install"
|
| 89 |
insinto /usr/lib/initcpio/install
|
| 90 |
use udev && doins udev
|
| 91 |
use device-mapper && doins lvm2
|
| 92 |
use mdadm && doins mdadm mdadm_udev
|
| 93 |
use dmraid && doins dmraid
|
| 94 |
use cryptsetup && doins encrypt
|
| 95 |
use pcmcia && doins pcmcia
|
| 96 |
use plymouth && newins "${WORKDIR}"/plymouth-git/plymouth.initcpio_install pylmouth
|
| 97 |
|
| 98 |
if use device-mapper; then
|
| 99 |
if use udev; then
|
| 100 |
insinto /usr/lib/initcpio/udev/
|
| 101 |
doins "${WORKDIR}/usr/lib/initcpio/udev/11-dm-initramfs.rules"
|
| 102 |
fi
|
| 103 |
fi
|
| 104 |
|
| 105 |
dodir /etc/mkinitcpio.d
|
| 106 |
newins "${FILESDIR}"/gentoo.preset ${KV}.preset
|
| 107 |
sed -e "s/KV/${KV}/g" \
|
| 108 |
"${FILESDIR}"/gentoo.preset \
|
| 109 |
> "${D}"/etc/mkinitcpio.d/${KV}.preset || die
|
| 110 |
|
| 111 |
insinto /usr/lib/modprobe.d
|
| 112 |
doins "${FILESDIR}/usb-load-ehci-first.conf"
|
| 113 |
}
|
| 114 |
|
| 115 |
pkg_postinst() {
|
| 116 |
einfo
|
| 117 |
elog "Set your hooks in /etc/mkinitcpio.conf accordingly!"
|
| 118 |
elog "Missing hooks can lead to an unbootanle system!"
|
| 119 |
einfo
|
| 120 |
}
|