diff options
unstable/gnome-typewriter-menson: Snapshotting
Diffstat (limited to 'src/unstable/gnome-typewriter-meson/APKBUILD')
-rw-r--r-- | src/unstable/gnome-typewriter-meson/APKBUILD | 76 |
1 files changed, 72 insertions, 4 deletions
diff --git a/src/unstable/gnome-typewriter-meson/APKBUILD b/src/unstable/gnome-typewriter-meson/APKBUILD index dc9a959..41ea2f8 100644 --- a/src/unstable/gnome-typewriter-meson/APKBUILD +++ b/src/unstable/gnome-typewriter-meson/APKBUILD @@ -17,9 +17,8 @@ depends="" # .so's will get computed on their own by abuild - the above line rem makedepends="cargo meson findutils gettext glib-dev gtk-update-icon-cache desktop-file-utils pango-dev gdk-pixbuf-dev openssl-dev gtksourceview5-dev libadwaita-dev libpanel-dev blueprint-compiler" install="" subpackages="" -source="${_reponame}-${_reporef}.tar.gz::${_repourl}/-/archive/${_reporef}/${_reponame}-${_reporef}.tar.gz" -builddir="${srcdir}/${_reponame}-${_reporef}" -options="net" # cargo needs net +source="" +options="" provides="gnome-typewriter" # if complaints about schemas and icon cache etc appear, we may needa make a hook that runs `/usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas && /usr/bin/gtk4-update-icon-cache -q -t -f /usr/share/icons/hicolor && /usr/bin/update-desktop-database -q /usr/share/applications` (skipped hooks usually ran when DESTDIR isnt set) @@ -27,7 +26,75 @@ provides="gnome-typewriter" _pkgver="${pkgver}" if [[ "${pkgver}" != "${_reporef}" ]] && [[ "${pkgver}" != "v${_reporef}" ]]; then pkgver="${pkgver}_git${_reporefdate}";from_tag=false;else from_tag=true; fi +# prepare snapshotting environment so IPv6-only can work +if [[ "$DISALLOW_SNAPSHOTS" == "1" ]]; then + source="${source} + ${_reponame}-${_reporef}.tar.gz::${_repourl}/-/archive/${_reporef}/${_reponame}-${_reporef}.tar.gz" + builddir="${srcdir}/${_reponame}-${_reporef}" +else + _distpath="archive/gnome-typewriter" + # TODO: if we ever contribute this upstream, set VENDOR_SOURCE to default to dev.alpinelinux.org + _disturl="${VENDOR_SOURCE:-"consequences.neobot.systems"}:${DIST_UPLOAD_PATH:-""}/$_distpath/" + # example usage for local files: VENDOR_SOURCE_PROTOCOL=/var/cache/distfiles/ VENDOR_SOURCE=. + # example usage for neobot.systems: VENDOR_SOURCE=consequences.neobot.systems + source="${source} + ${_reponame}-${_reporef}.tar.gz::${VENDOR_SOURCE_PROTOCOL:-"https://"}${VENDOR_SOURCE:-"consequences.neobot.systems"}/${_distpath}/src.$pkgname-$pkgver-$_reporef.tar.gz + ${_reponame}-${_reporef}-vendor.tar.gz::${VENDOR_SOURCE_PROTOCOL:-"https://"}${VENDOR_SOURCE:-"consequences.neobot.systems"}/${_distpath}/$_srcdest/pkg.$pkgname-$pkgver-$_reporef.tar.gz" + builddir="${srcdir}/${pkgname}" +fi + +# and now we snapshot! +snapshot() { + clean + makedepends="git rsync tar gzip cargo" deps + + # Prepare Git Repo + _srcdest="${SRCDEST:-"$srcdir"}" + mkdir -p "$srcdir" "$_srcdest" + cd "${SRCDEST:-"$srcdir"}" + if ! [ -d $pkgname.git ]; then + mkdir "$pkgname.git" + cd "$pkgname.git" + git init + git remote add origin "$_repourl" + git fetch origin "$_reporef" || return 1 + else + cd "$pkgname.git" + git fetch origin "$_reporef" || return 1 + fi + + # Archive it + git archive --prefix="$pkgname/" -o "$_srcdest/src.$pkgname-$pkgver-$_reporef.tar.gz" "$_reporef" + + # Reset to the repo ref and run cargo vendor + git reset --hard "$_reporef" + cargo vendor vendor --locked + + tar czf "$_srcdest/pkg.$pkgname-$pkgver-$_reporef.tar.gz" vendor + + if [ -n "$_disturl" ]; then # should never happen but just incase + for archiveKind in src pkg; do + rsync --progress -La "$_srcdest/$archiveKind.$pkgname-$pkgver-$_reporef.tar.gz" "$_disturl" + done + fi +} + build() { + if [[ "$DISALLOW_SNAPSHOTS" != "1" ]]; then + mkdir -p ".cargo" + echo ' +[source.crates-io] +replace-with = "vendored-sources" + +[source."git+https://gitlab.gnome.org/JanGernert/sourceview5-rs.git?branch=test-fixes"] +git = "https://gitlab.gnome.org/JanGernert/sourceview5-rs.git" +branch = "test-fixes" +replace-with = "vendored-sources" + +[source.vendored-sources] +directory = "vendor"' >> ".cargo/config.toml" + ln -s "$srcdir/vendor" vendor + fi meson setup --optimization 3 --buildtype release --prefix /usr build meson compile -C build } @@ -41,5 +108,6 @@ package() { } sha512sums=" -be56cc434d996f3bab1844d7b981d562c3c2da51251e38d24c70957b13226ea7c89e19c3a8bc32d0d86f3bb08073c65205309ff588e29f1592aeb36b4da12c93 typewriter-37f6320be5fae77473e5e91919da530e45245f55.tar.gz +d25be1ac6c432cae46146ea0eb3702625cf859805e702476a75b06edfbfb325e84eee66c03b55021ba7fa1d0a9b912e72ec036037a2989a8dce71a78246e313e typewriter-37f6320be5fae77473e5e91919da530e45245f55.tar.gz +5bf2aa9513654bdd16a91551a96521cf8ca9c5b435274357665262b6d2ddf8936fb21ec326b3a67c61f021530f11726865ace9d11f303ae2c27a77e30ab54a28 typewriter-37f6320be5fae77473e5e91919da530e45245f55-vendor.tar.gz " |