# 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.0' _rc='-rc6' _pkgver="${pkgver}${_rc}" _tag_ver="v${_pkgver}" pkgrel=6 _pkgrel=${pkgrel} _pkggopath="github.com/${_githuborg}/${_pkgname}" _pkgarch=$(dpkg --print-architecture) _pkgarches=('armhf' 'arm64' 'amd64') arch=('any') url="https://${_pkggopath}" makedepends=('dpkg') # 'git' 'go' 'musl' 'kernel-headers-musl' 'aarch64-linux-musl' 'arm-linux-gnueabihf-musl') #'aarch64-linux-musl' 'arm-linux-gnueabihf-musl' 'skycoin-keyring') depends=() _debdeps="" #_debdeps="" _scripts="skywire-scripts" _binarchive=("${_pkgname}-${_tag_ver}-linux") _release_url=("${url}/releases/download/${_tag_ver}/${_binarchive}") source=( "${_scripts}.tar.gz" "${_release_url}-amd64.tar.gz" "${_release_url}-arm64.tar.gz" "${_release_url}-armhf.tar.gz" ) noextract=( "${_binarchive}-amd64.tar.gz" "${_binarchive}-arm64.tar.gz" "${_binarchive}armhf.tar.gz" ) sha256sums=('214f2335a95880d1a82513b3db2df665391bea3dd34933c78e60be6f9e2576ea' 'cd9bd3794b19a8af4ba93ba57f35c3e291689f924d39cf40067e652f8e5d0d03' '035294fa4df15c846ec374145a04997928d837d37bdee23cf771dca04258b4e7' 'b43bf38c31c20f70031de6b4f2f764343d5535972a766b857f3e9a3a9fc19661') 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} == "armhf" ]] ; then local _pkgarch1=armhf 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 cd $_pkgdir _msg2 'installing binaries' install -Dm755 ${pkgdir}/test/skywire-visor ${_pkgdir}/${_skybin}/ ln -rTsf ${_pkgdir}/${_skybin}/skywire-visor ${_pkgdir}/usr/bin/skywire-visor install -Dm755 ${pkgdir}/test/skywire-cli ${_pkgdir}/${_skybin}/ ln -rTsf ${_pkgdir}/${_skybin}/skywire-cli ${_pkgdir}/usr/bin/skywire-cli _msg2 'installing app binaries' _apps=${pkgdir}/test/apps install -Dm755 ${_apps}/skychat ${_pkgdir}/${_skyapps}/ ln -rTsf ${_pkgdir}/${_skyapps}/skychat ${_pkgdir}/usr/bin/skychat install -Dm755 ${_apps}/skysocks ${_pkgdir}/${_skyapps}/ ln -rTsf ${_pkgdir}/${_skyapps}/skysocks ${_pkgdir}/usr/bin/skysocks install -Dm755 ${_apps}/skysocks-client ${_pkgdir}/${_skyapps}/ ln -rTsf ${_pkgdir}/${_skyapps}/skysocks-client ${_pkgdir}/usr/bin/skysocks-client install -Dm4755 ${_apps}/vpn-client ${_pkgdir}/${_skyapps}/ ln -rTsf ${_pkgdir}/${_skyapps}/vpn-client ${_pkgdir}/usr/bin/vpn-client install -Dm4755 ${_apps}/vpn-server ${_pkgdir}/${_skyapps}/ ln -rTsf ${_pkgdir}/${_skyapps}/vpn-server ${_pkgdir}/usr/bin/vpn-server _msg2 'installing scripts' _scripts1=${srcdir}/${_scripts}/${_pkgname} _skywirescripts=$( ls "${_scripts1}" ) for i in ${_skywirescripts}; do _install2 ${_scripts1}/${i} ${_skyscripts} done _msg2 'Correcting symlink names' ln -rTsf ${_pkgdir}/${_skybin}/${_pkgname}-visor ${_pkgdir}/usr/bin/${_pkgname} #make sure everything is executable chmod +x ${_pkgdir}/usr/bin/* #install dmsghttp-config.json install -Dm644 ${pkgdir}/test/dmsghttp-config.json ${_pkgdir}/${_skydir}/dmsghttp-config.json _msg2 'installing systemd services' install -Dm644 ${srcdir}/${_scripts}/systemd/${_pkgname}.service ${_pkgdir}/${_systemddir}/${_pkgname}.service install -Dm644 ${srcdir}/${_scripts}/systemd/${_pkgname}-visor.service ${_pkgdir}/${_systemddir}/${_pkgname}-visor.service #this is to overwrites any previous file not provided by this package install -Dm644 ${srcdir}/${_scripts}/systemd/${_pkgname}.service ${_pkgdir}/${_systemddir}/${_pkgname}-hypervisor.service install -Dm644 ${srcdir}/${_scripts}/systemd/${_pkgname}-autoconfig.service ${_pkgdir}/${_systemddir}/${_pkgname}-autoconfig.service #desktop integration install -Dm644 "${srcdir}"/${_scripts}/desktop/com.skywire.Skywire.desktop ${_pkgdir}/usr/share/applications/com.skywire.Skywire.desktop install -Dm644 "${srcdir}"/${_scripts}/desktop/com.skywirevpn.SkywireVPN.desktop ${_pkgdir}/usr/share/applications/com.skywirevpn.SkywireVPN.desktop install -Dm644 "${srcdir}"/${_scripts}/desktop/skywire.png ${_pkgdir}/usr/share/icons/hicolor/48x48/apps/skywire.png install -Dm644 "${srcdir}"/${_scripts}/desktop/skywirevpn.png ${_pkgdir}/usr/share/icons/hicolor/48x48/apps/skywirevpn.png _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}/${_scripts}/postinst.sh ${_pkgdir}/DEBIAN/postinst install -Dm755 ${srcdir}/${_scripts}/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 } _install2() { _binname="${1##*/}" _binname="${_binname%%.*}" install -Dm755 ${1} ${_pkgdir}/${2}/${_binname} ln -rTsf ${_pkgdir}/${2}/${_binname} ${_pkgdir}/usr/bin/${_binname} } _msg2() { (( QUIET )) && return local mesg=$1; shift printf "${BLUE} ->${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" } _msg3() { (( QUIET )) && return local mesg=$1; shift printf "${BLUE} -->${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" }