LibreOffice

2013-09-05
2013-11-21
  • porting issues regarding LibreOffice

    i needed to increase several quota to get the configure to start normally:
    prclm=100
    fillm=4096
    bytlm=700000
    jtquota=30000
    wsextent=200000
    pgflquo=2300000

    maybe too high, but for the moment i don't care...

     
    Last edit: Ton van der Zwet 2013-09-05
  • Started the port of LibreOffice 4.0.4.2.

    issues so far:
    VMS is not a valid os for LibreOffice --> for the moment ignored by using --build=alpha-dec-linux
    CUPS is needed --> --disable-cups
    pkg-config is needed --> looking for a working pkg-config (see this wiki)

     
  • John Malmberg
    John Malmberg
    2013-09-05

    pkg-config porting thread.

    Pkg-config now needs a more up to date port of glib, which is also a component of GTK+. pkg-config contains a version of glib that can be used sort of like a bootstrap, because I think that the actual glib project needs pkg-config to build it.

     
    • John, i found your 0.21 version on ftp://encompasserve.org/gnv/. As was mentioned in the conference call of 5 september it may be sufficient for now to run the scripts further. I report any issues with this old version.

       
  • proceeding with checking the dependancies on other packages by the configure script. I ended up installing (most of) the previously ported packages of John. Some issues regarding the dependancies build in of the older ports by John (product name had JEM, f.i. didn't recognize the newer zlib...). So i had to instal the older (JEM) version. I think we should bring all the ported packages under a single dependancy strategy (vmsports?).

    Now stranded with a dependancy on a newer version of make (need 3.81, we have 3.78.1). see the attached configure output.

    bash-4.2$ bash ./configure --enable-verbose --enable-debug --build=alpha-dec-linux --disable-cups
    rm: cannot remove `conf566': is a directory



    Running LibreOffice build configuration.
    *


    checking build system type... alpha-dec-linux-gnu
    checking host system type... alpha-dec-linux-gnu
    checking for grep that handles long lines and -e... /bin/grep
    checking for egrep... /bin/grep -E
    checking for grep... (cached) /bin/grep
    checking for sed... /bin/sed
    checking whether build target is Release Build... no
    checking whether to sign windows build... no
    checking for gawk... gawk
    checking for gawk... /bin/gawk
    checking for bash... /bin/bash
    checking for GNU or BSD tar... gnutar
    checking for tar's option to strip components... --strip-components
    checking for ccache... not found
    checking gcc home...
    checking for gcc... gcc
    checking whether the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables...
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... no
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... none needed
    checking for gcc... /bin/gcc
    checking whether to build with additional debug utilities... no
    checking whether to do a debug build... yes
    checking whether to use selective debuginfo... no, for all
    checking whether to include symbols while preserve optimization... no
    checking for explicit CFLAGS... no
    checking for explicit CXXFLAGS... no
    checking for explicit OBJCFLAGS... no
    checking for explicit OBJCXXFLAGS... no
    checking for explicit LDFLAGS... no
    checking which package format to use... native
    checking whether to enable crashdump feature... no
    checking whether to turn warnings to errors... no
    checking whether to have assert to abort in release code... no
    checking whether to use linkoo for the smoketest installation... yes
    checking whether to use link-time optimization... no
    checking whether to enable CUPS support... no
    checking for pkg-config... /usr/bin/pkg-config
    checking pkg-config is at least version 0.9.0... yes
    checking for FONTCONFIG... yes
    checking whether we want to fetch tarballs... "yes, if we use them"
    checking whether to build help... yes
    checking whether to include MySpell dictionaries... yes
    checking whether to use dicts from external paths... yes
    checking for spelling dictionary directory... file:///usr/share/hunspell
    checking for hyphenation patterns directory... file:///usr/share/hyphen
    checking for thesaurus directory... file:///usr/share/mythes
    checking whether to enable pch feature... no, obsolete
    checking for GNU make... make
    checking the GNU make version...
    configure: error: failed (make version >= 3.81
    needed
    bash-4.2$ make --version
    GNU Make version 3.78.1, by Richard Stallman and Roland McGrath.
    Built for VMS
    Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
    Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.
    There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
    PARTICULAR PURPOSE.

    Report bugs to bug-make@gnu.org.

    bash-4.2$

     
  • John Malmberg
    John Malmberg
    2013-09-09

    You can uninstall the old ZLIB and install the new one and it will work. You have to override the PCSI install warnings about the dependencies.

    The PCSI install process can not deal with a kit changing the prefix from JEM to VMSPORTS or GNV.

     
  • Eric Robertson
    Eric Robertson
    2013-11-17

    Ton,

    Just to see what other barriers stand in the way of the configure step, I would copy the configure script from the SRC_ROOT directory into the VMS_ROOT directory and then edit the version in the VMS_ROOT directory to alter the minimum version of make it will accept so that the current version of make in GNV (3.78.1) will pass the test. This will at least let the rest of the configure script run (which won't need make until after configure is finished). This way you can at least see what other issues (if any) occur in the configure script after the test for the version of make so that you can work on these issues until a new version of GNU make is made available.

     
  • I got some progress. Installed the 3.82 version of make --> configure happy :-)
    installed perl (the next show stopper) and at the advise of John installed the following scrip in /usr/bin:

    EAGLE> type gnv$gnu:[usr.bin]perl.
    #! /bin/sh
    /perl_root/perl $*

    The result is a failure in the configure script.

    configure:11764: checking the GNU make version
    configure:11769: result: make 3.82
    configure:11870: checking whether GNU make supports the 'file' function
    configure:11887: result: no
    configure:11903: checking for --hash-style gcc linker support
    configure:11956: result: no
    configure:11965: checking for perl
    configure:11983: found /usr/bin/perl
    configure:11995: result: /usr/bin/perl
    configure:12014: checking the Perl version
    configure:12021: result: checked (perl 5)
    configure:12028: checking for required Perl modules
    configure:12034: error: Failed to find some modules

    The part of the script that is failing is: perl -e 'use Archive::Zip; use Cwd; use Digest::MD5'

    the reproducer:

    $cat perltest.sh
    if `perl -e 'use Archive::Zip; use Cwd; use Digest::MD5'`; then
    echo "result: all modules found"
    else
    echo "result: Failed to find some modules"
    fi

    BASH:
    bash-4.2$ bash --debug --verbose ./perltest.sh
    if `perl -e 'use Archive::Zip; use Cwd; use Digest::MD5'`; then
    echo "result: all modules found"
    else
    echo "result: Failed to find some modules"
    fi
    perl -e 'use Archive::Zip; use Cwd; use Digest::MD5'
    syntax error at -e line 1, at EOF
    Execution of -e aborted due to compilation errors.
    %SYSTEM-F-ABORT, abort
    result: Failed to find some modules
    bash-4.2$

    DCL:
    $ perl -e 'use Archive::Zip; use Cwd; use Digest::MD5'
    $ sh sym $status
    $STATUS == "%X00000001"
    $ perl -e 'bla'
    No code specified for -e.
    %SYSTEM-F-ABORT, abort
    $ sh sym $status
    $STATUS == "%X0000002C"

     
    • Bill Pedersen
      Bill Pedersen
      2013-11-20

      Well, I am not the perl expert. So I have cc'd Craig. Maybe he can give
      you some pointers.

      Bill.

       
      Last edit: John Malmberg 2013-11-20
  • John Malmberg
    John Malmberg
    2013-11-20

    DCL test was invalid, because of quoting issues.

    EAGLE> @disk$bigdisk:[vms$common.perl-5_18]perl_setup.com
    EAGLE> perl -e "printf 'hello'"
    hello
    EAGLE> perl -e 'printf "hello"'

    The issue appears to be in the script hack. Looks like to pass configure, we need to come up with a better hack.

    The quoting is being stripped before it is passed to the actual perl command in the script.

    Maybe use the alias command for perl instead of a script?

    bash-4.2$ /perl_root/perl -e 'printf "hello\n"'
    hello
    bash-4.2$ perl -e 'printf "hello\n"'
    bash-4.2$

    The e-mail gateway to these forums does not work very well. Please use the web form for replies.

     
  • Craig A. Berry
    Craig A. Berry
    2013-11-21

    E-mail reply bounced, so let's see what the web form can do.


    From: Ton van der Zwet [mailto:tonvanderzwet@users.sf.net]
    Sent: Wednesday, November 20, 2013 4:33 PM
    To: pedersen@ccsscorp.com
    Subject: [vms-ports:discussion] LibreOffice


    BASH:
    bash-4.2$ bash --debug --verbose ./perltest.sh
    if perl -e 'use Archive::Zip; use Cwd; use Digest::MD5'; then
    echo "result: all modules found"
    else
    echo "result: Failed to find some modules"
    fi
    perl -e 'use Archive::Zip; use Cwd; use Digest::MD5'
    syntax error at -e line 1, at EOF
    Execution of -e aborted due to compilation errors.
    %SYSTEM-F-ABORT, abort
    result: Failed to find some modules
    bash-4.2$

    For starters, you're throwing away the result of the backticks, which is where any error messages would be. Printing those messages looks like so:

    bash-4.2$ echo `/perl_root/perl -e 'use Archive::Zip; use Cwd; use Digest::MD5'`
    Can't locate Archive/Zip.pm in @INC (you may need to install the Archive::Zip module) (@INC contains: /perl_root/lib/site_perl/VMS_IA64 /perl_root/lib
    /site_perl /perl_root/lib/VMS_IA64/5_18_1 /perl_root/lib .) at -e line 1.
    BEGIN failed--compilation aborted at -e line 1.
    %SYSTEM-F-ABORT, abort
    

    And it's completely unsurprising "you may need to install the Archive::Zip module" because that is not a stock module that comes with the Perl distribution. It's available from CPAN at:

    http://search.cpan.org/CPAN/authors/id/P/PH/PHRED/Archive-Zip-1.33.tar.gz


    DCL:
    $ perl -e 'use Archive::Zip; use Cwd; use Digest::MD5'
    $ sh sym $status
    $STATUS == "%X00000001"

    In DCL (unlike bash), single quotes aren't quotes -- they are symbol substitution operators. So you've substituted a symbol that has no value and run the equivalent of:

    $ perl -e ""
    

    What you likely meant to run was:

    $ perl -e "use Archive::Zip; use Cwd; use Digest::MD5"
    
     
  • John Malmberg
    John Malmberg
    2013-11-21

    E-mail replies to source-forge forums do not work well. Things are getting better. It used to start a new topic for each reply. As it is any e-mail reply will usually need a manual edit.

     
  • John Malmberg
    John Malmberg
    2013-11-21

    Using an alias instead of a script fixes the quoting issues.

    Eventually we should provide a script that provides aliases for all the perl utilities so that the environment looks like on Linux.

    bash-4.2$ alias perl=/perl_root/perl
    bash-4.2$ perl -e 'printf "hello\n"'
    hello
    bash-4.2$
    

    This method should also work better for Python and Java, etc.