summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autoscripts/postinst-sgmlcatalog7
-rw-r--r--autoscripts/postrm-sgmlcatalog3
-rw-r--r--autoscripts/prerm-sgmlcatalog3
-rw-r--r--debian/changelog7
-rw-r--r--debian/copyright10
-rwxr-xr-xdh_installcatalogs115
6 files changed, 143 insertions, 2 deletions
diff --git a/autoscripts/postinst-sgmlcatalog b/autoscripts/postinst-sgmlcatalog
new file mode 100644
index 00000000..100dee2f
--- /dev/null
+++ b/autoscripts/postinst-sgmlcatalog
@@ -0,0 +1,7 @@
+if [ "$1" = "configure" ]; then
+ rm -f #CENTRALCAT#
+ for ordcat in #ORDCATS#; do
+ update-catalog --quiet --add #CENTRALCAT# ${ordcat}
+ done
+ update-catalog --quiet --add --super #CENTRALCAT#
+fi
diff --git a/autoscripts/postrm-sgmlcatalog b/autoscripts/postrm-sgmlcatalog
new file mode 100644
index 00000000..168a6949
--- /dev/null
+++ b/autoscripts/postrm-sgmlcatalog
@@ -0,0 +1,3 @@
+if [ "$1" = "purge" ]; then
+ rm -f #CENTRALCAT# #CENTRALCAT#.old
+fi
diff --git a/autoscripts/prerm-sgmlcatalog b/autoscripts/prerm-sgmlcatalog
new file mode 100644
index 00000000..cdc96e02
--- /dev/null
+++ b/autoscripts/prerm-sgmlcatalog
@@ -0,0 +1,3 @@
+if [ "$1" = "remove" ]; then
+ update-catalog --quiet --remove --super #CENTRALCAT#
+fi
diff --git a/debian/changelog b/debian/changelog
index 2a80e749..70e779cb 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+debhelper (4.1.31) unstable; urgency=low
+
+ * Added dh_installcatalogs, for sgml (and later xml) catalogs. By
+ Adam DiCarlo. Closes: #90025
+
+ -- Joey Hess <joeyh@debian.org> Wed, 12 Feb 2003 11:26:24 -0500
+
debhelper (4.1.30) unstable; urgency=low
* Turned dh_undocumented into a no-op, as policy does not want
diff --git a/debian/copyright b/debian/copyright
index 903e21f4..50dfa64b 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,4 +1,4 @@
-Debhelper is written by and copyright 1997-2002 Joey Hess <joeyh@debian.org>.
+Debhelper is written by and copyright 1997-2003 Joey Hess <joeyh@debian.org>.
Increasinly miniscule parts of the code (and certainly my inspiration from the
whole thing) came from debmake, by Christoph Lameter <clameter@debian.org>.
@@ -10,5 +10,11 @@ dh_perl is by Brendan O'Dea <bod@debian.org>
dh_python is by Josselin Mouette <josselin.mouette@ens-lyon.org>
The copyright of this package is GPL, version 2 or later. Files in the
-examples/ directory are in the public domain. On Debian systems the
+examples/ directory are in the public domain[1]. On Debian systems the
complete text of the GPL is in /usr/share/common-licenses/GPL
+
+[1] Pendants who belive I cannot legally say that code I have written is in
+ the public domain may consider them instead to be licensed as follows:
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted under any circumstances. No warranty.
diff --git a/dh_installcatalogs b/dh_installcatalogs
new file mode 100755
index 00000000..16bab813
--- /dev/null
+++ b/dh_installcatalogs
@@ -0,0 +1,115 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installcatalog - install and register SGML Catalogs
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+my $sgmlbasever = "1.17";
+
+=head1 SYNOPSIS
+
+B<dh_installcatalog> [S<I<debhelper options>>] [B<-n>]
+
+=head1 DESCRIPTION
+
+dh_registersgmlcatalog is a debhelper program that installs and
+registers SGML catalogs. (Note: it will be extended for XML catalog
+registration when xml-core is available.) It complies with the Debian
+XML/SGML policy.
+
+The file F<debian/I<package>.sgmlcatalogs> contains the catalogs to be
+installed per package. Each line in that file should be of the form
+C<source dest>, where C<source> indicates where the catalog resides in
+the source tree, and C<dest> indicates the destination location for
+the catalog under the package build area. C<dest> should start with
+F</usr/share/sgml/>.
+
+Catalogs will be registered in a supercatalog, in
+F</etc/sgml/I<package>.cat>.
+
+This script automatically adds maintainer script snippets for
+registering and unregistering the catalogs and "supercatalogs" (unless
+B<-n> is used). A dependancy on B<sgml-base> will be added to
+C<${misc:Depends}>, so be sure your package uses that variable in
+F<debian/control>. See L<dh_installdeb(1)> for an explantion of
+Debhelper maintainer script snippets.
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-n>, B<--noscripts>
+
+Do not modify F<postinst>/F<postrm>/F<prerm> scripts.
+
+=back
+
+=head1 NOTES
+
+Note that this command is not idempotent. "dh_clean -k" should be
+called between invocations of this command. Otherwise, it may cause
+multiple instances of the same text to be added to maintainer scripts.
+
+=cut
+
+init();
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmpdir = tmpdir($package);
+ my $sgmlcatlistfile = pkgfile($package, "sgmlcatalogs");
+ my @sgmlinstalled; # catalogs we've installed
+ if ($#ARGV >= 0) {
+ error("extra command-line arguments");
+ }
+ if ($sgmlcatlistfile) {
+ foreach my $line (filedoublearray($sgmlcatlistfile)) {
+ my $source = $line->[0];
+ my $dest = $line->[1];
+ my $fulldest = "$tmpdir/$dest";
+ $fulldest =~ s|//|/|g; # beautification
+
+ if (! -d dirname($fulldest)) {
+ doit("install","-d","-m755",dirname($dest));
+ }
+
+ doit("install","-p","-m644",$source,$fulldest);
+
+ push(@sgmlinstalled,$dest);
+ }
+ }
+ if (@sgmlinstalled) {
+ addsubstvar($package, "misc:Depends", "sgml-base", ">= $sgmlbasever");
+
+ if (! $dh{NOSCRIPTS}) {
+ my $ordcats = join(" ", @sgmlinstalled);
+ my $centralcat = "/etc/sgml/$package.cat";
+ autoscript($package, "postinst", "postinst-sgmlcatalog",
+ "s%#CENTRALCAT#%$centralcat%g; s%#ORDCATS#%$ordcats%g;");
+ autoscript($package, "prerm", "prerm-sgmlcatalog",
+ "s%#CENTRALCAT#%$centralcat%g;");
+ autoscript($package, "postrm", "postrm-sgmlcatalog",
+ "s%#CENTRALCAT#%$centralcat%g;");
+ }
+ }
+ else {
+ # remove the dependency
+ addsubstvar($package, "misc:Depends", "sgml-base", ">= $sgmlbasever", 1);
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(1)>
+
+F</usr/share/doc/sgml-base-doc/>
+
+=head1 AUTHOR
+
+Adam Di Carlo <aph@debian.org>
+
+=cut