mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-30 17:43:42 +00:00
84d6565d52
libxslt 1.1.35 fixed conflict resolution for templates to match the specification. This uncovered a bug in docbook-xsl (https://github.com/docbook/xslt10-stylesheets/issues/240), which causes option names to be duplicated into the option descriptions. Let’s resolve the conflict by patching the stylesheets. Fixes: https://github.com/NixOS/nixpkgs/issues/166304
92 lines
3.1 KiB
Nix
92 lines
3.1 KiB
Nix
{ lib, stdenv, substituteAll, fetchurl, fetchpatch, findXMLCatalogs, writeScriptBin, ruby, bash, withManOptDedupPatch ? false }:
|
|
|
|
let
|
|
|
|
common = { pname, sha256, suffix ? "" }: let
|
|
legacySuffix = if suffix == "-nons" then "" else "-ns";
|
|
self = stdenv.mkDerivation rec {
|
|
inherit pname;
|
|
version = "1.79.2";
|
|
|
|
src = fetchurl {
|
|
url = "https://github.com/docbook/xslt10-stylesheets/releases/download/release%2F${version}/docbook-xsl${suffix}-${version}.tar.bz2";
|
|
inherit sha256;
|
|
};
|
|
|
|
patches = [
|
|
# Prevent a potential stack overflow
|
|
# https://github.com/docbook/xslt10-stylesheets/pull/37
|
|
(fetchpatch {
|
|
url = "https://src.fedoraproject.org/rpms/docbook-style-xsl/raw/e3ae7a97ed1d185594dd35954e1a02196afb205a/f/docbook-style-xsl-non-recursive-string-subst.patch";
|
|
sha256 = "0lrjjg5kpwwmbhkxzz6i5zmimb6lsvrrdhzc2qgjmb3r6jnsmii3";
|
|
stripLen = "1";
|
|
})
|
|
|
|
# Fix reproducibility by respecting generate.consistent.ids in indexes
|
|
# https://github.com/docbook/xslt10-stylesheets/pull/88
|
|
# https://sourceforge.net/p/docbook/bugs/1385/
|
|
(fetchpatch {
|
|
url = "https://github.com/docbook/xslt10-stylesheets/commit/07631601e6602bc49b8eac3aab9d2b35968d3e7a.patch";
|
|
sha256 = "0igfhcr6hzcydqsnjsd181h5yl3drjnrwdmxcybr236m8255vkq3";
|
|
stripLen = "1";
|
|
})
|
|
|
|
# Add legacy sourceforge.net URIs to the catalog
|
|
(substituteAll {
|
|
src = ./catalog-legacy-uris.patch;
|
|
inherit legacySuffix suffix version;
|
|
})
|
|
] ++ lib.optionals withManOptDedupPatch [
|
|
# Fixes https://github.com/NixOS/nixpkgs/issues/166304
|
|
# https://github.com/docbook/xslt10-stylesheets/pull/241
|
|
./fix-man-options-duplication.patch
|
|
];
|
|
|
|
propagatedBuildInputs = [ findXMLCatalogs ];
|
|
|
|
dontBuild = true;
|
|
|
|
installPhase = ''
|
|
dst=$out/share/xml/${pname}
|
|
mkdir -p $dst
|
|
rm -rf RELEASE* README* INSTALL TODO NEWS* BUGS install.sh tools Makefile tests extensions webhelp
|
|
mv * $dst/
|
|
|
|
# Backwards compatibility. Will remove eventually.
|
|
mkdir -p $out/xml/xsl
|
|
ln -s $dst $out/xml/xsl/docbook
|
|
|
|
# More backwards compatibility
|
|
ln -s $dst $out/share/xml/docbook-xsl${legacySuffix}
|
|
'';
|
|
|
|
passthru.dbtoepub = writeScriptBin "dbtoepub"
|
|
''
|
|
#!${bash}/bin/bash
|
|
exec -a dbtoepub ${ruby}/bin/ruby ${self}/share/xml/${pname}/epub/bin/dbtoepub "$@"
|
|
'';
|
|
|
|
meta = {
|
|
homepage = "https://github.com/docbook/wiki/wiki/DocBookXslStylesheets";
|
|
description = "XSL stylesheets for transforming DocBook documents into HTML and various other formats";
|
|
license = lib.licenses.mit;
|
|
maintainers = [ lib.maintainers.eelco ];
|
|
platforms = lib.platforms.all;
|
|
};
|
|
};
|
|
in self;
|
|
|
|
in {
|
|
|
|
docbook-xsl-nons = common {
|
|
pname = "docbook-xsl-nons";
|
|
suffix = "-nons";
|
|
sha256 = "00i1hdyxim8jymv2dz68ix3wbs5w6isxm8ijb03qk3vs1g59x2zf";
|
|
};
|
|
|
|
docbook-xsl-ns = common {
|
|
pname = "docbook-xsl-ns";
|
|
sha256 = "0wd33z41kdsybyx3ay21w6bdlmgpd9kyn3mr5y520lsf8km28r9i";
|
|
};
|
|
}
|