summaryrefslogtreecommitdiff
path: root/Master/tlpkg
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2017-10-27 04:21:47 +0000
committerNorbert Preining <preining@logic.at>2017-10-27 04:21:47 +0000
commit9e043b93fc4f0da1dfca3d1f4fb8026561470cf8 (patch)
tree05fb487eaebf310da6fa4074ceca726f6aa00637 /Master/tlpkg
parentda23291b51d577b5b2c8e35a41b01159b7a1e7de (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
Diffstat (limited to 'Master/tlpkg')
-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
6 files changed, 76 insertions, 93 deletions
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