diff options
Diffstat (limited to 'Master/tlpkg/bin/tlpsrc2tlpdb')
-rwxr-xr-x | Master/tlpkg/bin/tlpsrc2tlpdb | 226 |
1 files changed, 0 insertions, 226 deletions
diff --git a/Master/tlpkg/bin/tlpsrc2tlpdb b/Master/tlpkg/bin/tlpsrc2tlpdb deleted file mode 100755 index ba4d0af0a19..00000000000 --- a/Master/tlpkg/bin/tlpsrc2tlpdb +++ /dev/null @@ -1,226 +0,0 @@ -#!/usr/bin/env perl -# $Id$ -# convert a set of tlpsrc files (given as arguments) into tlpdb -# -# Copyright 2007, 2008, 2009 Norbert Preining -# This file is licensed under the GNU General Public License version 2 -# or any later version. - -BEGIN { - $^W = 1; - chomp ($mydir = `dirname $0`); - unshift (@INC, "$mydir/.."); -} - -use strict; - -use TeXLive::TLConfig; -use TeXLive::TLPSRC; -use TeXLive::TLPOBJ; -use TeXLive::TLPDB; -use TeXLive::TLTREE; -use TeXLive::TLUtils; -use Getopt::Long; -use Pod::Usage; -use File::Path; - -my $opt_all = 0; -my $opt_catalogue = ""; -chomp (my $opt_master = `cd $::mydir/../.. && pwd`); -my $help = 0; -my $opt_nobinsplit = 0; -my $opt_winwarning; -my $opt_fromfiles = 0; -my $opt_noautopatterns = 0; - -TeXLive::TLUtils::process_logging_options(); -GetOptions( - "all!" => \$opt_all, - "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); -pod2usage(-exitstatus => 0, -verbose => 2) if $help; - -exit (&main ()); - - -sub main -{ - if (! -d $opt_master) { - die "$0: Master $opt_master not a directory, goodbye.\n"; - } - if (defined($opt_winwarning)) { - $::tlpsrc_pattern_warn_win = 1; - } - my $tlc = undef; - if (! -d $opt_catalogue) { - info ("$0: -c /Cat/a/logue not given, continuing without it.\n"); - } else { - require TeXLive::TeXCatalogue; # not at compile time, for now anyway. - info ("$0: reading TeX Catalogue $opt_catalogue ...\n"); - $tlc = TeXLive::TeXCatalogue->new ("location" => $opt_catalogue); - } - - my $tlpsrc_dir = "$opt_master/tlpkg/tlpsrc"; - # if we're regenerating the whole thing, get all our tlpsrc files. - if ($opt_all) { - chdir ($tlpsrc_dir) || die "chdir($tlpsrc_dir) failed: $!"; - @ARGV = glob ("*.tlpsrc"); - } - - info ("$0: reading Master $opt_master ...\n"); - my $tltree = TeXLive::TLTREE->new ("svnroot" => $opt_master); - if ($opt_fromfiles) { - $tltree->init_from_files; - } else { - $tltree->init_from_svn; - } - - info ("$0: updating from tlpsrc ...\n"); - 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, $opt_master); - - (my $base_f = $f) =~ s/\.tlpsrc$//; - warn "$f: package name " . $tlp->name . " does not match filename\n" - if $tlp->name ne $base_f; - - if ($tlc) { - # merge TeX Catalogue information - $tlp->update_from_catalogue ($tlc); - } - - # split bin packages off unless requested otherwise (no reason to so - # request these days). - unless ($opt_nobinsplit) { - # packages which have already a .win32 extension or the - # 00texlive.something package are NOT split, never! - if ($tlp->name !~ m/\.win32/ - && $tlp->name !~ m/^00texlive/) { - my @binobjs = $tlp->split_bin_package; - foreach my $binobj (@binobjs) { - # we recompute the revision numbers of the binary packages - # since that might be much smaller, and we don't want to - # update every package only because one binary for one arch - # was changed - $binobj->recompute_revision ($tltree, $tltree->file_svn_lastrevision("tlpkg/tlpsrc/$f")); - $tldb->add_tlpobj ($binobj); - } - # we have to recompute the revision of the package itself - # since the binfiles have been removed and that might lower the - # revision number - $tlp->recompute_revision ($tltree, $tltree->file_svn_lastrevision("tlpkg/tlpsrc/$f")); - } - } - if ($tlp->name eq "00texlive.config") { - my @bar = $tlp->depends; - for my $k (keys %TeXLive::TLConfig::TLPDBConfigs) { - push @bar, "$k/" . $TeXLive::TLConfig::TLPDBConfigs{$k}; - } - push @bar, "revision/".$tltree->revision; - $tlp->depends (@bar); - } - $tldb->add_tlpobj ($tlp); - } - - # write the new db, to the real location given --all, or stdout. - if ($opt_all) { - $tldb->root ($opt_master); - - # do set the option_archs from the dirs in Master/bin - my @archs = $tltree->architectures; - $tldb->setting("available_architectures", @archs); - - # add default options - $tldb->add_default_options(); - $tldb->save; - info ("$0: wrote $src_count packages to ". $tldb->root . ".\n"); - } else { - $tldb->writeout; - } - &debug ("$0: done.\n"); - - return 0; -} - -__END__ - -=head1 NAME - -tlpsrc2tlpdb - generate a TeX Live database from tlpsrc files - -=head1 SYNOPSIS - -tlpsrc2tlpdb [OPTION]... [TLPSRC]... - -=head1 OPTIONS - -=over 4 - -=item B<-all> -Use all .tlpsrc files in C<Master/tlpkg/tlpsrc/*.tlpsrc>, and update the -live database in C<Master/tlpkg/texlive.tlpdb>. -(No repository operations are done.) - -=item B<-catalogue> I<Catalogue_dir> -The location given by B<-catalogue> must point to a valid TeX Catalogue. -No default value. If given, the generated tlpobj files will contain -information gathered from the TeX Catalogue. - -=item B<-master> I<Master/dir> -The location I<Master/dir> must point to a valid svn repository of TeX -Live's Master directory. Defaults to C<../..> of C<$0>. - -=item B<-no-bin-split> -Do NOT split files with binaries into several packages (one for the arch -independent and one for each of the architectures with only the respective -binaries). There is no reason to use this option. - -=item B<-with-win-pattern-warning> -Normally, this program issues a warning for all patterns without a matching -file, but does I<not> warn for binpatterns when working on the win32 -architecture. Giving this option makes it issues all warnings, i.e., also -those where a binpattern on win32 does not hit. - -=item B<-from-files> -Use find instead of svn -status to create the list of files. - -=back - -The standard options B<-q>, B<-v>, and B<-logfile>=I<file> are also -accepted; see the C<process_logging_options> function in -L<TeXLive::TLUtils> for details. - -=head1 DESCRIPTION - -B<tlpsrc2tlpdb> converts TeX Live source package files (tlpsrc) files into a -TeX Live package database (tlpdb). - -If a TeX Catalogue hierarchy is specified, additional information from -the catalogue are merged into the database (see L<TeXLive::TLPOBJ> for -the list of included information from the TeX Catalogue). - -=head1 AUTHORS AND COPYRIGHT - -This script and its documentation were written for the TeX Live -distribution (L<http://tug.org/texlive>) and both are licensed under the -GNU General Public License Version 2 or later. - -=cut - -### Local Variables: -### perl-indent-level: 2 -### tab-width: 2 -### indent-tabs-mode: nil -### End: -# vim:set tabstop=2 expandtab: # |