Project

General

Profile

Bug #101

rpath issues with libprelude[db] perl bindings

Added by over 13 years ago. Updated about 10 years ago.

Status:
Closed
Priority:
Normal
Target version:
Start date:
Due date:
% Done:

0%

Resolution:
fixed

Description

https://bugs.gentoo.org/show_bug.cgi?id=105759

Compiling in a staging directory included the rpath of the staging directory in the perl module library rpath.

Patches available (within 1 day)
http://www.gentoo.org/cgi-bin/viewcvs.cgi/dev-libs/libpreludedb/files/
http://www.gentoo.org/cgi-bin/viewcvs.cgi/dev-libs/libprelude/files/

libprelude-0.9.0-perlpathfix.patch View - libprelude-0.9.0-perlpathfix.patch (980 Bytes) admin admin, 10/01/2005 06:45 AM

libpreludedb-0.9.0-perlpathfix.patch View - libpreludedb-0.9.0-perlpathfix.patch (894 Bytes) admin admin, 10/01/2005 06:46 AM

libprelude-0.9.0-perlpathfix.2.patch View - libprelude-0.9.0-perlpathfix.patch (1.89 KB) admin admin, 10/03/2005 01:54 AM

History

#1 Updated by Yoann VANDOORSELAERE over 13 years ago

Unfortunately, these patch will break the Perl bindings:

The problem is that [[MakeMaker]] will remove library it can not find when linking the module. Thus, if you compile the module on a system where libprelude is not yet installed, the module won't be linked to libprelude at all. This is what happen with your patch:

cd perl && LANG="" DESTDIR= LIBDIR=/home/yoann/dev/prelude/bin/lib /usr/bin/perl Makefile.PL
Note (probably harmless): No library found for -lprelude
Note (probably harmless): No library found for -lprelude
Writing Makefile for Prelude

(...)

Running Mkbootstrap for Prelude ()
chmod 644 Prelude.bs
rm -f blib/arch/auto/Prelude/Prelude.so
LD_RUN_PATH="/home/yoann/dev/prelude/bin/lib:/usr/lib64" x86_64-pc-linux-gnu-gcc  -L../..//src/.libs -pthread -shared Prelude.o  -o blib/arch/auto/Prelude/Prelude.so   -L/home/yoann/dev/prelude/bin/lib -L/usr/lib64 -lgnutls -L/usr/lib64 -lgcrypt -L/usr/lib64 -lgpg-error -lz -lrt -ldl

You can notice that -lprelude is not provided anymore. I know of no workaround for this issue and this is the reason why rpath is set to both the source and library install directory. Comment from [[MakeMaker]] expert would be welcome.

#2 Updated by over 13 years ago

The same output with the patch for me:

cd perl && DESTDIR=/var/tmp/portage/libprelude-0.9.0-r1/image/ LANG="" /usr/bin/perl Makefile.PL && make install
Writing Makefile for Prelude
maker5: Entering directory @/var/tmp/portage/libprelude-0.9.0-r1/work/libprelude-0.9.0/bindings/perl'
Running Mkbootstrap for Prelude ()
chmod 644 Prelude.bs
rm -f blib/arch/auto/Prelude/Prelude.so
LD_RUN_PATH="/usr/lib" i686-pc-linux-gnu-gcc -L../..//src/.libs -pthread -shared -L/usr/local/lib Prelude.o -o blib/arch/auto/Prelude/Prelude.so -lprelude
chmod 755 blib/arch/auto/Prelude/Prelude.so

System info:
Portage 2.0.52-r1 (hardened/x86/2.6, gcc-3.4.4, glibc-2.3.5-r1, 2.6.12-gentoo-r6 i686) =================================================================
System uname: 2.6.12-gentoo-r6 i686 AMD Athlon(tm) XP 1900+
Gentoo Base System version 1.6.13
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.3 [disabled]
dev-lang/python: 2.3.5-r2
sys-apps/sandbox: 1.2.13
sys-devel/autoconf: 2.13, 2.59-r6
sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1
sys-devel/binutils: 2.16.1
sys-devel/libtool: 1.5.18-r1
virtual/os-headers: 2.6.11-r2

$ perl -v
This is perl, v5.8.6 built for i686-linux
(dev-lang/perl-5.8.6-r6 +berkdb -build -debug -doc -gdbm -ithreads -minimal -perlsuid)
This version is patched with the following patch may have made the patch for for me.
http://bugs.gentoo.org/show_bug.cgi?id=105054
http://www.gentoo.org/cgi-bin/viewcvs.cgi/dev-lang/perl/files/?hideattic=1 ( perl-5.8.7-MakeMaker-RUNPATH.patch)

I'm not even close to a [[MakeMaker]] user let alone expert. So I'm after suggestions too.

My objective of this patch was to remove the LD_RUN_PATH="/var/tmp/portage/libprelude...." that resulted in the rpath from ld.

May be able to inject make LD_RUN_PATH= at some point?

#3 Updated by Yoann VANDOORSELAERE over 13 years ago

Wasn't the above done on a system where libprelude.so was already installed ?

#4 Updated by over 13 years ago

yes you're right - still looking fir solution

#5 Updated by admin admin over 13 years ago

Dodgy patch but it works.

#6 Updated by Yoann VANDOORSELAERE over 13 years ago

Thanks Daniel, the patch look good and fix the rpath issue!
The portion of the patch fixing the rpath issue has been applied.

Could you explain that other part of the patch:

-    $attributs{"PREFIX"} = "$ENV{DESTDIR}/@prefix@";
+    $attributs{"PREFIX"} = "@prefix@";

#7 Updated by admin admin over 13 years ago

When installing to a staging directory ($DESTDIR) its nice to have the 'make DESTDIR=/stagingdir install' become an overlay of the filesystem. As is currently stands with $attributs{"PREFIX"} = "$ENV{DESTDIR}/prefix"; the Makefile generated from this will have $DESTDIR appended twice. The results of this the perl files installed in:
$DESTDIR/$DESTDIR//usr/lib/perl5/site_perl/5.8.6/i686-linux/auto/Prelude/Prelude.so
(https://bugs.gentoo.org/show_bug.cgi?id=105759#c1) while the rest of the libprelude is installed in $DESTDIR/usr/lib/libprelude.so.

[[MakeMaker]] does generate the right $DESTDIR options without any help.

#8 Updated by admin admin over 13 years ago

Did that make sense?

extract from compile/install from subversion

autogen.sh

dan@frog ~/software_projects/libprelude $ ./autogen.sh
Running gtkdocize...
Running libtoolize...
Running autoreconf...
/usr/share/aclocal/soup.m4:7: warning: underquoted definition of AM_PATH_SOUP
  run info '(automake)Extending aclocal'
  or see http://sources.redhat.com/automake/automake.html#Extending-aclocal
/usr/share/aclocal/progsreiserfs.m4:13: warning: underquoted definition of AC_CHECK_LIBREISERFS
....
....
....
/usr/share/aclocal/ORBit.m4:4: warning: underquoted definition of AM_PATH_ORBIT
configure.in: installing @./install-sh'
configure.in: installing @./missing'
prelude-adduser/Makefile.am: installing @./depcomp'

You can now run "./configure --enable-developer-mode" and "make" 

configure

dan@frog ~/software_projects/libprelude $ ./configure --prefix=/usr --with-perl
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
....
....
....
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands

*** Dumping configuration ***
    - Generate documentation : no
    - Perl binding           : yes
    - Python binding         : yes

make

dan@frog ~/software_projects/libprelude $ make
rm -f prelude-config.h
echo "/* Used from libprelude headers */" >> prelude-config.h
/bin/grep "HAVE_VARIADIC_MACROS"          < ./config.h >> prelude-config.h
/bin/grep "TIME_WITH_SYS_TIME"            < ./config.h >> prelude-config.h
/bin/grep "PRELUDE_ALIGNED_ACCESS"        < ./config.h >> prelude-config.h
/bin/grep "PRELUDE_WORDS_BIGENDIAN"       < ./config.h >> prelude-config.h
/bin/grep "+PRELUDE_FUNC+"              < ./config.h >> prelude-config.h
make  all-recursive
maker1: Entering directory @/home/dan/software_projects/libprelude'
Making all in libltdl
maker2: Entering directory @/home/dan/software_projects/libprelude/libltdl'
cd . && /bin/sh /home/dan/software_projects/libprelude/libltdl/missing --run autoheader
rm -f stamp-h1
touch config-h.in
cd . && /bin/sh ./config.status config.h
....
....
....
Running Mkbootstrap for Prelude ()
chmod 644 Prelude.bs
rm -f blib/arch/auto/Prelude/Prelude.so
LD_RUN_PATH="" i686-pc-linux-gnu-gcc  -L../..//src/.libs -pthread -shared -L/usr/local/lib Prelude.o  -o blib/arch/auto/Prelude/Prelude.so   -L/home/dan/software_projects/libprelude/bindings/perl/../../src/.libs -lprelude
chmod 755 blib/arch/auto/Prelude/Prelude.so
cp Prelude.bs blib/arch/auto/Prelude/Prelude.bs
chmod 644 blib/arch/auto/Prelude/Prelude.bs
maker3: Leaving directory @/home/dan/software_projects/libprelude/bindings/perl'
/usr/bin/swig -I../bindings -I../src/include -I../src/libprelude-error -o python/_prelude.c -python -noproxy -interface _prelude -module _prelude libprelude.i
cd python && /usr/bin/python setup.py build
running build
running build_py
creating build
creating build/lib.linux-i686-2.3
copying prelude.py -> build/lib.linux-i686-2.3
running build_ext
building '_prelude' extension
creating build/temp.linux-i686-2.3
i686-pc-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -fPIC -I/usr/include/python2.3 -c _prelude.c -o build/temp.linux-i686-2.3/_prelude.o -DHAVE_CONFIG_H -I../../ -I../../src/include -I../..//src/include -I../..//src/libprelude-error -I../../bindings -pthread
i686-pc-linux-gnu-gcc -pthread -shared build/temp.linux-i686-2.3/_prelude.o -L../..//src/.libs/ -o build/lib.linux-i686-2.3/_prelude.so -lprelude -pthread -L/usr/lib -lgnutls -lgcrypt -lgpg-error -lz -lrt
maker2: Leaving directory @/home/dan/software_projects/libprelude/bindings'
Making all in docs
maker2: Entering directory @/home/dan/software_projects/libprelude/docs'
Making all in api
maker3: Entering directory @/home/dan/software_projects/libprelude/docs/api'
maker3: Nothing to be done for @all'.
maker3: Leaving directory @/home/dan/software_projects/libprelude/docs/api'
maker3: Entering directory @/home/dan/software_projects/libprelude/docs'
maker3: Nothing to be done for @all-am'.
maker3: Leaving directory @/home/dan/software_projects/libprelude/docs'
maker2: Leaving directory @/home/dan/software_projects/libprelude/docs'
maker2: Entering directory @/home/dan/software_projects/libprelude'
maker2: Nothing to be done for @all-am'.
maker2: Leaving directory @/home/dan/software_projects/libprelude'
maker1: Leaving directory @/home/dan/software_projects/libprelude'

== make install

dan@frog ~/software_projects/libprelude $ make DESTDIR=/home/dan/software_projects/install install
make  install-recursive
maker1: Entering directory @/home/dan/software_projects/libprelude'
Making install in libltdl
maker2: Entering directory @/home/dan/software_projects/libprelude/libltdl'
maker3: Entering directory @/home/dan/software_projects/libprelude/libltdl'
test -z "/usr/lib" || mkdir -p -- "/home/dan/software_projects/install/usr/lib" 
test -z "/usr/include" || mkdir -p -- "/home/dan/software_projects/install/usr/include" 
maker3: Leaving directory @/home/dan/software_projects/libprelude/libltdl'
maker2: Leaving directory @/home/dan/software_projects/libprelude/libltdl'
Making install in libmissing
maker2: Entering directory @/home/dan/software_projects/libprelude/libmissing'
make  install-am
maker3: Entering directory @/home/dan/software_projects/libprelude/libmissing'
maker4: Entering directory @/home/dan/software_projects/libprelude/libmissing'
maker4: Nothing to be done for @install-exec-am'.
maker4: Nothing to be done for @install-data-am'.
maker4: Leaving directory @/home/dan/software_projects/libprelude/libmissing'
maker3: Leaving directory @/home/dan/software_projects/libprelude/libmissing'
maker2: Leaving directory @/home/dan/software_projects/libprelude/libmissing'
Making install in m4
maker2: Entering directory @/home/dan/software_projects/libprelude/m4'
maker3: Entering directory @/home/dan/software_projects/libprelude/m4'
maker3: Nothing to be done for @install-exec-am'.
test -z "/usr/share/aclocal" || mkdir -p -- "/home/dan/software_projects/install/usr/share/aclocal" 
 /usr/bin/install -c -m 644 'libprelude.m4' '/home/dan/software_projects/install/usr/share/aclocal/libprelude.m4'
maker3: Leaving directory @/home/dan/software_projects/libprelude/m4'
maker2: Leaving directory @/home/dan/software_projects/libprelude/m4'
Making install in src
maker2: Entering directory @/home/dan/software_projects/libprelude/src'
Making install in libprelude-error
maker3: Entering directory @/home/dan/software_projects/libprelude/src/libprelude-error'
make  install-am
maker4: Entering directory @/home/dan/software_projects/libprelude/src/libprelude-error'
maker5: Entering directory @/home/dan/software_projects/libprelude/src/libprelude-error'
maker5: Nothing to be done for @install-exec-am'.
test -z "/usr/include/libprelude" || mkdir -p -- "/home/dan/software_projects/install/usr/include/libprelude" 
 /usr/bin/install -c -m 644 'prelude-error.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-error.h'
maker5: Leaving directory @/home/dan/software_projects/libprelude/src/libprelude-error'
maker4: Leaving directory @/home/dan/software_projects/libprelude/src/libprelude-error'
maker3: Leaving directory @/home/dan/software_projects/libprelude/src/libprelude-error'
Making install in include
maker3: Entering directory @/home/dan/software_projects/libprelude/src/include'
maker4: Entering directory @/home/dan/software_projects/libprelude/src/include'
maker4: Nothing to be done for @install-exec-am'.
test -z "/usr/include/libprelude" || mkdir -p -- "/home/dan/software_projects/install/usr/include/libprelude" 
 /usr/bin/install -c -m 644 'common.h' '/home/dan/software_projects/install/usr/include/libprelude/common.h'
 /usr/bin/install -c -m 644 'daemonize.h' '/home/dan/software_projects/install/usr/include/libprelude/daemonize.h'
 /usr/bin/install -c -m 644 'variable.h' '/home/dan/software_projects/install/usr/include/libprelude/variable.h'
 /usr/bin/install -c -m 644 'idmef.h' '/home/dan/software_projects/install/usr/include/libprelude/idmef.h'
 /usr/bin/install -c -m 644 'idmef-additional-data.h' '/home/dan/software_projects/install/usr/include/libprelude/idmef-additional-data.h'
 /usr/bin/install -c -m 644 'idmef-class.h' '/home/dan/software_projects/install/usr/include/libprelude/idmef-class.h'
 /usr/bin/install -c -m 644 'idmef-criteria.h' '/home/dan/software_projects/install/usr/include/libprelude/idmef-criteria.h'
 /usr/bin/install -c -m 644 'idmef-criterion-value.h' '/home/dan/software_projects/install/usr/include/libprelude/idmef-criterion-value.h'
 /usr/bin/install -c -m 644 'idmef-data.h' '/home/dan/software_projects/install/usr/include/libprelude/idmef-data.h'
 /usr/bin/install -c -m 644 'idmef-message-id.h' '/home/dan/software_projects/install/usr/include/libprelude/idmef-message-id.h'
 /usr/bin/install -c -m 644 'idmef-message-read.h' '/home/dan/software_projects/install/usr/include/libprelude/idmef-message-read.h'
 /usr/bin/install -c -m 644 'idmef-message-print.h' '/home/dan/software_projects/install/usr/include/libprelude/idmef-message-print.h'
 /usr/bin/install -c -m 644 'idmef-message-write.h' '/home/dan/software_projects/install/usr/include/libprelude/idmef-message-write.h'
 /usr/bin/install -c -m 644 'idmef-path.h' '/home/dan/software_projects/install/usr/include/libprelude/idmef-path.h'
 /usr/bin/install -c -m 644 'idmef-time.h' '/home/dan/software_projects/install/usr/include/libprelude/idmef-time.h'
 /usr/bin/install -c -m 644 'idmef-tree-data.h' '/home/dan/software_projects/install/usr/include/libprelude/idmef-tree-data.h'
 /usr/bin/install -c -m 644 'idmef-tree-wrap.h' '/home/dan/software_projects/install/usr/include/libprelude/idmef-tree-wrap.h'
 /usr/bin/install -c -m 644 'idmef-value.h' '/home/dan/software_projects/install/usr/include/libprelude/idmef-value.h'
 /usr/bin/install -c -m 644 'idmef-value-type.h' '/home/dan/software_projects/install/usr/include/libprelude/idmef-value-type.h'
 /usr/bin/install -c -m 644 'prelude.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude.h'
 /usr/bin/install -c -m 644 'prelude-async.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-async.h'
 /usr/bin/install -c -m 644 'prelude-extract.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-extract.h'
 /usr/bin/install -c -m 644 'prelude-hash.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-hash.h'
 /usr/bin/install -c -m 644 'prelude-linked-object.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-linked-object.h'
 /usr/bin/install -c -m 644 'prelude-list.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-list.h'
 /usr/bin/install -c -m 644 'prelude-log.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-log.h'
 /usr/bin/install -c -m 644 'prelude-client.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-client.h'
 /usr/bin/install -c -m 644 'prelude-client-profile.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-client-profile.h'
 /usr/bin/install -c -m 644 'prelude-connection.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-connection.h'
 /usr/bin/install -c -m 644 'prelude-connection-pool.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-connection-pool.h'
 /usr/bin/install -c -m 644 'prelude-failover.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-failover.h'
 /usr/bin/install -c -m 644 'prelude-ident.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-ident.h'
 /usr/bin/install -c -m 644 'prelude-io.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-io.h'
 /usr/bin/install -c -m 644 'prelude-msg.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-msg.h'
 /usr/bin/install -c -m 644 'prelude-msgbuf.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-msgbuf.h'
 /usr/bin/install -c -m 644 'prelude-message-id.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-message-id.h'
 /usr/bin/install -c -m 644 'prelude-option.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-option.h'
 /usr/bin/install -c -m 644 'prelude-option-wide.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-option-wide.h'
 /usr/bin/install -c -m 644 'prelude-plugin.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-plugin.h'
 /usr/bin/install -c -m 644 'prelude-string.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-string.h'
 /usr/bin/install -c -m 644 'prelude-timer.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-timer.h'
test -z "/usr/include/libprelude" || mkdir -p -- "/home/dan/software_projects/install/usr/include/libprelude" 
 /usr/bin/install -c -m 644 'prelude.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude.h'
 /usr/bin/install -c -m 644 'prelude-inttypes.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-inttypes.h'
maker4: Leaving directory @/home/dan/software_projects/libprelude/src/include'
maker3: Leaving directory @/home/dan/software_projects/libprelude/src/include'
maker3: Entering directory @/home/dan/software_projects/libprelude/src'
maker4: Entering directory @/home/dan/software_projects/libprelude/src'
test -z "/usr/lib" || mkdir -p -- "/home/dan/software_projects/install/usr/lib" 
 /bin/sh ../libtool --mode=install /usr/bin/install -c  'libprelude.la' '/home/dan/software_projects/install/usr/lib/libprelude.la'
/usr/bin/install -c .libs/libprelude.so.2.0.0 /home/dan/software_projects/install/usr/lib/libprelude.so.2.0.0
(cd /home/dan/software_projects/install/usr/lib && rm -f libprelude.so.2 && ln -s libprelude.so.2.0.0 libprelude.so.2)
(cd /home/dan/software_projects/install/usr/lib && rm -f libprelude.so && ln -s libprelude.so.2.0.0 libprelude.so)
/usr/bin/install -c .libs/libprelude.lai /home/dan/software_projects/install/usr/lib/libprelude.la
libtool: install: warning: remember to run @libtool --finish /usr/lib'
maker4: Nothing to be done for @install-data-am'.
maker4: Leaving directory @/home/dan/software_projects/libprelude/src'
maker3: Leaving directory @/home/dan/software_projects/libprelude/src'
maker2: Leaving directory @/home/dan/software_projects/libprelude/src'
Making install in prelude-adduser
maker2: Entering directory @/home/dan/software_projects/libprelude/prelude-adduser'
maker3: Entering directory @/home/dan/software_projects/libprelude/prelude-adduser'
test -z "/usr/bin" || mkdir -p -- "/home/dan/software_projects/install/usr/bin" 
  /bin/sh ../libtool --mode=install /usr/bin/install -c 'prelude-adduser' '/home/dan/software_projects/install/usr/bin/prelude-adduser'
/usr/bin/install -c .libs/prelude-adduser /home/dan/software_projects/install/usr/bin/prelude-adduser
maker3: Nothing to be done for @install-data-am'.
maker3: Leaving directory @/home/dan/software_projects/libprelude/prelude-adduser'
maker2: Leaving directory @/home/dan/software_projects/libprelude/prelude-adduser'
Making install in bindings
maker2: Entering directory @/home/dan/software_projects/libprelude/bindings'
cd perl && make LD_RUN_PATH="" 
maker3: Entering directory @/home/dan/software_projects/libprelude/bindings/perl'
Running Mkbootstrap for Prelude ()
chmod 644 Prelude.bs
rm -f blib/arch/auto/Prelude/Prelude.so
LD_RUN_PATH="" i686-pc-linux-gnu-gcc  -L../..//src/.libs -pthread -shared -L/usr/local/lib Prelude.o  -o blib/arch/auto/Prelude/Prelude.so   -L/home/dan/software_projects/libprelude/bindings/perl/../../src/.libs -lprelude
chmod 755 blib/arch/auto/Prelude/Prelude.so
cp Prelude.bs blib/arch/auto/Prelude/Prelude.bs
chmod 644 blib/arch/auto/Prelude/Prelude.bs
maker3: Leaving directory @/home/dan/software_projects/libprelude/bindings/perl'
cd python && /usr/bin/python setup.py build
running build
running build_py
running build_ext
maker3: Entering directory @/home/dan/software_projects/libprelude/bindings'
make  install-exec-hook
maker4: Entering directory @/home/dan/software_projects/libprelude/bindings'
cd perl && DESTDIR=/home/dan/software_projects/install LANG="" /usr/bin/perl Makefile.PL && make LD_RUN_PATH="" install
Warning: -L../..//src/.libs changed to -L/home/dan/software_projects/libprelude/bindings/perl/../..//src/.libs
Writing Makefile for Prelude
maker5: Entering directory @/home/dan/software_projects/libprelude/bindings/perl'
Running Mkbootstrap for Prelude ()
chmod 644 Prelude.bs
rm -f blib/arch/auto/Prelude/Prelude.so
LD_RUN_PATH="" i686-pc-linux-gnu-gcc  -L../..//src/.libs -pthread -shared -L/usr/local/lib Prelude.o  -o blib/arch/auto/Prelude/Prelude.so   -L/home/dan/software_projects/libprelude/bindings/perl/../../src/.libs -lprelude
chmod 755 blib/arch/auto/Prelude/Prelude.so
cp Prelude.bs blib/arch/auto/Prelude/Prelude.bs
chmod 644 blib/arch/auto/Prelude/Prelude.bs

This is where it goes bad:
Installing /home/dan/software_projects/install/home/dan/software_projects/install/usr/lib/perl5/site_perl/5.8.6/i686-linux/auto/Prelude/Prelude.so
Installing /home/dan/software_projects/install/home/dan/software_projects/install/usr/lib/perl5/site_perl/5.8.6/i686-linux/auto/Prelude/Prelude.bs
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /home/dan/software_projects/install/home/dan/software_projects/install/usr/lib/perl5/site_perl/5.8.6/i686-linux/Prelude.pm
Writing /home/dan/software_projects/install/home/dan/software_projects/install//usr/lib/perl5/site_perl/5.8.6/i686-linux/auto/Prelude/.packlist
Appending installation info to /home/dan/software_projects/install/home/dan/software_projects/install//usr/lib/perl5/5.8.6/i686-linux/perllocal.pod
maker5: Leaving directory @/home/dan/software_projects/libprelude/bindings/perl'

And continuing on:
cd python && /usr/bin/python setup.py install @test -n "/home/dan/software_projects/install" && echo --root /home/dan/software_projects/install@
running install
running build
running build_py
running build_ext
running install_lib
creating /home/dan/software_projects/install/usr/lib/python2.3
creating /home/dan/software_projects/install/usr/lib/python2.3/site-packages
copying build/lib.linux-i686-2.3/prelude.py -> /home/dan/software_projects/install/usr/lib/python2.3/site-packages
copying build/lib.linux-i686-2.3/_prelude.so -> /home/dan/software_projects/install/usr/lib/python2.3/site-packages
byte-compiling /home/dan/software_projects/install/usr/lib/python2.3/site-packages/prelude.py to prelude.pyc
maker4: Leaving directory @/home/dan/software_projects/libprelude/bindings'
maker3: Nothing to be done for @install-data-am'.
maker3: Leaving directory @/home/dan/software_projects/libprelude/bindings'
maker2: Leaving directory @/home/dan/software_projects/libprelude/bindings'
Making install in docs
maker2: Entering directory @/home/dan/software_projects/libprelude/docs'
Making install in api
maker3: Entering directory @/home/dan/software_projects/libprelude/docs/api'
maker4: Entering directory @/home/dan/software_projects/libprelude/docs/api'
maker4: Nothing to be done for @install-exec-am'.
installfiles=@echo ./html/*@; \
if test "$installfiles" = './html/*'; \
then echo '-- Nothing to install' ; \
else \
  /home/dan/software_projects/libprelude/install-sh -d /home/dan/software_projects/install/usr/share/gtk-doc/html/libprelude; \
  for i in $installfiles; do \
    echo '-- Installing '$i ; \
    /usr/bin/install -c -m 644 $i /home/dan/software_projects/install/usr/share/gtk-doc/html/libprelude; \
  done; \
  echo '-- Installing ./html/index.sgml' ; \
  /usr/bin/install -c -m 644 ./html/index.sgml /home/dan/software_projects/install/usr/share/gtk-doc/html/libprelude || :; \
fi
-- Nothing to install
maker4: Leaving directory @/home/dan/software_projects/libprelude/docs/api'
maker3: Leaving directory @/home/dan/software_projects/libprelude/docs/api'
maker3: Entering directory @/home/dan/software_projects/libprelude/docs'
maker4: Entering directory @/home/dan/software_projects/libprelude/docs'
maker4: Nothing to be done for @install-exec-am'.
maker4: Nothing to be done for @install-data-am'.
maker4: Leaving directory @/home/dan/software_projects/libprelude/docs'
maker3: Leaving directory @/home/dan/software_projects/libprelude/docs'
maker2: Leaving directory @/home/dan/software_projects/libprelude/docs'
maker2: Entering directory @/home/dan/software_projects/libprelude'
maker3: Entering directory @/home/dan/software_projects/libprelude'
test -z "/usr/bin" || mkdir -p -- "/home/dan/software_projects/install/usr/bin" 
 /usr/bin/install -c './libprelude-config' '/home/dan/software_projects/install/usr/bin/libprelude-config'
/usr/bin/install -c -d -m 755 /home/dan/software_projects/install/usr/var/spool/prelude;
/usr/bin/install -c -d -m 755 /home/dan/software_projects/install/usr/etc/prelude;
/usr/bin/install -c -d -m 755 /home/dan/software_projects/install/usr/etc/prelude/default;
/usr/bin/install -c -d -m 755 /home/dan/software_projects/install/usr/etc/prelude/profile;
test -z "/usr/include/libprelude" || mkdir -p -- "/home/dan/software_projects/install/usr/include/libprelude" 
 /usr/bin/install -c -m 644 'prelude-config.h' '/home/dan/software_projects/install/usr/include/libprelude/prelude-config.h'
maker3: Leaving directory @/home/dan/software_projects/libprelude'
maker2: Leaving directory @/home/dan/software_projects/libprelude'
maker1: Leaving directory @/home/dan/software_projects/libprelude'

install directory

dan@frog ~/software_projects/libprelude $ cd ../install/
dan@frog ~/software_projects/install $ find .
.
./usr
./usr/lib
./usr/lib/libprelude.so.2.0.0
./usr/lib/libprelude.so.2
./usr/lib/libprelude.so
./usr/lib/libprelude.la
./usr/lib/python2.3
./usr/lib/python2.3/site-packages
./usr/lib/python2.3/site-packages/prelude.py
./usr/lib/python2.3/site-packages/_prelude.so
./usr/lib/python2.3/site-packages/prelude.pyc
./usr/include
./usr/include/libprelude
./usr/include/libprelude/prelude-error.h
./usr/include/libprelude/common.h
./usr/include/libprelude/daemonize.h
./usr/include/libprelude/variable.h
./usr/include/libprelude/idmef.h
./usr/include/libprelude/idmef-additional-data.h
./usr/include/libprelude/idmef-class.h
./usr/include/libprelude/idmef-criteria.h
./usr/include/libprelude/idmef-criterion-value.h
./usr/include/libprelude/idmef-data.h
./usr/include/libprelude/idmef-message-id.h
./usr/include/libprelude/idmef-message-read.h
./usr/include/libprelude/idmef-message-print.h
./usr/include/libprelude/idmef-message-write.h
./usr/include/libprelude/idmef-path.h
./usr/include/libprelude/idmef-time.h
./usr/include/libprelude/idmef-tree-data.h
./usr/include/libprelude/idmef-tree-wrap.h
./usr/include/libprelude/idmef-value.h
./usr/include/libprelude/idmef-value-type.h
./usr/include/libprelude/prelude.h
./usr/include/libprelude/prelude-async.h
./usr/include/libprelude/prelude-extract.h
./usr/include/libprelude/prelude-hash.h
./usr/include/libprelude/prelude-linked-object.h
./usr/include/libprelude/prelude-list.h
./usr/include/libprelude/prelude-log.h
./usr/include/libprelude/prelude-client.h
./usr/include/libprelude/prelude-client-profile.h
./usr/include/libprelude/prelude-connection.h
./usr/include/libprelude/prelude-connection-pool.h
./usr/include/libprelude/prelude-failover.h
./usr/include/libprelude/prelude-ident.h
./usr/include/libprelude/prelude-io.h
./usr/include/libprelude/prelude-msg.h
./usr/include/libprelude/prelude-msgbuf.h
./usr/include/libprelude/prelude-message-id.h
./usr/include/libprelude/prelude-option.h
./usr/include/libprelude/prelude-option-wide.h
./usr/include/libprelude/prelude-plugin.h
./usr/include/libprelude/prelude-string.h
./usr/include/libprelude/prelude-timer.h
./usr/include/libprelude/prelude-inttypes.h
./usr/include/libprelude/prelude-config.h
./usr/share
./usr/share/aclocal
./usr/share/aclocal/libprelude.m4
./usr/bin
./usr/bin/prelude-adduser
./usr/bin/libprelude-config
./usr/var
./usr/var/spool
./usr/var/spool/prelude
./usr/etc
./usr/etc/prelude
./usr/etc/prelude/default
./usr/etc/prelude/default/client.conf
./usr/etc/prelude/default/global.conf
./usr/etc/prelude/default/idmef-client.conf
./usr/etc/prelude/default/tls.conf
./usr/etc/prelude/profile

This is the install continuing but this time the DESTDIR is created again.
./home
./home/dan
./home/dan/software_projects
./home/dan/software_projects/install
./home/dan/software_projects/install/usr
./home/dan/software_projects/install/usr/lib
./home/dan/software_projects/install/usr/lib/perl5
./home/dan/software_projects/install/usr/lib/perl5/site_perl
./home/dan/software_projects/install/usr/lib/perl5/site_perl/5.8.6
./home/dan/software_projects/install/usr/lib/perl5/site_perl/5.8.6/i686-linux
./home/dan/software_projects/install/usr/lib/perl5/site_perl/5.8.6/i686-linux/auto
./home/dan/software_projects/install/usr/lib/perl5/site_perl/5.8.6/i686-linux/auto/Prelude
./home/dan/software_projects/install/usr/lib/perl5/site_perl/5.8.6/i686-linux/auto/Prelude/Prelude.so
./home/dan/software_projects/install/usr/lib/perl5/site_perl/5.8.6/i686-linux/auto/Prelude/Prelude.bs
./home/dan/software_projects/install/usr/lib/perl5/site_perl/5.8.6/i686-linux/auto/Prelude/.packlist
./home/dan/software_projects/install/usr/lib/perl5/site_perl/5.8.6/i686-linux/Prelude.pm
./home/dan/software_projects/install/usr/lib/perl5/5.8.6
./home/dan/software_projects/install/usr/lib/perl5/5.8.6/i686-linux
./home/dan/software_projects/install/usr/lib/perl5/5.8.6/i686-linux/perllocal.pod
dan@frog ~/software_projects/install $ pwd
/home/dan/software_projects/install
dan@frog ~/software_projects/install $

#9 Updated by Yoann VANDOORSELAERE over 13 years ago

Thanks Daniel, it look good!

I applied the patch applied in r7360 and r7361.

#10 Updated by Yoann VANDOORSELAERE over 13 years ago

  • Status changed from New to Closed
  • Resolution set to fixed

#11 Updated by admin admin over 13 years ago

  • Status changed from Closed to Feedback
  • Resolution deleted (fixed)

The bindings/Makefile.am LD_RUN_PATH patch applies to libprelude(unfixed) in the same way as libpreludedb(fixed).

Thanks Yoann
PS also notices that from https://trac.prelude-ids.org/changeset/7357 following the "Files:" link generated a error: "Trac detected an internal error: Insufficient permission to view this file (mod_authz_svn)"

#12 Updated by Yoann VANDOORSELAERE over 13 years ago

Sorry the libpreludedb fix was not merged to the good branche. This is corrected now in r7362.
I guess you mixed libprelude/libpreludedb, did you ?

#14 Updated by Yoann VANDOORSELAERE over 13 years ago

  • Status changed from Feedback to Closed
  • Resolution set to fixed

BTW the error you got above is because of a merge to a private libpreludedb branche.

#15 Updated by Yoann VANDOORSELAERE about 10 years ago

  • Project changed from PRELUDE SIEM to Libprelude
  • Category deleted (1)
  • Target version deleted (0.9.1)

Also available in: Atom PDF