diff options
-rwxr-xr-x | Master/texmf-dist/scripts/texlive/tlmgr.pl | 2 | ||||
-rw-r--r-- | Master/tlpkg/TeXLive/TLConfig.pm | 2 | ||||
-rw-r--r-- | Master/tlpkg/TeXLive/TLPDB.pm | 29 | ||||
-rw-r--r-- | Master/tlpkg/TeXLive/TLPOBJ.pm | 36 | ||||
-rw-r--r-- | Master/tlpkg/doc/00texlive-packages.txt | 51 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/00texlive.config.tlpsrc | 2 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/00texlive.installation.tlpsrc | 49 |
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 |