aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorRuben Beltran del Rio <jj@r.bdr.sh>2026-03-23 20:52:55 +0100
committerRubén Beltrán del Río <jj@r.bdr.sh>2026-04-05 21:21:51 +0200
commitd9245d341ed1f258a3dd1073cdfa656115c5b26d (patch)
tree17145053f56cd7a3c99377583b8b3a738931422d /scripts
parent462d1458c0058ba9d41d6dc7538f6004b3de3c3e (diff)
Adapt rest of packaging to use mesonmeson
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/build_appimage.sh37
-rwxr-xr-xscripts/build_arch.sh33
-rwxr-xr-xscripts/build_deb.sh31
-rwxr-xr-xscripts/build_rpm.sh36
-rwxr-xr-xscripts/sync_versions.sh20
5 files changed, 157 insertions, 0 deletions
diff --git a/scripts/build_appimage.sh b/scripts/build_appimage.sh
new file mode 100755
index 0000000..d39f506
--- /dev/null
+++ b/scripts/build_appimage.sh
@@ -0,0 +1,37 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+container_image_prefix=$1
+distro=$2
+app_name=$3
+arch=$4
+channel=$5
+linuxdeploy=$6
+
+version=`just version`
+staging="$(mktemp -d)"
+
+just dist
+tar -xJf "_build/meson-dist/map-${version}.tar.xz" -C "${staging}/"
+cp ${linuxdeploy} "${staging}/linuxdeploy.AppImage"
+
+podman run --rm -v "${staging}:/build:Z" \
+ ${container_image_prefix}:${distro} \
+ bash -c "
+ cd /build/map-${version}
+ meson setup --prefix=/usr _build
+ meson compile -C _build
+ DESTDIR=/build/appdir meson install -C _build
+ cd /build
+ APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=true /build/linuxdeploy.AppImage \
+ --appdir=/build/appdir --output=appimage \
+ --desktop-file=/build/appdir/usr/share/applications/systems.tranquil.Map.desktop \
+ --icon-file=/build/appdir/usr/share/icons/hicolor/scalable/apps/systems.tranquil.Map.svg
+ mkdir -p /build/out
+ mv /build/Map*.AppImage /build/out/
+ "
+
+mkdir -p dist
+mv ${staging}/out/*.AppImage "dist/${app_name}-${arch}-${channel}.AppImage"
+rm -rf "${staging}"
diff --git a/scripts/build_arch.sh b/scripts/build_arch.sh
new file mode 100755
index 0000000..602b31d
--- /dev/null
+++ b/scripts/build_arch.sh
@@ -0,0 +1,33 @@
+#!/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}/"
+
+cp build-aux/arch/PKGBUILD "${staging}/"
+
+podman run --rm -v "${staging}:/build:Z" \
+ ${container_image_prefix}:${distro} \
+ bash -c "
+ mkdir -p /tmp/pkg
+ cp /build/*.tar.xz /tmp/pkg
+ cp /build/PKGBUILD /tmp/pkg
+ chown -R builder:builder /tmp/pkg
+ su builder -c 'cd /tmp/pkg && PKGEXT=.pkg.tar.gz makepkg -f'
+ mkdir -p /build/out
+ cp /tmp/pkg/map-${version}-1-${arch}.pkg.tar.gz /build/out/
+ "
+
+mkdir -p dist
+cp ${staging}/out/*.pkg.tar.gz "dist/${app_name}-${arch}-${channel}-${distro}.pkg.tar.gz"
+rm -rf "${staging}"
diff --git a/scripts/build_deb.sh b/scripts/build_deb.sh
new file mode 100755
index 0000000..66b51fa
--- /dev/null
+++ b/scripts/build_deb.sh
@@ -0,0 +1,31 @@
+#!/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}/${app_name}_${version}.orig.tar.xz"
+tar -xJf "${staging}/${app_name}_${version}.orig.tar.xz" -C "${staging}"
+mkdir -p ${staging}/${app_name}-${version}
+cp -r build-aux/debian "${staging}/${app_name}-${version}/debian"
+
+podman run --rm -v "${staging}:/build:Z" \
+ ${container_image_prefix}:${distro} \
+ bash -c "
+ cd /build/${app_name}-${version}
+ dpkg-buildpackage -us -uc -b
+ mkdir -p /build/out
+ cp /build/${app_name}_${version}*_*.deb /build/out/
+ "
+
+mkdir -p dist
+cp ${staging}/out/*.deb "dist/${app_name}-${arch}-${channel}-${distro}.deb"
+rm -rf "${staging}"
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}"
diff --git a/scripts/sync_versions.sh b/scripts/sync_versions.sh
new file mode 100755
index 0000000..f3955ef
--- /dev/null
+++ b/scripts/sync_versions.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+
+version=`just version`
+
+echo "Using version from meson.build: ${version}"
+
+# Rust Cargo.toml
+echo -ne "\tUpdating: Cargo.toml"
+sed -i "s/^version = \"[^\"]*\"$/version = \"$version\"/" Cargo.toml
+echo -e "\r\tUpdated: Cargo.toml "
+
+# Arch PKGBUILD
+echo -ne "\tUpdating: PKGBUILD"
+sed -i "s/^pkgver=.*$/pkgver=$version/" build-aux/arch/PKGBUILD
+echo -e "\r\tUpdated: PKGBUILD "
+
+# Fedora RPM Spec
+echo -ne "\tUpdating: map.spec"
+sed -i "s/^Version: .*$/Version: $version/" build-aux/rpm/map.spec
+echo -e "\r\tUpdated: map.spec "