summaryrefslogtreecommitdiff
path: root/Master/tlpkg
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg')
-rw-r--r--Master/tlpkg/etc/ready.use-autopatterns-from-dedicated-tlpsrc-files.patch248
1 files changed, 141 insertions, 107 deletions
diff --git a/Master/tlpkg/etc/ready.use-autopatterns-from-dedicated-tlpsrc-files.patch b/Master/tlpkg/etc/ready.use-autopatterns-from-dedicated-tlpsrc-files.patch
index f29aa49b158..3f9dad59c2f 100644
--- a/Master/tlpkg/etc/ready.use-autopatterns-from-dedicated-tlpsrc-files.patch
+++ b/Master/tlpkg/etc/ready.use-autopatterns-from-dedicated-tlpsrc-files.patch
@@ -1,121 +1,23 @@
This patch adds the ability to change the auto generated patterns by
-adding tlpsrc files named
- 00texlive.autopatterns.<CATEGORY>.tlpsrc
-and within these files the relevant src/bin/doc/run patterns.
+adding one tlpsrc file named
+ 00texlive.autopatterns.tlpsrc
+and within these files the relevant src/bin/doc/run patterns, but the FIRST
+word in the pattern is the category to which the pattern applies.
-This patch adds in addition the tlpsrc autopattern files
- 00texlive.autopatterns.Package.tlpsrc
- 00texlive.autopatterns.Documentation.tlpsrc
+The included 00texlive.autopatterns.tlpsrc adds the necessary patterns
to get the exact same behaviour as before.
+tlpsrc2tlpdb also gets a command line --no-autopatterns if you want
+to disable loading of auto patterns.
+
Warning: This change will make the description for maintaining separate
repositories a bit outdated, since now also these autopattern files
have to be added, or patterns themselves have to be specified.
-
-Index: tlpkg/bin/tlpsrc2tlpdb
-===================================================================
---- tlpkg/bin/tlpsrc2tlpdb (revision 11059)
-+++ tlpkg/bin/tlpsrc2tlpdb (working copy)
-@@ -63,9 +63,43 @@
- $tlc = TeXLive::TeXCatalogue->new ("location" => $opt_catalogue);
- }
-
-+ # get the default patterns
-+ my $tlpsrc_dir = "$opt_master/tlpkg/tlpsrc";
-+ chdir ($tlpsrc_dir) || die "chdir($tlpsrc_dir) failed: $!";
-+ my @autopatternfiles = glob ("00texlive.autopatterns.*.tlpsrc");
-+ my %autopatterns;
-+ for my $ap (@autopatternfiles) {
-+ (my $cat = $ap) =~ s/^00texlive\.autopatterns\.(.*)\.tlpsrc$/$1/;
-+ my $tlsrc = new TeXLive::TLPSRC;
-+ $tlsrc->from_file ($ap);
-+ push @{$autopatterns{$cat}{"bin"}}, $tlsrc->binpatterns
-+ if $tlsrc->binpatterns;
-+ push @{$autopatterns{$cat}{"src"}}, $tlsrc->srcpatterns
-+ if $tlsrc->srcpatterns;
-+ push @{$autopatterns{$cat}{"doc"}}, $tlsrc->docpatterns
-+ if $tlsrc->docpatterns;
-+ push @{$autopatterns{$cat}{"run"}}, $tlsrc->runpatterns
-+ if $tlsrc->runpatterns;
-+ }
-+
-+ for my $cat (keys %autopatterns) {
-+ debug ("Category $cat\n");
-+ for my $d (@{$autopatterns{$cat}{"bin"}}) {
-+ debug ("Found auto bin pattern $d\n");
-+ }
-+ for my $d (@{$autopatterns{$cat}{"src"}}) {
-+ debug ("Found auto src pattern $d\n");
-+ }
-+ for my $d (@{$autopatterns{$cat}{"doc"}}) {
-+ debug ("Found auto doc pattern $d\n");
-+ }
-+ for my $d (@{$autopatterns{$cat}{"run"}}) {
-+ debug ("Found auto run pattern $d\n");
-+ }
-+ }
-+
- # if we're regenerating the whole thing, get all our tlpsrc files.
- if ($opt_all) {
-- my $tlpsrc_dir = "$opt_master/tlpkg/tlpsrc";
- chdir ($tlpsrc_dir) || die "chdir($tlpsrc_dir) failed: $!";
- @ARGV = glob ("*.tlpsrc");
- }
-@@ -82,11 +116,16 @@
- my $tldb = TeXLive::TLPDB->new;
- my $src_count = 0;
- foreach my $f (@ARGV) {
-+ next if ($f =~ m/^00texlive\.autopatterns/);
- $src_count++ if $opt_all;
-
- my $tlsrc = new TeXLive::TLPSRC;
- $tlsrc->from_file ($f);
-- my $tlp = $tlsrc->make_tlpobj ($tltree);
-+ my $patternref;
-+ if (defined($autopatterns{$tlsrc->category})) {
-+ $patternref = $autopatterns{$tlsrc->category};
-+ }
-+ my $tlp = $tlsrc->make_tlpobj ($tltree, $autopatterns{$tlsrc->category});
-
- (my $base_f = $f) =~ s/\.tlpsrc$//;
- warn "$f: package name " . $tlp->name . " does not match filename\n"
-Index: tlpkg/tlpsrc/00texlive.autopatterns.Package.tlpsrc
-===================================================================
---- tlpkg/tlpsrc/00texlive.autopatterns.Package.tlpsrc (revision 0)
-+++ tlpkg/tlpsrc/00texlive.autopatterns.Package.tlpsrc (revision 0)
-@@ -0,0 +1,17 @@
-+name 00texlive.autopatterns.package
-+category Package
-+shortdesc Defines the automatically generated patterns for category Package
-+runpattern t texmf-dist bibtex %NAME%
-+runpattern t texmf-dist context %NAME%
-+runpattern t texmf-dist dvips %NAME%
-+runpattern t texmf-dist fonts %NAME%
-+runpattern t texmf-dist makeindex %NAME%
-+runpattern t texmf-dist metafont %NAME%
-+runpattern t texmf-dist metapost %NAME%
-+runpattern t texmf-dist mft %NAME%
-+runpattern t texmf-dist omega %NAME%
-+runpattern t texmf-dist scripts %NAME%
-+runpattern t texmf-dist tex %NAME%
-+runpattern t texmf-dist vtex %NAME%
-+srcpattern t texmf-dist source %NAME%
-+docpattern t texmf-dist doc %NAME%
-Index: tlpkg/tlpsrc/00texlive.autopatterns.Documentation.tlpsrc
-===================================================================
---- tlpkg/tlpsrc/00texlive.autopatterns.Documentation.tlpsrc (revision 0)
-+++ tlpkg/tlpsrc/00texlive.autopatterns.Documentation.tlpsrc (revision 0)
-@@ -0,0 +1,5 @@
-+name 00texlive.autopatterns.documentation
-+category Documentation
-+shortdesc Defines the automatically generated patterns for category Documentation
-+srcpattern t texmf-doc source %NAME%
-+docpattern t texmf-doc doc %NAME%
Index: tlpkg/TeXLive/TLPSRC.pm
===================================================================
---- tlpkg/TeXLive/TLPSRC.pm (revision 11059)
+--- tlpkg/TeXLive/TLPSRC.pm (revision 11079)
+++ tlpkg/TeXLive/TLPSRC.pm (working copy)
@@ -201,7 +201,11 @@
#
@@ -360,3 +262,135 @@ Index: tlpkg/TeXLive/TLPSRC.pm
=over 4
+Index: tlpkg/tlpsrc/00texlive.autopatterns.tlpsrc
+===================================================================
+--- tlpkg/tlpsrc/00texlive.autopatterns.tlpsrc (revision 0)
++++ tlpkg/tlpsrc/00texlive.autopatterns.tlpsrc (revision 0)
+@@ -0,0 +1,21 @@
++name 00texlive.autopatterns
++category TLCore
++shortdesc Defines the automatically generated patterns
++# auto patterns for category Package
++runpattern Package t texmf-dist bibtex %NAME%
++runpattern Package t texmf-dist context %NAME%
++runpattern Package t texmf-dist dvips %NAME%
++runpattern Package t texmf-dist fonts %NAME%
++runpattern Package t texmf-dist makeindex %NAME%
++runpattern Package t texmf-dist metafont %NAME%
++runpattern Package t texmf-dist metapost %NAME%
++runpattern Package t texmf-dist mft %NAME%
++runpattern Package t texmf-dist omega %NAME%
++runpattern Package t texmf-dist scripts %NAME%
++runpattern Package t texmf-dist tex %NAME%
++runpattern Package t texmf-dist vtex %NAME%
++srcpattern Package t texmf-dist source %NAME%
++docpattern Package t texmf-dist doc %NAME%
++# auto patterns for category Documentation
++srcpattern Documentation t texmf-doc source %NAME%
++docpattern Documentation t texmf-doc doc %NAME%
+Index: tlpkg/bin/tlpsrc2tlpdb
+===================================================================
+--- tlpkg/bin/tlpsrc2tlpdb (revision 11079)
++++ tlpkg/bin/tlpsrc2tlpdb (working copy)
+@@ -31,6 +31,7 @@
+ my $opt_nobinsplit = 0;
+ my $opt_winwarning;
+ my $opt_fromfiles = 0;
++my $opt_noautopatterns = 0;
+
+ TeXLive::TLUtils::process_logging_options();
+ GetOptions(
+@@ -38,6 +39,7 @@
+ "master=s" => \$opt_master, # location of the TL tree
+ "catalogue=s" => \$opt_catalogue, # location of the TeX Catalogue
+ "no-bin-split!" => \$opt_nobinsplit,
++ "no-autopatterns" => \$opt_noautopatterns,
+ "from-files" => \$opt_fromfiles,
+ "with-win-pattern-warning" => \$opt_winwarning,
+ "help|?" => \$help) or pod2usage(1);
+@@ -63,9 +65,66 @@
+ $tlc = TeXLive::TeXCatalogue->new ("location" => $opt_catalogue);
+ }
+
++ my $tlpsrc_dir = "$opt_master/tlpkg/tlpsrc";
++
++ # get the default patterns
++ my %autopatterns;
++ if (! $opt_noautopatterns) {
++ my $apfile = "$tlpsrc_dir/00texlive.autopatterns.tlpsrc";
++ if (! -r $apfile) {
++ if (! $opt_noautopatterns) {
++ tlwarn ("No autopatterns tlpsrc 00texlive.autopatterns.tlpsrc found.\n");
++ tlwarn ("Stopping here. If you want to continue either add the above file\n");
++ tlwarn ("or call tlpsrc with --no-autopatterns.\n");
++ exit 1;
++ }
++ }
++ my $tlsrc = new TeXLive::TLPSRC;
++ $tlsrc->from_file ( $apfile );
++ if ($tlsrc->binpatterns) {
++ for my $p ($tlsrc->binpatterns) {
++ my ($cat, @rest) = split ' ', $p;
++ push @{$autopatterns{$cat}{"bin"}}, join(' ', @rest);
++ }
++ }
++ if ($tlsrc->srcpatterns) {
++ for my $p ($tlsrc->srcpatterns) {
++ my ($cat, @rest) = split ' ', $p;
++ push @{$autopatterns{$cat}{"src"}}, join(' ', @rest);
++ }
++ }
++ if ($tlsrc->docpatterns) {
++ for my $p ($tlsrc->docpatterns) {
++ my ($cat, @rest) = split ' ', $p;
++ push @{$autopatterns{$cat}{"doc"}}, join(' ', @rest);
++ }
++ }
++ if ($tlsrc->runpatterns) {
++ for my $p ($tlsrc->runpatterns) {
++ my ($cat, @rest) = split ' ', $p;
++ push @{$autopatterns{$cat}{"run"}}, join(' ', @rest);
++ }
++ }
++
++ for my $cat (keys %autopatterns) {
++ debug ("Category $cat\n");
++ for my $d (@{$autopatterns{$cat}{"bin"}}) {
++ debug ("Found auto bin pattern $d\n");
++ }
++ for my $d (@{$autopatterns{$cat}{"src"}}) {
++ debug ("Found auto src pattern $d\n");
++ }
++ for my $d (@{$autopatterns{$cat}{"doc"}}) {
++ debug ("Found auto doc pattern $d\n");
++ }
++ for my $d (@{$autopatterns{$cat}{"run"}}) {
++ debug ("Found auto run pattern $d\n");
++ }
++ }
++ } # end of if (! $opt_noautopatterns)
++
+ # if we're regenerating the whole thing, get all our tlpsrc files.
+ if ($opt_all) {
+- my $tlpsrc_dir = "$opt_master/tlpkg/tlpsrc";
+ chdir ($tlpsrc_dir) || die "chdir($tlpsrc_dir) failed: $!";
+ @ARGV = glob ("*.tlpsrc");
+ }
+@@ -82,11 +141,16 @@
+ my $tldb = TeXLive::TLPDB->new;
+ my $src_count = 0;
+ foreach my $f (@ARGV) {
++ next if ($f =~ m/^00texlive\.autopatterns/);
+ $src_count++ if $opt_all;
+
+ my $tlsrc = new TeXLive::TLPSRC;
+ $tlsrc->from_file ($f);
+- my $tlp = $tlsrc->make_tlpobj ($tltree);
++ my $patternref;
++ if (defined($autopatterns{$tlsrc->category})) {
++ $patternref = $autopatterns{$tlsrc->category};
++ }
++ my $tlp = $tlsrc->make_tlpobj ($tltree, $autopatterns{$tlsrc->category});
+
+ (my $base_f = $f) =~ s/\.tlpsrc$//;
+ warn "$f: package name " . $tlp->name . " does not match filename\n"