# 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.0.1' _rc='' _pkgver="${pkgver}${_rc}" _tag_ver="v${_pkgver}" pkgrel=4 _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=('6cbbadb07ca6668dc04a91565b08e590e844422a28a813f1bb76a184b422432e' '61dc18d71d766e707ccbdc9c0f5b0bbf0a992e6acdc0c53c1c9cba6ecc85f601' '1633c917e1468de0295d7d3b30059156f194e18722578cb90fd49cd683a7f5d0' '6182f947e66a41c6793addd08ab8cc00fa09c132001e13f05e8f11464987c7ea' 'ac16dfee9ed4870ef4afc977211d1c47c36ee182c8511d41a940cdd98c483f4d' '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" "$@" }