about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2014-08-24 11:02:23 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-08-24 11:03:55 +0200
commit438b9c543d535f525ac50affd045bdf41a3239d6 (patch)
treee9c90dc09ce11309910a754cc39a5c66a7bda353
parent14f48dd5c2c4f4f4a2409d4ced1dd4ca2cab5e74 (diff)
downloadnixlib-438b9c543d535f525ac50affd045bdf41a3239d6.tar
nixlib-438b9c543d535f525ac50affd045bdf41a3239d6.tar.gz
nixlib-438b9c543d535f525ac50affd045bdf41a3239d6.tar.bz2
nixlib-438b9c543d535f525ac50affd045bdf41a3239d6.tar.lz
nixlib-438b9c543d535f525ac50affd045bdf41a3239d6.tar.xz
nixlib-438b9c543d535f525ac50affd045bdf41a3239d6.tar.zst
nixlib-438b9c543d535f525ac50affd045bdf41a3239d6.zip
Nixpkgs manual: Add a Nix expression to build
-rw-r--r--doc/Makefile41
-rw-r--r--doc/default.nix42
-rw-r--r--doc/manual.xml5
-rw-r--r--pkgs/top-level/make-tarball.nix29
-rw-r--r--pkgs/top-level/release.nix2
5 files changed, 47 insertions, 72 deletions
diff --git a/doc/Makefile b/doc/Makefile
deleted file mode 100644
index 39988cdd414e..000000000000
--- a/doc/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-# You may need to override this.
-docbookxsl = $(HOME)/.nix-profile/xml/xsl/docbook
-dblatex = dblatex
-
-XMLLINT = xmllint --catalogs
-XSLTPROC = xsltproc --catalogs \
- --param section.autolabel 1 \
- --param section.label.includes.component.label 1 \
- --param html.stylesheet \'style.css\' \
- --param xref.with.number.and.title 1 \
- --param toc.section.depth 3 \
- --param admon.style \'\' \
- --param callout.graphics.extension \'.gif\'
-
-NEWS_OPTS = \
- --stringparam generate.toc "article nop" \
- --stringparam section.autolabel.max.depth 0 \
- --stringparam header.rule 0
-
-all: NEWS.html NEWS.txt manual.html manual.pdf
-
-NEWS.html: release-notes.xml
-	$(XSLTPROC) --nonet --xinclude --output $@ $(NEWS_OPTS) \
-	  $(docbookxsl)/xhtml/docbook.xsl release-notes.xml
-
-NEWS.txt: release-notes.xml
-	$(XSLTPROC) --nonet --xinclude quote-literals.xsl release-notes.xml | \
-	  $(XSLTPROC) --nonet --output $@.tmp.html $(NEWS_OPTS) \
-	  $(docbookxsl)/xhtml/docbook.xsl -
-	LANG=en_US w3m -dump $@.tmp.html > $@
-	rm $@.tmp.html
-
-manual.html: *.xml
-	$(XSLTPROC) --nonet --xinclude --output manual.html \
-	  $(docbookxsl)/xhtml/docbook.xsl manual.xml
-
-manual.pdf: *.xml
-	$(dblatex) \
-	  -P doc.collab.show=0 \
-	  -P latex.output.revhistory=0 \
-	  manual.xml
diff --git a/doc/default.nix b/doc/default.nix
new file mode 100644
index 000000000000..1e8974d60266
--- /dev/null
+++ b/doc/default.nix
@@ -0,0 +1,42 @@
+with import ./.. { };
+with lib;
+
+stdenv.mkDerivation {
+  name = "nixpkgs-manual";
+
+  sources = sourceFilesBySuffices ./. [".xml"];
+
+  buildInputs = [ libxml2 libxslt ];
+
+  xsltFlags = ''
+    --param section.autolabel 1
+    --param section.label.includes.component.label 1
+    --param html.stylesheet 'style.css'
+    --param xref.with.number.and.title 1
+    --param toc.section.depth 3
+    --param admon.style '''
+    --param callout.graphics.extension '.gif'
+  '';
+
+  buildCommand = ''
+    ln -s $sources/*.xml . # */
+
+    echo ${nixpkgsVersion} > .version
+
+    xmllint --noout --nonet --xinclude --noxincludenode \
+      --relaxng ${docbook5}/xml/rng/docbook/docbook.rng \
+      manual.xml
+
+    dst=$out/share/doc/nixpkgs
+    mkdir -p $dst
+    xsltproc $xsltFlags --nonet --xinclude \
+      --output $dst/manual.html \
+      ${docbook5_xsl}/xml/xsl/docbook/xhtml/docbook.xsl \
+      ./manual.xml
+
+    cp ${./style.css} $dst/style.css
+
+    mkdir -p $out/nix-support
+    echo "doc manual $dst manual.html" >> $out/nix-support/hydra-build-products
+  '';
+}
diff --git a/doc/manual.xml b/doc/manual.xml
index 5eb62e811c69..01373b4f5b1d 100644
--- a/doc/manual.xml
+++ b/doc/manual.xml
@@ -3,10 +3,9 @@
 
   <info>
 
-    <title>Nixpkgs Manual</title>
+    <title>Nixpkgs Contributors Guide</title>
 
-    <subtitle>Draft (Version <xi:include href="../.version"
-    parse="text" />)</subtitle>
+    <subtitle>Version <xi:include href=".version" parse="text" /></subtitle>
 
   </info>
 
diff --git a/pkgs/top-level/make-tarball.nix b/pkgs/top-level/make-tarball.nix
index 9856586a1832..356368d137d3 100644
--- a/pkgs/top-level/make-tarball.nix
+++ b/pkgs/top-level/make-tarball.nix
@@ -14,14 +14,7 @@ releaseTools.sourceTarball rec {
   version = builtins.readFile ../../.version;
   versionSuffix = "pre${toString nixpkgs.revCount}.${nixpkgs.shortRev}";
 
-  buildInputs = [
-    lzma
-    libxml2 # Needed for the release notes.
-    libxslt
-    w3m
-    nix # Needed to check whether the expressions are valid.
-    tetex dblatex
-  ];
+  buildInputs = [ nix ];
 
   configurePhase = ''
     eval "$preConfigure"
@@ -32,13 +25,6 @@ releaseTools.sourceTarball rec {
 
   dontBuild = false;
 
-  buildPhase = ''
-    echo "building docs..."
-    export VARTEXFONTS=$TMPDIR/texfonts
-    make -C doc docbookxsl=${docbook5_xsl}/xml/xsl/docbook
-    ln -s doc/NEWS.txt NEWS
-  '';
-
   doCheck = true;
 
   checkPhase = ''
@@ -87,19 +73,6 @@ releaseTools.sourceTarball rec {
     cp -prd . ../$releaseName
     echo nixpkgs > ../$releaseName/channel-name
     (cd .. && tar cfa $out/tarballs/$releaseName.tar.xz $releaseName) || false
-
-    mkdir -p $out/release-notes
-    cp doc/NEWS.html $out/release-notes/index.html
-    cp doc/style.css $out/release-notes/
-    echo "doc release-notes $out/release-notes" >> $out/nix-support/hydra-build-products
-
-    mkdir -p $out/manual
-    cp doc/manual.html $out/manual/index.html
-    cp doc/style.css $out/manual/
-    echo "doc manual $out/manual" >> $out/nix-support/hydra-build-products
-
-    cp doc/manual.pdf $out/manual.pdf
-    echo "doc-pdf manual $out/manual.pdf" >> $out/nix-support/hydra-build-products
   '';
 
   meta = {
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index ff66756aa8b4..be76c63685bc 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -22,6 +22,8 @@ let
   jobs =
     { tarball = import ./make-tarball.nix { inherit nixpkgs officialRelease; };
 
+      manual = import ../../doc;
+
       unstable = pkgs.releaseTools.aggregate
         { name = "nixpkgs-${jobs.tarball.version}";
           meta.description = "Release-critical builds for the Nixpkgs unstable channel";