blob: 3634b852075d66d5fe04ee7070279a8b6e6a19f7 (
plain)
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
|
source PKGBUILD #sets version only
pkgname=skyrepo
_pkgname=skyrepo
_skyrepourl="http://deb.skywire.skycoin.com"
_skyrepokeyid="48F19E5157BE6014D80A47328D6D51BC4AD7AE64"
pkgdesc="Skycoin apt repo configuration ${_skyrepourl} & repo signing key - debian package"
#pkgver='1.3.11'
_pkgver=${pkgver}
_pkgrel=${pkgrel}
arch=( 'any' )
_pkgarches=('amd64' 'arm64' 'armhf' 'armel')
_pkgpath="github.com/skycoin/${_pkgname}"
url="https://${_pkgpath}"
makedepends=('dpkg')
depends=()
_debdeps=""
unset source
unset source_x86_64
unset source_aarch64
unset source_armv8
unset source_arm
unset source_armv7
unset source_armv7l
unset source_armv7h
unset sha256sums
unset sha256sums_x86_64
unset sha256sums_aarch64
unset sha256sums_armv8
unset sha256sums_armv7
unset sha256sums_armv7l
unset sha256sums_armv7h
unset sha256sums_arm
build() {
#create the apt repo config
echo "deb ${_skyrepourl} sid main
# deb-src ${_skyrepourl} sid main" | tee ${srcdir}/skycoin.list
#create the pubkey file
gpg --export ${_skyrepokeyid} | tee ${srcdir}/skycoin.gpg
#create the update script
echo "#!/bin/bash
apt update -o Dir::Etc::sourcelist=/etc/apt/sources.list.d/skycoin.list && apt -qq --yes reinstall skywire-bin && systemctl is-active --quiet install-skywire && systemctl disable install-skywire 2> /dev/null" | tee ${srcdir}/install-skywire.sh
#create the update service
echo "[Unit]
Description=install skywire service
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/bin/install-skywire
[Install]
WantedBy=multi-user.target
" | tee ${srcdir}/install-skywire.service
echo '#!/bin/bash
##/usr/bin/skywire-chrootconfig
#called by the postinstall script of the skyrepo .deb package
#################################################################
#meant to run when the skyrepo package is installed in chroot
if [[ $INSTALLFIRSTBOOT == "1" ]] ; then
if [[ -f /etc/systemd/system/install-skywire.service ]] ; then
systemctl enable install-skywire.service
fi
fi
# create envfile
if [[ ! -f /etc/profile.d/skyenv.sh && -d /etc/profile.d ]] ; then
touch /etc/profile.d/skyenv.sh
fi
# SKYBIAN=true enables autostart of skywire via skywire-autoconfig - on ARM architectures
if [[ $(cat /etc/profile.d/skyenv.sh | grep SKYBIAN ) != *"SKYBIAN"* ]] ; then
if [[ $(dpkg --print-architecture) == *"amd64"* ]] ; then
echo "#SKYBIAN=true" | tee -a /etc/profile.d/skyenv.sh
else
echo "SKYBIAN=true" | tee -a /etc/profile.d/skyenv.sh
fi
fi
# VPNSERVER=1 enables autostart of the vpn server - on ARM architectures
if [[ $(cat /etc/profile.d/skyenv.sh | grep VPNSERVER ) != *"VPNSERVER"* ]] ; then
if [[ $(dpkg --print-architecture) == *"amd64"* ]] ; then
echo "#export VPNSERVER=1" | tee -a /etc/profile.d/skyenv.sh
else
echo "export VPNSERVER=1" | tee -a /etc/profile.d/skyenv.sh
fi
fi
' | tee ${srcdir}/skywire-chrootconfig.sh
#create the postinstall script
echo '#!/bin/bash
#skybian post install script ; executed by dpkg upon package installation or updates
/usr/bin/skywire-chrootconfig
' | tee ${srcdir}/postinst.sh
#create the DEBIAN/control files
for _i in ${_pkgarches[@]}; do
_msg2 "_pkgarch=${_i}"
local _pkgarch=${_i}
_msg2 "Creating DEBIAN/control file for ${_pkgarch}"
echo "Package: ${_pkgname}" > ${srcdir}/${_pkgarch}.control
echo "Version: ${_pkgver}-${_pkgrel}" >> ${srcdir}/${_pkgarch}.control
echo "Priority: optional" >> ${srcdir}/${_pkgarch}.control
echo "Section: web" >> ${srcdir}/${_pkgarch}.control
echo "Architecture: ${_pkgarch}" >> ${srcdir}/${_pkgarch}.control
echo "Replaces: skybian" >> ${srcdir}/${_pkgarch}.control
echo "Depends: ${_debdeps}" >> ${srcdir}/${_pkgarch}.control
echo "Maintainer: Skycoin" >> ${srcdir}/${_pkgarch}.control
echo "Description: ${pkgdesc}" >> ${srcdir}/${_pkgarch}.control
cat ${srcdir}/${_pkgarch}.control
done
}
package() {
for _i in ${_pkgarches[@]}; do
_msg2 "_pkgarch=${_i}"
local _pkgarch=${_i}
echo ${_pkgarch}
#set up to create a .deb package with dpkg
_debpkgdir="${_pkgname}-${pkgver}-${_pkgrel}-${_pkgarch}"
_pkgdir="${pkgdir}/${_debpkgdir}"
#########################################################################
#package normally here using ${_pkgdir} instead of ${pkgdir}
_msg2 "Creating dirs"
mkdir -p ${_pkgdir}/etc/apt/sources.list.d/
mkdir -p ${_pkgdir}/etc/apt/trusted.gpg.d/
mkdir -p ${_pkgdir}/usr/bin/
mkdir -p ${_pkgdir}/etc/systemd/system/
_msg2 "Installing install-skywire.sh skywire installation script"
install -Dm755 ${srcdir}/install-skywire.sh ${_pkgdir}/usr/bin/install-skywire
_msg2 "Installing install-skywire.service service for install-skywire.sh"
install -Dm644 ${srcdir}/install-skywire.service ${_pkgdir}/etc/systemd/system/install-skywire.service
_msg2 "Installing skywire-chrootconfig" #called by postinstall
install -Dm755 ${srcdir}/skywire-chrootconfig.sh ${_pkgdir}/usr/bin/skywire-chrootconfig
_msg2 "Installing apt repository configuration to:\n /etc/apt/sources.list.d/skycoin.list"
install -Dm644 ${srcdir}/skycoin.list ${_pkgdir}/etc/apt/sources.list.d/skycoin.list
_msg2 "Installing apt repository signing key to:\n /etc/apt/trusted.gpg.d/skycoin.gpg"
install -Dm644 ${srcdir}/skycoin.gpg ${_pkgdir}/etc/apt/trusted.gpg.d/skycoin.gpg
#########################################################################
_msg2 'Installing control file and postinst script'
install -Dm755 ${srcdir}/${_pkgarch}.control ${_pkgdir}/DEBIAN/control
install -Dm755 ${srcdir}/postinst.sh ${_pkgdir}/DEBIAN/postinst
_msg2 'Creating the debian package'
cd $pkgdir
if command -v tree &> /dev/null ; then
_msg2 'package tree'
tree -a ${_debpkgdir}
fi
dpkg-deb --build -z9 ${_debpkgdir}
mv *.deb ../../
done
#clean up manually just in case
rm -rf ${srcdir}
#exit so the arch package doesn't get built
exit
}
_msg2() {
(( QUIET )) && return
local mesg=$1; shift
printf "${BLUE} ->${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@"
}
|