diff options
Diffstat (limited to 'deb.PKGBUILD')
-rw-r--r-- | deb.PKGBUILD | 218 |
1 files changed, 218 insertions, 0 deletions
diff --git a/deb.PKGBUILD b/deb.PKGBUILD new file mode 100644 index 000000000000..b897b9e837c3 --- /dev/null +++ b/deb.PKGBUILD @@ -0,0 +1,218 @@ +# Maintainer: Moses Narrow <moe_narrow@use.startmail.com> +# Maintainer: Rudi [KittyCash] <rudi@skycoinmail.com> +_projectname=skycoin +pkgname=skywire +_pkgname=${pkgname} +_githuborg=${_projectname} +pkgdesc="Skywire Mainnet Node implementation. Develop Banch. Debian package" +#Uncoment to select architecture - not working currently +#_pkgarch=amd64 +#_pkgarch=arm64 +#_pkgarch=armhf +#set to native architecture with dpkg +_pkgarch=$(dpkg --print-architecture) +#leave arch package as any +arch=('any') +_pkgver='0.3.0' +_tag_ver='v0.3.0' +pkgver=0.3.0 +#pkgver='autogenerated' +pkgrel=1 +#pkgrel=2 +_pkggopath="github.com/${_githuborg}/${_pkgname}" +url="https://${_pkggopath}" +license=() +makedepends=(dpkg git go skycoin-keyring) +depends=() +_debdeps="reprepro" +#_debdeps="" +_scripts="skywire-deb-scripts" +source=("git+${url}.git#branch=${BRANCH:-develop}" +"${_scripts}.tar.gz" +'deb.PKGBUILD.sig' +'deb.PKGBUILD') +sha256sums=('SKIP' + '61122b39103760f4543b8a4c3da1ce695333ff4915cf76199ba8fb337cb13774' + 'SKIP' + 'e58d1f3cdace9330ca821275e48eb2b9a35bf871db23c2d843e8bbeca82be35f') +#tar -czvf skywire-deb-scripts.tar.gz skywire-deb-scripts +#updpkgsums deb.PKGBUILD + +## BINARY CROSS COMPILATION IS NOT WORKING - REASONS UNKNOWN ## +#[[ $_pkgarch == "amd64" ]] && _buildwith=(env GOOS=linux GOARCH=amd64) +#[[ $_pkgarch == "arm64" ]] && _buildwith=(env GOOS=linux GOARCH=arm64) +#[[ $_pkgarch == "armhf" ]] && _buildwith=(env GOOS=linux GOARCH=arm GOARM=6) + + +pkgver() { + #cd "${srcdir}/${_pkgname}" + #local _version=$(git describe --abbrev=0 | tr --delete v) + #local _version=${_version//-/_} + #local _date=$(git log -1 --format="%cd" --date=short | sed s/-//g) + #local _count=$(git rev-list --count HEAD) + #local _commit=$(git rev-parse --short HEAD) + #echo "${_pkgver}_${_date}.${_count}_${_commit}_${BRANCH:-develop}" + echo "${_pkgver}" +} + +prepare() { + #verify PKGBUILD signature + gpg --verify ${srcdir}/deb.PKGBUILD.sig ${srcdir}/deb.PKGBUILD + + # https://wiki.archlinux.org/index.php/Go_package_guidelines + mkdir -p ${srcdir}/go/src/github.com/${_githuborg}/ ${srcdir}/go/bin.${_pkgarch} ${srcdir}/go/apps.${_pkgarch} + ln -rTsf ${srcdir}/${_pkgname} ${srcdir}/go/src/${_pkggopath} + cd ${srcdir}/go/src/${_pkggopath}/ +} + +build() { + export GOPATH=${srcdir}/go + export GOBIN=${GOPATH}/bin.${_pkgarch} + export GOAPPS=${GOPATH}/apps.${_pkgarch} + +#create read only cache binary +#export GOOS=linux +#export GOARCH=arm64 +#${_buildwith} +go build -o $GOBIN/ ${_scripts}/readonlycache.go + +_cmddir=${srcdir}/go/src/${_pkggopath}/cmd +#using go build for determinism +msg2 'building skychat binary' +cd ${_cmddir}/apps/skychat +go build -trimpath -ldflags '-extldflags ${LDFLAGS}' -ldflags=-buildid= -o $GOAPPS/ . +msg2 'building skysocks binary' +cd ${_cmddir}/apps/skysocks +go build -trimpath -ldflags '-extldflags ${LDFLAGS}' -ldflags=-buildid= -o $GOAPPS/ . +msg2 'building skysocks-client binary' +cd ${_cmddir}/apps/skysocks-client +go build -trimpath -ldflags '-extldflags ${LDFLAGS}' -ldflags=-buildid= -o $GOAPPS/ . +msg2 'building vpn-client binary' +cd ${_cmddir}/apps/vpn-client +go build -trimpath -ldflags '-extldflags ${LDFLAGS}' -ldflags=-buildid= -o $GOAPPS/ . +msg2 'building vpn-server binary' +cd ${_cmddir}/apps/vpn-server +go build -trimpath -ldflags '-extldflags ${LDFLAGS}' -ldflags=-buildid= -o $GOAPPS/ . +msg2 'building skywire-visor binary' +cd ${_cmddir}/skywire-visor +go build -trimpath -ldflags '-extldflags ${LDFLAGS}' -ldflags=-buildid= -o $GOBIN/ . +msg2 'building skywire-cli binary' +cd ${_cmddir}/skywire-cli +go build -trimpath -ldflags '-extldflags ${LDFLAGS}' -ldflags=-buildid= -o $GOBIN/ . +msg2 'building setup-node binary' +cd ${_cmddir}/setup-node +go build -trimpath -ldflags '-extldflags ${LDFLAGS}' -ldflags=-buildid= -o $GOBIN/ . +#msg2 'building hypervisor binary' #hypervisor has been combined with the visor +#cd ${_cmddir}/hypervisor +#go build -trimpath -ldflags '-extldflags ${LDFLAGS}' -ldflags=-buildid= -o $GOBIN/ . +#binary transparency +cd $GOBIN +msg2 'binary sha256sums' +sha256sum $(ls) +cd $GOAPPS +sha256sum $(ls) + + +#create control file for the debian package +echo "Package: skywire" > ${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 "Maintainer: the-skycoin-project" >> ${srcdir}/${_pkgarch}.control +echo "Description: ${pkgdesc}" >> ${srcdir}/${_pkgarch}.control + +#create control file for the hypervisorkey debian package +echo "Package: hypervisorkey" > ${srcdir}/${_pkgarch}.hypervisorkey.control +echo "Version: ${pkgver}-${pkgrel}" >> ${srcdir}/${_pkgarch}.hypervisorkey.control +echo "Priority: optional" >> ${srcdir}/${_pkgarch}.hypervisorkey.control +echo "Section: web" >> ${srcdir}/${_pkgarch}.hypervisorkey.control +echo "Architecture: ${_pkgarch}" >> ${srcdir}/${_pkgarch}.hypervisorkey.control +echo "Depends: ${_pkgname}" >> ${srcdir}/${_pkgarch}.hypervisorkey.control +echo "Maintainer: the-skycoin-project" >> ${srcdir}/${_pkgarch}.hypervisorkey.control +echo "Description: package for the hypervisor key" >> ${srcdir}/${_pkgarch}.hypervisorkey.control +} + +package() { +msg2 'creating dirs' +#set up to create a .deb package +_debpkgdir=${_pkgname}-${pkgver}-${pkgrel}-${_pkgarch} +_pkgdir=${pkgdir}/${_debpkgdir} +_skydir="opt/skywire" +mkdir -p ${_pkgdir}/usr/bin/ +mkdir -p ${_pkgdir}/${_skydir}/bin/ +mkdir -p ${_pkgdir}/${_skydir}/apps/ +mkdir -p ${_pkgdir}/${_skydir}/ssl +mkdir -p ${_pkgdir}/${_skydir}/local +mkdir -p ${_pkgdir}/${_skydir}/dmsgpty +mkdir -p ${_pkgdir}/${_skydir}/${_pkgname} +mkdir -p ${_pkgdir}/${_skydir}/transport_logs + +msg2 'installing binaries' + +#loop to install the binaries +_skywirebins=$( ls ${srcdir}/go/bin.${_pkgarch} ) +for i in ${_skywirebins}; do + msg2 "$i" + install -Dm755 ${srcdir}/go/bin.${_pkgarch}/${i} ${_pkgdir}/${_skydir}/bin/${i} + ln -rTsf ${_pkgdir}/${_skydir}/bin/${i} ${_pkgdir}/usr/bin/${i} +done + +#check +#msg2 'testing `skywire-cli visor gen-config --help`' +#${pkgdir}/opt/skywire/bin/skywire-cli visor gen-config --help + +msg2 'installing apps' +#loop to install the apps +_skywireapps=$( ls ${srcdir}/go/apps.${_pkgarch} ) +for i in ${_skywireapps}; do + msg2 "$i" + install -Dm755 ${srcdir}/go/apps.${_pkgarch}/${i} ${_pkgdir}/${_skydir}/apps/${i} + ln -rTsf ${_pkgdir}/${_skydir}/apps/${i} ${_pkgdir}/usr/bin/${i} +done + +msg2 'installing scripts and systemd services' +#install the satellite package build script and elements for distributing the hypervisor key +install -Dm755 ${srcdir}/${_scripts}/keypkg-gen.sh ${pkgdir}/usr/bin/keypkg-gen +install -Dm755 ${srcdir}/${_pkgarch}.hypervisorkey.control ${pkgdir}/opt/${_pkgname}/hypervisorkey/DEBIAN/control +install -Dm755 ${srcdir}/${_scripts}/hypervisorkey.postinst ${pkgdir}/opt/${_pkgname}/hypervisorkey/DEBIAN/postinst +mkdir -p ${pkgdir}/opt/${_pkgname}/hypervisorkey/opt/${_pkgname} + +#Change binary name of skywire-visor to skywire +cd ${_pkgdir}/usr/bin/ +mv ${_pkgname}-visor ${_pkgname} + +#install the system.d services +install -Dm644 ${srcdir}/${_scripts}/${_pkgname}.service ${_pkgdir}/etc/systemd/system/${_pkgname}.service +install -Dm644 ${srcdir}/${_scripts}/${_pkgname}-visor.service ${_pkgdir}/etc/systemd/system/${_pkgname}-visor.service + +#tls key and certificate generation +#install -Dm755 ${srcdir}/${_pkgname}/static/skywire-manager-src/ssl/generate-1.sh ${pkgdir}/${_skydir}/ssl/generate.sh +install -Dm755 ${srcdir}/${_scripts}/generate.sh ${pkgdir}/${_skydir}/ssl/generate.sh +ln -rTsf ${pkgdir}/${_skydir}/ssl/generate.sh ${pkgdir}/usr/bin/skywire-tls-gen +#install -Dm644 ${srcdir}/${_pkgname}/static/skywire-manager-src/ssl/certificate.cnf ${pkgdir}/${_skydir}/ssl/certificate.cnf +install -Dm644 ${srcdir}/${_scripts}/certificate.cnf ${pkgdir}/${_skydir}/ssl/certificate.cnf + +#install the readonly-cache binary sytemd service +#install -Dm755 ${srcdir}/readonlycache ${_pkgdir}/usr/bin/readonlycache ##this was installed from the GOBIN +install -Dm644 ${srcdir}/${_scripts}/readonly-cache.service ${_pkgdir}/etc/systemd/system/readonly-cache.service + +#install the apt repo creation script +install -Dm755 ${srcdir}/${_scripts}/apt-repo-create.sh ${_pkgdir}/usr/bin/apt-repo-create + +#install the hypervisor key package creation script +install -Dm755 ${srcdir}/${_scripts}/keypkg-gen.sh ${_pkgdir}/usr/bin/keypkg-gen + +#install the control file and postinst script for the debian package +install -Dm755 ${srcdir}/${_pkgarch}.control ${_pkgdir}/DEBIAN/control +install -Dm755 ${srcdir}/${_scripts}/postinst.sh ${_pkgdir}/DEBIAN/postinst + +msg2 'creating the debian package' +#create the debian package +cd $pkgdir +dpkg-deb --build ${_debpkgdir} +mv *.deb ../../ +#exit so the arch package doesn't get built +exit +} |