Explicitly disconnect all clients from a VT when a getty starts/finishes
(requires TIOCVHANGUP, available in 2.6.29).
Explicitly deallocate getty VTs in order to flush scrollback buffer.
Explicitly reset terminals to a defined state before spawning getty.
otherwise building fails if it doesn't exist:
( cd <DESTDIR>/usr/share/dbus-1/services && \
rm -f org.freedesktop.systemd1.service && \
ln -s ../system-services/org.freedesktop.systemd1.service org.freedesktop.systemd1.service )
/bin/sh: line 0: cd: <DESTDIR>/usr/share/dbus-1/services: No such file or directory
Otherwise using uClibc compilation (OpenEmbedded [1] with `minimal-uclibc` for `MACHINE = "beagleboard"`) fails with the following error message.
| make[1]: Entering directory `/oe/build-minimal-uclibc/minimal-uclibc-dev/work/armv7a-oe-linux-uclibceabi/systemd-v26-r0/git'
| CC src/libsystemd_basic_la-util.lo
| src/util.c: In function 'acquire_terminal':
| src/util.c:2484:29: warning: cast increases required alignment of target type [-Wcast-align]
| src/util.c:2497:37: warning: cast increases required alignment of target type [-Wcast-align]
| src/util.c: In function 'rename_process':
| src/util.c:2905:17: warning: passing argument 1 of 'strncpy' discards qualifiers from pointer target type
| /oe/build-minimal-uclibc/minimal-uclibc-dev/sysroots/armv7a-oe-linux-uclibceabi/usr/include/string.h:87:14: note: expected 'char * restrict' but argument is of type 'const char *'
| src/util.c: In function 'cpu_set_malloc':
| src/util.c:3229:17: warning: implicit declaration of function 'CPU_ALLOC' [-Wimplicit-function-declaration]
| src/util.c:3229:25: warning: assignment makes pointer from integer without a cast
| src/util.c:3232:17: warning: implicit declaration of function 'CPU_ALLOC_SIZE' [-Wimplicit-function-declaration]
| src/util.c:3233:25: warning: implicit declaration of function 'CPU_ZERO_S' [-Wimplicit-function-declaration]
| src/util.c:3241:17: warning: implicit declaration of function 'CPU_FREE' [-Wimplicit-function-declaration]
| CC src/libsystemd_basic_la-label.lo
| In file included from src/label.c:27:0:
| src/util.h:358:41: error: expected declaration specifiers or '...' before 'va_list'
| make[1]: *** [src/libsystemd_basic_la-label.lo] Error 1
| make[1]: Leaving directory `/oe/build-minimal-uclibc/minimal-uclibc-dev/work/armv7a-oe-linux-uclibceabi/systemd-v26-r0/git'
| make: *** [all] Error 2
| + die 'oe_runmake failed'
| + oefatal 'oe_runmake failed'
| + echo FATAL: 'oe_runmake failed'
| FATAL: oe_runmake failed
| + exit 1
NOTE: package systemd-v26-r0: task do_compile: Failed
ERROR: Function 'do_compile' failed (see /oe/build-minimal-uclibc/minimal-uclibc-dev/work/armv7a-oe-linux-uclibceabi/systemd-v26-r0/temp/log.do_compile.4020 for further information)
ERROR: Task 13 (/oe/openembedded/recipes/systemd/systemd_git.bb, do_compile) failed with exit code '1'
ERROR: '/oe/openembedded/recipes/systemd/systemd_git.bb' failed
[1] http://www.openembedded.org/
This commit consists of the initial work to include Angstrom as a ported
distribution for systemd.
Angstrom tries to follow the debian way as much as possible, but deviates
where it doesn't make sense for 'embedded'.
We simply keep open copies of the dbus connections across the
reexecution and close them as last step of it. A client can thus simply
wait until its connection is dropped to know when the reexecution is
finished.
https://bugzilla.redhat.com/show_bug.cgi?id=698198