diff --git a/README.md b/README.md index 0291f1b..1c72282 100644 --- a/README.md +++ b/README.md @@ -14,20 +14,6 @@ Eris maintains an up-to-date set of reports for every file in a codebase. # python3.9 -m pip install . # eris -h -### Flatpak - - # flatpak install org.freedesktop.Sdk/x86_64/20.08 # Install the required runtime - # Download flatpak bundle file from github releases page: - https://github.com/ahamilton/eris/releases - # flatpak install eris-2020-09-24.flatpak # Install the downloaded bundle - # flatpak run --filesystem=host com.github.ahamilton.eris -h - -There is a wrapper script available to make running easier: - - # git clone https://github.com/ahamilton/eris - # cp eris/eris-flatpak ~/bin/eris # e.g. Put wrapper script in your PATH - # eris -h - ### Docker # git clone https://github.com/ahamilton/eris diff --git a/build-flatpak.py b/build-flatpak.py deleted file mode 100755 index f3d7f9e..0000000 --- a/build-flatpak.py +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/python3.9 - - -import json -import os -import subprocess -import sys - - -USAGE = """Make a flatpak build of eris. - -Usage: build-flatpak.sh - -e.g. # build-flatpak.sh com.github.ahamilton.eris.json eris-build flatpak-cache - -The script should only be run from the root of the local eris repository. -""" - - -def patch_manifest(manifest_path, patched_manifest_path): - with open(manifest_path) as manifest_file: - manifest = json.load(manifest_file) - eris_module = manifest["modules"][-1] - eris_module["sources"][0]["url"] = "file://" + os.getcwd() - with open(patched_manifest_path, "w") as patched_manifest_file: - json.dump(manifest, patched_manifest_file, indent=2) - - -def main(argv): - if len(argv) != 4: - print(USAGE) - sys.exit(1) - manifest_path, build_dir, state_dir = argv[1:4] - patched_manifest_path = "manifests-cache/patched-manifest.json" - patch_manifest(manifest_path, patched_manifest_path) - subprocess.run(["flatpak-builder", build_dir, patched_manifest_path, - "--force-clean", "--state-dir", state_dir, - "--disable-updates"], check=True) - subprocess.run(["flatpak", "build", build_dir, "test-all"], check=True) - subprocess.run(["flatpak", "build", build_dir, "eris", "--help"], - check=True) - print("Build successful:", build_dir) - - -if __name__ == "__main__": - main(sys.argv) diff --git a/com.github.ahamilton.eris.json b/com.github.ahamilton.eris.json deleted file mode 100644 index 7f2e89d..0000000 --- a/com.github.ahamilton.eris.json +++ /dev/null @@ -1,2340 +0,0 @@ -{ - "app-id": "com.github.ahamilton.eris", - "runtime": "org.freedesktop.Sdk", - "runtime-version": "20.08", - "sdk": "org.freedesktop.Sdk", - "sdk-extensions": [ - "org.freedesktop.Sdk.Extension.golang" - ], - "cleanup": [ - "/lib/debug", - "/share/man", - "/man", - "/include", - "/share/doc", - "/doc", - "/docs" - ], - "strip": true, - "modules": [ - { - "name": "cppcheck", - "sources": [ - { - "type": "archive", - "url": "http://au.archive.ubuntu.com/ubuntu/pool/universe/c/cppcheck/cppcheck_1.90.orig.tar.gz", - "sha256": "59a94e2e9f10097b7246b26541fb63d41846a14cfa92ca0c4259c151998691ee" - } - ], - "buildsystem": "cmake" - }, - { - "name": "dpkg", - "sources": [ - { - "type": "archive", - "url": "http://au.archive.ubuntu.com/ubuntu/pool/main/d/dpkg/dpkg_1.19.7ubuntu3.tar.xz", - "sha256": "598eba200da2e1b6097f11537c49e9ad7eb2292e148259bd76f9cd184f281853" - } - ], - "buildsystem": "simple", - "build-commands": [ - "./configure --disable-dselect --disable-start-stop-daemon --disable-update-alternatives --prefix=/app", - "make install" - ] - }, - { - "name": "elinks", - "sources": [ - { - "type": "archive", - "url": "http://au.archive.ubuntu.com/ubuntu/pool/universe/e/elinks/elinks_0.13.1.orig.tar.gz", - "sha256": "78efb4c72c1e1393af65080b09debdbbaa81e38c06436cd582640e8fbc1a1385" - } - ] - }, - { - "name": "cdrkit", - "sources": [ - { - "type": "archive", - "url": "http://au.archive.ubuntu.com/ubuntu/pool/main/c/cdrkit/cdrkit_1.1.11.orig.tar.gz", - "sha256": "d1c030756ecc182defee9fe885638c1785d35a2c2a297b4604c0e0dcc78e47da" - } - ], - "buildsystem": "simple", - "build-commands": [ - "cmake .", - "make -j4 isoinfo", - "install -D -t /app/bin genisoimage/isoinfo" - ] - }, - { - "name": "wabt", - "sources": [ - { - "type": "git", - "url": "https://github.com/WebAssembly/wabt", - "commit": "76f76f9c01b43124c98769d9c92620c9a587dd62" - } - ], - "buildsystem": "simple", - "build-commands": [ - "mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=/app ..", - "cd build && make -j4 install" - ] - }, - { - "name": "godoc", - "buildsystem": "simple", - "build-options": { - "env": { - "GOBIN": "/app/bin" - } - }, - "build-commands": [ - ". /usr/lib/sdk/golang/enable.sh; GOPATH=$PWD go install github.com/golang/go/src/cmd/godoc" - ], - "sources": [ - { - "type": "git", - "url": "https://github.com/golang/go", - "commit": "6174b5e21e73714c63061e66efdbe180e1c5491d", - "dest": "src/github.com/golang/go" - } - ] - }, - { - "name": "vet", - "buildsystem": "simple", - "build-options": { - "env": { - "GOBIN": "/app/bin" - } - }, - "build-commands": [ - ". /usr/lib/sdk/golang/enable.sh; GOPATH=$PWD go install github.com/golang/go/src/cmd/vet" - ], - "sources": [ - { - "type": "git", - "url": "https://github.com/golang/go", - "commit": "6174b5e21e73714c63061e66efdbe180e1c5491d", - "dest": "src/github.com/golang/go" - } - ] - }, - { - "name": "golint", - "buildsystem": "simple", - "build-options": { - "env": { - "GOBIN": "/app/bin" - } - }, - "build-commands": [ - ". /usr/lib/sdk/golang/enable.sh; GOPATH=$PWD go install golang.org/x/lint/golint" - ], - "sources": [ - { - "type": "git", - "url": "https://go.googlesource.com/tools", - "commit": "fa0125251cc482cce8c015000e15beef48ecafa9", - "dest": "src/golang.org/x/tools" - }, - { - "type": "git", - "url": "https://go.googlesource.com/lint", - "commit": "738671d3881b9731cc63024d5d88cf28db875626", - "dest": "src/golang.org/x/lint" - } - ] - }, - { - "name": "ghc", - "sources": [ - { - "type": "archive", - "url": "https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-deb9-linux.tar.xz", - "sha256": "bc75f5601a9f41d58b2ba161b9e28fad52143a7229060f1e084168d9b2e914df" - } - ], - "buildsystem": "simple", - "build-commands": [ - "mkdir -p /app/lib", - "ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /app/lib/libtinfo.so.5", - "./configure --prefix=/app", - "make install" - ], - "cleanup": [ - "/lib/ghc-*", - "/lib/libtinfo*", - "/app/bin/*ghc*", - "/app/bin/aeson-pretty", - "/app/bin/hpc", - "/app/bin/haddock*", - "/app/bin/hsc2hs", - "/app/bin/runhaskell", - "/app/bin/hp2ps" - ] - }, - { - "name": "haskell-ShellCheck", - "buildsystem": "simple", - "build-commands": [ - "./install-package Diff-0.4.0", - "./install-package base-compat-0.11.1", - "./install-package base-orphans-0.8.2", - "./install-package cabal-doctest-1.0.8", - "./install-package dlist-1.0", - "./install-package hashable-1.3.0.0", - "./install-package integer-logarithms-1.0.3", - "./install-package primitive-0.7.1.0", - "./install-package regex-base-0.94.0.0", - "./install-package splitmix-0.1.0.1", - "./install-package tagged-0.8.6", - "./install-package th-abstraction-0.3.2.0", - "./install-package transformers-compat-0.6.5", - "./install-package base-compat-batteries-0.11.1", - "./install-package time-compat-1.9.3", - "./install-package unordered-containers-0.2.12.0", - "./install-package data-fix-0.3.0", - "./install-package vector-0.12.1.2", - "./install-package scientific-0.3.6.2", - "./install-package regex-tdfa-1.3.1.0", - "./install-package random-1.2.0", - "./install-package distributive-0.6.2", - "./install-package attoparsec-0.13.2.4", - "./install-package uuid-types-1.0.3", - "./install-package QuickCheck-2.14.1", - "./install-package comonad-5.0.6", - "./install-package bifunctors-5.5.7", - "./install-package assoc-1.0.2", - "./install-package these-1.1.1.1", - "./install-package strict-0.4", - "./install-package aeson-1.5.4.0", - "./install-package ShellCheck-0.7.1", - "cd ShellCheck-0.7.1; ./Setup unregister", - "cd aeson-1.5.4.0; ./Setup unregister", - "cd strict-0.4; ./Setup unregister", - "cd these-1.1.1.1; ./Setup unregister", - "cd assoc-1.0.2; ./Setup unregister", - "cd bifunctors-5.5.7; ./Setup unregister", - "cd comonad-5.0.6; ./Setup unregister", - "cd QuickCheck-2.14.1; ./Setup unregister", - "cd uuid-types-1.0.3; ./Setup unregister", - "cd attoparsec-0.13.2.4; ./Setup unregister", - "cd distributive-0.6.2; ./Setup unregister", - "cd random-1.2.0; ./Setup unregister", - "cd regex-tdfa-1.3.1.0; ./Setup unregister", - "cd scientific-0.3.6.2; ./Setup unregister", - "cd vector-0.12.1.2; ./Setup unregister", - "cd data-fix-0.3.0; ./Setup unregister", - "cd unordered-containers-0.2.12.0; ./Setup unregister", - "cd time-compat-1.9.3; ./Setup unregister", - "cd base-compat-batteries-0.11.1; ./Setup unregister", - "cd transformers-compat-0.6.5; ./Setup unregister", - "cd th-abstraction-0.3.2.0; ./Setup unregister", - "cd tagged-0.8.6; ./Setup unregister", - "cd splitmix-0.1.0.1; ./Setup unregister", - "cd regex-base-0.94.0.0; ./Setup unregister", - "cd primitive-0.7.1.0; ./Setup unregister", - "cd integer-logarithms-1.0.3; ./Setup unregister", - "cd hashable-1.3.0.0; ./Setup unregister", - "cd dlist-1.0; ./Setup unregister", - "cd cabal-doctest-1.0.8; ./Setup unregister", - "cd base-orphans-0.8.2; ./Setup unregister", - "cd base-compat-0.11.1; ./Setup unregister", - "cd Diff-0.4.0; ./Setup unregister" - ], - "builddir": true, - "sources": [ - { - "type": "archive", - "url": "http://hackage.haskell.org/package/Diff-0.4.0/Diff-0.4.0.tar.gz", - "sha256": "7290ac098ad8b4748b9c10e494cc85ba54af688226ae69a465aa7b4c73f149c7", - "dest": "Diff-0.4.0" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/base-compat-0.11.1/base-compat-0.11.1.tar.gz", - "sha256": "356f1542ec93e7192a9073d32a8ef1e48194275495dcec7fb0d241f4baaf6d36", - "dest": "base-compat-0.11.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/base-orphans-0.8.2/base-orphans-0.8.2.tar.gz", - "sha256": "2a8062385e5d5dee418428a22c72b9391557bc1fe2f93bd643f7754b36b9eb01", - "dest": "base-orphans-0.8.2" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/cabal-doctest-1.0.8/cabal-doctest-1.0.8.tar.gz", - "sha256": "2026a6a87d410202ce091412ca6bc33c5aca787025326b4a3d13425a23392e0e", - "dest": "cabal-doctest-1.0.8" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/cabal-doctest-1.0.8/revision/2.cabal", - "sha256": "8bd1d614fb65f0d52609da30bf8e5ec71a4b6adf8ff5610edb3cb4d114576117", - "dest": "cabal-doctest-1.0.8", - "dest-filename": "cabal-doctest.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/dlist-1.0/dlist-1.0.tar.gz", - "sha256": "173d637328bb173fcc365f30d29ff4a94292a1e0e5558aeb3dfc11de81510115", - "dest": "dlist-1.0" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/hashable-1.3.0.0/hashable-1.3.0.0.tar.gz", - "sha256": "822e5413fbccca6ae884d3aba4066422c8b5d58d23d18b9ecb5c03273bb19ab4", - "dest": "hashable-1.3.0.0" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/hashable-1.3.0.0/revision/1.cabal", - "sha256": "4c70f1407881059e93550d3742191254296b2737b793a742bd901348fb3e1fb1", - "dest": "hashable-1.3.0.0", - "dest-filename": "hashable.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/integer-logarithms-1.0.3/integer-logarithms-1.0.3.tar.gz", - "sha256": "5ae262018698af35bb74916fad170d96d3eb44669c72ed36db9a19a3392cec16", - "dest": "integer-logarithms-1.0.3" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/integer-logarithms-1.0.3/revision/2.cabal", - "sha256": "63d42595ec92b71ac98a07b984b0a2eb3d4956f4ad2d856c3bf6fc3dc218d228", - "dest": "integer-logarithms-1.0.3", - "dest-filename": "integer-logarithms.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/primitive-0.7.1.0/primitive-0.7.1.0.tar.gz", - "sha256": "6bebecfdf2a57787d9fd5231bfd612b65a92edd7b33a973b2a0f11312b89a3f0", - "dest": "primitive-0.7.1.0" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/regex-base-0.94.0.0/regex-base-0.94.0.0.tar.gz", - "sha256": "c41f82f5fc1157c961a4cbdc0cd5561e5aa44f339ce6e706d978d97e0ca6b914", - "dest": "regex-base-0.94.0.0" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/regex-base-0.94.0.0/revision/1.cabal", - "sha256": "44aa95ca762294ffbb28cf0af9c567d93b5d2c56e4f38ce5385a257d899f968e", - "dest": "regex-base-0.94.0.0", - "dest-filename": "regex-base.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/splitmix-0.1.0.1/splitmix-0.1.0.1.tar.gz", - "sha256": "4d4b694846eac6af373e750e4c95c9ca2a984bc7f0e6466f973759d0fb1f192a", - "dest": "splitmix-0.1.0.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/tagged-0.8.6/tagged-0.8.6.tar.gz", - "sha256": "ad16def0884cf6f05ae1ae8e90192cf9d8d9673fa264b249499bd9e4fac791dd", - "dest": "tagged-0.8.6" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/tagged-0.8.6/revision/2.cabal", - "sha256": "1f7ca84e6c88cbb923641c60041c9f56c34f1a889759cc073cdf10542b441ff9", - "dest": "tagged-0.8.6", - "dest-filename": "tagged.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/th-abstraction-0.3.2.0/th-abstraction-0.3.2.0.tar.gz", - "sha256": "36fef33ad0f34b9b8fb5552fe6187579a00d5f90d938e9bc24d382a9919feb79", - "dest": "th-abstraction-0.3.2.0" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/transformers-compat-0.6.5/transformers-compat-0.6.5.tar.gz", - "sha256": "da67cf11515da751b32a8ce6e96549f7268f7c435769ad19dc9766b69774620b", - "dest": "transformers-compat-0.6.5" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/base-compat-batteries-0.11.1/base-compat-batteries-0.11.1.tar.gz", - "sha256": "caf66fed3c0a3b0437692cad18c93a7074e8524a86b8be1ce04d0a18cbf6aed8", - "dest": "base-compat-batteries-0.11.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/time-compat-1.9.3/time-compat-1.9.3.tar.gz", - "sha256": "bb6a44e667945ddca8ded93e041ee91986a4a19f59e149a5dd21fdb1bfa3db88", - "dest": "time-compat-1.9.3" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/unordered-containers-0.2.12.0/unordered-containers-0.2.12.0.tar.gz", - "sha256": "481dab4ea59f10feaa7d65ecb8ae5d136d130bdbacf2356d414b3926d638bd20", - "dest": "unordered-containers-0.2.12.0" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/data-fix-0.3.0/data-fix-0.3.0.tar.gz", - "sha256": "9e59b3ed694b5139316093b3767842e60ad4821858459e7cd763e5773dfa99a0", - "dest": "data-fix-0.3.0" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/vector-0.12.1.2/vector-0.12.1.2.tar.gz", - "sha256": "3b6e27683f6f20b37b8a35d0fab9e34b57dad72ac64cb16f428726780d4011bd", - "dest": "vector-0.12.1.2" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/scientific-0.3.6.2/scientific-0.3.6.2.tar.gz", - "sha256": "278d0afc87450254f8a76eab21b5583af63954efc9b74844a17a21a68013140f", - "dest": "scientific-0.3.6.2" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/regex-tdfa-1.3.1.0/regex-tdfa-1.3.1.0.tar.gz", - "sha256": "15c376783d397b3b9933cf35980808feddde273bd6f2445babbccb2f76a42ec0", - "dest": "regex-tdfa-1.3.1.0" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/regex-tdfa-1.3.1.0/revision/1.cabal", - "sha256": "bec13812a56a904ff3510caa19fe1b3ce3939e303604b1bcb3162771c52311ba", - "dest": "regex-tdfa-1.3.1.0", - "dest-filename": "regex-tdfa.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/random-1.2.0/random-1.2.0.tar.gz", - "sha256": "e4519cf7c058bfd5bdbe4acc782284acc9e25e74487208619ca83cbcd63fb9de", - "dest": "random-1.2.0" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/random-1.2.0/revision/2.cabal", - "sha256": "4321209c8faedc034810ea8ed0dbc4a36f1a1df97b75af024219f2f533da57de", - "dest": "random-1.2.0", - "dest-filename": "random.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/distributive-0.6.2/distributive-0.6.2.tar.gz", - "sha256": "824ee271ded433ce6c61fe890c784642b7e20ffa4082fca609da54e7dcfc23c9", - "dest": "distributive-0.6.2" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/distributive-0.6.2/revision/2.cabal", - "sha256": "2ace9babcdbd1c2db28638c200405fb85e3660fe19ceae4f03082590adc2c487", - "dest": "distributive-0.6.2", - "dest-filename": "distributive.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/attoparsec-0.13.2.4/attoparsec-0.13.2.4.tar.gz", - "sha256": "ba66cd6de1749ec92568db1b9c905b43a849f0ad918d45d7b594407a02ebefb2", - "dest": "attoparsec-0.13.2.4" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/attoparsec-0.13.2.4/revision/1.cabal", - "sha256": "5941a05141a61239e8d6c4f2c9876bec3765d786766721b8474b8625febf914a", - "dest": "attoparsec-0.13.2.4", - "dest-filename": "attoparsec.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/uuid-types-1.0.3/uuid-types-1.0.3.tar.gz", - "sha256": "9276517ab24a9b06f39d6e3c33c6c2b4ace1fc2126dbc1cd9806866a6551b3fd", - "dest": "uuid-types-1.0.3" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/uuid-types-1.0.3/revision/3.cabal", - "sha256": "4e27aa142cb37f391e78f36d13139ba0a907675429a21e8f2cfae9223202dd7e", - "dest": "uuid-types-1.0.3", - "dest-filename": "uuid-types.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/QuickCheck-2.14.1/QuickCheck-2.14.1.tar.gz", - "sha256": "c3fcc5aa18dabe2d1cebbdf3f0a91daf239b52eb086d02b7c615c607ef0d4757", - "dest": "QuickCheck-2.14.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/comonad-5.0.6/comonad-5.0.6.tar.gz", - "sha256": "77cfb016acd1747b892c31b82daf0de93f508ba775d62562d376b354adb88fae", - "dest": "comonad-5.0.6" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/comonad-5.0.6/revision/1.cabal", - "sha256": "fdf1b529a79765a8549ac7e9d439b769cca852778742db8702a9d9b2dc27e4a4", - "dest": "comonad-5.0.6", - "dest-filename": "comonad.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/bifunctors-5.5.7/bifunctors-5.5.7.tar.gz", - "sha256": "88b3a2d4504e1139a3aef7027913faa0870631477d0a2ebb6fa67d494cdb3532", - "dest": "bifunctors-5.5.7" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/bifunctors-5.5.7/revision/1.cabal", - "sha256": "179970d8cabaa760df74d40e1f81b3633c78b569f2d058e24dac31b5a1865406", - "dest": "bifunctors-5.5.7", - "dest-filename": "bifunctors.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/assoc-1.0.2/assoc-1.0.2.tar.gz", - "sha256": "d8988dc6e8718c7a3456515b769c9336aeeec730cf86fc5175247969ff8f144f", - "dest": "assoc-1.0.2" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/these-1.1.1.1/these-1.1.1.1.tar.gz", - "sha256": "d798c9f56e17def441e8f51e54cc11afdb3e76c6a9d1e9ee154e9a78da0bf508", - "dest": "these-1.1.1.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/strict-0.4/strict-0.4.tar.gz", - "sha256": "279fee78690409ce0878beead4a620f0c0975dba215d6778f183699e3576453f", - "dest": "strict-0.4" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/aeson-1.5.4.0/aeson-1.5.4.0.tar.gz", - "sha256": "80d0a13f952b40e5a6f118bf9a10470426446dd54dc6348b6e6cf86e22cd0f9f", - "dest": "aeson-1.5.4.0" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/ShellCheck-0.7.1/ShellCheck-0.7.1.tar.gz", - "sha256": "415f23ed77c17cb6837b328a35b9fa262c7d9b1a9093bc801f50d99010e4a41a", - "dest": "ShellCheck-0.7.1" - }, - { - "type": "script", - "commands": [ - "set -x", - "cd $1", - "if [ ! -e Setup.hs ] && [ ! -e Setup.lhs ]; then", - " echo 'import Distribution.Simple' > Setup.hs", - " echo 'main = defaultMain' >> Setup.hs", - "fi", - "ghc -threaded --make Setup", - "./Setup configure --disable-optimization --prefix=/app", - "./Setup build", - "./Setup install" - ], - "dest-filename": "install-package" - } - ], - "cleanup": [ - "/lib/x86_64-linux-ghc-*" - ] - }, - { - "name": "haskell-pandoc", - "buildsystem": "simple", - "build-commands": [ - "./install-package HsYAML-0.2.1.0", - "./install-package SHA-1.6.4.4", - "./install-package base-compat-0.11.1", - "./install-package base-orphans-0.8.2", - "./install-package base16-bytestring-0.1.1.7", - "./install-package base64-bytestring-1.1.0.0", - "./install-package basement-0.0.11", - "./install-package blaze-builder-0.4.1.0", - "./install-package cabal-doctest-1.0.8", - "./install-package cereal-0.5.8.1", - "./install-package cmdargs-0.10.20", - "./install-package colour-2.3.5", - "./install-package commonmark-0.1.0.2", - "./install-package data-default-class-0.1.2.0", - "./install-package digest-0.0.1.2", - "./install-package dlist-1.0", - "./install-package emojis-0.1", - "./install-package exceptions-0.10.4", - "./install-package haddock-library-1.9.0", - "./install-package hashable-1.3.0.0", - "./install-package hourglass-0.2.12", - "./install-package hxt-charproperties-9.4.0.0", - "./install-package integer-logarithms-1.0.3", - "./install-package jira-wiki-markup-1.3.2", - "./install-package mime-types-0.1.0.9", - "./install-package network-3.1.2.0", - "./install-package network-uri-2.6.3.0", - "./install-package old-locale-1.0.0.7", - "./install-package primitive-0.7.1.0", - "./install-package random-1.1", - "./install-package regex-base-0.94.0.0", - "./install-package safe-0.3.19", - "./install-package split-0.2.3.4", - "./install-package splitmix-0.1.0.1", - "./install-package syb-0.7.1", - "./install-package tagged-0.8.6", - "./install-package tagsoup-0.14.8", - "./install-package th-abstraction-0.3.2.0", - "./install-package transformers-compat-0.6.5", - "./install-package unicode-transforms-0.3.7", - "./install-package utf8-string-1.0.1.1", - "./install-package xml-1.3.14", - "./install-package zlib-0.6.2.2", - "./install-package base-compat-batteries-0.11.1", - "./install-package time-compat-1.9.3", - "./install-package memory-0.15.0", - "./install-package blaze-markup-0.8.2.7", - "./install-package ansi-terminal-0.11", - "./install-package data-default-instances-containers-0.0.1", - "./install-package cookie-0.4.5", - "./install-package data-default-instances-dlist-0.0.1", - "./install-package commonmark-extensions-0.2.0.1", - "./install-package hslua-1.1.2", - "./install-package unordered-containers-0.2.12.0", - "./install-package data-fix-0.3.0", - "./install-package case-insensitive-1.2.1.0", - "./install-package async-2.2.2", - "./install-package hxt-unicode-9.0.2.4", - "./install-package hxt-regex-xmlschema-9.2.0.3", - "./install-package socks-0.6.1", - "./install-package HTTP-4000.3.15", - "./install-package data-default-instances-old-locale-0.0.1", - "./install-package vector-0.12.1.2", - "./install-package scientific-0.3.6.2", - "./install-package uuid-types-1.0.3", - "./install-package temporary-1.3", - "./install-package regex-pcre-builtin-0.95.1.2.8.43", - "./install-package doclayout-0.3", - "./install-package QuickCheck-2.14.1", - "./install-package distributive-0.6.2", - "./install-package errors-2.3.0", - "./install-package Glob-0.10.1", - "./install-package zip-archive-0.4.1", - "./install-package pem-0.2.4", - "./install-package cryptonite-0.27", - "./install-package asn1-types-0.3.4", - "./install-package blaze-html-0.9.1.2", - "./install-package hslua-module-text-0.2.1", - "./install-package http-types-0.12.3", - "./install-package streaming-commons-0.2.2.1", - "./install-package hxt-9.3.1.18", - "./install-package data-default-0.7.1.1", - "./install-package JuicyPixels-3.3.5", - "./install-package attoparsec-0.13.2.4", - "./install-package hslua-module-system-0.2.2", - "./install-package comonad-5.0.6", - "./install-package text-conversions-0.3.0", - "./install-package asn1-encoding-0.9.6", - "./install-package http-client-0.7.2.1", - "./install-package bifunctors-5.5.7", - "./install-package asn1-parse-0.9.5", - "./install-package assoc-1.0.2", - "./install-package x509-1.7.5", - "./install-package these-1.1.1.1", - "./install-package x509-store-1.6.7", - "./install-package strict-0.4", - "./install-package x509-validation-1.6.11", - "./install-package x509-system-1.6.6", - "./install-package aeson-1.5.4.0", - "./install-package tls-1.5.4", - "./install-package skylighting-core-0.8.5", - "./install-package pandoc-types-1.21", - "./install-package ipynb-0.1.0.1", - "./install-package doctemplates-0.8.2", - "./install-package aeson-pretty-0.8.8", - "./install-package connection-0.3.1", - "./install-package skylighting-0.8.5", - "./install-package texmath-0.12.0.3", - "./install-package commonmark-pandoc-0.2.0.1", - "./install-package http-client-tls-0.3.5.3", - "./install-package pandoc-2.10.1", - "cd pandoc-2.10.1; ./Setup unregister", - "cd http-client-tls-0.3.5.3; ./Setup unregister", - "cd commonmark-pandoc-0.2.0.1; ./Setup unregister", - "cd texmath-0.12.0.3; ./Setup unregister", - "cd skylighting-0.8.5; ./Setup unregister", - "cd connection-0.3.1; ./Setup unregister", - "cd aeson-pretty-0.8.8; ./Setup unregister", - "cd doctemplates-0.8.2; ./Setup unregister", - "cd ipynb-0.1.0.1; ./Setup unregister", - "cd pandoc-types-1.21; ./Setup unregister", - "cd skylighting-core-0.8.5; ./Setup unregister", - "cd tls-1.5.4; ./Setup unregister", - "cd aeson-1.5.4.0; ./Setup unregister", - "cd x509-system-1.6.6; ./Setup unregister", - "cd x509-validation-1.6.11; ./Setup unregister", - "cd strict-0.4; ./Setup unregister", - "cd x509-store-1.6.7; ./Setup unregister", - "cd these-1.1.1.1; ./Setup unregister", - "cd x509-1.7.5; ./Setup unregister", - "cd assoc-1.0.2; ./Setup unregister", - "cd asn1-parse-0.9.5; ./Setup unregister", - "cd bifunctors-5.5.7; ./Setup unregister", - "cd http-client-0.7.2.1; ./Setup unregister", - "cd asn1-encoding-0.9.6; ./Setup unregister", - "cd text-conversions-0.3.0; ./Setup unregister", - "cd comonad-5.0.6; ./Setup unregister", - "cd hslua-module-system-0.2.2; ./Setup unregister", - "cd attoparsec-0.13.2.4; ./Setup unregister", - "cd JuicyPixels-3.3.5; ./Setup unregister", - "cd data-default-0.7.1.1; ./Setup unregister", - "cd hxt-9.3.1.18; ./Setup unregister", - "cd streaming-commons-0.2.2.1; ./Setup unregister", - "cd http-types-0.12.3; ./Setup unregister", - "cd hslua-module-text-0.2.1; ./Setup unregister", - "cd blaze-html-0.9.1.2; ./Setup unregister", - "cd asn1-types-0.3.4; ./Setup unregister", - "cd cryptonite-0.27; ./Setup unregister", - "cd pem-0.2.4; ./Setup unregister", - "cd zip-archive-0.4.1; ./Setup unregister", - "cd Glob-0.10.1; ./Setup unregister", - "cd errors-2.3.0; ./Setup unregister", - "cd distributive-0.6.2; ./Setup unregister", - "cd QuickCheck-2.14.1; ./Setup unregister", - "cd doclayout-0.3; ./Setup unregister", - "cd regex-pcre-builtin-0.95.1.2.8.43; ./Setup unregister", - "cd temporary-1.3; ./Setup unregister", - "cd uuid-types-1.0.3; ./Setup unregister", - "cd scientific-0.3.6.2; ./Setup unregister", - "cd vector-0.12.1.2; ./Setup unregister", - "cd data-default-instances-old-locale-0.0.1; ./Setup unregister", - "cd HTTP-4000.3.15; ./Setup unregister", - "cd socks-0.6.1; ./Setup unregister", - "cd hxt-regex-xmlschema-9.2.0.3; ./Setup unregister", - "cd hxt-unicode-9.0.2.4; ./Setup unregister", - "cd async-2.2.2; ./Setup unregister", - "cd case-insensitive-1.2.1.0; ./Setup unregister", - "cd data-fix-0.3.0; ./Setup unregister", - "cd unordered-containers-0.2.12.0; ./Setup unregister", - "cd hslua-1.1.2; ./Setup unregister", - "cd commonmark-extensions-0.2.0.1; ./Setup unregister", - "cd data-default-instances-dlist-0.0.1; ./Setup unregister", - "cd cookie-0.4.5; ./Setup unregister", - "cd data-default-instances-containers-0.0.1; ./Setup unregister", - "cd ansi-terminal-0.11; ./Setup unregister", - "cd blaze-markup-0.8.2.7; ./Setup unregister", - "cd memory-0.15.0; ./Setup unregister", - "cd time-compat-1.9.3; ./Setup unregister", - "cd base-compat-batteries-0.11.1; ./Setup unregister", - "cd zlib-0.6.2.2; ./Setup unregister", - "cd xml-1.3.14; ./Setup unregister", - "cd utf8-string-1.0.1.1; ./Setup unregister", - "cd unicode-transforms-0.3.7; ./Setup unregister", - "cd transformers-compat-0.6.5; ./Setup unregister", - "cd th-abstraction-0.3.2.0; ./Setup unregister", - "cd tagsoup-0.14.8; ./Setup unregister", - "cd tagged-0.8.6; ./Setup unregister", - "cd syb-0.7.1; ./Setup unregister", - "cd splitmix-0.1.0.1; ./Setup unregister", - "cd split-0.2.3.4; ./Setup unregister", - "cd safe-0.3.19; ./Setup unregister", - "cd regex-base-0.94.0.0; ./Setup unregister", - "cd random-1.1; ./Setup unregister", - "cd primitive-0.7.1.0; ./Setup unregister", - "cd old-locale-1.0.0.7; ./Setup unregister", - "cd network-uri-2.6.3.0; ./Setup unregister", - "cd network-3.1.2.0; ./Setup unregister", - "cd mime-types-0.1.0.9; ./Setup unregister", - "cd jira-wiki-markup-1.3.2; ./Setup unregister", - "cd integer-logarithms-1.0.3; ./Setup unregister", - "cd hxt-charproperties-9.4.0.0; ./Setup unregister", - "cd hourglass-0.2.12; ./Setup unregister", - "cd hashable-1.3.0.0; ./Setup unregister", - "cd haddock-library-1.9.0; ./Setup unregister", - "cd exceptions-0.10.4; ./Setup unregister", - "cd emojis-0.1; ./Setup unregister", - "cd dlist-1.0; ./Setup unregister", - "cd digest-0.0.1.2; ./Setup unregister", - "cd data-default-class-0.1.2.0; ./Setup unregister", - "cd commonmark-0.1.0.2; ./Setup unregister", - "cd colour-2.3.5; ./Setup unregister", - "cd cmdargs-0.10.20; ./Setup unregister", - "cd cereal-0.5.8.1; ./Setup unregister", - "cd cabal-doctest-1.0.8; ./Setup unregister", - "cd blaze-builder-0.4.1.0; ./Setup unregister", - "cd basement-0.0.11; ./Setup unregister", - "cd base64-bytestring-1.1.0.0; ./Setup unregister", - "cd base16-bytestring-0.1.1.7; ./Setup unregister", - "cd base-orphans-0.8.2; ./Setup unregister", - "cd base-compat-0.11.1; ./Setup unregister", - "cd SHA-1.6.4.4; ./Setup unregister", - "cd HsYAML-0.2.1.0; ./Setup unregister" - ], - "builddir": true, - "sources": [ - { - "type": "archive", - "url": "http://hackage.haskell.org/package/HsYAML-0.2.1.0/HsYAML-0.2.1.0.tar.gz", - "sha256": "60f727d5c90e693ef71df7dcbed8f40b66d2db11375528043e0326749e861f83", - "dest": "HsYAML-0.2.1.0" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/HsYAML-0.2.1.0/revision/1.cabal", - "sha256": "6e63cbc919543c5a837040f063e96fe0a4e43bef8ab3c057cef8f122396fdc2d", - "dest": "HsYAML-0.2.1.0", - "dest-filename": "HsYAML.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/SHA-1.6.4.4/SHA-1.6.4.4.tar.gz", - "sha256": "6bd950df6b11a3998bb1452d875d2da043ee43385459afc5f16d471d25178b44", - "dest": "SHA-1.6.4.4" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/base-compat-0.11.1/base-compat-0.11.1.tar.gz", - "sha256": "356f1542ec93e7192a9073d32a8ef1e48194275495dcec7fb0d241f4baaf6d36", - "dest": "base-compat-0.11.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/base-orphans-0.8.2/base-orphans-0.8.2.tar.gz", - "sha256": "2a8062385e5d5dee418428a22c72b9391557bc1fe2f93bd643f7754b36b9eb01", - "dest": "base-orphans-0.8.2" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/base16-bytestring-0.1.1.7/base16-bytestring-0.1.1.7.tar.gz", - "sha256": "525689679d5cc80fa532c1d5cfeace0f62bbb54134fad514f1ba00d0e7fe69ba", - "dest": "base16-bytestring-0.1.1.7" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/base16-bytestring-0.1.1.7/revision/3.cabal", - "sha256": "0021256a9628971c08da95cb8f4d0d72192f3bb8a7b30b55c080562d17c43dd3", - "dest": "base16-bytestring-0.1.1.7", - "dest-filename": "base16-bytestring.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/base64-bytestring-1.1.0.0/base64-bytestring-1.1.0.0.tar.gz", - "sha256": "210d6c9042241ca52ee5d89cf221dbeb4d0e64b37391345369035ad2d9b4aca9", - "dest": "base64-bytestring-1.1.0.0" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/basement-0.0.11/basement-0.0.11.tar.gz", - "sha256": "67582b3475a5547925399f719df21f8bbbd0ca4d4db27795c22a474f8ee6346b", - "dest": "basement-0.0.11" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/basement-0.0.11/revision/2.cabal", - "sha256": "af43e2e334e515b52ca309919b135c51b5e9411e6d4c68d0e8950d61eb5f25d1", - "dest": "basement-0.0.11", - "dest-filename": "basement.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/blaze-builder-0.4.1.0/blaze-builder-0.4.1.0.tar.gz", - "sha256": "91fc8b966f3e9dc9461e1675c7566b881740f99abc906495491a3501630bc814", - "dest": "blaze-builder-0.4.1.0" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/blaze-builder-0.4.1.0/revision/1.cabal", - "sha256": "3231635f58df8f62a4e791d3ccade450d07dd370bf97729a8d0fabf113acc6dc", - "dest": "blaze-builder-0.4.1.0", - "dest-filename": "blaze-builder.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/cabal-doctest-1.0.8/cabal-doctest-1.0.8.tar.gz", - "sha256": "2026a6a87d410202ce091412ca6bc33c5aca787025326b4a3d13425a23392e0e", - "dest": "cabal-doctest-1.0.8" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/cabal-doctest-1.0.8/revision/2.cabal", - "sha256": "8bd1d614fb65f0d52609da30bf8e5ec71a4b6adf8ff5610edb3cb4d114576117", - "dest": "cabal-doctest-1.0.8", - "dest-filename": "cabal-doctest.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/cereal-0.5.8.1/cereal-0.5.8.1.tar.gz", - "sha256": "2d9e88ac934b9ebc058097c72011ff59f3f146176310e1c957a0e4cf63681bd7", - "dest": "cereal-0.5.8.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/cmdargs-0.10.20/cmdargs-0.10.20.tar.gz", - "sha256": "0e269dc48c3d4c0447c96ffd772a6fe69dfa1260c323f4cd7bf171cbf2ab7331", - "dest": "cmdargs-0.10.20" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/colour-2.3.5/colour-2.3.5.tar.gz", - "sha256": "3b8d471979617dce7c193523743c9782df63433d8e87e3ef6d97922e0da104e7", - "dest": "colour-2.3.5" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/commonmark-0.1.0.2/commonmark-0.1.0.2.tar.gz", - "sha256": "748847d820db606933aac47285c3dab49c87ffeed8f7cd2f07ef117b05f03803", - "dest": "commonmark-0.1.0.2" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/data-default-class-0.1.2.0/data-default-class-0.1.2.0.tar.gz", - "sha256": "4f01b423f000c3e069aaf52a348564a6536797f31498bb85c3db4bd2d0973e56", - "dest": "data-default-class-0.1.2.0" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/digest-0.0.1.2/digest-0.0.1.2.tar.gz", - "sha256": "641717eb16392abf8965986a9e8dc21eebf1d97775bbb6923c7b7f8fee17fe11", - "dest": "digest-0.0.1.2" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/dlist-1.0/dlist-1.0.tar.gz", - "sha256": "173d637328bb173fcc365f30d29ff4a94292a1e0e5558aeb3dfc11de81510115", - "dest": "dlist-1.0" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/emojis-0.1/emojis-0.1.tar.gz", - "sha256": "5a03c36ff41989d3309c225bf8dfab81d7733d04c5e6b61e483eccfa929cdfb0", - "dest": "emojis-0.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/exceptions-0.10.4/exceptions-0.10.4.tar.gz", - "sha256": "4d0bfb4355cffcd67d300811df9d5fe44ea3594ed63750795bfc1f797abd84cf", - "dest": "exceptions-0.10.4" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/exceptions-0.10.4/revision/1.cabal", - "sha256": "1729ef26a611ae78aa58cdd34192aff710cbaa6d631dd042ddfb63556d00b52c", - "dest": "exceptions-0.10.4", - "dest-filename": "exceptions.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/haddock-library-1.9.0/haddock-library-1.9.0.tar.gz", - "sha256": "ac3032d3e2ba87f69c8207b29966e5cda023a30dd25b4d6ae14a93bc2bac6730", - "dest": "haddock-library-1.9.0" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/hashable-1.3.0.0/hashable-1.3.0.0.tar.gz", - "sha256": "822e5413fbccca6ae884d3aba4066422c8b5d58d23d18b9ecb5c03273bb19ab4", - "dest": "hashable-1.3.0.0" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/hashable-1.3.0.0/revision/1.cabal", - "sha256": "4c70f1407881059e93550d3742191254296b2737b793a742bd901348fb3e1fb1", - "dest": "hashable-1.3.0.0", - "dest-filename": "hashable.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/hourglass-0.2.12/hourglass-0.2.12.tar.gz", - "sha256": "44335b5c402e80c60f1db6a74462be4ea29d1a9043aa994334ffee1164f1ca4a", - "dest": "hourglass-0.2.12" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/hxt-charproperties-9.4.0.0/hxt-charproperties-9.4.0.0.tar.gz", - "sha256": "f50ea1d5528025400507f9b181596f7b277e645a1e33ebbc659be22b244468ae", - "dest": "hxt-charproperties-9.4.0.0" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/integer-logarithms-1.0.3/integer-logarithms-1.0.3.tar.gz", - "sha256": "5ae262018698af35bb74916fad170d96d3eb44669c72ed36db9a19a3392cec16", - "dest": "integer-logarithms-1.0.3" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/integer-logarithms-1.0.3/revision/2.cabal", - "sha256": "63d42595ec92b71ac98a07b984b0a2eb3d4956f4ad2d856c3bf6fc3dc218d228", - "dest": "integer-logarithms-1.0.3", - "dest-filename": "integer-logarithms.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/jira-wiki-markup-1.3.2/jira-wiki-markup-1.3.2.tar.gz", - "sha256": "8c0fcc6098751dea0d929587c59eedc937113df9ca089a52de3f63635ff26c9b", - "dest": "jira-wiki-markup-1.3.2" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/mime-types-0.1.0.9/mime-types-0.1.0.9.tar.gz", - "sha256": "0a32435169ef4ba59f4a4b8addfd0c04479410854d1b8d69a1e38fb389ba71d2", - "dest": "mime-types-0.1.0.9" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/network-3.1.2.0/network-3.1.2.0.tar.gz", - "sha256": "e02abd759a09d689eb0b802ff3c4c734e5ba23fe6b96873b613603479452eb1f", - "dest": "network-3.1.2.0" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/network-3.1.2.0/revision/1.cabal", - "sha256": "3ace4c1cab0d8f7a0029188e0887a0526f0e148dccb4473eec65806c81df3a1d", - "dest": "network-3.1.2.0", - "dest-filename": "network.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/network-uri-2.6.3.0/network-uri-2.6.3.0.tar.gz", - "sha256": "a01c1389f15d2cc2e847914737f706133bb11f0c5f8ee89711a36a25b7afa723", - "dest": "network-uri-2.6.3.0" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/old-locale-1.0.0.7/old-locale-1.0.0.7.tar.gz", - "sha256": "dbaf8bf6b888fb98845705079296a23c3f40ee2f449df7312f7f7f1de18d7b50", - "dest": "old-locale-1.0.0.7" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/old-locale-1.0.0.7/revision/2.cabal", - "sha256": "fa998be2c7e00cd26a6e9075bea790caaf3932caa3e9497ad69bc20380dd6911", - "dest": "old-locale-1.0.0.7", - "dest-filename": "old-locale.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/primitive-0.7.1.0/primitive-0.7.1.0.tar.gz", - "sha256": "6bebecfdf2a57787d9fd5231bfd612b65a92edd7b33a973b2a0f11312b89a3f0", - "dest": "primitive-0.7.1.0" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/random-1.1/random-1.1.tar.gz", - "sha256": "b718a41057e25a3a71df693ab0fe2263d492e759679b3c2fea6ea33b171d3a5a", - "dest": "random-1.1" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/random-1.1/revision/1.cabal", - "sha256": "7b67624fd76ddf97c206de0801dc7e888097e9d572974be9b9ea6551d76965df", - "dest": "random-1.1", - "dest-filename": "random.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/regex-base-0.94.0.0/regex-base-0.94.0.0.tar.gz", - "sha256": "c41f82f5fc1157c961a4cbdc0cd5561e5aa44f339ce6e706d978d97e0ca6b914", - "dest": "regex-base-0.94.0.0" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/regex-base-0.94.0.0/revision/1.cabal", - "sha256": "44aa95ca762294ffbb28cf0af9c567d93b5d2c56e4f38ce5385a257d899f968e", - "dest": "regex-base-0.94.0.0", - "dest-filename": "regex-base.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/safe-0.3.19/safe-0.3.19.tar.gz", - "sha256": "25043442c8f8aa95955bb17467d023630632b961aaa61e807e325d9b2c33f7a2", - "dest": "safe-0.3.19" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/split-0.2.3.4/split-0.2.3.4.tar.gz", - "sha256": "271fe5104c9f40034aa9a1aad6269bcecc9454bc5a57c247e69e17de996c1f2a", - "dest": "split-0.2.3.4" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/splitmix-0.1.0.1/splitmix-0.1.0.1.tar.gz", - "sha256": "4d4b694846eac6af373e750e4c95c9ca2a984bc7f0e6466f973759d0fb1f192a", - "dest": "splitmix-0.1.0.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/syb-0.7.1/syb-0.7.1.tar.gz", - "sha256": "e04a9c7ae48d9fe25e9b7a064f7122d39c710753544511e15df7a6e87fdfe700", - "dest": "syb-0.7.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/tagged-0.8.6/tagged-0.8.6.tar.gz", - "sha256": "ad16def0884cf6f05ae1ae8e90192cf9d8d9673fa264b249499bd9e4fac791dd", - "dest": "tagged-0.8.6" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/tagged-0.8.6/revision/2.cabal", - "sha256": "1f7ca84e6c88cbb923641c60041c9f56c34f1a889759cc073cdf10542b441ff9", - "dest": "tagged-0.8.6", - "dest-filename": "tagged.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/tagsoup-0.14.8/tagsoup-0.14.8.tar.gz", - "sha256": "ba7e5500d853d29f0675b90655b7fdd032a4a7eee82a56e7ee3ef9949fe93ad5", - "dest": "tagsoup-0.14.8" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/th-abstraction-0.3.2.0/th-abstraction-0.3.2.0.tar.gz", - "sha256": "36fef33ad0f34b9b8fb5552fe6187579a00d5f90d938e9bc24d382a9919feb79", - "dest": "th-abstraction-0.3.2.0" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/transformers-compat-0.6.5/transformers-compat-0.6.5.tar.gz", - "sha256": "da67cf11515da751b32a8ce6e96549f7268f7c435769ad19dc9766b69774620b", - "dest": "transformers-compat-0.6.5" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/unicode-transforms-0.3.7/unicode-transforms-0.3.7.tar.gz", - "sha256": "e866824092904a0c921d440118f537891226555b00177f1cb069e46d3f59fd5d", - "dest": "unicode-transforms-0.3.7" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/utf8-string-1.0.1.1/utf8-string-1.0.1.1.tar.gz", - "sha256": "fb0b9e3acbe0605bcd1c63e51f290a7bbbe6628dfa3294ff453e4235fbaef140", - "dest": "utf8-string-1.0.1.1" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/utf8-string-1.0.1.1/revision/3.cabal", - "sha256": "68cc6cf665e7212334a51b63d6936daeaca023b2cfe8637d130acfe95f91700b", - "dest": "utf8-string-1.0.1.1", - "dest-filename": "utf8-string.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/xml-1.3.14/xml-1.3.14.tar.gz", - "sha256": "32d1a1a9f21a59176d84697f96ae3a13a0198420e3e4f1c48abbab7d2425013d", - "dest": "xml-1.3.14" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/xml-1.3.14/revision/2.cabal", - "sha256": "c7a33d37c968c769723931a33e4e795f0aadda6cb62e7073ded8a2db52509d95", - "dest": "xml-1.3.14", - "dest-filename": "xml.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/zlib-0.6.2.2/zlib-0.6.2.2.tar.gz", - "sha256": "04b5890dd69e992f8cd09570d81e9d5ecab19db8e82cbe47ba8e02c31c0631ba", - "dest": "zlib-0.6.2.2" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/base-compat-batteries-0.11.1/base-compat-batteries-0.11.1.tar.gz", - "sha256": "caf66fed3c0a3b0437692cad18c93a7074e8524a86b8be1ce04d0a18cbf6aed8", - "dest": "base-compat-batteries-0.11.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/time-compat-1.9.3/time-compat-1.9.3.tar.gz", - "sha256": "bb6a44e667945ddca8ded93e041ee91986a4a19f59e149a5dd21fdb1bfa3db88", - "dest": "time-compat-1.9.3" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/memory-0.15.0/memory-0.15.0.tar.gz", - "sha256": "e3ff892c1a94708954d0bb2c4f4ab81bc0f505352d95095319c462db1aeb3529", - "dest": "memory-0.15.0" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/memory-0.15.0/revision/1.cabal", - "sha256": "be7024b50e876a9c3b7febaefdd81d5dc67268c58a7b4e6b3825bdc58274d88c", - "dest": "memory-0.15.0", - "dest-filename": "memory.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/blaze-markup-0.8.2.7/blaze-markup-0.8.2.7.tar.gz", - "sha256": "8b6489ed422d98e4372f41be1f40f772b8d4ed925f3203b36be4078d918c8ee4", - "dest": "blaze-markup-0.8.2.7" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/ansi-terminal-0.11/ansi-terminal-0.11.tar.gz", - "sha256": "c6611b9e51add41db3f79eac30066c06b33a6ca2a09e586b4b361d7f98303793", - "dest": "ansi-terminal-0.11" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/data-default-instances-containers-0.0.1/data-default-instances-containers-0.0.1.tar.gz", - "sha256": "a55e07af005c9815d82f3fc95e125db82994377c9f4a769428878701d4ec081a", - "dest": "data-default-instances-containers-0.0.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/cookie-0.4.5/cookie-0.4.5.tar.gz", - "sha256": "707f94d1b31018b91d6a1e9e19ef5413e20d02cab00ad93a5fd7d7b3b46a3583", - "dest": "cookie-0.4.5" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/data-default-instances-dlist-0.0.1/data-default-instances-dlist-0.0.1.tar.gz", - "sha256": "7d683711cbf08abd7adcd5ac2be825381308d220397315a5570fe61b719b5959", - "dest": "data-default-instances-dlist-0.0.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/commonmark-extensions-0.2.0.1/commonmark-extensions-0.2.0.1.tar.gz", - "sha256": "866211d14b2d3f626578eec22f33b74ae1b0b4f8326bac8ce365a1d38e092622", - "dest": "commonmark-extensions-0.2.0.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/hslua-1.1.2/hslua-1.1.2.tar.gz", - "sha256": "74513db9f47745a26c7d6cbe4e4e12e307359378594f292a677ab29032a764b3", - "dest": "hslua-1.1.2" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/unordered-containers-0.2.12.0/unordered-containers-0.2.12.0.tar.gz", - "sha256": "481dab4ea59f10feaa7d65ecb8ae5d136d130bdbacf2356d414b3926d638bd20", - "dest": "unordered-containers-0.2.12.0" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/data-fix-0.3.0/data-fix-0.3.0.tar.gz", - "sha256": "9e59b3ed694b5139316093b3767842e60ad4821858459e7cd763e5773dfa99a0", - "dest": "data-fix-0.3.0" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/case-insensitive-1.2.1.0/case-insensitive-1.2.1.0.tar.gz", - "sha256": "296dc17e0c5f3dfb3d82ced83e4c9c44c338ecde749b278b6eae512f1d04e406", - "dest": "case-insensitive-1.2.1.0" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/async-2.2.2/async-2.2.2.tar.gz", - "sha256": "4b4ab1ac82c45144d82c6daf6cb6ba45eab9957dad44787fa5e869e23d73bbff", - "dest": "async-2.2.2" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/async-2.2.2/revision/1.cabal", - "sha256": "a178c166856da7ff22fe4500337b54812e94fd2059409452187d72e057ede9cd", - "dest": "async-2.2.2", - "dest-filename": "async.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/hxt-unicode-9.0.2.4/hxt-unicode-9.0.2.4.tar.gz", - "sha256": "7b5823f3bd94b57022d9d84ab3555303653c5121eaaef2ee1fd4918f3c434466", - "dest": "hxt-unicode-9.0.2.4" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/hxt-regex-xmlschema-9.2.0.3/hxt-regex-xmlschema-9.2.0.3.tar.gz", - "sha256": "f4743ba65498d6001cdfcf5cbc3317d4bc43941be5c7030b60beb83408c892b0", - "dest": "hxt-regex-xmlschema-9.2.0.3" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/hxt-regex-xmlschema-9.2.0.3/revision/1.cabal", - "sha256": "48c50321a00139120359c96fbdf5a47a7103a3db9e6ccebf5135e02a9ddde96d", - "dest": "hxt-regex-xmlschema-9.2.0.3", - "dest-filename": "hxt-regex-xmlschema.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/socks-0.6.1/socks-0.6.1.tar.gz", - "sha256": "734447558bb061ce768f53a0df1f2401902c6bee396cc96ce627edd986ef6a73", - "dest": "socks-0.6.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/HTTP-4000.3.15/HTTP-4000.3.15.tar.gz", - "sha256": "0d6b368e43001c046660e0e209bf9795dc990cb45016447fcf92e822c22e1594", - "dest": "HTTP-4000.3.15" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/data-default-instances-old-locale-0.0.1/data-default-instances-old-locale-0.0.1.tar.gz", - "sha256": "60d3b02922958c4908d7bf2b24ddf61511665745f784227d206745784b0c0802", - "dest": "data-default-instances-old-locale-0.0.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/vector-0.12.1.2/vector-0.12.1.2.tar.gz", - "sha256": "3b6e27683f6f20b37b8a35d0fab9e34b57dad72ac64cb16f428726780d4011bd", - "dest": "vector-0.12.1.2" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/scientific-0.3.6.2/scientific-0.3.6.2.tar.gz", - "sha256": "278d0afc87450254f8a76eab21b5583af63954efc9b74844a17a21a68013140f", - "dest": "scientific-0.3.6.2" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/uuid-types-1.0.3/uuid-types-1.0.3.tar.gz", - "sha256": "9276517ab24a9b06f39d6e3c33c6c2b4ace1fc2126dbc1cd9806866a6551b3fd", - "dest": "uuid-types-1.0.3" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/uuid-types-1.0.3/revision/3.cabal", - "sha256": "4e27aa142cb37f391e78f36d13139ba0a907675429a21e8f2cfae9223202dd7e", - "dest": "uuid-types-1.0.3", - "dest-filename": "uuid-types.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/temporary-1.3/temporary-1.3.tar.gz", - "sha256": "8c442993694b5ffca823ce864af95bd2841fb5264ee511c61cf48cc71d879890", - "dest": "temporary-1.3" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/regex-pcre-builtin-0.95.1.2.8.43/regex-pcre-builtin-0.95.1.2.8.43.tar.gz", - "sha256": "b4ae10ad53726249b064f880984ecba2a500ba27e47cb60b2e2af0f44643b6af", - "dest": "regex-pcre-builtin-0.95.1.2.8.43" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/doclayout-0.3/doclayout-0.3.tar.gz", - "sha256": "87aad514e631f2ccc4a496f3fa74a2beda5f9ad53b660d1033cd338904e6b6f2", - "dest": "doclayout-0.3" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/QuickCheck-2.14.1/QuickCheck-2.14.1.tar.gz", - "sha256": "c3fcc5aa18dabe2d1cebbdf3f0a91daf239b52eb086d02b7c615c607ef0d4757", - "dest": "QuickCheck-2.14.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/distributive-0.6.2/distributive-0.6.2.tar.gz", - "sha256": "824ee271ded433ce6c61fe890c784642b7e20ffa4082fca609da54e7dcfc23c9", - "dest": "distributive-0.6.2" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/distributive-0.6.2/revision/2.cabal", - "sha256": "2ace9babcdbd1c2db28638c200405fb85e3660fe19ceae4f03082590adc2c487", - "dest": "distributive-0.6.2", - "dest-filename": "distributive.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/errors-2.3.0/errors-2.3.0.tar.gz", - "sha256": "6772e5689f07e82077ffe3339bc672934d83d83a97a7d4f1349de1302cb71f75", - "dest": "errors-2.3.0" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/Glob-0.10.1/Glob-0.10.1.tar.gz", - "sha256": "cae4476d944947010705e0b00cf3e36c90ef407f968861f6771b931056b6d315", - "dest": "Glob-0.10.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/zip-archive-0.4.1/zip-archive-0.4.1.tar.gz", - "sha256": "c5d5c9976241dcc25b0d8753dc526bb1bfef60f30dee38c53a7ae56e6be9b1b1", - "dest": "zip-archive-0.4.1" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/zip-archive-0.4.1/revision/1.cabal", - "sha256": "51774bdc747d20b8f23172315f9c3fdd6c11de01607e98e9890eb87fb49566d7", - "dest": "zip-archive-0.4.1", - "dest-filename": "zip-archive.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/pem-0.2.4/pem-0.2.4.tar.gz", - "sha256": "770c4c1b9cd24b3db7f511f8a48404a0d098999e28573c3743a8a296bb96f8d4", - "dest": "pem-0.2.4" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/cryptonite-0.27/cryptonite-0.27.tar.gz", - "sha256": "c82745a8930c36a81a0772dc18c86f8b7505e25fc2ab96b08c2f9125ece6c8b0", - "dest": "cryptonite-0.27" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/asn1-types-0.3.4/asn1-types-0.3.4.tar.gz", - "sha256": "78ee92a251379298ca820fa53edbf4b33c539b9fcd887c86f520c30e3b4e21a8", - "dest": "asn1-types-0.3.4" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/blaze-html-0.9.1.2/blaze-html-0.9.1.2.tar.gz", - "sha256": "60503f42546c6c1b954014d188ea137e43d74dcffd2bf6157c113fd91a0c394c", - "dest": "blaze-html-0.9.1.2" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/hslua-module-text-0.2.1/hslua-module-text-0.2.1.tar.gz", - "sha256": "1302d9022e9beea0cf4f09f977d7ca0956c598d0bf15945de5a52dd8f7e66dc6", - "dest": "hslua-module-text-0.2.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/http-types-0.12.3/http-types-0.12.3.tar.gz", - "sha256": "4e8a4a66477459fa436a331c75e46857ec8026283df984d54f90576cd3024016", - "dest": "http-types-0.12.3" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/streaming-commons-0.2.2.1/streaming-commons-0.2.2.1.tar.gz", - "sha256": "306940bf4878a0b714e6746a7f934d018100efc86332c176a648014bfe1e81dd", - "dest": "streaming-commons-0.2.2.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/hxt-9.3.1.18/hxt-9.3.1.18.tar.gz", - "sha256": "721809d89bbcaf29b2bbe3b9cdbb54e6d6a30afe7509186061898f7e8b996620", - "dest": "hxt-9.3.1.18" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/data-default-0.7.1.1/data-default-0.7.1.1.tar.gz", - "sha256": "b0f95d279cd75cacaa8152a01590dc3460f7134f6840b37052abb3ba3cb2a511", - "dest": "data-default-0.7.1.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/JuicyPixels-3.3.5/JuicyPixels-3.3.5.tar.gz", - "sha256": "eca5144499ec7148943e687be1d14354024a51447dd2b0470e6c64539c97447a", - "dest": "JuicyPixels-3.3.5" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/attoparsec-0.13.2.4/attoparsec-0.13.2.4.tar.gz", - "sha256": "ba66cd6de1749ec92568db1b9c905b43a849f0ad918d45d7b594407a02ebefb2", - "dest": "attoparsec-0.13.2.4" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/attoparsec-0.13.2.4/revision/1.cabal", - "sha256": "5941a05141a61239e8d6c4f2c9876bec3765d786766721b8474b8625febf914a", - "dest": "attoparsec-0.13.2.4", - "dest-filename": "attoparsec.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/hslua-module-system-0.2.2/hslua-module-system-0.2.2.tar.gz", - "sha256": "31fb666ef8fd7a7e472705713eba295833e91450861463f731704e403610946b", - "dest": "hslua-module-system-0.2.2" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/comonad-5.0.6/comonad-5.0.6.tar.gz", - "sha256": "77cfb016acd1747b892c31b82daf0de93f508ba775d62562d376b354adb88fae", - "dest": "comonad-5.0.6" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/comonad-5.0.6/revision/1.cabal", - "sha256": "fdf1b529a79765a8549ac7e9d439b769cca852778742db8702a9d9b2dc27e4a4", - "dest": "comonad-5.0.6", - "dest-filename": "comonad.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/text-conversions-0.3.0/text-conversions-0.3.0.tar.gz", - "sha256": "1756be2f6b515fea9e00b383c00d1ee851f8b25ddbc2901dd6be27d9b6292c21", - "dest": "text-conversions-0.3.0" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/text-conversions-0.3.0/revision/1.cabal", - "sha256": "5120450c8749bc5e5e9d76ce599bd76af62a0df0c23135eb4fa99ce3457482e7", - "dest": "text-conversions-0.3.0", - "dest-filename": "text-conversions.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/asn1-encoding-0.9.6/asn1-encoding-0.9.6.tar.gz", - "sha256": "d9f8deabd3b908e5cf83c0d813c08dc0143b3ec1c0d97f660d2cfa02c1c8da0a", - "dest": "asn1-encoding-0.9.6" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/asn1-encoding-0.9.6/revision/1.cabal", - "sha256": "3655d9a68c8c082e0d22f33456d968ad8c484d4e95308ad9217788b1c343d8a6", - "dest": "asn1-encoding-0.9.6", - "dest-filename": "asn1-encoding.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/http-client-0.7.2.1/http-client-0.7.2.1.tar.gz", - "sha256": "4f9efc79e39862e707da686b118460d26727866544338c7b1145617f804bc92c", - "dest": "http-client-0.7.2.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/bifunctors-5.5.7/bifunctors-5.5.7.tar.gz", - "sha256": "88b3a2d4504e1139a3aef7027913faa0870631477d0a2ebb6fa67d494cdb3532", - "dest": "bifunctors-5.5.7" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/bifunctors-5.5.7/revision/1.cabal", - "sha256": "179970d8cabaa760df74d40e1f81b3633c78b569f2d058e24dac31b5a1865406", - "dest": "bifunctors-5.5.7", - "dest-filename": "bifunctors.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/asn1-parse-0.9.5/asn1-parse-0.9.5.tar.gz", - "sha256": "8f1fe1344d30b39dc594d74df2c55209577722af1497204b4c2b6d6e8747f39e", - "dest": "asn1-parse-0.9.5" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/assoc-1.0.2/assoc-1.0.2.tar.gz", - "sha256": "d8988dc6e8718c7a3456515b769c9336aeeec730cf86fc5175247969ff8f144f", - "dest": "assoc-1.0.2" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/x509-1.7.5/x509-1.7.5.tar.gz", - "sha256": "b1b0fcbb4aa0d749ed2b54710c2ebd6d900cb932108ad14f97640cf4ca60c7c8", - "dest": "x509-1.7.5" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/x509-1.7.5/revision/1.cabal", - "sha256": "01185a9a17bee4e89287d9e32bfaa673133cf2b09a39759627bed1f72ea528fd", - "dest": "x509-1.7.5", - "dest-filename": "x509.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/these-1.1.1.1/these-1.1.1.1.tar.gz", - "sha256": "d798c9f56e17def441e8f51e54cc11afdb3e76c6a9d1e9ee154e9a78da0bf508", - "dest": "these-1.1.1.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/x509-store-1.6.7/x509-store-1.6.7.tar.gz", - "sha256": "9786356c8bfdf631ea018c3244d0854c6db2cb24e583891ea553961443f61ef9", - "dest": "x509-store-1.6.7" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/x509-store-1.6.7/revision/1.cabal", - "sha256": "a707b2f4ba3c02ebacd7ecd19e9f0c0b211b58270329c2c775a2c1df26820212", - "dest": "x509-store-1.6.7", - "dest-filename": "x509-store.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/strict-0.4/strict-0.4.tar.gz", - "sha256": "279fee78690409ce0878beead4a620f0c0975dba215d6778f183699e3576453f", - "dest": "strict-0.4" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/x509-validation-1.6.11/x509-validation-1.6.11.tar.gz", - "sha256": "f94321cbcc4a534adf5889ae6950f3673e38b62b89b6970b477f502ce987d19b", - "dest": "x509-validation-1.6.11" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/x509-system-1.6.6/x509-system-1.6.6.tar.gz", - "sha256": "40dcdaae3ec67f38c08d96d4365b901eb8ac0c590bd7972eb429d37d58aa4419", - "dest": "x509-system-1.6.6" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/aeson-1.5.4.0/aeson-1.5.4.0.tar.gz", - "sha256": "80d0a13f952b40e5a6f118bf9a10470426446dd54dc6348b6e6cf86e22cd0f9f", - "dest": "aeson-1.5.4.0" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/tls-1.5.4/tls-1.5.4.tar.gz", - "sha256": "ce42bfa581a50f62776581da4b86408ebb1a51bc6cb2f95ad0a2ac7caa19a437", - "dest": "tls-1.5.4" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/skylighting-core-0.8.5/skylighting-core-0.8.5.tar.gz", - "sha256": "c7a54765d3c735f6abd31bdb4ae80677cbcf16a0f9cca90846e11286dec1ecab", - "dest": "skylighting-core-0.8.5" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/pandoc-types-1.21/pandoc-types-1.21.tar.gz", - "sha256": "ca6a72311b94baf2f5d758c98dcf2e4cb5c76fc463b220a7310bf02821046bf1", - "dest": "pandoc-types-1.21" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/ipynb-0.1.0.1/ipynb-0.1.0.1.tar.gz", - "sha256": "2b7b13bbe685ba753a9cc3d93c7155dfa5403122d72c9ce3ec39e47323f89753", - "dest": "ipynb-0.1.0.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/doctemplates-0.8.2/doctemplates-0.8.2.tar.gz", - "sha256": "f463b2309e19918a58b1e53740bee4b98ab274549e49e4455dce824b49adbe93", - "dest": "doctemplates-0.8.2" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/aeson-pretty-0.8.8/aeson-pretty-0.8.8.tar.gz", - "sha256": "81cea61cb6dcf32c3f0529ea5cfc98dbea3894152d7f2d9fe1cb051f927ec726", - "dest": "aeson-pretty-0.8.8" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/connection-0.3.1/connection-0.3.1.tar.gz", - "sha256": "5d759589c532c34d87bfc4f6fcb732bf55b55a93559d3b94229e8347a15375d9", - "dest": "connection-0.3.1" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/connection-0.3.1/revision/1.cabal", - "sha256": "65da1c055610095733bcd228d85dff80804b23a5d18fede994a0f9fcd1b0c121", - "dest": "connection-0.3.1", - "dest-filename": "connection.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/skylighting-0.8.5/skylighting-0.8.5.tar.gz", - "sha256": "5ba30911f5718ec4c5e76d160c358892b301b3ea58d009cb0506dcabaf0615ad", - "dest": "skylighting-0.8.5" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/texmath-0.12.0.3/texmath-0.12.0.3.tar.gz", - "sha256": "318771c696dfa4fc57edf984f3aa35f0cb1792119cf2e27601b6267d9e1d4918", - "dest": "texmath-0.12.0.3" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/commonmark-pandoc-0.2.0.1/commonmark-pandoc-0.2.0.1.tar.gz", - "sha256": "03624bad9808639c93d4ba6a8d0a6f528dfedbbe7da5dcb3daa3294c8c06428b", - "dest": "commonmark-pandoc-0.2.0.1" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/http-client-tls-0.3.5.3/http-client-tls-0.3.5.3.tar.gz", - "sha256": "471abf8f29a909f40b21eab26a410c0e120ae12ce337512a61dae9f52ebb4362", - "dest": "http-client-tls-0.3.5.3" - }, - { - "type": "file", - "url": "http://hackage.haskell.org/package/http-client-tls-0.3.5.3/revision/1.cabal", - "sha256": "c97c3d88e6318a3056e42e2cd0913d5c4bff381f83341bb6ff06865fd12c8b52", - "dest": "http-client-tls-0.3.5.3", - "dest-filename": "http-client-tls.cabal" - }, - { - "type": "archive", - "url": "http://hackage.haskell.org/package/pandoc-2.10.1/pandoc-2.10.1.tar.gz", - "sha256": "938a4c9b0a7ed3de886c73af4052913b0ac9e4aa12b435bd2afd09670bd3229a", - "dest": "pandoc-2.10.1" - }, - { - "type": "script", - "commands": [ - "set -x", - "cd $1", - "if [ ! -e Setup.hs ] && [ ! -e Setup.lhs ]; then", - " echo 'import Distribution.Simple' > Setup.hs", - " echo 'main = defaultMain' >> Setup.hs", - "fi", - "ghc -threaded --make Setup", - "./Setup configure --disable-optimization --prefix=/app", - "./Setup build", - "./Setup install" - ], - "dest-filename": "install-package" - } - ], - "cleanup": [ - "/lib/x86_64-linux-ghc-*" - ] - }, - { - "name": "html2text", - "sources": [ - { - "type": "archive", - "url": "http://au.archive.ubuntu.com/ubuntu/pool/universe/h/html2text/html2text_1.3.2a.orig.tar.gz", - "sha256": "000b39d5d910b867ff7e087177b470a1e26e2819920dcffd5991c33f6d480392" - } - ], - "buildsystem": "simple", - "build-commands": [ - "./configure --prefix=/app", - "make -j4", - "install -D -t /app/bin html2text" - ] - }, - { - "name": "lua5.3", - "sources": [ - { - "type": "archive", - "url": "http://au.archive.ubuntu.com/ubuntu/pool/main/l/lua5.3/lua5.3_5.3.3.orig.tar.gz", - "sha256": "5113c06884f7de453ce57702abaac1d618307f33f6789fa870e87a59d772aca2" - } - ], - "buildsystem": "simple", - "build-commands": [ - "sed -e \"s/INSTALL_TOP= \\/usr\\/local/INSTALL_TOP= \\/app/\" Makefile > new", - "mv new Makefile", - "make -j4 linux", - "make install" - ] - }, - { - "name": "lua", - "sources": [ - { - "type": "archive", - "url": "https://www.lua.org/ftp/lua-5.3.5.tar.gz", - "sha256": "0c2eed3f960446e1a3e4b9a1ca2f3ff893b6ce41942cf54d5dd59ab4b3b058ac" - } - ], - "buildsystem": "simple", - "build-commands": [ - "sed -e \"s/INSTALL_TOP= \\/usr\\/local/INSTALL_TOP= \\/app/\" Makefile > new", - "mv new Makefile", - "make -j4 linux", - "make install" - ] - }, - { - "name": "luarocks", - "sources": [ - { - "type": "git", - "url": "https://github.com/luarocks/luarocks", - "commit": "f162d2ec3ca13d9e757db9dd6eb0f13979bac74b" - } - ], - "cleanup": [ - "*" - ] - }, - { - "name": "luacheck", - "buildsystem": "simple", - "build-commands": [ - "luarocks-admin make_manifest .", - "luarocks install --only-from=$PWD luacheck" - ], - "sources": [ - { - "type": "file", - "url": "https://luarocks.org/luacheck-0.24.0-2.src.rock", - "sha256": "58eb0ab4668ad2f17947317afccd075255576bb25c61215424a82e066d4dc046" - }, - { - "type": "file", - "url": "https://luarocks.org/argparse-0.7.1-1.src.rock", - "sha256": "ea30d0643586a20aeb6349ca8cb7db63aefc21d9aa007c7b7168a7c564817879" - }, - { - "type": "file", - "url": "https://luarocks.org/luafilesystem-1.8.0-1.src.rock", - "sha256": "576270a55752894254c2cba0d49d73595d37ec4ea8a75e557fdae7aff80e19cf" - } - ] - }, - { - "name": "libzen", - "sources": [ - { - "type": "archive", - "url": "http://au.archive.ubuntu.com/ubuntu/pool/universe/libz/libzen/libzen_0.4.37.orig.tar.gz", - "sha256": "165ea5cd8d2e26d09b93b388904d228b71717b4a024b4694d455a407269686a6" - } - ], - "subdir": "Project/GNU/Library" - }, - { - "name": "libmediainfo", - "sources": [ - { - "type": "archive", - "url": "http://au.archive.ubuntu.com/ubuntu/pool/universe/libm/libmediainfo/libmediainfo_19.09+dfsg.orig.tar.gz", - "sha256": "11b18eb3c97f15aa2e5d5d4ba8ff31f13e4c05750887deac828ae70b0a292737" - } - ], - "subdir": "Project/GNU/Library" - }, - { - "name": "mediainfo", - "sources": [ - { - "type": "archive", - "url": "http://au.archive.ubuntu.com/ubuntu/pool/universe/m/mediainfo/mediainfo_19.09.orig.tar.gz", - "sha256": "1db9a8d9416e0d276a209eee784d9865b8b4c71a26873c6b72badacc2a4ee670" - } - ], - "subdir": "Project/GNU/CLI" - }, - { - "name": "python2.7", - "sources": [ - { - "type": "archive", - "url": "http://au.archive.ubuntu.com/ubuntu/pool/universe/p/python2.7/python2.7_2.7.18~rc1.orig.tar.gz", - "sha256": "fb8f47668ccb2ab22d8b1f72e0ca9b0022eeafce5b3fe8c422ab935cba62ff3d" - } - ], - "cleanup": [ - "*" - ] - }, - { - "name": "nodejs", - "cleanup": [ - "/include", - "/share", - "/lib/node_modules" - ], - "sources": [ - { - "type": "archive", - "url": "https://nodejs.org/dist/latest-v12.x/node-v12.18.4.tar.xz", - "sha256": "25f03cb18e53b6d0959d0c219e701a85eb4693f526bdda7c72bc6199b364f609" - } - ] - }, - { - "name": "perl", - "sources": [ - { - "type": "archive", - "url": "https://www.cpan.org/src/5.0/perl-5.32.0.tar.gz", - "sha256": "efeb1ce1f10824190ad1cadbcccf6fdb8a5d37007d0100d2d9ae5f2b5900c0b4" - } - ], - "buildsystem": "simple", - "build-commands": [ - "./Configure -des -Dprefix=/app", - "make -j4", - "make install" - ], - "post-install": [ - "chmod 755 -R /app/lib/perl5/5.32.0/x86_64-linux/auto" - ] - }, - { - "name": "php7.4", - "sources": [ - { - "type": "archive", - "url": "http://au.archive.ubuntu.com/ubuntu/pool/main/p/php7.4/php7.4_7.4.3.orig.tar.xz", - "sha256": "cf1f856d877c268124ded1ede40c9fb6142b125fdaafdc54f855120b8bc6982a" - } - ], - "buildsystem": "simple", - "build-commands": [ - "./configure --prefix=/app --disable-all --disable-cgi --disable-phpdbg", - "make -j4", - "make install" - ] - }, - { - "name": "rakudo", - "sources": [ - { - "type": "archive", - "url": "https://rakudo.org/dl/star/rakudo-star-2020.05.tar.gz", - "sha256": "d0d0a4ed5f75a5fb010d9630c052c061df9b6ce8325d578fae21fc6a4b99e6d6" - } - ], - "buildsystem": "simple", - "build-commands": [ - "cd src/moarvm-2020.05; perl Configure.pl --prefix=/app", - "cd src/moarvm-2020.05; make -j6", - "cd src/moarvm-2020.05; make install", - "cd src/nqp-2020.05; perl Configure.pl --prefix=/app", - "cd src/nqp-2020.05; make -j6", - "cd src/nqp-2020.05; make install", - "cd src/rakudo-2020.05.1; perl Configure.pl --prefix=/app", - "cd src/rakudo-2020.05.1; make -j6", - "cd src/rakudo-2020.05.1; make install" - ] - }, - { - "name": "db5.3", - "sources": [ - { - "type": "archive", - "url": "http://au.archive.ubuntu.com/ubuntu/pool/main/d/db5.3/db5.3_5.3.28+dfsg1.orig.tar.xz", - "sha256": "b19bf3dd8ce74b95a7b215be9a7c8489e8e8f18da60d64d6340a06e75f497749" - } - ], - "buildsystem": "simple", - "build-commands": [ - "cd build_unix && ../dist/configure --prefix=/app && make -j4 && make install" - ] - }, - { - "name": "rpm", - "sources": [ - { - "type": "archive", - "url": "http://au.archive.ubuntu.com/ubuntu/pool/universe/r/rpm/rpm_4.14.2.1+dfsg1.orig.tar.xz", - "sha256": "1f8ab32e127583c25add1df529c5d8a24318eafe057075f2afa0200e9d07b969" - } - ], - "config-opts": [ - "--without-lua" - ] - }, - { - "name": "ruby2.7", - "sources": [ - { - "type": "archive", - "url": "http://au.archive.ubuntu.com/ubuntu/pool/main/r/ruby2.7/ruby2.7_2.7.0.orig.tar.xz", - "sha256": "317ea23716234b1ca393f3509afa115b98b6a873f6724faffdcaeb04bd6f2935" - } - ], - "cleanup": [ - "/share/ri", - "/lib/libruby-static.a", - "/lib/ruby/*/rdoc", - "/lib/ruby/*/x86_64-linux/enc" - ] - }, - { - "name": "tidy-html5", - "sources": [ - { - "type": "archive", - "url": "http://au.archive.ubuntu.com/ubuntu/pool/main/t/tidy-html5/tidy-html5_5.6.0.orig.tar.gz", - "sha256": "08a63bba3d9e7618d1570b4ecd6a7daa83c8e18a41c82455b6308bc11fe34958" - } - ], - "buildsystem": "simple", - "build-commands": [ - "cmake ../.. -DCMAKE_INSTALL_PREFIX=/app", - "make -j4", - "make install" - ], - "subdir": "build/cmake" - }, - { - "name": "unrar-nonfree", - "sources": [ - { - "type": "archive", - "url": "http://au.archive.ubuntu.com/ubuntu/pool/multiverse/u/unrar-nonfree/unrar-nonfree_5.6.6.orig.tar.gz", - "sha256": "5dbdd3cff955c4bc54dd50bf58120af7cb30dec0763a79ffff350f26f96c4430" - } - ], - "buildsystem": "simple", - "build-commands": [ - "make -j4", - "install -D -t /app/bin unrar" - ] - }, - { - "name": "xz-utils", - "sources": [ - { - "type": "archive", - "url": "http://au.archive.ubuntu.com/ubuntu/pool/main/x/xz-utils/xz-utils_5.2.4.orig.tar.xz", - "sha256": "9717ae363760dedf573dad241420c5fea86256b65bc21d2cf71b2b12f0544f4b" - } - ] - }, - { - "name": "python3.8-docopt", - "buildsystem": "simple", - "build-commands": [ - "python3.8 -m pip install --no-index --find-links=\"file://${PWD}\" --prefix=/app docopt" - ], - "sources": [ - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/a2/55/8f8cab2afd404cf578136ef2cc5dfb50baa1761b68c9da1fb1e4eed343c9/docopt-0.6.2.tar.gz#sha256=49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491", - "sha256": "49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491" - } - ] - }, - { - "name": "python3.8-pyinotify", - "buildsystem": "simple", - "build-commands": [ - "python3.8 -m pip install --no-index --find-links=\"file://${PWD}\" --prefix=/app pyinotify" - ], - "sources": [ - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/e3/c0/fd5b18dde17c1249658521f69598f3252f11d9d7a980c5be8619970646e1/pyinotify-0.9.6.tar.gz#sha256=9c998a5d7606ca835065cdabc013ae6c66eb9ea76a00a1e3bc6e0cfe2b4f71f4", - "sha256": "9c998a5d7606ca835065cdabc013ae6c66eb9ea76a00a1e3bc6e0cfe2b4f71f4" - } - ] - }, - { - "name": "python3.8-pygments", - "buildsystem": "simple", - "build-commands": [ - "python3.8 -m pip install --no-index --find-links=\"file://${PWD}\" --prefix=/app pygments" - ], - "sources": [ - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/d7/72/49a7db1b245c13d0e38cfdc96c1adf6e3bd16a7a0dceb7b25faa6612353b/Pygments-2.7.1-py3-none-any.whl#sha256=307543fe65c0947b126e83dd5a61bd8acbd84abec11f43caebaf5534cbc17998", - "sha256": "307543fe65c0947b126e83dd5a61bd8acbd84abec11f43caebaf5534cbc17998" - } - ] - }, - { - "name": "python3.8-pillow", - "buildsystem": "simple", - "build-commands": [ - "python3.8 -m pip install --no-index --find-links=\"file://${PWD}\" --prefix=/app pillow" - ], - "sources": [ - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/aa/12/a5e5e1b9bcd6c16eb4833069e6d586dc2b8ebbd3141a369cb1bdb9e4cc04/Pillow-7.2.0-cp38-cp38-manylinux1_x86_64.whl#sha256=d08b23fdb388c0715990cbc06866db554e1822c4bdcf6d4166cf30ac82df8c41", - "sha256": "d08b23fdb388c0715990cbc06866db554e1822c4bdcf6d4166cf30ac82df8c41" - } - ] - }, - { - "name": "python3.8-toml", - "buildsystem": "simple", - "build-commands": [ - "python3.8 -m pip install --no-index --find-links=\"file://${PWD}\" --prefix=/app toml" - ], - "sources": [ - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/9f/e1/1b40b80f2e1663a6b9f497123c11d7d988c0919abbf3c3f2688e448c5363/toml-0.10.1-py2.py3-none-any.whl#sha256=bda89d5935c2eac546d648028b9901107a595863cb36bae0c73ac804a9b4ce88", - "sha256": "bda89d5935c2eac546d648028b9901107a595863cb36bae0c73ac804a9b4ce88" - } - ] - }, - { - "name": "python3.8-sortedcontainers", - "buildsystem": "simple", - "build-commands": [ - "python3.8 -m pip install --no-index --find-links=\"file://${PWD}\" --prefix=/app sortedcontainers" - ], - "sources": [ - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/23/8c/22a47a4bf8c5289e4ed946d2b0e4df62bca385b9599cc1e46878f2e2529c/sortedcontainers-2.2.2-py2.py3-none-any.whl#sha256=c633ebde8580f241f274c1f8994a665c0e54a17724fecd0cae2f079e09c36d3f", - "sha256": "c633ebde8580f241f274c1f8994a665c0e54a17724fecd0cae2f079e09c36d3f" - } - ] - }, - { - "name": "python3.8-markupsafe", - "buildsystem": "simple", - "build-commands": [ - "python3.8 -m pip install --no-index --find-links=\"file://${PWD}\" --prefix=/app markupsafe" - ], - "sources": [ - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/4b/20/f6d7648c81cb84815d0be935d5c74cd1cc0239e43eadb1a61062d34b6543/MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl#sha256=13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42", - "sha256": "13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42" - } - ] - }, - { - "name": "python3.8", - "buildsystem": "simple", - "build-commands": [ - "python3.8 -m pip install --no-index --find-links=\"file://${PWD}\" --prefix=/app bandit coverage mccabe mypy pdfminer.six pillow pycodestyle pydocstyle pyflakes pygments pylint pytest pytest-cov svglib yamllint" - ], - "sources": [ - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/09/bc/ae32e07e89cc25b9e5c793d19a1e5454d30a8e37d95040991160f942519e/GitPython-3.1.8-py3-none-any.whl#sha256=1858f4fd089abe92ae465f01d5aaaf55e937eca565fb2c1fce35a51b5f85c910", - "sha256": "1858f4fd089abe92ae465f01d5aaaf55e937eca565fb2c1fce35a51b5f85c910" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/10/5b/88879fb861ab79aef45c7e199cae3ef7af487b5603dcb363517a50602dd7/pycodestyle-2.6.0-py2.py3-none-any.whl#sha256=2295e7b2f6b5bd100585ebcb1f616591b652db8a741695b3d8f5d28bdc934367", - "sha256": "2295e7b2f6b5bd100585ebcb1f616591b652db8a741695b3d8f5d28bdc934367" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/14/df/479736ae1ef59842f512548bacefad1abed705e400212acba43f9b0fa556/attrs-20.2.0-py2.py3-none-any.whl#sha256=fce7fc47dfc976152e82d53ff92fa0407700c21acd20886a13777a0d20e655dc", - "sha256": "fce7fc47dfc976152e82d53ff92fa0407700c21acd20886a13777a0d20e655dc" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/20/46/d2f4919cc48c39c2cb48b589ca9016aae6bad050b8023667eb86950d3da2/iniconfig-1.0.1-py3-none-any.whl#sha256=80cf40c597eb564e86346103f609d74efce0f6b4d4f30ec8ce9e2c26411ba437", - "sha256": "80cf40c597eb564e86346103f609d74efce0f6b4d4f30ec8ce9e2c26411ba437" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/23/8c/22a47a4bf8c5289e4ed946d2b0e4df62bca385b9599cc1e46878f2e2529c/sortedcontainers-2.2.2-py2.py3-none-any.whl#sha256=c633ebde8580f241f274c1f8994a665c0e54a17724fecd0cae2f079e09c36d3f", - "sha256": "c633ebde8580f241f274c1f8994a665c0e54a17724fecd0cae2f079e09c36d3f" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/24/a8/5133f51967fb21e46ee50831c3f5dda49e976b7f915408d670b1603d41d6/astroid-2.4.2-py3-none-any.whl#sha256=bc58d83eb610252fd8de6363e39d4f1d0619c894b0ed24603b881c02e64c7386", - "sha256": "bc58d83eb610252fd8de6363e39d4f1d0619c894b0ed24603b881c02e64c7386" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/34/8c/74acd0ad5a0518be9e0f3b4d022e84da0c1d9b78972afce73259ac85d78b/lazy_object_proxy-1.4.3-cp38-cp38-manylinux1_x86_64.whl#sha256=a6ae12d08c0bf9909ce12385803a543bfe99b95fe01e752536a60af2b7797c62", - "sha256": "a6ae12d08c0bf9909ce12385803a543bfe99b95fe01e752536a60af2b7797c62" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/3b/32/59d44a2ff98e87a35c33b99dc1b4f0bacdd968a8f37080eccd840f2f8e89/pydocstyle-5.1.1-py3-none-any.whl#sha256=aca749e190a01726a4fb472dd4ef23b5c9da7b9205c0a7857c06533de13fd678", - "sha256": "aca749e190a01726a4fb472dd4ef23b5c9da7b9205c0a7857c06533de13fd678" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/3d/cc/a68c1a8191a7d58188060bc0b1f8af38a5403772feb4ba8244059fc9eedb/yamllint-1.24.2-py2.py3-none-any.whl#sha256=ad3b0d30317dca005d7af99ff27248d459cae2d931a2ff06a134b67bcd405b30", - "sha256": "ad3b0d30317dca005d7af99ff27248d459cae2d931a2ff06a134b67bcd405b30" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/44/a6/7fb6e8b3f4a6051e72e4e2218889351f0ee484b9ee17e995f5ccff780300/setuptools-50.3.0-py3-none-any.whl#sha256=c77b3920663a435c9450d9d971c48f5a7478fca8881b2cd2564e59f970f03536", - "sha256": "c77b3920663a435c9450d9d971c48f5a7478fca8881b2cd2564e59f970f03536" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/45/2c/7e29215cb19745ad67b6476b73fd1299872563f28329ea01d9d887713aaf/pytest-6.0.2-py3-none-any.whl#sha256=0e37f61339c4578776e090c3b8f6b16ce4db333889d65d0efb305243ec544b40", - "sha256": "0e37f61339c4578776e090c3b8f6b16ce4db333889d65d0efb305243ec544b40" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/46/19/c5ab91b1b05cfe63cccd5cfc971db9214c6dd6ced54e33c30d5af1d2bc43/packaging-20.4-py2.py3-none-any.whl#sha256=998416ba6962ae7fbd6596850b80e17859a5753ba17c32284f67bfff33784181", - "sha256": "998416ba6962ae7fbd6596850b80e17859a5753ba17c32284f67bfff33784181" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/48/11/d1800bca0a3bae820b84b7d813ad1eff15a48a64caea9c823fc8c1b119e8/gitdb-4.0.5-py3-none-any.whl#sha256=91f36bfb1ab7949b3b40e23736db18231bf7593edada2ba5c3a174a7b23657ac", - "sha256": "91f36bfb1ab7949b3b40e23736db18231bf7593edada2ba5c3a174a7b23657ac" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/5a/50/ff2f2c8f1f0ca1569f678eeb608c0f973b835985410985594fbee96be820/bandit-1.6.2-py2.py3-none-any.whl#sha256=336620e220cf2d3115877685e264477ff9d9abaeb0afe3dc7264f55fa17a3952", - "sha256": "336620e220cf2d3115877685e264477ff9d9abaeb0afe3dc7264f55fa17a3952" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/5c/eb/975c7c080f3223a5cdaff09612f3a5221e4ba534f7039db34c35d95fa6a5/mypy_extensions-0.4.3-py2.py3-none-any.whl#sha256=090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d", - "sha256": "090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/5d/d0/887c58853bd4b6ffc7aa9cdba4fc57d7b979b45888a6bd47e4568e1cf868/pathspec-0.8.0-py2.py3-none-any.whl#sha256=7d91249d21749788d07a2d0f94147accd8f845507400749ea19c1ec9054a12b0", - "sha256": "7d91249d21749788d07a2d0f94147accd8f845507400749ea19c1ec9054a12b0" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/5f/4c/13922d9f31ad50e0e0594a5b3904dbdae8bcbe7bdb5f53e02ca31a66a52a/svglib-1.0.1.tar.gz#sha256=ff01593e8c07ea462d3742e1f4141bfa261cbd4400ceb25dfb8fec3508ad0e50", - "sha256": "ff01593e8c07ea462d3742e1f4141bfa261cbd4400ceb25dfb8fec3508ad0e50" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/60/7a/e881b5abb54db0e6e671ab088d079c57ce54e8a01a3ca443f561ccadb37e/typing_extensions-3.7.4.3-py3-none-any.whl#sha256=7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918", - "sha256": "7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/64/c2/b80047c7ac2478f9501676c988a5411ed5572f35d1beff9cae07d321512c/PyYAML-5.3.1.tar.gz#sha256=b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d", - "sha256": "b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/68/0f/41a43535b52a81e4f29e420a151032d26f08b62206840c48d14b70e53376/py-1.9.0-py2.py3-none-any.whl#sha256=366389d1db726cd2fcfc79732e75410e5fe4d31db13692115529d34069a043c2", - "sha256": "366389d1db726cd2fcfc79732e75410e5fe4d31db13692115529d34069a043c2" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/69/5b/fd01b0c696f2f9a6d2c839883b642493b431f28fa32b29abc465ef675473/pyflakes-2.2.0-py2.py3-none-any.whl#sha256=0d94e0e05a19e57a99444b6ddcf9a6eb2e5c68d3ca1e98e90707af8152c90a92", - "sha256": "0d94e0e05a19e57a99444b6ddcf9a6eb2e5c68d3ca1e98e90707af8152c90a92" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/72/bb/9ad85eacc5f273b08bd5203a1d587479a93f27df9056e4e5f63276f4fd0e/cssselect2-0.3.0-py3-none-any.whl#sha256=97d7d4234f846f9996d838964d38e13b45541c18143bc55cf00e4bc1281ace76", - "sha256": "97d7d4234f846f9996d838964d38e13b45541c18143bc55cf00e4bc1281ace76" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/77/49/51308e8c529e14bb2399ff6d22998583aa9ae189ec191e6f7cbb4679f7d5/typed_ast-1.4.1-cp38-cp38-manylinux1_x86_64.whl#sha256=498b0f36cc7054c1fead3d7fc59d2150f4d5c6c56ba7fb150c013fbc683a8d2d", - "sha256": "498b0f36cc7054c1fead3d7fc59d2150f4d5c6c56ba7fb150c013fbc683a8d2d" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/7d/4b/cdf1113a0e88b641893b814e9c36f69a6fda28cd88b62c7f0d858cde3166/snowballstemmer-2.0.0-py2.py3-none-any.whl#sha256=209f257d7533fdb3cb73bdbd24f436239ca3b2fa67d56f6ff88e86be08cc5ef0", - "sha256": "209f257d7533fdb3cb73bdbd24f436239ca3b2fa67d56f6ff88e86be08cc5ef0" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/82/f7/e43cefbe88c5fd371f4cf0cf5eb3feccd07515af9fd6cf7dbf1d1793a797/wrapt-1.12.1.tar.gz#sha256=b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7", - "sha256": "b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/87/89/479dc97e18549e21354893e4ee4ef36db1d237534982482c3681ee6e7b57/mccabe-0.6.1-py2.py3-none-any.whl#sha256=ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42", - "sha256": "ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/8a/bb/488841f56197b13700afd5658fc279a2025a39e22449b7cf29864669b15d/pyparsing-2.4.7-py2.py3-none-any.whl#sha256=ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b", - "sha256": "ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/94/2c/4e501f9c351343c8ba10d70b5a7ca97cdab2690af043a6e52ada65b85b6b/tinycss2-1.0.2-py3-none-any.whl#sha256=9fdacc0e22d344ddd2ca053837c133900fe820ae1222f63b79617490a498507a", - "sha256": "9fdacc0e22d344ddd2ca053837c133900fe820ae1222f63b79617490a498507a" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/98/12/ab5ebafc4cb2b49847de7bfc26f2d152f42a4af136263152d070c61dfd7d/pdfminer.six-20200726-py3-none-any.whl#sha256=96afdef540450cc8322d5d971e5fccd89ef1b3d1ea7447127d9f8eb594f8835d", - "sha256": "96afdef540450cc8322d5d971e5fccd89ef1b3d1ea7447127d9f8eb594f8835d" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/9f/e1/1b40b80f2e1663a6b9f497123c11d7d988c0919abbf3c3f2688e448c5363/toml-0.10.1-py2.py3-none-any.whl#sha256=bda89d5935c2eac546d648028b9901107a595863cb36bae0c73ac804a9b4ce88", - "sha256": "bda89d5935c2eac546d648028b9901107a595863cb36bae0c73ac804a9b4ce88" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/a0/28/85c7aa31b80d150b772fbe4a229487bc6644da9ccb7e427dd8cc60cb8a62/pluggy-0.13.1-py2.py3-none-any.whl#sha256=966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d", - "sha256": "966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/a1/5e/93d7b3810febe8fa2ad4572bceffa397b0683e1976378e87cc5d2ec6e7f3/isort-5.5.3-py3-none-any.whl#sha256=c16eaa7432a1c004c585d79b12ad080c6c421dd18fe27982ca11f95e6898e432", - "sha256": "c16eaa7432a1c004c585d79b12ad080c6c421dd18fe27982ca11f95e6898e432" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/aa/12/a5e5e1b9bcd6c16eb4833069e6d586dc2b8ebbd3141a369cb1bdb9e4cc04/Pillow-7.2.0-cp38-cp38-manylinux1_x86_64.whl#sha256=d08b23fdb388c0715990cbc06866db554e1822c4bdcf6d4166cf30ac82df8c41", - "sha256": "d08b23fdb388c0715990cbc06866db554e1822c4bdcf6d4166cf30ac82df8c41" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/ae/e7/d9c3a176ca4b02024debf82342dab36efadfc5776f9c8db077e8f6e71821/pycparser-2.20-py2.py3-none-any.whl#sha256=7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705", - "sha256": "7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/b0/9a/4d409a6234eb940e6a78dfdfc66156e7522262f5f2fecca07dc55915952d/smmap-3.0.4-py2.py3-none-any.whl#sha256=54c44c197c819d5ef1991799a7e30b662d1e520f2ac75c9efbeb54a742214cf4", - "sha256": "54c44c197c819d5ef1991799a7e30b662d1e520f2ac75c9efbeb54a742214cf4" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/b7/51/fe28c128985b6a38fbcd091110e1e53846bf900cf143b04a071f2c1c81e7/lxml-4.5.2-cp38-cp38-manylinux1_x86_64.whl#sha256=aa8eba3db3d8761db161003e2d0586608092e217151d7458206e243be5a43843", - "sha256": "aa8eba3db3d8761db161003e2d0586608092e217151d7458206e243be5a43843" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/b8/a1/004f04ba411a8002b02aadb089fd6868116c12ddc9f6d576175e89d07587/stevedore-3.2.2-py3-none-any.whl#sha256=5e1ab03eaae06ef6ce23859402de785f08d97780ed774948ef16c4652c41bc62", - "sha256": "5e1ab03eaae06ef6ce23859402de785f08d97780ed774948ef16c4652c41bc62" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/b9/7e/412ca7209d1b6b90c8a363b43b43cc666cea2744218e37cd8967617607a6/reportlab-3.5.50-cp38-cp38-manylinux2010_x86_64.whl#sha256=e80fa6e7d4be9f5c63c777d19c57eb9c7061a881b504b404e5f9d604c52a759c", - "sha256": "e80fa6e7d4be9f5c63c777d19c57eb9c7061a881b504b404e5f9d604c52a759c" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl#sha256=fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691", - "sha256": "fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/c0/9c/647e559a6e8be493dc2a7a5d15d26cb501ca60ec299b356f23839a673a83/cryptography-3.1-cp35-abi3-manylinux2010_x86_64.whl#sha256=321761d55fb7cb256b771ee4ed78e69486a7336be9143b90c52be59d7657f50f", - "sha256": "321761d55fb7cb256b771ee4ed78e69486a7336be9143b90c52be59d7657f50f" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/c1/a3/d439f338aa90edd5ad9096cd56564b44882182150e92148eb14ceb7488ba/pbr-5.5.0-py2.py3-none-any.whl#sha256=5adc0f9fc64319d8df5ca1e4e06eea674c26b80e6f00c530b18ce6a6592ead15", - "sha256": "5adc0f9fc64319d8df5ca1e4e06eea674c26b80e6f00c530b18ce6a6592ead15" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/c6/60/44b6c54dbbee7d5eafbc34e0a0b67207e85906fe8e36c830dfd3966dde1d/cffi-1.14.3-cp38-cp38-manylinux1_x86_64.whl#sha256=529c4ed2e10437c205f38f3691a68be66c39197d01062618c55f74294a4a4828", - "sha256": "529c4ed2e10437c205f38f3691a68be66c39197d01062618c55f74294a4a4828" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/c9/f8/6c3aceb57e58afce0ddef1eb6596505de635f3e785bfdbd5374c7bad9940/mypy-0.782-cp38-cp38-manylinux1_x86_64.whl#sha256=81c7908b94239c4010e16642c9102bfc958ab14e36048fa77d0be3289dda76ea", - "sha256": "81c7908b94239c4010e16642c9102bfc958ab14e36048fa77d0be3289dda76ea" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/d7/72/49a7db1b245c13d0e38cfdc96c1adf6e3bd16a7a0dceb7b25faa6612353b/Pygments-2.7.1-py3-none-any.whl#sha256=307543fe65c0947b126e83dd5a61bd8acbd84abec11f43caebaf5534cbc17998", - "sha256": "307543fe65c0947b126e83dd5a61bd8acbd84abec11f43caebaf5534cbc17998" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/e4/6a/fa167da3ac886b4777bfe37a86a2d664637dff12837dd6187ce9cdd5eb70/coverage-5.3-cp38-cp38-manylinux1_x86_64.whl#sha256=0f313707cdecd5cd3e217fc68c78a960b616604b559e9ea60cc16795c4304259", - "sha256": "0f313707cdecd5cd3e217fc68c78a960b616604b559e9ea60cc16795c4304259" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/e5/18/401594af67eda194a8b9167208621761927c937db7d60292608342bbac0a/pytest_cov-2.10.1-py2.py3-none-any.whl#sha256=45ec2d5182f89a81fc3eb29e3d1ed3113b9e9a873bcddb2a71faaab066110191", - "sha256": "45ec2d5182f89a81fc3eb29e3d1ed3113b9e9a873bcddb2a71faaab066110191" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/ec/f7/9c33f38577d9fb9b1aa60c0fd9961d09574f5d47d2b830e5183e6adfc8cc/more_itertools-8.5.0-py3-none-any.whl#sha256=9b30f12df9393f0d28af9210ff8efe48d10c94f73e5daf886f10c4b0b0b4f03c", - "sha256": "9b30f12df9393f0d28af9210ff8efe48d10c94f73e5daf886f10c4b0b0b4f03c" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/ee/ff/48bde5c0f013094d729fe4b0316ba2a24774b3ff1c52d924a8a4cb04078a/six-1.15.0-py2.py3-none-any.whl#sha256=8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced", - "sha256": "8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl#sha256=a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", - "sha256": "a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78" - }, - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/fb/13/519c1264a134beab2be4bac8dd3e64948980a5ca7833b31cf0255b21f20a/pylint-2.6.0-py3-none-any.whl#sha256=bfe68f020f8a0fece830a22dd4d5dddb4ecc6137db04face4c3420a46a52239f", - "sha256": "bfe68f020f8a0fece830a22dd4d5dddb4ecc6137db04face4c3420a46a52239f" - } - ] - }, - { - "name": "eris", - "buildsystem": "simple", - "build-commands": [ - "python3.8 -m pip install --no-index --prefix=/app .", - "cp -a tests test-all /app/bin" - ], - "sources": [ - { - "type": "git", - "url": "https://github.com/ahamilton/eris", - "commit": "ba6c09fa32609b8f62d65015c36c74e8907066d0" - } - ] - } - ], - "command": "eris" -} \ No newline at end of file diff --git a/eris-flatpak b/eris-flatpak deleted file mode 100755 index 0eaf1b3..0000000 --- a/eris-flatpak +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - - -exec flatpak run --filesystem=host com.github.ahamilton.eris "$@" diff --git a/make-flatpak-manifest.py b/make-flatpak-manifest.py deleted file mode 100755 index 64aad64..0000000 --- a/make-flatpak-manifest.py +++ /dev/null @@ -1,537 +0,0 @@ -#!/usr/bin/python3.9 - - -import json -import os.path -import pathlib -import subprocess -import tempfile - -import eris.tools - - -def get_package_sources(packages): - output = subprocess.check_output(["apt-get", "source", "--print-uris"] - + packages, text=True) - seen = set() - for line in output.splitlines(): - if line.startswith("'") and ".dsc" not in line: - parts = line.split() - package = parts[1].split("_")[0] - url = parts[0][1:-1] - sha256 = parts[3][-64:] - if package not in seen: - yield package, url, sha256 - seen.add(package) - - -def make_simple_module(package, url, sha256): - return {"name": package, - "sources": [{"type": "archive", - "url": url, - "sha256": sha256}]} - - -def get_file_sha256(path): - return subprocess.check_output(["sha256sum", path], text=True).split()[0] - - -def get_url_sha256(url): - with tempfile.TemporaryDirectory() as temp_dir: - subprocess.check_output(["wget", "-O", "file", url], cwd=temp_dir, - stderr=subprocess.STDOUT) - return get_file_sha256(os.path.join(temp_dir, "file")) - - -def get_haskell_deps(package): - subprocess.check_output(["cabal", "update"]) - with tempfile.TemporaryDirectory() as temp_dir: - subprocess.check_output(["cabal", "sandbox", "init"], cwd=temp_dir) - lines = subprocess.check_output([ - "cabal", "install", "--allow-boot-library-installs", - "--reinstall", "--dry-run", package], - cwd=temp_dir, text=True).splitlines()[2:] - return [line.split()[0] for line in lines if not line.startswith("Use")] - - -def make_haskell_module(package, deps): - commands = [] - sources = [] - for dep in deps: - package_url = f"http://hackage.haskell.org/package/{dep}" - url = package_url + f"/{dep}.tar.gz" - sources.append({"type": "archive", "url": url, - "sha256": get_url_sha256(url), "dest": dep}) - revision = 1 - try: - while True: - revision_url = package_url + f"/revision/{revision}.cabal" - sha256 = get_url_sha256(revision_url) - last_url = revision_url - revision += 1 - except subprocess.CalledProcessError: - revision -= 1 - if revision > 0: - revision_path = dep.rsplit("-", maxsplit=1)[0] + ".cabal" - sources.append({"type": "file", "url": last_url, "sha256": sha256, - "dest": dep, "dest-filename": revision_path}) - commands.append(f"./install-package {dep}") - for dep in reversed(deps): - commands.append(f"cd {dep}; ./Setup unregister") - sources.append({ - "type": "script", - "commands": ["set -x", "cd $1", - "if [ ! -e Setup.hs ] && [ ! -e Setup.lhs ]; then", - " echo 'import Distribution.Simple' > Setup.hs", - " echo 'main = defaultMain' >> Setup.hs", "fi", - "ghc -threaded --make Setup", - "./Setup configure --disable-optimization --prefix=/app", - "./Setup build", "./Setup install"], - "dest-filename": "install-package"}) - return {"name": f"haskell-{package}", "buildsystem": "simple", - "build-commands": commands, "builddir": True, "sources": sources, - "cleanup": ["/lib/x86_64-linux-ghc-*"]} - - -def haskell_modules(dep): - modules = [] - for package, url, sha256 in get_package_sources(["ghc"]): - modules.append(make_simple_module(package, url, sha256)) - modules = [patch_module(module, patches) for module in modules] - modules.append(make_haskell_module(dep, get_haskell_deps(dep))) - return modules - - -def python_modules(package): - python_version = "python3.9" - with tempfile.TemporaryDirectory() as temp_dir: - output = subprocess.check_output( - [python_version, "-m", "pip", "-v", "download", "--dest", temp_dir, - package], text=True) - sources = [] - for line in output.splitlines(): - if " from build tracker " in line: - url = [part for part in line.split() - if part.startswith("http")][0] - sources.append((url, get_url_sha256(url))) - assert sources != [], ("No python modules found for:", package) - return [{"name": python_version + "-" + package, - "buildsystem": "simple", - "build-commands": [ - python_version + " -m pip install --no-index" - ' --find-links="file://${PWD}" --prefix=/app ' + package - ], - "sources": [{"type": "file", "url": url, "sha256": sha256} - for url, sha256 in sorted(sources)]}] - - -def python_modules_all(packages): - python_version = "python3.9" - with tempfile.TemporaryDirectory() as temp_dir: - output = subprocess.check_output( - [python_version, "-m", "pip", "-v", "download", "--dest", temp_dir] - + packages, text=True) - sources = [] - for line in output.splitlines(): - if " from build tracker " in line: - url = [part for part in line.split() - if part.startswith("http")][0] - sources.append((url, get_url_sha256(url))) - assert sources != [], ("No python modules found for:", package) - return [{"name": python_version, - "buildsystem": "simple", - "build-commands": [ - python_version + " -m pip install --no-index" - ' --find-links="file://${PWD}" --prefix=/app ' + " ".join(packages) - ], - "sources": [{"type": "file", "url": url, "sha256": sha256} - for url, sha256 in sorted(sources)]}] - - -def go_repo_source(repo_path): - current_commit = subprocess.check_output(["git", "rev-parse", "HEAD"], - cwd=repo_path, text=True).strip() - remote_url = subprocess.check_output( - ["git", "remote", "get-url", "origin"], - cwd=repo_path, text=True).strip() - dest_path = repo_path[repo_path.rfind("src/"):] - return {"type": "git", "url": remote_url, "commit": current_commit, - "dest": dest_path} - - -def go_repo_paths(build_dir): - src_dir = build_dir / "src" - go_repo_paths = [] - domains = src_dir.iterdir() - for domain in domains: - domain_users = domain.iterdir() - for user in domain_users: - user_repos = user.iterdir() - go_repo_paths += list(user_repos) - return go_repo_paths - - -def go_modules(package_url): - with tempfile.TemporaryDirectory() as temp_dir: - new_env = os.environ.copy() - new_env.update({"GOPATH": temp_dir}) - subprocess.run(["go", "get", "-d", package_url], cwd=temp_dir, - env=new_env, check=True) - sources = [go_repo_source(str(repo_path)) - for repo_path in go_repo_paths(pathlib.Path(temp_dir))] - return [{"name": os.path.basename(package_url), - "buildsystem": "simple", - "build-options": {"env": {"GOBIN": "/app/bin"}}, - "build-commands": - [". /usr/lib/sdk/golang/enable.sh; " - f"GOPATH=$PWD go install {package_url}"], - "sources": sources}] - - -def git_repo_latest_commit(repo_url): - with tempfile.TemporaryDirectory() as temp_dir: - subprocess.run(["git", "clone", "--bare", "--depth=1", - repo_url, temp_dir], check=True, capture_output=True) - with open(os.path.join(temp_dir, "shallow")) as shallow_file: - return shallow_file.read().strip() - - -def git_modules(package_url): - remote_url = "https://" + package_url - modules = [{"name": os.path.basename(package_url), - "sources": [{"type": "git", "url": remote_url, - "commit": git_repo_latest_commit(remote_url)}]}] - return [patch_module(module, patches) for module in modules] - - -patches = { - "cppcheck": {"buildsystem": "cmake"}, - - # For genisoimage. - "cdrkit": {"buildsystem": "simple", - "build-commands": [ - "cmake .", - "make -j4 isoinfo", - "install -D -t /app/bin genisoimage/isoinfo"]}, - - "db5.3": {"buildsystem": "simple", - "build-commands": [ - "cd build_unix && ../dist/configure" - " --prefix=/app && make -j4 && make install"]}, - - "dpkg": {"buildsystem": "simple", - "build-commands": [ - "./configure --disable-dselect --disable-start-stop-daemon " - "--disable-update-alternatives --prefix=/app", - "make install"]}, - - "ghc": {"buildsystem": "simple", - "build-commands": [ - "mkdir -p /app/lib", - "ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6 " - "/app/lib/libtinfo.so.5", - "./configure --prefix=/app", - "make install"], - "sources": [{ - "type": "archive", - "url": "https://downloads.haskell.org/~ghc/8.6.5/" - "ghc-8.6.5-x86_64-deb9-linux.tar.xz", - "sha256": "bc75f5601a9f41d58b2ba161b9e28f" - "ad52143a7229060f1e084168d9b2e914df"}], - "cleanup": ["/lib/ghc-*", "/lib/libtinfo*", "/app/bin/*ghc*", - "/app/bin/aeson-pretty", "/app/bin/hpc", - "/app/bin/haddock*", "/app/bin/hsc2hs", - "/app/bin/runhaskell", "/app/bin/hp2ps"]}, - - "html2text": {"buildsystem": "simple", - "build-commands": [ - "./configure --prefix=/app", - "make -j4", - "install -D -t /app/bin html2text"]}, - - "libzen": {"subdir": "Project/GNU/Library"}, - - "libmediainfo": {"subdir": "Project/GNU/Library"}, - - "lua": {"buildsystem": "simple", - "build-commands": [ - r'sed -e "s/INSTALL_TOP= \/usr\/local/INSTALL_TOP= \/app/" ' - 'Makefile > new', - "mv new Makefile", - "make -j4 linux", - "make install"]}, - - "lua5.3": {"buildsystem": "simple", - "build-commands": [ - r'sed -e "s/INSTALL_TOP= \/usr\/local/INSTALL_TOP= \/app/" ' - 'Makefile > new', - "mv new Makefile", - "make -j4 linux", - "make install"]}, - - "mediainfo": {"subdir": "Project/GNU/CLI"}, - - "php7.4": {"buildsystem": "simple", - "build-commands": [ - "./configure --prefix=/app --disable-all --disable-cgi" - " --disable-phpdbg", - "make -j4", - "make install"]}, - - "ruby2.7": {"cleanup": ["/share/ri", "/lib/libruby-static.a", - "/lib/ruby/*/rdoc", - "/lib/ruby/*/x86_64-linux/enc"]}, - - "python2.7": {"cleanup": ["*"]}, - - "perl": {"buildsystem": "simple", - "build-commands": [ - "./Configure -des -Dprefix=/app", - "make -j4", - "make install"], - "post-install": [ - "chmod 755 -R /app/lib/perl5/5.32.0/x86_64-linux/auto"], - "sources": [{ - "type": "archive", - "url": "https://www.cpan.org/src/5.0/perl-5.32.0.tar.gz", - "sha256": "efeb1ce1f10824190ad1cadbcccf6fdb" - "8a5d37007d0100d2d9ae5f2b5900c0b4"}]}, - - "rakudo": {"buildsystem": "simple", - "build-commands": [ - "cd src/moarvm-2020.05; perl Configure.pl --prefix=/app", - "cd src/moarvm-2020.05; make -j6", - "cd src/moarvm-2020.05; make install", - "cd src/nqp-2020.05; perl Configure.pl --prefix=/app", - "cd src/nqp-2020.05; make -j6", - "cd src/nqp-2020.05; make install", - "cd src/rakudo-2020.05.1; perl Configure.pl --prefix=/app", - "cd src/rakudo-2020.05.1; make -j6", - "cd src/rakudo-2020.05.1; make install" - ], - "sources": [{ - "type": "archive", - "url": "https://rakudo.org/dl/star/" - "rakudo-star-2020.05.tar.gz", - "sha256": "d0d0a4ed5f75a5fb010d9630c052c061" - "df9b6ce8325d578fae21fc6a4b99e6d6"}]}, - - "p7zip": {"buildsystem": "simple", - "build-commands": [ - "make -f makefile", - "install -DT bin/7za /app/bin/7zr"]}, - - "wabt": {"buildsystem": "simple", - "build-commands": [ - "mkdir build && cd build && " - "cmake -DCMAKE_INSTALL_PREFIX=/app ..", - "cd build && make -j4 install"] - }, - - "rpm": {"config-opts": ["--without-lua"]}, - - "tidy-html5": {"buildsystem": "simple", - "build-commands": [ - "cmake ../.. -DCMAKE_INSTALL_PREFIX=/app", - "make -j4", - "make install"], - "subdir": "build/cmake"}, - - "unrar-nonfree": {"buildsystem": "simple", - "build-commands": [ - "make -j4", - "install -D -t /app/bin unrar"]}} - - -def patch_module(module, patches): - patch = patches.get(module["name"], {}) - module.update(patch) - return module - - -def make_manifest(modules, dep): - module_name = os.path.basename(dep) - manifest = {"app-id": "com.github.ahamilton." + module_name, - "runtime": "org.freedesktop.Sdk", - "runtime-version": "20.08", - "sdk": "org.freedesktop.Sdk", - "sdk-extensions": ["org.freedesktop.Sdk.Extension.golang"], - "cleanup": ["/lib/debug", "/share/man", "/man", "/include", - "/share/doc", "/doc", "/docs"], - "strip": True, - "modules": modules} - if module_name == "eris": - manifest["command"] = "eris" - return manifest - - -EXTRA_DEPS = {"rpm": ["db5.3"], - "mediainfo": ["libzen", "libmediainfo"]} - - -def ubuntu_modules(dep): - new_dist_deps = [] - if dep in EXTRA_DEPS: - new_dist_deps.extend(EXTRA_DEPS[dep]) - new_dist_deps.append(dep) - modules = [] - for new_dist_dep in new_dist_deps: - for package, url, sha256 in get_package_sources([new_dist_dep]): - modules.append(make_simple_module(package, url, sha256)) - assert modules != [] - return [patch_module(module, patches) for module in modules] - - -def lua_modules(dep): - modules = [make_simple_module( - "lua", "https://www.lua.org/ftp/lua-5.3.5.tar.gz", - "0c2eed3f960446e1a3e4b9a1ca2f3ff893b6ce41942cf54d5dd59ab4b3b058ac")] - modules = [patch_module(module, patches) for module in modules] - modules.extend(git_modules("github.com/luarocks/luarocks")) - modules[-1]["cleanup"] = ["*"] - with tempfile.TemporaryDirectory() as temp_dir: - process = subprocess.run( - ["luarocks", "--verbose", "--to", temp_dir, "install", dep], - check=True, capture_output=True, text=True) - sources = [] - for line in process.stdout.splitlines(): - if line.startswith("Installing "): - url = line.split()[1] - sources.append({"type": "file", "url": url, - "sha256": get_url_sha256(url)}) - commands = ["luarocks-admin make_manifest .", - f"luarocks install --only-from=$PWD {dep}"] - return modules + [{"name": dep, "buildsystem": "simple", - "build-commands": commands, - "sources": sources}] - - -def get_latest_commit(): - return subprocess.check_output(["git", "rev-parse", "HEAD"], - text=True).strip() - - -def eris_modules(): - eris_url = "https://github.com/ahamilton/eris" - modules = [] - for dep in ["docopt", "pyinotify", "pygments", "pillow", "toml", - "sortedcontainers", "markupsafe"]: - modules.extend(python_modules(dep)) - modules.append({"name": "eris", - "buildsystem": "simple", - "build-commands": [ - "python3.9 -m pip install --no-index --prefix=/app .", - "cp -a tests test-all /app/bin"], - "sources": [{"type": "git", "url": eris_url, - "commit": get_latest_commit()}]}) - return modules - - -def nodejs_modules(): - return ubuntu_modules("python2.7") + [{"name": "nodejs", - "cleanup": ["/include", "/share", "/lib/node_modules"], - "sources": [ - {"type": "archive", - "url": "https://nodejs.org/dist/latest-v12.x/" - "node-v12.18.4.tar.xz", - "sha256": "25f03cb18e53b6d0959d0c219e701a85" - "eb4693f526bdda7c72bc6199b364f609"}]}] - - -BUILD_FUNCS = {"ubuntu": ubuntu_modules, "pip": python_modules, - "haskell": haskell_modules, "go": go_modules, - "git": git_modules, "luarocks": lua_modules} - - -def get_build_func(dep): - build_type, package = (dep.split("/", maxsplit=1) if "/" in dep - else ("ubuntu", dep)) - return BUILD_FUNCS[build_type], package - - -DEPS_IN_RUNTIME = {"g++", "clang-format", "tar", "file", "perl-doc", "gcc", - "binutils", "coreutils", "git", "unzip", "python", - "python3", "python-setuptools", "p7zip"} - - -def save_manifest(manifest, manifest_path): - with open(manifest_path, "w") as manifest_file: - json.dump(manifest, manifest_file, indent=2) - - -def make_combined_manifest(all_modules): - unique_modules = [] - seen = set() - for module in all_modules: - if module["name"] in seen: - continue - else: - unique_modules.append(module) - seen.add(module["name"]) - return make_manifest(unique_modules, "eris") - - -SUBSTITUTIONS = {"shellcheck": "haskell/ShellCheck", - "pandoc": "haskell/pandoc", - "wabt": "git/github.com/WebAssembly/wabt"} - - -def install_script_deps(): - # cabal-install - cabal - subprocess.run(["sudo", "apt-get", "install", "cabal-install"], check=True) - - -def main(): - install_script_deps() - manifests_dir = os.path.join(os.getcwd(), "manifests-cache") - os.makedirs(manifests_dir, exist_ok=True) - deps = {SUBSTITUTIONS.get(dep, dep) for dep in eris.tools.dependencies()} - all_modules = [] - python_modules_list = [] - for dep in sorted(deps - DEPS_IN_RUNTIME) + ["eris"]: - build_func, package = get_build_func(dep) - if build_func == python_modules: - python_modules_list.append(package) - continue - dep_name = os.path.basename(package) - manifest_path = os.path.join(manifests_dir, dep_name+".json") - print(f"Making manifest for {dep} …".ljust(70), end="", flush=True) - if os.path.exists(manifest_path): - print(" (cached)") - with open(manifest_path) as json_file: - modules = json.load(json_file)["modules"] - all_modules.extend(modules) - continue - elif dep == "eris": - modules = eris_modules() - elif dep == "nodejs": - modules = nodejs_modules() - else: - modules = build_func(package) - print() - all_modules.extend(modules) - save_manifest(make_manifest(modules, dep), manifest_path) - - manifest_path = os.path.join(manifests_dir, "python.json") - dep = "python3.9" - print(f"Making manifest for {dep} …".ljust(70), end="", flush=True) - if os.path.exists(manifest_path): - print(" (cached)") - with open(manifest_path) as json_file: - modules = json.load(json_file)["modules"] - else: - modules = python_modules_all(python_modules_list) - save_manifest(make_manifest(modules, dep), manifest_path) - all_modules[-1:-1] = modules - - eris_module = all_modules[-1] - eris_module["sources"][0]["commit"] = get_latest_commit() - manifest = make_combined_manifest(all_modules) - manifest_path = "com.github.ahamilton.eris.json" - print() - print(f"Saving manifest file: ./{manifest_path}") - save_manifest(manifest, manifest_path) - - -if __name__ == "__main__": - main() diff --git a/make-readme.py b/make-readme.py index 688a62c..c928866 100755 --- a/make-readme.py +++ b/make-readme.py @@ -31,20 +31,6 @@ Eris maintains an up-to-date set of reports for every file in a codebase. # python3.9 -m pip install . # eris -h -### Flatpak - - # flatpak install org.freedesktop.Sdk/x86_64/20.08 # Install the required runtime - # Download flatpak bundle file from github releases page: - https://github.com/ahamilton/eris/releases - # flatpak install eris-2020-09-24.flatpak # Install the downloaded bundle - # flatpak run --filesystem=host com.github.ahamilton.eris -h - -There is a wrapper script available to make running easier: - - # git clone https://github.com/ahamilton/eris - # cp eris/eris-flatpak ~/bin/eris # e.g. Put wrapper script in your PATH - # eris -h - ### Docker # git clone https://github.com/ahamilton/eris