summaryrefslogtreecommitdiffstats
path: root/remote/modules/pam/module.build
blob: b678fdd67d26977122a35ab56fe28969b0f97f25 (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
#!/bin/bash

fetch_source() {
	# get pam-script source
	download_untar "$REQUIRED_PAM_SCRIPT_URL" "src/"
	# Distribution switch: openSuse 13.1 has no package nss-ldap:
	if [ -n "$REQUIRED_NSS_LDAPD_URL" ]; then
		pinfo "Downloading $REQUIRED_NSS_LDAPD_URL ..."
		download_untar "$REQUIRED_NSS_LDAPD_URL" "src/"
	fi
	# Distribution switch: Ubuntu 14.04 dropped packages ncpfs and libncp:
	if [[ "$SYS_DISTRIBUTION" == "ubuntu" && "$SYS_VERSION" == "14.04" ]]; then
		for file in $REQUIRED_DOWNLOAD_URLS; do
			local package="$(basename $file)"
			pinfo "Downloading and installing package $package ..."
			download_if_empty "$file" "src/$package"
			dpkg -i "src/$package"	|| perror "Could not install package $package."
		done
	fi
}

build() {
	mkdir -p "$MODULE_BUILD_DIR/opt/openslx/bin"
	gcc -o "$MODULE_BUILD_DIR/opt/openslx/bin/sslconnect" "$MODULE_DIR/sslconnect.c" -lssl -lcrypto -O3 || perror "Could not compile sslconnect.c"
	local COPYLIST="$MODULE_BUILD_DIR/list_packet_files"
	# TODO: Hack for SUSE: Ignore file (/var/lib/nfs/state) that does not exist :(
	list_packet_files | grep -v '/var/lib/nfs/state' | sort -u > "$COPYLIST"
	tarcopy "$(cat "$COPYLIST")" "${MODULE_BUILD_DIR}"

	# build pam-script separatly since we use a source tarball

	# HACK: find pam_unix.so in MODULE_BUILD_DIR to see where to put pam_script at
	cd "${MODULE_DIR}/src/pam-script-${REQUIRED_PAM_SCRIPT_VERSION}" || perror "Could not cd to ${MODULE_DIR}/src/pam-script-${REQUIRED_PAM_SCRIPT_VERSION}."
	./configure --prefix=/ --sysconfdir=/etc/pam-script --libdir="$SYS_PAM_MODULES_PATH" || perror "pam-script: ./configure failed."
	make DESTDIR="${MODULE_BUILD_DIR}" install || perror "pam-script: make install to ${MODULE_BUILD_DIR} failed."


	# openSuse 13.1 has no package nss-pam-ldapd. So, we compile it.
	if [ -n "$REQUIRED_NSS_LDAPD_URL" ]; then
		cd "${MODULE_DIR}/src/$REQUIRED_NSS_LDAPD_VERSION"
		pinfo "compiling pam-nss-ldapd for openSuse 13.1 ..."
		./configure || perror "openSuse 13.1 - pam-nss-ldapd: ./configure failed."
		make DESTDIR="${MODULE_BUILD_DIR}" install || perror "openSuse 13.1 - pam-nss-ldapd: make install to ${MODULE_BUILD_DIR} failed."
		cd "$MODULE_BUILD_DIR"
		local NSLCD_PATH=$(find . -executable -name "nslcd")	# Not in path, so we 'find' below MODULE_BUILD_DIR
	else
		cd "$MODULE_BUILD_DIR"
		local NSLCD_PATH=$(which nslcd)
	fi
	[[ $REQUIRED_BINARIES = *nslcd* ]] && [ -z "$NSLCD_PATH" ] && perror "Could not 'which nslcd'"
	# Build nslcd service file
	mkdir -p "etc/systemd/system"
	sed "s,%PATH%,$NSLCD_PATH,g" "$MODULE_DIR/templates/nslcd-systemd.service" > "etc/systemd/system/nslcd.service" || perror "Could not fill nslcd.service template"
}

post_copy() {
	:
}