diff options
Diffstat (limited to 'Master/tlpkg/TeXLive')
-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 |
3 files changed, 48 insertions, 19 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; |