diff options
author | Norbert Preining <preining@logic.at> | 2017-10-27 04:21:47 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2017-10-27 04:21:47 +0000 |
commit | 9e043b93fc4f0da1dfca3d1f4fb8026561470cf8 (patch) | |
tree | 05fb487eaebf310da6fa4074ceca726f6aa00637 | |
parent | da23291b51d577b5b2c8e35a41b01159b7a1e7de (diff) |
rework (again) location of various configuration options
Currently opt_frozen is set in 00texlive.installation and thus
was in principle targeted for user editing. Furthermore, it wasn't
a defined key in TLConfig::TLPDBOptions.
The frozen setting has now moved in 00texlive.config.tlpsrc, which
also defines the container format etc, thus the proper place.
At the same time we cleared out 00texlive.installation.tlpsrc,
it is not necessary anymore, and only carried wrong information.
All the defaults for options/settings in 00texlive.installation
are now defined in TLConfig.
git-svn-id: svn://tug.org/texlive/trunk@45617 c570f23f-e606-0410-a88d-b1316a301751
-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 |