Bug 391831

Summary: python-zypp and perl-zypp are missing in Factory
Product: [openSUSE] openSUSE 11.0 Reporter: Pavol Rusnak <prusnak>
Component: libzyppAssignee: Michael Andres <ma>
Status: RESOLVED FIXED QA Contact: Duncan Mac-Vicar <dmacvicar>
Severity: Normal    
Priority: P2 - High CC: coolo, mmarek, mvidner
Version: Factory   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: Development Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: patch to enable code generation
build failure logs for python-zypp and perl-zypp

Description Pavol Rusnak 2008-05-18 11:03:26 UTC
I cannot find python bindings for libzypp in Factory.
Comment 1 Pavol Rusnak 2008-05-18 11:17:14 UTC
I realized that {python,perl,ruby} bindings are in libzypp-bindings package, however only ruby bindings are enabled. Why is that?
Comment 2 Stephan Kulow 2008-05-18 13:48:32 UTC
how is that critical? 
Comment 3 Pavol Rusnak 2008-05-18 20:44:25 UTC
I thought this was not intentional and some zypp utilities depend on these bindings.
Comment 4 Pavol Rusnak 2008-05-18 20:45:24 UTC
removing needinfo
Comment 5 Pavol Rusnak 2008-05-19 15:56:53 UTC
I did some research and the main problem is with variable collisions. I added some rename rules for SWIG, so SWIG does now generate code for python and perl (it didn't before). But now it fails to compile. I'm attaching the patch against libzypp-bindings in Factory and build failure logs for python-zypp and perl-zypp.
Comment 6 Pavol Rusnak 2008-05-19 15:58:15 UTC
Created attachment 216493 [details]
patch to enable code generation
Comment 7 Pavol Rusnak 2008-05-19 15:59:28 UTC
Created attachment 216494 [details]
build failure logs for python-zypp and perl-zypp
Comment 8 Michael Andres 2008-07-25 18:32:49 UTC
Re-enabled the binding in libzypp-bindings-0.4.6.
Comment 9 Pavol Rusnak 2008-07-28 19:11:26 UTC
Bindings are not build because they require libzypp-devel >= 5.2.1

and this version of libzypp is not built in Factory because of error described below - I suggest trying to update also libsatsolver from SVN.

[ 88%] Building CXX object zypp/CMakeFiles/zypp.dir/sat/detail/PoolImpl.cc.o
cd /usr/src/packages/BUILD/libzypp-5.3.0/build/zypp && /usr/bin/c++ -D_FILE_OFFSET_BITS=64 -DVERSION=\"5.3.0\" -DLOCALEDIR=\"/usr/share/locale\" -DTEXTDOMAIN=\"zypp\" -Dzypp_EXPORTS -march=i586 -mtune=i686 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -O2 -g -Wall -Woverloaded-virtual -march=i586 -mtune=i686 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -O2 -g -Wall -Woverloaded-virtual -O3 -fPIC -I/usr/src/packages/BUILD/libzypp-5.3.0 -I/usr/src/packages/BUILD/libzypp-5.3.0/build -I/usr/include/rpm -I/usr/include/hal -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/src/packages/BUILD/libzypp-5.3.0/build/zypp -DZYPP_BASE_LOGGER_LOGGROUP=\"zypp\" -o CMakeFiles/zypp.dir/sat/detail/PoolImpl.cc.o -c /usr/src/packages/BUILD/libzypp-5.3.0/zypp/sat/detail/PoolImpl.cc
/usr/src/packages/BUILD/libzypp-5.3.0/zypp/sat/detail/PoolImpl.cc:379:2: warning: #warning immediately build LocaleSet as soon as Loale is an Id based type
/usr/src/packages/BUILD/libzypp-5.3.0/zypp/sat/detail/PoolImpl.cc:56: error: no matching function for call to 'assertion_failed(mpl_::failed************ mpl_::assert_relation<equal, 15l, 16l>::************)'
/usr/src/packages/BUILD/libzypp-5.3.0/zypp/sat/detail/PoolImpl.cc:57: error: no matching function for call to 'assertion_failed(mpl_::failed************ mpl_::assert_relation<equal, 16l, 17l>::************)'
make[2]: *** [zypp/CMakeFiles/zypp.dir/sat/detail/PoolImpl.cc.o] Error 1
make[2]: Leaving directory `/usr/src/packages/BUILD/libzypp-5.3.0/build'
make[1]: *** [zypp/CMakeFiles/zypp.dir/all] Error 2
make[1]: Leaving directory `/usr/src/packages/BUILD/libzypp-5.3.0/build'
make: *** [all] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.73994 (%build)
Comment 10 Pavol Rusnak 2008-07-29 10:50:52 UTC
Fixed by last commit from mls.
Comment 11 Pavol Rusnak 2008-07-30 09:17:39 UTC
I installed python-zypp and all of its dependencies from Factory:

boost-1.34.1-53.x86_64
gd-2.0.36.RC1-27.x86_64
graphviz-2.20.2-8.x86_64
graphviz-gd-2.20.2-8.x86_64
graphviz-gnome-2.20.2-8.x86_64
libqdialogsolver1-1.2.0-17.x86_64
libzypp-5.3.0-2.x86_64
python-zypp-0.4.6-9.x86_64
satsolver-tools-0.10.2-2.x86_64
yast2-ncurses-2.17.3-6.x86_64
yast2-ncurses-pkg-2.17.5-5.x86_64
yast2-pkg-bindings-2.17.2-5.x86_64
yast2-qt-pkg-2.17.3-5.x86_64
zypper-0.12.0-12.x86_64

and now I get:

$  echo 'import zypp;' | python
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.5/site-packages/zypp.py", line 7, in <module>
    import _zypp
ImportError: /usr/lib64/python2.5/site-packages/_zypp.so: undefined symbol: _ZN4zypp8RepoInfo14defaultPrioityEv

Clearly something went wrong during update (I believe that packages are built correctly), but I can not figure what and how.
Comment 12 Michael Andres 2008-07-31 16:38:01 UTC
This symbol is indeed an undefined static method due to a typo (defaultPrio(R)ity). Ruby didn't mind this.
(we urgently need time and testcases for the bindings)

Fixed in libzypp-bindings-0.4.7.