summaryrefslogtreecommitdiffstats
path: root/core/modules/lightdm/module.build
blob: a86d0baa7fde4c4b1419e4bf5a1c061f3c287640 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/bash
fetch_source() {
	:
}

build() {
	COPYLIST="list_dpkg_output"
	[ -e "$COPYLIST" ] && rm "$COPYLIST"
	list_packet_files >> "$COPYLIST"
	tarcopy "$(cat "$COPYLIST" | sort -u)" "${MODULE_BUILD_DIR}"
}

post_copy() {
	mkdir -p "${TARGET_BUILD_DIR}/var/lib/lightdm"{,-data}
	local LDMUID=$(add_system_user "lightdm")
	local LDMGID=$(add_system_group "lightdm")
	pinfo "lightdm user and group is $LDMUID $LDMGID"
	chown -R "${LDMUID}:${LDMGID}" "${TARGET_BUILD_DIR}/var/lib/lightdm/" || \
		perror "chowning '${TARGET_BUILD_DIR}/var/lib/lightdm/' failed."

	# NOTE this might cause problems on systemd-based systems where use our
	# own systemd module instead of using the distro's module, which we shouldn't
	# in the first place! First, check if service file is present on system:
	local LIGHTDM_SERVICE_PATH="$(systemctl show -p FragmentPath lightdm.service | cut -c 14-)"
	if [ -z "${LIGHTDM_SERVICE_PATH}" ]; then
		# Not found, so use our template
		local LIGHTDM_SERVICE_TPL="${MODULE_DIR}/templates/lightdm.service"
		[ -s "${LIGHTDM_SERVICE_TPL}" ] || perror "Unable to find template at ${LIGHTDM_SERVICE_TPL}."
		local LIGHTDM_SERVICE_DEST="${TARGET_BUILD_DIR}/etc/systemd/system/lightdm.service"
		mkdir -p "${LIGHTDM_SERVICE_DEST%/*}" || perror "Could not create '${LIGHTDM_SERVICE_DEST%/*}'."
		cp "${MODULE_DIR}/templates/lightdm.service" "${LIGHTDM_SERVICE_DEST}" || \
			perror "Could not cp lightdm.service template to '${LIGHTDM_SERVICE_DEST}'."
		LIGHTDM_SERVICE_PATH="${LIGHTDM_SERVICE_DEST//${TARGET_BUILD_DIR}/}"
	fi
	# either way link display-manager to LIGHTDM_SERVICE_PATH
	ln -sf "${LIGHTDM_SERVICE_PATH}" \
		"${TARGET_BUILD_DIR}/etc/systemd/system/display-manager.service" || \
		perror "Could not set lightdm as display-manager!"
}