Magellan Linux

Annotation of /trunk/core/dracut/dracut-047-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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