Magellan Linux

Contents of /smage/trunk/core/systemd/systemd-185-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3735 - (show annotations) (download)
Tue Jul 17 12:02:54 2012 UTC (11 years, 10 months ago) by niro
File size: 10914 byte(s)
-fixed udev install dir
1 # $Id$
2
3 PNAME="systemd"
4 PVER="185"
5 PBUILD="r1"
6
7 SPLIT_PACKAGES="libudev libudev-dev udev udev-dev"
8
9 PCAT="sys-apps"
10 HOMEPAGE="http://www.freedesktop.org/wiki/Software/systemd"
11
12 GLIB2_DEPEND=">= dev-libs/glib2-2.32"
13 GLIBC_DEPEND=">= virtual/glibc"
14 COMMON_DEPEND="${GLIBC_DEPEND}
15 ${GLIB2_DEPEND}
16 >= sys-apps/util-linux-2.21
17 >= virtual/sysvinit-tools
18 >= sys-apps/kmod-8"
19
20 LIBUDEV_DEPEND="${GLIBC_DEPEND}"
21
22 SYSTEMD_DEPEND="${COMMON_DEPEND}
23 >= sys-apps/dbus-1.6"
24
25 UDEV_DEPEND="${COMMON_DEPEND}"
26
27 SDEPEND="${LIBUDEV_DEPEND}
28 ${SYSTEMD_DEPEND}
29 ${TOOLS_DEPEND}
30 ${UDEV_DEPEND}
31 >= dev-util/intltool-0.50
32 >= dev-util/gperf-3
33 >= virtual/kernel-headers"
34
35 SRCFILE="${PNAME}-${PVER}.tar.xz"
36 SRCDIR="${BUILDDIR}/${PNAME}-${PVER}"
37
38 UDEV_CONFIG_PVER="${PVER}-r1"
39 UDEV_CONFIG_SRCFILE="config-udev-${UDEV_CONFIG_PVER}.tar.bz2"
40 UDEV_CONFIG_SRCDIR="${BUILDDIR}/config-udev-${UDEV_CONFIG_PVER}"
41
42 sminclude mtools multilib cleanutils
43 msetfeature "!check"
44
45 SRC_URI=(
46 http://www.freedesktop.org/software/${PNAME}/${SRCFILE}
47 mirror://${PNAME}/${SRCFILE}
48 mirror://udev/${UDEV_CONFIG_SRCFILE}
49 mirror://${PNAME}/${PNAME}-185-magellan.patch
50 mirror://${PNAME}/${PNAME}-185-magellan-configurable-getty-2.patch
51 mirror://${PNAME}/login-manager.pamd
52 )
53
54 UP2DATE="updatecmd http://www.freedesktop.org/software/systemd/ | grep ${PNAME}-[0-9] | lasttarball xz"
55
56 split_info_libudev()
57 {
58 DESCRIPTION="Dynamic library to access udev device information."
59 DEPEND="${LIBUDEV_DEPEND}"
60 PCAT="sys-fs"
61 }
62
63 split_info_libudev-dev()
64 {
65 DESCRIPTION="Development files for libudev."
66 DEPEND="== sys-fs/libudev-${PVER}"
67 PCAT="sys-fs"
68 }
69
70 split_info_udev()
71 {
72 DESCRIPTION="A Userspace Implementation for dynamic /dev nodes."
73 DEPEND="${UDEV_DEPEND}
74 == sys-fs/libudev-${PVER}"
75 PCAT="sys-fs"
76 }
77
78 split_info_udev-dev()
79 {
80 DESCRIPTION="Development files for udev."
81 DEPEND="== sys-fs/libudev-dev-${PVER}
82 == sys-fs/udev-${PVER}"
83 PCAT="sys-fs"
84 }
85
86 src_prepare()
87 {
88 munpack ${SRCFILE} || die
89 oldmunpack ${UDEV_CONFIG_SRCFILE} || die
90
91 # apply our magellan patch
92 mpatch ${PNAME}-185-magellan.patch || die
93
94 # magellan-only: use a configurable getty
95 mpatch ${PNAME}-185-magellan-configurable-getty-2.patch || die
96
97 # let rsyslog read from /proc/kmsg for now
98 all-abis sed -i "s:#ImportKernel=yes:ImportKernel=no:" src/journal/journald.conf || die
99
100 # regen configure
101 mautoreconf || die
102 }
103
104 src_compile()
105 {
106 mconfigure \
107 --with-distro=magellan \
108 --libexecdir=/usr/lib \
109 --localstatedir=/var \
110 --disable-ima \
111 --disable-audit \
112 --disable-selinux \
113 --disable-pam \
114 --disable-tcpwrap \
115 --disable-xz \
116 --disable-acl \
117 --disable-libcryptsetup \
118 --disable-plymouth \
119 --disable-gudev \
120 --disable-introspection \
121 --with-pci-ids-path=no \
122 --with-usb-ids-path=no \
123 --with-firmware-path=/usr/lib/firmware/updates:/usr/lib/firmware:/lib/firmware/updates:/lib/firmware \
124 --disable-binfmt \
125 --disable-vconsole \
126 --disable-readahead \
127 --disable-quotacheck \
128 --disable-randomseed \
129 --disable-logind \
130 --disable-hostnamed \
131 --disable-timedated \
132 --disable-localed \
133 --disable-coredump \
134 --disable-keymap \
135 --disable-manpages \
136 || die
137
138 mmake || die
139 }
140
141 src_install_libudev()
142 {
143 mmake DESTDIR=${BINDIR} install || die
144
145 # cleanup all files but the libudev owned ones
146 zapmost ${BINDIR} \
147 usr/$(mlibdir)/libudev.so.* \
148 $([[ $(mlibdir) != lib ]] && echo 'usr/lib/libudev.so.*') \
149 || die
150 }
151
152 src_install_libudev-dev()
153 {
154 mmake DESTDIR=${BINDIR} install || die
155
156 # cleanup all files but the libudev owned ones
157 zapmost ${BINDIR} \
158 usr/include/libudev.h \
159 usr/$(mlibdir)/libudev.so \
160 usr/$(mlibdir)/pkgconfig/libudev.pc \
161 $([[ $(mlibdir) != lib ]] && echo 'usr/lib/libudev.so') \
162 $([[ $(mlibdir) != lib ]] && echo 'usr/lib/pkgconfig/libudev.pc') \
163 || die
164 }
165
166 src_install_udev()
167 {
168 mmake DESTDIR=${BINDIR} install || die
169
170 # cleanup all files but the udev owned ones
171 zapmost ${BINDIR} \
172 usr/bin/udevadm \
173 usr/lib/systemd/systemd-udevd \
174 usr/lib/udev \
175 || die
176
177 # remove udev rule for systemd
178 mdelete /usr/lib/udev/rules.d/99-systemd.rules || die
179
180 # install our config
181 cd ${UDEV_CONFIG_SRCDIR}
182 make DESTDIR=${BINDIR} install || die
183
184 # install sysvinit rc. script
185 make DESTDIR=${BINDIR} install-sysvinit || die
186
187 # udev writerootlink rule is required by busybox
188 make DESTDIR=${BINDIR} udevdir=/usr/lib/udev install-writerootlink || die
189
190 # create symlinks for these utilities to /sbin
191 minstalldir /usr/sbin || die
192 # where multipath-tools expect them to be
193 mlink ../lib/udev/scsi_id /usr/sbin/ || die
194 # udevd is now installed to /lib/systemd/systemd-udevd by upstream - we need compat symlinks
195 mlink ../lib/systemd/systemd-udevd /usr/sbin/udevd || die
196
197 # mark some dirs undeletable
198 mkeepdir /etc/udev/rules.d || die
199 mkeepdir /usr/lib/udev/state || die
200 mkeepdir /usr/lib/udev/devices || die
201 mkeepdir /usr/lib/udev/devices/net || die
202 mkeepdir /usr/lib/udev/devices/pts || die
203 mkeepdir /usr/lib/udev/devices/shm || die
204 mkeepdir /usr/lib/udev/devices/hugepages || die
205
206 # CONFIG_PROTECT_MASK for /etc/udev/rules.d
207 minstalldir /etc/env.d || die
208 echo "CONFIG_PROTECT_MASK=\"/etc/udev/rules.d\"" > ${BINDIR}/etc/env.d/02udev || die
209
210 # create some nodes that we know we need
211 mknod ${BINDIR}/usr/lib/udev/devices/null c 1 3 || die
212 chmod 666 ${BINDIR}/usr/lib/udev/devices/null || die
213 # hey, that's my birthday :)
214 touch -t 198002220222 ${BINDIR}/usr/lib/udev/devices/null || die
215
216 mknod ${BINDIR}/usr/lib/udev/devices/zero c 1 5 || die
217 chmod 666 ${BINDIR}/usr/lib/udev/devices/zero || die
218 touch -t 198002220222 ${BINDIR}/usr/lib/udev/devices/zero || die
219
220 mknod ${BINDIR}/usr/lib/udev/devices/console c 5 1 || die
221 chmod 600 ${BINDIR}/usr/lib/udev/devices/console || die
222 chown root:tty ${BINDIR}/usr/lib/udev/devices/console || die
223 touch -t 198002220222 ${BINDIR}/usr/lib/udev/devices/console || die
224
225 mknod ${BINDIR}/usr/lib/udev/devices/urandom c 1 9 || die
226 chmod 666 ${BINDIR}/usr/lib/udev/devices/urandom || die
227 touch -t 198002220222 ${BINDIR}/usr/lib/udev/devices/urandom || die
228 }
229
230 src_install_udev-dev()
231 {
232 mmake DESTDIR=${BINDIR} install || die
233
234 # cleanup all files but the udev owned ones
235 zapmost ${BINDIR} \
236 usr/lib/systemd/system/systemd-udev-control.socket \
237 usr/lib/systemd/system/systemd-udev-kernel.socket \
238 usr/lib/systemd/system/systemd-udev.service \
239 usr/lib/systemd/system/systemd-udev-settle.service \
240 usr/lib/systemd/system/systemd-udev-trigger.service \
241 usr/share/man/man7/udev.7 \
242 usr/share/man/man8/systemd-udevd.8 \
243 usr/share/man/man8/udevadm.8 \
244 usr/share/pkgconfig/udev.pc \
245 || die
246
247 minstalldocs LICENSE* NEWS README TODO || die
248 }
249
250 preinstall_udev()
251 {
252 add_conf_prot_mask /etc/udev /etc/env.d /etc/rc.d/init.d /etc/modprobe.d
253
254 if [[ ! -z $(magequery -n hotplug) ]]
255 then
256 echo -e ${COLRED}
257 echo -e "Error: sys-apps/hotplug is installed!!"
258 echo -e "hotplug is now fully provided by udev itself and it is not recommend to use this anymore."
259 echo -e "Please uninstall sys-apps/hotplug first!"
260 echo -e ${COLDEFAULT}
261 die "sys-apps/hotplug found!"
262 fi
263
264 if [[ -d ${MROOT}/lib/udev-state ]]
265 then
266 mv -f ${MROOT}/lib/udev-state/* ${MROOT}/usr/lib/udev/state/
267 rm -r ${MROOT}/lib/udev-state
268 fi
269
270 if [[ -d ${MROOT}/lib/udev/state ]]
271 then
272 mv -f ${MROOT}/lib/udev/state/* ${MROOT}/usr/lib/udev/state/
273 rm -r ${MROOT}/lib/udev/state
274 fi
275
276 if [[ -f ${MROOT}/etc/udev/udev.config ]] &&
277 [[ ! -f ${MROOT}/etc/udev/udev.rules ]]
278 then
279 mv -f ${MROOT}/etc/udev/udev.config ${MROOT}/etc/udev/udev.rules
280 fi
281
282 # delete the old udev.hotplug symlink if it is present
283 if [[ -h ${MROOT}/etc/hotplug.d/default/udev.hotplug ]]
284 then
285 rm -f ${MROOT}/etc/hotplug.d/default/udev.hotplug
286 fi
287
288 # delete the old wait_for_sysfs.hotplug symlink if it is present
289 if [[ -h ${MROOT}/etc/hotplug.d/default/05-wait_for_sysfs.hotplug ]]
290 then
291 rm -f ${MROOT}/etc/hotplug.d/default/05-wait_for_sysfs.hotplug
292 fi
293
294 # delete the old 10-udev.hotplug symlink if it is present
295 if [[ -h ${MROOT}/etc/hotplug.d/default/10-udev.hotplug ]]
296 then
297 rm -f ${MROOT}/etc/hotplug.d/default/10-udev.hotplug
298 fi
299
300 # delete the deprectated udev-late rc-script
301 [[ -x ${MROOT}/sbin/rc-config ]] && ${MROOT}/sbin/rc-config del udev-late
302
303 # delete obsolete hotplug.dev script
304 if [[ -f ${MROOT}/etc/dev.d/net/hotplug.dev ]]
305 then
306 rm -f ${MROOT}/etc/dev.d/net/hotplug.dev
307 fi
308
309 # delete deprecated pnp-aliases
310 if [[ -f ${MROOT}/etc/modprobe.d/pnp-aliases ]]
311 then
312 rm -f ${MROOT}/etc/modprobe.d/pnp-aliases
313 fi
314
315 # delete deprecated blacklist
316 if [[ -f ${MROOT}/etc/udev/blacklist ]]
317 then
318 rm -f ${MROOT}/etc/udev/blacklist
319 fi
320
321 # delete all udev.rules which are moved from /etc/udev to /lib/udev
322 local rule
323 for rule in 40-arch-s390.rules \
324 61-persistent-storage-edd.rules \
325 75-persistent-net-generator.rules \
326 64-md-raid.rules \
327 65-permissions.rules \
328 64-device-mapper.rules \
329 40-alsa.rules \
330 40-zaptel.rules \
331 60-persistent-input.rules \
332 40-arch-ia64.rules \
333 05-udev-early.rules \
334 40-arch-ppc.rules \
335 60-cdrom_id.rules \
336 40-pilot-links.rules \
337 95-udev-late.rules \
338 40-magellan.rules \
339 50-udev-default.rules \
340 80-drivers.rules \
341 30-kernel-compat.rules \
342 40-video.rules \
343 60-persistent-storage-tape.rules \
344 75-cd-aliases-generator.rules \
345 60-persistent-storage.rules
346 do
347 # delete obsolete hotplug.dev script
348 if [[ -f ${MROOT}/etc/udev/rules.d/${rule} ]]
349 then
350 rm -f ${MROOT}/etc/udev/rules.d/${rule}
351 fi
352 done
353 }
354
355 postinstall_udev()
356 {
357 # create some nodes that we need if they not exist
358 [[ ! -e ${MROOT}/usr/lib/udev/devices/null ]] &&
359 mknod ${MROOT}/usr/lib/udev/devices/null c 1 3
360 chmod 666 ${MROOT}/usr/lib/udev/devices/null
361 touch -t 198002220222 ${MROOT}/usr/lib/udev/devices/null
362
363 [[ ! -e ${MROOT}/usr/lib/udev/devices/zero ]] &&
364 mknod ${MROOT}/usr/lib/udev/devices/zero c 1 5
365 chmod 666 ${MROOT}/usr/lib/udev/devices/zero
366 touch -t 198002220222 ${MROOT}/usr/lib/udev/devices/zero
367
368 [[ ! -e ${MROOT}/usr/lib/udev/devices/console ]] &&
369 mknod ${MROOT}/usr/lib/udev/devices/console c 5 1
370 chmod 600 ${MROOT}/usr/lib/udev/devices/console
371 chown root:tty ${MROOT}/usr/lib/udev/devices/console
372 touch -t 198002220222 ${MROOT}/usr/lib/udev/devices/console
373
374 [[ ! -e ${MROOT}/usr/lib/udev/devices/urandom ]] &&
375 mknod ${MROOT}/usr/lib/udev/devices/urandom c 1 9
376 chmod 666 ${MROOT}/usr/lib/udev/devices/urandom
377 touch -t 198002220222 ${MROOT}/usr/lib/udev/devices/urandom
378
379 [[ ! -d ${MROOT}/run ]] && install -d ${MROOT}/run
380
381 # after install/uprade, udev *must* be reloaded if already running
382 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] &&
383 [[ -n $(pidof udevd) ]] && [[ ${MAGE_BOOTSTRAP} != true ]]
384 then
385 echo "MROOT=/; restarting udev daemon ..."
386 # support old installations too
387 killall -15 udevd &> /dev/null
388 killall -15 systemd-udevd &> /dev/null
389 sleep 1
390 killall -9 systemd-udevd &> /dev/null
391 killall -9 udevd &> /dev/null
392 /usr/lib/systemd/systemd-udevd --daemon
393 fi
394 }