diff options
author | Will Thompson <will@willthompson.co.uk> | 2020-07-30 14:35:38 +0100 |
---|---|---|
committer | Will Thompson <will@willthompson.co.uk> | 2020-08-06 16:57:58 +0100 |
commit | ad676080a9fc73e0d2d6deaa678e938665fe6e9f (patch) | |
tree | 99fb57c1d09ff1e6b58bdcffad6de96a60c9ca72 | |
parent | 36b1d769683818900ea079880c5c82122c2e19da (diff) |
Add Flatpak manifest generated by cabal-flatpakcabal-flatpak
This manifest was generated with
https://hackage.haskell.org/package/cabal-flatpak in the following
rather convoluted way:
0. Patch cabal-flatpak to always include alex and happy in the build
plan
1. Install cabal-flatpak (on the host system)
2. Generate a build plan for bustle-0.8.0:
cd ~/tmp
cabal unpack bustle-0.8.0
cd bustle-0.8.0
cabal new-build --dry-run --disable-tests --disable-benchmarks --flags=-hgettext
3. Run cabal-flatpak against that plan
4. Build the resulting manifest with --stop-at=libpcap
5. Enter the build environment with `flatpak-builder --run _build/ flatpak/org.freedesktop.Bustle.json bash`
6. Generate a new build plan within that build environment
7. Re-run cabal-flatpak
8. Manually edit the resulting manifest to add a final stanza to run make
Step 0 is needed because gtk2hs has a build-tool dependency on alex and
happy executables, but cabal-flatpak upstream only includes library
dependencies.
Steps 4-7 are needed because cabal on the host system will use whatever
library versions happen to be installed as part of its build plan. These
may conflict with the library versions present in the GHC distribution
used by cabal-flatpak. On my system the result failed to build.
Step 8 is needed because the Cabal-based build system does not install
appdata, icons, ...
-rw-r--r-- | flatpak/Makefile | 25 | ||||
-rw-r--r-- | flatpak/activate-hs.patch | 23 | ||||
-rw-r--r-- | flatpak/help2man.json | 16 | ||||
-rw-r--r-- | flatpak/libpcap.json | 18 | ||||
-rw-r--r-- | flatpak/org.freedesktop.Bustle.cabal.json | 34 | ||||
-rw-r--r-- | flatpak/org.freedesktop.Bustle.json | 517 | ||||
-rw-r--r-- | flatpak/org.freedesktop.Bustle.yaml | 163 |
7 files changed, 585 insertions, 211 deletions
diff --git a/flatpak/Makefile b/flatpak/Makefile deleted file mode 100644 index c5f43c0..0000000 --- a/flatpak/Makefile +++ /dev/null @@ -1,25 +0,0 @@ -# vim: syntax=make -EXTRA = --extra-lib-dirs=$(LD_LIBRARY_PATH) --extra-include-dirs=$(C_INCLUDE_PATH) - -all: build-. - -# make build-foo to build subdirectory foo -# make build-. to build top-level directory -# cabal install -j does not pass -j to ghc! -# -# Write a mostly-blank config file with no remote repositories. This causes a -# warning, but without this cabal will attempt to access hackage.haskell.org -# and fail because there is no network access. -build-%: - mkdir -p $$HOME/.cabal - echo 'jobs: $(FLATPAK_BUILDER_N_JOBS)' > $$HOME/.cabal/config - - ( cd $* && cabal configure --global $(EXTRA) ) - ( cd $* && cabal build -j$(FLATPAK_BUILDER_N_JOBS) ) - ( cd $* && cabal copy ) - ( cd $* && cabal register ) - -install: - -# Don't run rules within this file in parallel -.NOTPARALLEL: diff --git a/flatpak/activate-hs.patch b/flatpak/activate-hs.patch deleted file mode 100644 index e56731a..0000000 --- a/flatpak/activate-hs.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- haskell-platform-8.0.2-unknown-posix--full-x86_64/usr/local/haskell/ghc-8.0.2-x86_64/bin/activate-hs.orig 2017-07-20 09:23:35.143426913 +0100 -+++ haskell-platform-8.0.2-unknown-posix--full-x86_64/usr/local/haskell/ghc-8.0.2-x86_64/bin/activate-hs 2017-07-20 09:24:13.346444238 +0100 -@@ -80,13 +80,13 @@ - ### Root check - ### - --if [ "$dryrun" = "no" -a `id -u` -ne 0 ] --then -- echo "You must be root to activate a particular Haskell Platform." -- echo "Please rerun this command sudo:" -- echo " sudo $0 $originalArgs" -- exit 1 --fi -+# if [ "$dryrun" = "no" -a `id -u` -ne 0 ] -+# then -+# echo "You must be root to activate a particular Haskell Platform." -+# echo "Please rerun this command sudo:" -+# echo " sudo $0 $originalArgs" -+# exit 1 -+# fi - - - ### diff --git a/flatpak/help2man.json b/flatpak/help2man.json new file mode 100644 index 0000000..dc862bf --- /dev/null +++ b/flatpak/help2man.json @@ -0,0 +1,16 @@ +{ + "//": "for the man page!", + "name": "help2man", + "buildsystem": "autotools", + "sources": [ + { + "type": "archive", + "url": "https://ftpmirror.gnu.org/help2man/help2man-1.47.4.tar.xz", + "sha256": "d4ecf697d13f14dd1a78c5995f06459bff706fd1ce593d1c02d81667c0207753" + } + ], + "//": "Nothing needed at runtime", + "cleanup": [ + "*" + ] +} diff --git a/flatpak/libpcap.json b/flatpak/libpcap.json new file mode 100644 index 0000000..f528d40 --- /dev/null +++ b/flatpak/libpcap.json @@ -0,0 +1,18 @@ +{ + "name": "libpcap", + "buildsystem": "autotools", + "sources": [ + { + "type": "archive", + "url": "https://www.tcpdump.org/release/libpcap-1.9.1.tar.gz", + "sha256": "635237637c5b619bcceba91900666b64d56ecb7be63f298f601ec786ce087094" + } + ], + "cleanup": [ + "/bin", + "/share/man", + "*.a", + "*.h", + "*.pc" + ] +} diff --git a/flatpak/org.freedesktop.Bustle.cabal.json b/flatpak/org.freedesktop.Bustle.cabal.json new file mode 100644 index 0000000..38d3012 --- /dev/null +++ b/flatpak/org.freedesktop.Bustle.cabal.json @@ -0,0 +1,34 @@ +{ + "base": + { + "app-id": "org.freedesktop.Bustle", + "runtime": "org.freedesktop.Platform", + "runtime-version": "19.08", + "sdk": "org.freedesktop.Sdk", + "command": "bustle", + "finish-args": [ + "--socket=x11", + "--socket=wayland", + "--socket=system-bus", + "--socket=session-bus", + "--filesystem=host" + ], + "cleanup": [], + "cleanup-commands": [ + "find /app/share/ -type f -not -ipath '*bustle*' -delete" + ], + "modules": [ + "libpcap.json", + "help2man.json" + ] + }, + "main-package": "bustle", + "//": [ + "-j", + "--force-reinstalls" + ], + "cabal-configure-options": [ + "--extra-include-dirs=/app/include", + "--extra-lib-dirs=/app/lib' + ] +} diff --git a/flatpak/org.freedesktop.Bustle.json b/flatpak/org.freedesktop.Bustle.json new file mode 100644 index 0000000..0a0c33b --- /dev/null +++ b/flatpak/org.freedesktop.Bustle.json @@ -0,0 +1,517 @@ +{ + "runtime": "org.freedesktop.Platform", + "sdk": "org.freedesktop.Sdk", + "command": "bustle", + "cleanup": [ + "/lib/ghc-8.6.5", + "/lib/x86_64-linux-ghc-8.6.5", + "/share/doc/x86_64-linux-ghc-8.6.5", + "/bin/alex", + "/bin/happy", + "/bin/gtk2hs*" + ], + "cleanup-commands": [ + "find /app/share/ -maxdepth 2 -mindepth 2 -type d -path '*ghc*' -not -path '*bustle*' -exec rm -r {} +" + ], + "runtime-version": "19.08", + "modules": [ + { + "only-arches": [ + "x86_64" + ], + "cleanup": [ + "/bin/ghc", + "/bin/ghc-8.6.5", + "/bin/ghc-pkg", + "/bin/ghc-pkg-8.6.5", + "/bin/ghci", + "/bin/ghci-8.6.5", + "/bin/haddock", + "/bin/haddock-ghc-8.6.5", + "/bin/runghc", + "/bin/runghc-8.6.5", + "/bin/runhaskell", + "/bin/hp2ps", + "/bin/hpc", + "/bin/hsc2hs", + "/lib/libtinfo.so.5", + "/lib/debug", + "/lib/ghc-8.6.5", + "/share/man", + "/share/doc/ghc-8.6.5" + ], + "sources": [ + { + "url": "https://downloads.haskell.org/ghc/8.6.5/ghc-8.6.5-x86_64-deb9-linux.tar.xz", + "type": "archive", + "sha256": "bc75f5601a9f41d58b2ba161b9e28fad52143a7229060f1e084168d9b2e914df" + } + ], + "build-commands": [ + "mkdir -p /app/lib", + "ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so /app/lib/libtinfo.so.5", + "./configure --prefix=/app", + "make install" + ], + "name": "ghc-8.6.5-x86_64", + "buildsystem": "simple", + "builddir": false + }, + "libpcap.json", + "help2man.json", + { + "sources": [ + { + "url": "https://hackage.haskell.org/package/alex-3.2.5/alex-3.2.5.tar.gz", + "type": "archive", + "sha256": "b77c8a1270767c64e2adb21a6e91ee7cd904ba17edae17bc20fd03da5256e0e3" + }, + { + "dest-filename": "alex.cabal", + "url": "https://hackage.haskell.org/package/alex-3.2.5/revision/0.cabal", + "type": "file", + "sha256": "af0c4aac67849d8b35e8c16063517642a5c6b809d09fdb040ed9369f91cb26fb" + } + ], + "build-commands": [ + "echo '#! /usr/bin/env runhaskell' >Setup.txt", + "echo '> import Distribution.Simple' >>Setup.txt", + "echo '> main = defaultMain' >>Setup.txt", + "ln -s Setup.txt Setup.lhs || true", + "runhaskell Setup configure --prefix=/app --extra-include-dirs=/app/include --extra-lib-dirs=/app/lib", + "runhaskell Setup build", + "runhaskell Setup install" + ], + "name": "alex", + "buildsystem": "simple", + "builddir": false + }, + { + "sources": [ + { + "url": "https://hackage.haskell.org/package/happy-1.19.12/happy-1.19.12.tar.gz", + "type": "archive", + "sha256": "fb9a23e41401711a3b288f93cf0a66db9f97da1ce32ec4fffea4b78a0daeb40f" + }, + { + "dest-filename": "happy.cabal", + "url": "https://hackage.haskell.org/package/happy-1.19.12/revision/0.cabal", + "type": "file", + "sha256": "acc67bfbf3af87892766781dd064c9447181ea81269a7a1e5fc9ace4a8fa4768" + } + ], + "build-commands": [ + "echo '#! /usr/bin/env runhaskell' >Setup.txt", + "echo '> import Distribution.Simple' >>Setup.txt", + "echo '> main = defaultMain' >>Setup.txt", + "ln -s Setup.txt Setup.lhs || true", + "runhaskell Setup configure --prefix=/app --extra-include-dirs=/app/include --extra-lib-dirs=/app/lib", + "runhaskell Setup build", + "runhaskell Setup install" + ], + "name": "happy", + "buildsystem": "simple", + "builddir": false + }, + { + "sources": [ + { + "url": "https://hackage.haskell.org/package/hashable-1.3.0.0/hashable-1.3.0.0.tar.gz", + "type": "archive", + "sha256": "822e5413fbccca6ae884d3aba4066422c8b5d58d23d18b9ecb5c03273bb19ab4" + }, + { + "dest-filename": "hashable.cabal", + "url": "https://hackage.haskell.org/package/hashable-1.3.0.0/revision/1.cabal", + "type": "file", + "sha256": "4c70f1407881059e93550d3742191254296b2737b793a742bd901348fb3e1fb1" + } + ], + "build-commands": [ + "echo '#! /usr/bin/env runhaskell' >Setup.txt", + "echo '> import Distribution.Simple' >>Setup.txt", + "echo '> main = defaultMain' >>Setup.txt", + "ln -s Setup.txt Setup.lhs || true", + "runhaskell Setup configure --prefix=/app --extra-include-dirs=/app/include --extra-lib-dirs=/app/lib", + "runhaskell Setup build", + "runhaskell Setup install" + ], + "name": "hashable", + "buildsystem": "simple", + "builddir": false + }, + { + "sources": [ + { + "url": "https://hackage.haskell.org/package/primitive-0.7.1.0/primitive-0.7.1.0.tar.gz", + "type": "archive", + "sha256": "6bebecfdf2a57787d9fd5231bfd612b65a92edd7b33a973b2a0f11312b89a3f0" + }, + { + "dest-filename": "primitive.cabal", + "url": "https://hackage.haskell.org/package/primitive-0.7.1.0/revision/0.cabal", + "type": "file", + "sha256": "6a237bb338bcc43193077ff8e8c0f0ce2de14c652231496a15672e8b563a07e2" + } + ], + "build-commands": [ + "echo '#! /usr/bin/env runhaskell' >Setup.txt", + "echo '> import Distribution.Simple' >>Setup.txt", + "echo '> main = defaultMain' >>Setup.txt", + "ln -s Setup.txt Setup.lhs || true", + "runhaskell Setup configure --prefix=/app --extra-include-dirs=/app/include --extra-lib-dirs=/app/lib", + "runhaskell Setup build", + "runhaskell Setup install" + ], + "name": "primitive", + "buildsystem": "simple", + "builddir": false + }, + { + "sources": [ + { + "url": "https://hackage.haskell.org/package/vector-0.12.1.2/vector-0.12.1.2.tar.gz", + "type": "archive", + "sha256": "3b6e27683f6f20b37b8a35d0fab9e34b57dad72ac64cb16f428726780d4011bd" + }, + { + "dest-filename": "vector.cabal", + "url": "https://hackage.haskell.org/package/vector-0.12.1.2/revision/0.cabal", + "type": "file", + "sha256": "9291bc581f36e51d5bda9fce57cb980fbec3dd292996896f285fef39eb80a9a0" + } + ], + "build-commands": [ + "echo '#! /usr/bin/env runhaskell' >Setup.txt", + "echo '> import Distribution.Simple' >>Setup.txt", + "echo '> main = defaultMain' >>Setup.txt", + "ln -s Setup.txt Setup.lhs || true", + "runhaskell Setup configure --prefix=/app --extra-include-dirs=/app/include --extra-lib-dirs=/app/lib", + "runhaskell Setup build", + "runhaskell Setup install" + ], + "name": "vector", + "buildsystem": "simple", + "builddir": false + }, + { + "sources": [ + { + "url": "https://hackage.haskell.org/package/hashtables-1.2.3.4/hashtables-1.2.3.4.tar.gz", + "type": "archive", + "sha256": "125ce62701fba3f666609f5c75f452005aa5d32dff4eeee3f3903c30b2ed55e6" + }, + { + "dest-filename": "hashtables.cabal", + "url": "https://hackage.haskell.org/package/hashtables-1.2.3.4/revision/0.cabal", + "type": "file", + "sha256": "16a77784ba31ce90cfaab198b42a888fd30d838f9fd581c0efc5b7ee6dfe458f" + } + ], + "build-commands": [ + "echo '#! /usr/bin/env runhaskell' >Setup.txt", + "echo '> import Distribution.Simple' >>Setup.txt", + "echo '> main = defaultMain' >>Setup.txt", + "ln -s Setup.txt Setup.lhs || true", + "runhaskell Setup configure --prefix=/app --extra-include-dirs=/app/include --extra-lib-dirs=/app/lib", + "runhaskell Setup build", + "runhaskell Setup install" + ], + "name": "hashtables", + "buildsystem": "simple", + "builddir": false + }, + { + "sources": [ + { + "url": "https://hackage.haskell.org/package/splitmix-0.1/splitmix-0.1.tar.gz", + "type": "archive", + "sha256": "1c11c87352ddbb13365380fe163f99bb8f8845ebc96ca1d572e5d3a9bf810bfa" + }, + { + "dest-filename": "splitmix.cabal", + "url": "https://hackage.haskell.org/package/splitmix-0.1/revision/0.cabal", + "type": "file", + "sha256": "d50c4d0801a35be7875a040470c09863342514930c82a7d25780a6c2efc4fda9" + } + ], + "build-commands": [ + "echo '#! /usr/bin/env runhaskell' >Setup.txt", + "echo '> import Distribution.Simple' >>Setup.txt", + "echo '> main = defaultMain' >>Setup.txt", + "ln -s Setup.txt Setup.lhs || true", + "runhaskell Setup configure --prefix=/app --extra-include-dirs=/app/include --extra-lib-dirs=/app/lib", + "runhaskell Setup build", + "runhaskell Setup install" + ], + "name": "splitmix", + "buildsystem": "simple", + "builddir": false + }, + { + "sources": [ + { + "url": "https://hackage.haskell.org/package/random-1.2.0/random-1.2.0.tar.gz", + "type": "archive", + "sha256": "e4519cf7c058bfd5bdbe4acc782284acc9e25e74487208619ca83cbcd63fb9de" + }, + { + "dest-filename": "random.cabal", + "url": "https://hackage.haskell.org/package/random-1.2.0/revision/0.cabal", + "type": "file", + "sha256": "5ca8674e95c46c7eb90f520c26aea22d403625c97697275434afba66ebd32b05" + } + ], + "build-commands": [ + "echo '#! /usr/bin/env runhaskell' >Setup.txt", + "echo '> import Distribution.Simple' >>Setup.txt", + "echo '> main = defaultMain' >>Setup.txt", + "ln -s Setup.txt Setup.lhs || true", + "runhaskell Setup configure --prefix=/app --extra-include-dirs=/app/include --extra-lib-dirs=/app/lib", + "runhaskell Setup build", + "runhaskell Setup install" + ], + "name": "random", + "buildsystem": "simple", + "builddir": false + }, + { + "sources": [ + { + "url": "https://hackage.haskell.org/package/gtk2hs-buildtools-0.13.8.0/gtk2hs-buildtools-0.13.8.0.tar.gz", + "type": "archive", + "sha256": "8dbb7dbf004e45e48aa77153bc780120d99a329c6bde76618d46b2a4f3bb8598" + }, + { + "dest-filename": "gtk2hs-buildtools.cabal", + "url": "https://hackage.haskell.org/package/gtk2hs-buildtools-0.13.8.0/revision/0.cabal", + "type": "file", + "sha256": "132f38155fc677430a47ea750918973161c876fb6f281d342ac2f07eb99229ce" + } + ], + "build-commands": [ + "echo '#! /usr/bin/env runhaskell' >Setup.txt", + "echo '> import Distribution.Simple' >>Setup.txt", + "echo '> main = defaultMain' >>Setup.txt", + "ln -s Setup.txt Setup.lhs || true", + "runhaskell Setup configure --prefix=/app --extra-include-dirs=/app/include --extra-lib-dirs=/app/lib", + "runhaskell Setup build", + "runhaskell Setup install" + ], + "name": "gtk2hs-buildtools", + "buildsystem": "simple", + "builddir": false + }, + { + "sources": [ + { + "url": "https://hackage.haskell.org/package/utf8-string-1.0.1.1/utf8-string-1.0.1.1.tar.gz", + "type": "archive", + "sha256": "fb0b9e3acbe0605bcd1c63e51f290a7bbbe6628dfa3294ff453e4235fbaef140" + }, + { + "dest-filename": "utf8-string.cabal", + "url": "https://hackage.haskell.org/package/utf8-string-1.0.1.1/revision/3.cabal", + "type": "file", + "sha256": "68cc6cf665e7212334a51b63d6936daeaca023b2cfe8637d130acfe95f91700b" + } + ], + "build-commands": [ + "echo '#! /usr/bin/env runhaskell' >Setup.txt", + "echo '> import Distribution.Simple' >>Setup.txt", + "echo '> main = defaultMain' >>Setup.txt", + "ln -s Setup.txt Setup.lhs || true", + "runhaskell Setup configure --prefix=/app --extra-include-dirs=/app/include --extra-lib-dirs=/app/lib", + "runhaskell Setup build", + "runhaskell Setup install" + ], + "name": "utf8-string", + "buildsystem": "simple", + "builddir": false + }, + { + "sources": [ + { + "url": "https://hackage.haskell.org/package/cairo-0.13.8.1/cairo-0.13.8.1.tar.gz", + "type": "archive", + "sha256": "1316412d51556205cfc097a354eddf0e51f4d319cde0498626a2854733f4f3c2" + }, + { + "dest-filename": "cairo.cabal", + "url": "https://hackage.haskell.org/package/cairo-0.13.8.1/revision/0.cabal", + "type": "file", + "sha256": "1938aaeb5d3504678d995774dfe870f6b66cbd43d336b692fa8779b23b2b67a9" + } + ], + "build-commands": [ + "echo '#! /usr/bin/env runhaskell' >Setup.txt", + "echo '> import Distribution.Simple' >>Setup.txt", + "echo '> main = defaultMain' >>Setup.txt", + "ln -s Setup.txt Setup.lhs || true", + "runhaskell Setup configure --prefix=/app --extra-include-dirs=/app/include --extra-lib-dirs=/app/lib", + "runhaskell Setup build", + "runhaskell Setup install" + ], + "name": "cairo", + "buildsystem": "simple", + "builddir": false + }, + { + "sources": [ + { + "url": "https://hackage.haskell.org/package/glib-0.13.8.1/glib-0.13.8.1.tar.gz", + "type": "archive", + "sha256": "dcd028ac6d4a7476c14585be1d845b8c4aea4c389f34e809ed1a8df7425c1a9c" + }, + { + "dest-filename": "glib.cabal", + "url": "https://hackage.haskell.org/package/glib-0.13.8.1/revision/0.cabal", + "type": "file", + "sha256": "42670daf0c85309281e08ba8559df75daa2e3be642e79fdfa781bef5e59658b0" + } + ], + "build-commands": [ + "echo '#! /usr/bin/env runhaskell' >Setup.txt", + "echo '> import Distribution.Simple' >>Setup.txt", + "echo '> main = defaultMain' >>Setup.txt", + "ln -s Setup.txt Setup.lhs || true", + "runhaskell Setup configure --prefix=/app --extra-include-dirs=/app/include --extra-lib-dirs=/app/lib", + "runhaskell Setup build", + "runhaskell Setup install" + ], + "name": "glib", + "buildsystem": "simple", + "builddir": false + }, + { + "sources": [ + { + "url": "https://hackage.haskell.org/package/gio-0.13.8.1/gio-0.13.8.1.tar.gz", + "type": "archive", + "sha256": "26d77f1c1d5937a73b98f29b91619d9911756819cb2894ace864626bee41b801" + }, + { + "dest-filename": "gio.cabal", + "url": "https://hackage.haskell.org/package/gio-0.13.8.1/revision/0.cabal", + "type": "file", + "sha256": "7404841eefdfffb50c2b5f63879ffe4bf40fb5ddf90a7f633494eca0e23150a5" + } + ], + "build-commands": [ + "echo '#! /usr/bin/env runhaskell' >Setup.txt", + "echo '> import Distribution.Simple' >>Setup.txt", + "echo '> main = defaultMain' >>Setup.txt", + "ln -s Setup.txt Setup.lhs || true", + "runhaskell Setup configure --prefix=/app --extra-include-dirs=/app/include --extra-lib-dirs=/app/lib", + "runhaskell Setup build", + "runhaskell Setup install" + ], + "name": "gio", + "buildsystem": "simple", + "builddir": false + }, + { + "sources": [ + { + "url": "https://hackage.haskell.org/package/pango-0.13.8.1/pango-0.13.8.1.tar.gz", + "type": "archive", + "sha256": "40a67a56687969cee9dd4cc94a8a3d0beb5ea687c8a2f3da552feb915453c82f" + }, + { + "dest-filename": "pango.cabal", + "url": "https://hackage.haskell.org/package/pango-0.13.8.1/revision/0.cabal", + "type": "file", + "sha256": "877b121c0bf87c96d3619effae6751ecfd74b7f7f3227cf3fde012597aed5ed9" + } + ], + "build-commands": [ + "echo '#! /usr/bin/env runhaskell' >Setup.txt", + "echo '> import Distribution.Simple' >>Setup.txt", + "echo '> main = defaultMain' >>Setup.txt", + "ln -s Setup.txt Setup.lhs || true", + "runhaskell Setup configure --prefix=/app --extra-include-dirs=/app/include --extra-lib-dirs=/app/lib", + "runhaskell Setup build", + "runhaskell Setup install" + ], + "name": "pango", + "buildsystem": "simple", + "builddir": false + }, + { + "sources": [ + { + "url": "https://hackage.haskell.org/package/gtk3-0.15.5/gtk3-0.15.5.tar.gz", + "type": "archive", + "sha256": "c03876dc79436aa467c93db580405f0e8eb7ca44c48d48af0fdcc17d7bafbcf8" + }, + { + "dest-filename": "gtk3.cabal", + "url": "https://hackage.haskell.org/package/gtk3-0.15.5/revision/0.cabal", + "type": "file", + "sha256": "e036fe5df496fbefff9e1bc029358ba198b4b73bb4677d3f58e59ee6ec03766a" + } + ], + "build-commands": [ + "echo '#! /usr/bin/env runhaskell' >Setup.txt", + "echo '> import Distribution.Simple' >>Setup.txt", + "echo '> main = defaultMain' >>Setup.txt", + "ln -s Setup.txt Setup.lhs || true", + "runhaskell Setup configure --prefix=/app --extra-include-dirs=/app/include --extra-lib-dirs=/app/lib", + "runhaskell Setup build", + "runhaskell Setup install" + ], + "name": "gtk3", + "buildsystem": "simple", + "builddir": false + }, + { + "sources": [ + { + "url": "https://hackage.haskell.org/package/bustle-0.8.0/bustle-0.8.0.tar.gz", + "type": "archive", + "sha256": "2fb3e9d9a97db3cd9a3ce763e86947b642bd7733b46206177a1677f08726573c" + }, + { + "dest-filename": "bustle.cabal", + "url": "https://hackage.haskell.org/package/bustle-0.8.0/revision/0.cabal", + "type": "file", + "sha256": "d95850cec27147de8a2d6471a7a7a74f52b738783e699be4b8cc6f435d1837e5" + } + ], + "build-commands": [ + "echo '#! /usr/bin/env runhaskell' >Setup.txt", + "echo '> import Distribution.Simple' >>Setup.txt", + "echo '> main = defaultMain' >>Setup.txt", + "ln -s Setup.txt Setup.lhs || true", + "runhaskell Setup configure --prefix=/app --extra-include-dirs=/app/include --extra-lib-dirs=/app/lib", + "runhaskell Setup build", + "runhaskell Setup install" + ], + "name": "bustle", + "buildsystem": "simple", + "builddir": false + }, + { + "sources": [ + { + "url": "https://hackage.haskell.org/package/bustle-0.8.0/bustle-0.8.0.tar.gz", + "type": "archive", + "sha256": "2fb3e9d9a97db3cd9a3ce763e86947b642bd7733b46206177a1677f08726573c" + } + ], + "name": "bustle-c", + "buildsystem": "simple", + "build-commands": [ + "make install PREFIX=/app DESTDIR=/" + ] + } + ], + "app-id": "org.freedesktop.Bustle", + "finish-args": [ + "--socket=x11", + "--socket=wayland", + "--socket=system-bus", + "--socket=session-bus", + "--filesystem=host" + ] +} diff --git a/flatpak/org.freedesktop.Bustle.yaml b/flatpak/org.freedesktop.Bustle.yaml deleted file mode 100644 index ade7a30..0000000 --- a/flatpak/org.freedesktop.Bustle.yaml +++ /dev/null @@ -1,163 +0,0 @@ -# vim: sts=2 sw=2 et -app-id: org.freedesktop.Bustle -runtime: org.gnome.Platform -runtime-version: "3.28" -sdk: org.gnome.Sdk -# Use writable-sdk to install Haskell Platform to usr rather than app: -# it's only needed to build Bustle, not to run it. All Haskell libraries -# and the runtime system are statically linked into the bustle binary. -# The only shared library it needs which is not part of the GNOME SDK -# is libpcap, which is installed to app. -writable-sdk: true -command: bustle -finish-args: - - --socket=x11 - - --socket=wayland - - --socket=system-bus - - --socket=session-bus - - --share=ipc - - # Allow access to dconf. This is nice to have if, for example, you want to be - # able to launch the GTK+ Inspector, which is enabled by setting a dconf key. - # These four incantations are widely cargo-culted. - - --filesystem=xdg-run/dconf - - --filesystem=~/.config/dconf:ro - - --talk-name=ca.desrt.dconf - - --env=DCONF_USER_CONFIG_DIR=.config/dconf - - # No support for GtkFileChooserNative in gtk2hs, so the options are: - # 1. Use hidden GtkFileChooserButtons and fake clicks on them - # 2. Just expose the host FS - - --filesystem=host -build-options: - strip: false - no-debuginfo: true -cleanup: - - "*.a" - - "*.h" - - /share/man/man?/pcap* - - /bin/pcap-config -modules: - # Why not start your day with a 259MB tarball? - - name: haskell-platform - only-arches: - - x86_64 - sources: - - type: archive - url: https://downloads.haskell.org/~platform/8.4.3/haskell-platform-8.4.3-unknown-posix--full-x86_64.tar.gz - sha256: 1cea60e382ef54ed328beda344be8ec8430ceef34c52a2a115209d1ddfc2887a - # there are no leading compoments in this file; so the default of 1 makes tar silently extract no files! - strip-components: 0 - - type: file - path: activate-hs.patch - buildsystem: simple - build-commands: - # Can't just run install-haskell-platform.sh because it calls - # activate-hs which, in its pristine form, explicitly checks - # for UID 0. We know better -- we have permission to write - # everywhere -- so patch out this check. - - tar -C / -xf hp-usr-local.tar.gz - - patch /usr/local/haskell/ghc-8.4.3-x86_64/bin/activate-hs activate-hs.patch - - /usr/local/haskell/ghc-8.4.3-x86_64/bin/activate-hs --verbose --prefix /usr - - name: haskell-platform - only-arches: - - i386 - sources: - - type: archive - url: https://downloads.haskell.org/~platform/8.4.3/haskell-platform-8.4.3-unknown-posix--full-i386.tar.gz - sha256: 1c8d336ebc2bd2bcd1da1887388e85a250f76fff3387d6b4973cac4444b6b308 - # there are no leading compoments in this file; so the default of 1 makes tar silently extract no files! - strip-components: 0 - - type: file - path: activate-hs.patch - buildsystem: simple - build-commands: - # Can't just run install-haskell-platform.sh because it calls - # activate-hs which, in its pristine form, explicitly checks - # for UID 0. We know better -- we have permission to write - # everywhere -- so patch out this check. - - tar -C / -xf hp-usr-local.tar.gz - - patch /usr/local/haskell/ghc-8.4.3-i386/bin/activate-hs activate-hs.patch - - /usr/local/haskell/ghc-8.4.3-i386/bin/activate-hs --verbose --prefix /usr - - # pcap dependencies begin here - - name: libpcap - sources: - - type: archive - url: https://www.tcpdump.org/release/libpcap-1.9.0.tar.gz - sha256: 2edb88808e5913fdaa8e9c1fcaf272e19b2485338742b5074b9fe44d68f37019 - - # gtk2hs dependencies begin here - - name: haskell-hashtables - sources: - - type: archive - url: https://hackage.haskell.org/package/hashtables-1.2.3.1/hashtables-1.2.3.1.tar.gz - sha256: 8fd1c7c77c267eae6af01f1d9ca427754fb092cfffc8041cd50764a9144b3cbe - - type: file - path: Makefile - no-autogen: true - - name: haskell-utf8-string - sources: - - type: archive - url: https://hackage.haskell.org/package/utf8-string-1.0.1.1/utf8-string-1.0.1.1.tar.gz - sha256: fb0b9e3acbe0605bcd1c63e51f290a7bbbe6628dfa3294ff453e4235fbaef140 - - type: file - url: https://hackage.haskell.org/package/utf8-string-1.0.1.1/revision/3.cabal - dest-filename: utf8-string.cabal - sha256: 68cc6cf665e7212334a51b63d6936daeaca023b2cfe8637d130acfe95f91700b - - type: file - path: Makefile - no-autogen: true - - name: haskell-gtk2hs - sources: - # Installing from Git saves us listing each subpackage separately. - - type: git - url: https://github.com/gtk2hs/gtk2hs - # No tags? Great! HEAD as of 2018-07-17 - commit: d3d62fbd9460f23559a9ca44637480b9cc773e43 - - type: file - path: Makefile - # Makefile interprets build-% as cabal install % - make-args: - - build-tools - - build-glib - - build-gio - - build-cairo - - build-pango - - build-gtk # this is the gtk3 version - no-autogen: true - - # for the man page! - - name: help2man - sources: - - type: archive - url: https://ftpmirror.gnu.org/help2man/help2man-1.47.4.tar.xz - sha256: d4ecf697d13f14dd1a78c5995f06459bff706fd1ce593d1c02d81667c0207753 - build-options: - prefix: /usr - - # https://github.com/flatpak/flatpak-xdg-utils/pull/10 - - name: flatpak-xdg-utils - sources: - - type: git - url: https://github.com/flatpak/flatpak-xdg-utils.git - commit: a9afa997da8217bd03ece72fd04221d1597acdb3 - cleanup: - - /bin/xdg-email - - /bin/xdg-open - - # fired up! ready to go! - - name: bustle - sources: - - type: dir - path: .. - skip: - - .cabal-sandbox - - cabal.sandbox.config - - type: file - path: Makefile - dest-filename: Makefile-flatpak - buildsystem: simple - build-commands: - - make install PREFIX=/app DESTDIR=/ - - make -f Makefile-flatpak EXTRA='--prefix=/app --flags=-hgettext' |