Perl
License information
Perl licensing is a mess due to the large number of packages in a typical Perl installation that may each have their own license.
Perl itself is Open Source software, licensed under its Artistic License, or the GNU General Public License (GPL). See also the "Perl Licensing" page on the Perl web site.
Perl packages included in the modules of the central software stack on LUMI are all taken from CPAN. However, each package may have its own license and it is impossible to name them all, so in principle you have to check before using a Perl package.
From LUMI/23.12 on, some license information for the main Perl package can also be
found in $EBROOT/share/licenses/Perl
after loading the module.
User documentation
Note that from LUMI/24.03
onwards, the way we offer Perl has changed.
The Perl module now only provides a very limited selection of packages. Packages
will only be added to it if they are needed to install the central software stack.
Other Perl packages that we provided in the Perl module in earlier versions, are
now provided by the Perl-packages-CPAN
module.
This is done to speed up the development and installation of a new central software stack after a system update, as Perl is in the critical path and having to build a full configuration slows down the development and deployment tremenduously.
Note also that many Perl packages are badly maintained and sometimes fail to build with more recent library versions. As many of those packages are hardly used or not used at all, we do no effort to update those as long as there is no clear demand for them.
Pre-installed modules (and EasyConfigs)
To access module help and find out for which stacks and partitions the module is
installed, use module spider Perl/<version>
.
EasyConfig:
-
Perl/5.36.0-cpeAMD-22.08 (EasyConfig: Perl-5.36.0-cpeAMD-22.08.eb)
-
Perl/5.36.0-cpeAMD-22.12 (EasyConfig: Perl-5.36.0-cpeAMD-22.12.eb)
-
Perl/5.36.0-cpeAOCC-22.08 (EasyConfig: Perl-5.36.0-cpeAOCC-22.08.eb)
-
Perl/5.36.0-cpeAOCC-22.12 (EasyConfig: Perl-5.36.0-cpeAOCC-22.12.eb)
-
Perl/5.36.0-cpeCray-22.08 (EasyConfig: Perl-5.36.0-cpeCray-22.08.eb)
-
Perl/5.36.0-cpeCray-22.12 (EasyConfig: Perl-5.36.0-cpeCray-22.12.eb)
-
Perl/5.36.0-cpeCray-23.03 (EasyConfig: Perl-5.36.0-cpeCray-23.03.eb)
-
Perl/5.36.0-cpeGNU-22.08 (EasyConfig: Perl-5.36.0-cpeGNU-22.08.eb)
-
Perl/5.36.0-cpeGNU-22.12 (EasyConfig: Perl-5.36.0-cpeGNU-22.12.eb)
-
Perl/5.36.1-cpeAMD-23.09 (EasyConfig: Perl-5.36.1-cpeAMD-23.09.eb)
-
Perl/5.36.1-cpeAMD-23.12 (EasyConfig: Perl-5.36.1-cpeAMD-23.12.eb)
-
Perl/5.36.1-cpeAOCC-23.09 (EasyConfig: Perl-5.36.1-cpeAOCC-23.09.eb)
-
Perl/5.36.1-cpeAOCC-23.12 (EasyConfig: Perl-5.36.1-cpeAOCC-23.12.eb)
-
Perl/5.36.1-cpeCray-23.09 (EasyConfig: Perl-5.36.1-cpeCray-23.09.eb)
-
Perl/5.36.1-cpeCray-23.12 (EasyConfig: Perl-5.36.1-cpeCray-23.12.eb)
-
Perl/5.36.1-cpeGNU-23.09 (EasyConfig: Perl-5.36.1-cpeGNU-23.09.eb)
-
Perl/5.36.1-cpeGNU-23.12 (EasyConfig: Perl-5.36.1-cpeGNU-23.12.eb)
-
Perl/5.38.0-cpeAMD-24.03 (EasyConfig: Perl-5.38.0-cpeAMD-24.03.eb)
-
Perl/5.38.0-cpeAOCC-24.03 (EasyConfig: Perl-5.38.0-cpeAOCC-24.03.eb)
-
Perl/5.38.0-cpeCray-24.03 (EasyConfig: Perl-5.38.0-cpeCray-24.03.eb)
-
Perl/5.38.0-cpeGNU-24.03 (EasyConfig: Perl-5.38.0-cpeGNU-24.03.eb)
Technical documentation
Possible issues
-
Packages that need C++ may fail with certain versions of the Cray compiler. One issue already observed is that C++ include files cannot be found because the compiler is called as
clang++
rather than with theCC
wrapper script.The issue is with the code in Perl that builds a Makefile. It uses MakeMaker which and ExtUtils::CppGuess, and the latter fails to recognize the Cray wrappers and instead detect the compiler used to build Perl as clang and hence uses clang++ as the compatible C++-compiler.
EasyBuild
Version 5.34 for CPE 21.08
-
The EasyConfig is a straight port of the EasyBuilders one for 2021b, except that we made OpenSSL a OS dependency since we want to use the OS version of security libraries as much as possible to ensure that they get patched.
-
Issue with cpeCray/21.08 for the
Set::IntervalTree
package: The makefile that is generated during the configure step usesclang++
rather thenCC
and as a consequence not all include files are found.Workaround: Edit the Makefile in
prebuildopts
withsed
:'prebuildopts': 'sed -i -e "s|CC = .*|CC = CC|" Makefile && '
.
Version 5.36 for CPE 22.06
-
We used the list of extensions from the EasyConfig for GCCcore/11.3.0, part of 2022a.
-
Issue with cpeCray/21.08 for the
Set::IntervalTree
package: The makefile that is generated during the configure step usesclang++
rather thenCC
and as a consequence not all include files are found.Workaround: Edit the Makefile in
prebuildopts
withsed
:'prebuildopts': 'sed -i -e "s|CC = .*|CC = CC|" Makefile && '
. This is safe for all CPE toolchains. -
Do not forget to remove the
preconfigopts
orNet::SSLeay
. -
Other issues:
-
AOCC:
DBD::SQLite
extension does not compile
-
-
Updated package list in the versions for CPE 22.12 and 23.03 to those from the EasyConfig for GCCcore/12.2.0, part of 2022b.
- Did not update all user requeste packages as it looks like the version of Alien::Libxml2 did not build on top of the version of Alien::Base that was up-to-date at the time of development. This may be caused by some new extensions that require other missing dependencies, but we did not want to slow down the development of a central stack on which too many users depend too much for the wishes of just one or a few users.
Updates to 5.36.0 for CPE 22.12/23.03
- Clang 15 is stricter on conversions from integers to pointers and does not accept converting a negative integer (or signed integer type in general) to a pointer. This breaks the "XML::Bare" extension. The solution is to add a compiler flag to turn of that feature. The way to get that into the makefile was actually:
Version 5.36.1 for CPE 23.09
-
Updated the version of Perl to align with 2023a, but did not update the package list due to the amount of work this takes. EasyBuild has changed its policy with respect to additional packages which would change the way our users need to use the Perl module.
-
Clang 16 based compilers are more picky and also no longer accept C90 by default, so we needed to set special options for several packages.
-
Needed to add additional flags to some packages with
cpeAMD
when that toolchain is configured with ROCm 6.0.3 (for recompilation after the system update of the summer of 2024). -
For LUMI/23.12, the license information for the main Perl package was added to the installation.
Version 5.38.0 for LUMI/24.03
-
The EasyConfig is an update of the one for 5.36.1 for LUMI/23.12.
-
Some clean-up of dependencies for the -bare configurations.
Archived EasyConfigs
The EasyConfigs below are additonal easyconfigs that are not directly available on the system for installation. Users are advised to use the newer ones and these archived ones are unsupported. They are still provided as a source of information should you need this, e.g., to understand the configuration that was used for earlier work on the system.
-
Archived EasyConfigs from LUMI-SoftwareStack - previously centrally installed software
-
EasyConfig Perl-5.34.0-cpeAMD-21.06.eb, with module Perl/5.34.0-cpeAMD-21.06
-
EasyConfig Perl-5.34.0-cpeAOCC-21.12.eb, with module Perl/5.34.0-cpeAOCC-21.12
-
EasyConfig Perl-5.34.0-cpeCray-21.06.eb, with module Perl/5.34.0-cpeCray-21.06
-
EasyConfig Perl-5.34.0-cpeCray-21.08.eb, with module Perl/5.34.0-cpeCray-21.08
-
EasyConfig Perl-5.34.0-cpeCray-21.12.eb, with module Perl/5.34.0-cpeCray-21.12
-
EasyConfig Perl-5.34.0-cpeGNU-21.06.eb, with module Perl/5.34.0-cpeGNU-21.06
-
EasyConfig Perl-5.34.0-cpeGNU-21.08.eb, with module Perl/5.34.0-cpeGNU-21.08
-
EasyConfig Perl-5.34.0-cpeGNU-21.12.eb, with module Perl/5.34.0-cpeGNU-21.12
-
EasyConfig Perl-5.36.0-cpeAOCC-22.06.eb, with module Perl/5.36.0-cpeAOCC-22.06
-
EasyConfig Perl-5.36.0-cpeCray-22.06.eb, with module Perl/5.36.0-cpeCray-22.06
-
EasyConfig Perl-5.36.0-cpeGNU-22.06.eb, with module Perl/5.36.0-cpeGNU-22.06
-