Magellan Linux

Contents of /trunk/core/dracut/dracut-013-r2.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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