# Maintainer: Moses Narrow # Maintainer: Rudi [KittyCash] pkgname=skywire-bin _pkgname=${pkgname/-bin/} _githuborg=skycoin pkgdesc="Skywire: Decentralize the web. Skycoin.com. Debian package" pkgver='1.1.0' _rc='-pr1' _pkgver="${pkgver}${_rc}" _tag_ver="v${_pkgver}" pkgrel=1 _pkgrel=${pkgrel} _pkggopath="github.com/${_githuborg}/${_pkgname}" _pkgarch=$(dpkg --print-architecture) _pkgarches=('amd64' 'arm64' 'armhf' 'armel') arch=('any') url="https://${_pkggopath}" makedepends=('dpkg') depends=() _debdeps="" #_debdeps="" #_scripts="skywire-scripts" _binarchive=("${_pkgname}-${_tag_ver}-linux") _release_url=("${url}/releases/download/${_tag_ver}/${_binarchive}") source=( "${_release_url}-amd64.tar.gz" "${_release_url}-arm64.tar.gz" "${_release_url}-armhf.tar.gz" "${_release_url}-arm.tar.gz" "skywire-autoconfig" "com.skywire.Skywire.desktop" "com.skywirevpn.SkywireVPN.desktop" "skywirevpn.png" "skywire.png" "skywire.service" "skywire-autoconfig.service" "postinst.sh" "prerm.sh" ) noextract=( "${_binarchive}-amd64.tar.gz" "${_binarchive}-arm64.tar.gz" "${_binarchive}armhf.tar.gz" "${_release_url}-arm.tar.gz" ) sha256sums=('ac9acfdbde9a7e09c451ef167dbebb298b887a883b25299bf0be8e8aede6c6dc' '128fa08dbc6e4e4e8bee09d5353cc7ecdfd1a7e894373a7a2148a77a930ec542' '29bf8938d7f8c4d01ced62cc9c83fa67e4414e8c783aef254af8a53e0d130864' '71860d197771141fcf13533a117eee31381861642f1a86236a59f60af7b988e6' '57eeac39adb3d801ca0cac5c069fdc14add4e9c182569b58fcc4d41aac8efec4' 'f0300bcde06b6818b637ccc23fa8206a40e67f63815781d265bd10d2cda93e65' 'e6ea2c7471bcf5bc83e8fd831c047ba61b98eab58ca7c055475714dcf6066539' 'ec24750a99f5cda8d8a8dc94743943218e1b2088c2b2c7dc1644ee78d954fe7e' 'a6941680b5858ca3e0c85d9bf5824455a0c95524b61e42352462f2abbb750495' 'c8d9f7394763997bb3917c55dd288d431d7054c7f1edec55540a4c02600dd7d3' '55293e05c5d6c877397eb4c52123bb02e8bc92aeaf663ba70e1cfab318ce727c' '7b17a55e64d1371fecd24edc3da7c6a762cf2b3d058f6fc4a5dc7c5f9b4cff09' '233ccf0e87b37e782828f53960e05e478cf381f61bbfdb16a0cc0254ee8be7c2') build() { _msg2 'creating the DEBIAN/control files' for i in ${_pkgarches[@]}; do _msg2 "_pkgarch=$i" local _pkgarch=$i #create control file for the debian package 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 "Depends: ${_debdeps}" >> ${srcdir}/${_pkgarch}.control echo "Provides: ${_pkgname}" >> ${srcdir}/${_pkgarch}.control echo "Maintainer: ${_githuborg}" >> ${srcdir}/${_pkgarch}.control echo "Description: ${pkgdesc}" >> ${srcdir}/${_pkgarch}.control done } package() { for i in ${_pkgarches[@]}; do _msg2 "_pkgarch=${i}" local _pkgarch=${i} local _pkgarch1=${_pkgarch} if [[ ${_pkgarch} == "armel" || ${_pkgarch} == "armhf" ]] ; then local _pkgarch1=arm fi local _binaryarchive="${_pkgname}-${_tag_ver}-linux-${_pkgarch1}.tar.gz" [[ -f ${srcdir}/${_pkgname}-visor ]] && rm -rf ${srcdir}/${_pkgname}-visor [[ -f ${srcdir}/${_pkgname}-cli ]] && rm -rf ${srcdir}/${_pkgname}-cli [[ -d ${srcdir}/apps ]] && rm -rf ${srcdir}/apps [[ -d ${pkgdir}/test ]] && rm -rf ${pkgdir}/test mkdir -p ${pkgdir}/test && cd ${pkgdir}/test tar -xf ${srcdir}/${_binaryarchive} _msg2 'creating dirs' #set up to create a .deb package _debpkgdir="${pkgname}-${pkgver}-${pkgrel}-${_pkgarch}" _pkgdir="${pkgdir}/${_debpkgdir}" _skydir="opt/skywire" _skyapps="${_skydir}/apps" _skyscripts="${_skydir}/scripts" _systemddir="etc/systemd/system" _skybin="${_skydir}/bin" [[ -d ${_pkgdir} ]] && rm -rf ${_pkgdir} mkdir -p ${_pkgdir}/usr/bin mkdir -p ${_pkgdir}/${_skydir}/bin mkdir -p ${_pkgdir}/${_skydir}/apps mkdir -p ${_pkgdir}/${_skydir}/local mkdir -p ${_pkgdir}/${_skydir}/scripts mkdir -p ${_pkgdir}/${_systemddir} cd $_pkgdir _msg2 'installing binaries' install -Dm755 ${pkgdir}/test/${_pkgname}-cli ${_pkgdir}/${_skybin}/ install -Dm755 ${pkgdir}/test/${_pkgname}-visor ${_pkgdir}/${_skybin}/ for _i in ${_pkgdir}/${_skybin}/* ; do ln -rTsf ${_i} ${_pkgdir}/usr/bin/${_i##*/} done _msg2 'installing app binaries' _apps=${pkgdir}/test/apps install -Dm755 ${_apps}/* ${_pkgdir}/${_skyapps}/ for _i in ${_pkgdir}/${_skyapps}/* ; do ln -rTsf ${_i} ${_pkgdir}/usr/bin/${_i##*/} done _msg2 'Installing scripts' install -Dm755 ${srcdir}/skywire-autoconfig ${_pkgdir}/${_skyscripts}/ ln -rTsf ${_pkgdir}/${_skyscripts}/skywire-autoconfig ${_pkgdir}/usr/bin/skywire-autoconfig _msg2 'Correcting symlink names' ln -rTsf ${_pkgdir}/${_skybin}/${_pkgname}-visor ${_pkgdir}/usr/bin/${_pkgname} #make sure everything is executable chmod +x ${_pkgdir}/usr/bin/* _msg2 'installing dmsghttp-config.json' install -Dm644 ${pkgdir}/test/dmsghttp-config.json ${_pkgdir}/${_skydir}/dmsghttp-config.json _msg2 'installing systemd services' install -Dm644 ${srcdir}/*.service ${_pkgdir}/${_systemddir}/ _msg2 'installing desktop files and icons' mkdir -p ${_pkgdir}/usr/share/applications/ ${_pkgdir}/usr/share/icons/hicolor/48x48/apps/ install -Dm644 ${srcdir}/*.desktop ${_pkgdir}/usr/share/applications/ install -Dm644 ${srcdir}/*.png ${_pkgdir}/usr/share/icons/hicolor/48x48/apps/ _msg2 'installing control file and install scripts' install -Dm755 ${srcdir}/${_pkgarch}.control ${_pkgdir}/DEBIAN/control #install -Dm755 ${srcdir}/${_scripts}/preinst.sh ${_pkgdir}/DEBIAN/preinst install -Dm755 ${srcdir}/postinst.sh ${_pkgdir}/DEBIAN/postinst install -Dm755 ${srcdir}/prerm.sh ${_pkgdir}/DEBIAN/prerm #install -Dm755 ${srcdir}/${_scripts}/postrm.sh ${_pkgdir}/DEBIAN/postrm _msg2 'creating the debian package' #create the debian package! cd $pkgdir dpkg-deb --build -z9 ${_debpkgdir} mv *.deb ../../ done #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" "$@" }