summaryrefslogtreecommitdiff
path: root/Master/tlpkg/bin/tlpsrc2tlpdb
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/bin/tlpsrc2tlpdb')
-rwxr-xr-xMaster/tlpkg/bin/tlpsrc2tlpdb226
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: #