summaryrefslogtreecommitdiff
path: root/Master/texmf
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2010-05-12 16:45:35 +0000
committerNorbert Preining <preining@logic.at>2010-05-12 16:45:35 +0000
commit44ccd4efc5352f9eb1099ba357708e7b5ff03b83 (patch)
tree90ff578cd671e036c845ce16aab721a23b2af458 /Master/texmf
parent5d696fad64e4ede5004e90d07f5decc9c941018a (diff)
allow specifying a range of years in the repository, and make tlmgr check
for that and not to bail out if matches git-svn-id: svn://tug.org/texlive/trunk@18208 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf')
-rwxr-xr-xMaster/texmf/scripts/texlive/tlmgr.pl40
1 files changed, 35 insertions, 5 deletions
diff --git a/Master/texmf/scripts/texlive/tlmgr.pl b/Master/texmf/scripts/texlive/tlmgr.pl
index 50306395e49..e4dca67dea4 100755
--- a/Master/texmf/scripts/texlive/tlmgr.pl
+++ b/Master/texmf/scripts/texlive/tlmgr.pl
@@ -4211,15 +4211,45 @@ END_NO_INTERNET
}
die($loadmediasrcerror . $location) unless defined($tlmediasrc);
$tlmediatlpdb = $tlmediasrc->tlpdb;
- # if the release from the remote TLPDB does not agree with the
- # TLConfig::ReleaseYear in the first 4 places break out here.
+ # we allow a range of years to be specified by the remote tlpdb
+ # for which it might work.
+ # the lower limit is TLPDB->config_release
+ # the upper limit is TLPDB->config_maxrelease
+ # if the later is not present only the year in config_release is accepted
+ # checks are done on the first 4 digits only
# Why only the first four places: some optional network distributions
# might use
# release/2009-foobar
+ # If it should work for 2009 and 2010, please use
+ # release/2009-foobar
+ # maxrelease/2010-foobar
my $texlive_release = $tlmediatlpdb->config_release;
- if (!defined($texlive_release) ||
- $texlive_release !~ m/^$TeXLive::TLConfig::ReleaseYear/) {
- die "The release version of the installation source and the installation media\ndo not agree: source: $texlive_release, media: $TeXLive::TLConfig::ReleaseYear\nPlease fix your location $location";
+ my $texlive_maxrelease = $tlmediatlpdb->config_maxrelease;
+ if (!defined($texlive_release)) {
+ tldie "The installation repository does not specify a release year for which it was prepared, bailing out.\n";
+ }
+ # still here, so we have $texlive_release defined
+ my $texlive_release_year =~ s/^(....).*$/$1/;
+ if ($texlive_release_year !~ m/^[1-9][0-9][0-9][0-9]$/) {
+ tldie "The installation repository does not specify a release year: $texlive_release, bailing out.\n";
+ }
+ # so $texlive_release_year is numeric, good
+ if (defined($texlive_maxrelease)) {
+ # we specify a range of years!
+ my $texlive_maxrelease_year =~ s/^(....).*$/$1/;
+ if ($texlive_maxrelease_year !~ m/^[1-9][0-9][0-9][0-9]$/) {
+ tldie "The installation repository does not specify a valid maximal release year: $texlive_maxrelease, bailing out.\n";
+ }
+ # ok, all numeric and fine, check for range
+ if ($TeXLive::TLConfig::ReleaseYear < $texlive_release_year ||
+ $TeXLive::TLConfig::ReleaseYear > $texlive_maxrelease_year) {
+ tldie "The supported release range as specified by the repository ($texlive_release_year - $texlive_maxrelease_year)\ndoes not match the release version of the installation ($TeXLive::TLConfig::ReleaseYear), bailing out.\n";
+ }
+ } else {
+ # $texlive_maxrelease not defined, so only one year is valid
+ if ($texlive_release_year != $TeXLive::TLConfig::ReleaseYear) {
+ tldie "The supported release as specified by the repository ($texlive_release_year)\ndoes not match the release version of the installation ($TeXLive::TLConfig::ReleaseYear), bailing out.\n";
+ }
}
# check for being frozen