Hi,
i will start a discussion for the integration of Perl 5.22.x into
IPFire.
I have been working for over half a year on the files.
My motivation came from the use of SpamAssassin. This application is
written in Perl. The old Perl modules from IPFire are as a security
risk.
First i update the Perl LFS and rootfile only. All the other Perl
modules remain old.
I began individual modules to update, but it was very expensive.
Since I had the idea to take all modules to one or two LFS together.
This has the advantage that all individual Perl modules disappear
make.sh from and this is clearly shorter. The two LFS files and the
associated Rootfiles are also easier to maintain. The individual
Perl
modules in Pakfire can then also be removed. Perl is always complete
and
up to date with its modules. In my mailserver branch I have this
development as far finished. However, I had the modules-LFS divided
into
two files because make is having trouble with to large LFS files.
Also have Perl 5.22.1 integrated into the toolchain. The need still
less, gdbm and berkeley DB4 before.
I created three files from the many Perl files:
perl-buildtools
perl-modules1
perl-modules2
The current folder size of /usr/lib/perl5 is about 75MB with Perl
5.22.1
and all modules and 55Mb with Perl 5.12.3. A Perl-Modules list can
be
found here: http://people.ipfire.org/~mlorenz/mp/22/perl.txt This
includes all needed modules for Amavisd, all from Pakfire and many
more.
All updated to the latest version from CPAN (December 2015)
Here the perl-buildtools LFS with the current modules from CPAN as
an
example.
The modules included are needed around the other current Perl modules
to
build:
#####################################################################
##########
#
#
# IPFire.org - A linux based
firewall
#
# Copyright (C) 2007-2015 IPFire Team <info@ipfire.org>
#
#
#
# This program is free software: you can redistribute it and/or
modify
#
# it under the terms of the GNU General Public License as published
by
#
# the Free Software Foundation, either version 3 of the License,
or
#
# (at your option) any later
version.
#
#
#
# This program is distributed in the hope that it will be
useful,
#
# but WITHOUT ANY WARRANTY; without even the implied warranty
of
#
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
the
#
# GNU General Public License for more
details.
#
#
#
# You should have received a copy of the GNU General Public
License
#
# along with this program. If not, see <http://www.gnu.org/licenses/
.
#
#
#
#####################################################################
##########
#####################################################################
##########
# Definitions
#####################################################################
##########
include Config
VER = 2015.10
THISAPP = perl-buildtools-$(VER)
DL_FILE = $(THISAPP).tar.gz
DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = perl-buildtools
DEPS = "perl"
PAK_VER = 1
#####################################################################
##########
# Top-level Rules
#####################################################################
##########
objects = ExtUtils-Constant-0.23.tar.gz \
ExtUtils-MakeMaker-7.10.tar.gz \
ExtUtils-Manifest-1.70.tar.gz \
Module-Build-0.4214.tar.gz \
Module-Metadata-1.000027.tar.gz \
Perl-OSType-1.009.tar.gz \
Test-Deep-0.119.tar.gz \
Test-Simple-1.001014.tar.gz \
version-0.9912.tar.gz
ExtUtils-Constant-0.23.tar.gz =
$(DL_FROM)/ExtUtils-Constant-0.23.tar.gz
ExtUtils-MakeMaker-7.10.tar.gz =
$(DL_FROM)/ExtUtils-MakeMaker-7.10.tar.gz
ExtUtils-Manifest-1.70.tar.gz =
$(DL_FROM)/ExtUtils-Manifest-1.70.tar.gz
Module-Build-0.4214.tar.gz =
$(DL_FROM)/Module-Build-0.4214.tar.gz
Module-Metadata-1.000027.tar.gz =
$(DL_FROM)/Module-Metadata-1.000027.tar.gz
Perl-OSType-1.009.tar.gz =
$(DL_FROM)/Perl-OSType-1.009.tar.gz
Test-Deep-0.119.tar.gz = $(DL_FROM)/Test-Deep-
0.119.tar.gz
Test-Simple-1.001014.tar.gz =
$(DL_FROM)/Test-Simple-1.001014.tar.gz
version-0.9912.tar.gz = $(DL_FROM)/version-
0.9912.tar.gz
ExtUtils-Constant-0.23.tar.gz_MD5 =
bd3ec6d22ffab7e5cc05b1331a888d15
ExtUtils-MakeMaker-7.10.tar.gz_MD5 =
2639a21adee5e0a903730c12dcba08ec
ExtUtils-Manifest-1.70.tar.gz_MD5 =
8ccb9c1f3bca14c117a74bc7b43be095
Module-Build-0.4214.tar.gz_MD5 =
7b7ca5a47bef48c50c8b5906ca3ac7fb
Module-Metadata-1.000027.tar.gz_MD5 =
a0bf9b900dfd49c57702de3ee3801d42
Perl-OSType-1.009.tar.gz_MD5 =
9e0cae3812bc80815f00732bde1b7e61
Test-Deep-0.119.tar.gz_MD5 =
edb72e9b1874efe3b0c95324fb063e51
Test-Simple-1.001014.tar.gz_MD5 =
db7f57fd595e3e1c93c972307a88fa6e
version-0.9912.tar.gz_MD5 =
404a7174f3e38e4f8fad3e1eefce5412
install : $(TARGET)
check : $(patsubst %,$(DIR_CHK)/%,$(objects))
download :$(patsubst %,$(DIR_DL)/%,$(objects))
md5 : $(subst %,%_MD5,$(objects))
dist:
@$(PAK)
#####################################################################
##########
# Downloading, checking, md5sum
#####################################################################
##########
$(patsubst %,$(DIR_CHK)/%,$(objects)) :
@$(CHECK)
$(patsubst %,$(DIR_DL)/%,$(objects)) :
@$(LOAD)
$(subst %,%_MD5,$(objects)) :
@$(MD5)
#####################################################################
##########
# Installation Details
#####################################################################
##########
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
cd $(DIR_SRC) && tar zxf $(DIR_DL)/Perl-OSType-1.009.tar.gz
cd $(DIR_SRC)/Perl-OSType-1.009 && perl Makefile.PL
cd $(DIR_SRC)/Perl-OSType-1.009 && make $(MAKETUNING)
cd $(DIR_SRC)/Perl-OSType-1.009 && make install
@rm -rf $(DIR_SRC)/Perl-OSType-1.009
cd $(DIR_SRC) && tar zxf $(DIR_DL)/version-0.9912.tar.gz
cd $(DIR_SRC)/version-0.9912 && perl Makefile.PL
cd $(DIR_SRC)/version-0.9912 && make $(MAKETUNING)
cd $(DIR_SRC)/version-0.9912 && make install
@rm -rf $(DIR_SRC)/version-0.9912
cd $(DIR_SRC) && tar zxf $(DIR_DL)/Module-Metadata-
1.000027.tar.gz
cd $(DIR_SRC)/Module-Metadata-1.000027 && perl Makefile.PL
cd $(DIR_SRC)/Module-Metadata-1.000027 && make $(MAKETUNING)
cd $(DIR_SRC)/Module-Metadata-1.000027 && make install
@rm -rf $(DIR_SRC)/Module-Metadata-1.000027
cd $(DIR_SRC) && tar zxf $(DIR_DL)/Module-Build-0.4214.tar.gz
cd $(DIR_SRC)/Module-Build-0.4214 && perl Makefile.PL
cd $(DIR_SRC)/Module-Build-0.4214 && make $(MAKETUNING)
cd $(DIR_SRC)/Module-Build-0.4214 && make install
@rm -rf $(DIR_SRC)/Module-Build-0.4214
cd $(DIR_SRC) && tar zxf $(DIR_DL)/Test-Deep-0.119.tar.gz
cd $(DIR_SRC)/Test-Deep-0.119 && perl Makefile.PL
cd $(DIR_SRC)/Test-Deep-0.119 && make $(MAKETUNING)
cd $(DIR_SRC)/Test-Deep-0.119 && make install
@rm -rf $(DIR_SRC)/Test-Deep-0.119
cd $(DIR_SRC) && tar zxf $(DIR_DL)/Test-Simple-1.001014.tar.gz
cd $(DIR_SRC)/Test-Simple-1.001014 && perl Makefile.PL
cd $(DIR_SRC)/Test-Simple-1.001014 && make $(MAKETUNING)
cd $(DIR_SRC)/Test-Simple-1.001014 && make install
@rm -rf $(DIR_SRC)/Test-Simple-1.001014
cd $(DIR_SRC) && tar zxf $(DIR_DL)/ExtUtils-Constant-
0.23.tar.gz
cd $(DIR_SRC)/ExtUtils-Constant-0.23 && perl Makefile.PL
cd $(DIR_SRC)/ExtUtils-Constant-0.23 && make $(MAKETUNING)
cd $(DIR_SRC)/ExtUtils-Constant-0.23 && make install
@rm -rf $(DIR_SRC)/ExtUtils-Constant-0.23
cd $(DIR_SRC) && tar zxf $(DIR_DL)/ExtUtils-MakeMaker-
7.10.tar.gz
cd $(DIR_SRC)/ExtUtils-MakeMaker-7.10 && perl Makefile.PL
cd $(DIR_SRC)/ExtUtils-MakeMaker-7.10 && make $(MAKETUNING)
cd $(DIR_SRC)/ExtUtils-MakeMaker-7.10 && make install
@rm -rf $(DIR_SRC)/ExtUtils-MakeMaker-7.10
cd $(DIR_SRC) && tar zxf $(DIR_DL)/ExtUtils-Manifest-
1.70.tar.gz
cd $(DIR_SRC)/ExtUtils-Manifest-1.70 && perl Makefile.PL
cd $(DIR_SRC)/ExtUtils-Manifest-1.70 && make $(MAKETUNING)
cd $(DIR_SRC)/ExtUtils-Manifest-1.70 && make install
@rm -rf $(DIR_SRC)/ExtUtils-Manifest-1.70
@$(POSTBUILD)
That would be my suggestion for integration of Perl 5.22.1. On
request,
I can create big patches and send it to the mailing list. Perl
5.22.x
works are in several months generated by my ISO's unremarkable. It
is
known that a few startup scripts need to be adjusted (amavisd).
Please forgive me my simple English... Google translator helped me.
:)
Greetings,
Marcel Lorenz