summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWill Thompson <will@willthompson.co.uk>2020-07-30 14:35:38 +0100
committerWill Thompson <will@willthompson.co.uk>2020-08-06 16:57:58 +0100
commitad676080a9fc73e0d2d6deaa678e938665fe6e9f (patch)
tree99fb57c1d09ff1e6b58bdcffad6de96a60c9ca72
parent36b1d769683818900ea079880c5c82122c2e19da (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/Makefile25
-rw-r--r--flatpak/activate-hs.patch23
-rw-r--r--flatpak/help2man.json16
-rw-r--r--flatpak/libpcap.json18
-rw-r--r--flatpak/org.freedesktop.Bustle.cabal.json34
-rw-r--r--flatpak/org.freedesktop.Bustle.json517
-rw-r--r--flatpak/org.freedesktop.Bustle.yaml163
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'