Hi

I have attached the updated version of 1-build-perl-tree.sh which works on HP-UX too.
I had to do some funky stuff to make it work!



Cheers,
Amir

On 02/10/2011 01:37 AM, Gonéri Le Bouder wrote:
2011/2/3 Gonéri Le Bouder <[email protected] <mailto:[email protected]>>

    On Tue, Feb 01, 2011 at 09:50:55PM +0330, Amir Pakdel wrote:
    > Hi Gonéri,
    > On 01/26/2011 04:00 PM, Gonéri Le Bouder wrote:
    > >On Wed, Jan 26, 2011 at 02:49:50PM +0330, Amir Pakdel wrote:

    > >I suggest to create a 100+ characters lenght file somewhere in the
    > >fusioninventory-agent_hpux_11.23-IA64_2.1.7-2 directory and add
    a check
    > >in the fusioninventory-agent. If this file is missing, we will
    print a
    > >warning.


For the moment I added a  big fat warning. I will improve the
script later.
See: http://prebuilt.fusioninventory.org/stable/hpux_11.31-IA64/

Cheers
--
     Gonéri Le Bouder
#!/bin/sh
# A script to prepare a installation of Perl + FusionInventory Agent for
# Unix/Linux
# This in order to be able to provide an installation for system without
# Perl >= 5.8

set -e

installMod () {
    modName=$1
    distName=$2
    args=$3

    if [ -z "$distName" ]; then
        distName=`echo $modName|sed 's,::,-,g'`
    fi
    archive=`ls $FILEDIR/$distName*.tar.gz`
    if [ "`uname`" = "HP-UX" ]
    then
        $PERL_PREFIX/bin/perl $CPANM --skip-installed --notest $archive $args
    else
        $PERL_PREFIX/bin/perl $CPANM --skip-installed $archive $args
    fi
    $PERL_PREFIX/bin/perl -M$modName -e1
}

cleanUp () {
    rm -rf $BUILDDIR $TMP/openssl $TMP/perl $TMP/Compress::Zlib

}

buildPerl () {

    cd $TMP
    if [ ! -f $FILEDIR/perl-$PERLVERSION.tar.gz ]; then
    echo $FILEDIR/perl-$PERLVERSION.tar.gz
        echo "Please run ./download-perl-dependencies.sh first to retrieve the 
dependencies"
        exit
    fi

    cd $BUILDDIR
    gunzip < $FILEDIR/perl-$PERLVERSION.tar.gz | tar xvf -
    cd perl-$PERLVERSION
    
    # AIX
    #./Configure -Dusethreads -Dusenm -des -Dinstallprefix=$PERL_PREFIX 
-Dsiteprefix=$PERL_PREFIX -Dprefix=$PERL_PREFIX
    #./Configure -Dusethreads -Dcc="gcc" -des -Dinstallprefix=$PERL_PREFIX 
-Dsiteprefix=$PERL_PREFIX -Dprefix=$PERL_PREFIX

    if [ "`uname`" = "HP-UX" ]
    then
        set +o errexit
        rm -f pod/perldelta.pod
        ./Configure -Duserelocatableinc -Dusethreads -des -Dcc="gcc" 
-Dinstallprefix=$PERL_PREFIX -Dsiteprefix=$PERL_PREFIX -Dprefix=$PERL_PREFIX
        until $MAKE
        do
            rm -f pod/perldelta.pod
        done
        rm -f pod/perldelta.pod
        set -o errexit
        $MAKE install
    else
        ./Configure -Duserelocatableinc -Dusethreads -des -Dcc="gcc" 
-Dinstallprefix=$PERL_PREFIX -Dsiteprefix=$PERL_PREFIX -Dprefix=$PERL_PREFIX
        $MAKE
        $MAKE install
    fi
    

}

buildOpenSSL () {

    cd $TMP
    if [ ! -f $FILEDIR/openssl-0.9.8n.tar.gz ]; then
        echo "Please run ./download-perl-dependencies.sh first to retrieve"
        echo "the dependencies"
        exit
    fi

    cd $BUILDDIR
    gunzip < $FILEDIR/openssl-0.9.8n.tar.gz | tar xvf -
    cd openssl-0.9.8n
    ./config no-shared --prefix=$TMP/openssl
    $MAKE depend
    $MAKE install
    # hack for Crypt::SSLeay
    mkdir $TMP/openssl/include/openssl/openssl
    cp $TMP/openssl/include/openssl/*.h $TMP/openssl/include/openssl/openssl

}
if [ ! -f '1-build-perl-tree.sh' ]; then
    echo "Please run the script in the root directory"
    exit 1
fi

ROOT="$PWD/.."
MAKE="make"
TMP="$PWD/tmp"
FILEDIR="$PWD/files"
PERL_PREFIX="$TMP/perl"
BUILDDIR="$TMP/build"
BASETARBALLSDIR="$PWD/base-tarballs"
MODULES="XML::NamespaceSupport Class::Inspector Digest::MD5 Net::IP 
File::ShareDir File::Copy::Recursive Net::SNMP Net::IP Proc::Daemon 
Proc::PID::File Digest::MD5 File::Copy File::Path File::Temp Net::NBName 
Parallel::ForkManager XML::SAX XML::Simple UNIVERSAL::require"
FINALDIR=$PWD
NO_CLEANUP=0
NO_PERL_REBUILD=0
NO_OPENSSL_REBUILD=0

if [ "`uname`" = "SunOS" ]; then
    if [ "`make -v|grep GNU`" = "" ]; then
        echo "make command must be GNU make on Solaris"
        echo "You can create a symlink to /usr/sfw/bin/gmake"
        exit
    fi
    if [ "`ar -V|grep GNU`" = "" ]; then
        echo "ar command should be GNU ar on Solaris"
        echo "You can create a symlink to /usr/sfw/bin/gar"
        exit
    fi
fi

PERLVERSION="5.12.1"

# Clean up
if [ "$NO_CLEANUP" = "0" ]; then
    cleanUp
fi

[ -d $TMP ] || mkdir $TMP
[ -d $BUILDDIR ] || mkdir $BUILDDIR
[ -d $BASETARBALLSDIR ] || mkdir $BASETARBALLSDIR

if [ ! -d $BUILDDIR ]; then
  echo "$BUILDDIR dir is missing"
fi



if [ "$NO_PERL_REBUILD" = "0" ]; then
    buildPerl
fi

if [ "$NO_OPENSSL_REBUILD" = "0" ]; then
    buildOpenSSL
fi

cd $BUILDDIR
gunzip < $FILEDIR/Crypt-SSLeay-0.57.tar.gz | tar xvf -
cd Crypt-SSLeay-0.57
PERL_MM_USE_DEFAULT=1 $PERL_PREFIX/bin/perl Makefile.PL --default --static 
--lib=$TMP/openssl
$MAKE install

cd $BUILDDIR
echo $PWD
archive=`ls $FILEDIR/App-cpanminus-*.tar.gz`
echo $archive
gunzip < $archive | tar xvf -
CPANM=$BUILDDIR/App-cpanminus-1.0004/bin/cpanm

if [ "`uname`" = "HP-UX" ]
then
    echo "HP-UX tar cannot handle *.tar.gz files."
    echo "Creating our own version of tar as $BUILDDIR/tar"
    cat <<EOT >$BUILDDIR/tar
#!/usr/dt/bin/dtksh

if [[ -n "\$1" && -n "\$2" && "\$1" == "*x*" && "\$1" == "*z*" ]]
then
  tmpARGS=\${1//z/}
  gzip -dc \$2 | tar \$tmpARGS -
else
  tar "\$@"
fi
EOT
    chmod 700 $BUILDDIR/tar
    PATH=$BUILDDIR/:$PATH
fi


if [ -f "/usr/include/cups/cups.h" ]; then
    echo "CUPS found, enable Net::CUPS"
    installMod "Net::CUPS"
fi

installMod "URI"
installMod "HTML::Tagset"
installMod "HTML::Parser"
installMod "LWP" "libwww-perl"
installMod "Compress::Raw::Bzip2"
installMod "Compress::Raw::Zlib"
installMod "Compress::Zlib" "IO-Compress"

# Tree dependencies not pulled by cpanm
for modName in $MODULES; do
    installMod $modName
done


cd $TMP
TARBALLNAME=` $PERL_PREFIX/bin/perl -MConfig -e'print 
$Config{osname}."_".$Config{archname}."_".$Config{osvers}.".tar"'`
tar cf $FINALDIR/$TARBALLNAME perl

mv $FINALDIR/$TARBALLNAME $BASETARBALLSDIR
_______________________________________________
Fusioninventory-devel mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/fusioninventory-devel

Répondre à