github.com/ericwq/aprilsh@v0.0.0-20240517091432-958bc568daa0/build/APKBUILD (about) 1 # Contributor: Wang Qi <ericwq057@qq.com> 2 # Maintainer: Wang Qi <ericwq057@qq.com> 3 pkgname=aprilsh 4 pkgver=0.6.40 5 pkgrel=1 6 pkgdesc="Remote shell support intermittent or mobile network" 7 url="https://github.com/ericwq/aprilsh" 8 arch="all" 9 license="MIT" 10 depends="$pkgname-client $pkgname-server" 11 makedepends="go protoc utmps-dev ncurses ncurses-terminfo musl-locales protoc-gen-go" 12 subpackages="$pkgname-client $pkgname-server $pkgname-openrc" 13 source="https://github.com/ericwq/aprilsh/releases/download/$pkgver/aprilsh-$pkgver.tar.gz 14 apshd.logrotate 15 apshd.initd" 16 17 # build info (part 1) required by go build 18 _git_tag=0.6.40 19 _git_commit=6e1115c 20 _git_branch=HEAD 21 22 # set build tags based on glibc or musl 23 _musl=$(ldd /bin/ls | grep 'musl'|head -n 1| awk '{print $1}') 24 if [ "$_musl" == "" ] 25 then 26 _build_tag="-tags utmp" 27 else 28 _build_tag="-tags utmps" 29 fi 30 31 # go build need this 32 export PATH=$PATH:~/go/bin 33 export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}" 34 export GOTMPDIR="${GOTMPDIR:-"$srcdir"}" 35 export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}" 36 37 build() { 38 # generate protocol buffer code 39 protoc --go_out=. -I . ./protobufs/transportInstruction.proto 40 protoc --go_out=. -I . ./protobufs/hostInput.proto 41 protoc --go_out=. -I . ./protobufs/userInput.proto 42 43 # prepare build info (part 2) 44 _module_name=$(head ./go.mod | grep '^module' | awk '{print $2}') 45 _go_version=$(go version | grep 'version' | awk '{print $3}') 46 47 # set ldflags 48 local ldflags="-s -w \ 49 -X $_module_name/frontend.BuildTime=$(date -u +%Y-%m-%dT%H:%M:%S) \ 50 -X $_module_name/frontend.GitBranch=$_git_branch \ 51 -X $_module_name/frontend.GitCommit=$_git_commit \ 52 -X $_module_name/frontend.GitTag=$_git_tag \ 53 -X $_module_name/frontend.GoVersion=$_go_version \ 54 " 55 echo "build server start: $(date)" 56 go build $_build_tag -ldflags="$ldflags" -o "$builddir/bin/apshd" ./frontend/server 57 echo "build server end : $(date)" 58 echo "output server to : $builddir/bin/apshd" 59 60 61 # set ldflags (required for update BuildTime) 62 local ldflags="-s -w \ 63 -X $_module_name/frontend.BuildTime=$(date -u +%Y-%m-%dT%H:%M:%S) \ 64 -X $_module_name/frontend.GitBranch=$_git_branch \ 65 -X $_module_name/frontend.GitCommit=$_git_commit \ 66 -X $_module_name/frontend.GitTag=$_git_tag \ 67 -X $_module_name/frontend.GoVersion=$_go_version \ 68 " 69 echo "build client start: $(date)" 70 go build -ldflags="$ldflags" -o "$builddir/bin/apsh" ./frontend/client 71 echo "build client end : $(date)" 72 echo "output client to : $builddir/bin/apsh" 73 } 74 75 check() { 76 go test ./encrypt/... 77 go test ./frontend/ 78 APRILSH_APSHD_PATH="$builddir/bin/apshd" go test $_build_tag ./frontend/server 79 go test ./frontend/client 80 go test ./network/... 81 go test ./statesync/... 82 go test ./terminal/... 83 go test ./util/... 84 } 85 86 package() { 87 install -Dm755 "$builddir/bin/apshd" "$pkgdir/usr/bin/apshd" 88 install -Dm755 "$builddir/bin/apsh" "$pkgdir/usr/bin/apsh" 89 install -Dm755 "$srcdir/apshd.initd" "$pkgdir/etc/init.d/apshd" 90 install -Dm644 "$srcdir/apshd.logrotate" "$pkgdir/etc/logrotate.d/apshd" 91 } 92 93 client() { 94 replaces="$pkgname" 95 pkgdesc="$pkgname client" 96 depends="musl-locales ncurses ncurses-terminfo" 97 amove usr/bin/apsh 98 } 99 100 server() { 101 replaces="$pkgname" 102 pkgdesc="$pkgname server" 103 depends="musl-locales utmps ncurses ncurses-terminfo wezterm-extra-terminfo openssh-server" 104 amove usr/bin/apshd 105 } 106 107 sha512sums=" 108 6a04d17f3f375a5b73503e794e799300e5d7ec277dbe36f7af751ddaca37544006adcb7c53bc7e6a33b6c4364ed846a996789fe6dc94aacd7583bc7a6b0f3464 aprilsh-0.6.14.tar.gz 109 3e865e0ece136649ad681bfd0b839e46f8adaf2bb76b989b45d1a7722fe9d1bbdf07842a3bd8ae387eadfc5b876f95f15b924c269154b38fc1e860a81016e9c2 apshd.initd 110 "