summaryrefslogblamecommitdiffstats
path: root/core/modules/systemd/module.build
blob: 0e48342418408f67384592b8cd43fa1e11e4f26f (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
           











                                                                                        


                                                                                                                                                                     
                    
                                                                                                  

                  

                                                                                           
                                                                                                                                                                                     

                                                                                                   
                                                               
















                                                                                        

                                                                                     



























                                                                                                              









                                       












                                                                                   


                                                                             








                                                    

                                         

 
#!/bin/bash
#tool/distro specific functions for fetching, building and installing dependencies

fetch_source () {
	# systemd
	download_untar "$REQUIRED_URL" "src/"

	# starting with systemd 212 a new way of setting global environment is supported
	# meaning we don't have to apply the patch needed til that version.
	# patch src/core/socket.c if activated in the config file
	if [ "x$REQUIRED_XATTR_PATCH" = "xyes" ]; then
		pinfo "Patching 'src/core/socket.c' ..."
		# patch it
		if [ -e "src/systemd-$REQUIRED_VERSION/src/core/socket.c" ]; then
			sed -i 's/^#include <attr\/xattr.h>$/#include <sys\/xattr.h>\n#include <attr\/xattr.h>/g' "src/systemd-$REQUIRED_VERSION/src/core/socket.c" \
				|| perror "Could not patch 'src/systemd-$REQUIRED_VERSION/src/core/socket.c'"
		else
			perror "'src/systemd-$REQUIRED_VERSION/src/core/socket.c' does not exist."
		fi
	fi
	# now check if the a fix needs to be applied
	if  [ -e "${MODULE_DIR}/systemd-openslx-${REQUIRED_VERSION#systemd-}.patch" ]; then
		patch -p0 src/systemd-*/src/basic/path-util.h < "${MODULE_DIR}/systemd-openslx-${REQUIRED_VERSION#systemd-}.patch" || perror "Failed to apply openslx systemd patch."
	else
		# TODO use the above hint for setting environmenet through /etc/systemd/system.conf
		pwarning "OpenSLX patch for systemd missing..."
	fi

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

build () {
	#build libkmod
	pinfo "Building libkmod"
	cd "${MODULE_WORK_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_WORK_DIR}/src/systemd-$REQUIRED_VERSION"
	pinfo "calling configure in ${MODULE_WORK_DIR}/src/systemd-$REQUIRED_VERSION"

	# 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"

	[ ! -e "./configure" ] && ./autogen.sh

	./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 \
		--disable-hwdb \
		--disable-ldconfig \
		--disable-networkd \
		--disable-resolved \
		--disable-timesyncd \
		--disable-importd \
		--disable-rfkill \
		--disable-backlight \
		--disable-firstboot \
		--disable-nss-systemd \
		--without-python \
		--enable-blkid \
		--enable-acl \
		--enable-pam \
		--enable-kmod \
		--with-pamlibdir="$SYS_PAM_MODULES_PATH" \
			|| 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
	# Nonsense in our env
	rm -f -- "${MODULE_BUILD_DIR}/usr/lib/tmpfiles.d/etc.conf"
	rm -f -- "${MODULE_BUILD_DIR}/usr/lib/tmpfiles.d/systemd-remote.conf"

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

post_copy() {
	add_user "kvm"
	add_user "systemd-journal-upload"
}