#!/usr/bin/perl -w =head1 NAME dh_installcatalogs - install and register SGML Catalogs =cut use strict; use Debian::Debhelper::Dh_Lib; my $sgmlbasever = "1.17"; =head1 SYNOPSIS B [S>] [B<-n>] =head1 DESCRIPTION dh_installcatalogs 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.sgmlcatalogs> contains the catalogs to be installed per package. Each line in that file should be of the form C, where C indicates where the catalog resides in the source tree, and C indicates the destination location for the catalog under the package build area. C should start with F. Catalogs will be registered in a supercatalog, in F.cat>. This command automatically adds maintainer script snippets for registering and unregistering the catalogs and "supercatalogs" (unless B<-n> is used). A dependancy on B will be added to C<${misc:Depends}>, so be sure your package uses that variable in F. See L for an explantion of Debhelper maintainer script snippets. =head1 OPTIONS =over 4 =item B<-n>, B<--noscripts> Do not modify F/F/F 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 F =head1 AUTHOR Adam Di Carlo =cut