summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xMaster/texmf-dist/scripts/texlive/tlmgr.pl2
-rw-r--r--Master/tlpkg/TeXLive/TLConfig.pm2
-rw-r--r--Master/tlpkg/TeXLive/TLPDB.pm29
-rw-r--r--Master/tlpkg/TeXLive/TLPOBJ.pm36
-rw-r--r--Master/tlpkg/doc/00texlive-packages.txt51
-rw-r--r--Master/tlpkg/tlpsrc/00texlive.config.tlpsrc2
-rw-r--r--Master/tlpkg/tlpsrc/00texlive.installation.tlpsrc49
7 files changed, 77 insertions, 94 deletions
diff --git a/Master/texmf-dist/scripts/texlive/tlmgr.pl b/Master/texmf-dist/scripts/texlive/tlmgr.pl
index 2fef2499d6f..b8cbef168ae 100755
--- a/Master/texmf-dist/scripts/texlive/tlmgr.pl
+++ b/Master/texmf-dist/scripts/texlive/tlmgr.pl
@@ -6752,7 +6752,7 @@ and the repository are not compatible:
}
# check for being frozen
- if ($remotetlpdb->option("frozen")) {
+ if ($remotetlpdb->config_frozen) {
my $frozen_msg = <<FROZEN;
TeX Live $TeXLive::TLConfig::ReleaseYear is frozen forever and will no
longer be updated. This happens in preparation for a new release.
diff --git a/Master/tlpkg/TeXLive/TLConfig.pm b/Master/tlpkg/TeXLive/TLConfig.pm
index d9f97d9a859..5d7634cfaab 100644
--- a/Master/tlpkg/TeXLive/TLConfig.pm
+++ b/Master/tlpkg/TeXLive/TLConfig.pm
@@ -108,12 +108,14 @@ our $DefaultContainerFormat = "xz";
our $DefaultContainerExtension = "tar.$DefaultContainerFormat";
# archive (not user) settings.
+# these can be overriden by putting them into 00texlive.config.tlpsrc
our %TLPDBConfigs = (
"container_split_src_files" => 1,
"container_split_doc_files" => 1,
"container_format" => $DefaultContainerFormat,
"minrelease" => $MinRelease,
"release" => $ReleaseYear,
+ "frozen" => 0,
);
# definition of the option strings and their value types
diff --git a/Master/tlpkg/TeXLive/TLPDB.pm b/Master/tlpkg/TeXLive/TLPDB.pm
index b34650c84e3..cff1cfad2b7 100644
--- a/Master/tlpkg/TeXLive/TLPDB.pm
+++ b/Master/tlpkg/TeXLive/TLPDB.pm
@@ -59,6 +59,7 @@ C<TeXLive::TLPDB> -- A database of TeX Live Packages
$tlpdb->config_release;
$tlpdb->config_minrelease;
$tlpdb->config_revision;
+ $tlpdb->config_frozen;
$tlpdb->options;
$tlpdb->option($key, [$value]);
$tlpdb->reset_options();
@@ -1299,7 +1300,7 @@ sub config_doc_container {
=pod
-=item C<< $tlpdb->config_doc_container >>
+=item C<< $tlpdb->config_container_format >>
Returns the currently set default container format. See Options below.
@@ -1375,6 +1376,32 @@ sub config_minrelease {
return;
}
+=pod
+
+=item C<< $tlpdb->config_frozen >>
+
+Returns true if the location is frozen.
+
+=cut
+
+sub config_frozen {
+ my $self = shift;
+ my $tlp;
+ if ($self->is_virtual) {
+ $tlp = $self->{'tlpdbs'}{'main'}->get_package('00texlive.config');
+ } else {
+ $tlp = $self->{'tlps'}{'00texlive.config'};
+ }
+ if (defined($tlp)) {
+ foreach my $d ($tlp->depends) {
+ if ($d =~ m!^frozen/(.*)$!) {
+ return "$1";
+ }
+ }
+ }
+ return;
+}
+
=pod
diff --git a/Master/tlpkg/TeXLive/TLPOBJ.pm b/Master/tlpkg/TeXLive/TLPOBJ.pm
index 1530c1a06c8..6ff4908c0f8 100644
--- a/Master/tlpkg/TeXLive/TLPOBJ.pm
+++ b/Master/tlpkg/TeXLive/TLPOBJ.pm
@@ -1177,6 +1177,18 @@ sub _parse_hyphen_execute {
# member access functions
#
+sub _set_get_array_value {
+ my $self = shift;
+ my $key = shift;
+ if (@_) {
+ if (defined($_[0])) {
+ $self->{$key} = [ @_ ];
+ } else {
+ $self->{$key} = [ ];
+ }
+ }
+ return @{ $self->{$key} };
+}
sub name {
my $self = shift;
if (@_) { $self->{'name'} = shift }
@@ -1213,9 +1225,7 @@ sub catalogue {
return $self->{'catalogue'};
}
sub srcfiles {
- my $self = shift;
- if (@_) { $self->{'srcfiles'} = [ @_ ] }
- return @{ $self->{'srcfiles'} };
+ _set_get_array_value(shift, "srcfiles", @_);
}
sub containersize {
my $self = shift;
@@ -1280,9 +1290,7 @@ sub remove_srcfiles {
$self->remove_files("src",@files);
}
sub docfiles {
- my $self = shift;
- if (@_) { $self->{'docfiles'} = [ @_ ] }
- return @{ $self->{'docfiles'} };
+ _set_get_array_value(shift, "docfiles", @_);
}
sub clear_docfiles {
my $self = shift;
@@ -1338,9 +1346,7 @@ sub remove_binfiles {
$self->{'binfiles'}{$arch} = [ @finalfiles ];
}
sub runfiles {
- my $self = shift;
- if (@_) { $self->{'runfiles'} = [ @_ ] }
- return @{ $self->{'runfiles'} };
+ _set_get_array_value(shift, "runfiles", @_);
}
sub clear_runfiles {
my $self = shift;
@@ -1360,19 +1366,13 @@ sub remove_runfiles {
$self->remove_files("run",@files);
}
sub depends {
- my $self = shift;
- if (@_) { $self->{'depends'} = [ @_ ] }
- return @{ $self->{'depends'} };
+ _set_get_array_value(shift, "depends", @_);
}
sub executes {
- my $self = shift;
- if (@_) { $self->{'executes'} = [ @_ ] }
- return @{ $self->{'executes'} };
+ _set_get_array_value(shift, "executes", @_);
}
sub postactions {
- my $self = shift;
- if (@_) { $self->{'postactions'} = [ @_ ] }
- return @{ $self->{'postactions'} };
+ _set_get_array_value(shift, "postactions", @_);
}
sub containerdir {
my @self = shift;
diff --git a/Master/tlpkg/doc/00texlive-packages.txt b/Master/tlpkg/doc/00texlive-packages.txt
index 890354a69a2..3f45c82caa7 100644
--- a/Master/tlpkg/doc/00texlive-packages.txt
+++ b/Master/tlpkg/doc/00texlive-packages.txt
@@ -7,17 +7,18 @@ contains configuration options about the tlnet archive and the distribution
itself.
Supported settings:
- container_split_src_files $tlpdb->config_src_container
- container_split_doc_files $tlpdb->config_doc_container
- container_format/xz $tlpdb->config_container_format
- release/NNNN $tlpdb->config_release
- revision/NNNNNN $tlpdb->cofnig_revision
+ container_split_src_files $tlpdb->config_src_container
+ container_split_doc_files $tlpdb->config_doc_container
+ container_format/xz $tlpdb->config_container_format
+ release/NNNN $tlpdb->config_release
+ revision/NNNNNN $tlpdb->config_revision
+ frozen/[01] $tlpdb->config_frozen
Used in install-tl and tlmgr to determine the "abilities" (split container)
and release of the remote tlpdb.
Origin of the fields is
- %TeXLive::TLConfig::TLPDBConfigs
+ %TeXLive::TLConfig::TLPDBConfigs
plus TLMedia->revision for the revision field.
The values are set by tlpkg/bin/tl-update-tlnet (and tlpsrc2tlpdb) in the
@@ -62,27 +63,27 @@ installer to use the present directory itself. For example,
the DVD can be mounted anywhere and we want the installer to work.
Access to the fields:
- $tlpdb->option("name"[, "val"]);
- $tlpdb->setting("name");
+ $tlpdb->option("name"[, "val"]);
+ $tlpdb->setting("name");
Currently supported:
- opt_location:__MASTER__
- opt_paper:a4
- opt_create_formats:1
- opt_desktop_integration:1
- opt_file_assocs:1
- opt_post_code:1
- opt_w32_multi_user:1
- opt_path:0
- opt_sys_bin:/usr/local/bin
- opt_sys_info:/usr/local/info
- opt_sys_man:/usr/local/man
- opt_install_docfiles:1
- opt_install_srcfiles:1
- opt_frozen:0
-
- setting_available_architectures:arch1 arch2 arch3 ...
- setting_platform:arch
+ opt_location:__MASTER__
+ opt_paper:a4
+ opt_create_formats:1
+ opt_desktop_integration:1
+ opt_file_assocs:1
+ opt_post_code:1
+ opt_w32_multi_user:1
+ opt_path:0
+ opt_sys_bin:/usr/local/bin
+ opt_sys_info:/usr/local/info
+ opt_sys_man:/usr/local/man
+ opt_install_docfiles:1
+ opt_install_srcfiles:1
+ opt_frozen:0
+
+ setting_available_architectures:arch1 arch2 arch3 ...
+ setting_platform:arch
Origin of the fields:
diff --git a/Master/tlpkg/tlpsrc/00texlive.config.tlpsrc b/Master/tlpkg/tlpsrc/00texlive.config.tlpsrc
index a77dd93139c..2f2359501a4 100644
--- a/Master/tlpkg/tlpsrc/00texlive.config.tlpsrc
+++ b/Master/tlpkg/tlpsrc/00texlive.config.tlpsrc
@@ -16,6 +16,8 @@ longdesc minrelease/ZZZZ specifies the minimum release for which this
longdesc repository is valid, i.e., a release of ZZZZ or later can
longdesc theoretically be upgraded. Further information concerning
longdesc upgrades can be found at http://www.tug.org/texlive/upgrade.html
+longdesc
+longdesc frozen/[01] specifies whether the release has been frozen
longdesc
longdesc These values are taken from TeXLive::TLConfig::TLPDBConfigs
longdesc hash values at tlpdb creation time. (The 00texlive.config.tlpsrc
diff --git a/Master/tlpkg/tlpsrc/00texlive.installation.tlpsrc b/Master/tlpkg/tlpsrc/00texlive.installation.tlpsrc
deleted file mode 100644
index 08d621f2856..00000000000
--- a/Master/tlpkg/tlpsrc/00texlive.installation.tlpsrc
+++ /dev/null
@@ -1,49 +0,0 @@
-category TLCore
-shortdesc TeX Live configuration settings
-longdesc This package serves two purposes:
-longdesc
-longdesc 1. at installation time the present values are taken as default for
-longdesc the installer
-longdesc
-longdesc 2. on an installed system it serves as a configuration file.
-longdesc We have to remember these settings for additional package
-longdesc installation, removal, etc.
-longdesc
-longdesc In this tlpsrc, the only options listed are those that are used
-longdesc *ONLY* at installation time. These are saved in the local
-longdesc tlpdb and will not be accessible by tlmgr.
-longdesc
-longdesc All other options are set from TLConfig::TLPDBOptions to the
-longdesc default values specified there.
-longdesc
-longdesc There are two types here:
-longdesc 1) If the key starts with opt_ this is an option that can be
-longdesc set by the user either at installation time or via tlmgr later.
-longdesc 2) If the key starts with setting_ this value cannot be changed
-longdesc by the user directly with tlmgr, but only by other actions.
-longdesc Currently there are only two settings supported, and the second
-longdesc is only used in unusual cases:
-longdesc 2a) setting_available_architectures lists all available platforms
-longdesc and should be always present
-longdesc 2b) setting_platform *overrides* the auto-detected platform.
-longdesc This value will only be present when you forced a specific
-longdesc architecture with -force-arch to install-tl
-longdesc
-longdesc The value of __MASTER__ for the location field tells the
-longdesc installer to use the present directory itself. For example,
-longdesc the DVD can be mounted anywhere and we want the installer to work.
-longdesc
-longdesc Concerning the 00* names:
-longdesc All packages starting with 00texlive are ``virtual packages'',
-longdesc in the sense that no containers are generated and these packages
-longdesc are never split into .src and .doc sub-packages in the tlpdb.
-
-depend opt_paper:a4
-depend opt_path:0
-depend opt_adjustrepo:1
-depend opt_write18_restricted:1
-
-# the day we want to freeze a release forever (i.e., before the final
-# tlnet update), set this to 1 and tlmgr will then bail out saying that
-# TLNNNN is frozen.
-depend opt_frozen:0