summaryrefslogtreecommitdiff
path: root/user/horizon/APKBUILD
blob: 92ec869e5a131ffc41e3cff530ad1e419a7fc361 (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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# Contributor: A. Wilcox <awilfox@adelielinux.org>
# Maintainer: A. Wilcox <awilfox@adelielinux.org>
pkgname=horizon
pkgver=0.9.7
pkgrel=0
pkgdesc="Installation tools for Adélie Linux"
url="https://horizon.adelielinux.org/"
arch="all"
options="!archcheck !check"  # Unpackaged dependency ruby-aruba.
license="AGPL-3.0+"
depends=""
checkdepends="ruby-aruba ruby-rspec valgrind"
# Second group is the Qt5 UI deps.
makedepends="bcnm-dev boost-dev cmake curl-dev eudev-dev libarchive-dev
	linux-headers parted-dev skalibs-dev util-linux-dev

	libcap-dev libx11-dev libxkbfile-dev qt5-qtbase-dev"
subpackages="$pkgname-image $pkgname-dbg $pkgname-dev $pkgname-doc $pkgname-qt5
	$pkgname-tools $pkgname-wizard $pkgname-boot"
source="https://distfiles.adelielinux.org/source/horizon-$pkgver.tar.xz"

build() {
	if [ "$CBUILD" != "$CHOST" ]; then
		CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
	fi
	cmake \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DBUILD_SHARED_LIBS=True \
		-DBUILD_TOOLS=ON \
		-DCMAKE_BUILD_TYPE=RelWithDebugInfo \
		-DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-format-truncation" \
		-DCMAKE_C_FLAGS="$CFLAGS" \
		-DUNSUPPORTED_NONFREE_FIRMWARE=ON \
		-DINSTALL=ON \
		${CMAKE_CROSSOPTS} \
		-Bbuild
	make -C build

	cmake \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DBUILD_SHARED_LIBS=False \
		-DBUILD_TOOLS=OFF \
		-DBUILD_UI=ON \
		-DCMAKE_BUILD_TYPE=RelWithDebugInfo \
		-DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-format-truncation" \
		-DCMAKE_C_FLAGS="$CFLAGS" \
		-DUNSUPPORTED_NONFREE_FIRMWARE=ON \
		-DINSTALL=OFF \
		${CMAKE_CROSSOPTS} \
		-Bbuild-wizard
	make -C build-wizard
}

check() {
	CTEST_OUTPUT_ON_FAILURE=TRUE make -C build test
}

package() {
	make DESTDIR="$pkgdir" -C build install
}

image() {
	pkgdesc="Tools for generating images using HorizonScript"
	depends="dracut mtools"
	mkdir -p "$subpkgdir"/usr/bin
	mkdir -p "$subpkgdir"/usr/lib
	mkdir -p "$subpkgdir"/usr/share/horizon

	mv "$pkgdir"/usr/bin/hscript-image "$subpkgdir"/usr/bin/
	mv "$pkgdir"/usr/lib/libhi-backends.so "$subpkgdir"/usr/lib/
	mv "$pkgdir"/usr/share/horizon/iso "$subpkgdir"/usr/share/horizon/
}

qt5() {
	pkgdesc="Qt 5 installation wizard for Adélie Linux"
	depends="horizon"
	mkdir -p "$subpkgdir"/etc/horizon
	mkdir -p "$subpkgdir"/usr/bin
	mkdir -p "$subpkgdir"/var/log/horizon

	for _bin in horizon-ppc64-detect horizon-qt5 horizon-run-qt5; do
		mv "$pkgdir"/usr/bin/$_bin "$subpkgdir"/usr/bin/
	done
}

tools() {
	pkgdesc="Tools for authoring HorizonScript files"
	mkdir -p "$subpkgdir"/usr/bin

	for _bin in hscript-fromjson hscript-simulate hscript-validate; do
		mv "$pkgdir"/usr/bin/$_bin "$subpkgdir"/usr/bin/
	done
}

wizard() {
	pkgdesc="Wizard to generate a HorizonScript for another computer"

	make DESTDIR="$subpkgdir" -C "$builddir"/build-wizard install
	rm -r "$subpkgdir"/usr/include
	rm -r "$subpkgdir"/usr/lib
	rm -r "$subpkgdir"/usr/share
}

boot() {
	pkgdesc="Boot to Horizon"
	depends="horizon-qt5 horizon kwin qt5ct sddm
	netsurf partitionmanager xterm"

	mkdir -p "$subpkgdir"/etc/init.d
	mkdir -p "$subpkgdir"/etc/profile.d
	mkdir -p "$subpkgdir"/etc/runlevels/default
	mkdir -p "$subpkgdir"/etc/sddm.conf.d
	mkdir -p "$subpkgdir"/etc/xdg/qt5ct
	mkdir -p "$subpkgdir"/usr/bin
	mkdir -p "$subpkgdir"/usr/share/qt5ct/qss
	mkdir -p "$subpkgdir"/usr/share/xsessions

	cat >"$subpkgdir"/etc/profile.d/horizon-qt5.sh <<PROFILE
#!/bin/sh
export QT_QUICK_BACKEND=software
export QT_QPA_PLATFORMTHEME=qt5ct
PROFILE
	chmod 755 "$subpkgdir"/etc/profile.d/horizon-qt5.sh
	cat >"$subpkgdir"/etc/xdg/kdeglobals <<GLOBALS
[General]
ColorScheme=Steel
           
[Icons]
Theme=Papirus

[WM]
activeBackground=104,0,0
GLOBALS

	install -D -m644 "$builddir"/boot/horizon.sddm.conf \
		"$subpkgdir"/etc/sddm.conf.d/horizon.conf

	install -D -m755 "$builddir"/boot/gfxdetect \
		"$subpkgdir"/etc/init.d/gfxdetect

	ln -s ../../init.d/gfxdetect \
		"$subpkgdir"/etc/runlevels/default/gfxdetect

	install -D -m755 "$builddir"/boot/start-horizon-qt5 \
		"$subpkgdir"/usr/bin/start-horizon-qt5

	install -D -m644 "$builddir"/boot/kwinrc \
		"$subpkgdir"/etc/xdg/kwinrc

	install -D -m644 "$builddir"/boot/qt5ct.conf \
		"$subpkgdir"/etc/xdg/qt5ct/qt5ct.conf
	install -D -m644 "$builddir"/boot/horizon.qss \
		"$subpkgdir"/usr/share/qt5ct/qss/horizon.qss

	install -D -m644 "$builddir"/boot/horizon-session.desktop \
		"$subpkgdir"/usr/share/xsessions/horizon.desktop
}

sha512sums="e25238cb6a9610088840277d1497841ac7e2dc68912784ee12e9321ba7f5f27d9621d4cc26af910ba048d8a9a0460910dbb36fd21c35db64833f525a25a3fa56  horizon-0.9.7.tar.xz"