aboutsummaryrefslogtreecommitdiff
path: root/scripts/build_rpm.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build_rpm.sh')
-rwxr-xr-xscripts/build_rpm.sh36
1 files changed, 36 insertions, 0 deletions
diff --git a/scripts/build_rpm.sh b/scripts/build_rpm.sh
new file mode 100755
index 0000000..efffef3
--- /dev/null
+++ b/scripts/build_rpm.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+container_image_prefix=$1
+distro=$2
+app_name=$3
+arch=$4
+channel=$5
+
+version=`just version`
+staging="$(mktemp -d)"
+
+just dist
+cp _build/meson-dist/map-${version}.tar.xz "${staging}/"
+
+just vendor "${staging}/vendor"
+tar -cJf "${staging}/map-${version}-vendor.tar.xz" -C "${staging}" vendor
+rm -rf "${staging}/vendor"
+
+cp build-aux/rpm/map.spec "${staging}/"
+
+podman run --rm -v "${staging}:/build:Z" \
+ ${container_image_prefix}:${distro} \
+ bash -c "
+ mkdir -p ~/rpmbuild/{SOURCES,SPECS}
+ cp /build/map-*.tar.xz ~/rpmbuild/SOURCES/
+ cp /build/map.spec ~/rpmbuild/SPECS/
+ rpmbuild -bb ~/rpmbuild/SPECS/map.spec
+ mkdir -p /build/out
+ cp ~/rpmbuild/RPMS/${arch}/map-${version}-1.*.rpm /build/out/
+ "
+
+mkdir -p dist
+cp ${staging}/out/*.rpm "dist/${app_name}-${arch}-${channel}-${distro}.rpm"
+rm -rf "${staging}"