1 # Copyright 1999-2020 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
4 # genkernel-9999 -> latest Git branch "master"
5 # genkernel-VERSION -> normal genkernel release
7 EAPI=5 # approved 2012.09.11, required by all profiles since 2014.03.12
9 inherit bash-completion-r1 epatch
11 VERSION_BUSYBOX='1.20.2'
12 VERSION_DMRAID='1.0.0.rc16-3'
15 VERSION_ISCSI='2.0-872'
17 VERSION_UNIONFS_FUSE='0.24'
20 RH_HOME="ftp://sourceware.org/pub"
21 DM_HOME="https://people.redhat.com/~heinzm/sw/dmraid/src"
22 BB_HOME="https://busybox.net/downloads"
24 COMMON_URI="${DM_HOME}/dmraid-${VERSION_DMRAID}.tar.bz2
25 ${DM_HOME}/old/dmraid-${VERSION_DMRAID}.tar.bz2
26 https://www.kernel.org/pub/linux/utils/raid/mdadm/mdadm-${VERSION_MDADM}.tar.bz2
27 ${RH_HOME}/lvm2/LVM2.${VERSION_LVM}.tgz
28 ${RH_HOME}/lvm2/old/LVM2.${VERSION_LVM}.tgz
29 ${BB_HOME}/busybox-${VERSION_BUSYBOX}.tar.bz2
30 http://www.open-iscsi.org/bits/open-iscsi-${VERSION_ISCSI}.tar.gz
31 mirror://gentoo/open-iscsi-${VERSION_ISCSI}.tar.gz
32 mirror://sourceforge/fuse/fuse-${VERSION_FUSE}.tar.gz
33 http://podgorny.cz/unionfs-fuse/releases/unionfs-fuse-${VERSION_UNIONFS_FUSE}.tar.bz2
34 mirror://gentoo/unionfs-fuse-${VERSION_UNIONFS_FUSE}.tar.bz2
35 mirror://gnupg/gnupg/gnupg-${VERSION_GPG}.tar.bz2"
37 if [[ ${PV} == 9999* ]]
39 EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/${PN}.git"
42 SRC_URI="${COMMON_URI}"
44 SRC_URI="https://dev.gentoo.org/~zerochaos/distfiles/${P}.tar.xz
46 KEYWORDS="~alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86"
49 DESCRIPTION="Gentoo automatic kernel building scripts"
50 HOMEPAGE="https://wiki.gentoo.org/wiki/No_homepage"
55 IUSE="cryptsetup ibm selinux"
57 DEPEND="sys-fs/e2fsprogs
58 selinux? ( sys-libs/libselinux )"
60 cryptsetup? ( sys-fs/cryptsetup )
62 >=app-misc/pax-utils-0.2.1
63 !<sys-apps/openrc-0.9.9"
64 # pax-utils is used for lddtree
66 if [[ ${PV} == 9999* ]]; then
67 DEPEND="${DEPEND} app-text/asciidoc"
71 if ! use cryptsetup && has_version "sys-kernel/genkernel[crypt]"; then
72 ewarn "Local use flag 'crypt' has been renamed to 'cryptsetup' (bug #414523)."
73 ewarn "Please set flag 'cryptsetup' for this very package if you would like"
74 ewarn "to have genkernel create an initramfs with LUKS support."
75 ewarn "Sorry for the inconvenience."
81 if [[ ${PV} == 9999* ]] ; then
82 einfo "Producing ChangeLog from Git history..."
83 pushd "${S}/.git" >/dev/null || die
84 git log > "${S}"/ChangeLog || die
85 popd >/dev/null || die
88 sed -i 's/###//g' "${S}"/gen_compile.sh || die
93 -e "s:VERSION_BUSYBOX:$VERSION_BUSYBOX:" \
94 -e "s:VERSION_MDADM:$VERSION_MDADM:" \
95 -e "s:VERSION_DMRAID:$VERSION_DMRAID:" \
96 -e "s:VERSION_FUSE:$VERSION_FUSE:" \
97 -e "s:VERSION_ISCSI:$VERSION_ISCSI:" \
98 -e "s:VERSION_LVM:$VERSION_LVM:" \
99 -e "s:VERSION_UNIONFS_FUSE:$VERSION_UNIONFS_FUSE:" \
100 -e "s:VERSION_GPG:$VERSION_GPG:" \
101 "${S}"/defaults/software.sh \
102 || die "Could not adjust versions"
104 epatch "${FILESDIR}"/${P}-system-map.patch #570822
105 epatch "${FILESDIR}"/${P}-grub-mkconfig.patch #591200
106 epatch "${FILESDIR}"/${P}-crc32c.patch #655110
111 if [[ ${PV} == 9999* ]]; then
118 doins "${S}"/genkernel.conf
121 dodoc AUTHORS ChangeLog README TODO
123 rm -f genkernel genkernel.8 AUTHORS ChangeLog README TODO genkernel.conf
126 cp "${S}"/arch/ppc64/kernel-2.6{-pSeries,} || die
128 cp "${S}"/arch/ppc64/kernel-2.6{.g5,} || die
130 insinto /usr/share/genkernel
133 newbashcomp "${FILESDIR}"/genkernel.bash "${PN}"
135 doins "${FILESDIR}"/initramfs.mounts
138 insinto /usr/share/genkernel/distfiles
139 doins ${A/${P}.tar.xz/}
144 elog 'Documentation is available in the genkernel manual page'
145 elog 'as well as the following URL:'
147 elog 'https://wiki.gentoo.org/wiki/Genkernel'
149 ewarn "This package is known to not work with reiser4. If you are running"
150 ewarn "reiser4 and have a problem, do not file a bug. We know it does not"
151 ewarn "work and we don't plan on fixing it since reiser4 is the one that is"
152 ewarn "broken in this regard. Try using a sane filesystem like ext4."
154 ewarn "The LUKS support has changed from versions prior to 3.4.4. Now,"
155 ewarn "you use crypt_root=/dev/blah instead of real_root=luks:/dev/blah."