Magellan Linux

Contents of /trunk/core/dracut/dracut-019-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 12753 - (show annotations) (download)
Mon Jul 2 14:37:15 2012 UTC (11 years, 10 months ago) by niro
File size: 7228 byte(s)
-marked unstable
1 # $Id$
2
3 PNAME="dracut"
4 PVER="019"
5 PBUILD="r1"
6
7 SPLIT_PACKAGES="dracut dracut-network dracut-fips dracut-fips-aesni dracut-caps dracut-tools"
8
9 PCAT="sys-apps"
10 STATE="unstable"
11
12 HOMEPAGE="https://dracut.wiki.kernel.org/"
13
14 # sysvinit support for compatibility reasons
15 # 1=yes, 0=no
16 SYSVINIT_SUPPORT=0
17
18 COMMON_DEPEND=">= app-shells/bash-4.2
19 >= app-shells/dash-0.5.6.1
20 >= app-arch/bzip2-1.0.6
21 >= app-arch/gzip-1.4
22 >= app-arch/xz-utils-5
23 >= app-arch/cpio-2.11
24 >= sys-apps/tar-1.26
25 >= sys-apps/coreutils-8.12
26 >= sys-apps/findutils-4.4
27 >= sys-apps/grep-2.8
28 >= sys-apps/kbd-1.15
29 >= virtual/module-tools
30 >= sys-apps/sed-4.2
31 >= sys-apps/eject-2.1.5
32 >= sys-apps/util-linux-2.19
33 >= sys-apps/v86d-0.1.9
34 >= sys-apps/plymouth-0.8.3
35 >= sys-apps/grubby-7.0.17.1
36 >= sys-fs/lvm2-2.02.85
37 >= sys-fs/device-mapper-2.02.85
38 >= sys-fs/udev-171
39 >= sys-apps/sysvinit-tools-2.88"
40
41 # todo nfs, icsci, rpcbind
42 NETWORK_DEPEND=">= sys-apps/iproute2-2.6.38
43 >= net-misc/dhcpcd-5.2
44 >= net-misc/bridge-utils-1.5"
45 # todo: arping
46
47 CAPS_DEPEND=">= sys-libs/libcap-2.20"
48
49 SDEPEND="${COMMON_DEPEND}
50 ${NETWORK_DEPEND}
51 ${CAPS_DEPEND}
52 >= app-text/docbook-xml-dtd-9"
53
54 SRCFILE="${PNAME}-${PVER}.tar.bz2"
55 SRCDIR="${BUILDDIR}/${PNAME}-${PVER}"
56
57 sminclude mbuild mtools cleanutils
58 msetfeature "!check"
59
60 SRC_URI=(
61 http://www.kernel.org/pub/linux/utils/boot/${PNAME}/${SRCFILE}
62 mirror://${PNAME}/${SRCFILE}
63 mirror://${PNAME}/${PNAME}-019-magellan.patch
64 mirror://${PNAME}/${PNAME}-019-sysvinit-compat.patch
65 mirror://${PNAME}/${PNAME}-019-mkinitrd-ignore-allow-missing-switch.patch
66 mirror://${PNAME}/${PNAME}-019-convertfs-make-selinux-optional.patch
67 )
68
69 UP2DATE="updatecmd http://www.kernel.org/pub/linux/utils/boot/${PNAME} | lasttarball"
70
71 split_info_dracut()
72 {
73 DESCRIPTION="Initramfs generator using udev which fully replaces mkinitrd."
74 DEPEND="${COMMON_DEPEND}"
75
76 PROVIDE="virtual/initramfs-tools"
77 }
78
79 split_info_dracut-network()
80 {
81 DESCRIPTION="Dracut modules to build a dracut initramfs with network support."
82 DEPEND="== sys-apps/dracut-${PVER}
83 ${NETWORK_DEPEND}"
84 }
85
86 split_info_dracut-fips()
87 {
88 DESCRIPTION="Dracut modules to build a dracut initramfs with an integrity check."
89 DEPEND="== sys-apps/dracut-${PVER}"
90 }
91
92 split_info_dracut-fips-aesni()
93 {
94 DESCRIPTION="Dracut modules to build a dracut initramfs with an integrity check with aesni-intel."
95 DEPEND="== sys-apps/dracut-${PVER}
96 == sys-apps/dracut-fips-${PVER}"
97 }
98
99 split_info_dracut-caps()
100 {
101 DESCRIPTION="Dracut modules to build a dracut initramfs which drops capabilities."
102 DEPEND="== sys-apps/dracut-${PVER}
103 ${CAPS_DEPEND}"
104 }
105
106 split_info_dracut-tools()
107 {
108 DESCRIPTION="Dracut tools to build the local initramfs."
109 DEPEND="== sys-apps/dracut-${PVER}"
110 }
111
112 src_prepare()
113 {
114 munpack ${SRCFILE} || die
115 cd ${SRCDIR}
116
117 # magellan compat patch
118 mpatch ${PNAME}-019-magellan.patch || die
119
120 # sysvinit compat patch, don't call reboot with --no-wall
121 # which is only provided by systemctl from systemd
122 if [[ ${SYSVINIT_SUPPORT} = 1 ]]
123 then
124 mpatch ${PNAME}-019-sysvinit-compat.patch || die
125 fi
126
127 # for better mkinitrd compat and to fully support new-kernel-pkg
128 # as drop-in replacement ignore the --allow-missing switch
129 mpatch ${PNAME}-019-mkinitrd-ignore-allow-missing-switch.patch || die
130
131 # make selinux optional, we do not use it yet
132 mpatch ${PNAME}-019-convertfs-make-selinux-optional.patch || die
133
134 # remove gentoo specific modules
135 rm -rf modules.d/50gensplash || die
136 # remove rpm-bases specific modules
137 rm -rf modules.d/10rpmversion || die
138
139 # fix plymouth libexecdir
140 sed -i "s:/usr/libexec:/usr/$(mlibdir)/plymouth:" \
141 modules.d/50plymouth/module-setup.sh || die
142
143 # fix qemu libexecdir
144 sed -i "s:/usr/libexec:/usr/$(mlibdir)/qemu:" test/run-qemu || die
145 }
146
147 src_compile()
148 {
149 cd ${SRCDIR}
150 mmake || die
151 }
152
153 src_install_dracut()
154 {
155 cd ${SRCDIR}
156 mmake DESTDIR=${BINDIR} sysconfdir=/etc sbindir=/usr/bin systemdsystemunitdir=/usr/lib/systemd/system install || die
157
158 # remove modules owned by other packages
159 rm -r ${BINDIR}/usr/lib/dracut/modules.d/01fips || die
160 rm -r ${BINDIR}/usr/lib/dracut/modules.d/02fips-aesni || die
161 rm -r ${BINDIR}/usr/lib/dracut/modules.d/02caps || die
162 rm -r ${BINDIR}/usr/lib/dracut/modules.d/40network || die
163 rm -r ${BINDIR}/usr/lib/dracut/modules.d/90livenet || die
164 rm -r ${BINDIR}/usr/lib/dracut/modules.d/95fcoe || die
165 rm -r ${BINDIR}/usr/lib/dracut/modules.d/95iscsi || die
166 rm -r ${BINDIR}/usr/lib/dracut/modules.d/95nbd || die
167 rm -r ${BINDIR}/usr/lib/dracut/modules.d/95nfs || die
168 rm -r ${BINDIR}/usr/lib/dracut/modules.d/95ssh-client || die
169 rm -r ${BINDIR}/usr/lib/dracut/modules.d/45ifcfg || die
170 rm -r ${BINDIR}/usr/lib/dracut/modules.d/95znet || die
171 rm ${BINDIR}/usr/share/man/man8/dracut-catimages.8* || die
172 rm ${BINDIR}/usr/bin/dracut-catimages || die
173
174 # needed directories
175 mkeepdir /var/initramfs || die
176 mkeepdir /var/log || die
177 memptyfile /var/log/dracut.log || die
178
179 # missing compat symlink
180 mlink dracut /usr/bin/mkinitrd || die
181
182 minstalldocs AUTHORS COPYING HACKING NEWS README* TODO || die
183 }
184
185 src_install_dracut-network()
186 {
187 cd ${SRCDIR}
188 mmake DESTDIR=${BINDIR} sysconfdir=/etc sbindir=/usr/bin systemdsystemunitdir=/usr/lib/systemd/system install || die
189
190 # keep only related stuff
191 zapmost ${BINDIR} \
192 usr/lib/dracut/modules.d/40network \
193 usr/lib/dracut/modules.d/90livenet \
194 usr/lib/dracut/modules.d/95fcoe \
195 usr/lib/dracut/modules.d/95iscsi \
196 usr/lib/dracut/modules.d/95nbd \
197 usr/lib/dracut/modules.d/95nfs \
198 usr/lib/dracut/modules.d/95ssh-client \
199 usr/lib/dracut/modules.d/45ifcfg \
200 usr/lib/dracut/modules.d/95znet \
201 || die
202 }
203
204 src_install_dracut-fips()
205 {
206 cd ${SRCDIR}
207 mmake DESTDIR=${BINDIR} sysconfdir=/etc sbindir=/usr/bin systemdsystemunitdir=/usr/lib/systemd/system install || die
208 minstalldir /etc/dracut.conf.d || die
209 minstallfile dracut.conf.d/fips.conf.example /etc/dracut.conf.d/40-fips.conf || die
210
211 # keep only related stuff
212 zapmost ${BINDIR} etc/dracut.conf.d/40-fips usr/lib/dracut/modules.d/01fips || die
213 }
214
215 src_install_dracut-fips-aesni()
216 {
217 cd ${SRCDIR}
218 mmake DESTDIR=${BINDIR} sysconfdir=/etc sbindir=/usr/bin systemdsystemunitdir=/usr/lib/systemd/system install || die
219
220 # keep only related stuff
221 zapmost ${BINDIR} usr/lib/dracut/modules.d/02fips-aesni || die
222 }
223
224 src_install_dracut-caps()
225 {
226 cd ${SRCDIR}
227 mmake DESTDIR=${BINDIR} sysconfdir=/etc sbindir=/usr/bin systemdsystemunitdir=/usr/lib/systemd/system install || die
228
229 # keep only related stuff
230 zapmost ${BINDIR} usr/lib/dracut/modules.d/02caps || die
231 }
232
233 src_install_dracut-tools()
234 {
235 cd ${SRCDIR}
236 mmake DESTDIR=${BINDIR} sysconfdir=/etc sbindir=/usr/bin systemdsystemunitdir=/usr/lib/systemd/system install || die
237
238 # keep only related stuff
239 zapmost ${BINDIR} \
240 usr/share/man/man8/dracut-catimages.8\* \
241 usr/bin/dracut-catimages \
242 || die
243
244 mkeepdir /boot/dracut || die
245 mkeepdir /var/lib/dracut || die
246 mkeepdir /var/lib/dracut/overlay || die
247 }
248
249 preinstall_dracut()
250 {
251 if [[ ! -z $(magequery -n mkinitrd) ]]
252 then
253 echo -e ${COLRED}
254 echo -e "Error: sys-apps/mkinitrd is installed!!"
255 echo -e "dracut will overwrite binaries from sys-apps/mkinitrd and fully replace it."
256 echo -e "Please uninstall sys-apps/mkinitrd first!"
257 echo -e ${COLDEFAULT}
258 die "sys-apps/mkinitrd found!"
259 fi
260 }