summaryrefslogtreecommitdiffstats
path: root/remote
diff options
context:
space:
mode:
Diffstat (limited to 'remote')
-rw-r--r--remote/modules/dbus/data/etc/systemd/system/dbus.socket5
-rw-r--r--remote/modules/dbus/dbus.build21
-rw-r--r--remote/modules/dbus/templates/dbus.service11
-rwxr-xr-xremote/setup_target11
4 files changed, 39 insertions, 9 deletions
diff --git a/remote/modules/dbus/data/etc/systemd/system/dbus.socket b/remote/modules/dbus/data/etc/systemd/system/dbus.socket
new file mode 100644
index 00000000..5c373cf4
--- /dev/null
+++ b/remote/modules/dbus/data/etc/systemd/system/dbus.socket
@@ -0,0 +1,5 @@
+[Unit]
+Description=D-Bus System Message Bus Socket
+
+[Socket]
+ListenStream=/run/dbus/system_bus_socket
diff --git a/remote/modules/dbus/dbus.build b/remote/modules/dbus/dbus.build
index bcab63b0..81c849fb 100644
--- a/remote/modules/dbus/dbus.build
+++ b/remote/modules/dbus/dbus.build
@@ -7,11 +7,26 @@ fetch_source() {
build() {
COPYLIST="list_dpkg_output"
[ -e "${COPYLIST}" ] && rm "${COPYLIST}"
-
- list_packet_files >> "${COPYLIST}"
+
+ list_packet_files >> "${COPYLIST}"
tarcopy "$(cat "${COPYLIST}" | sort -u)" "${MODULE_BUILD_DIR}"
-
+
+ # Generate systemd files
+ mkdir "$MODULE_BUILD_DIR/etc/systemd/system"
+ local UUIDGEN=$(find "$MODULE_BUILD_DIR" -name dbus-uuidgen -executable | head -n 1)
+ local DAEMON=$(find "$MODULE_BUILD_DIR" -name dbus-daemon -executable | head -n 1)
+ local SEND=$(find "$MODULE_BUILD_DIR" -name dbus-send -executable | head -n 1)
+ UUIDGEN="${UUIDGEN#$MODULE_BUILD_DIR}"
+ DAEMON="${DAEMON#$MODULE_BUILD_DIR}"
+ SEND="${SEND#$MODULE_BUILD_DIR}"
+ [ -z "$UUIDGEN" ] && perror "Could not determine dbus-uuidgen location"
+ [ -z "$DAEMON" ] && perror "Could not determine dbus-daemon location"
+ [ -z "$SEND" ] && perror "Could not determine dbus-send location"
+ sed "s,%UUIDGEN%,/$UUIDGEN,g;s,%DAEMON%,$DAEMON,g;s,%SEND%,$SEND,g" "templates/dbus.service" \
+ > "$MODULE_BUILD_DIR/etc/systemd/system/dbus.service" \
+ || perror "Could not generate $MODULE_BUILD_DIR/etc/systemd/system/dbus.service"
}
post_copy() {
:
}
+
diff --git a/remote/modules/dbus/templates/dbus.service b/remote/modules/dbus/templates/dbus.service
new file mode 100644
index 00000000..b6e05271
--- /dev/null
+++ b/remote/modules/dbus/templates/dbus.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=D-Bus System Message Bus
+Requires=dbus.socket
+After=syslog.target
+
+[Service]
+ExecStartPre=%UUIDGEN% --ensure
+ExecStartPre=-/bin/rm -f /run/dbus/pid
+ExecStart=%DAEMON% --system --address=systemd: --nofork --activation=systemd
+ExecReload=%SEND% --print-reply --system --type=method_call --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig
+OOMScoreAdjust=-900
diff --git a/remote/setup_target b/remote/setup_target
index 04af2158..00a182f3 100755
--- a/remote/setup_target
+++ b/remote/setup_target
@@ -358,13 +358,12 @@ process_module() {
post_process_target() {
local TOOL_STR="$TOOL_STR post_process_target:"
- # move systemd files from /lib to /etc/lib
- pinfo "move systemd files from /lib/systemd to /etc/systemd"
if [ -d "${TARGET_BUILD_DIR}/lib/systemd" ]; then
- cd "${TARGET_BUILD_DIR}/lib"
- tarcopy "systemd" "${TARGET_BUILD_DIR}/etc"
- cd - &> /dev/null
- rm -r "${TARGET_BUILD_DIR}/lib/systemd"
+ pwarning "/lib/systemd exists in the generated target. It is not advisable to fetch existing"
+ pwarning "systemd service files from the template system, as it might conflict with generated"
+ pwarning "ones. In fact, some systems don't even use systemd so there might be no existing"
+ pwarning "service files. Please generate your own service file and place it in /etc/systemd."
+ pwarning "All files in /lib/systemd will be ignored."
fi
# figure out all relevant ld-paths