/usr/bin/dh_installcatalogs is in debhelper 9.20120909.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | #!/usr/bin/perl -w
=head1 NAME
dh_installcatalogs - install and register SGML Catalogs
=cut
use strict;
use Debian::Debhelper::Dh_Lib;
my $sgmlbasever = "1.26+nmu2";
=head1 SYNOPSIS
B<dh_installcatalogs> [S<I<debhelper options>>] [B<-n>]
=head1 DESCRIPTION
B<dh_installcatalogs> is a debhelper program that installs and
registers SGML catalogs. It complies with the Debian XML/SGML policy.
Catalogs will be registered in a supercatalog, in
F</etc/sgml/I<package>.cat>.
This command automatically adds maintainer script snippets for
registering and unregistering the catalogs and supercatalogs (unless
B<-n> is used). These snippets are inserted into the maintainer scripts
by B<dh_installdeb>; see L<dh_installdeb(1)> for an explanation of
Debhelper maintainer script snippets.
A dependency on B<sgml-base> will be added to B<${misc:Depends}>, so be
sure your package uses that variable in F<debian/control>.
=head1 FILES
=over 4
=item debian/I<package>.sgmlcatalogs
Lists the catalogs to be installed per package. Each line in that file
should be of the form C<I<source> I<dest>>, where I<source> indicates where the
catalog resides in the source tree, and I<dest> indicates the destination
location for the catalog under the package build area. I<dest> should
start with F</usr/share/sgml/>.
=back
=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. L<dh_prep(1)> 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",$tmpdir."/".dirname($dest));
}
doit("install","-p","-m644",$source,$fulldest);
push(@sgmlinstalled,$dest);
}
}
if (@sgmlinstalled) {
addsubstvar($package, "misc:Depends", "sgml-base", ">= $sgmlbasever");
if (! -d "$tmpdir/etc/sgml") {
doit("install","-d","-m755","$tmpdir/etc/sgml");
}
my $centralcat = "/etc/sgml/$package.cat";
open(CENTRALCAT, ">", "$tmpdir$centralcat") || error("failed to write to $tmpdir$centralcat");
foreach my $sgmldest (@sgmlinstalled) {
print CENTRALCAT "CATALOG " . $sgmldest . "\n";
}
close CENTRALCAT;
if (! $dh{NOSCRIPTS}) {
autoscript($package, "preinst", "preinst-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(7)>
F</usr/share/doc/sgml-base-doc/>
=head1 AUTHOR
Adam Di Carlo <aph@debian.org>
=cut
|