summaryrefslogtreecommitdiff
path: root/Master/tlpkg/TeXLive/TLUtils.pm
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-01-23 16:29:03 +0000
committerKarl Berry <karl@freefriends.org>2022-01-23 16:29:03 +0000
commit758f4647877f0256f7ce096bc0d8a16523449a73 (patch)
tree6e10d3ca772b6045bddb879fd8c2dc3ac7cbe529 /Master/tlpkg/TeXLive/TLUtils.pm
parent8c73d7e6ae1b08c4d5879ec471b96eab45366281 (diff)
work around "only used once" warnings with ugly
assignments in the BEGIN block, since the "package PKGNAME BLOCK" was invented for perl 5.14.0 (2011), and that is too new for OpenCSW on Solaris 10. git-svn-id: svn://tug.org/texlive/trunk@61711 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/TeXLive/TLUtils.pm')
-rw-r--r--Master/tlpkg/TeXLive/TLUtils.pm61
1 files changed, 45 insertions, 16 deletions
diff --git a/Master/tlpkg/TeXLive/TLUtils.pm b/Master/tlpkg/TeXLive/TLUtils.pm
index 6fcc60230bb..79ff0bb725e 100644
--- a/Master/tlpkg/TeXLive/TLUtils.pm
+++ b/Master/tlpkg/TeXLive/TLUtils.pm
@@ -1,6 +1,6 @@
# $Id$
# TeXLive::TLUtils.pm - the inevitable utilities for TeX Live.
-# Copyright 2007-2021 Norbert Preining, Reinhard Kotucha
+# Copyright 2007-2022 Norbert Preining, Reinhard Kotucha
# This file is licensed under the GNU General Public License version 2
# or any later version.
@@ -132,21 +132,50 @@ C<TeXLive::TLUtils> - TeX Live infrastructure miscellany
our $PERL_SINGLE_QUOTE; # we steal code from Text::ParseWords
# We use myriad global and package-global variables, unfortunately.
-# To avoid "used only once" warnings, we must use the variable names
-# again; one way to do that would be to assign them all to themselves in
-# the BEGIN block, but this seems (slightly) less ugly.
-# Example in first reply to: https://perlmonks.org/?node_id=11139324
+# To avoid "used only once" warnings, we must use the variable names again.
#
-# Because we are providing a block to the package command, the scope is
-# limited to that block, so the current real package ends up unaffected.
-package main {
- our ($LOGFILE, $LOGFILENAME, @LOGLINES,
- @debug_hook, @ddebug_hook, @dddebug_hook, @info_hook,
- @install_packages_hook, @warn_hook,
- $checksum_method, $gui_mode, $machinereadable,
- $no_execute_actions, $regenerate_all_formats); }
-package JSON { our ($false, $true); }
-package TeXLive::TLDownload { our $net_lib_avail; }
+# This ugly repetition in the BEGIN block works with all Perl versions.
+BEGIN {
+ $::LOGFILE = $::LOGFILE;
+ $::LOGFILENAME = $::LOGFILENAME;
+ @::LOGLINES = @::LOGLINES;
+ @::debug_hook = @::debug_hook;
+ @::ddebug_hook = @::ddebug_hook;
+ @::dddebug_hook = @::dddebug_hook;
+ @::info_hook = @::info_hook;
+ @::warn_hook = @::warn_hook;
+ $::checksum_method = $::checksum_method;
+ $::gui_mode = $::gui_mode;
+ @::install_packages_hook = @::install_packages_hook;
+ $::machinereadable = $::machinereadable;
+ $::no_execute_actions = $::no_execute_actions;
+ $::regenerate_all_formats = $::regenerate_all_formats;
+ #
+ $JSON::false = $JSON::false;
+ $JSON::true = $JSON::true;
+ #
+ $TeXLive::TLDownload::net_lib_avail = $TeXLive::TLDownload::net_lib_avail;
+}
+
+## A cleaner way is to use the "package PKGNAME BLOCK" syntax:
+## when providing a block to the package command, the scope is
+## limited to that block, so the current real package ends up unaffected.
+## Example in first reply to: https://perlmonks.org/?node_id=11139324
+## (Other solutions are also given there, but they don't work well in
+## our context here, although we use them elsewhere.)
+##
+## Unfortunately the package BLOCK syntax was invented for perl 5.14.0,
+## ca.2011, and OpenCSW on Solaris 10 only provides an older Perl. If we
+## ever drop Solaris 10 support, we can replace the above with this.
+##
+#package main {
+# our ($LOGFILE, $LOGFILENAME, @LOGLINES,
+# @debug_hook, @ddebug_hook, @dddebug_hook, @info_hook,
+# @install_packages_hook, @warn_hook,
+# $checksum_method, $gui_mode, $machinereadable,
+# $no_execute_actions, $regenerate_all_formats); }
+#package JSON { our ($false, $true); }
+#package TeXLive::TLDownload { our $net_lib_avail; }
BEGIN {
use Exporter ();
@@ -415,7 +444,7 @@ sub platform_name {
# We don't use uname numbers here.)
#
# this changes each year, per above:
- my $mactex_darwin = 14; # lowest minor rev supported by x86_64-darwin.
+ my $mactex_darwin = 14; # lowest minor rev supported by universal-darwin.
#
# Most robust approach is apparently to check sw_vers (os version,
# returns "10.x" values), and sysctl (processor hardware).