2018-10-05 16:46:58 +02:00
|
|
|
{ pkgs ? (import ./.. { }), nixpkgs ? { }}:
|
2015-12-19 16:04:36 +01:00
|
|
|
let
|
2019-07-04 14:23:39 +02:00
|
|
|
doc-support = import ./doc-support { inherit pkgs nixpkgs; };
|
2023-06-24 21:39:20 +02:00
|
|
|
|
|
|
|
epub = pkgs.runCommand "manual.epub" {
|
|
|
|
nativeBuildInputs = with pkgs; [ libxslt zip ];
|
|
|
|
|
|
|
|
epub = ''
|
|
|
|
<book xmlns="http://docbook.org/ns/docbook"
|
|
|
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
|
|
version="5.0"
|
|
|
|
xml:id="nixpkgs-manual">
|
|
|
|
<info>
|
|
|
|
<title>Nixpkgs Manual</title>
|
|
|
|
<subtitle>Version ${pkgs.lib.version}</subtitle>
|
|
|
|
</info>
|
|
|
|
<chapter>
|
|
|
|
<title>Temporarily unavailable</title>
|
|
|
|
<para>
|
|
|
|
The Nixpkgs manual is currently not available in EPUB format,
|
|
|
|
please use the <link xlink:href="https://nixos.org/nixpkgs/manual">HTML manual</link>
|
|
|
|
instead.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
If you've used the EPUB manual in the past and it has been useful to you, please
|
|
|
|
<link xlink:href="https://github.com/NixOS/nixpkgs/issues/237234">let us know</link>.
|
|
|
|
</para>
|
|
|
|
</chapter>
|
|
|
|
</book>
|
|
|
|
'';
|
|
|
|
|
|
|
|
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" *
|
|
|
|
'';
|
2018-12-30 01:10:19 +01:00
|
|
|
in pkgs.stdenv.mkDerivation {
|
2014-08-24 11:02:23 +02:00
|
|
|
name = "nixpkgs-manual";
|
|
|
|
|
2020-12-05 13:47:29 +01:00
|
|
|
nativeBuildInputs = with pkgs; [
|
|
|
|
pandoc
|
|
|
|
graphviz
|
|
|
|
libxml2
|
|
|
|
libxslt
|
|
|
|
zip
|
|
|
|
jing
|
|
|
|
xmlformat
|
|
|
|
];
|
2014-08-24 11:02:23 +02:00
|
|
|
|
2023-02-07 13:58:34 +01:00
|
|
|
src = pkgs.nix-gitignore.gitignoreSource [] ./.;
|
2018-03-24 16:36:10 +01:00
|
|
|
|
|
|
|
postPatch = ''
|
2019-07-04 14:27:16 +02:00
|
|
|
ln -s ${doc-support} ./doc-support/result
|
2018-03-24 16:36:10 +01:00
|
|
|
'';
|
2014-08-24 11:02:23 +02:00
|
|
|
|
2023-04-25 14:37:50 +02:00
|
|
|
preBuild = ''
|
|
|
|
make -j$NIX_BUILD_CORES render-md
|
|
|
|
'';
|
|
|
|
|
2018-03-24 16:36:10 +01:00
|
|
|
installPhase = ''
|
|
|
|
dest="$out/share/doc/nixpkgs"
|
|
|
|
mkdir -p "$(dirname "$dest")"
|
|
|
|
mv out/html "$dest"
|
|
|
|
mv "$dest/index.html" "$dest/manual.html"
|
2016-07-20 17:57:31 +02:00
|
|
|
|
2023-06-24 21:39:20 +02:00
|
|
|
cp ${epub} "$dest/nixpkgs-manual.epub"
|
2016-07-20 17:57:31 +02:00
|
|
|
|
2018-03-24 16:36:10 +01:00
|
|
|
mkdir -p $out/nix-support/
|
|
|
|
echo "doc manual $dest manual.html" >> $out/nix-support/hydra-build-products
|
2018-06-06 22:36:17 +02:00
|
|
|
echo "doc manual $dest nixpkgs-manual.epub" >> $out/nix-support/hydra-build-products
|
2014-08-24 11:02:23 +02:00
|
|
|
'';
|
2021-06-04 09:29:58 +02:00
|
|
|
|
|
|
|
# Environment variables
|
|
|
|
PANDOC_LUA_FILTERS_DIR = "${pkgs.pandoc-lua-filters}/share/pandoc/filters";
|
2023-01-02 14:00:58 +01:00
|
|
|
PANDOC_LINK_MANPAGES_FILTER = import build-aux/pandoc-filters/link-manpages.nix { inherit pkgs; };
|
2014-08-24 11:02:23 +02:00
|
|
|
}
|