summaryrefslogtreecommitdiffstats
path: root/remote/modules/systemd/systemd.build
blob: 2c15eccfd6de247ce6e4262573b2a80722f487c8 (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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#tool/distro specific functions for fetching, building and installing dependencies

fetch_source () {
	# systemd
	download_untar "$REQUIRED_URL" "src/"
	# Patch PATH, HOME, USER environment
	patch -p0 src/systemd-*/src/core/main.c < systemd-openslx.patch || perror "Failed to apply openslx systemd patch."

	# libkmod
	download_untar "$REQUIRED_LIBKMOD_URL" "src/"
}

build () {
	#build libkmod
	pinfo "Building libkmod"
	cd "${MODULE_DIR}/src/$REQUIRED_LIBKMOD_VERSION"
	./configure || perror "./configure kmod failed."
	make || perror "kmod make failed."
	DESTDIR="${MODULE_BUILD_DIR}" make install || perror "kmod make install failed."
	cd - &> /dev/null

	#build systemd
	pinfo "Building systemd"
	cd "${MODULE_DIR}/src/$REQUIRED_VERSION"
	pinfo "calling configure"
	
	# Save potentially pre-used paths/flages
	OLDLDFLAGS="$LDFLAGS"
	OLDCPPFLAGS="$CPPFLAGS"
	OLDPKG_CONFIG_PATH="$PKG_CONFIG_PATH"
	OLDLD_LIBRARY_PATH="$LD_LIBRARY_PATH"

	export LDFLAGS="$LDFLAGS -L${MODULE_BUILD_DIR}/usr/lib" 
	export CPPFLAGS="-I${MODULE_BUILD_DIR}/usr/include"
	export PKG_CONFIG_PATH="${MODULE_BUILD_DIR}/usr/lib64/pkgconfig:${MODULE_BUILD_DIR}/usr/lib/pkgconfig"
	export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${MODULE_BUILD_DIR}/usr/lib:${MODULE_BUILD_DIR}/usr/lib64"

	./configure --disable-manpages --enable-split-usr --sysconfdir="/etc" --enable-gtk-doc-html=no --disable-nls \
			--disable-microhttpd --disable-bootchart --disable-quotacheck --disable-hostnamed --disable-timedated \
			--disable-localed --disable-coredump --disable-keymap --without-python --enable-blkid --enable-acl --enable-pam \
			--enable-kmod \
			|| perror "configure failed."
	pinfo "calling make"
	make || perror "make failed."
	pinfo "calling make install"
	DESTDIR="${MODULE_BUILD_DIR}" make install || perror "make install failed."
	cd - &> /dev/null

	# Restore used flags/paths:
	export LDFLAGS="$OLDLDFLAGS"
	export CPPFLAGS="$OLDCPPFLAGS"
	export PKG_CONFIG_PATH="$OLDPKG_CONFIG_PATH"
	LD_LIBRARY_PATH="$OLDLD_LIBRARY_PATH"

	# Delete unneeded services
	pinfo "Deleting unneeded services"
	local SERVICE=
	local OTHER=
	for SERVICE in $REQUIRED_DISABLED_SERVICES; do
		find "${MODULE_BUILD_DIR}" -name "$SERVICE" -exec rm -r {} \;
		for OTHER in $(grep -l -r "$SERVICE" "$MODULE_BUILD_DIR/usr/lib/systemd/system"); do
			sed -i -r "s#\s*$SERVICE\s*# #g" "$OTHER"
		done
	done
}

post_copy() {
	# dont clear systemd log at startup
	sed -i "s/TTYVTDisallocate=yes/TTYVTDisallocate=no/g" "${TARGET_BUILD_DIR}/usr/lib/systemd/system/getty@.service"

	#old agetty version doesn't support --noclear option in getty service
	if [ "x$(dpkg -s util-linux | grep Version: | cut -d' ' -f2)" == "x2.19.1-2ubuntu3" ];
	then
		sed -i.bak "s/ExecStart=-\/sbin\/agetty --noclear %I 38400 linux/ExecStart=-\/sbin\/agetty %I 38400 linux/g" "${TARGET_BUILD_DIR}/usr/lib/systemd/system/getty@.service"
	fi

	# add nfs to modules-load list
	echo "nfs" > "${TARGET_BUILD_DIR}/etc/modules-load.d/nfs.conf"

	# add pam_systemd.so to pam modules directory
	if [ -e "${MODULE_BUILD_DIR}/usr/lib/security/pam_systemd.so" ]; then
		cp "${MODULE_BUILD_DIR}/usr/lib/security/pam_systemd.so" "${TARGET_BUILD_DIR}/lib/security/"
	else
		pdebug "No such file: ${MODULE_BUILD_DIR}/usr/lib/security/pam_systemd.so"
	fi
}