# $Id$
# TeXLive::TLConfig.pm - module exporting configuration stuff
# Copyright 2007, 2008 Norbert Preining
# This file is licensed under the GNU General Public License version 2
# or any later version.

package TeXLive::TLConfig;

BEGIN {
  use Exporter ();
  use vars qw( @ISA @EXPORT_OK @EXPORT );
  @ISA = qw(Exporter);
  @EXPORT_OK = qw(
    @MetaCategories
    @NormalCategories
    @Categories
    $MetaCategoriesRegexp
    $CategoriesRegexp
    $DefaultCategory
    $DefaultContainerExtension
    $InfraLocation
    $DatabaseName
    $BlockSize
    $NetArchive
    $DiskArchive
    $TeXLiveURL
    $TeXLiveAlternativeURL
    $WinSpecialUpdatePackagesRegexp
  );
  @EXPORT = @EXPORT_OK;
}

# Meta Categories do not ship files, but call only for other packages
our @MetaCategories = qw/Collection Scheme/;
our $MetaCategoriesRegexp = '(Collection|Scheme)';
# Normal Categories contain actial files and do not depend on other things.
our @NormalCategories = qw/Package TLCore Documentation/;

# list of all Categories
our @Categories = (@MetaCategories, @NormalCategories);

our $CategoriesRegexp = '(Collection|Scheme|Package|TLCore|Documentation)';

our $DefaultCategory = "Package";

# location of various infra files (texlive.tlpdb, .tlpobj etc)
# relative to a root (e.g., the Master/, or the installation path)
our $InfraLocation = "tlpkg";
our $DatabaseName = "texlive.tlpdb";

our $BlockSize = 4096;

# the way we package things on the web
our $DefaultContainerExtension = "tar.lzma";

our $NetArchive = "tlpkg";
our $DiskArchive = "archive";
#our $TeXLiveURL = 'ftp://tug.org/texlive/tlnet/tldev';
our $TeXLiveURL = 'http://mirror.ctan.org/systems/texlive/tlnet/tldev';
our $TeXLiveAlternativeURL;
#our $TeXLiveAlternativeURL = 'http://www.ctan.org/systems/texlive/tlnet/2008';


our $WinSpecialUpdatePackagesRegexp = 
  '^(texlive\.infra|luatex|bin-tlperl\.win32$|texlive\.infra|bin-texlive)';

  
1;


=head1 NAME

C<TeXLive::TLConfig> -- TeX Live Configurations

=head1 SYNOPSIS

  use TeXLive::TLConfig;

=head1 DESCRIPTION

The L<TeXLive::TLConfig> module contains definitions of variables 
configuring all of TeX Live.

=over 6

=head1 EXPORTED VARIABLES

All of the following variables can be pulled into the callers namespace
(i.e., are declared EXPORT_OK).

=item C<@TeXLive::TLConfig::MetaCategories>

The list of meta categories, i.e., those categories whose packages only
depend on other packages, but don't ship any files. Currently 
C<Collection> and <Scheme>.

=item C<@TeXLive::TLConfig::NormalCategories>

The list of normal categories, i.e., those categories whose packages do
ship files. Currently C<TLCore>, C<Documentation>, C<Package>.

=item C<@TeXLive::TLConfig::Categories>

The list of all categories, i.e., the union of the above.

=item C<$TeXLive::TLConfig::CategoriesRegexp>

A regexp matching any category.

=item C<$TeXLive::TLConfig::DefaultCategory>

The default category used when creating new packages.

=item C<$TeXLive::TLConfig::InfraLocation>

The location of various infrastructural files (texlive.tlpdb, tlpobj files,
etc) relative to the root of the installation.

=item C<$TeXLive::TLConfig::BlockSize>

The assumed block size, currently 4k.

=item C<$TeXLive::TLConfig::NetArchive>
=item C<$TeXLive::TLConfig::DiskArchive>
=item C<$TeXLive::TLConfig::TeXLiveURL>

These values specify where to find packages.

=item C<$TeXLive::TLConfig::WinSpecialUpdatePackagesRegexp>

A regexp matching all those packages which cannot be normally updated 
because they contain files which are open during the update process.

=back

=head1 SEE ALSO

The modules L<TeXLive::TLUtils>, L<TeXLive::TLPSRC>,
L<TeXLive::TLPDB>, L<TeXLive::TLTREE>, L<TeXLive::TeXCatalogue>.

=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: #