From b05433d3bce0b6a39e0bc243cf8c4db755179ea8 Mon Sep 17 00:00:00 2001 From: David Newhall II Date: Sun, 21 Nov 2021 03:06:58 -0800 Subject: [PATCH 1/9] Start on arch linux support --- .gitignore | 1 + Makefile | 45 +++++++++++++++++++++++++++++--- init/archlinux/PKGBUILD.template | 39 +++++++++++++++++++++++++++ init/archlinux/README.md | 6 +++++ init/buildinfo.sh | 6 +++++ scripts/after-install.sh | 2 +- scripts/before-remove.sh | 2 +- settings.sh | 4 +-- 8 files changed, 98 insertions(+), 7 deletions(-) create mode 100644 init/archlinux/PKGBUILD.template create mode 100644 init/archlinux/README.md diff --git a/.gitignore b/.gitignore index db76dd791..ae2f78b69 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ /init/macos/*.app/Contents/MacOS/* # The rest is probably fine. /rsrc*.syso +/aur /*.log /*.conf /*.gz diff --git a/Makefile b/Makefile index 1a491b76b..1dd469c81 100644 --- a/Makefile +++ b/Makefile @@ -14,6 +14,11 @@ RSRC_BIN=github.com/akavel/rsrc # If upx is available, use it to compress the binaries. UPXPATH=$(shell which upx) +# Skip upx in Mac ARM environments: https://github.com/upx/upx/issues/446 +ifeq ($(shell uname -ps),Darwin arm) + UPXPATH= +endif + # Travis CI passes the version in. Local builds get it from the current git tag. ifeq ($(VERSION),) include .metadata.make @@ -91,7 +96,8 @@ clean: rm -f $(BINARY) $(BINARY).*.{macos,freebsd,linux,exe,upx}{,.gz,.zip} $(BINARY).1{,.gz} $(BINARY).rb rm -f $(BINARY){_,-}*.{deb,rpm,txz} v*.tar.gz.sha256 examples/MANUAL .metadata.make rsrc_*.syso rm -f cmd/$(BINARY)/README{,.html} README{,.html} ./$(BINARY)_manual.html rsrc.syso $(MACAPP).app.zip - rm -rf package_build_* release after-install-rendered.sh before-remove-rendered.sh $(MACAPP).app + rm -f $(BINARY).aur.install PKGBUILD + rm -rf aur package_build_* release after-install-rendered.sh before-remove-rendered.sh $(MACAPP).app #################### ##### Sidecars ##### @@ -198,6 +204,22 @@ $(MACAPP).app: macos [ -z "$(MACAPP)" ] || cp $(BINARY).amd64.macos init/macos/$(MACAPP).app/Contents/MacOS/$(MACAPP) [ -z "$(MACAPP)" ] || cp -rp init/macos/$(MACAPP).app $(MACAPP).app +aur: PKGBUILD $(BINARY).aur.install + mkdir -p $@ + mv PKGBUILD $(BINARY).aur.install $@/ + +PKGBUILD: v$(VERSION).tar.gz.sha256 + @echo "Creating 'aur' PKGBUILD file for $(BINARY) version '$(RPMVERSION)-$(ITERATION)'." + sed -e "s/{{VERSION}}/$(VERSION)/g" \ + -e "s/{{Iter}}/$(ITERATION)/g" \ + -e "s/{{SHA256}}/$(shell head -c64 $<)/g" \ + -e "s/{{Desc}}/$(DESC)/g" \ + -e "s%{{BINARY}}%$(BINARY)%g" \ + -e "s%{{SOURCE_URL}}%$(SOURCE_URL)%g" \ + -e "s%{{SOURCE_PATH}}%$(SOURCE_PATH)%g" \ + -e "s%{{CONFIG_FILE}}%$(CONFIG_FILE)%g" \ + init/archlinux/PKGBUILD.template | tee PKGBUILD + rpm: $(BINARY)-$(RPMVERSION)-$(ITERATION).x86_64.rpm $(BINARY)-$(RPMVERSION)-$(ITERATION).x86_64.rpm: package_build_linux check_fpm @echo "Building 'rpm' package for $(BINARY) version '$(RPMVERSION)-$(ITERATION)'." @@ -262,7 +284,7 @@ $(BINARY)-$(VERSION)_$(ITERATION).armhf.txz: package_build_freebsd_arm check_fpm fpm -s dir -t freebsd $(PACKAGE_ARGS) -a arm -v $(VERSION) -p $(BINARY)-$(VERSION)_$(ITERATION).armhf.txz -C $< $(EXTRA_FPM_FLAGS) # Build an environment that can be packaged for linux. -package_build_linux: readme man plugins_linux_amd64 after-install-rendered.sh before-remove-rendered.sh linux +package_build_linux: readme man plugins_linux_amd64 after-install-rendered.sh before-remove-rendered.sh $(BINARY).service linux # Building package environment for linux. mkdir -p $@/usr/bin $@/etc/$(BINARY) $@/usr/share/man/man1 $@/usr/share/doc/$(BINARY) $@/usr/lib/$(BINARY) # Copying the binary, config file, unit file, and man page into the env. @@ -274,9 +296,12 @@ package_build_linux: readme man plugins_linux_amd64 after-install-rendered.sh be cp examples/$(CONFIG_FILE).example $@/etc/$(BINARY)/$(CONFIG_FILE) cp LICENSE *.html examples/*?.?* $@/usr/share/doc/$(BINARY)/ [ "$(FORMULA)" != "service" ] || mkdir -p $@/lib/systemd/system + [ "$(FORMULA)" != "service" ] || mv $(BINARY).service $@/lib/systemd/system/ + +$(BINARY).service: [ "$(FORMULA)" != "service" ] || \ sed -e "s/{{BINARY}}/$(BINARY)/g" -e "s/{{DESC}}/$(DESC)/g" \ - init/systemd/template.unit.service > $@/lib/systemd/system/$(BINARY).service + init/systemd/template.unit.service > $(BINARY).service after-install-rendered.sh: sed -e "s/{{BINARY}}/$(BINARY)/g" scripts/after-install.sh > after-install-rendered.sh @@ -284,6 +309,20 @@ after-install-rendered.sh: before-remove-rendered.sh: sed -e "s/{{BINARY}}/$(BINARY)/g" scripts/before-remove.sh > before-remove-rendered.sh +# This is used for arch linux +$(BINARY).aur.install: + echo "post_install() {" > $@ + sed -e "s/^/ /g" -e "s/{{BINARY}}/$(BINARY)/g" scripts/after-install.sh >> $@ + echo "}" >> $@ + echo "" >> $@ + echo "post_upgrade() {" >> $@ + echo ' post_install $$1' >> $@ + echo "}" >> $@ + echo "" >> $@ + echo "pre_remove() {" >> $@ + sed -e "s/^/ /g" -e "s/{{BINARY}}/$(BINARY)/g" scripts/before-remove.sh >> $@ + echo "}" >> $@ + package_build_linux_386: package_build_linux linux386 mkdir -p $@ cp -r $ Date: Sun, 21 Nov 2021 03:15:15 -0800 Subject: [PATCH 2/9] fix test --- init/archlinux/PKGBUILD.template | 1 + init/buildinfo.sh | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/init/archlinux/PKGBUILD.template b/init/archlinux/PKGBUILD.template index bc5f11783..3722be553 100644 --- a/init/archlinux/PKGBUILD.template +++ b/init/archlinux/PKGBUILD.template @@ -17,6 +17,7 @@ build() { export EXTRA_LDFLAGS=-linkmode=external export VERSION="${pkgver}" export ITERATION="${pkgrel}" + export GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw" make linux make "${pkgname}.service" } diff --git a/init/buildinfo.sh b/init/buildinfo.sh index 458ff4752..733eec525 100644 --- a/init/buildinfo.sh +++ b/init/buildinfo.sh @@ -21,7 +21,7 @@ BUILDS="linux:armhf:arm linux:arm64:arm64 linux:amd64:amd64 linux:i386:386" export VENDOR VVERSION VERSION ITERATION DATE BRANCH COMMIT BUILDS -export GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw" +[ "$GOFLAGS" != "" ] || export GOFLAGS="-trimpath -mod=readonly -modcacherw" export CGO_CPPFLAGS="${CPPFLAGS}" export CGO_CFLAGS="${CFLAGS}" export CGO_CXXFLAGS="${CXXFLAGS}" From 6691b195fc5a2db4dd4ec12113966bf04a22b9f5 Mon Sep 17 00:00:00 2001 From: David Newhall II Date: Sun, 21 Nov 2021 03:40:11 -0800 Subject: [PATCH 3/9] add travis build and deploy key for aur package --- .gitignore | 1 + .secret_files.tar.enc | Bin 15888 -> 9232 bytes .travis.yml | 23 ++++++++++++++++++----- scripts/aur-deploy.sh | 24 ++++++++++++++++++++++++ settings.sh | 4 ++-- 5 files changed, 45 insertions(+), 7 deletions(-) create mode 100644 scripts/aur-deploy.sh diff --git a/.gitignore b/.gitignore index ae2f78b69..ba79d0276 100644 --- a/.gitignore +++ b/.gitignore @@ -35,6 +35,7 @@ README.html /homebrew-mugs .secret*files.tar github_deploy_key* +aur_deploy_key* .metadata.make /after-install-rendered.sh /before-remove-rendered.sh diff --git a/.secret_files.tar.enc b/.secret_files.tar.enc index c23618b5f17e86f6709e144136a1ce8ead98a4d5..2c71ca8ce50c8021092a40d7b4e8e3e7630b7f19 100644 GIT binary patch literal 9232 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%0DiS%#2=?E>Bb2GK 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 mj(1b> $HOME/.ssh/config - [ ! -f github_deploy_key ] || (mv github_deploy_key $SSH_FILE \ - && chmod 600 "$SSH_FILE" \ + declare -r HB_FILE="$(mktemp -u $HOME/.ssh/XXXXX)" + [ ! -f github_deploy_key ] || (mv github_deploy_key "${HB_FILE}" \ + && chmod 600 "$HB_FILE" \ && printf "%s\n" \ "Host github.com" \ - " IdentityFile $SSH_FILE" \ + " IdentityFile ${HB_FILE}" \ + " StrictHostKeyChecking no" \ + " LogLevel ERROR" >> $HOME/.ssh/config) + declare -r AU_FILE="$(mktemp -u $HOME/.ssh/XXXXX)" + [ ! -f aur_deploy_key ] || (mv aur_deploy_key "${AU_FILE}" \ + && chmod 600 "${AU_FILE}" \ + && printf "%s\n" \ + "Host github.com-aurepo" \ + " IdentityFile ${AU_FILE}" \ " StrictHostKeyChecking no" \ " LogLevel ERROR" >> $HOME/.ssh/config) deploy: @@ -143,3 +150,9 @@ deploy: on: tags: true condition: "$TRAVIS_OS_NAME = osx" + # Upload aur PKGBUILD file to a special repo. + - provider: script + script: bash scripts/aur-deploy.sh + on: + tags: true + condition: "$TRAVIS_OS_NAME = linux" diff --git a/scripts/aur-deploy.sh b/scripts/aur-deploy.sh new file mode 100644 index 000000000..b45613c10 --- /dev/null +++ b/scripts/aur-deploy.sh @@ -0,0 +1,24 @@ +#!/bin/bash -x + +# Deploys a new aur PKGBUILD file to a github repo: $AUREPO +# Requires SSH credentials in ssh-agent to work. +# Run by Travis-CI when a new release is created on GitHub. +# Do not edit this file. + +source settings.sh + +make aur + +git config --global user.email "${BINARY}@auto.releaser" +git config --global user.name "${BINARY}-auto-releaser" + +rm -rf aur_release_repo +git clone git@github.com-aurepo:${AUREPO}.git aur_release_repo + +mkdir -p "aur_release_repo/${BINARY}" +cp aur/* "aur_release_repo/${BINARY}/" +pushd aur_release_repo +git add ${BINARY} +git commit -m "Update ${BINARY} on Release: v${VERSION}-${ITERATION}" +git push +popd diff --git a/settings.sh b/settings.sh index 8a62fafcc..f71c0e1e5 100644 --- a/settings.sh +++ b/settings.sh @@ -12,7 +12,8 @@ BINARY="notifiarr" REPO="Notifiarr/notifiarr" # Github repo containing homebrew formula repo. HBREPO="golift/homebrew-mugs" -MAINT="David Newhall II " +AUREPO="golift/aur" +MAINT="David Newhall II " DESC="Unified Client for Notifiarr.com" GOLANGCI_LINT_ARGS="--enable-all -D exhaustivestruct,nlreturn,forbidigo,cyclop,interfacer,maligned,scopelint,dupl,tagliatelle,golint" # Example must exist at examples/$CONFIG_FILE.example @@ -46,7 +47,6 @@ export WINDOWS_LDFLAGS="" export MACAPP="Notifiarr" export EXTRA_FPM_FLAGS="--conflicts=discordnotifier-client>0.0.1 --provides=notifiarr --provides=discordnotifier-client" - # Make sure Docker builds work locally. # These do not affect automated builds, just allow the docker build scripts to run from a local clone. [ -n "$SOURCE_BRANCH" ] || export SOURCE_BRANCH=$BRANCH From c03e0fffc71405e04bd82cf70e3ac634f1ffc8dc Mon Sep 17 00:00:00 2001 From: David Newhall II Date: Sun, 21 Nov 2021 03:46:42 -0800 Subject: [PATCH 4/9] update readme --- init/archlinux/README.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/init/archlinux/README.md b/init/archlinux/README.md index 36ad3cdee..b075956fe 100644 --- a/init/archlinux/README.md +++ b/init/archlinux/README.md @@ -1,6 +1 @@ -This doesn't work yet. - -TODO: - -- Make Travis run `make aur`. -- Make Travis upload the built `PKGBUILD` file and `notifiarr.aur.install` file to the new `aur` repo. +This template file is built by Travis-CI and uploaded to a [different github repo](https://github.com/golift/aur). From feb33c5f97e6cd0545d68d317d48b449f0582b56 Mon Sep 17 00:00:00 2001 From: David Newhall II Date: Sun, 21 Nov 2021 03:51:16 -0800 Subject: [PATCH 5/9] fix secrets --- .secret_files.tar.enc | Bin 9232 -> 19984 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/.secret_files.tar.enc b/.secret_files.tar.enc index 2c71ca8ce50c8021092a40d7b4e8e3e7630b7f19..115c159e686638e94f61309d550a73530695d664 100644 GIT binary patch literal 19984 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 literal 9232 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 Date: Sun, 21 Nov 2021 21:24:24 -0800 Subject: [PATCH 6/9] protect git commands, fix arrays --- init/archlinux/PKGBUILD.template | 6 +++--- init/buildinfo.sh | 23 ++++++++++++----------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/init/archlinux/PKGBUILD.template b/init/archlinux/PKGBUILD.template index 3722be553..29f7ae6e7 100644 --- a/init/archlinux/PKGBUILD.template +++ b/init/archlinux/PKGBUILD.template @@ -2,11 +2,11 @@ pkgname={{BINARY}} pkgver={{VERSION}} pkgrel={{Iter}} pkgdesc='{{Desc}}' -arch=('x86_64', 'arm', 'armv6h', 'armv7h', 'aarch64', 'i686', 'pentium4') +arch=('x86_64' 'arm' 'armv6h' 'armv7h' 'aarch64' 'i686' 'pentium4') url='{{SOURCE_URL}}' license=('MIT') -makedepends=('go', 'upx', 'make') -source=('{{SOURCE_PATH}}') +makedepends=('go' 'upx' 'make', 'git') +source=("notifiarr-${pkgver}.tar.gz::{{SOURCE_PATH}}") sha256sums=('{{SHA256}}') configfile='{{CONFIG_FILE}}' install="${pkgname}.aur.install" diff --git a/init/buildinfo.sh b/init/buildinfo.sh index 733eec525..edd330c52 100644 --- a/init/buildinfo.sh +++ b/init/buildinfo.sh @@ -4,21 +4,22 @@ ########## VENDOR="Go Lift " - -# Dynamic. Recommend not changing. -VVERSION=$(git describe --abbrev=0 --tags $(git rev-list --tags --max-count=1) 2>/dev/null) -VERSION="$(echo $VVERSION | tr -d v | grep -E '^\S+$' || echo development)" -# This produces a 0 in some envirnoments (like Homebrew), but it's only used for packages. -ITERATION=$(git rev-list --count --all || echo 0) DATE="$(date -u +%Y-%m-%dT%H:%M:%SZ)" -COMMIT="$(git rev-parse --short HEAD || echo 0)" - -GIT_BRANCH="$(git rev-parse --abbrev-ref HEAD || echo unknown)" -BRANCH="${TRAVIS_BRANCH:-${GIT_BRANCH}}" - # Defines docker manifest/build types. BUILDS="linux:armhf:arm linux:arm64:arm64 linux:amd64:amd64 linux:i386:386" +if [ -x "$(which git)"]; then + # Dynamic. Recommend not changing. + VVERSION=$(git describe --abbrev=0 --tags $(git rev-list --tags --max-count=1) 2>/dev/null) + VERSION="$(echo $VVERSION | tr -d v | grep -E '^\S+$' || echo development)" + # This produces a 0 in some envirnoments (like Homebrew), but it's only used for packages. + ITERATION=$(git rev-list --count --all || echo 0) + COMMIT="$(git rev-parse --short HEAD || echo 0)" + + GIT_BRANCH="$(git rev-parse --abbrev-ref HEAD || echo unknown)" + BRANCH="${TRAVIS_BRANCH:-${GIT_BRANCH}}" +fi + export VENDOR VVERSION VERSION ITERATION DATE BRANCH COMMIT BUILDS [ "$GOFLAGS" != "" ] || export GOFLAGS="-trimpath -mod=readonly -modcacherw" From c3ac91dd6b36d114bd060d0d4045b666110986cc Mon Sep 17 00:00:00 2001 From: David Newhall II Date: Sun, 21 Nov 2021 21:28:54 -0800 Subject: [PATCH 7/9] protect git more --- init/archlinux/PKGBUILD.template | 2 +- init/buildinfo.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/init/archlinux/PKGBUILD.template b/init/archlinux/PKGBUILD.template index 29f7ae6e7..aa3f92e07 100644 --- a/init/archlinux/PKGBUILD.template +++ b/init/archlinux/PKGBUILD.template @@ -5,7 +5,7 @@ pkgdesc='{{Desc}}' arch=('x86_64' 'arm' 'armv6h' 'armv7h' 'aarch64' 'i686' 'pentium4') url='{{SOURCE_URL}}' license=('MIT') -makedepends=('go' 'upx' 'make', 'git') +makedepends=('go' 'upx' 'make') source=("notifiarr-${pkgver}.tar.gz::{{SOURCE_PATH}}") sha256sums=('{{SHA256}}') configfile='{{CONFIG_FILE}}' diff --git a/init/buildinfo.sh b/init/buildinfo.sh index edd330c52..780b7a6d2 100644 --- a/init/buildinfo.sh +++ b/init/buildinfo.sh @@ -8,7 +8,7 @@ DATE="$(date -u +%Y-%m-%dT%H:%M:%SZ)" # Defines docker manifest/build types. BUILDS="linux:armhf:arm linux:arm64:arm64 linux:amd64:amd64 linux:i386:386" -if [ -x "$(which git)"]; then +if [ -x "$(which git)" ] && git status > /dev/null 2>&1; then # Dynamic. Recommend not changing. VVERSION=$(git describe --abbrev=0 --tags $(git rev-list --tags --max-count=1) 2>/dev/null) VERSION="$(echo $VVERSION | tr -d v | grep -E '^\S+$' || echo development)" From ed491a24676254f13ff1653832157f0b24e3094b Mon Sep 17 00:00:00 2001 From: David Newhall II Date: Mon, 22 Nov 2021 00:11:56 -0800 Subject: [PATCH 8/9] make aur work --- Makefile | 15 ++++++----- init/archlinux/PKGBUILD.template | 46 ++++++++++++++++++++++++-------- init/buildinfo.sh | 18 +++++++------ 3 files changed, 53 insertions(+), 26 deletions(-) diff --git a/Makefile b/Makefile index 1dd469c81..96efaf349 100644 --- a/Makefile +++ b/Makefile @@ -19,6 +19,10 @@ ifeq ($(shell uname -ps),Darwin arm) UPXPATH= endif +ifeq ($(shell grep -o 'Arch Linux' /etc/issue 2>/dev/null),Arch Linux) + UPXPATH= +endif + # Travis CI passes the version in. Local builds get it from the current git tag. ifeq ($(VERSION),) include .metadata.make @@ -96,7 +100,7 @@ clean: rm -f $(BINARY) $(BINARY).*.{macos,freebsd,linux,exe,upx}{,.gz,.zip} $(BINARY).1{,.gz} $(BINARY).rb rm -f $(BINARY){_,-}*.{deb,rpm,txz} v*.tar.gz.sha256 examples/MANUAL .metadata.make rsrc_*.syso rm -f cmd/$(BINARY)/README{,.html} README{,.html} ./$(BINARY)_manual.html rsrc.syso $(MACAPP).app.zip - rm -f $(BINARY).aur.install PKGBUILD + rm -f $(BINARY).aur.install PKGBUILD $(BINARY).service rm -rf aur package_build_* release after-install-rendered.sh before-remove-rendered.sh $(MACAPP).app #################### @@ -311,16 +315,13 @@ before-remove-rendered.sh: # This is used for arch linux $(BINARY).aur.install: - echo "post_install() {" > $@ - sed -e "s/^/ /g" -e "s/{{BINARY}}/$(BINARY)/g" scripts/after-install.sh >> $@ - echo "}" >> $@ - echo "" >> $@ echo "post_upgrade() {" >> $@ - echo ' post_install $$1' >> $@ + echo " /bin/systemctl restart $(BINARY)" >> $@ echo "}" >> $@ echo "" >> $@ echo "pre_remove() {" >> $@ - sed -e "s/^/ /g" -e "s/{{BINARY}}/$(BINARY)/g" scripts/before-remove.sh >> $@ + echo " /bin/systemctl stop $(BINARY)" >> $@ + echo " /bin/systemctl disable $(BINARY)" >> $@ echo "}" >> $@ package_build_linux_386: package_build_linux linux386 diff --git a/init/archlinux/PKGBUILD.template b/init/archlinux/PKGBUILD.template index aa3f92e07..44448cfc7 100644 --- a/init/archlinux/PKGBUILD.template +++ b/init/archlinux/PKGBUILD.template @@ -9,32 +9,56 @@ makedepends=('go' 'upx' 'make') source=("notifiarr-${pkgver}.tar.gz::{{SOURCE_PATH}}") sha256sums=('{{SHA256}}') configfile='{{CONFIG_FILE}}' +backup=("etc/${pkgname}/${configfile}") install="${pkgname}.aur.install" build() { cd "$pkgname-$pkgver" - make man export EXTRA_LDFLAGS=-linkmode=external - export VERSION="${pkgver}" - export ITERATION="${pkgrel}" export GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw" - make linux - make "${pkgname}.service" + make man VERSION="${pkgver}" ITERATION="${pkgrel}" + make "${pkgname}.service" VERSION="${pkgver}" ITERATION="${pkgrel}" + + if [ "$CARCH" == "x86_64" ]; then + make linux VERSION="${pkgver}" ITERATION="${pkgrel}" + mv "$pkgname.amd64.linux" "$pkgname" + elif [ "$CARCH" == "arm" ] || [ "$CARCH" == "armv6h" ] || [ "$CARCH" == "armv7h" ]; then + make armhf VERSION="${pkgver}" ITERATION="${pkgrel}" + mv "$pkgname.armhf.linux" "$pkgname" + elif [ "$CARCH" == "aarch64" ]; then + make arm64 VERSION="${pkgver}" ITERATION="${pkgrel}" + mv "$pkgname.arm64.linux" "$pkgname" + elif [ "$CARCH" == "i686" ] || [ "$CARCH" == "pentium4" ]; then + make linux386 VERSION="${pkgver}" ITERATION="${pkgrel}" + mv "$pkgname.i386.linux" "$pkgname" + fi } check() { cd "$pkgname-$pkgver" - make test + go test ./... } package() { cd "$pkgname-$pkgver" + # Binary. install -Dm755 "${pkgname}" "${pkgdir}/usr/bin/${pkgname}" + # Directories. + install -dm0755 "${pkgdir}/share/doc/${pkgname}" \ + "${pkgdir}/usr/share/licenses/${pkgname}" "${pkgdir}/etc/${pkgname}" + # Man file. install -Dm644 "${pkgname}.1.gz" "${pkgdir}/share/man/man1/${pkgname}.1.gz" - install -Dm644 "examples/${configfile}.example" "${pkgdir}/etc/$pkgname/${configfile}.example" - [ -f "$pkgdir/etc/$pkgname/$configfile" ] || \ - install -Dm644 "examples/${configfile}.example" "${pkgdir}/etc/${pkgname}/${configfile}" - install -Dm644 *.html examples/* "$pkgdir"/share/doc/$pkgname/ - install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" + # Config file, ane example config file. + install -m644 "examples/${configfile}.example" "${pkgdir}/etc/$pkgname/${configfile}.example" + install -m644 "examples/${configfile}.example" "${pkgdir}/etc/${pkgname}/${configfile}" + # Extra documentation. + install -m644 *.html examples/* "${pkgdir}/share/doc/${pkgname}/" + # License. + install -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" + # User and group. + echo 'u notifiarr - "notifiarr.com client" -' > sysusers.conf + install -Dm0644 "sysusers.conf" "${pkgdir}/usr/lib/sysusers.d/notifiarr.conf" + rm sysusers.conf + # Systemd Service Unit. install -Dm644 "${pkgname}.service" "${pkgdir}/usr/lib/systemd/system/${pkgname}.service" } diff --git a/init/buildinfo.sh b/init/buildinfo.sh index 780b7a6d2..996318390 100644 --- a/init/buildinfo.sh +++ b/init/buildinfo.sh @@ -8,7 +8,15 @@ DATE="$(date -u +%Y-%m-%dT%H:%M:%SZ)" # Defines docker manifest/build types. BUILDS="linux:armhf:arm linux:arm64:arm64 linux:amd64:amd64 linux:i386:386" -if [ -x "$(which git)" ] && git status > /dev/null 2>&1; then +export VENDOR DATE BUILDS + +[ "$GOFLAGS" != "" ] || export GOFLAGS="-trimpath -mod=readonly -modcacherw" +export CGO_CPPFLAGS="${CPPFLAGS}" +export CGO_CFLAGS="${CFLAGS}" +export CGO_CXXFLAGS="${CXXFLAGS}" +export CGO_LDFLAGS="${LDFLAGS}" + +if git status > /dev/null 2>&1; then # Dynamic. Recommend not changing. VVERSION=$(git describe --abbrev=0 --tags $(git rev-list --tags --max-count=1) 2>/dev/null) VERSION="$(echo $VVERSION | tr -d v | grep -E '^\S+$' || echo development)" @@ -20,10 +28,4 @@ if [ -x "$(which git)" ] && git status > /dev/null 2>&1; then BRANCH="${TRAVIS_BRANCH:-${GIT_BRANCH}}" fi -export VENDOR VVERSION VERSION ITERATION DATE BRANCH COMMIT BUILDS - -[ "$GOFLAGS" != "" ] || export GOFLAGS="-trimpath -mod=readonly -modcacherw" -export CGO_CPPFLAGS="${CPPFLAGS}" -export CGO_CFLAGS="${CFLAGS}" -export CGO_CXXFLAGS="${CXXFLAGS}" -export CGO_LDFLAGS="${LDFLAGS}" +export VVERSION VERSION ITERATION BRANCH COMMIT From 57477c22c7c1343aeaa82710c5262cf78e3e77f5 Mon Sep 17 00:00:00 2001 From: David Newhall II Date: Mon, 22 Nov 2021 00:19:21 -0800 Subject: [PATCH 9/9] add srcinfo --- Makefile | 14 +++++++++++++- init/archlinux/PKGBUILD.template | 2 +- init/archlinux/SRCINFO.template | 21 +++++++++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 init/archlinux/SRCINFO.template diff --git a/Makefile b/Makefile index 96efaf349..8733a7751 100644 --- a/Makefile +++ b/Makefile @@ -208,9 +208,10 @@ $(MACAPP).app: macos [ -z "$(MACAPP)" ] || cp $(BINARY).amd64.macos init/macos/$(MACAPP).app/Contents/MacOS/$(MACAPP) [ -z "$(MACAPP)" ] || cp -rp init/macos/$(MACAPP).app $(MACAPP).app -aur: PKGBUILD $(BINARY).aur.install +aur: PKGBUILD SRCINFO $(BINARY).aur.install mkdir -p $@ mv PKGBUILD $(BINARY).aur.install $@/ + mv SRCINFO $@/.SRCINFO PKGBUILD: v$(VERSION).tar.gz.sha256 @echo "Creating 'aur' PKGBUILD file for $(BINARY) version '$(RPMVERSION)-$(ITERATION)'." @@ -224,6 +225,17 @@ PKGBUILD: v$(VERSION).tar.gz.sha256 -e "s%{{CONFIG_FILE}}%$(CONFIG_FILE)%g" \ init/archlinux/PKGBUILD.template | tee PKGBUILD +SRCINFO: v$(VERSION).tar.gz.sha256 + sed -e "s/{{VERSION}}/$(VERSION)/g" \ + -e "s/{{Iter}}/$(ITERATION)/g" \ + -e "s/{{SHA256}}/$(shell head -c64 $<)/g" \ + -e "s/{{Desc}}/$(DESC)/g" \ + -e "s%{{BINARY}}%$(BINARY)%g" \ + -e "s%{{SOURCE_URL}}%$(SOURCE_URL)%g" \ + -e "s%{{SOURCE_PATH}}%$(SOURCE_PATH)%g" \ + -e "s%{{CONFIG_FILE}}%$(CONFIG_FILE)%g" \ + init/archlinux/SRCINFO.template | tee SRCINFO + rpm: $(BINARY)-$(RPMVERSION)-$(ITERATION).x86_64.rpm $(BINARY)-$(RPMVERSION)-$(ITERATION).x86_64.rpm: package_build_linux check_fpm @echo "Building 'rpm' package for $(BINARY) version '$(RPMVERSION)-$(ITERATION)'." diff --git a/init/archlinux/PKGBUILD.template b/init/archlinux/PKGBUILD.template index 44448cfc7..c51bb1baa 100644 --- a/init/archlinux/PKGBUILD.template +++ b/init/archlinux/PKGBUILD.template @@ -5,7 +5,7 @@ pkgdesc='{{Desc}}' arch=('x86_64' 'arm' 'armv6h' 'armv7h' 'aarch64' 'i686' 'pentium4') url='{{SOURCE_URL}}' license=('MIT') -makedepends=('go' 'upx' 'make') +makedepends=('go' 'make') source=("notifiarr-${pkgver}.tar.gz::{{SOURCE_PATH}}") sha256sums=('{{SHA256}}') configfile='{{CONFIG_FILE}}' diff --git a/init/archlinux/SRCINFO.template b/init/archlinux/SRCINFO.template new file mode 100644 index 000000000..0c5b53c5a --- /dev/null +++ b/init/archlinux/SRCINFO.template @@ -0,0 +1,21 @@ +pkgbase = {{BINARY}} + pkgdesc = {{Desc}} + pkgver = {{VERSION}} + pkgrel = {{Iter}} + url = {{SOURCE_URL}} + install = {{BINARY}}.aur.install + arch = x86_64 + arch = arm + arch = armv6h + arch = armv7h + arch = aarch64 + arch = i686 + arch = pentium4 + license = MIT + makedepends = go + makedepends = make + backup = etc/{{BINARY}}/{{CONFIG_FILE}} + source = {{BINARY}}-{{VERSION}}.tar.gz::{{SOURCE_PATH}} + sha256sums = {{SHA256}} + +pkgname = {{BINARY}}