summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorISSOtm2024-03-06 17:42:53 +0100
committerISSOtm2024-03-06 17:42:53 +0100
commite508d1f9e3678f95c4c9ea17cc5b009f952571e4 (patch)
treeb369a7cf3b2ca7eedeae5d76a367c1abd41cd3a7
downloadaur-e508d1f9e3678f95c4c9ea17cc5b009f952571e4.tar.gz
Initial upload: hugetracker 1.0.5-1
-rw-r--r--.SRCINFO36
-rw-r--r--.gitignore5
-rw-r--r--PKGBUILD92
-rw-r--r--default_runtime_dir.patch13
4 files changed, 146 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..4f29e996f2ef
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,36 @@
+pkgbase = hugetracker
+ pkgdesc = The music composition suite for the Nintendo Game Boy
+ pkgver = 1.0.5
+ pkgrel = 1
+ url = https://nickfa.ro/index.php?title=HUGETracker
+ arch = x86_64
+ license = custom:public domain
+ makedepends = fpc
+ makedepends = git
+ makedepends = lazarus
+ depends = fontconfig
+ depends = gdk-pixbuf2
+ depends = glib2
+ depends = gtk2
+ depends = pango
+ depends = rgbds>=0.5.0
+ depends = sdl2
+ depends = libatk-1.0.so
+ depends = libcairo.so
+ optdepends = ffmpeg: "Export song" functionality
+ provides = hugetracker
+ conflicts = hugetracker
+ source = hUGETracker.tar.gz::https://github.com/SuperDisk/hUGETracker/archive/refs/tags/v1.0.5.tar.gz
+ source = Pascal-SDL-2-Headers.tar.gz::https://github.com/ev1313/Pascal-SDL-2-Headers/archive/088eeb3af8b680898d9fcaff390eddce9744ee51.tar.gz
+ source = bgrabitmap.tar.gz::https://github.com/bgrabitmap/bgrabitmap/archive/2814b069d55f726b9f3b4774d85d00dd72be9c05.tar.gz
+ source = hUGEDriver.tar.gz::https://github.com/SuperDisk/hUGEDriver/archive/df5a07ba1d684bf25b1de949ac0d9521a8937c32.tar.gz
+ source = rackctls.tar.gz::https://github.com/olivluca/rackctls/archive/15c50fb5dd398875a274b3aa2c36aa769d145a11.tar.gz
+ source = default_runtime_dir.patch
+ sha256sums = 19524290997dc8c04b2b5e42e20b7acf5430b6a8ac42366b9c12c8bc9e8f36c9
+ sha256sums = 70a6b029365b9cb3c52628ea1419c5f2e379a2d960510560e6e730c8c5f907dc
+ sha256sums = d9daea6027be28f6b2c30ee0fdd1c7fca8cc715d1bbb972403e844a42fa0f07c
+ sha256sums = a2f19f1ec957c5ba17f981c277687098cc874002874533a0b2c461a5a9c6c819
+ sha256sums = f069ba10fa267564a0bd88488e4d4ad31d013b07edadbf760f8b1197fba04042
+ sha256sums = 59e64986a039fc6dece071b94930f5855ff2d0c1a9a5740ad7af13d9d74b023f
+
+pkgname = hugetracker
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..9b372089a04f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+~*
+/src
+/pkg
+/hugetracker-*.pkg.tar.*
+/*.tar.gz
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..c0f8822d70da
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,92 @@
+# Maintainer: Eldred Habert <arch@eldred.fr>
+pkgname=hugetracker
+pkgver=1.0.5
+pkgrel=1
+pkgdesc='The music composition suite for the Nintendo Game Boy'
+arch=('x86_64')
+url='https://nickfa.ro/index.php?title=HUGETracker'
+license=('custom:public domain')
+provides=('hugetracker')
+conflicts=('hugetracker')
+makedepends=('fpc' 'git' 'lazarus')
+# `rgbds` is shelled out to at runtime, but namcap doesn't know that.
+# The program also explicitly makes calls to `fontconfig` and `pango`, so mark them
+# explicitly, despite namcap's complaints.
+depends=(fontconfig gdk-pixbuf2 glib2 gtk2 pango 'rgbds>=0.5.0' sdl2
+ libatk-1.0.so libcairo.so)
+optdepends=('ffmpeg: "Export song" functionality')
+source=("hUGETracker.tar.gz::https://github.com/SuperDisk/hUGETracker/archive/refs/tags/v${pkgver}.tar.gz"
+ 'Pascal-SDL-2-Headers.tar.gz::https://github.com/ev1313/Pascal-SDL-2-Headers/archive/088eeb3af8b680898d9fcaff390eddce9744ee51.tar.gz'
+ 'bgrabitmap.tar.gz::https://github.com/bgrabitmap/bgrabitmap/archive/2814b069d55f726b9f3b4774d85d00dd72be9c05.tar.gz'
+ 'hUGEDriver.tar.gz::https://github.com/SuperDisk/hUGEDriver/archive/df5a07ba1d684bf25b1de949ac0d9521a8937c32.tar.gz'
+ 'rackctls.tar.gz::https://github.com/olivluca/rackctls/archive/15c50fb5dd398875a274b3aa2c36aa769d145a11.tar.gz'
+ 'default_runtime_dir.patch')
+sha256sums=('19524290997dc8c04b2b5e42e20b7acf5430b6a8ac42366b9c12c8bc9e8f36c9'
+ '70a6b029365b9cb3c52628ea1419c5f2e379a2d960510560e6e730c8c5f907dc'
+ 'd9daea6027be28f6b2c30ee0fdd1c7fca8cc715d1bbb972403e844a42fa0f07c'
+ 'a2f19f1ec957c5ba17f981c277687098cc874002874533a0b2c461a5a9c6c819'
+ 'f069ba10fa267564a0bd88488e4d4ad31d013b07edadbf760f8b1197fba04042'
+ '59e64986a039fc6dece071b94930f5855ff2d0c1a9a5740ad7af13d9d74b023f')
+
+
+## CONFIGURATION
+# These can be overridden from the environment if desired.
+
+# Lazarus base directory
+# Required since `~/.lazarus/environmentoptions.xml` may not contain a `LazarusDirectory` entry.
+_lazdir="${LAZDIR:-/usr/lib/lazarus}"
+
+
+prepare() {
+ # TODO: apply patch to pass `ld` flags
+ cd "$srcdir/hUGETracker-$pkgver"
+
+ for _archive in ../*.tar.gz; do
+ [[ "$_archive" != ../hUGETracker.tar.gz ]] || continue
+
+ local _module=$(basename "${_archive%.tar.gz}")
+ local _submodule=$(sed -E "/$_module/ ! d; s/^\s*path\s*=\s*(.+)$/\1/; t; d" .gitmodules)
+ rmdir "$_submodule"
+ local _target=$(tar tf "$_archive" | head -n 1)
+ if ! [ -d "../$_target" ]; then # Sanity check, to print a user-friendly error message instead of cryptic "No such file or directory" error in build().
+ printf 'The packager messed up: "%s" does not exist!\n' "$_target"
+ false
+ fi
+ local _link=$(realpath --relative-to "$(dirname "$_submodule")" "../$_target")
+ ln -svT "$_link" "$_submodule"
+ done
+
+ # Copy the "dedicated to the public domain" line as a makeshift license file.
+ grep 'public domain' README.md >LICENSE
+
+ patch -p1 -N <"$srcdir/default_runtime_dir.patch"
+}
+
+build() {
+ cd "$srcdir/hUGETracker-$pkgver"
+
+ lazbuild --lazarusdir="${_lazdir}" --add-package-link src/rackctls/RackCtlsPkg.lpk
+ lazbuild --lazarusdir="${_lazdir}" --add-package-link src/bgrabitmap/bgrabitmap/bgrabitmappack.lpk
+ lazbuild --lazarusdir="${_lazdir}" src/hUGETracker.lpi --build-mode="Production Linux" --ws=gtk2
+
+ rgblink <(rgbasm -E -i src/hUGEDriver src/hUGEDriver/hUGEDriver.asm -o -) \
+ <(rgbasm -i src/hUGEDriver/include src/halt.asm -o -) \
+ -n halt.sym -o - | rgbfix -vp 0xFF - >halt.gb
+
+ lazbuild --lazarusdir="${_lazdir}" src/uge2source/uge2source.lpi --build-mode="Default"
+}
+
+package() {
+ cd "$srcdir/hUGETracker-$pkgver"
+
+ install -Dvm 644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+
+ install -Dvsm 755 src/Release/hUGETracker "$pkgdir/usr/bin/hugetracker"
+
+ install -Dvm 644 fonts/PixeliteTTF.ttf "$pkgdir/usr/share/hugetracker/PixeliteTTF.ttf"
+ install -Dvm 644 -t "$pkgdir/usr/share/hugetracker/" halt.{gb,sym}
+ install -Dvm 644 -t "$pkgdir/usr/share/hugetracker/hUGEDriver" src/hUGEDriver/{*.asm,include/*}
+ find sample-songs -maxdepth 1 -type f -exec install -Dvm 644 -t "$pkgdir/usr/share/hugetracker/Sample Songs/" '{}' +
+
+ install -Dvsm 755 src/uge2source/uge2source "$pkgdir/usr/bin/uge2source"
+}
diff --git a/default_runtime_dir.patch b/default_runtime_dir.patch
new file mode 100644
index 000000000000..49df22115315
--- /dev/null
+++ b/default_runtime_dir.patch
@@ -0,0 +1,13 @@
+diff --git a/src/hugesettings.pas b/src/hugesettings.pas
+index 148e8af..fc3e241 100644
+--- a/src/hugesettings.pas
++++ b/src/hugesettings.pas
+@@ -93,7 +93,7 @@ begin
+
+ SetupDirectoryParameter('conf_dir', XDGConfigDir, ConfDir);
+ SetupDirectoryParameter('cache_dir', XDGCacheDir, CacheDir);
+- SetupDirectoryParameter('runtime_dir', '.', RuntimeDir);
++ SetupDirectoryParameter('runtime_dir', '/usr/share/hugetracker', RuntimeDir);
+ {$endif}
+
+ TrackerSettings := TTrackerSettings.Create;