diff --git a/doc/Makefile b/doc/Makefile
index d5c0eeef69e2..23b27ba15f93 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -17,7 +17,7 @@ pandoc_flags = --extract-media=$(pandoc_media_dir) \
-f commonmark$(pandoc_commonmark_enabled_extensions)+smart
.PHONY: all
-all: validate format out/html/index.html out/epub/manual.epub
+all: validate format out/html/index.html
.PHONY: render-md
render-md: ${MD_TARGETS}
@@ -66,19 +66,6 @@ out/html/index.html: doc-support/result manual-full.xml style.css highlightjs
cp doc-support/result/xsl/docbook/images/callouts/*.svg out/html/images/callouts/
chmod u+w -R out/html/
-out/epub/manual.epub: epub.xml
- mkdir -p out/epub/scratch
- xsltproc --nonet \
- --output out/epub/scratch/ \
- doc-support/result/epub.xsl \
- ./epub.xml
-
- echo "application/epub+zip" > mimetype
- zip -0Xq "out/epub/manual.epub" mimetype
- rm mimetype
- cd "out/epub/scratch/" && zip -Xr9D "../manual.epub" *
- rm -rf "out/epub/scratch/"
-
highlightjs: doc-support/result
mkdir -p highlightjs
cp -r doc-support/result/highlightjs/highlight.pack.js highlightjs/
diff --git a/doc/default.nix b/doc/default.nix
index 86b4a8d97814..485af9bd0af9 100644
--- a/doc/default.nix
+++ b/doc/default.nix
@@ -1,6 +1,48 @@
{ pkgs ? (import ./.. { }), nixpkgs ? { }}:
let
doc-support = import ./doc-support { inherit pkgs nixpkgs; };
+
+ epub = pkgs.runCommand "manual.epub" {
+ nativeBuildInputs = with pkgs; [ libxslt zip ];
+
+ epub = ''
+
+
+ Nixpkgs Manual
+ Version ${pkgs.lib.version}
+
+
+ Temporarily unavailable
+
+ The Nixpkgs manual is currently not available in EPUB format,
+ please use the HTML manual
+ instead.
+
+
+ If you've used the EPUB manual in the past and it has been useful to you, please
+ let us know.
+
+
+
+ '';
+
+ passAsFile = [ "epub" ];
+ } ''
+ mkdir scratch
+ xsltproc \
+ --param chapter.autolabel 0 \
+ --nonet \
+ --output scratch/ \
+ ${pkgs.docbook_xsl_ns}/xml/xsl/docbook/epub/docbook.xsl \
+ $epubPath
+
+ echo "application/epub+zip" > mimetype
+ zip -0Xq "$out" mimetype
+ cd scratch && zip -Xr9D "$out" *
+ '';
in pkgs.stdenv.mkDerivation {
name = "nixpkgs-manual";
@@ -20,33 +62,7 @@ in pkgs.stdenv.mkDerivation {
ln -s ${doc-support} ./doc-support/result
'';
- epub = ''
-
-
- Nixpkgs Manual
- Version ${pkgs.lib.version}
-
-
- Temporarily unavailable
-
- The Nixpkgs manual is currently not available in EPUB format,
- please use the HTML manual
- instead.
-
-
- If you've used the EPUB manual in the past and it has been useful to you, please
- let us know.
-
-
-
- '';
- passAsFile = [ "epub" ];
-
preBuild = ''
- cp $epubPath epub.xml
make -j$NIX_BUILD_CORES render-md
'';
@@ -56,7 +72,7 @@ in pkgs.stdenv.mkDerivation {
mv out/html "$dest"
mv "$dest/index.html" "$dest/manual.html"
- mv out/epub/manual.epub "$dest/nixpkgs-manual.epub"
+ cp ${epub} "$dest/nixpkgs-manual.epub"
mkdir -p $out/nix-support/
echo "doc manual $dest manual.html" >> $out/nix-support/hydra-build-products