summaryrefslogtreecommitdiffstats
path: root/modules.d/busybox/module-setup.sh
blob: 99e7574d8444659a003ad704ebddc271de3d8d91 (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
#!/bin/bash
[ -z "$BB_GIT" ]    && declare -rg BB_GIT="git://git.busybox.net/busybox"
[ -z "$BB_BRANCH" ] && declare -rg BB_BRANCH="1_31_1"

build() (
	local base_url="https://git.openslx.org/openslx-ng/mltk.git/plain/core/modules/busybox/"
	set -e
	git clone --depth 1 "$BB_GIT" --branch "$BB_BRANCH" "${moddir}/src"
	# apply patches
	cd "${moddir}/src"
	for _patch in "$base_url"/{fbsplash-fillbg,1_31_1-stime,rtcwake-compat,timeout-compat}.patch ; do
		curl "$_patch" | git apply - || derror "Failed to apply: $_patch"
	done
	cp "${moddir}/openslx.config" "${moddir}/src/.config"
	yes '' | make oldconfig
	make -j busybox
	cd - &> /dev/null
)

check() {
	if ! [ -x "${moddir}/src/busybox" ] && ! build; then
		derror "Failed to build busybox."
		kill $$
		return 1
	fi
	return 255
}

depends() {
	echo ""
}

install() {
	if [ ! -s "${moddir}/src/busybox" ]; then
		derror "Failed to find busybox binary in build directory!"
		return 1
	fi
	inst "${moddir}/src/busybox" "/bin/busybox"
	for _name in "s3-install-busybox" "s3-install-busybox-stage4"; do
		inst "$moddir/hooks/${_name}.sh" \
				"/usr/local/bin/${_name}.sh"
		inst_simple "${moddir}/services/${_name}.service" \
				"${systemdsystemunitdir}/${_name}.service"
		mkdir --parents \
				"${initdir}/${systemdsystemunitdir}/initrd.target.requires"
		ln_r "${systemdsystemunitdir}/${_name}.service" \
				"${systemdsystemunitdir}/initrd.target.requires/${_name}.service"
	done
}