Bacula-users

Re: [Bacula-users] FreeBSD & Python link error

2013-03-25 15:33:54
Subject: Re: [Bacula-users] FreeBSD & Python link error
From: Martin Simmons <martin AT lispworks DOT com>
To: bacula-users AT lists.sourceforge DOT net
Date: Mon, 25 Mar 2013 19:30:03 GMT
>>>>> On Sun, 24 Mar 2013 01:56:35 -0400, Dan Langille said:
> 
> On Mar 6, 2013, at 10:18 AM, Dan Langille wrote:
> 
> > On 2013-03-06 09:55, Martin Simmons wrote:
> >>>>>>> On Tue, 05 Mar 2013 09:46:42 -0500, Dan Langille said:
> >>> 
> >>> On 2013-02-20 04:14, Geert Stappers wrote:
> >>> > Op 20130218 om 14:54 schreef Dan Langille:
> >>> >> I'm trying to add Python support to the FreeBSD port.  I'm working
> >>> >> on a PR submitted to FreeBSD, but
> >>> >> I'm getting a link error.
> >>> >> http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/171818
> >>> >>
> >>> >> Any ideas?  Full link output at the above URL.
> >>> >>
> >>> >> The main error is:
> >>> >>
> >>> >> Linking bacula-dir ...
> >>> >>
> >>> >> /var/ports/usr/home/dan/src/ports/sysutils/bacula-server/work/bacula-5.2.12/libtool
> >>> >> --silent --tag=CXX --mode=link /usr/bin/c++ -L../lib -L../cats
> >>> >> -L../findlib -L/usr/local/lib -Wl,-rpath=/usr/lib:/usr/local/lib
> >>> >> -L/usr/local/lib -o bacula-dir dird.o admin.o authenticate.o
> >>> >> autoprune.o backup.o bsr.o catreq.o dir_plugins.o dird_conf.o expand.o
> >>> >> fd_cmds.o getmsg.o inc_conf.o job.o jobq.o migrate.o mountreq.o
> >>> >> msgchan.o next_vol.o newvol.o pythondir.o recycle.o restore.o
> >>> >> run_conf.o scheduler.o ua_acl.o ua_cmds.o ua_dotcmds.o ua_query.o
> >>> >> ua_input.o ua_label.o ua_output.o ua_prune.o ua_purge.o ua_restore.o
> >>> >> ua_run.o ua_select.o ua_server.o ua_status.o ua_tree.o ua_update.o
> >>> >> vbackup.o verify.o -lbacfind -lbacsql -lbaccats -lbacpy -lbaccfg -lbac
> >>> >> -lm -pthread -lutil -lm -lpython2.7 -lutil -lpthread -lintl -lwrap
> >>> >> /usr/local/lib/libintl.so /usr/local/lib/libiconv.so -Wl,-rpath
> >>> >> -Wl,/usr/local/lib -L/usr/lib -lssl -lcrypto
> >>> >> dird.o(.text+0x234e): In function `main':
> >>> >> : undefined reference to
> >>> >> `init_python_interpreter(init_python_interpreter_args*)'
> >>> >>
> >>> >
> >>> > FWIW: the Debian package has a build depend on 'python-dev'
> >>> >
> >>> >
> >>> > Stappers
> >>> > not familair with FreeBSD equivalents of python-dev
> >>> 
> >>> 
> >>> And neither am I.  For now, this extension to the FreeBSD port is
> >>> stalled.
> >> 
> >> Something has messed up long before this error.
> >> 
> >> init_python_interpreter is defined by bacula itself and should be in
> >> src/lib/libbacpy.so, but your build doesn't even try to build the src/lib
> >> directory (see the "Doing make of dependencies" output).
> >> 
> >> I don't know why the make appears to be incomplete, but my guess is that 
> >> you
> >> have to rebuild/reinstall bacula-client with python support first (and add
> >> libbacpy to pkg-plist.client).
> > 
> > Martin: that was it.  Thank you.  Yes, on FreeBSD, sysutils/bacula-client 
> > installs the
> > shared libraries.  Building it first, manually in this case, solves the 
> > link error.
> 
> I was wrong.  Just now, I rebuilt bacula-client with Python support.  I know 
> it's there because I see it in the output from the compile:
> 
> $ grep -ri python  bacula-client.txt
> checking for python... /usr/local/bin/python2.7
> checking for Python support... no
>    Python support:         no 
> Compiling pythonlib.c
> /var/ports/usr/home/dan/src/ports/sysutils/bacula-client/work/bacula-5.2.12/libtool
>  --silent --tag=CXX --mode=link /usr/bin/c++   -L/usr/local/lib 
> -Wl,-rpath=/usr/lib:/usr/local/lib -o libbacpy.la pythonlib.lo 
> -export-dynamic -rpath /usr/local/lib -version-info 5:2:0  -L/usr/lib -lssl 
> -lcrypto -lpthread  -lintl
> Compiling pythonfd.c
> /var/ports/usr/home/dan/src/ports/sysutils/bacula-client/work/bacula-5.2.12/libtool
>  --silent --tag=CXX --mode=link /usr/bin/c++  -L/usr/local/lib 
> -Wl,-rpath=/usr/lib:/usr/local/lib -L../lib -L../findlib -o bacula-fd filed.o 
> authenticate.o acl.o backup.o estimate.o fd_plugins.o accurate.o filed_conf.o 
> heartbeat.o job.o pythonfd.o restore.o status.o verify.o verify_vol.o xattr.o 
>    -lz -lbacfind -lbacpy -lbaccfg -lbac -lm  -lpthread  -lintl   -lwrap 
> /usr/local/lib/libintl.so /usr/local/lib/libiconv.so -Wl,-rpath 
> -Wl,/usr/local/lib -L/usr/lib -lssl -lcrypto   
> ===>   bacula-client-5.2.12_1 depends on file: /usr/local/bin/python2.7 - 
> found
> 
> So, yeah, it's in there.

Something looks odd -- why does it say "no" for python support?

Also, why does it find /usr/local/bin/python2.7 rather than
/usr/local/bin/python like below:


>                           But when the time comes to compile bacula-server:
> 
>  grep -i python bacula-server 
>   WITH_PYTHON=yes     Enable Python scripting in the director.
> checking for python... /usr/local/bin/python
> checking for Python support... yes
> configure: checking for more Python libs
>    Python support:         yes -pthread -lutil -lm -lpython2.7 -lutil 
> Compiling pythondir.c
> 
> 
> Yeah, bacula-server has support.
> 
> Is this because I'm using Python 2.7?  I ask because this page refers only to 
> Python <= 2.5

It links fine with Python 2.7 for me (in a non-ports build) so I don't think
that is a problem.

__Martin

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
_______________________________________________
Bacula-users mailing list
Bacula-users AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users

<Prev in Thread] Current Thread [Next in Thread>