Author: frank
Date: 2006-02-03 19:09:43 +0000 (Fri, 03 Feb 2006)
New Revision: 492

Added:
   tex-common/tags/debian_version_0.15/
   tex-common/tags/debian_version_0.15/scripts/dh_installtex
Removed:
   tex-common/tags/debian_version_0.15/scripts/dh_installtex
Log:
tagging 0.15

Copied: tex-common/tags/debian_version_0.15 (from rev 490, tex-common/trunk)

Deleted: tex-common/tags/debian_version_0.15/scripts/dh_installtex
===================================================================
--- tex-common/trunk/scripts/dh_installtex      2006-02-03 18:50:13 UTC (rev 
490)
+++ tex-common/tags/debian_version_0.15/scripts/dh_installtex   2006-02-03 
19:09:43 UTC (rev 492)
@@ -1,492 +0,0 @@
-#!/usr/bin/perl -w
-
-=head1 NAME
-
-dh_installtex - register Type 1 fonts, languages, or formats with TeX
-
-=cut
-
-use strict;
-use Debian::Debhelper::Dh_Lib;
-
-=head1 SYNOPSIS
-
-B<dh_installtex>
-[S<I<debhelper options>>]
-[B<-n>]
-[B<--priority=>I<n>]
-[B<--flavor=>I<flavor>] 
-[B<map=MixedMap,>I<file.map>]
-[B<map=Map,>I<file.map>]
-[B<mapfile=>I<file.cfg>[=I<n>]]
-[B<language=>I<lang>,I<pattern>[,I<alternate>,...]]
-[B<languagefile=>I<file.cnf>[=I<n>]]
-[B<format=>I<format>,I<engine>,I<hyphenfile>,I<rest args>]
-[B<formatfile=>I<file.cnf>[=I<n>]
-
-=head1 DESCRIPTION
-
-dh_installtex is a debhelper program that is responsible for
-registering map files, new formats, and new languages with TeX.
-
-Your package should depend on tex-common so that the
-update-* commands are available. (This program adds that dependency to
-${misc:Depends}.)
-
-In each of the three cases you can use three different methods to
-specify what should be installed:
-
-1) B<Pre made config files:> These files can be specified with the
-different I<type>file= options, together with an optional priority.
-These files will be installed into /etc/texmf/I<configdir>/ for the
-respective type (for map files updmap.d, for language files language.d,
-and for format files fmt.d).
-
-Example:
-
-        dh_installtex mapfile=foo.cfg formatfile=debian/bar.cnf=42
-
-would install foo.cfg as /etc/texmf/updmap.d/10foo.cfg, and debian/bar.cnf
-as /etc/texmf/fmt.d/42bar.cnf.
-
-
-2) B<Directly on the cmd line:>
-You can specify maps, formats, and languages on the cmd line. The items
-are stored in the respective config file 10package
-
-Example:
-
-        dh_installtex map=Map,foo.map language=greek,grphyph4.tex,polygreek
-
-would install a file /etc/texmf/updmap.d/10package.cfg containing the lines
-
-        Map foo.map
-
-and a file /etc/texmf/language.d/10package.cnf containing the lines
-
-       greek grphyph4.tex
-       =polygreek
-
-3) B<Package files:>
-You create a file debian/package.maps or debian/maps,
-debian/package.languages or debian/languages, 
-debian/package.formats or debian/formats. These files are
-installed with default priority and the name of the package. Each of these
-files will be installed into the first package dh_installtex
-is told to act on. By default this is the first binary package in
-debian/control, but if you use -p, -i, or -a flags, it will be the first
-package specified by those flags.
-
-Example:
-
-        dh_installtex
-
-would install a present debian/package.maps file as
-/etc/texmf/updmap.d/10package.cfg.
-
-
-=head2 Mixing the different variants
-
-The command line items (Variant 2) are merged into the debian/package.maps 
-(debian/package.languages, debian/package.formats)
-file and the merged file is installed as 10package.cfg/cnf. If you specify
-an additional package.cfg/cnf (Variant 1) without a different priority than
-the default one on the cmd line, this will raise an error since both files
-would be installed as 10package.cfg/cnf. You can only specify 
-package.cfg/cnf without
-a different priority than the default one if no debian/package.maps nor
-any command line Map files are present.
-
-=head2 The pseudo-comment
-
-If the provided cfg files do not contain the pseudo-comment as described
-in the Debian TeX Policy, Font configuration, an additional header with
-explanation, warning and the pseudo-comment is added.
-
-This program automatically generates the postinst and postrm commands needed
-to register the fonts with TeX.  See L<dh_installdeb(1)> for an explanation
-of how this works.
-
-=head1 OPTIONS
-
-=over 4
-
-=item B<-n>, B<--noscripts>
-
-Do not modify postinst/prerm scripts.
-
-=item B<--priority=>I<n>
-
-Set the default priority to I<n> instead of 10.
-
-=item B<--flavor=>I<flavor>
-
-This option will be used to switch additional options on. At the moment
-you can select for I<flavor> either B<map:config_for_active_maps> or
-B<map:config_for_all_maps>.
-B<map:config_for_active_maps> will create a file I<config.bar> for each active
-(i.e. uncommented) map in each of the cfg file generated by one of the
-three methods described above. These files are installed in
-/usr/share/texmf/dvips/config/.
-
-If you select B<map:config_for_all_maps> the script will generate I<config.bar>
-even for those map files which are present in a cfg file, but deactivated by a 
comment.
-
-The file I<config.bar> is used when called by `dvips -Pbar ...'. Thus it
-allows the activation of single map files even if they are not automatically
-activated via the updmap(-sys) mechanism.
-
-Default is I<not> to generate any config files.
-
-=head1 NOTES
-
-Note that this command is not idempotent. "dh_clean -k" should be called
-between invocations of this command, unless using the B<-n> option.
-Otherwise, it may cause multiple instances of the same text to be added
-to maintainer scripts.
-
-Please refer to the Debian TeX policy for details about fonts configuration
-for TeX by Debian packages.
-
-
-=cut
-
-init();
-
-
-
-#
-# GLOBAL VARIABLES
-#
-my $flavor;            
-my $mapdoconfig =  0;  # doconfig depending map/subflavor
-my $priority=10;       # priority with which files are installed
-my %cmdlineargs;
-my %cmdlinefiles;
-my %cmdlinefilespriority;
-
-#
-# definitions for the different flavors
-#
-# extension of package files debian/$package.formats and/or debian/formats etc
-my %pkgfileext = ( 
-       language        => "languages", 
-       format          => "formats", 
-       map             => "maps" );
-# extension of the config files
-my %configfileext = ( 
-       language        => "cnf", 
-       format          => "cnf", 
-       map             => "cfg" );
-# comment char for magic header
-my %commentchar = ( 
-       language        => '%', 
-       format          => '#', 
-       map             => '#' );
-# directory under /etc/texmf/ where files are installed
-my %configdir = ( 
-       language        => "language.d", 
-       format          => "fmt.d", 
-       map             => "updmap.d" );
-# directory under /var/lib/tex-common where list files are installed
-my %managedir = ( 
-       language        => "language-cnf", 
-       format          => "fmtutil-cnf", 
-       map             => "fontmap-cfg" );
-#
-# dummy loop variables
-my $i;
-my $bn;
-my $pr;
-my $dofilen;
-
-# the magic header without comment chars
-my @magicheader = ( "You can change/add entries to this file and changes will 
be preserved", 
-"over upgrades, even if you have removed the main package prior",
-"(not if you purged it). You should leave the following pseudo comment",
-"present in the file!",
-"-_- DebPkgProvidedMaps -_-", "");
-
-#
-# collect data
-# for maps this is the list of map files depending on the doconfig value
-# for formats the list of formats to be generated
-sub collect_data {
-       my ($type,$dataref,$entry) = @_;
-       my $m;
-
-       if ($type eq "map") {
-               if ($m = extract_map($entry, $mapdoconfig)) { push @$dataref, 
$m; }
-       } elsif ($type eq "format") {
-               if ($m = extract_format($entry)) { push @$dataref, $m; }
-       }
-}
-
-sub extract_format {
-       my ($line) = @_;
-       print "DEBUG extract format line=...$line...\n";
-       if ($line =~ m/^[^\w#]*(\w+)*/) {
-               print "DEBUG extracted: ...$1...\n";
-               return $1;
-       }
-}
-
-sub extract_map {
-       my ($line,$mapdoconfig) = @_;
-       if ($mapdoconfig == 0) { return ""; }
-       if ($_ =~ 
m/^[[:space:]]*([#[:space:]]*)[[:space:]]*(Mixed)?Map[[:space:]]*(.*\.map)[[:space:]]*(#.*)?$/)
 {
-               my $comment = $1;
-               my $map = $3;
-               if (($comment eq "") || ($mapdoconfig == 2)) {
-                       return $map;
-               }
-       }
-       return "";
-}
-
-#
-# build a line to be written to the config file
-# we get the argument as specified on the cmd line and have to reform
-# it properly for the respective flavor
-sub build_line {
-       my ($type,$line) = @_;
-       if ($type eq "map") {
-               if ($line =~ m/^(Map|MixedMap),(.*)$/) {
-                       return("$1 $2");
-               } else {
-                       error("$line is neither of the form Map,filename.map, 
MixedMap,filename.map.");
-               }
-       } elsif ($type eq "format") {
-               my ($format,$engine,$pat,@rest) = split(",",$line);
-               my $ret = "$format\t$engine\t$pat\t" . join(",",@rest);
-               return($ret);
-       } elsif ($type eq "language") {
-               my ($lang,$pat,@rest) = split(",",$line);
-               my $ret="$lang $pat\n";
-               foreach (@rest) {
-                       $ret .= "=$_\n";
-               }
-               return($ret);
-       }
-}
-
-#
-# check wether a magic comment is already present
-sub magic_comment_present {
-       my ($fname) = @_;
-       my @args = ( "grep", "-q", "^[#%] -_- DebPkgProvidedMaps -_-", $fname );
-       if (system(@args) == 0) { return 1; }
-       return 0;
-}
-
-
-#
-#
-# START OF THE MAIN PROGRAM
-#
-#
-
-#
-# parse the cmd line and fill in the various hashes
-#
-foreach (@ARGV) {
-       if ((m/^(map)file=(.*\.cfg)(=([[:digit:]]+))?$/) ||
-           (m/^(language)file=(.*\.cnf)(=([[:digit:]]+))?$/) ||
-           (m/^(format)file=(.*\.cnf)(=([[:digit:]]+))?$/)) {
-               my $type=$1;
-               my $fn=$2;
-               my $pr=$priority;
-               if (defined($4)) {
-                       $pr=$4;
-               }
-               $cmdlinefilespriority{$type}{$fn}=$pr;
-       } elsif (m/^(map|language|format)=(.*)$/) {
-               push @{$cmdlineargs{$1}}, $2;
-       } else {
-               error("Unrecognized argument: $_\n");
-       }
-}
-
-#
-#
-if (defined($dh{FLAVOR})) {
-       if ($dh{FLAVOR} eq "map:config_for_active_maps") {
-               $mapdoconfig = 1;
-       } elsif ($dh{FLAVOR} eq "map:config_for_all_maps") {
-               $mapdoconfig = 2;
-       } else {
-               error("Specified flavor $dh{FLAVOR} not supported.\nPlease see 
man page for supported flavors!\n");
-       }
-}
-
-if (defined($dh{PRIORITY}) && $dh{PRIORITY} ne '') {
-       $priority=$dh{PRIORITY};
-}
-
-
-foreach my $package (@{$dh{DOPACKAGES}}) {
-       # these variables should be local to the loop over packages
-       # as they vary with package
-       my $tmp=tmpdir($package);
-       my %pkgprovidedfilecontents;
-       my %data;
-       my @whattodo = ();
-
-       if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
-               # we do nothing here
-       } else {
-               # we have to clear all the cmd line arguments!
-               %cmdlinefilespriority = ();
-               %cmdlineargs = ();
-       }
-
-       foreach my $type ("map", "language", "format") {
-               my @cmdlineconfigfiles = ();
-               my @cmdlinearguments = ();
-               my $pkgprovidedfile = 0;
-               my $pkgfileoncmdline = 0;
-               my @listlines;
-               my $foo = pkgfile($package,$pkgfileext{$type});
-               if ($foo) {
-                       open(FOO, "<$foo") || error("$foo cannot be opened.");
-                       my @bar = <FOO>;
-                       close(FOO);
-                       $pkgprovidedfilecontents{$type} = [EMAIL PROTECTED];
-                       $pkgprovidedfile = 1;
-               }
-               if (defined($cmdlinefilespriority{$type})) {
-                       my %priorityhash = %{$cmdlinefilespriority{$type}};
-                       @cmdlineconfigfiles = keys(%priorityhash);
-               }
-               if (defined($cmdlineargs{$type})) {
-                       @cmdlinearguments = @{$cmdlineargs{$type}};
-               }
-               foreach $foo (@cmdlineconfigfiles) {
-                       my $bn=basename($foo);
-                       if ($bn eq "$package.$configfileext{$type}" && 
$cmdlinefilespriority{$type}{$foo} == $priority) {
-                               $pkgfileoncmdline = 1;
-                       }
-               }
-               if (!$pkgprovidedfile && ($#cmdlineconfigfiles < 0) && 
($#cmdlinearguments < 0)) {
-                       # we have nothing to do here, skip to the next one!
-                       next;
-               }
-               push @whattodo, $type;
-               if ($pkgfileoncmdline && ($pkgprovidedfile || 
($#cmdlinearguments >= 0))) {
-                       error("This call would create multiple copies of 
$priority$package.$configfileext{$_}.\nPlease read the man page on how this 
should be fixed!\n");
-               }
-               if ( ! -d "$tmp/etc/texmf/$configdir{$type}/") {
-                       
doit("install","-d","$tmp/etc/texmf/$configdir{$type}/");
-               }
-               #
-               # the cmd line cfg files
-               #
-               foreach (@cmdlineconfigfiles) {
-                       $bn=basename($_);
-                       $pr=$cmdlinefilespriority{$type}{$_};
-                       $dofilen = "$tmp/etc/texmf/$configdir{$type}/$pr$bn";
-                       -r $dofilen &&
-                               error("The config file $dofilen already exists! 
Cannot recreate it, please call dh_clean -k!");
-                       open(CFGFILE, ">$dofilen") ||
-                               error("Cannot open $dofilen for writing!");
-                       verbose_print("Writing $dofilen");
-                       if (!magic_comment_present($_)) {
-                               print CFGFILE "$commentchar{$type} $pr$bn\n";
-                               foreach $i (@magicheader) {
-                                       print CFGFILE "$commentchar{$type} 
$i\n";
-                               }
-                       }
-                       open(FOO,"<$_") || error("Cannot open $_ for reading!");
-                       while (<FOO>) { 
-                               print CFGFILE $_; 
-                               collect_data($type,[EMAIL PROTECTED],$_);
-                       }
-                       close(FOO);
-                       close(CFGFILE);
-                       $bn =~ s/\.$configfileext{$type}$//;
-                       push @listlines, "$pr$bn";
-               }
-               #
-               # now debian/package.maps and/or debian/maps formats languages
-               # merge in the cmd line arguments
-               #
-               if ($pkgprovidedfile || ($#cmdlinearguments >= 0)) {
-                       $dofilen = 
"$tmp/etc/texmf/$configdir{$type}/$priority$package.$configfileext{$type}";
-                       -r $dofilen && 
-                               error("The config file $dofilen already exists! 
Cannot recreate it, please call dh_clean -k!");
-                       open(CFGFILE, ">$dofilen") || 
-                               error("Cannot open $dofilen for writing!");
-                       verbose_print("Writing $dofilen");
-                       if (($pkgprovidedfile && 
!magic_comment_present($pkgprovidedfile)) ||
-                           (!$pkgprovidedfile && ($#cmdlinearguments >= 0))) {
-                               print CFGFILE "$commentchar{$type} 
$priority$package.$configfileext{$type}\n";
-                               foreach (@magicheader) {
-                                       print CFGFILE "$commentchar{$type} 
$_\n";
-                               }
-                       }
-                       foreach (@{$pkgprovidedfilecontents{$type}}) {
-                               print CFGFILE "$_";
-                               collect_data($type,[EMAIL PROTECTED],$_);
-                       }
-                       foreach (@cmdlinearguments) {
-                               my $foo =  build_line($type,$_);
-                               print CFGFILE $foo,"\n";
-                               collect_data($type,[EMAIL PROTECTED],$foo);
-                       }
-                       close(CFGFILE);
-                       push @listlines, "$priority$package";
-               }
-       
-               if ( ! -d "$tmp/var/lib/tex-common/$managedir{$type}/") {
-                   
doit("install","-d","$tmp/var/lib/tex-common/$managedir{$type}/");
-               }
-               $dofilen = 
"$tmp/var/lib/tex-common/$managedir{$type}/$package.list";
-               open(LISTFILE, ">>$dofilen")||
-                       error("Cannot open $dofilen for writing/appending!");
-               verbose_print("Writing $dofilen");
-               foreach (@listlines) {
-                       print LISTFILE "$_\n";
-               }
-               close(LISTFILE);
-
-               if ($type eq "map") {
-                   my @data = @{$data{"map"}};
-                   if ($#data >= 0) {
-                       
doit("install","-d","$tmp/usr/share/texmf/dvips/config/");
-                   }
-                   foreach $i (@data) {
-                       my $f = $i;
-                       $f =~ s/\.map$//;
-                       $dofilen = 
"$tmp/usr/share/texmf/dvips/config/config.$f";
-                       -r $dofilen &&
-                           error("The dvips config file $dofilen already 
exists!\nYou may have to call dh_clean -k!\n");
-                       open(CNFFILE, ">$dofilen") ||
-                           error("Cannot open $dofilen for writing!");
-                       verbose_print("Writing $dofilen");
-                       print CNFFILE "p +$i\n";
-                       close(CNFFILE);
-                   }
-               }
-       }
-
-       my @fmtdata = ();
-       if (defined($data{"format"})) {
-               @fmtdata = @{$data{"format"}};
-       }
-       if (! $dh{NOSCRIPTS}) {
-               autoscript($package, "postinst", "postinst-tex", 
"s/#FORMATS#/@fmtdata/; s/#WHATTODO#/@whattodo/");
-               autoscript($package, "postrm",   "postrm-tex", 
"s/#FORMATS#/@fmtdata/; s/#WHATTODO#/@whattodo/");
-       }
-
-       addsubstvar($package, "misc:Depends", "tex-common", ">= 0.7");
-}
-
-=head1 SEE ALSO
-
-L<debhelper(7)>
-
-=head1 AUTHOR
-
-Norbert Preining <[EMAIL PROTECTED]>
-
-=cut

Copied: tex-common/tags/debian_version_0.15/scripts/dh_installtex (from rev 
491, tex-common/trunk/scripts/dh_installtex)


_______________________________________________
Pkg-tetex-commits mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/pkg-tetex-commits

Reply via email to