diff options
Diffstat (limited to 'Master/tlpkg/archive/applied.use-autopatterns-from-dedicated-tlpsrc-files.patch')
-rw-r--r-- | Master/tlpkg/archive/applied.use-autopatterns-from-dedicated-tlpsrc-files.patch | 396 |
1 files changed, 0 insertions, 396 deletions
diff --git a/Master/tlpkg/archive/applied.use-autopatterns-from-dedicated-tlpsrc-files.patch b/Master/tlpkg/archive/applied.use-autopatterns-from-dedicated-tlpsrc-files.patch deleted file mode 100644 index 3f9dad59c2f..00000000000 --- a/Master/tlpkg/archive/applied.use-autopatterns-from-dedicated-tlpsrc-files.patch +++ /dev/null @@ -1,396 +0,0 @@ - -This patch adds the ability to change the auto generated patterns by -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. - -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/TeXLive/TLPSRC.pm -=================================================================== ---- tlpkg/TeXLive/TLPSRC.pm (revision 11079) -+++ tlpkg/TeXLive/TLPSRC.pm (working copy) -@@ -201,7 +201,11 @@ - # - sub make_tlpobj - { -- my ($self,$tltree) = @_; -+ my ($self,$tltree,$defaultpatterns) = @_; -+ my %patterns; -+ if (defined($defaultpatterns)) { -+ %patterns = %{$defaultpatterns}; -+ } - my $tlp = TeXLive::TLPOBJ->new; - $tlp->name($self->name); - $tlp->category($self->category); -@@ -212,124 +216,67 @@ - $tlp->depends(@{$self->{'depends'}}) if (defined($self->{'depends'})); - $tlp->revision(0); - my $filemax; -- my $usedefault = 1; -+ my $usedefault; - my @allpospats; - my @allnegpats; -+ my $pkgname = $self->name; - # -- # runpatterns -+ # src/run/doc patterns - # -- foreach my $p (@{$self->{'runpatterns'}}) { -- if ($p =~ m/^\+!(.*)$/) { -- push @allnegpats, $1; -- } elsif ($p =~ m/^\+(.*)$/) { -- push @allpospats, $1; -- } elsif ($p =~ m/^!(.*)$/) { -- push @allnegpats, $1; -- $usedefault = 0; -- } else { -- push @allpospats, $p; -- $usedefault = 0; -+ # WARNING WARNING WARNING -+ # the "bin" must be last since we drop through for further dealing -+ # with specialities of the bin patterns!!!! -+ for my $pattype (qw/src run doc bin/) { -+ @allpospats = (); -+ @allnegpats = (); -+ $usedefault = 1; -+ foreach my $p (@{$self->{${pattype} . 'patterns'}}) { -+ if ($p =~ m/^\+!(.*)$/) { -+ push @allnegpats, $1; -+ } elsif ($p =~ m/^\+(.*)$/) { -+ push @allpospats, $1; -+ } elsif ($p =~ m/^!(.*)$/) { -+ push @allnegpats, $1; -+ $usedefault = 0; -+ } else { -+ push @allpospats, $p; -+ $usedefault = 0; -+ } - } -- } -- if ($usedefault) { -- if ($self->category eq "Package") { -- foreach my $md (qw/bibtex context dvips fonts makeindex metafont -- metapost mft omega scripts tex vtex/) { -- # mark the default pattern with a leading * so that -- # we do not warn a missing hit on a default pattern -- push @allpospats, "*t texmf-dist $md $self->{'name'}"; -+ if ($usedefault && defined($patterns{$pattype})) { -+ for my $p (@{$patterns{$pattype}}) { -+ # replace the string %NAME% with the actual package name -+ # we have to make a copy of $p otherwise we change it in the -+ # hash once and for all -+ (my $pp = $p) =~ s/%NAME%/$pkgname/g; -+ # sort through the patterns, and make sure that * are added to -+ # tag the default patterns -+ if ($pp =~ m/^!(.*)$/) { -+ push @allnegpats, "*$1"; -+ } else { -+ push @allpospats, "*$pp"; -+ } - } - } -- } -- foreach my $p (@allpospats) { -- $self->_do_normal_pattern($p,$tlp,$tltree,'run'); -- } -- foreach my $p (@allnegpats) { -- $self->_do_normal_pattern($p,$tlp,$tltree,'run',1); -- } -- # -- # srcpatterns -- # -- @allpospats = (); -- @allnegpats = (); -- $usedefault = 1; -- foreach my $p (@{$self->{'srcpatterns'}}) { -- if ($p =~ m/^\+!(.*)$/) { -- push @allnegpats, $1; -- } elsif ($p =~ m/^\+(.*)$/) { -- push @allpospats, $1; -- } elsif ($p =~ m/^!(.*)$/) { -- push @allnegpats, $1; -- $usedefault = 0; -- } else { -- push @allpospats, $p; -- $usedefault = 0; -+ # at this point we do NOT do the actual pattern matching for -+ # bin patterns, since we have some specialities to do -+ last if ($pattype eq "bin"); -+ # for all other patterns we create the list and add the files -+ foreach my $p (@allpospats) { -+ ddebug("pos pattern $p\n"); -+ $self->_do_normal_pattern($p,$tlp,$tltree,$pattype); - } -- } -- if ($usedefault) { -- # default patterns for srcfiles -- if ($self->category eq "Package") { -- push @allpospats, "*t texmf-dist source $self->{'name'}"; -- } elsif ($self->category eq "Documentation") { -- push @allpospats, "*t texmf-doc source $self->{'name'}"; -+ foreach my $p (@allnegpats) { -+ ddebug("neg pattern $p\n"); -+ $self->_do_normal_pattern($p,$tlp,$tltree,$pattype,1); - } - } -- foreach my $p (@allpospats) { -- $self->_do_normal_pattern($p,$tlp,$tltree,'src'); -- } -- foreach my $p (@allnegpats) { -- $self->_do_normal_pattern($p,$tlp,$tltree,'src',1); -- } - # -- # docpatterns -- # -- @allpospats = (); -- @allnegpats = (); -- $usedefault = 1; -- foreach my $p (@{$self->{'docpatterns'}}) { -- if ($p =~ m/^\+!(.*)$/) { -- push @allnegpats, $1; -- } elsif ($p =~ m/^\+(.*)$/) { -- push @allpospats, $1; -- } elsif ($p =~ m/^!(.*)$/) { -- push @allnegpats, $1; -- $usedefault = 0; -- } else { -- push @allpospats, $p; -- $usedefault = 0; -- } -- } -- if ($usedefault) { -- # default patterns for docfiles -- if ($self->category eq "Package") { -- push @allpospats, "*t texmf-dist doc $self->{'name'}"; -- } elsif ($self->category eq "Documentation") { -- push @allpospats, "*t texmf-doc doc $self->{'name'}"; -- } -- } -- foreach my $p (@allpospats) { -- $self->_do_normal_pattern($p,$tlp,$tltree,'doc'); -- } -- foreach my $p (@allnegpats) { -- $self->_do_normal_pattern($p,$tlp,$tltree,'doc',1); -- } -- # - # binpatterns - # -- # no default patterns for binfiles -- @allpospats = (); -- @allnegpats = (); -- foreach my $p (@{$self->{'binpatterns'}}) { -- if ($p =~ m/^\+!(.*)$/) { -- push @allnegpats, $1; -- } elsif ($p =~ m/^\+(.*)$/) { -- push @allpospats, $1; -- } elsif ($p =~ m/^!(.*)$/) { -- push @allnegpats, $1; -- } else { -- push @allpospats, $p; -- } -- } -+ # mind that @allpospats and @allnegpats have already been set up -+ # in the above loop. We only have to deal with the specialities of -+ # the bin patterns - foreach my $p (@allpospats) { - my @todoarchs = $tltree->architectures; - my $finalp = $p; -@@ -472,17 +419,29 @@ - sub srcpatterns { - my $self = shift; - if (@_) { @{ $self->{'srcpatterns'} } = @_ } -- return @{ $self->{'srcpatterns'} }; -+ if (defined($self->{'srcpatterns'})) { -+ return @{ $self->{'srcpatterns'} }; -+ } else { -+ return; -+ } - } - sub docpatterns { - my $self = shift; - if (@_) { @{ $self->{'docpatterns'} } = @_ } -- return @{ $self->{'docpatterns'} }; -+ if (defined($self->{'docpatterns'})) { -+ return @{ $self->{'docpatterns'} }; -+ } else { -+ return; -+ } - } - sub binpatterns { - my $self = shift; - if (@_) { @{ $self->{'binpatterns'} } = @_ } -- return @{ $self->{'binpatterns'} }; -+ if (defined($self->{'binpatterns'})) { -+ return @{ $self->{'binpatterns'} }; -+ } else { -+ return; -+ } - } - sub depends { - my $self = shift; -@@ -492,7 +451,11 @@ - sub runpatterns { - my $self = shift; - if (@_) { @{ $self->{'runpatterns'} } = @_ } -- return @{ $self->{'runpatterns'} }; -+ if (defined($self->{'runpatterns'})) { -+ return @{ $self->{'runpatterns'} }; -+ } else { -+ return; -+ } - } - sub executes { - my $self = shift; -@@ -746,7 +709,9 @@ - - If a given pattern section is empty or B<all> the provided patterns have - the prefix C<+> (e.g., C<+f ...>), then the following patterns, listed --by type are I<automatically> added at expansion time: -+by type are I<automatically> added at expansion time. Note that this list -+is not definitive, but is taken from the patterns of tlpsrc files -+named C<00texlive.autopatterns.>I<Category>C<.tlpsrc>. - - =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" |