diff --git a/packaging/Makefile b/packaging/Makefile index ac06deb..f9a35ee 100644 --- a/packaging/Makefile +++ b/packaging/Makefile @@ -1,5 +1,3 @@ -__ignored__ := $(shell ./copy-local-resources-into-package-folders.sh) - .PHONY: check-tools build-image build sign clean veryclean keyfile # If you run: @@ -18,7 +16,7 @@ DOCKER_SQUID_IP=$(shell docker inspect squid | preserves-tool convert -o unquote HTTP_PROXY=http://$(DOCKER_SQUID_IP):3128/ endif -ARCH?=aarch64 +export ARCH?=aarch64 DOCKER_ARCH=$(shell ./map_docker_arch.sh $(ARCH)) KEYFILE?=synit-apk-key UID:=$(shell id -u) @@ -43,15 +41,21 @@ DOCKER_BUILD_ARGS=\ --build-arg UID=$(UID) \ --build-arg BUILD_USER=$(BUILD_USER) -build: build-image +build: build-image prepare-all $(DOCKER_CMD) make -f Makefile.internal $@ KEYFILE=$(KEYFILE) sign: build-image $(DOCKER_CMD) make -f Makefile.internal $@ KEYFILE=$(KEYFILE) -%.apk: build-image +%.apk: build-image %.prepare $(DOCKER_CMD) make -f Makefile.internal $@ KEYFILE=$(KEYFILE) -%.checksum: build-image +%.checksum: build-image %.prepare $(DOCKER_CMD) make -f Makefile.internal $@ KEYFILE=$(KEYFILE) +prepare-all: $(patsubst %,%.prepare,$(file < package-list)) + +%.prepare: + @if [ -f packages/$*/Makefile.external ]; then \ + $(MAKE) -C packages/$* -f Makefile.external prepare; fi + clean: rm -f .build-image.* -docker rmi synit-build:aarch64 diff --git a/packaging/Makefile.internal b/packaging/Makefile.internal index 27098ec..4495308 100644 --- a/packaging/Makefile.internal +++ b/packaging/Makefile.internal @@ -7,19 +7,7 @@ ARCH = $(shell apk --print-arch) ARCH_TARGET = $(TARGET)/packages/$(ARCH) SIGNING_KEY = $(HOME)/.abuild/$(KEYFILE) -PACKAGES = \ - preserves-schemas.apk \ - preserves-tools.apk \ - py3-preserves.apk \ - py3-syndicate.apk \ - squeak-cog-vm.apk \ - squeak-stack-vm.apk \ - syndicate-schemas.apk \ - syndicate-server.apk \ - syndicate-sh.apk \ - synit-pid1.apk \ - synit-splash.apk \ - synit-config.apk \ +PACKAGES = $(patsubst %,%.apk,$(file < package-list)) build: $(PACKAGES) sign diff --git a/packaging/copy-local-resources-into-package-folders.sh b/packaging/copy-local-resources-into-package-folders.sh deleted file mode 100755 index a67607d..0000000 --- a/packaging/copy-local-resources-into-package-folders.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -rsync -a ../protocols packages/synit-config diff --git a/packaging/package-list b/packaging/package-list new file mode 100644 index 0000000..ca94628 --- /dev/null +++ b/packaging/package-list @@ -0,0 +1,12 @@ +preserves-schemas +preserves-tools +py3-preserves +py3-syndicate +squeak-cog-vm +squeak-stack-vm +syndicate-schemas +syndicate-server +syndicate-sh +synit-pid1 +synit-splash +synit-config diff --git a/packaging/packages/synit-config/Makefile.external b/packaging/packages/synit-config/Makefile.external new file mode 100644 index 0000000..a42e0fd --- /dev/null +++ b/packaging/packages/synit-config/Makefile.external @@ -0,0 +1,4 @@ +# -*- makefile -*- + +prepare: + rsync -a ../../../protocols . diff --git a/packaging/packages/synit-pid1/.gitignore b/packaging/packages/synit-pid1/.gitignore index 12fb65c..77a3d04 100644 --- a/packaging/packages/synit-pid1/.gitignore +++ b/packaging/packages/synit-pid1/.gitignore @@ -1 +1,5 @@ buildlog.* +synit-pid1.x86_64 +synit-pid1.armv7 +synit-pid1.aarch64 +VERSION diff --git a/packaging/packages/synit-pid1/APKBUILD b/packaging/packages/synit-pid1/APKBUILD index 1aaa357..59a44ad 100644 --- a/packaging/packages/synit-pid1/APKBUILD +++ b/packaging/packages/synit-pid1/APKBUILD @@ -1,19 +1,15 @@ # Contributor: Tony Garnock-Jones # Maintainer: Tony Garnock-Jones pkgname=synit-pid1 -pkgver=0.0.2 -pkgrel=1 +pkgver=$(cat VERSION) +pkgrel=$(date '+%Y%m%d%H%M%S') pkgdesc="synit pid 1 program" url="https://synit.org/" arch="all" license="GPLv3" depends="syndicate-server s6" makedepends="" -source=" -synit-pid1.aarch64 -synit-pid1.armv7 -synit-pid1.x86_64 -" +source="" builddir="$srcdir/" options="!check" @@ -23,12 +19,6 @@ build() { package() { mkdir -p "$pkgdir/sbin" - cp -p synit-pid1.${CARCH} "$pkgdir/sbin/synit-pid1" + cp -p "$startdir/synit-pid1.${CARCH}" "$pkgdir/sbin/synit-pid1" cp -p "$startdir/synit-log" "$pkgdir/sbin/synit-log" } - -sha512sums=" -03ee111c5b4d2da50219a7ba95e4afdcc90e485866472e483c8ecdd6bdc824ce3c0d6565622afb0af6372f34f93c9ca2f536c224f45868957610fd425cc8640b synit-pid1.aarch64 -8c8b836e5aace4fb36c474495752ff661dd75548b6e0d779171b7508194608721982c726ceb30e30b8e21fe776de8c4150787191d482d4feeb2903765f6269b3 synit-pid1.armv7 -aa993cd216e989162586c08d9656e3fd3c715430977f659c1b2fcc35311cc7936d4f39acec9c997e1be1cd6dc8563d6b8b46ce905fecd87711a9973043a2d063 synit-pid1.x86_64 -" diff --git a/packaging/packages/synit-pid1/Makefile.external b/packaging/packages/synit-pid1/Makefile.external new file mode 100644 index 0000000..38d28db --- /dev/null +++ b/packaging/packages/synit-pid1/Makefile.external @@ -0,0 +1,9 @@ +# -*- makefile -*- + +prepare: + rm -f synit-pid1.$(ARCH) + $(MAKE) -C ../../../synit-pid1 $(ARCH)-binary-release + cp -p ../../../synit-pid1/target/$(ARCH)-*/release/synit-pid1 synit-pid1.$(ARCH) + (cd ../../../synit-pid1 && cargo metadata --format-version 1) | \ + preserves-tool convert --output-format unquoted \ + --select '. "packages" / [. "name" = "synit-pid1"] . "version"' > VERSION