You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Rainer Jung <ra...@kippdata.de> on 2006/11/17 16:34:18 UTC

Re: svn commit: r452464 - /tomcat/connectors/trunk/jk/native/scripts/build/instdso.sh

Hello Jean-Frederic,

there is a problem with the instdso.sh you checked in. It removes a 
couple of files at the end, including the mod_jk.la file. When we run 
"make install" afterwards, apxs again tries to run instdso.sh from it's 
apache installation and complains about the missing mod_jk.la.

I compared the instdso.sh with the ones in Apache httpd 2.0 and 2.3 and 
they both do not have the 4 remove statements included in the mod_jk one.

Are they needed? Could we just remove those?

Regards,

Rainer

jfclere@apache.org wrote:
> Author: jfclere
> Date: Tue Oct  3 05:52:21 2006
> New Revision: 452464
> 
> URL: http://svn.apache.org/viewvc?view=rev&rev=452464
> Log:
> libtool is not able to install on HP-UX, the Apache httpd script here does it.
> 
> Added:
>     tomcat/connectors/trunk/jk/native/scripts/build/instdso.sh   (with props)
> 
> Added: tomcat/connectors/trunk/jk/native/scripts/build/instdso.sh
> URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/scripts/build/instdso.sh?view=auto&rev=452464
> ==============================================================================
> --- tomcat/connectors/trunk/jk/native/scripts/build/instdso.sh (added)
> +++ tomcat/connectors/trunk/jk/native/scripts/build/instdso.sh Tue Oct  3 05:52:21 2006
> @@ -0,0 +1,96 @@
> +#!/bin/sh
> +#
> +# Licensed to the Apache Software Foundation (ASF) under one or more
> +# contributor license agreements.  See the NOTICE file distributed with
> +# this work for additional information regarding copyright ownership.
> +# The ASF licenses this file to You under the Apache License, Version 2.0
> +# (the "License"); you may not use this file except in compliance with
> +# the License.  You may obtain a copy of the License at
> +#
> +#     http://www.apache.org/licenses/LICENSE-2.0
> +#
> +# Unless required by applicable law or agreed to in writing, software
> +# distributed under the License is distributed on an "AS IS" BASIS,
> +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> +# See the License for the specific language governing permissions and
> +# limitations under the License.
> +#
> +#
> +# instdso.sh - install Apache DSO modules
> +#
> +# we use this instead of libtool --install because:
> +# 1) on a few platforms libtool doesn't install DSOs exactly like we'd
> +#    want (weird names, doesn't remove DSO first)
> +# 2) we never want the .la files copied, so we might as well copy
> +#    the .so files ourselves
> +
> +if test "$#" != "3"; then
> +    echo "wrong number of arguments to instdso.sh"
> +    echo "Usage: instdso.sh SH_LIBTOOL-value dso-name path-to-modules"
> +    exit 1
> +fi
> +
> +SH_LIBTOOL=`echo $1 | sed -e 's/^SH_LIBTOOL=//'`
> +DSOARCHIVE=$2
> +DSOARCHIVE_BASENAME=`basename $2`
> +TARGETDIR=$3
> +DSOBASE=`echo $DSOARCHIVE_BASENAME | sed -e 's/\.la$//'`
> +TARGET_NAME="$DSOBASE.so"
> +
> +SYS=`uname -s`
> +
> +if test "$SYS" = "AIX"
> +then
> +    # on AIX, shared libraries remain in storage even when
> +    # all processes using them have exited; standard practice
> +    # prior to installing a shared library is to rm -f first
> +    CMD="rm -f $TARGETDIR/$TARGET_NAME"
> +    echo $CMD
> +    $CMD || exit $?
> +fi
> +
> +CMD="$SH_LIBTOOL --mode=install cp $DSOARCHIVE $TARGETDIR/"
> +echo $CMD
> +$CMD || exit $?
> +
> +if test "$SYS" = "OS/2"
> +then
> +    # on OS/2, aplibtool --install doesn't copy the .la files & we can't
> +    # rename DLLs to have a .so extension or they won't load so none of the 
> +    # steps below make sense.
> +    exit 0
> +fi
> +
> +if test -s "$TARGETDIR/$DSOARCHIVE_BASENAME"
> +then
> +  DLNAME=`sed -n "/^dlname=/{s/.*='\([^']*\)'/\1/;p;}" $TARGETDIR/$DSOARCHIVE_BASENAME`
> +  LIBRARY_NAMES=`sed -n "/^library_names/{s/library_names='\([^']*\)'/\1/;p;}" $TARGETDIR/$DSOARCHIVE_BASENAME`
> +  LIBRARY_NAMES=`echo $LIBRARY_NAMES | sed -e "s/ *$DLNAME//g"`
> +fi
> +
> +if test -z "$DLNAME"
> +then
> +  echo "Warning!  dlname not found in $TARGETDIR/$DSOARCHIVE_BASENAME."
> +  echo "Assuming installing a .so rather than a libtool archive."
> +  exit 0
> +fi
> +
> +if test -n "$LIBRARY_NAMES"
> +then
> +    for f in $LIBRARY_NAMES
> +    do
> +        rm -f $TARGETDIR/$f
> +    done
> +fi
> +
> +if test "$DLNAME" != "$TARGET_NAME"
> +then
> +    mv $TARGETDIR/$DLNAME $TARGETDIR/$TARGET_NAME
> +fi
> +
> +rm -f $TARGETDIR/$DSOARCHIVE_BASENAME
> +rm -f $TARGETDIR/$DSOBASE.a
> +rm -f $TARGETDIR/lib$DSOBASE.a
> +rm -f $TARGETDIR/lib$TARGET_NAME
> +
> +exit 0
> 
> Propchange: tomcat/connectors/trunk/jk/native/scripts/build/instdso.sh
> ------------------------------------------------------------------------------
>     svn:executable = *
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: svn commit: r452464 - /tomcat/connectors/trunk/jk/native/scripts/build/instdso.sh

Posted by Rainer Jung <ra...@kippdata.de>.
Hello again,

I got the argument wrong, but there is still a problem, so I need to

-1 (veto)

your commit to the Makefile.in. The instdso.sh from apache httpd also
has the remove lines, but they use it in a different situation, ie when
they want to install the shared lib into the modules directory. Then it
does make sense to not also copy the *.la.

Here the instdso is being called to simply convert *.la to *.so, and
that's where we still need the *.la.

You didn't give details, which original problem you tried to solve.
Maybe we can find a better solution. The situation as it is at the
moment is a release show stopper (and I plan to start releasing next week).

Regards,

Rainer

Rainer Jung schrieb:
> Hello Jean-Frederic,
> 
> there is a problem with the instdso.sh you checked in. It removes a
> couple of files at the end, including the mod_jk.la file. When we run
> "make install" afterwards, apxs again tries to run instdso.sh from it's
> apache installation and complains about the missing mod_jk.la.
> 
> I compared the instdso.sh with the ones in Apache httpd 2.0 and 2.3 and
> they both do not have the 4 remove statements included in the mod_jk one.
> 
> Are they needed? Could we just remove those?
> 
> Regards,
> 
> Rainer
> 
> jfclere@apache.org wrote:
>> Author: jfclere
>> Date: Tue Oct  3 05:52:21 2006
>> New Revision: 452464
>>
>> URL: http://svn.apache.org/viewvc?view=rev&rev=452464
>> Log:
>> libtool is not able to install on HP-UX, the Apache httpd script here
>> does it.
>>
>> Added:
>>     tomcat/connectors/trunk/jk/native/scripts/build/instdso.sh   (with
>> props)
>>
>> Added: tomcat/connectors/trunk/jk/native/scripts/build/instdso.sh
>> URL:
>> http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/scripts/build/instdso.sh?view=auto&rev=452464
>>
>> ==============================================================================
>>
>> --- tomcat/connectors/trunk/jk/native/scripts/build/instdso.sh (added)
>> +++ tomcat/connectors/trunk/jk/native/scripts/build/instdso.sh Tue
>> Oct  3 05:52:21 2006
>> @@ -0,0 +1,96 @@
>> +#!/bin/sh
>> +#
>> +# Licensed to the Apache Software Foundation (ASF) under one or more
>> +# contributor license agreements.  See the NOTICE file distributed with
>> +# this work for additional information regarding copyright ownership.
>> +# The ASF licenses this file to You under the Apache License, Version
>> 2.0
>> +# (the "License"); you may not use this file except in compliance with
>> +# the License.  You may obtain a copy of the License at
>> +#
>> +#     http://www.apache.org/licenses/LICENSE-2.0
>> +#
>> +# Unless required by applicable law or agreed to in writing, software
>> +# distributed under the License is distributed on an "AS IS" BASIS,
>> +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
>> implied.
>> +# See the License for the specific language governing permissions and
>> +# limitations under the License.
>> +#
>> +#
>> +# instdso.sh - install Apache DSO modules
>> +#
>> +# we use this instead of libtool --install because:
>> +# 1) on a few platforms libtool doesn't install DSOs exactly like we'd
>> +#    want (weird names, doesn't remove DSO first)
>> +# 2) we never want the .la files copied, so we might as well copy
>> +#    the .so files ourselves
>> +
>> +if test "$#" != "3"; then
>> +    echo "wrong number of arguments to instdso.sh"
>> +    echo "Usage: instdso.sh SH_LIBTOOL-value dso-name path-to-modules"
>> +    exit 1
>> +fi
>> +
>> +SH_LIBTOOL=`echo $1 | sed -e 's/^SH_LIBTOOL=//'`
>> +DSOARCHIVE=$2
>> +DSOARCHIVE_BASENAME=`basename $2`
>> +TARGETDIR=$3
>> +DSOBASE=`echo $DSOARCHIVE_BASENAME | sed -e 's/\.la$//'`
>> +TARGET_NAME="$DSOBASE.so"
>> +
>> +SYS=`uname -s`
>> +
>> +if test "$SYS" = "AIX"
>> +then
>> +    # on AIX, shared libraries remain in storage even when
>> +    # all processes using them have exited; standard practice
>> +    # prior to installing a shared library is to rm -f first
>> +    CMD="rm -f $TARGETDIR/$TARGET_NAME"
>> +    echo $CMD
>> +    $CMD || exit $?
>> +fi
>> +
>> +CMD="$SH_LIBTOOL --mode=install cp $DSOARCHIVE $TARGETDIR/"
>> +echo $CMD
>> +$CMD || exit $?
>> +
>> +if test "$SYS" = "OS/2"
>> +then
>> +    # on OS/2, aplibtool --install doesn't copy the .la files & we can't
>> +    # rename DLLs to have a .so extension or they won't load so none
>> of the +    # steps below make sense.
>> +    exit 0
>> +fi
>> +
>> +if test -s "$TARGETDIR/$DSOARCHIVE_BASENAME"
>> +then
>> +  DLNAME=`sed -n "/^dlname=/{s/.*='\([^']*\)'/\1/;p;}"
>> $TARGETDIR/$DSOARCHIVE_BASENAME`
>> +  LIBRARY_NAMES=`sed -n
>> "/^library_names/{s/library_names='\([^']*\)'/\1/;p;}"
>> $TARGETDIR/$DSOARCHIVE_BASENAME`
>> +  LIBRARY_NAMES=`echo $LIBRARY_NAMES | sed -e "s/ *$DLNAME//g"`
>> +fi
>> +
>> +if test -z "$DLNAME"
>> +then
>> +  echo "Warning!  dlname not found in $TARGETDIR/$DSOARCHIVE_BASENAME."
>> +  echo "Assuming installing a .so rather than a libtool archive."
>> +  exit 0
>> +fi
>> +
>> +if test -n "$LIBRARY_NAMES"
>> +then
>> +    for f in $LIBRARY_NAMES
>> +    do
>> +        rm -f $TARGETDIR/$f
>> +    done
>> +fi
>> +
>> +if test "$DLNAME" != "$TARGET_NAME"
>> +then
>> +    mv $TARGETDIR/$DLNAME $TARGETDIR/$TARGET_NAME
>> +fi
>> +
>> +rm -f $TARGETDIR/$DSOARCHIVE_BASENAME
>> +rm -f $TARGETDIR/$DSOBASE.a
>> +rm -f $TARGETDIR/lib$DSOBASE.a
>> +rm -f $TARGETDIR/lib$TARGET_NAME
>> +
>> +exit 0
>>
>> Propchange: tomcat/connectors/trunk/jk/native/scripts/build/instdso.sh
>> ------------------------------------------------------------------------------
>>
>>     svn:executable = *
>>
>>
>>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org