diff options
Diffstat (limited to 'dev.PKGBUILD')
-rw-r--r-- | dev.PKGBUILD | 202 |
1 files changed, 202 insertions, 0 deletions
diff --git a/dev.PKGBUILD b/dev.PKGBUILD new file mode 100644 index 000000000000..c2249c61b794 --- /dev/null +++ b/dev.PKGBUILD @@ -0,0 +1,202 @@ + # 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 branch - Debian package." +_pkggopath="github.com/${_githuborg}/${_pkgname}" +pkgver='autogenerated' +pkgrel=1 +#pkgrel=4 +_pkgarch=$(dpkg --print-architecture) +_pkgver=${pkgver} +_pkgrel=${pkgrel} +arch=( 'i686' 'x86_64' 'aarch64' 'armv8' 'armv7' 'armv7l' 'armv7h' 'armv6h' 'armhf' 'armel' 'arm' ) +url="https://${_pkggopath}" +license=() +makedepends=('dpkg' 'git' 'go' 'musl' 'kernel-headers-musl') +depends=() +_debdeps="" +install=skywire.install +_scripts="skywire-deb-scripts" +source=("git+${url}.git#branch=${BRANCH:-develop}" +"${_scripts}.tar.gz" +) +sha256sums=('SKIP' + '1ff213945f7c009572f71fdf00aea28c464996fbc4bf946b03c8787ac0cd47d9') + +#tar -czvf skywire-deb-scripts.tar.gz skywire-deb-scripts +#updpkgsums deb.PKGBUILD + +pkgver() { +cd ${srcdir}/${_pkgname} +local _version=$(make version) +_version=${_version%%-*} +echo ${_version//v/} +} + +prepare() { +# 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 +export GOOS=linux +export CGO_ENABLED=1 #default anyways +#use musl-gcc for static compilation +export CC=musl-gcc + +local _version="${pkgver}" +DMSG_BASE="github.com/skycoin/dmsg" +BUILDINFO_PATH="${DMSG_BASE}/buildinfo" +BUILDINFO_VERSION="${BUILDINFO_PATH}.version=${_version}" +BUILDINFO=${BUILDINFO_VERSION} ${BUILDINFO_DATE} ${BUILDINFO_COMMIT} + +#create the skywire binaries +cd ${srcdir}/go/src/${_pkggopath} +#git fetch +#git checkout develop +_cmddir=${srcdir}/go/src/${_pkggopath}/cmd + +_msg2 "building skychat binary" +cd ${_cmddir}/apps/skychat +go build -trimpath --ldflags="" --ldflags "${BUILDINFO} -s -w -linkmode external -extldflags '-static' -buildid=" -o $_GOAPPS . +_msg2 "building skysocks binary" +cd ${_cmddir}/apps/skysocks +go build -trimpath --ldflags="" --ldflags "${BUILDINFO} -s -w -linkmode external -extldflags '-static' -buildid=" -o $_GOAPPS . +_msg2 "building skysocks-client binary" +cd ${_cmddir}/apps/skysocks-client +go build -trimpath --ldflags="" --ldflags "${BUILDINFO} -s -w -linkmode external -extldflags '-static' -buildid=" -o $_GOAPPS . +_msg2 "building vpn-client binary" +cd ${_cmddir}/apps/vpn-client +go build -tags systray -trimpath --ldflags="" --ldflags "${BUILDINFO} -s -w -linkmode external -extldflags '-static' -buildid=" -o $_GOAPPS . +_msg2 "building vpn-server binary" +cd ${_cmddir}/apps/vpn-server +go build -tags systray -trimpath --ldflags="" --ldflags "${BUILDINFO} -s -w -linkmode external -extldflags '-static' -buildid=" -o $_GOAPPS . +_msg2 "building skywire-cli binary" +cd ${_cmddir}/skywire-cli +go build -tags systray -trimpath --ldflags="" --ldflags "${BUILDINFO} -s -w -linkmode external -extldflags '-static' -buildid=" -o $GOBIN . +_msg2 "building skywire-visor binary" +cd ${_cmddir}/skywire-visor +go build -tags systray -trimpath --ldflags="" --ldflags "${BUILDINFO} -s -w -linkmode external -extldflags '-static' -buildid=" -o $GOBIN . +_msg2 "building setup-node binary" +cd ${_cmddir}/setup-node +go build -trimpath --ldflags="" --ldflags "${BUILDINFO} -s -w -linkmode external -extldflags '-static' -buildid=" -o $GOBIN . + +#binary transparency +cd $GOBIN +_msg2 'binary sha256sums' +sha256sum $(ls) +cd $_GOAPPS +sha256sum $(ls) + +### CONTROL FILES CREATION ### +#create control file for the debian package +echo "Package: skywire-dev" > ${srcdir}/control +echo "Version: ${_pkgver}-${_pkgrel}" >> ${srcdir}/control +echo "Priority: optional" >> ${srcdir}/control +echo "Section: web" >> ${srcdir}/control +echo "Architecture: ${_pkgarch}" >> ${srcdir}/control +echo "Depends: ${_debdeps}" >> ${srcdir}/control +echo "Provides: skywire" >> ${srcdir}/control +echo "Maintainer: skycoin" >> ${srcdir}/control +echo "Description: ${pkgdesc}" >> ${srcdir}/control + +} + +package() { + #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" + 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' +_skywirebins=$( ls ${srcdir}/go/bin ) +for i in ${_skywirebins}; do + _install2 ${srcdir}/go/bin/${i} ${_skybin} +done +_msg2 'installing apps' +_skywireapps=$( ls ${srcdir}/go/apps ) +for i in ${_skywireapps}; do + _install2 ${srcdir}/go/apps/${i} ${_skyapps} +done +_msg2 'installing scripts' +_skywirescripts=$( ls ${srcdir}/${_scripts}/${_pkgname} ) +for i in ${_skywirescripts}; do + _install2 ${srcdir}/${_scripts}/${_pkgname}/${i} ${_skyscripts} +done +chmod +x ${_pkgdir}/usr/bin/* +#rename visor to skywire - matche the skycoin / skycoin-cli of the skycoin wallet +[[ -f ${_pkgdir}/usr/bin/${_pkgname}-visor ]] && ln -rTsf ${_pkgdir}/usr/bin/${_pkgname}-visor ${_pkgdir}/usr/bin/${_pkgname} + +_msg2 'installing dmsghttp-config.json' +install -Dm644 ${srcdir}/${_pkgname}/dmsghttp-config.json ${_pkgdir}/${_skydir}/dmsghttp-config.json + +_msg2 'installing skywire 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 + +_msg2 'installing desktop files and icon' +install -Dm644 ${srcdir}/${_scripts}/desktop/com.skywire.Skywire.desktop ${_pkgdir}/usr/share/applications/com.skywire.Skywire.desktop +install -Dm644 ${srcdir}/${_scripts}/desktop/skywire.png ${_pkgdir}/${_skydir}/icon.png +mkdir -p ${_pkgdir}/usr/share/icons/hicolor/48x48/apps/ +ln -rTsf ${_pkgdir}/${_skydir}/icon.png ${_pkgdir}/usr/share/icons/hicolor/48x48/apps/skywire.png +###STAGING AREA### +#Install the correct autocofig script +rm ${_pkgdir}/${_skyscripts}/${_pkgname}-autoconfig +install -Dm755 ${srcdir}/${_scripts}/${_pkgname}/.${_pkgname}-autoconfig-git.sh ${_pkgdir}/${_skyscripts}/${_pkgname}-autoconfig +ln -rTsf ${_pkgdir}/${_skyscripts}/${_pkgname}-autoconfig ${_pkgdir}/usr/bin/${_pkgname}-autoconfig +#Install the updated 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 +install -Dm644 ${srcdir}/${_scripts}/systemd/.${_pkgname}-user.service ${_pkgdir}/${_systemddir}/${_pkgname}-user.service + +_msg2 'installing skywire control file, postinst & postrm scripts' +install -Dm755 ${srcdir}/control ${_pkgdir}/DEBIAN/control +install -Dm755 ${srcdir}/${_scripts}/postinst.sh ${_pkgdir}/DEBIAN/postinst +[[ -f ${srcdir}/${_scripts}/postrm.sh ]] && 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 ../../ +#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" "$@" +} |