Contents of /smage/trunk/core/initscripts/initscripts-0.8.8-r2.smage2
Parent Directory | Revision Log
Revision 9493 -
(show annotations)
(download)
Wed Apr 12 08:53:44 2017 UTC (7 years, 5 months ago) by niro
File size: 11817 byte(s)
Wed Apr 12 08:53:44 2017 UTC (7 years, 5 months ago) by niro
File size: 11817 byte(s)
-fixed serveral network issues, always preced dhcp configured dns and ntp servers, only use ipv4 and ignore ipv6 and enable ip forwarding to get the interfaces into the configured state and that fixes the systemd-network-wait-online timeout issues too
1 | # $Id$ |
2 | |
3 | PNAME="initscripts" |
4 | PVER="0.8.8" |
5 | PBUILD="r2" |
6 | |
7 | # enable busybox initscripts y|n |
8 | # disabled atm, busybox missing in tree |
9 | BUSYBOX_ENABLED="n" |
10 | # enable sysvinit initscripts y|n |
11 | # disabled, we have replaced sysvinit with systemd |
12 | SYSVINIT_ENABLED="n" |
13 | |
14 | SPLIT_PACKAGES="systemd-initscripts" |
15 | |
16 | [[ ${BUSYBOX_ENABLED} = y ]] && SPLIT_PACKAGES+=" busybox-initscripts" |
17 | [[ ${SYSVINIT_ENABLED} = y ]] && SPLIT_PACKAGES+=" initscripts" |
18 | |
19 | PCAT="sys-apps" |
20 | HOMEPAGE="http://magellan-linux.net" |
21 | |
22 | # the pkgs "coreutils, findutils, sed, gawk, bzip2, tar, rsync, wget" |
23 | # are needed to fix the /etc/profile issue |
24 | COMMON_DEPEND=">= sys-apps/base-files-0.5 |
25 | >= sys-apps/mage-release-0 |
26 | >= sys-apps/coreutils-5 |
27 | >= sys-apps/findutils-4 |
28 | >= virtual/grep |
29 | >= virtual/sed |
30 | >= sys-apps/gawk-3 |
31 | >= virtual/bzip2 |
32 | >= virtual/tar |
33 | >= net-misc/rsync-2 |
34 | >= virtual/wget |
35 | >= virtual/which" |
36 | |
37 | SYSTEMD_DEPEND=">= sys-apps/systemd-28" |
38 | |
39 | SDEPEND="${COMMON_DEPEND} |
40 | ${SYSTEMD_DEPEND}" |
41 | |
42 | if [[ ${BUSYBOX_ENABLED} = y ]] |
43 | then |
44 | BUSYBOX_DEPEND=">= sys-apps/busybox-1.17" |
45 | SDEPEND="${SDEPEND} |
46 | ${BUSYBOX_DEPEND}" |
47 | fi |
48 | |
49 | if [[ ${SYSVINIT_ENABLED} = y ]] |
50 | then |
51 | SYSVINIT_DEPEND=">= sys-apps/sysvinit-2.88" |
52 | SDEPEND="${SDEPEND} |
53 | ${SYSVINIT_DEPEND}" |
54 | fi |
55 | |
56 | PROVIDE="virtual/initscripts" |
57 | |
58 | SRCFILE="${PNAME}-${PVER}.tar.bz2" |
59 | SRCDIR="${BUILDDIR}/${PNAME}-${PVER}" |
60 | |
61 | sminclude mtools systemd alx |
62 | |
63 | SRC_URI=( mirror://${PNAME}/${SRCFILE} ) |
64 | |
65 | SPECIAL_VARS="BLOCKER SYSVINIT_ENABLED BUSYBOX_ENABLED" |
66 | SPECIAL_FUNCTIONS="preinstall_common postinstall_common preremove_common" |
67 | |
68 | if [[ ${SYSVINIT_ENABLED} = y ]] |
69 | then |
70 | split_info_initscripts() |
71 | { |
72 | DESCRIPTION="Magellan Initscripts for sysVinit." |
73 | DEPEND="${COMMON_DEPEND} |
74 | ${SYSVINIT_DEPEND}" |
75 | |
76 | BLOCKER="sys-apps/systemd-initscripts sys-apps/busybox-initscripts" |
77 | } |
78 | fi |
79 | |
80 | split_info_systemd-initscripts() |
81 | { |
82 | DESCRIPTION="Magellan Initscripts for systemd." |
83 | DEPEND="${COMMON_DEPEND} |
84 | ${SYSTEMD_DEPEND}" |
85 | |
86 | BLOCKER="sys-apps/initscripts sys-apps/busybox-initscripts" |
87 | } |
88 | |
89 | if [[ ${BUSYBOX_ENABLED} = y ]] |
90 | then |
91 | split_info_busybox-initscripts() |
92 | { |
93 | DESCRIPTION="Magellan Initscripts for busybox." |
94 | DEPEND="${COMMON_DEPEND} |
95 | ${BUSYBOX_DEPEND}" |
96 | |
97 | BLOCKER="sys-apps/initscripts sys-apps/systemd-initscripts" |
98 | } |
99 | fi |
100 | |
101 | src_prepare() |
102 | { |
103 | munpack ${SRCFILE} || die |
104 | } |
105 | |
106 | src_compile() |
107 | { |
108 | cd ${SRCDIR} |
109 | mmake || die |
110 | } |
111 | |
112 | common_install() |
113 | { |
114 | local method="$1" |
115 | local MCONFIG |
116 | local config_protect_ignore |
117 | |
118 | cd ${SRCDIR} |
119 | make DESTDIR=${BINDIR} LIBDIR=/usr/lib SBINDIR=/usr/sbin install_${method} || die |
120 | |
121 | # always keep this files even if the user edited them |
122 | config_protect_ignore="/etc/fstab" |
123 | config_protect_ignore+=" /etc/hostname" |
124 | config_protect_ignore+=" /etc/hosts" |
125 | config_protect_ignore+=" /etc/inittab" |
126 | config_protect_ignore+=" /etc/conf.d/net.eth0" |
127 | config_protect_ignore+=" /etc/conf.d/net.routes" |
128 | minstalldir /etc/env.d || die |
129 | MCONFIG="/etc/env.d/01initscripts" |
130 | mclearconfig || die |
131 | maddconfig "CONFIG_PROTECT_IGNORE=\"${config_protect_ignore}\"" || die |
132 | } |
133 | |
134 | if [[ ${SYSVINIT_ENABLED} = y ]] |
135 | then |
136 | src_install_initscripts() |
137 | { |
138 | local flavor="sysvinit" |
139 | local config_protect_ignore |
140 | local MCONFIG |
141 | |
142 | cd ${SRCDIR} |
143 | common_install ${flavor} || die |
144 | |
145 | # CONFIG_PROTECT_MASK for /etc/rc.d/init.d |
146 | minstalldir /etc/env.d || die |
147 | MCONFIG="/etc/env.d/01${flavor}" |
148 | mclearconfig || die |
149 | maddconfig "CONFIG_PROTECT_MASK=\"/etc/rc.d/init.d\"" || die |
150 | config_protect_ignore+=" /etc/modules.autoload.d/kernel-2.4" |
151 | config_protect_ignore+=" /etc/modules.autoload.d/kernel-2.6" |
152 | config_protect_ignore+=" /etc/modules.autoload" |
153 | maddconfig "CONFIG_PROTECT_IGNORE=\"${config_protect_ignore}\"" || die |
154 | } |
155 | fi |
156 | |
157 | src_install_systemd-initscripts() |
158 | { |
159 | local flavor="systemd" |
160 | local config_protect_ignore |
161 | local MCONFIG |
162 | |
163 | cd ${SRCDIR} |
164 | common_install ${flavor} || die |
165 | |
166 | # install these binaries for old sysvinit compat only |
167 | if [[ ${SYSVINIT_ENABLED} = n ]] |
168 | then |
169 | minstalldir /usr/sbin || die |
170 | minstallexec ${SRCDIR}/sysvinit/sbin/rc-config /usr/sbin || die |
171 | minstalldir /etc/rc.d/init.d || die |
172 | minstallfile ${SRCDIR}/sysvinit/rc/functions /etc/rc.d/init.d/ || die |
173 | fi |
174 | |
175 | # CONFIG_PROTECT_MASK for /etc/rc.d/init.d |
176 | MCONFIG="/etc/env.d/01${flavor}" |
177 | minstalldir /etc/env.d || die |
178 | config_protect_ignore+=" /etc/systemd/system" |
179 | mclearconfig || die |
180 | maddconfig "CONFIG_PROTECT_IGNORE=\"${config_protect_ignore}\"" || die |
181 | |
182 | # alx only: fix issue file for busybox getty |
183 | minstallfile busybox/etc/issue /etc/issue || die |
184 | |
185 | # on alx we use systemd combined with busybox, so we need default network settings for udhcpc |
186 | minstallfile ${SRCDIR}/busybox/conf.d/network /etc/conf.d/network || die |
187 | |
188 | # we use systemd-networkd from now on, so we provide a default configuration |
189 | # to auto-enable all NICs via DHCP |
190 | MCONFIG="/etc/systemd/network/default.network" |
191 | minstalldir /etc/systemd/network || die |
192 | mclearconfig |
193 | maddconfig '[Match]' || die |
194 | maddconfig 'Name=en*' || die |
195 | maddconfig || die |
196 | maddconfig '[Network]' || die |
197 | # only use ipv4 on alx |
198 | maddconfig 'DHCP=ipv4' || die |
199 | # required to get the interfaces into the 'configured' state |
200 | # without it systemd-networkd-wait-online will always fail |
201 | maddconfig 'IPForward=yes' || die |
202 | maddconfig || die |
203 | # always use the mac address not the client identifier duid (which is default) |
204 | # because a new machine-id will always be generated at boot with netboot images |
205 | maddconfig '[DHCP]' || die |
206 | maddconfig 'ClientIdentifier=mac' || die |
207 | # always precede dhcp configured dns and ntp servers instead of local configured ones |
208 | maddconfig 'UseDNS=yes' || die |
209 | maddconfig 'UseNTP=yes' || die |
210 | # set up resolve.conf for systemd-resolved |
211 | mlink /run/systemd/resolve/resolv.conf /etc/resolv.conf || die |
212 | } |
213 | |
214 | if [[ ${BUSYBOX_ENABLED} = y ]] |
215 | then |
216 | src_install_busybox-initscripts() |
217 | { |
218 | local flavor="busybox" |
219 | local config_protect_ignore |
220 | local MCONFIG |
221 | |
222 | cd ${SRCDIR} |
223 | common_install ${flavor} || die |
224 | |
225 | # CONFIG_PROTECT_MASK for /etc/rc.d/init.d |
226 | minstalldir /etc/env.d || die |
227 | MCONFIG="/etc/env.d/01${flavor}" |
228 | mclearconfig || die |
229 | maddconfig "CONFIG_PROTECT_MASK=\"/etc/rc.d/init.d\"" || die |
230 | config_protect_ignore+=" /etc/modules.autoload.d/kernel-2.4" |
231 | config_protect_ignore+=" /etc/modules.autoload.d/kernel-2.6" |
232 | config_protect_ignore+=" /etc/modules.autoload" |
233 | maddconfig "CONFIG_PROTECT_IGNORE=\"${config_protect_ignore}\"" || die |
234 | # add conf.d/kernel to protect current udev|mdev configuration |
235 | config_protect_ignore+=" /etc/conf.d/kernel" |
236 | maddconfig "CONFIG_PROTECT_IGNORE=\"${config_protect_ignore}\"" || die |
237 | } |
238 | fi |
239 | |
240 | postinstall_common() |
241 | { |
242 | # emulate seq; its needed to run rc-config |
243 | # this fixes some annyoing warning when building |
244 | # livecd or bootstrapping a system. |
245 | # this hack will be removed when the toolchain is fixed |
246 | if [ ! -f /usr/bin/seq ] |
247 | then |
248 | echo "Using fake 'seq' command ..." |
249 | seq() { |
250 | start=$1 |
251 | end=$2 |
252 | for ((i=start; i < end+1; i++)) |
253 | do |
254 | echo $i |
255 | done |
256 | } |
257 | export -f seq |
258 | fi |
259 | |
260 | # keep this only for transitional purposes |
261 | # do not ask the user about following files |
262 | # |
263 | # if they exist let config_protect process them |
264 | # but then remove the protected files, to keep only the original file |
265 | # |
266 | # file-root is ${MROOT}/etc |
267 | local CONFIG_IGNORE="fstab hostname hosts inittab conf.d/net.eth0 modules.autoload.d/kernel-2.4 modules.autoload.d/kernel-2.6 modules.autoload" |
268 | local i file path |
269 | for i in ${CONFIG_IGNORE} |
270 | do |
271 | file="$(basename ${i})" |
272 | path="$(dirname ${i})/" |
273 | [[ ${path} == ./ ]] && path="" |
274 | |
275 | rm -f ${MROOT}/etc/${path}._cfg????_${file} |
276 | done |
277 | |
278 | # initscripts >= 0.5.0: rc file moved to /etc/conf.d/rc |
279 | if [[ -f ${MROOT}/etc/conf.d/rc ]] && [[ -f ${MROOT}/etc/sysconfig/rc ]] |
280 | then |
281 | rm -f ${MROOT}/etc/sysconfig/rc |
282 | fi |
283 | |
284 | # aliases and i368 got renamed to *.conf |
285 | local i |
286 | for i in aliases i386 |
287 | do |
288 | if [[ -f ${MROOT}/etc/modules.d/${i} ]] |
289 | then |
290 | rm ${MROOT}/etc/modules.d/${i} |
291 | fi |
292 | done |
293 | } |
294 | |
295 | postinstall_systemd-initscripts() |
296 | { |
297 | postinstall_common |
298 | |
299 | # enable network.service (systemd only) |
300 | #mstartunit network.service |
301 | |
302 | # use networkd from systemd |
303 | mstartunit systemd-networkd |
304 | mstartunit systemd-resolved |
305 | # required by mcore-register-client |
306 | mstartunit systemd-networkd-wait-online |
307 | } |
308 | |
309 | postinstall_sysvinit-initscripts() |
310 | { |
311 | postinstall_common |
312 | |
313 | if [ -f ${MROOT}/etc/rc.d/init.d/functions ] |
314 | then |
315 | # create service state dir mountpoint |
316 | # needed by >=initscripts-0.3.2-r1 |
317 | [ ! -d ${MROOT}/var/lib/init.d ] && install -d ${MROOT}/var/lib/init.d |
318 | |
319 | # mark this dir as undeletable |
320 | touch ${MROOT}/var/lib/init.d/.keep |
321 | |
322 | if [[ -x ${MROOT}/usr/sbin/rc-config ]] |
323 | then |
324 | echo "Creating Runlevels ..." |
325 | local i |
326 | for i in checkfs cleanfs halt \ |
327 | loadkeys localnet modules mountfs \ |
328 | network reboot sendsignals \ |
329 | setclock swap sysctl consolefont |
330 | do |
331 | echo -e "\tAdded ${i} ..." |
332 | ${MROOT}/usr/sbin/rc-config del ${i} > /dev/null |
333 | ${MROOT}/usr/sbin/rc-config add ${i} > /dev/null |
334 | done |
335 | fi |
336 | fi |
337 | } |
338 | |
339 | postinstall_busybox-initscripts() |
340 | { |
341 | postinstall_common |
342 | |
343 | if [ -f ${MROOT}/etc/rc.d/init.d/functions ] |
344 | then |
345 | # create service state dir mountpoint |
346 | # needed by >=initscripts-0.3.2-r1 |
347 | [ ! -d ${MROOT}/var/lib/init.d ] && install -d ${MROOT}/var/lib/init.d |
348 | |
349 | # mark this dir as undeletable |
350 | touch ${MROOT}/var/lib/init.d/.keep |
351 | |
352 | if [[ -x ${MROOT}/usr/sbin/rc-config ]] |
353 | then |
354 | echo "Creating Runlevels ..." |
355 | local i |
356 | for i in checkfs cleanfs loadkeys localnet \ |
357 | modules mountfs network setclock swap |
358 | do |
359 | echo -e "\tAdded ${i} ..." |
360 | ${MROOT}/usr/sbin/rc-config del ${i} > /dev/null |
361 | ${MROOT}/usr/sbin/rc-config add ${i} > /dev/null |
362 | done |
363 | fi |
364 | fi |
365 | } |
366 | |
367 | preinstall_common() |
368 | { |
369 | # ignore this while package building |
370 | if [[ ! -f /.installrc ]] |
371 | then |
372 | local package |
373 | for package in ${BLOCKER} |
374 | do |
375 | if [[ ! -z $(magequery -n ${package##*/}) ]] |
376 | then |
377 | echo -e ${COLRED} |
378 | echo -e "Error: ${package} is installed!!" |
379 | echo -e "This initscript flavor cannot co-exist ${package}." |
380 | echo -e "Please uninstall ${package} first!" |
381 | echo -e ${COLDEFAULT} |
382 | die "${package} found!" |
383 | fi |
384 | done |
385 | fi |
386 | } |
387 | |
388 | preinstall_systemd-initscripts() |
389 | { |
390 | preinstall_common |
391 | |
392 | add_conf_prot_mask /etc/env.d /etc/modprobe.d /etc/rc.d/init.d /etc/profile /etc/inputrc \ |
393 | /etc/shells /etc/issue /etc/DIR_COLORS /etc/inittab \ |
394 | /etc/conf.d/net.sample /etc/conf.d/kernel /etc/conf.d/rc /etc/conf.d/network \ |
395 | /etc/systemd/network/default.network |
396 | |
397 | add_conf_prot_ignore /etc/fstab /etc/group /etc/hostname /etc/hosts /etc/modules.autoload \ |
398 | /etc/passwd /etc/shadow /etc/conf.d/clock /etc/conf.d/editor /etc/conf.d/keymap \ |
399 | /etc/conf.d/net.routes /etc/locale.conf /etc/vconsole.conf |
400 | } |
401 | |
402 | preinstall_sysvinit-initscripts() |
403 | { |
404 | preinstall_common |
405 | |
406 | add_conf_prot_mask /etc/env.d /etc/modprobe.d /etc/rc.d/init.d /etc/profile /etc/inputrc \ |
407 | /etc/shells /etc/issue /etc/DIR_COLORS /etc/inittab \ |
408 | /etc/conf.d/net.sample /etc/conf.d/kernel /etc/conf.d/rc /etc/conf.d/network |
409 | |
410 | add_conf_prot_ignore /etc/fstab /etc/group /etc/hostname /etc/hosts /etc/modules.autoload \ |
411 | /etc/passwd /etc/shadow /etc/conf.d/clock /etc/conf.d/editor /etc/conf.d/keymap \ |
412 | /etc/conf.d/net.routes |
413 | } |
414 | |
415 | preinstall_busybox-initscripts() |
416 | { |
417 | preinstall_common |
418 | |
419 | add_conf_prot_mask /etc/env.d /etc/modprobe.d /etc/rc.d/init.d /etc/profile /etc/inputrc \ |
420 | /etc/shells /etc/issue /etc/DIR_COLORS /etc/inittab \ |
421 | /etc/conf.d/net.sample /etc/conf.d/kernel /etc/conf.d/rc /etc/conf.d/network |
422 | |
423 | add_conf_prot_ignore /etc/fstab /etc/group /etc/hostname /etc/hosts /etc/modules.autoload \ |
424 | /etc/passwd /etc/shadow /etc/conf.d/clock /etc/conf.d/editor /etc/conf.d/keymap \ |
425 | /etc/conf.d/net.routes |
426 | } |
427 | |
428 | preremove_common() |
429 | { |
430 | # protect these files, that they do not get removed from the system |
431 | local CONFIG_IGNORE="fstab hostname hosts" |
432 | for i in ${CONFIG_IGNORE} |
433 | do |
434 | [[ -e ${MROOT}/etc/${i} ]] && touch ${MROOT}/etc/${i} |
435 | done |
436 | } |
437 | |
438 | preremove_systemd-initscripts() |
439 | { |
440 | preremove_common |
441 | } |
442 | |
443 | preremove_sysvinit-initscripts() |
444 | { |
445 | preremove-common |
446 | } |
447 | |
448 | preremove_busybox-initscripts() |
449 | { |
450 | preremove_common |
451 | } |