Hi,
I would like to see us updating perl. However, we cannot under any circumstances put all the modules in a single LFS file. That makes rebuilding one module impossible and basically is against the approach of having packages.
So if you update them, please do that individually. Start with perl itself, then all the other modules. Please do that in one branch as individual commits and send this all together as a patchset.
Please work closely with this list to review any problems on the way. It is not really helpful to push a too big patchset. Unfortunately we are already at a state where nobody reviewed all the other patches that you and other people have sent on this list.
Best, -Michael
On Wed, 2016-02-24 at 08:08 +0100, Marcel Lorenz wrote:
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