blob: 43a8bf4550843c6f8d078f8ce51c1fdbd81f7674 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-boot/grub/grub-1.98.ebuild,v 1.1 2010/03/10 19:47:34 vapier Exp $
inherit mount-boot eutils flag-o-matic toolchain-funcs
if [[ ${PV} == "9999" ]] ; then
EBZR_REPO_URI="http://bzr.savannah.gnu.org/r/grub/trunk/grub"
inherit autotools bzr
SRC_URI=""
else
SRC_URI="ftp://alpha.gnu.org/gnu/${PN}/${P}.tar.gz
mirror://gentoo/${P}.tar.gz"
fi
DESCRIPTION="GNU GRUB 2 boot loader"
HOMEPAGE="http://www.gnu.org/software/grub/"
LICENSE="GPL-3"
use multislot && SLOT="2" || SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="custom-cflags debug truetype multislot static"
RDEPEND=">=sys-libs/ncurses-5.2-r5
dev-libs/lzo
truetype? (
media-libs/freetype
media-fonts/unifont
)"
DEPEND="${RDEPEND}
dev-lang/ruby"
PDEPEND="${PDEPEND}
sys-boot/os-prober"
PROVIDE="virtual/bootloader"
export STRIP_MASK="*/grub/*/*.mod"
QA_EXECSTACK="sbin/grub-probe sbin/grub-setup sbin/grub-mkdevicemap"
src_unpack() {
if [[ ${PV} == "9999" ]] ; then
bzr_src_unpack
else
unpack ${A}
fi
cd "${S}"
epatch "${FILESDIR}"/${PN}-1.98-genkernel.patch
epatch "${FILESDIR}"/${PN}-1.97-vga-deprecated.patch
epatch "${FILESDIR}"/${PN}-1.98-wallpaper-settings-support.patch
# see Gentoo #302634
epatch "${FILESDIR}"/${PN}-1.98-add-legacy-rootfs-detection.patch
# Ubuntu and upstream patches
epatch "${FILESDIR}"/ubuntu-upstream-${PV}/*.diff
epatch_user
# see Gentoo #321569
epatch "${FILESDIR}"/${PN}-1.98-follow-dev-mapper-symlinks.patch
# Genkernel doesn't support "single" for rescue mode
# but rather init_opts=single
epatch "${FILESDIR}"/${PN}-1.98-genkernel-initramfs-single.patch
# autogen.sh does more than just run autotools
# need to eautomake due to weirdness #296013
if [[ ${PV} == "9999" ]] ; then
sed -i \
-e '/^\(auto\|ac\)/s:^:e:' \
-e "s:^eautomake:`which automake`:" \
autogen.sh
(. ./autogen.sh) || die
fi
}
src_compile() {
use custom-cflags || unset CFLAGS CPPFLAGS LDFLAGS
use static && append-ldflags -static
econf \
--disable-werror \
--sbindir=/sbin \
--bindir=/bin \
--libdir=/$(get_libdir) \
--disable-efiemu \
$(use_enable truetype grub-mkfont) \
$(use_enable debug mm-debug) \
$(use_enable debug grub-emu) \
$(use_enable debug grub-emu-usb) \
$(use_enable debug grub-fstest)
emake -j1 || die "making regular stuff"
}
src_install() {
emake DESTDIR="${D}" install || die
dodoc AUTHORS ChangeLog NEWS README THANKS TODO
if use multislot ; then
sed -i "s:grub-install:grub2-install:" "${D}"/sbin/grub-install || die
mv "${D}"/sbin/grub{,2}-install || die
mv "${D}"/sbin/grub{,2}-set-default || die
mv "${D}"/usr/share/info/grub{,2}.info || die
fi
# install /etc/default/grub
cp "${FILESDIR}/grub2-default" grub
dodir /etc/default
insinto /etc/default
doins grub
# Install fonts setup hook
exeinto /etc/grub.d
doexe "${FILESDIR}/00_fonts"
doexe "${FILESDIR}/05_distro_theme"
dodir /boot/grub
insinto /boot/grub
newins "${FILESDIR}/default-splash-6.png" default-splash.png
# keep backward compat
dodir /usr/share/grub
insinto /usr/share/grub
newins "${FILESDIR}/default-splash-6.png" default-splash.png
}
setup_boot_dir() {
local boot_dir=$1
local dir=${boot_dir}/grub
if [[ ! -e ${dir}/grub.cfg ]] ; then
einfo "Running: grub-mkconfig -o '${dir}/grub.cfg'"
grub-mkconfig -o "${dir}/grub.cfg"
fi
#local install=grub-install
#use multislot && install="grub2-install --grub-setup=/bin/true"
#einfo "Running: ${install} "
#${install}
}
pkg_postinst() {
if use multislot ; then
elog "You have installed grub2 with USE=multislot, so to coexist"
elog "with grub1, the grub2 install binary is named grub2-install."
fi
setup_boot_dir "${ROOT}"boot
}
|