Nixpkgs manual: Add a Nix expression to build

This commit is contained in:
Eelco Dolstra 2014-08-24 11:02:23 +02:00
parent 14f48dd5c2
commit 438b9c543d
5 changed files with 47 additions and 72 deletions

View file

@ -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

42
doc/default.nix Normal file
View file

@ -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
'';
}

View file

@ -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>

View file

@ -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 = {

View file

@ -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";