diff options
author | Siep Kroonenberg <siepo@cybercomm.nl> | 2015-05-05 20:46:35 +0000 |
---|---|---|
committer | Siep Kroonenberg <siepo@cybercomm.nl> | 2015-05-05 20:46:35 +0000 |
commit | fe576e3d01b31dbc35e1bc4008052c06c47d3cf3 (patch) | |
tree | 897096f3ec850bfb42aa212bc55a271f9ab4c7fd /Master/source/tlperl/tlperl.README | |
parent | 52a01954d877b41d35ed9032ce73c1536b6a45cc (diff) |
Updated perl sources
git-svn-id: svn://tug.org/texlive/trunk@37203 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/source/tlperl/tlperl.README')
-rw-r--r-- | Master/source/tlperl/tlperl.README | 241 |
1 files changed, 141 insertions, 100 deletions
diff --git a/Master/source/tlperl/tlperl.README b/Master/source/tlperl/tlperl.README index 774f5c418a6..a56c80b5a42 100644 --- a/Master/source/tlperl/tlperl.README +++ b/Master/source/tlperl/tlperl.README @@ -1,4 +1,4 @@ -NOTES ON BUILDING TLPERL 2012 November update +NOTES ON BUILDING TLPERL 2015 BUILD PLATFORM @@ -7,31 +7,67 @@ Linux. GETTING THE PERL SOURCE -Release version: -I downloaded from CPAN: the latest stable Perl source 5.18.2 +I downloaded the latest stable Perl source 5.20.2 from CPAN. THE COMPILER -I found in the root of the distribution a file README.win32 -containing compilation instructions, which listed both mingw32 from -mingw.org and the newer mingw64 from mingw-w64.sf.net as possible -compilers, the latter one also being packaged with Strawberry -Perl. I used this bundled mingw, but not the rest on SP. It includes -dmake. +The file README.win32 in the root of the distribution contains +compilation instructions, which lists various supported MinGW +distributions, including a trimmed-down version of MinGW64 offered +by the Strawberry Perl project. I unzipped +mingw64-w32-gcc4.8.3_20140727.zip from +http://strawberryperl.com/package/kmx/32_gcctoolchain/ and +32bit_dmake-4.12.2-bin_20140810.zip from +http://strawberryperl.com/package/kmx/32_tools/ -BUILDING +This MinGW compiler does not require installation; it is sufficient +to prepend <root>\bin to the searchpath before use. + +BUILDING PERL I went to the win32 subdirectory of the Perl source. In makefile.mk I adjusted relevant settings to my build environment. As in the -previous release, I turned off optimization to avoid some -intractable failures. In addition, to avoid some errors while -running the test suite, I applied a patch which I found at -https://github.com/Alexpux/MINGW-packages/blob/master/mingw-w64-perl/perl-5.18.0-add-missing-mingw-libs.patch +previous release, I turned off optimization in the hope to avoid +some intractable failures: -*** makefile.mk.orig 2014-01-06 23:46:46.000000000 +0100 ---- makefile.mk 2014-04-22 14:51:45.000000000 +0200 +*** makefile.mk.orig 2015-01-28 22:08:46.000000000 +0100 +--- makefile.mk 2015-04-24 14:02:38.037487500 +0200 +*************** +*** 27,33 **** + # newly built perl. + # + INST_DRV *= c: +! INST_TOP *= $(INST_DRV)\perl + + # + # Uncomment if you want to build a 32-bit Perl using a 32-bit compiler +--- 27,33 ---- + # newly built perl. + # + INST_DRV *= c: +! INST_TOP *= $(INST_DRV)\tlperl + + # + # Uncomment if you want to build a 32-bit Perl using a 32-bit compiler *************** -*** 187,193 **** +*** 144,150 **** + # If you are using GCC, 4.3 or later by default we add the -fwrapv option. + # See https://rt.perl.org/Ticket/Display.html?id=121505 + # +! #GCCWRAPV *= define + + # + # If you are using Intel C++ Compiler uncomment this +--- 144,150 ---- + # If you are using GCC, 4.3 or later by default we add the -fwrapv option. + # See https://rt.perl.org/Ticket/Display.html?id=121505 + # +! GCCWRAPV *= define + + # + # If you are using Intel C++ Compiler uncomment this +*************** +*** 209,215 **** # not be quoted) # .IF "$(CCTYPE)" == "GCC" @@ -39,42 +75,37 @@ https://github.com/Alexpux/MINGW-packages/blob/master/mingw-w64-perl/perl-5.18.0 .ELSE CCHOME *= $(MSVCDIR) .ENDIF ---- 187,193 ---- +--- 209,215 ---- # not be quoted) # .IF "$(CCTYPE)" == "GCC" -! CCHOME *= x:\strawberry\c +! CCHOME *= X:\mingw .ELSE CCHOME *= $(MSVCDIR) .ENDIF *************** -*** 434,440 **** - OPTIMIZE = -g -O2 -DDEBUGGING +*** 465,474 **** + -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32 + + .IF "$(CFG)" == "Debug" +! OPTIMIZE = -g -O2 -DDEBUGGING LINK_DBG = -g .ELSE ! OPTIMIZE = -s -O2 LINK_DBG = -s .ENDIF ---- 434,440 ---- - OPTIMIZE = -g -O2 -DDEBUGGING +--- 465,474 ---- + -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32 + + .IF "$(CFG)" == "Debug" +! OPTIMIZE = -g -O0 -DDEBUGGING LINK_DBG = -g .ELSE ! OPTIMIZE = -s -O0 LINK_DBG = -s .ENDIF - -*************** -*** 1505,1510 **** ---- 1505,1512 ---- - if exist $(CCDLLDIR)\libgcc_s_sjlj-1.dll $(XCOPY) $(CCDLLDIR)\libgcc_s_sjlj-1.dll ..\t\$(NULL) - if exist $(CCDLLDIR)\libgcc_s_dw2-1.dll $(XCOPY) $(CCDLLDIR)\libgcc_s_dw2-1.dll ..\t\$(NULL) - if exist $(CCDLLDIR)\libstdc++-6.dll $(XCOPY) $(CCDLLDIR)\libstdc++-6.dll ..\t\$(NULL) -+ if exist $(CCDLLDIR)\libwinpthread-1.dll $(XCOPY) $(CCDLLDIR)\libwinpthread-1.dll ..\t\$(NULL) -+ if exist $(CCDLLDIR)\libgcc_s_seh-1.dll $(XCOPY) $(CCDLLDIR)\libgcc_s_seh-1.dll ..\t\$(NULL) - .ENDIF - - test : test-prep + [end of patch] I compiled with @@ -87,6 +118,70 @@ and installed with `installbare' omits the generation of html. +INSTALLING MODULES + +When adding modules, I added the new Perl bin directory to the +searchpath. I downloaded all the modules from CPAN and added them with + + perl Makefile.PL && dmake && dmake test && dmake install + +They are, in order of processing: + +Math::Int64 0.52 +IO::String 1.08 +Digest::SHA1 2.13 +File::Which 1.16 +Encode::compat 0.07 +Encode::Locale 1.04 + +Windows-specific: + +Win32::API 0.80 +Win32::WinError 0.04 (just copying WinError.pm to lib/Win32) +Win32API::Registry 0.33 +Win32::Console 0.10 +Win32::TieRegistry 0.29 (errors in testing, as always) +Win32::Shortcut 0.08 +Win32::OLE 0.1712 - warnings + +LWP and dependencies, in order of compilation/installation: + +Socket 2.018 +Date::Parse 2.30 (file TimeDate-2.30.tar.gz) +HTTP::Date 6.02 +File::Listing 6.04 +IO::HTML 1.001 +LWP::MediaTypes 6.02 +URI 1.67 +HTTP::Message 6.06 +HTML::Tagset 3.20 +HTML::Parser 3.71 +WWW::RobotRules 6.02 +HTTP::Negotiate 6.01 +Net::HTTP 6.07 +Mozilla::CA 20141217 +HTTP::Daemon 6.01 +HTTP::Cookies 6.01 +LWP 6.13 (file libwww-perl-6.13.tar.gz) + +Perl/Tk: + +Tk 804.033 + +This module did not compile rightaway. + +1. In Tk-804.033/PNG/zlib/win32/zlib.def I had to remove the LIBRARY +line at the start. I also removed - maybe unnecessarily - the lines +starting with `;'. + +2. An entry '-limm32' somehow did not make it into LDLOADLIBS in the +generated makefile. After manually adding this at the end of the +LDLOADLIBS definition, the module compiled. + +Tk-DirSelect 1.12 + +MAKING PERL PORTABLE + There were hard-coded paths in lib/Config.pm and lib/Config_heavy.pl, which were likely to cause problems. @@ -109,87 +204,33 @@ EOVIRTUAL. The original versions are still present under the names Config.pm.orig and Config_heavy.pl.orig. -When adding modules, I added the new Perl bin directory to the -searchpath. I downloaded all the modules from CPAN and added them with - - perl Makefile.PL - dmake - dmake install - -They are, in order of processing: - - Math-Int64-0.30.tar.gz - -Windows-specific: - - Win32-API-0.77.tar.gz - Win32API-Registry-0.32.tar.gz - Win32-TieRegistry-0.26.tar.gz - Win32-Shortcut-0.08.tar.gz - Win32-Process-Info-1.020.tar.gz - Win32-OLE-0.1711.tar.gz - warnings - -Perl/Tk: - - Tk-804.032.tar.gz - -This module did not compile rightaway: an entry '-limm32' somehow -did not make it into LDLOADLIBS in the generated makefile. After -manually adding this at the end of the definition, the module -compiled. - - Tk-DirSelect-1.12.tar.gz - -LWP and dependencies, in order of compilation/installation: - - HTML-Tagset-3.20.tar.gz - HTML-Parser-3.71.tar.gz - URI-1.60.tar.gz - Encode-Locale-1.03.tar.gz - HTTP-Date-6.02.tar.gz - File-Listing-6.04.tar.gz - LWP-MediaTypes-6.02.tar.gz - IO-HTML-1.00.tar.gz - HTTP-Message-6.06.tar.gz - HTTP-Cookies-6.01.tar.gz - HTTP-Daemon-6.01.tar.gz - HTTP-Negotiate-6.01.tar.gz - Net-HTTP-6.06.tar.gz - WWW-RobotRules-6.02.tar.gz - LWP-Protocol-https-6.06.tar.gz - libwww-perl-6.06.tar.gz - -Other: - - IO-String-1.08.tar.gz - Digest-SHA1-2.13.tar.gz (for 3rd-party scripts) - MODIFICATIONS FOR TEXLIVE - as explained above: our versions of lib/Config.pm and lib/Config_heavy.pl compute the location of tlperl dynamically. - The site/lib subdirectory is folded into lib. +- The lib/pods directory has been removed. - The bin subdirectory now only contains exe- and dll files; batch files and Perl scripts have been removed. - Copied from mingw/bin to tlperl/bin: - libgcc_s_sjlj_1.dll, libstdc++-6.dll, libpng16-16_.dll and. + libgcc_s_sjlj_1.dll, libstdc++-6.dll and libwinpthread-1.dll TESTING WITH TEXLIVE For testing the new Perl with the installer, I unpacked the net installer and replaced its tlperl with the new one. -For testing the new Perl with the installed TeX Live, I copied it -into the fresh installation. - -Both tests with 32-bits Windows XP Enterprise as regular user and -64-bits Windows 7 Professional as admin user. +For testing the new Perl with tlmgr-gui.exe from the installed TeX +Live, I copied it into the fresh installation. -These tests do not require a for perl updated texlive.tlpdb. +Both tests were done with 32-bits Windows 7 Home Premium as regular +user and 64-bits Windows 8 Professional as admin user. -tlmgr appeared to work as intended. I also successfully ran -the uninstaller. +tlmgr-gui appeared to work as intended. I also successfully ran the +uninstaller. However, later there turned out to be a transient +problem with updating tlperl, whose update coincided with a tlmgr +update. Siep Kroonenberg -Last revision: April 23 2014 +Last revision: May 5 2015 |