Magellan Linux

Annotation of /branches/R11-stable/core/dracut/dracut-038-r2.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 22717 - (hide annotations) (download)
Tue Oct 28 08:30:43 2014 UTC (9 years, 7 months ago) by niro
File size: 7854 byte(s)
-release branches/R11-stable
1 niro 22682 # $Id$
2    
3     PNAME="dracut"
4     PVER="038"
5     PBUILD="r2"
6    
7     SPLIT_PACKAGES="dracut dracut-network dracut-fips dracut-fips-aesni dracut-caps dracut-tools"
8    
9     PCAT="sys-apps"
10     HOMEPAGE="https://dracut.wiki.kernel.org/"
11    
12     # sysvinit support for compatibility reasons
13     # 1=yes, 0=no
14     SYSVINIT_SUPPORT=0
15    
16     COMMON_DEPEND=">= app-shells/bash-4.2
17     >= app-arch/bzip2-1.0.6
18     >= app-arch/gzip-1.4
19     >= app-arch/xz-utils-5
20     >= app-arch/cpio-2.11
21     >= sys-apps/tar-1.26
22     >= sys-apps/coreutils-8.22
23     >= sys-apps/findutils-4.4
24     >= sys-apps/grep-2.8
25     >= sys-apps/kbd-2
26     >= sys-apps/procps-3.3
27     >= virtual/module-tools
28     >= virtual/sed
29     >= virtual/eject
30     >= sys-apps/util-linux-2.22
31     >= sys-apps/v86d-0.1.9
32     >= sys-apps/plymouth-0.8.8
33     >= sys-apps/grubby-8.29
34     >= sys-fs/lvm2-2.02.85
35     >= sys-fs/device-mapper-2.02.85
36     >= sys-fs/udev-214
37     >= sys-apps/systemd-214"
38    
39     # todo nfs, icsci, rpcbind
40     NETWORK_DEPEND=">= sys-apps/iproute2-3.12
41     >= net-misc/dhcpcd-6
42     >= net-misc/bridge-utils-1.5"
43     # todo: arping
44    
45     CAPS_DEPEND=">= sys-libs/libcap-2.24"
46    
47     SDEPEND="${COMMON_DEPEND}
48     ${NETWORK_DEPEND}
49     ${CAPS_DEPEND}
50     >= app-text/docbook-xml-dtd-9
51     >= app-text/asciidoc-8.6"
52    
53     SRCFILE="${PNAME}-${PVER}.tar.xz"
54     SRCDIR="${BUILDDIR}/${PNAME}-${PVER}"
55    
56     sminclude mbuild mtools systemd cleanutils
57     msetfeature "!check"
58    
59     SRC_URI=(
60     http://www.kernel.org/pub/linux/utils/boot/${PNAME}/${SRCFILE}
61     mirror://${PNAME}/${SRCFILE}
62     mirror://${PNAME}/${PNAME}-038-magellan.patch
63     mirror://${PNAME}/${PNAME}-024-add-uvesafb-module.patch
64     mirror://${PNAME}/${PNAME}-036-mkinitrd-ignore-allow-missing-switch.patch
65     mirror://${PNAME}/${PNAME}-019-convertfs-make-selinux-optional.patch
66     mirror://${PNAME}/${PNAME}-037-network-support-udhcpc-dhcpcd.patch
67     )
68    
69     UP2DATE="updatecmd http://www.kernel.org/pub/linux/utils/boot/${PNAME} | highesttarball xz"
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}-038-magellan.patch || die
119    
120     # add uvesafb module to run v86d inside the initrd (default off)
121     mpatch ${PNAME}-024-add-uvesafb-module.patch || die
122    
123     # for better mkinitrd compat and to fully support new-kernel-pkg
124     # as drop-in replacement ignore the --allow-missing switch
125     mpatch ${PNAME}-036-mkinitrd-ignore-allow-missing-switch.patch || die
126    
127     # make selinux optional, we do not use it yet
128     mpatch ${PNAME}-019-convertfs-make-selinux-optional.patch || die
129    
130     # add support for dhcpcd and udhcpc in the network module
131     mpatch ${PNAME}-037-network-support-udhcpc-dhcpcd.patch || die
132    
133     # remove gentoo specific modules
134     rm -rf modules.d/50gensplash || die
135     # remove rpm-bases specific modules
136     rm -rf modules.d/10rpmversion || die
137     # systemd-bootchart works better
138     rm -rf modules.d/00bootchart || die
139     # no dash support anymore
140     rm -rf modules.d/00dash || die
141    
142     # fix plymouth libexecdir
143     sed -i "s:/usr/libexec:/usr/$(mlibdir)/plymouth:" \
144     modules.d/50plymouth/module-setup.sh || die
145    
146     # fix plymouth logo
147     local plymouth_logo=/usr/share/plymouth/magellan-logo.png
148     sed -i "s:^\(PLYMOUTH_LOGO_FILE=\).*:\1\"${plymouth_logo}\":" \
149     modules.d/50plymouth/plymouth-populate-initrd.sh || die
150    
151     # fix qemu libexecdir
152     sed -i "s:/usr/libexec:/usr/$(mlibdir)/qemu:" test/run-qemu || die
153     }
154    
155     src_compile()
156     {
157     cd ${SRCDIR}
158     mmake || die
159     }
160    
161     src_install_dracut()
162     {
163     cd ${SRCDIR}
164     mmake DESTDIR=${BINDIR} sysconfdir=/etc sbindir=/usr/bin systemdsystemunitdir=$(mget-systemd-unit-dir) install || die
165    
166     # remove modules owned by other packages
167     rm -r ${BINDIR}/usr/lib/dracut/modules.d/01fips || die
168     rm -r ${BINDIR}/usr/lib/dracut/modules.d/02fips-aesni || die
169     rm -r ${BINDIR}/usr/lib/dracut/modules.d/02caps || die
170     rm -r ${BINDIR}/usr/lib/dracut/modules.d/40network || die
171     rm -r ${BINDIR}/usr/lib/dracut/modules.d/90livenet || die
172     rm -r ${BINDIR}/usr/lib/dracut/modules.d/90qemu-net || die
173     rm -r ${BINDIR}/usr/lib/dracut/modules.d/95cifs || die
174     rm -r ${BINDIR}/usr/lib/dracut/modules.d/95fcoe || die
175     rm -r ${BINDIR}/usr/lib/dracut/modules.d/95iscsi || die
176     rm -r ${BINDIR}/usr/lib/dracut/modules.d/95nbd || die
177     rm -r ${BINDIR}/usr/lib/dracut/modules.d/95nfs || die
178     rm -r ${BINDIR}/usr/lib/dracut/modules.d/95ssh-client || die
179     rm -r ${BINDIR}/usr/lib/dracut/modules.d/45ifcfg || die
180     rm -r ${BINDIR}/usr/lib/dracut/modules.d/95znet || die
181     rm ${BINDIR}/usr/share/man/man8/dracut-catimages.8* || die
182     rm ${BINDIR}/usr/bin/dracut-catimages || die
183    
184     # needed directories
185     mkeepdir /var/initramfs || die
186     mkeepdir /var/log || die
187     memptyfile /var/log/dracut.log || die
188    
189     # missing compat symlink
190     mlink dracut /usr/bin/mkinitrd || die
191    
192     minstalldocs AUTHORS COPYING HACKING NEWS README* TODO || die
193     }
194    
195     src_install_dracut-network()
196     {
197     cd ${SRCDIR}
198     mmake DESTDIR=${BINDIR} sysconfdir=/etc sbindir=/usr/bin systemdsystemunitdir=$(mget-systemd-unit-dir) install || die
199    
200     # keep only related stuff
201     zapmost ${BINDIR} \
202     usr/lib/dracut/modules.d/40network \
203     usr/lib/dracut/modules.d/90livenet \
204     usr/lib/dracut/modules.d/90qemu-net \
205     usr/lib/dracut/modules.d/95cifs \
206     usr/lib/dracut/modules.d/95fcoe \
207     usr/lib/dracut/modules.d/95iscsi \
208     usr/lib/dracut/modules.d/95nbd \
209     usr/lib/dracut/modules.d/95nfs \
210     usr/lib/dracut/modules.d/95ssh-client \
211     usr/lib/dracut/modules.d/45ifcfg \
212     usr/lib/dracut/modules.d/95znet \
213     || die
214     }
215    
216     src_install_dracut-fips()
217     {
218     cd ${SRCDIR}
219     mmake DESTDIR=${BINDIR} sysconfdir=/etc sbindir=/usr/bin systemdsystemunitdir=$(mget-systemd-unit-dir) install || die
220     minstalldir /etc/dracut.conf.d || die
221     minstallfile dracut.conf.d/fips.conf.example /etc/dracut.conf.d/40-fips.conf || die
222    
223     # keep only related stuff
224     zapmost ${BINDIR} etc/dracut.conf.d/40-fips usr/lib/dracut/modules.d/01fips || die
225     }
226    
227     src_install_dracut-fips-aesni()
228     {
229     cd ${SRCDIR}
230     mmake DESTDIR=${BINDIR} sysconfdir=/etc sbindir=/usr/bin systemdsystemunitdir=$(mget-systemd-unit-dir) install || die
231    
232     # keep only related stuff
233     zapmost ${BINDIR} usr/lib/dracut/modules.d/02fips-aesni || die
234     }
235    
236     src_install_dracut-caps()
237     {
238     cd ${SRCDIR}
239     mmake DESTDIR=${BINDIR} sysconfdir=/etc sbindir=/usr/bin systemdsystemunitdir=$(mget-systemd-unit-dir) install || die
240    
241     # keep only related stuff
242     zapmost ${BINDIR} usr/lib/dracut/modules.d/02caps || die
243     }
244    
245     src_install_dracut-tools()
246     {
247     cd ${SRCDIR}
248     mmake DESTDIR=${BINDIR} sysconfdir=/etc sbindir=/usr/bin systemdsystemunitdir=$(mget-systemd-unit-dir) install || die
249    
250     # keep only related stuff
251     zapmost ${BINDIR} \
252     usr/share/man/man8/dracut-catimages.8\* \
253     usr/bin/dracut-catimages \
254     || die
255    
256     mkeepdir /boot/dracut || die
257     mkeepdir /var/lib/dracut || die
258     mkeepdir /var/lib/dracut/overlay || die
259     }
260    
261     preinstall_dracut()
262     {
263     if [[ ! -z $(magequery -n mkinitrd) ]]
264     then
265     echo -e ${COLRED}
266     echo -e "Error: sys-apps/mkinitrd is installed!!"
267     echo -e "dracut will overwrite binaries from sys-apps/mkinitrd and fully replace it."
268     echo -e "Please uninstall sys-apps/mkinitrd first!"
269     echo -e ${COLDEFAULT}
270     die "sys-apps/mkinitrd found!"
271     fi
272     }