diff options
-rw-r--r-- | .SRCINFO | 8 | ||||
-rw-r--r-- | PKGBUILD | 251 | ||||
-rw-r--r-- | skywire-scripts.tar.gz | bin | 2710 -> 4572 bytes | |||
-rw-r--r-- | skywire.install | 39 |
4 files changed, 146 insertions, 152 deletions
@@ -1,7 +1,7 @@ pkgbase = skywire - pkgdesc = Skywire Mainnet Node implementation. Develop Banch. Skycoin.com - pkgver = autogenerated - pkgrel = 16 + pkgdesc = Skywire Mainnet Node implementation. Skycoin.com + pkgver = 0.3.0 + pkgrel = 1 url = https://github.com/skycoin/skywire install = skywire.install arch = any @@ -13,7 +13,7 @@ pkgbase = skywire source = git+https://github.com/skycoin/skywire.git#commit=d156980280fdb2ddfc8765ff77cdd55c0b7e9d9c source = skywire-scripts.tar.gz sha256sums = SKIP - sha256sums = 794b5a7767c306fe1dba55a975c39d667cc0b5f4ba172698bda7f25a19a867bc + sha256sums = 56e506e84e0387dcee6f5e5673dcd4c00b568f9a15cd3b7d90c6a251d08ed9c3 pkgname = skywire @@ -4,19 +4,19 @@ _projectname=skycoin pkgname=skywire _pkgname=${pkgname} _githuborg=${_projectname} -pkgdesc="Skywire Mainnet Node implementation. Develop Banch. Skycoin.com" +pkgdesc="Skywire Mainnet Node implementation. Skycoin.com" _pkggopath="github.com/${_githuborg}/${_pkgname}" -pkgver='autogenerated' +pkgver=0.3.0 #pkgver='autogenerated' -pkgrel=16 -#pkgrel=16 +pkgrel=1 +#pkgrel=17 arch=('any') url="https://${_pkggopath}" license=() makedepends=('git' 'go' 'musl' 'kernel-headers-musl') #disable signature check pending fixes# 'skycoin-keyring') optdepends=('readonly-cache: distribute hypervisorkey package for cluster management') install=skywire.install -_scripts=skywire-scripts +_scripts=${_pkgname}-scripts #scripts need at least this commit to work if current build to develop fails #source=("git+${url}.git#branch=${BRANCH:-develop}" source=("git+${url}.git#commit=d156980280fdb2ddfc8765ff77cdd55c0b7e9d9c" @@ -24,144 +24,151 @@ source=("git+${url}.git#commit=d156980280fdb2ddfc8765ff77cdd55c0b7e9d9c" #'PKGBUILD.sig' #disable signature checking for now #'PKGBUILD') sha256sums=('SKIP' - '794b5a7767c306fe1dba55a975c39d667cc0b5f4ba172698bda7f25a19a867bc') + '56e506e84e0387dcee6f5e5673dcd4c00b568f9a15cd3b7d90c6a251d08ed9c3') # 'SKIP' # 'SKIP') #validpgpkeys=('DE08F924EEE93832DABC642CA8DC761B1C0C0CFC') # Moses Narrow <moe_narrow@use.startmail.com> #'98F934F04F9334B81DFA3398913BBD5206B19620') #iketheadore skycoin <luxairlake@protonmail.com> #tar -czvf skywire-scripts.tar.gz skywire-scripts -#updatepkgsums - -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 "${_version}_${_date}.${_count}_${_commit}_${BRANCH:-develop}" -} +#updpkgsums + +#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 "${_version}_${_date}.${_count}_${_commit}_${BRANCH:-develop}" +#} prepare() { - #verify PKGBUILD signature -# gpg --verify ${srcdir}/PKGBUILD.sig ${srcdir}/PKGBUILD #comment out to disable signature check +#verify PKGBUILD signature +# gpg --verify ${srcdir}/PKGBUILD.sig ${srcdir}/PKGBUILD #disabled the signature check - # https://wiki.archlinux.org/index.php/Go_package_guidelines - mkdir -p ${srcdir}/go/src/github.com/${_githuborg}/ ${srcdir}/go/bin ${srcdir}/go/apps - ln -rTsf ${srcdir}/${_pkgname} ${srcdir}/go/src/${_pkggopath} - cd ${srcdir}/go/src/${_pkggopath}/ +# https://wiki.archlinux.org/index.php/Go_package_guidelines +mkdir -p ${srcdir}/go/src/github.com/${_githuborg}/ ${srcdir}/go/bin ${srcdir}/go/apps +ln -rTsf ${srcdir}/${_pkgname} ${srcdir}/go/src/${_pkggopath} +cd ${srcdir}/go/src/${_pkggopath}/ } build() { - export GOPATH=${srcdir}/go - export GOBIN=${GOPATH}/bin - export GOAPPS=${GOPATH}/apps - cd ${srcdir}/go/src/${_pkggopath} - export GOOS=linux - export CGO_ENABLED=1 +export GOPATH=${srcdir}/go +export GOBIN=${GOPATH}/bin +export _GOAPPS=${GOPATH}/apps +cd ${srcdir}/go/src/${_pkggopath} +export GOOS=linux +export CGO_ENABLED=1 #use musl-gcc for static compilation - export CC=musl-gcc - - #create the skywire binaries - cd ${srcdir}/go/src/${_pkggopath} - _cmddir=${srcdir}/go/src/${_pkggopath}/cmd - #static compilation ; need to re-evaluate build determinism - _msg2 'building skychat binary' - cd ${_cmddir}/apps/skychat - go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $GOAPPS/ . - _msg2 'building skysocks binary' - cd ${_cmddir}/apps/skysocks - go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $GOAPPS/ . - _msg2 'building skysocks-client binary' - cd ${_cmddir}/apps/skysocks-client - go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $GOAPPS/ . - _msg2 'building vpn-client binary' - cd ${_cmddir}/apps/vpn-client - go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $GOAPPS/ . - _msg2 'building vpn-server binary' - cd ${_cmddir}/apps/vpn-server - go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $GOAPPS/ . - _msg2 'building skywire-visor binary' - cd ${_cmddir}/skywire-visor - go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $GOBIN/ . - _msg2 'building skywire-cli binary' - cd ${_cmddir}/skywire-cli - go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $GOBIN/ . - _msg2 'building setup-node binary' - cd ${_cmddir}/setup-node - go build -trimpath --ldflags '-linkmode external -extldflags "-static" -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) +export CC=musl-gcc + +#create the skywire binaries +cd ${srcdir}/go/src/${_pkggopath} +_cmddir=${srcdir}/go/src/${_pkggopath}/cmd +#static compilation ; need to re-evaluate build determinism + +_buildbins skychat $_GOAPPS apps/ +_buildbins skysocks $_GOAPPS apps/ +_buildbins skysocks-client $_GOAPPS apps/ +_buildbins vpn-client $_GOAPPS apps/ +_buildbins vpn-server $_GOAPPS apps/ +_buildbins skywire-visor $GOBIN +_buildbins skywire-cli $GOBIN +_buildbins setup-node $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) +} +#I had to speed up the build for testing but there's a risk of using old binaries. +#will change this when the commit for the build tracks a branch +_buildbins() { +_GOHERE=$2 +_binpath=$3 +_binname=$1 +_msg2 "building ${_binname} binary" +if [[ ! -f ${_GOHERE}/${_binname} ]] ; then + cd ${_cmddir}/${_binpath}${_binname} + go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $_GOHERE/ . +fi } + package() { - #create directory trees - _skydir="opt/skywire" - _skyapps="${_skydir}/apps" - _systemddir="etc/systemd/system" - _skybin="${_skydir}/bin" - 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' - _skywirebins=$( ls ${srcdir}/go/bin ) - for i in ${_skywirebins}; do - install -Dm755 ${srcdir}/go/bin/${i} ${pkgdir}/${_skybin}/${i} - ln -rTsf ${pkgdir}/${_skybin}/${i} ${pkgdir}/usr/bin/${i} - done - - _skywireapps=$( ls ${srcdir}/go/apps ) - for i in ${_skywireapps}; do - install -Dm755 ${srcdir}/go/apps/${i} ${pkgdir}/${_skyapps}/${i} - ln -rTsf ${pkgdir}/${_skyapps}/${i} ${pkgdir}/usr/bin/${i} - done - #install scripts - install -Dm755 ${srcdir}/${_scripts}/skywire-halt.sh ${pkgdir}/usr/bin/skywire-halt - install -Dm755 ${srcdir}/${_scripts}/skywire-setuser.sh ${pkgdir}/usr/bin/skywire-setuser - - #install the satellite PKGBUILD for distributing the hypervisor key and it's script - install -Dm755 ${srcdir}/${_scripts}/keypkg-gen.sh ${pkgdir}/usr/bin/keypkg-gen - install -Dm755 ${srcdir}/${_scripts}/hypervisorkey.PKGBUILD ${pkgdir}/${_skydir}/hypervisorkey/PKGBUILD - install -Dm755 ${srcdir}/${_scripts}/hypervisorkey.install ${pkgdir}/${_skydir}/hypervisorkey/hypervisorkey.install - - #rename visor to skywire - mv ${pkgdir}/usr/bin/${_pkgname}-visor ${pkgdir}/usr/bin/${_pkgname} - - #install the system.d services - #install -Dm644 ${srcdir}/go/src/${_pkggopath}/init/${_pkgname}-hypervisor.service ${pkgdir}/usr/lib/systemd/system/${_pkgname}-hypervisor.service - #install -Dm644 ${srcdir}/go/src/${_pkggopath}/init/${_pkgname}-visor.service ${pkgdir}/usr/lib/systemd/system/${_pkgname}-visor.service - - #install the patched system.d services - install -Dm644 ${srcdir}/${_scripts}/${_pkgname}.service ${pkgdir}/usr/lib/systemd/system/${_pkgname}.service - install -Dm644 ${srcdir}/${_scripts}/${_pkgname}-visor.service ${pkgdir}/usr/lib/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 +#create directory trees or the vior might make them with weird permissions +_skydir="opt/skywire" +_skyapps="${_skydir}/apps" +_systemddir="etc/systemd/system" +_skybin="${_skydir}/bin" +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}/${_pkgname}-save +mkdir -p ${pkgdir}/${_skydir}/transport_logs + +_msg2 'installing binaries' +_skywirebins=$( ls ${srcdir}/go/bin ) +for i in ${_skywirebins}; do + install -Dm755 ${srcdir}/go/bin/${i} ${pkgdir}/${_skybin}/${i} + ln -rTsf ${pkgdir}/${_skybin}/${i} ${pkgdir}/usr/bin/${i} +done + +_skywireapps=$( ls ${srcdir}/go/apps ) +for i in ${_skywireapps}; do + install -Dm755 ${srcdir}/go/apps/${i} ${pkgdir}/${_skyapps}/${i} + ln -rTsf ${pkgdir}/${_skyapps}/${i} ${pkgdir}/usr/bin/${i} +done + +#install scripts +install -Dm755 ${srcdir}/${_scripts}/${_pkgname}-halt.sh ${pkgdir}/usr/bin/${_pkgname}-halt +install -Dm755 ${srcdir}/${_scripts}/${_pkgname}-setuser.sh ${pkgdir}/usr/bin/${_pkgname}-setuser + +#install the PKGBUILD for generating the config backup (and restoration?) scripts +install -Dm755 ${srcdir}/${_scripts}/${_pkgname}-save.sh ${pkgdir}/usr/bin/${_pkgname}-save +install -Dm755 ${srcdir}/${_scripts}/${_pkgname}-restore.sh ${pkgdir}/usr/bin/${_pkgname}-restore +install -Dm755 ${srcdir}/${_scripts}/${_pkgname}-autoconfig.sh ${pkgdir}/usr/bin/${_pkgname}-autoconfig +install -Dm755 ${srcdir}/${_scripts}/${_pkgname}-save.PKGBUILD ${pkgdir}/${_skydir}/${_pkgname}-save/PKGBUILD +install -Dm755 ${srcdir}/${_scripts}/${_pkgname}-save.install ${pkgdir}/${_skydir}/${_pkgname}-save/${_pkgname}-save.install + +#install the satellite PKGBUILD for distributing the hypervisor key and it's script +install -Dm755 ${srcdir}/${_scripts}/keypkg-gen.sh ${pkgdir}/usr/bin/keypkg-gen +install -Dm755 ${srcdir}/${_scripts}/hypervisorkey.PKGBUILD ${pkgdir}/${_skydir}/hypervisorkey/PKGBUILD +install -Dm755 ${srcdir}/${_scripts}/hypervisorkey.install ${pkgdir}/${_skydir}/hypervisorkey/hypervisorkey.install + +#rename visor to skywire +mv ${pkgdir}/usr/bin/${_pkgname}-visor ${pkgdir}/usr/bin/${_pkgname} + +#install the system.d services (from the source) +#install -Dm644 ${srcdir}/go/src/${_pkggopath}/init/${_pkgname}-hypervisor.service ${pkgdir}/usr/lib/systemd/system/${_pkgname}-hypervisor.service +#install -Dm644 ${srcdir}/go/src/${_pkggopath}/init/${_pkgname}-visor.service ${pkgdir}/usr/lib/systemd/system/${_pkgname}-visor.service + +#install the patched system.d services +install -Dm644 ${srcdir}/${_scripts}/${_pkgname}.service ${pkgdir}/usr/lib/systemd/system/${_pkgname}.service +install -Dm644 ${srcdir}/${_scripts}/${_pkgname}-visor.service ${pkgdir}/usr/lib/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/${_pkgname}-tls-gen +install -Dm644 ${srcdir}/${_pkgname}/static/${_pkgname}-manager-src/ssl/certificate.cnf ${pkgdir}/${_skydir}/ssl/certificate.cnf } _msg2() { - (( QUIET )) && return - local mesg=$1; shift - printf "${BLUE} ->${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" +(( QUIET )) && return +local mesg=$1; shift +printf "${BLUE} ->${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" } diff --git a/skywire-scripts.tar.gz b/skywire-scripts.tar.gz Binary files differindex 010ed5bdeca7..6e400f8ad557 100644 --- a/skywire-scripts.tar.gz +++ b/skywire-scripts.tar.gz diff --git a/skywire.install b/skywire.install index ae29ba942e10..38c627ad9af9 100644 --- a/skywire.install +++ b/skywire.install @@ -1,40 +1,27 @@ +pre-install() { +#kill any instance that was running +systemctl disable --now skywire.service +systemctl disable --now skywire-visor.service +} + post_install() { - #kill any instance that was running - systemctl disable --now skywire.service - systemctl disable --now skywire-visor.service - #config generation writes in the current dir; - #so we want to make anything spawned by the process appear as a subdirectory of install dir - cd /opt/skywire/ - #try to reuse old config - [[ -f /opt/skywire/skywire.json ]] && cp -b /opt/skywire/skywire.json /opt/skywire/skywire.json.gen - #generate hypervisor configuration - skywire-cli visor gen-config --is-hypervisor -p -r -o /opt/skywire/skywire.json.gen - mv /opt/skywire/skywire.json.gen /opt/skywire/skywire.json - skywire-tls-gen - systemctl enable --now skywire.service - echo "Skywire has been configured, starting now on https://127.0.0.1:8000" - _lanip=$(ifconfig | grep inet | head -n 1) - _lanip=${_lanip##*inet } - _lanip=${_lanip%% *} - echo "Access from local network at: https://${_lanip}:8000" - _pubkey=$(cat /opt/skywire/skywire.json | grep pk\") - _pubkey=${_pubkey#*: } - echo "Visor Public Key: ${_pubkey}" - echo "run keypkg-gen to generate the distributable public key package" +skywire-autoconfig } -#pre-upgrade() { -#} +pre-upgrade() { +pre-install +} post_upgrade() { post_install } pre-remove() { - systemctl disable --now skywire.service - systemctl disable --now skywire-visor.service +systemctl disable --now skywire.service +systemctl disable --now skywire-visor.service } post_remove() { +#remove possibly dangling configs so as not to interfere with future installs rm -rf /opt/skywire } |