[subversion-commit] SVN tetex commit + diffs: r254 - tex-common/trunk/scripts

Norbert Preining preining-guest at costa.debian.org
Mon Oct 17 11:28:30 UTC 2005


Author: preining-guest
Date: 2005-10-17 11:28:30 +0000 (Mon, 17 Oct 2005)
New Revision: 254

Modified:
   tex-common/trunk/scripts/dh_installtexfonts
Log:
merge maps and debian/package.maps, error on multiple conflicting cfg files


Modified: tex-common/trunk/scripts/dh_installtexfonts
===================================================================
--- tex-common/trunk/scripts/dh_installtexfonts	2005-10-17 11:03:30 UTC (rev 253)
+++ tex-common/trunk/scripts/dh_installtexfonts	2005-10-17 11:28:30 UTC (rev 254)
@@ -39,15 +39,16 @@
 if you use -p, -i, or -a flags, it will be the first package specified
 by those flags.
 
-If you mix these variants and the same file 10package.cfg would be created
-several times (by variant 1) if you provide a cfg file with the same name, 
-by 2) and by 3) if debian/package.maps is present), they will get renamed
-to 10package1.cfg and 10package2.cfg.
+The command line maps (Variant 2) are merged into the debian/package.maps 
+file and the merged file is installed as 10package.cfg. If you specify 
+an additional package.cfg (Variant 1) on the cmd line, this will raise
+an error since both files would be installed as 10package.cfg. You can
+only specify package.cfg on the cmd line if no debian/package.maps nor any
+cmd line Map files are present.
 
-The files as installed in variant 1) or 3) will get an additional header
-containing a explanation text and the magic header for correct updmap
-function. Please see the TeX Policy for more information on this
-magic header.
+If the cfg files created do not contain the magic comment, an additional
+header is added with explanation, warning and the magic comment.
+Please see the TeX Policy for more information on this magic comment.
 
 This program automatically generates the postinst and postrm commands needed
 to register TeX fonts.  See L<dh_installdeb(1)> for an explanation of how this
@@ -93,8 +94,7 @@
 	my @pkgcfg;
 	my @cmdlinemaps;
 	my @cmdlinecfgs;
-	my $pkgfilepresent = 0;
-	my $pkgfileext = 0;
+	my $pkgfileoncmdline = 0;
 	my @listlines;
 
 	if (defined($dh{PRIORITY}) && $dh{PRIORITY} ne '') {
@@ -104,7 +104,6 @@
 		open(FOO, "<$file") || error("$file cannot be opened.");
 		@pkgcfg = <FOO>;
 		close(FOO);
-		$pkgfilepresent = 1;
 	}
 	if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
 		foreach my $entry (@ARGV) {
@@ -113,7 +112,7 @@
 			} elsif ($entry =~ m/\.cfg$/) {
 				my $bn=basename($entry);
 				if ($entry eq "$package.cfg") {
-					$pkgfileext++;
+					$pkgfileoncmdline = 1;
 				}
 				push @cmdlinecfgs, $entry;
 			} else {
@@ -122,11 +121,15 @@
 		}
 	}
 
-	if (!$pkgfilepresent && ($#cmdlinemaps < 0) && ($#cmdlinecfgs < 0)) {
+	if (!$file && ($#cmdlinemaps < 0) && ($#cmdlinecfgs < 0)) {
 		# we have nothing to do here, skip to the next one!
 		next;
 	}
 
+	if ($pkgfileoncmdline && ($file || ($#cmdlinemaps >= 0))) {
+		error("This call would create multiple copies of $priority$package.cfg.\nPlease read the man page on how this should be fixed!\n");
+	}
+
         if ( ! -d "$tmp/etc/texmf/updmap.d/") {
             doit("install","-d","$tmp/etc/texmf/updmap.d/");
         }
@@ -150,38 +153,25 @@
 	}
 	#
 	# now debian/package.maps and/or debian/maps
+	# merge in the cmd line arguments
 	#
-	if ($pkgfilepresent) {
-		my $p = $priority + $pkgfileext;
-		$pkgfileext++;
-		open(CFGFILE, ">$tmp/etc/texmf/updmap.d/$p$package.cfg") || 
-			error("Cannot open $tmp/etc/texmf/updmap.d/$p$package.cfg for writing!");
-		if (!magic_comment_present($file)) {
-			print CFGFILE "# $p$package.cfg\n";
+	if ($file || ($#cmdlinemaps >= 0)) {
+		open(CFGFILE, ">$tmp/etc/texmf/updmap.d/$priority$package.cfg") || 
+			error("Cannot open $tmp/etc/texmf/updmap.d/$priority$package.cfg for writing!");
+		if (($file && !magic_comment_present($file)) ||
+		    (!$file && ($#cmdlinemaps >= 0))) {
+			print CFGFILE "# $priority$package.cfg\n";
 			print CFGFILE $magicheader;
 		}
 		foreach (@pkgcfg) {
 			print CFGFILE "$_";
 		}
-		close(CFGFILE);
-		push @listlines, "$p$package";
-	}
-	#
-	# finally do the cmdline maps
-	#
-	if ($#cmdlinemaps >= 0) {
-		my $p = $priority + $pkgfileext;
-		open(CFGFILE, ">$tmp/etc/texmf/updmap.d/$p$package.cfg") || 
-			error("Cannot open $tmp/etc/texmf/updmap.d/$p$package.cfg for writing!");
-		print CFGFILE "# $p$package.cfg\n";
-		print CFGFILE $magicheader;
 		foreach (@cmdlinemaps) {
 			print CFGFILE "$_\n";
 		}
 		close(CFGFILE);
-		push @listlines, "$p$package";
+		push @listlines, "$priority$package";
 	}
-
 	
         if ( ! -d "$tmp/var/lib/tex-common/fontmap-cfg/") {
             doit("install","-d","$tmp/var/lib/tex-common/fontmap-cfg/");




More information about the Pkg-tetex-commits mailing list