Installing GiP on XP

MacFH - C E Macfarlane c.e.macfarlane at macfh.co.uk
Wed Dec 27 04:57:03 PST 2017


It has been said in these august journals that it is not possible to run 
the most recent editions of GiP on Windows XP, but actually this is not 
true, I have managed to get v3.07 to work on XP.  It has just finished 
downloading the first of this year's Royal Christmas Lectures.  For 
those interested, I explain how I accomplished this below, everyone else 
can safely ignore ...

The instructions that follow assume that the Strawberry Perl supplied 
with GiP no longer supports XP, but if this is incorrect, the following 
can be simplified.  They also supply some extra modules for 
GetFlashVideos and the W3C web page validator, although, as I write, GFV 
is not working, probably because of the recent necessity of signing in, 
and a critical module for the latter is missing as I have been unable to 
find anyone that has installed it successfully on any Windows system.  
If this seems illogical, the logic is simply that I use a single list of 
Perl modules I need to install for both Linux and Windows systems!

1)    If you don't already have GiP and its associated helper programs 
such as FFMPEG and AtomicParsley installed, begin by installing the 
latest version.

2)    Remove all previous versions of Perl, including any version of 
Strawberry Perl installed in Step 1 by going into Control Panel, Add & 
Remove Programs, and uninstalling them.  If either of the following or 
similar directories remain, delete them manually in Explorer:
     C:\Perl
     C:\Program Files\Perl

3)    Install the last or nearly so version of Active Perl that will run 
on XP, I used ...
         ActivePerl-5.20.2.2002-MSWin32-x86-64int-299195.msi
... which I downloaded a while ago, but could no longer find on the 
Active Perl site when I checked for this documentation.  I can make it 
available on request.

IMPORTANT #1:    Perl should be installed into a directory without 
spaces in its path, so NOT ...
     C:\Program Files\Perl
... but alternative suggestions are ...
     C:\Perl (the default)
... or if you prefer to keep your root directory clean ...
     C:\Programs\Perl
... which is where I installed it, having alrady installed GiP to ...
     C:\Programs\GetIPlayer

IMPORTANT #2:    Perl should be added to the system path, so choose this 
option during the setup routine.  If you also have MinGW32 installed, 
ensure that the Perl directories precede the MinGW32 directories in the 
path.  To check this, open a command console and give the command ...
     perl --version
... which should give you the same version number that you've just 
installed.

4)    Install the necessary modules which, including the extras 
described above, are ...
         Authen::SASL
         Compress::Zlib
         Crypt::Rijndael
         Data::AMF
         LWP
         Module::Find
         MP3::Info
         MP3::Tag
         Net::SMTP::SSL
         Net::SMTP::TLS
         Net::SMTP::TLS::ButMaintained
         Term::ProgressBar
         WWW::Mechanize
         XML::Simple
... but besides themselves some involve installing other prerequisite 
dependencies, and you can just about guarantee that the following three 
required modules will cause problems ...
         Data::AMF
         Encode::JIS2K
         XML::LibXML
... but never mind them for the moment.  Fire away by going into a 
command prompt with Perl on the path and running the following command, 
which should be entered as a single command line without any embedded 
carriage returns:
         cpan CPAN Authen::SASL Compress::Zlib Crypt::Rijndael LWP 
Module::Find MP3::Info MP3::Tag Net::SMTP::SSL Net::SMTP::TLS 
Net::SMTP::TLS::ButMaintained Term::ProgressBar WWW::Mechanize 
XML::Simple Data::AMF

If you do not already have a developement system installed, the above 
installations will automatically be preceded by running a MinGW + DMake 
installation.  Some time will pass, with stuff scrolling past, mostly in 
green and white, but the modules that error will produce some red; 
ignore these for the moment and let the entire command complete, errors 
or no.  Then we can deal with the problems, one by one.

5)    Data::AMF is the easiest, as it only errors in the test phase, so 
give the command ...
     cpan -T Data::AMF
... to install it without running the test phase.

6)    Next easiest is Encode::JIS2K, which needs an edit to its Perl 
make file, but, to see the wood for the trees, clear away the previous 
installation files, both those that succeeded and those that failed, by 
in Explorer deleting all the files and subdirectories, but leaving the 
'build' folder itself, from ...
     <path>\Perl\cpan\build
... so in my example ...
     C:\Programs\Perl\cpan\build

Now run ...
     cpan Encode::JIS2K
... which will fail, but will have created a new subfolder of the above 
'build' directory.  Give the command
     pushd <above new subfolder>
... to change to this new subfolder, and then ...
     notepad Makefile.PL
... overwriting line 35 to read ...
     $enc2xs = $enc2xs_fpath if (-x $enc2xs_fpath || -x 
"$enc2xs_fpath.bat");
... saving the change, and exiting.  Now give the commands ...
         perl Makefile.PL
         dmake
         dmake test
         dmake install
         popd
... all of which should run correctly, leaving you back in your original 
directory, wherever that was.  You can now delete the above new build 
subfolder, as it is no longer needed.

XML::LibXML is far more tricky, but nevertheless can be done; hold on 
tight and follow me.  There are four main difficulties:

     :-(    Before trying to install it via cpan in the normal way, 
there are some supporting programs that must be installed. These are 
available from (note that despite the parent folder being called 
'64bit', this link has BOTH 32-bit x86 and 64-bit x86_64 files in the 
same folder, choose the appropriate set for your version of XP) ...
         1)    Either 32-bit ...
ftp://ftp.zlatkovic.com/libxml/64bit/iconv-1.14-win32-x86.7z
ftp://ftp.zlatkovic.com/libxml/64bit/libxml2-2.9.3-win32-x86.7z
ftp://ftp.zlatkovic.com/libxml/64bit/zlib-1.2.8-win32-x86.7z
         Or 64-bit ...
ftp://ftp.zlatkovic.com/libxml/64bit/iconv-1.14-win32-x86_64.7z
ftp://ftp.zlatkovic.com/libxml/64bit/libxml2-2.9.3-win32-x86_64.7z
ftp://ftp.zlatkovic.com/libxml/64bit/zlib-1.2.8-win32-x86_64.7z
         2)    Either 32 bit ...
http://ftp.acc.umu.se/pub/gnome/binaries/win32/dependencies/gettext-0.18.1.1.tar.gz 

         Or 64-bit ...
http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/gettext-tools-dev_0.18.1.1-2_win64.zip

     All the contents of these zips should be extracted preserving their 
sub-directory structure to the following folder ...
         <path>\Perl\site
     ... so in my example ...
         C:\Programs\Perl\site
     ... so you should end up with at least ...
         <path>\Perl\site\bin
         <path>\Perl\site\include
         <path>\Perl\site\lib
     ... containing, as well as many files that were there before, the 
contents of the above zips.

     :-(    Once these prerequisite have been installed, the are three 
further 'tweaks' required, two at this stage, one later.
         Tweak #1:    Rename libz.a to zlib.a
             REN <path>\Perl\site\lib\libz.a zlib.a
         Tweak #2:    Under <path>\Perl\site\include, move the libxml 
folder up one level:
             MOVE <path>\Perl\site\include\libxml2\libxml 
<path>\Perl\site\include
             RD <path>\Perl\site\include\libxml2

Now we can try building XML::LibXML in the normal way, but it will still 
fail the first two times:
     cpan XML::LibXML
Once it fails for the first time, as before change to the newly created 
sub-folder of <path>\Perl\cpan\build, and then give a more informative 
first build command, remembering to change <path> to your Perl 
installation directory ...
         pushd <above new subfolder>
         perl Makefile.PL INC=-I<path>\Perl\site\include 
LIBS=-L<path>\Perl\site\lib
... but it still fails a second time at the end.  Next it's time for ...
     :-(
         Tweak #3:    Neuter the static libXML library by renaming it:
             REN <path>\Perl\site\lib\libxml2.a libxml2.a.not

Now the build process should complete manually succesfully ...
         perl Makefile.PL INC=-I<path>\Perl\site\include 
LIBS=-L<path>\Perl\site\lib
         dmake
         dmake test
         dmake install
         popd
... again leaving you back in your original directory, wherever that 
was.  You can now delete the above new build subfolder, as it is no 
longer needed.

As a final check, resubmitting the original mega cpan installation 
command from section 4) should quickly give a list of all the 
prerequisites with 'is up to date' alongside each.

Now, as long as <path>\Perl and <path>\Perl\site\bin are on your system 
path, you should be good to go.

I acknowledge the following sources for help with the above:
     Encode::JIS2K https://rt.cpan.org/Public/Bug/Display.html?id=110069
     XML::LibXML 
https://www.opswat.com/blog/installing-libxml-perl-module-microsoft-windows

HTH,
Regards.




More information about the get_iplayer mailing list