[subversion-commit] SVN tetex commit + diffs: r391 - in tex-common/trunk: debian scripts

Norbert Preining preining-guest at costa.debian.org
Fri Dec 9 10:41:39 UTC 2005


Author: preining-guest
Date: 2005-12-09 10:41:38 +0000 (Fri, 09 Dec 2005)
New Revision: 391

Modified:
   tex-common/trunk/debian/changelog
   tex-common/trunk/scripts/dh_installtexfonts
Log:
implementing --flavor


Modified: tex-common/trunk/debian/changelog
===================================================================
--- tex-common/trunk/debian/changelog	2005-12-09 10:39:04 UTC (rev 390)
+++ tex-common/trunk/debian/changelog	2005-12-09 10:41:38 UTC (rev 391)
@@ -2,14 +2,16 @@
 
   * tex-common now provides the symlink /usr/share/texmf/doc -->
     ../doc/texmf, because tetex-doc now puts its files into TEXMFDIST
-    [frank]. 
+    [frank].
   * Do no longer install teTeX's common.* files and dsf-patch.mk, they are
     no longer used.
-  * Translations: 
+  * Translations:
     - Update Czech debconf translation, thanks to Miroslav Kure
       <kurem at upcase.inf.upol.cz> (closes: #341941) [frank]
+  * Implement --flavor for dh_installtexfonts, first flavors are only 
+    for generating config files for maps [preining].
 
- -- Frank Küster <frank at debian.org>  Mon,  5 Dec 2005 16:13:38 +0100
+ -- Norbert Preining <preining at logic.at>  Fri,  9 Dec 2005 11:40:48 +0100
 
 tex-common (0.12) unstable; urgency=low
 

Modified: tex-common/trunk/scripts/dh_installtexfonts
===================================================================
--- tex-common/trunk/scripts/dh_installtexfonts	2005-12-09 10:39:04 UTC (rev 390)
+++ tex-common/trunk/scripts/dh_installtexfonts	2005-12-09 10:41:38 UTC (rev 391)
@@ -11,7 +11,8 @@
 
 =head1 SYNOPSIS
 
-B<dh_installtexfonts> [S<I<debhelper options>>] [B<-n>] [B<--priority=>I<n>] [S<I<maptype=mapfile ...>>] [S<I<cfg-file[=I<n>] ...>>] 
+B<dh_installtexfonts> [S<I<debhelper options>>] [B<-n>] [B<--priority=>I<n>] 
+    [B<--flavor=>I<flavor>] [S<I<maptype=mapfile ...>>] [S<I<cfg-file[=I<n>] ...>>] 
 
 =head1 DESCRIPTION
 
@@ -96,6 +97,25 @@
 
 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<config_for_active_maps> or 
+B<config_for_all_maps>.
+B<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<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
@@ -110,13 +130,26 @@
 
 init();
 
+sub extract_map {
+	my ($line,$doconfig) = @_;
+	if ($doconfig == 0) { return ""; }
+	if ($_ =~ m/^[[:space:]]*([#[:space:]]*)[[:space:]]*(Mixed)?Map[[:space:]]*(.*\.map)[[:space:]]*(#.*)?$/) {
+		my $comment = $1;
+		my $map = $3;
+		if (($comment eq "") || ($doconfig == 2)) {
+			return $map;
+		}
+	}
+	return "";
+}
+
 sub magic_comment_present {
 	my ($fname) = @_;
 	my @args = ( "grep", "-q", "^# -_- DebPkgProvidedMaps -_-", $fname );
 	if (system(@args) == 0) { return 1; }
 	return 0;
 }
-		
+
 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
@@ -135,10 +168,21 @@
 	my @cmdlinecfgs;
 	my $pkgfileoncmdline = 0;
 	my @listlines;
+	my @mapfiles;
+	my $doconfig = 0;
 
 	if (defined($dh{PRIORITY}) && $dh{PRIORITY} ne '') {
 		$priority=$dh{PRIORITY};
 	}
+	if (defined($dh{FLAVOR})) {
+		if ($dh{FLAVOR} eq "config_for_active_maps") {
+			$doconfig = 1;
+		} elsif ($dh{FLAVOR} eq "config_for_all_maps") {
+			$doconfig = 2;
+		} else {
+			error("Specified flavor $dh{FLAVOR} not supported.\nPlease see man page for supported flavors!\n");
+		}
+	}
 	if ($file) {
 		open(FOO, "<$file") || error("$file cannot be opened.");
 		@pkgcfg = <FOO>;
@@ -148,6 +192,7 @@
 		foreach my $entry (@ARGV) {
 			if ($entry =~ m/^(Map|MixedMap)=(.*)$/) {
 				push @cmdlinemaps, "$1 $2";
+				if ($doconfig > 0) { push @mapfiles, $2; }
 			} elsif ($entry =~ m/^(.*\.cfg)(=([[:digit:]]+))?$/) {
 				my $fn=$1;
 				my $pr=$priority;
@@ -194,7 +239,11 @@
 			print CFGFILE $magicheader;
 		}
 		open(FOO,"<$fn") || error("Cannot open $fn for reading!");
-		while (<FOO>) { print CFGFILE $_; }
+		while (<FOO>) { 
+			my $m;
+			print CFGFILE $_; 
+			if ($m = extract_map($_, $doconfig)) { push @mapfiles, $m; }
+		}
 		close(FOO);
 		close(CFGFILE);
 		$bn =~ s/\.cfg$//;
@@ -216,7 +265,9 @@
 			print CFGFILE $magicheader;
 		}
 		foreach (@pkgcfg) {
+			my $m;
 			print CFGFILE "$_";
+			if ($m = extract_map($_, $doconfig)) { push @mapfiles, $m; }
 		}
 		foreach (@cmdlinemaps) {
 			print CFGFILE "$_\n";
@@ -236,6 +287,20 @@
 	}
 	close(LISTFILE);
 
+	if ($#mapfiles >= 0) {
+		doit("install","-d","$tmp/usr/share/texmf/dvips/config/");
+	}
+	foreach my $m (@mapfiles) {
+		my $f = $m;
+		$f =~ s/\.map$//;
+		-r "$tmp/usr/share/texmf/dvips/config/config.$f" &&
+			error("The dvips config file $tmp/usr/share/texmf/dvips/config/config.$f already exists!\nYou may have to call dh_clean -k!\n");
+		open(CNFFILE, ">$tmp/usr/share/texmf/dvips/config/config.$f") ||
+			error("Cannot open $tmp/usr/share/texmf/dvips/config/config.$f for writing!");
+		verbose_print("Writing $tmp/usr/share/texmf/dvips/config/config.$f");
+		print CNFFILE "Map +$m\n";
+		close(CNFFILE);
+	}
 	if (! $dh{NOSCRIPTS}) {
 		autoscript($package, "postinst", "postinst-texfonts", "");
 		autoscript($package, "postrm",   "postrm-texfonts",   "");




More information about the Pkg-tetex-commits mailing list