about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/typesetting
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools/typesetting')
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile2
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock17
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix79
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix67
-rwxr-xr-xnixpkgs/pkgs/tools/typesetting/asciidoctor/update.sh6
5 files changed, 125 insertions, 46 deletions
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile b/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile
index 4edebabc4cdd..f9329a80a815 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile
@@ -2,6 +2,8 @@ source 'https://rubygems.org'
 gem 'asciidoctor'
 gem 'asciidoctor-diagram'
 gem 'asciidoctor-pdf'
+gem 'asciidoctor-epub3'
 gem 'asciidoctor-mathematical'
 gem 'coderay'
 gem 'pygments.rb'
+gem 'rouge'
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock b/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock
index 7416bd0268e2..02081e117d6e 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock
@@ -8,6 +8,11 @@ GEM
     asciidoctor (2.0.10)
     asciidoctor-diagram (1.5.18)
       asciidoctor (>= 1.5.0, < 3.x)
+    asciidoctor-epub3 (1.5.0.alpha.9)
+      asciidoctor (>= 1.5.0, < 3.0.0)
+      concurrent-ruby (~> 1.1.5)
+      gepub (~> 1.0.2)
+      thread_safe (~> 0.3.6)
     asciidoctor-mathematical (0.3.0)
       asciidoctor (~> 2.0, >= 2.0.0)
       mathematical (~> 1.5, >= 1.5.8)
@@ -27,12 +32,18 @@ GEM
     concurrent-ruby (1.1.5)
     css_parser (1.7.0)
       addressable
+    gepub (1.0.4)
+      nokogiri (>= 1.8.2, < 1.11)
+      rubyzip (>= 1.1.1)
     hashery (2.1.2)
     i18n (1.6.0)
       concurrent-ruby (~> 1.0)
     mathematical (1.6.12)
       ruby-enum (~> 0.4)
+    mini_portile2 (2.4.0)
     multi_json (1.13.1)
+    nokogiri (1.10.3)
+      mini_portile2 (~> 2.4.0)
     pdf-core (0.7.0)
     pdf-reader (2.2.0)
       Ascii85 (~> 1.0.0)
@@ -54,12 +65,14 @@ GEM
     prawn-templates (0.1.1)
       pdf-reader (~> 2.0)
       prawn (~> 2.2)
-    public_suffix (3.1.0)
+    public_suffix (3.1.1)
     pygments.rb (1.2.1)
       multi_json (>= 1.0.0)
+    rouge (3.5.1)
     ruby-enum (0.7.2)
       i18n
     ruby-rc4 (0.1.5)
+    rubyzip (1.2.3)
     safe_yaml (1.0.5)
     thread_safe (0.3.6)
     treetop (1.5.3)
@@ -72,10 +85,12 @@ PLATFORMS
 DEPENDENCIES
   asciidoctor
   asciidoctor-diagram
+  asciidoctor-epub3
   asciidoctor-mathematical
   asciidoctor-pdf
   coderay
   pygments.rb
+  rouge
 
 BUNDLED WITH
    1.17.2
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix b/nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix
index 760cc41609e5..2f1c7e461545 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix
@@ -1,53 +1,46 @@
-{ stdenv, lib, bundlerApp, ruby
-  # Dependencies of the 'mathematical' package
-, cmake, bison, flex, glib, pkgconfig, cairo
-, pango, gdk_pixbuf, libxml2, python3, patchelf
+{ lib, bundlerApp, makeWrapper,
+  # Optional dependencies, can be null
+  epubcheck, kindlegen,
+  # For the update shell
+  mkShell, bundix
 }:
 
-bundlerApp {
-  inherit ruby;
-  pname = "asciidoctor";
-  gemdir = ./.;
+let
+  app = bundlerApp {
+    pname = "asciidoctor";
+    gemdir = ./.;
 
-  exes = [
-    "asciidoctor"
-    "asciidoctor-pdf"
-    "asciidoctor-safe"
-  ];
+    exes = [
+      "asciidoctor"
+      "asciidoctor-pdf"
+      "asciidoctor-safe"
+      "asciidoctor-epub3"
+    ];
 
-  gemConfig = {
-    mathematical = attrs: {
-      buildInputs = [
-        cmake
-        bison
-        flex
-        glib
-        pkgconfig
-        cairo
-        pango
-        gdk_pixbuf
-        libxml2
-        python3
-      ];
+    buildInputs = [ makeWrapper ];
 
-      # The ruby build script takes care of this
-      dontUseCmakeConfigure = true;
-
-      # For some reason 'mathematical.so' is missing cairo and glib in its RPATH, add them explicitly here
-      postFixup = lib.optionalString stdenv.isLinux ''
-        soPath="$out/${ruby.gemPath}/gems/mathematical-${attrs.version}/lib/mathematical/mathematical.so"
-        ${patchelf}/bin/patchelf \
-          --set-rpath "${lib.makeLibraryPath [ glib cairo ]}:$(${patchelf}/bin/patchelf --print-rpath "$soPath")" \
-          "$soPath"
+    postBuild = ''
+        wrapProgram "$out/bin/asciidoctor-epub3" \
+          ${lib.optionalString (epubcheck != null) "--set EPUBCHECK ${epubcheck}/bin/epubcheck"} \
+          ${lib.optionalString (kindlegen != null) "--set KINDLEGEN ${kindlegen}/bin/kindlegen"}
       '';
+
+    passthru = {
+      inherit updateShell;
+    };
+
+    meta = with lib; {
+      description = "A faster Asciidoc processor written in Ruby";
+      homepage = https://asciidoctor.org/;
+      license = licenses.mit;
+      maintainers = with maintainers; [ gpyh ];
+      platforms = platforms.unix;
     };
   };
 
-  meta = with lib; {
-    description = "A faster Asciidoc processor written in Ruby";
-    homepage = https://asciidoctor.org/;
-    license = licenses.mit;
-    maintainers = with maintainers; [ gpyh ];
-    platforms = platforms.unix;
+  updateShell = mkShell {
+    inputsFrom = lib.attrValues app.gems;
+    buildInputs = [ bundix ];
   };
-}
+in
+  app
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix b/nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix
index aef9061e1302..02700962eb28 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix
@@ -51,6 +51,17 @@
     };
     version = "1.5.18";
   };
+  asciidoctor-epub3 = {
+    dependencies = ["asciidoctor" "concurrent-ruby" "gepub" "thread_safe"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "056yp0z64b1fhhkzz2kaiqsd11gpbgx2d1yjgq7cqma9c70bbxa5";
+      type = "gem";
+    };
+    version = "1.5.0.alpha.9";
+  };
   asciidoctor-mathematical = {
     dependencies = ["asciidoctor" "mathematical" "ruby-enum"];
     groups = ["default"];
@@ -104,6 +115,17 @@
     };
     version = "1.7.0";
   };
+  gepub = {
+    dependencies = ["nokogiri" "rubyzip"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kg2h0mscb2hq6l3wjzq5fp5vw4552nglq8n9pawm7bzacf1gzyf";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
   hashery = {
     groups = ["default"];
     platforms = [];
@@ -136,6 +158,16 @@
     };
     version = "1.6.12";
   };
+  mini_portile2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
   multi_json = {
     groups = ["default"];
     platforms = [];
@@ -146,6 +178,17 @@
     };
     version = "1.13.1";
   };
+  nokogiri = {
+    dependencies = ["mini_portile2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02bjydih0j515szfv9mls195cvpyidh6ixm7dwbl3s2sbaxxk5s4";
+      type = "gem";
+    };
+    version = "1.10.3";
+  };
   pdf-core = {
     groups = ["default"];
     platforms = [];
@@ -237,10 +280,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1c7c5xxkx91hwj4572hbnyvxmydb90q69wlpr2l0dxrmwx2p365l";
+      sha256 = "0g9ds2ffzljl6jjmkjffwxc1z6lh5nkqqmhhkxjk71q5ggv0rkpm";
       type = "gem";
     };
-    version = "3.1.0";
+    version = "3.1.1";
   };
   "pygments.rb" = {
     dependencies = ["multi_json"];
@@ -253,6 +296,16 @@
     };
     version = "1.2.1";
   };
+  rouge = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yfhazlhjc4abgzhkgq8zqmdphvkh52211widkl4zhsbhqh8wg2q";
+      type = "gem";
+    };
+    version = "3.5.1";
+  };
   ruby-enum = {
     dependencies = ["i18n"];
     groups = ["default"];
@@ -274,6 +327,16 @@
     };
     version = "0.1.5";
   };
+  rubyzip = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1w9gw28ly3zyqydnm8phxchf4ymyjl2r7zf7c12z8kla10cpmhlc";
+      type = "gem";
+    };
+    version = "1.2.3";
+  };
   safe_yaml = {
     groups = ["default"];
     platforms = [];
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor/update.sh b/nixpkgs/pkgs/tools/typesetting/asciidoctor/update.sh
new file mode 100755
index 000000000000..1f7e5541ceec
--- /dev/null
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor/update.sh
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+nix-shell ../../../.. -A asciidoctor.updateShell --run '
+  rm gemset.nix Gemfile.lock
+  bundix -m --bundle-pack-path $TMPDIR/asciidoctor-ruby-bundle
+  rm -r .bundle
+'