]> git.donarmstrong.com Git - debhelper.git/commitdiff
r572: * Added dh_installcatalogs, for sgml (and later xml) catalogs. By
authorjoey <joey>
Wed, 12 Feb 2003 16:25:44 +0000 (16:25 +0000)
committerjoey <joey>
Wed, 12 Feb 2003 16:25:44 +0000 (16:25 +0000)
     Adam DiCarlo. Closes: #90025

autoscripts/postinst-sgmlcatalog [new file with mode: 0644]
autoscripts/postrm-sgmlcatalog [new file with mode: 0644]
autoscripts/prerm-sgmlcatalog [new file with mode: 0644]
debian/changelog
debian/copyright
dh_installcatalogs [new file with mode: 0755]

diff --git a/autoscripts/postinst-sgmlcatalog b/autoscripts/postinst-sgmlcatalog
new file mode 100644 (file)
index 0000000..100dee2
--- /dev/null
@@ -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 (file)
index 0000000..168a694
--- /dev/null
@@ -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 (file)
index 0000000..cdc96e0
--- /dev/null
@@ -0,0 +1,3 @@
+if [ "$1" = "remove" ]; then
+       update-catalog --quiet --remove --super #CENTRALCAT#
+fi
index 2a80e74913b534e0a9b832696c20510eebd7810e..70e779cba98986d9265576cbde5a68b50ad1e8eb 100644 (file)
@@ -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
index 903e21f4be9297aea7de1a461f27634bffed1043..50dfa64b4aa97134e0cfdc53fc629444efba5222 100644 (file)
@@ -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 (executable)
index 0000000..16bab81
--- /dev/null
@@ -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