Magellan Linux

Annotation of /branches/R11-unstable/core/dracut/dracut-048-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 32248 - (hide annotations) (download)
Mon Apr 29 12:00:37 2019 UTC (5 years ago) by niro
File size: 7305 byte(s)
-release branches/R11-unstable
1 niro 31428 # $Id$
2    
3     PNAME="dracut"
4     PVER="048"
5     PBUILD="r1"
6    
7 niro 31431 SPLIT_PACKAGES="dracut dracut-network dracut-fips dracut-caps dracut-tools"
8 niro 31428
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     mirror://${PNAME}/${PNAME}-047-magellan.patch
62     mirror://${PNAME}/${PNAME}-036-mkinitrd-ignore-allow-missing-switch.patch
63     mirror://${PNAME}/${PNAME}-019-convertfs-make-selinux-optional.patch
64     mirror://${PNAME}/${PNAME}-047-network-support-udhcpc-dhcpcd.patch
65     )
66    
67     UP2DATE="updatecmd http://www.kernel.org/pub/linux/utils/boot/${PNAME} | highesttarball xz"
68    
69     split_info_dracut()
70     {
71     DESCRIPTION="Initramfs generator using udev which fully replaces mkinitrd."
72     DEPEND="${COMMON_DEPEND}"
73    
74     PROVIDE="virtual/initramfs-tools"
75     }
76    
77     split_info_dracut-network()
78     {
79     DESCRIPTION="Dracut modules to build a dracut initramfs with network support."
80     DEPEND="== sys-apps/dracut-${PVER}
81     ${NETWORK_DEPEND}"
82     }
83    
84     split_info_dracut-fips()
85     {
86     DESCRIPTION="Dracut modules to build a dracut initramfs with an integrity check."
87     DEPEND="== sys-apps/dracut-${PVER}"
88     }
89    
90     split_info_dracut-caps()
91     {
92     DESCRIPTION="Dracut modules to build a dracut initramfs which drops capabilities."
93     DEPEND="== sys-apps/dracut-${PVER}
94     ${CAPS_DEPEND}"
95     }
96    
97     split_info_dracut-tools()
98     {
99     DESCRIPTION="Dracut tools to build the local initramfs."
100     DEPEND="== sys-apps/dracut-${PVER}"
101     }
102    
103     src_prepare()
104     {
105     munpack ${SRCFILE} || die
106     cd ${SRCDIR}
107    
108     # magellan compat patch
109     mpatch ${PNAME}-047-magellan.patch || die
110    
111     # for better mkinitrd compat and to fully support new-kernel-pkg
112     # as drop-in replacement ignore the --allow-missing switch
113     mpatch ${PNAME}-036-mkinitrd-ignore-allow-missing-switch.patch || die
114    
115     # make selinux optional, we do not use it yet
116     mpatch ${PNAME}-019-convertfs-make-selinux-optional.patch || die
117    
118     # add support for dhcpcd and udhcpc in the network module
119     mpatch ${PNAME}-047-network-support-udhcpc-dhcpcd.patch || die
120    
121     # remove gentoo specific modules
122     rm -rf modules.d/50gensplash || die
123     # remove rpm-bases specific modules
124     rm -rf modules.d/10rpmversion || die
125     # systemd-bootchart works better
126     rm -rf modules.d/00bootchart || die
127     # no dash support anymore
128     rm -rf modules.d/00dash || die
129    
130     # fix plymouth libexecdir
131     sed -i "s:/usr/libexec:/usr/$(mlibdir)/plymouth:g" \
132     modules.d/50plymouth/module-setup.sh || die
133    
134     # fix plymouth logo
135     local plymouth_logo=/usr/share/plymouth/magellan-logo.png
136     sed -i "s:^\(PLYMOUTH_LOGO_FILE=\).*:\1\"${plymouth_logo}\":" \
137     modules.d/50plymouth/plymouth-populate-initrd.sh || die
138    
139     # fix qemu libexecdir
140     sed -i "s:/usr/libexec:/usr/$(mlibdir)/qemu:" test/run-qemu || die
141     }
142    
143     src_compile()
144     {
145     cd ${SRCDIR}
146    
147     # always usr /usr/lib as dracut modules dir
148     mconfigure --sysconfdir=/etc --sbindir=/usr/bin --libdir=/usr/lib --systemdsystemunitdir=$(mget-systemd-unit-dir) || die
149     mmake || die
150     }
151    
152     src_install_dracut()
153     {
154     cd ${SRCDIR}
155     mmake DESTDIR=${BINDIR} install || die
156    
157     # remove modules owned by other packages
158     mdelete -r /usr/lib/dracut/modules.d/01fips || die
159     mdelete -r /usr/lib/dracut/modules.d/02caps || die
160     mdelete -r /usr/lib/dracut/modules.d/02systemd-networkd || die
161     mdelete -r /usr/lib/dracut/modules.d/90kernel-network-modules || die
162     mdelete -r /usr/lib/dracut/modules.d/40network || die
163     mdelete -r /usr/lib/dracut/modules.d/90livenet || die
164     mdelete -r /usr/lib/dracut/modules.d/90qemu-net || die
165     mdelete -r /usr/lib/dracut/modules.d/95cifs || die
166     mdelete -r /usr/lib/dracut/modules.d/95fcoe || die
167     mdelete -r /usr/lib/dracut/modules.d/95iscsi || die
168     mdelete -r /usr/lib/dracut/modules.d/95nbd || die
169     mdelete -r /usr/lib/dracut/modules.d/95nfs || die
170     mdelete -r /usr/lib/dracut/modules.d/95ssh-client || die
171     mdelete -r /usr/lib/dracut/modules.d/45ifcfg || die
172     mdelete -r /usr/lib/dracut/modules.d/95znet || die
173     mdelete -r /usr/lib/dracut/modules.d/95fcoe-uefi || die
174     mdelete -r /usr/lib/dracut/modules.d/99uefi-lib || die
175     mdelete /usr/share/man/man8/dracut-catimages.8\* || die
176     mdelete /usr/bin/dracut-catimages || die
177    
178     # needed directories
179     mkeepdir /var/initramfs || die
180     mkeepdir /var/log || die
181     memptyfile /var/log/dracut.log || die
182    
183     # missing compat symlink
184     mlink dracut /usr/bin/mkinitrd || die
185    
186     minstalldocs AUTHORS COPYING HACKING NEWS README* TODO || die
187     }
188    
189     src_install_dracut-network()
190     {
191     cd ${SRCDIR}
192     mmake DESTDIR=${BINDIR} install || die
193    
194     # fix sometimes broken permissions
195     mchmod 0755 /usr/lib/dracut/modules.d/40network/\*.sh || die
196    
197     # keep only related stuff
198     zapmost ${BINDIR} \
199     usr/lib/dracut/modules.d/02systemd-networkd \
200     usr/lib/dracut/modules.d/40network \
201     usr/lib/dracut/modules.d/90kernel-network-modules \
202     usr/lib/dracut/modules.d/90livenet \
203     usr/lib/dracut/modules.d/90qemu-net \
204     usr/lib/dracut/modules.d/95cifs \
205     usr/lib/dracut/modules.d/95fcoe \
206     usr/lib/dracut/modules.d/95iscsi \
207     usr/lib/dracut/modules.d/95nbd \
208     usr/lib/dracut/modules.d/95nfs \
209     usr/lib/dracut/modules.d/95ssh-client \
210     usr/lib/dracut/modules.d/45ifcfg \
211     usr/lib/dracut/modules.d/95znet \
212     usr/lib/dracut/modules.d/95fcoe-uefi \
213     usr/lib/dracut/modules.d/99uefi-lib \
214     || die
215     }
216    
217     src_install_dracut-fips()
218     {
219     cd ${SRCDIR}
220     mmake DESTDIR=${BINDIR} install || die
221     minstalldir /etc/dracut.conf.d || die
222     minstallfile dracut.conf.d/fips.conf.example /etc/dracut.conf.d/40-fips.conf || die
223    
224     # keep only related stuff
225     zapmost ${BINDIR} etc/dracut.conf.d/40-fips usr/lib/dracut/modules.d/01fips || die
226     }
227    
228     src_install_dracut-caps()
229     {
230     cd ${SRCDIR}
231     mmake DESTDIR=${BINDIR} install || die
232    
233     # keep only related stuff
234     zapmost ${BINDIR} usr/lib/dracut/modules.d/02caps || die
235     }
236    
237     src_install_dracut-tools()
238     {
239     cd ${SRCDIR}
240     mmake DESTDIR=${BINDIR} install || die
241    
242     # keep only related stuff
243     zapmost ${BINDIR} \
244     usr/share/man/man8/dracut-catimages.8\* \
245     usr/bin/dracut-catimages \
246     || die
247    
248     mkeepdir /boot/dracut || die
249     mkeepdir /var/lib/dracut || die
250     mkeepdir /var/lib/dracut/overlay || die
251     }
252    
253     preinstall_dracut()
254     {
255     if [[ ! -z $(magequery -n mkinitrd) ]]
256     then
257     echo -e ${COLRED}
258     echo -e "Error: sys-apps/mkinitrd is installed!!"
259     echo -e "dracut will overwrite binaries from sys-apps/mkinitrd and fully replace it."
260     echo -e "Please uninstall sys-apps/mkinitrd first!"
261     echo -e ${COLDEFAULT}
262     die "sys-apps/mkinitrd found!"
263     fi
264     }