Merge pull request #64298 from michaelpj/imp/mathematical-epub3
asciidoctor: include the asciidoctor-epub3 gem
This commit is contained in:
commit
a0f534865e
7 changed files with 133 additions and 52 deletions
|
@ -24,6 +24,7 @@
|
|||
, msgpack, qt59, libsodium, snappy, libossp_uuid, lxc, libpcap, xorg, gtk2, buildRubyGem
|
||||
, cairo, re2, rake, gobject-introspection, gdk_pixbuf, zeromq, czmq, graphicsmagick, libcxx
|
||||
, file, libvirt, glib, vips, taglib, libopus, linux-pam, libidn, protobuf, fribidi, harfbuzz
|
||||
, bison, flex, pango, python3, patchelf
|
||||
, libselinux ? null, libsepol ? null
|
||||
}@args:
|
||||
|
||||
|
@ -245,6 +246,32 @@ in
|
|||
];
|
||||
};
|
||||
|
||||
mathematical = attrs: {
|
||||
buildInputs = [
|
||||
cmake
|
||||
bison
|
||||
flex
|
||||
glib
|
||||
pkgconfig
|
||||
cairo
|
||||
pango
|
||||
gdk_pixbuf
|
||||
libxml2
|
||||
python3
|
||||
];
|
||||
|
||||
# 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"
|
||||
'';
|
||||
};
|
||||
|
||||
magic = attrs: {
|
||||
buildInputs = [ file ];
|
||||
postInstall = ''
|
||||
|
|
|
@ -2,6 +2,7 @@ source 'https://rubygems.org'
|
|||
gem 'asciidoctor'
|
||||
gem 'asciidoctor-diagram'
|
||||
gem 'asciidoctor-pdf'
|
||||
gem 'asciidoctor-epub3'
|
||||
gem 'asciidoctor-mathematical'
|
||||
gem 'coderay'
|
||||
gem 'pygments.rb'
|
||||
|
|
|
@ -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)
|
||||
|
@ -61,6 +72,7 @@ GEM
|
|||
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)
|
||||
|
@ -73,6 +85,7 @@ PLATFORMS
|
|||
DEPENDENCIES
|
||||
asciidoctor
|
||||
asciidoctor-diagram
|
||||
asciidoctor-epub3
|
||||
asciidoctor-mathematical
|
||||
asciidoctor-pdf
|
||||
coderay
|
||||
|
|
|
@ -1,59 +1,46 @@
|
|||
{ stdenv, lib, bundlerApp, ruby, bundix, mkShell
|
||||
# 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 rec {
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
||||
passthru.updateShell = mkShell {
|
||||
buildInputs = (gemConfig.mathematical {}).buildInputs ++ [
|
||||
bundix
|
||||
];
|
||||
updateShell = mkShell {
|
||||
inputsFrom = lib.attrValues app.gems;
|
||||
buildInputs = [ bundix ];
|
||||
};
|
||||
|
||||
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;
|
||||
};
|
||||
}
|
||||
in
|
||||
app
|
||||
|
|
|
@ -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 = [];
|
||||
|
@ -284,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 = [];
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
rm gemset.nix Gemfile.lock
|
||||
nix-shell ../../../.. -A asciidoctor.updateShell --run '
|
||||
rm gemset.nix Gemfile.lock
|
||||
bundix -m --bundle-pack-path $TMPDIR/asciidoctor-ruby-bundle
|
||||
rm -r .bundle
|
||||
'
|
||||
rm -r .bundle
|
||||
|
|
|
@ -1928,7 +1928,7 @@ in
|
|||
enableExtraPlugins = true;
|
||||
});
|
||||
|
||||
asciidoctor = callPackage ../tools/typesetting/asciidoctor { };
|
||||
asciidoctor = callPackage ../tools/typesetting/asciidoctor { kindlegen = null; };
|
||||
|
||||
asunder = callPackage ../applications/audio/asunder { };
|
||||
|
||||
|
|
Loading…
Reference in a new issue