Ignore:
Timestamp:
2018-07-10T21:02:50+12:00 (6 years ago)
Author:
ak19
Message:
  1. Adding in the files required for xpdf-tools' licence in new folder redistribute. This is copied into the distribution tarball. 2. toplevel CASCADE-MAKE.sh' makedist commands creates includes customised content into the distribution tarball: just the pdf bins and the xpdf-tools licensing files (including, as specified in the licence, the xpdf man pages generated during building). 3. Found a newer version of libjpeg src: version 9c from 2018, versus the older version 6b from 2008. This builds without requiring the old patch for 64 bit machines. However, LIBJPEG.sh needed further modification: instead of the install-lib make target, the install-lib equivalent now has a longer target name. Version 9c is able to produce both libjpeg.a and libjpeg.so/.dylib. We specifically want only the former to be generated, so we now have to tell configure to disable-shared (which was the only mode for the older libjpeg version 6b). We're now also copying certain header files across to the installed area's include subfolder, as speficied in the install.txt for the new and older versions of libjpeg.
Location:
gs2-extensions/xpdf-tools/trunk/src/packages
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • gs2-extensions/xpdf-tools/trunk/src/packages/CASCADE-MAKE/LIBJPEG.sh

    r32251 r32253  
    22
    33package=jpeg
    4 version=-6b
     4#version=-6b
     5# version 9c is from 2018, see www.ijg.org. Version 6b is from 2008
     6version=-9c
     7
     8# renamed the downloaded jpegsrc.v9c.tar.gz to jpeg$version.tar.gz
     9# similarly for the earlier 6b version.
    510
    611progname=$0
     
    2833#        Error encountered running *make * stage of ./CASCADE-MAKE/LIBJPEG.sh
    2934# The solution is taken from https://sourceforge.net/p/libjpeg/bugs/12/
    30 if [[ -d "$package$version" && -f "gs-libjpeg-config.sub" ]]; then
    31     echo "*******************************************************************"
    32     echo "Using our custom gs-libjpeg-config.sub instead of the one included in $package$version"
    33     echo "Copying across gs-libjpeg-config.sub as $package$version/config.sub"
    34     echo "*******************************************************************"
    35     echo `pwd`
    36     cp "gs-libjpeg-config.sub" "$package$version/config.sub"
    37 fi
     35##if [[ -d "$package$version" && -f "gs-libjpeg-config.sub" ]]; then
     36##    echo "*******************************************************************"
     37##    echo "Using our custom gs-libjpeg-config.sub instead of the one included in $package$version"
     38##    echo "Copying across gs-libjpeg-config.sub as $package$version/config.sub"
     39##    echo "*******************************************************************"
     40##    echo `pwd`
     41##    cp "gs-libjpeg-config.sub" "$package$version/config.sub"
     42##fi
    3843
    3944# This also seems to make only the static libjpeg.a
     
    4247# http://www.linuxfromscratch.org/blfs/view/6.3/general/libjpeg.html
    4348# only the libjpeg.a is produced with this command
    44 opt_run_configure $force_config $auto_config $package $version "$prefix"
     49opt_run_configure $force_config $auto_config $package $version "$prefix" --disable-shared
    4550#opt_run_configure $force_config $auto_config $package $version "$prefix" \
    4651#    --enable-static --enable-shared
     
    5156
    5257opt_run_make $compile   $package $version
    53 opt_run_make $install   $package $version "install-lib"
     58#opt_run_make $install   $package $version "install-lib"
     59# Contrary to the install.txt in version jpeg version 9c, install-lib is an unrecognised make command
     60# I found there was an install-libLTLIBRARIES target in the Makefile, however. And that seems to at least copy over libjpeg.a
     61opt_run_make $install   $package $version "install-libLTLIBRARIES"
    5462opt_run_make $clean     $package $version "clean"
    5563opt_run_make $distclean $package $version "distclean"
     
    5765opt_run_tarclean $tarclean $package $version
    5866
     67# according to jpeg version 9c's install.txt, these 4 header files need to be copied into the include folder (besides installing libjpeg.a)
     68# if building something against the libjpeg library, as we do with xpdf-tools
     69cp $package$version/jpeglib.h $package$version/jerror.h $package$version/jconfig.h $package$version/jmorecfg.h $GEXTXPDFTOOLS_INSTALLED/include/.
     70
  • gs2-extensions/xpdf-tools/trunk/src/packages/GS-README.txt

    r32252 r32253  
    1313LIBJPEG related
    1414G. LIBJPEG and LIBTIFF
    15 - Issues building LIBJPEG on 64 bit machines and the patch
    16 
    17 H. PDF2DOM
     15- Moving from 2008's libjpeg version 6b to the newer 2018 version 9c
     16- Issues building LIBJPEG version 6b on 64 bit machines and the patch
     17
     18H. Licensing information and making the distributable tarball
     19
     20I. PDF2DOM
    1821    unused, replaced by Xpdf-Tools' more suited pdftohtml capabilities
    1922
     
    481484__________________________________________________________
    482485
    483 1. Issues building LIBJPEG on 64 bit machines and the patch
     4861. The first version of LIBJPEG to work out was version 6b, which required some patching up before it could be built, see point 2 below.
     487Besides the fact that version 6b needed patching up, it was also from 2008. I've now found a version of libjpeg from Jan 2018, called "jpegsrc.v9c.tar.gz"
     488which was downloadable from www.ijg.org at http://www.ijg.org/files/jpegsrc.v9c.tar.gz. Version 9c can build both static and dynamically linked libraries of
     489libjpeg, though we only want the former. (The older version 6b could only generate the static libjpeg.a library file, and contrary to online instructions.)
     490
     491As needed to be done with the older 6b version, this tarball was renamed to jpeg-9c.tar.gz to fit the naming pattern of its folder once extracted.
     492
     493There was an incompatibility between the existing CASCADE-MAKE/LIBJPEG.sh and the Makefile generated by configuring the Makefile.in/.am in the jpeg-9c tarball.
     494The LIBJPEG.sh would run "make install-lib"  at the end, to install the libjpeg.a in the lib folder and to install 4 header files. This is as per the install.txt
     495instructions in the older and current version of jpeg src tarball. However, the header files never got installed when doing so, whether in version 6b or the
     496current 9c. And install-lib is not a recognised target in 9c's Makefile, where the target is install-libLTLIBRARIES. So LIBJPEG.sh has been modified to use this
     497target name and to moreover copy over the header files (even though they weren't necessary when compiling xpdftools against the libjpeg 6b library previously and
     498possibly now with 9c).
     499
     500Since we want to only generate libjpeg.a and not the .so/.dylib dynamically linked versions, the latter is turned off during configure by passing --disable-shared.
     501
     502A final change made to LIBJPEG.sh was to undo it copying over the patch file "gs-libjpeg-config.sub" into the extracted jpeg tarball, since the patch was only
     503necessary for libjpeg version 6b and not for 9c. These steps have been commented out in LIBJPEG.sh now.
     504
     505
     5062. Issues building LIBJPEG VERSION 6b on 64 bit machines and the patch
     507
     508LIBJPEG version 6b is from 2008.
    484509
    485510I copied the LIBJPEG package from http://trac.greenstone.org/browser/other-projects/realistic-books/trunk/packages (also at http://trac.greenstone.org/browser/gs2-extensions/ocr/trunk/packages/cmdline).
     
    596621    in the same way now. Not sure where these automatically assigned variables come from in order to check up on them.
    597622
    598 
    599 __________________________________________________________
    600 H. PDF2DOM: tried it out, but wasn't what we wanted
     623__________________________________________________________
     624H. Licensing information and making the distributable tarball
     625__________________________________________________________
     626
     627XpdfTools' README lists which files need to be included as per its license when redistributing xpdf-tools binaries.
     628
     629Running ./CASCADE-MAKE.sh makedist does some custom steps to create a distribution tarball of the xpdf-tools we compile up:
     630it creates a temporary xpdf-tools subdirectory and copies into it the GSDLOS/bin/pdf* statically linked binaries (or dynamic executables linked
     631against mostly static libraries in the case of Macs), the GSDLOS/man folder as well as the "redistribute" folder containing further compulsory
     632files as required by xpdf-tools' license.
     633This temporary xpdf-tools subfolder is then passed as the whitelist folder to the CASCADE-MAKE makedist command, and this folder and its
     634contents are then tarred up into the distribution tarball xpdf-tools-GSDLOS.tar.gz. Finally, the temporary xpdf-tools subfolder is deleted.
     635
     636
     637__________________________________________________________
     638I. PDF2DOM: tried it out, but wasn't what we wanted
    601639__________________________________________________________
    602640Using PDFBox to convert a PDF to full HTML, both images and text and placed correctly with respect to each other, is tricky, see https://stackoverflow.com/questions/9671239/pdfbox-convert-a-pdf-to-text-or-html-including-images-from-the-pdf
Note: See TracChangeset for help on using the changeset viewer.