From bdb2a65d1b923383da0411d92f671d9d4ea124ef Mon Sep 17 00:00:00 2001 From: Joachim Breitner Date: Sat, 30 Mar 2019 21:19:39 +0100 Subject: [PATCH] Release preparations --- .gitignore | 8 +- Building.md | 6 +- Changelog.md | 3 +- README.md | 2 +- book/installation.rst | 69 +--------------- gen-windows-release.sh => fetch-contrib.sh | 23 ------ nix/default.nix | 7 +- nix/tttool.nix | 38 +++++---- tttool.cabal | 92 ++++++++-------------- 9 files changed, 70 insertions(+), 178 deletions(-) rename gen-windows-release.sh => fetch-contrib.sh (68%) diff --git a/.gitignore b/.gitignore index 248a44ce..fa8fc4d6 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,10 @@ libtiptoi gameanalyse makegraphic dist -.DS_Store \ No newline at end of file +.DS_Store +result +result-* +gh-pages +cabal.project.local +dist-newstyle +tts-cache diff --git a/Building.md b/Building.md index 7c95c69e..8c20f11b 100644 --- a/Building.md +++ b/Building.md @@ -15,7 +15,7 @@ Building from source the tttool cache. nix-env -iA cachix -f https://cachix.org/api/v1/install - cachix use tttool + cachix use tttool 4. Build `tttool`: @@ -41,6 +41,6 @@ Making a release 1. Ensure that the version number in `tttool.cabal` is up-to-date 2. Run - cp -v --no-preserve=mode $(nix-build nix -A release-zip)/* . + nix-build nix -A release-zip -3. Upload `tttool-n.m.zip`. +3. Upload `result/tttool-n.m.zip`. diff --git a/Changelog.md b/Changelog.md index e1d1c5c6..60ac36e9 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,10 +1,11 @@ # Changelog for tttool -## 1.8.1 (unreleased) +## 1.8.1 (2019-03-30) * The SVG patterns created with `./tttool oid-code` and `./tttool oid-codes` now have `id`s that are valid (no spaces). * The release tarball now contains a binary for Linux as well. + * The release tarball now contains a copy of [The tttool book](http://tttool.readthedocs.io/de/latest/) ## 1.8 (2018-02-06) diff --git a/README.md b/README.md index a45826cd..7d44b976 100644 --- a/README.md +++ b/README.md @@ -139,7 +139,7 @@ Other resources in this repository ---------------------------------- * [`oid-decoder.html`](http://htmlpreview.github.io/?https://github.com/entropia/tip-toi-reveng/blob/master/oid-decoder.html) allows you to manually decode an OID image. - * `scripts/update.sh` downloads all gme files from the Ravensburger server (requires perl and the [XML::Simple](http://search.cpan.org/~grantm/XML-Simple/) module). + * `scripts/update.sh` downloads all gme files from the Ravensburger server (requires perl and the [XML::Simple](http://search.cpan.org/~grantm/XML-Simple/) module). Instead of downloading all of them, you can conveniently browse them at , a service provided by Falko Oldenburg . * `gameanalyse.c` and `libtiptoi.c` is an alternative tool to investigate gme diff --git a/book/installation.rst b/book/installation.rst index abc75d67..4981a75b 100644 --- a/book/installation.rst +++ b/book/installation.rst @@ -5,71 +5,6 @@ Installation Um eigene Tiptoi-Bücher zu gestalten brauchst du das ``tttool``. -Windows -------- +Unter Windows oder Linux lädst du von https://github.com/entropia/tip-toi-reveng/releases die neueste Version als Zip-Datei (``tttool-version.zip``) herunter, und extrahierst sie. Du kannst das ``tttool`` direkt verwenden, es ist keine weitere Installation nötig. -Unter Windows lädst du von https://github.com/entropia/tip-toi-reveng/releases die neueste Version als Zip-Datei (``tttool-win32-version.zip``) herunter, und extrahierst sie. Du kannst das ``tttool`` direkt verwenden, es ist keine weitere Installation nötig. - -Linux (Debian, Ubuntu und ähnliche) ------------------------------------ - -Unter Linux kompilierst du das ``tttool`` selbst. - -1. Zuerst installierst du ``git``:: - - $ sudo apt-get install git - -2. Dann kannst lädst du dir den aktuellen Quellcode des ``tttool`` herunter:: - - $ git clone https://github.com/entropia/tip-toi-reveng.git tttool - $ cd tttool - -3. Nun installierst du das Werkzeug ``stack``. Das geht am einfachsten mit - - .. code:: - - curl -sSL https://get.haskellstack.org/ | sh - - oder du folgst den ausführlicheren Anweisungen auf der `Stack-Homepage `_. - -4. Zulezt baust du ``tttool``. Das dauert eine Weile:: - - stack install --local-bin-path . - - -Nun solltest du im aktuellen Verzeichnis eine Datei ``tttool`` finden, die du ausführen kannst:: - - $ ./tttool --help - Usage: tttool [-t|--transscript FILE] [--code-dim W[xH]] [--dpi DPI] - [--pixel-size N] COMMAND - tttool-1.6.1 -- The swiss army knife for the Tiptoi hacker - … - - -macOS ------ - -Die Installation unter macOS verläuft ähnlich zu der unter Linux in einem Terminal-Fenster. Zunächst benötigst du, falls noch nicht installiert, die XCode command line tools:: - -$ xcode-select --install - -Weiterhin benötigst du den Paketmanager Homebrew (https://brew.sh/):: - -$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" - -Mithilfe von Homebrew installierst du Haskell:: - -$ brew install haskell-stack - -Nun besorgst du dir die Quellen:: - -$ git clone https://github.com/entropia/tip-toi-reveng.git tttool -$ cd tttool - -und kompilierst sie:: - -$ stack install --local-bin-path . - -Wie zuvor befindet sich das fertige tttool nun im aktuellen Verzeichnis:: - -$ ./tttool --help +Wenn du nicht Windows oder Linux benutzt, oder die Software selber kompilieren willst, dann werfe einen Blick auf die `Anweisungen im Quell-Repository `_. diff --git a/gen-windows-release.sh b/fetch-contrib.sh similarity index 68% rename from gen-windows-release.sh rename to fetch-contrib.sh index 6dd23328..d0373874 100755 --- a/gen-windows-release.sh +++ b/fetch-contrib.sh @@ -33,26 +33,3 @@ cp -v playmus/playmus.exe contrib/playmus.exe # install espeak first in wine cp ~/.wine/drive_c/Programme/eSpeak/command_line/espeak.exe contrib/ cp -r ~/.wine/drive_c/Programme/eSpeak/espeak-data/ contrib/ - -zip --recurse-paths $zipfile \ - tttool.exe \ - README.md \ - Changelog.md \ - oid-decoder.html \ - example \ - example.yaml \ - Debug.yaml \ - oid-table.png \ - templates/README.md \ - templates/*.yaml \ - transcript/*.csv \ - wip/* \ - Audio/digits/*.ogg \ - contrib/oggenc.exe \ - contrib/espeak.exe \ - contrib/espeak-data \ - contrib/LICENSE* \ - contrib/README-SDL.txt \ - contrib/*.dll \ - contrib/playmus.exe -echo Created $zipfile diff --git a/nix/default.nix b/nix/default.nix index 2592c82f..533dce0b 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -56,10 +56,11 @@ in rec { "example/.*" "Debug.yaml" "templates/" - "templates/.*md" - "templates/.*yaml" + "templates/.*\.md" + "templates/.*\.yaml" "Audio/" - "Audio/digits/.*" + "Audio/digits/" + "Audio/digits/.*\.ogg" ]; contrib = ../contrib; diff --git a/nix/tttool.nix b/nix/tttool.nix index 4148c1b7..c068bf3c 100644 --- a/nix/tttool.nix +++ b/nix/tttool.nix @@ -11,12 +11,12 @@ ]; in { - flags = { old-locale = false; bytestring_has_builder = true; }; + flags = {}; package = { specVersion = "1.10"; - identifier = { name = "tttool"; version = "1.8"; }; + identifier = { name = "tttool"; version = "1.8.1"; }; license = "MIT"; - copyright = "2013-2017 Joachim Breitner"; + copyright = "2013-2019 Joachim Breitner"; maintainer = "mail@joachim-breitner.de"; author = "Joachim Breitner"; homepage = "https://github.com/entropia/tip-toi-reveng"; @@ -28,38 +28,36 @@ components = { exes = { "tttool" = { - depends = (([ + depends = [ + (hsPkgs.aeson) (hsPkgs.base) + (hsPkgs.base64-bytestring) (hsPkgs.binary) + (hsPkgs.blaze-svg) + (hsPkgs.bytestring) (hsPkgs.containers) (hsPkgs.directory) (hsPkgs.executable-path) (hsPkgs.filepath) - (hsPkgs.template-haskell) - (hsPkgs.JuicyPixels) - (hsPkgs.aeson) (hsPkgs.hashable) (hsPkgs.haskeline) + (hsPkgs.HPDF) + (hsPkgs.JuicyPixels) (hsPkgs.mtl) + (hsPkgs.natural-sort) + (hsPkgs.optparse-applicative) (hsPkgs.parsec) (hsPkgs.process) (hsPkgs.random) - (hsPkgs.vector) - (hsPkgs.yaml) - (hsPkgs.HPDF) (hsPkgs.split) - (hsPkgs.optparse-applicative) (hsPkgs.spool) - (hsPkgs.zlib) - (hsPkgs.natural-sort) - (hsPkgs.blaze-svg) - (hsPkgs.base64-bytestring) + (hsPkgs.template-haskell) (hsPkgs.text) - ] ++ (pkgs.lib).optional (compiler.isGhc && (compiler.version).lt "7.5") (hsPkgs.ghc-prim)) ++ (if flags.old-locale - then [ (hsPkgs.time) (hsPkgs.old-locale) ] - else [ (hsPkgs.time) ])) ++ (if flags.bytestring_has_builder - then [ (hsPkgs.bytestring) ] - else [ (hsPkgs.bytestring) (hsPkgs.bytestring-builder) ]); + (hsPkgs.time) + (hsPkgs.vector) + (hsPkgs.yaml) + (hsPkgs.zlib) + ]; }; }; }; diff --git a/tttool.cabal b/tttool.cabal index 1cdebfc9..a369ad8e 100644 --- a/tttool.cabal +++ b/tttool.cabal @@ -4,27 +4,20 @@ synopsis: Working with files for the Tiptoi® pen description: The Ravensburger Tiptoi® pen is programmed via special files. Their file format has been reverse engineered; this is a tool to analyse and create such files. + . + For more user-facing documentation, see + (in German). category: Reverse Engineering homepage: https://github.com/entropia/tip-toi-reveng license: MIT license-file: LICENSE author: Joachim Breitner maintainer: mail@joachim-breitner.de -copyright: 2013-2017 Joachim Breitner +copyright: 2013-2019 Joachim Breitner build-type: Simple -extra-source-files: README.md +extra-source-files: README.md Changelog.md cabal-version: >=1.10 -flag old-locale - description: - If false then depend on time >= 1.5. - . - If true then depend on time < 1.5 together with old-locale. - default: False - -Flag bytestring_has_builder - default: True - executable tttool main-is: tttool.hs other-modules: @@ -51,53 +44,34 @@ executable tttool Commands, Utils - build-depends: - base >= 4.9 && < 4.13, - binary >= 0.5 && < 0.9, - containers >= 0.4 && <0.7, - directory >= 1.2 && < 1.4, - executable-path == 0.0.*, - filepath == 1.3.* || == 1.4.*, - template-haskell >= 2.7 && < 2.15, - - JuicyPixels >= 3.2.5 && < 3.4, - aeson >= 0.7 && < 1.5, - hashable == 1.2.*, - haskeline == 0.7.*, - mtl == 2.2.*, - parsec == 3.1.*, - process >= 1.1 && < 1.7, - random >= 1.0 && < 1.2, - vector >= 0.10 && < 0.13, - yaml >= 0.8 && < 0.12, - HPDF >= 1.4.10 && < 1.5, - split == 0.2.*, - optparse-applicative >= 0.13 && < 0.15, - spool == 0.1.*, - zlib >= 0.5 && < 0.7, - natural-sort >= 0.1 && < 0.2, - blaze-svg == 0.3.*, - base64-bytestring == 1.0.*, - text == 1.2.* - - if impl(ghc < 7.5) - build-depends: ghc-prim - - ghc-options: -fcontext-stack=42 - - if flag(old-locale) - build-depends: time == 1.4.*, old-locale - else - build-depends: time >= 1.5 && < 1.9 - - if flag(bytestring_has_builder) - build-depends: - bytestring >= 0.10.4 && < 0.11 - else - build-depends: - bytestring >= 0.10 && < 0.10.4, - bytestring-builder >= 0.10.4.1.1 - + build-depends: aeson >= 0.7 && < 1.5 + build-depends: base >= 4.9 && < 4.13 + build-depends: base64-bytestring == 1.0.* + build-depends: binary >= 0.5 && < 0.9 + build-depends: blaze-svg == 0.3.* + build-depends: bytestring >= 0.10.4 && < 0.11 + build-depends: containers >= 0.4 && <0.7 + build-depends: directory >= 1.2 && < 1.4 + build-depends: executable-path == 0.0.* + build-depends: filepath == 1.3.* || == 1.4.* + build-depends: hashable == 1.2.* + build-depends: haskeline == 0.7.* + build-depends: HPDF >= 1.4.10 && < 1.5 + build-depends: JuicyPixels >= 3.2.5 && < 3.4 + build-depends: mtl == 2.2.* + build-depends: natural-sort >= 0.1 && < 0.2 + build-depends: optparse-applicative >= 0.13 && < 0.15 + build-depends: parsec == 3.1.* + build-depends: process >= 1.1 && < 1.7 + build-depends: random >= 1.0 && < 1.2 + build-depends: split == 0.2.* + build-depends: spool == 0.1.* + build-depends: template-haskell >= 2.7 && < 2.15 + build-depends: text == 1.2.* + build-depends: time >= 1.5 && < 1.9 + build-depends: vector >= 0.10 && < 0.13 + build-depends: yaml >= 0.8 && < 0.12 + build-depends: zlib >= 0.5 && < 0.7 hs-source-dirs: src default-language: Haskell2010