diff options
Diffstat (limited to 'pkgs/tools/text/sgml')
-rw-r--r-- | pkgs/tools/text/sgml/opensp/compat.nix | 6 | ||||
-rw-r--r-- | pkgs/tools/text/sgml/opensp/default.nix | 2 | ||||
-rw-r--r-- | pkgs/tools/text/sgml/opensp/setup-hook.sh | 22 |
3 files changed, 29 insertions, 1 deletions
diff --git a/pkgs/tools/text/sgml/opensp/compat.nix b/pkgs/tools/text/sgml/opensp/compat.nix index 8e521da20848..3e9d9152d36a 100644 --- a/pkgs/tools/text/sgml/opensp/compat.nix +++ b/pkgs/tools/text/sgml/opensp/compat.nix @@ -3,13 +3,17 @@ stdenv.mkDerivation { name = "sp-compat-${builtins.substring 7 100 opensp.name}"; - buildCommand = '' + phases = [ "fixupPhase" "installPhase" ]; + + installPhase = '' mkdir -pv $out/bin for i in ${opensp}/bin/o*; do ln -sv $i $out/bin/''${i#${opensp}/bin/o} done ''; + setupHook = opensp.setupHook; + meta.description = "Compatibility wrapper for old programs looking for original sp programs"; } diff --git a/pkgs/tools/text/sgml/opensp/default.nix b/pkgs/tools/text/sgml/opensp/default.nix index 76efbd0b1af6..e30567000dd1 100644 --- a/pkgs/tools/text/sgml/opensp/default.nix +++ b/pkgs/tools/text/sgml/opensp/default.nix @@ -13,6 +13,8 @@ stdenv.mkDerivation { docsrc/*.xml ''; + setupHook = ./setup-hook.sh; + buildInputs = [ xmlto docbook_xml_dtd_412 libxslt docbook_xsl ]; meta = { diff --git a/pkgs/tools/text/sgml/opensp/setup-hook.sh b/pkgs/tools/text/sgml/opensp/setup-hook.sh new file mode 100644 index 000000000000..2c9142da1016 --- /dev/null +++ b/pkgs/tools/text/sgml/opensp/setup-hook.sh @@ -0,0 +1,22 @@ +addSGMLCatalogs () { + if test -d $1/sgml/dtd; then + for i in $(find $1/sgml/dtd -name docbook.cat); do + export SGML_CATALOG_FILES="${SGML_CATALOG_FILES:+:}$i" + done + fi +} + +if test -z "$sgmlHookDone"; then + sgmlHookDone=1 + + # Set http_proxy and ftp_proxy to a invalid host to prevent + # xmllint and xsltproc from trying to download DTDs from the + # network even when --nonet is not given. That would be impure. + # (Note that .invalid is a reserved domain guaranteed not to + # work.) + export http_proxy=http://nodtd.invalid/ + export ftp_proxy=http://nodtd.invalid/ + + export SGML_CATALOG_FILES + envHooks=(${envHooks[@]} addSGMLCatalogs) +fi |