File:  [parser3project] / parser3 / INSTALL
Revision 1.45: download - view: text, annotated - select for diffs - revision graph
Fri Dec 9 07:18:07 2005 UTC (20 years, 7 months ago) by paf
Branches: MAIN
CVS tags: HEAD
. merged latest fixes from 3.2.0

0.Assuming your perform your builds in $HOME directory 
  and suggested subdirectories.

1.What is the process to compile Parser3?

  First, you must have LIBGC installed (conservative garbage collector for C++).
      libgc >= 6.6
    
    Installation sequence of this library:

    mkdir $HOME/parser3project
    mkdir $HOME/parser3project/src
    cd $HOME/parser3project/src
    wget http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.6.tar.gz
    gunzip -c gc6.6.tar.gz | tar vxf -
    cd gc6.6
    ./configure --prefix=$HOME/parser3project/gc --disable-threads --disable-shared --silent
    make install

    Then you can use these Parser3 configure options to use that statically compiled gc:
        --with-static-gc=$HOME/parser3project/gc/lib
	In case you already have libgc.so and want to link parser against it, 
	you can this Parser3 configure option:
        --with-shared-gc=/path/to/gc/lib

    NOTE:
    On some platforms there is special version of libgc patched to support some
    local piece of subtlety.
    Official libgc does not work there, use special version instead.
    (OpenBSD reported to be one of those)

  As most UNIX programs Parser3 follows the "standard":

  mkdir $HOME/parser3project
  cd $HOME/parser3project
  gunzip -c parser3-x.x.tar.gz | tar xvf -
  mv parser3-x.x parser3
  cd parser3
  ./configure --prefix=$HOME/parser3install --silent
  make
  
  That renaming is needed for SQL drivers to be able to find 
  necessary include-file in Parser3 sources.

  NOTE:
  On some system you should run 'gmake'.

  NOTE:
  By default your would get 'parser3' binary without support of these features:
    * xml(xdoc and xnode classes)
  Read section (3) on getting xml-abled parser.


  Read section (4) on configure options.

2.What is the process to install Parser3?

  make install

  Installation layout:
    $prefix/bin/
      parser3             -- CGI and command line Parser3 interpreter
      auto.p.dist         -- configuration file sample, 
                             copy it to auto.p and adjust to your needs
    $prefix/etc/
      parser3.charsets/   -- charset definition files
        koi8-r.cfg        -- cyrillic charset [KOI8-R encoding]
        windows-1250.cfg  -- central europian charset [windows-1250 encoding]
        windows-1251.cfg  -- cyrillic charset [windows-1251 encoding]
        windows-1257.cfg  -- baltic charset [windows-1257 encoding]

3.What other libraries are needed to compile/install parser? 

3a. In case you wish XML(xdoc and xnode classes) support, you need libraries
      libxml2 >= 2.6.22
      libxslt >= 1.1.15
      glib >= 1.2.10 
      gdome2 => 0.8.1
    on your system, and specify path to them to Parser3 configure script.

    Sources of libgdome library must be patched prior to compile. [library author bug confirmation pending]

    Installation sequence of these libraries to $HOME/parser3project/gnome:

    libxml2:

    cd $HOME/parser3project/src
    mkdir $HOME/parser3project
    wget --passive-ftp ftp://xmlsoft.org/libxml2-2.6.22.tar.gz
    gunzip -c libxml2-2.6.22.tar.gz | tar vxf -
    cd libxml2-2.6.22
    #sax1, output, tree, xinclude[in libxslt], html[in libxslt, mode=html?] xptr[xinclude]-- needed!
    ./configure --prefix=$HOME/parser3project/gnome \
      --without-iconv --without-threads --without-debug \
      --without-iso8859x --without-legacy \
      --without-pattern --without-push --without-python \
      --without-reader --without-writer --without-readline --without-regexps \
      --without-schemas --without-schematron \
      --without-modules \
      --without-zlib \
      --disable-shared --silent
	echo "int main(){return 0;}">testapi.c
	echo "int main(){return 0;}">runtest.c
    make install

    libxslt:

    cd $HOME/parser3project/src
    wget --passive-ftp ftp://xmlsoft.org/libxslt-1.1.15.tar.gz
    gunzip -c libxslt-1.1.15.tar.gz | tar vxf -
    cd libxslt-1.1.15
    ./configure --with-libxml-prefix=$HOME/parser3project/gnome --prefix=$HOME/parser3project/gnome --without-debug --without-debugger --without-crypto --without-plugins --disable-shared  --silent
    make install

    glib:

    cd $HOME/parser3project/src
    #on freebsd5 this is reported to work: 
    #wget --passive-ftp ftp://ftp.gtk.org/pub/gtk/v1.1/glib-1.1.16.tar.gz
    wget --passive-ftp ftp://ftp.gtk.org/pub/gtk/v1.2/glib-1.2.10.tar.gz
    gunzip -c glib-1.2.10.tar.gz | tar vxf -
    cd glib-1.2.10
    ./configure --prefix=$HOME/parser3project/gnome --disable-debug --disable-shared  --silent
    make install

    gdome2:

    cd $HOME/parser3project/src
    wget http://gdome2.cs.unibo.it/tarball/gdome2-0.8.1.tar.gz
    gunzip -c gdome2-0.8.1.tar.gz | tar vxf -
    cd gdome2-0.8.1
    patch -p0 < $HOME/parser3project/parser3/src/lib/patches/gdome2.patch

    #copy these additional headers into install includes directory
    mkdir -p $HOME/parser3project/gnome/include/libgdome/gdomecore
    cp libgdome/gdomecore/gdome-xml-node.h $HOME/parser3project/gnome/include/libgdome/gdomecore
    cp libgdome/gdomecore/gdome-xml-document.h $HOME/parser3project/gnome/include/libgdome/gdomecore
    
    set path=($path $HOME/parser3project/gnome/bin)
    ./configure --enable-glib-1 --disable-glibtest \
      --prefix=$HOME/parser3project/gnome \
      --disable-shared  --silent
    make install

    

    Parser3 configure options, choose whether you need static or dynamic linkage with xml libs:
        --with-static-xml=$HOME/parser3project/gnome
        --with-shared-xml=$HOME/parser3project/gnome

    NOTE:
    In case your glib as installed into some other prefix,
    specify it's configuration file with
        --with-glib-config=/path/to/your/glib-config
    NOTE:
    In case you are using SHARED xml libraries, you may want to link in direct path to them,
    use this key to specify which linker key to use do do that:
        --with-pathlink=LKEY    put dynamic libraries paths to binary
                                using linker key (-R, -rpath-link)

    Sample:
    cd $HOME/parser3project/parser3
    ./configure --prefix=$HOME/parser3install \
        --with-static-gc=$HOME/parser3project/gc/lib \
        --with-static-xml=$HOME/parser3project/gnome \
        --with-sendmail="/usr/sbin/sendmail -i -t -f postmaster" \
        --silent
	make install

3b. In case you wish $mail:receive support you need libraries
      glib >= 1.2.10
      gmime >= 1.0.1 [http://spruce.sourceforge.net/gmime/sources/v1.0/gmime-1.0.8.tar.gz]
    on your system, and specify path to them to Parser3 configure script.

    You may have already installed glib at 3b step.

    glib:

    cd $HOME/parser3project/src
    #on freebsd5 this is reported to work: ftp://ftp.gtk.org/pub/gtk/v1.1/glib-1.1.16.tar.gz
    wget --passive-ftp ftp://ftp.gtk.org/pub/gtk/v1.2/glib-1.2.10.tar.gz
    gunzip -c glib-1.2.10.tar.gz | tar vxf -
    cd glib-1.2.10
    ./configure --prefix=$HOME/parser3project/gnome --silent
    make install

    gmime:

    cd gmime-x.x.x
    ./configure --prefix=$HOME/parser3project/gnome
    make install

    Parser3 configure options, choose whether you need static or dynamic linkage with xml libs:
        --with-static-mailreceive=$HOME/parser3project/gnome
        --with-shared-mailreceive=$HOME/parser3project/gnome

    NOTE:
    In case your glib as installed into some other prefix,
    specify it's configuration file with
        --with-glib-config=/path/to/your/glib-config
    NOTE:
    In case you are using SHARED mime library, you may want to link in direct path to it,
    use this key to specify which linker key to use do do that:
        --with-pathlink=LKEY    put dynamic libraries paths to binary
                                using linker key (-R, -rpath-link)

4.

  In case you're not root on machine you're installing Parser,
  we recommend you to do:
  ./configure --prefix=$HOME/parser3install
  and afterwards copy $HOME/parser3install/bin/parser3 to your CGI directory
  or make a symlink [if your web server configured to follow symlinks].

  You can disable any exec operations by setting
  --disable-execs
  option to configure.
  file::exec, file::cgi and mail:send (unix version) methods would be disabled.

  You can enable reading and executing files, not belonging to group+user 
  other then effective by setting
  --disable-safe-mode
  option to configure.
  
  You can disable user-configured sendmail commands by forcing it, setting
  --with=sendmail="COMMAND"
  option to configure, for example:
  --with-sendmail="/usr/sbin/sendmail -i -t -f postmaster"

  In case you are experiencing problem with gcc runtime exception handling,
  try to configure with
  --with-sjlj-exceptions
  option.  

  By default libstdc++ is linked statically, you can re-enable dynamic libstdc++ linkage by specifying
  --with-dynamic-stdcpp
  option to configure.  


  Some root config options can be specified at configure time, and would override autodetects.

  List of enabled charsets:
  --with-charsets=CHARSET[,CHARSET,...]  Enables charsets in root config (windows-1251,
                          windows-1250 windows-1257 koi8-r; Default is windows-1251)
  SQL clients:
  --with-mysql-client=mysqlclientlib?params
  --with-pgsql-client=pgsqlclientlib?params
  --with-oracle-client=oracleclientlib?params
  
5.
  If you need to build apache 1.3 parser module, get source distribution of apache 1.3,
  run configure there, then run parser configure with one more option:
  --with-apache13=Apache13 source distribution directory
  after 'make' go to that directory and run

  ./p3runConfigure <any additional options to apache configure to pass>
  
  example:
  ./p3runConfigure --prefix=$D/apache13install --enable-module=rewrite

  WARNING: if you want to use apache configure option --enable-shared=max, do this:
  ./p3runConfigure --enable-shared=max --disable-shared=mod_parser3.c
  
Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)

$Id: INSTALL,v 1.45 2005/12/09 07:18:07 paf Exp $

E-mail: