conky 1.9.0 on 12.2 - can not package conky-devel *OR* crashes to segfault

Without this (in red) in the %files section of the spec file

%if 0%{?suse_version}
%if 0%{?suse_version} <= 1210
%files devel
%defattr(-,root,root)
%dir %{_libdir}/%{name}
%{_libdir}/%{name}/*.so
%endif
%files feature-nvidia
%defattr(-,root,root)
%doc README.feature-nvidia
%endif

it will fail to create the package (on 12.2 only!), complaining that libcairo.so and libimlib2.so are in two different packages without conflict (if I remember correctly). And indeed they are (under 12.1):

# rpm -ql conky
/etc/conky
/etc/conky/conky.conf
/etc/conky/conky_no_x11.conf
/usr/bin/conky
/usr/lib64/conky
/usr/lib64/conky/libcairo.so
/usr/lib64/conky/libcairo.so.0
/usr/lib64/conky/libcairo.so.0.0.0
/usr/lib64/conky/libimlib2.so
/usr/lib64/conky/libimlib2.so.0
/usr/lib64/conky/libimlib2.so.0.0.0
/usr/share/applications/conky.desktop
/usr/share/doc/packages/conky
/usr/share/doc/packages/conky/AUTHORS
/usr/share/doc/packages/conky/COPYING
/usr/share/doc/packages/conky/ChangeLog
/usr/share/doc/packages/conky/NEWS
/usr/share/doc/packages/conky/README
/usr/share/doc/packages/conky/TODO
/usr/share/man/man1/conky.1.gz
/usr/share/pixmaps/conky.png

# rpm -ql conky-devel
/usr/lib64/conky
/usr/lib64/conky/libcairo.so
/usr/lib64/conky/libimlib2.so

Now if I disable conky-devel for 12.2 - as in the example above, the conky package gets created (and also includes the 2 libraries) , but conky will crash to a segfault. However the package (conky + conky-devel) from my 12.1 repo work fine on 12.2. (!)

Obviously my hack to get the package built was a bad idea. Any better and cleaner solution?*

https://build.opensuse.org/package/show?package=conky&project=home%3Aplease_try_again

  • Well, I guess should just have said “any solution”.

The segfault had nothing to do with the packaging error described above. Sorry for this confusing post. The segfault was caused by tolua++ which doesn’t work with lua 5.2 shipped in openSUSE 12.2. I had to BuildRequire lua51-devel for openSUSE 12.2. This is why the version built for 12.1 worked on 12.2.

Now I wonder why my 12.2 repo doesn’t get refreshed unlike other repos in my home project. I had to create a subproject in order to be able to install this build.

The latest build is 55 (well, I’m not that serious about revision numbers). The package in 12.1 repo is conky-1.9.0-55.1.x86_64.rpm, (which is right) while the 12.2 repo still gets stuck on conky-1.9.0-37.1.x86_64.rpm .

Unless somebody is able/willing to help me fix that build rapidly, I’m going to vaporize conky from my repo. It’s a complete mess now. I’m not saving time by using OBS (that anyway) and will build it locally, as I’m not able to fix it nor spend two more days trying to figure out what’s wrong with tolua++, lua(51) and suches.

In the meantime, there is a 1.9.0 port in server:monitoring. It lacks nvidia support and apcupsd doesn’t work (needs a revert patch).

Most problems - actually the only problem - I have with conky comes from tolua++. As I mentioned already, it doesn’t work with lua 5.2 (12.2), needs lua 5.1. I’m not sure why conky needs it. I only noticed that it doesn’t work without. I had this package in my repo (from Malcolm’s old python project) but deleted it - my bad - because I suspected that it was causing the problem. In fact it did. Unfortunately this project and this package are not available anymore. I had noticed that there was a tolua++ in openSUSE:12.2 and thought that it would just work. But this package is different as it doesn’t include /usr/lib(64)/libtolua+±5.1.so, and that’s what conky need, at least my build. Other builds don’t seem to require this library to run and and don’t install tolua++, but needs it to compile conky with lua + imlib2 support (an that’s exactly what I need). Finally I was able to find another tolua++ from Fedora, which contains the library. I built it - needed a rpmlintrc though, but the official package does too - and it worked after all, except that I get dependencies error while installing it from my main repo, but not from a subproject repo. Actually only the package I built in the subproject works, but it is the same package! And I don’t understand. I built, rebuilt, branched, rebranched, removed and recreated this package dozens of time.

I started with these repos on a fresh 12.2 with Gnome install in a virtual 32bit machine (but same problem on 64bit systems):

# zypper lr
#  | Alias                       | Name                                        | Enabled | Refresh
---+-----------------------------+---------------------------------------------+---------+--------
 1 | home_please_try_again       | testing (openSUSE_12.2)                     | No      | No     
 2 | home_please_try_again_conky | home:please_try_again:conky (openSUSE_12.2) | Yes     | No     
 3 | openSUSE-12.2-1.6           | openSUSE-12.2-1.6                           | Yes     | Yes    
 4 | repo-debug                  | openSUSE-12.2-Debug                         | No      | Yes    
 5 | repo-debug-update           | openSUSE-12.2-Update-Debug                  | No      | Yes    
 6 | repo-debug-update-non-oss   | openSUSE-12.2-Update-Debug-Non-Oss          | No      | Yes    
 7 | repo-non-oss                | openSUSE-12.2-Non-Oss                       | Yes     | Yes    
 8 | repo-source                 | openSUSE-12.2-Source                        | No      | Yes    
 9 | repo-update                 | openSUSE-12.2-Update                        | Yes     | Yes    
10 | repo-update-non-oss         | openSUSE-12.2-Update-Non-Oss                | Yes     | Yes    
11 | server_monitoring           | Server Monitoring Software (openSUSE_12.2)  | No      | No     

#1 and #11 are disabled. I can install tolua++ (and further conky) from #2, and it works:

# zypper in -r 2 tolua++
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
  tolua++ 

1 new package to install.
Overall download size: 41.3 KiB. After the operation, additional 128.7 KiB will be used.
Continue? [y/n/?] (y): y
Retrieving package tolua++-1.0.93-9.1.i586              (1/1),  41.3 KiB (128.7 KiB unpacked)
Retrieving: tolua++-1.0.93-9.1.i586.rpm ..................................[done (62.1 KiB/s)]
Installing: tolua++-1.0.93-9.1 ........................................................[done]

Now if I uninstall it, disable #2 (although it is not necessary), enable #1, refresh an install from there, it fails:

# zypper rm tolua++ ; zypper mr -d 2 ; zypper mr -e 1 ; zypper ref ; zypper in -r 1 tolua++
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following package is going to be REMOVED:
  tolua++ 

1 package to remove.
After the operation, 128.7 KiB will be freed.
Continue? [y/n/?] (y): y
Installing: tolua++-1.0.93-9.1 ........................................................[done]
Removing tolua++-1.0.93-9.1 ...........................................................[done]
Repository 'home_please_try_again_conky' has been successfully disabled.
Repository 'home_please_try_again' has been successfully enabled.
Repository 'testing (openSUSE_12.2)' is up to date.
Repository 'openSUSE-12.2-1.6' is up to date.
Repository 'openSUSE-12.2-Non-Oss' is up to date.
Repository 'openSUSE-12.2-Update' is up to date.
Repository 'openSUSE-12.2-Update-Non-Oss' is up to date.
All repositories have been refreshed.
Loading repository data...
Reading installed packages...
Resolving package dependencies...

**Problem: nothing provides liblua-5.1.so needed by tolua++-1.0.93-2.1.i586**
 Solution 1: do not install tolua++-1.0.93-2.1.i586
 Solution 2: break tolua++-1.0.93-2.1.i586 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/c] (c): 

Again, it is the same package.

Installing conky from my conky repo subproject works. However I don’t see why I would need a separate project for this. If I could just install it from the main repo, it would fix the problem as far as I’m concerned (and so for users installing this package port from this repo). I had to disable it in panic yesterday, because at some point and for another reason I don’t know, zypper suggested to uninstall basically everything (most 64bit packages) in order to install conky - more precisely tolua++. Now it just produces a dependency error without breaking anything else. However conky doesn’t work then.

...
Problem: nothing provides liblua-5.1.so needed by tolua++-1.0.93-2.1.i586
 Solution 1: do not install tolua++-1.0.93-2.1.i586
 Solution 2: break tolua++-1.0.93-2.1.i586 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/c] (c): **2**
Resolving dependencies...
Resolving package dependencies...

The following NEW package is going to be installed:
  tolua++ 

1 new package to install.
Overall download size: 41.3 KiB. After the operation, additional 128.7 KiB will be used.
Continue? [y/n/?] (y): y
Retrieving package tolua++-1.0.93-9.1.i586              (1/1),  41.3 KiB (128.7 KiB unpacked)
Retrieving: tolua++-1.0.93-9.1.i586.rpm ..................................[done (62.1 KiB/s)]
Installing: tolua++-1.0.93-9.1 ........................................................[done]


# zypper in -r 1 conky
Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: nothing provides liblua-5.1.so needed by conky-1.9.0-59.3.i586
 Solution 1: do not install conky-1.9.0-59.3.i586
 Solution 2: break conky-1.9.0-59.3.i586 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/c] (c): 


Installed conky by breaking dependencies and it doesn’t work.

$  conky
conky: error while loading shared libraries: liblua-5.1.so: cannot open shared object file: No such file or directory

Now if I uninstall conky and tolua++, disable #1, reenable #2, refresh, install conky from there, it works:

# zypper rm conky tolua++ ; zypper mr -d 1; zypper mr -e 2; zypper ref; zypper in -r 2 conky
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following packages are going to be REMOVED:
  conky tolua++ 

2 packages to remove.
After the operation, 1.2 MiB will be freed.
Continue? [y/n/?] (y): y
Removing conky-1.9.0-59.3 .............................................................[done]
Removing tolua++-1.0.93-2.1 ...........................................................[done]
Repository 'home_please_try_again' has been successfully disabled.
Repository 'home_please_try_again_conky' has been successfully enabled.
Retrieving repository 'home:please_try_again:conky (openSUSE_12.2)' metadata ..........[done]
Building repository 'home:please_try_again:conky (openSUSE_12.2)' cache ...............[done]
Repository 'openSUSE-12.2-1.6' is up to date.
Repository 'openSUSE-12.2-Non-Oss' is up to date.
Repository 'openSUSE-12.2-Update' is up to date.
Repository 'openSUSE-12.2-Update-Non-Oss' is up to date.
All repositories have been refreshed.
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW packages are going to be installed:
  conky imlib2-loaders libid3tag tolua++ 

4 new packages to install.
Overall download size: 387.1 KiB. After the operation, additional 1.5 MiB will be used.
Continue? [y/n/?] (y): y
Retrieving package tolua++-1.0.93-9.1.i586              (1/4),  41.3 KiB (128.7 KiB unpacked)
Retrieving: tolua++-1.0.93-9.1.i586.rpm ...............................................[done]
Retrieving package libid3tag-0.15.1b-175.2.1.i586       (2/4),  34.9 KiB ( 93.4 KiB unpacked)
Retrieving: libid3tag-0.15.1b-175.2.1.i586.rpm ........................................[done]
Retrieving package imlib2-loaders-1.4.5-9.2.1.i586      (3/4),  46.8 KiB (178.5 KiB unpacked)
Retrieving: imlib2-loaders-1.4.5-9.2.1.i586.rpm .......................................[done]
Retrieving package conky-1.9.0-4.2.i586                 (4/4), 264.1 KiB (  1.1 MiB unpacked)
Retrieving: conky-1.9.0-4.2.i586.rpm .....................................[done (98.2 KiB/s)]
Installing: tolua++-1.0.93-9.1 ........................................................[done]
Installing: libid3tag-0.15.1b-175.2.1 .................................................[done]
Installing: imlib2-loaders-1.4.5-9.2.1 ................................................[done]
Installing: conky-1.9.0-4.2 ...........................................................[done]

In the meantime I added imlib2-loaders and libid3tag requires that were missing, but it is unrelated (but needed!).


$ conky
Conky: forked to background, pid is 10773
agnelo@olaf:~> 
Conky: desktop window (25e) is root window
Conky: window type - normal
Conky: drawing to created window (0x3c00001)
Conky: drawing to double buffer
....

$ conky -v
Conky 1.9.0 compiled Tue Oct  2 11:31:17 UTC 2012 for Linux 3.4.6-2.10-default (i686)

Compiled in features:

System config file: /etc/conky/conky.conf
Package library path: /usr/lib/conky

 X11:
  * Xdamage extension
  * XDBE (double buffer extension)
  * Xft
  * ARGB visual

 Music detection:

 General:
  * math
  * hddtemp
  * portmon
  * Curl
  * RSS
  * wireless
  * support for IBM/Lenovo notebooks
  *** nvidia**
  * config-output
  * Imlib2
 ** * apcupsd**
  * iostats
  * ncurses
  * Lua

  Lua bindings:
   * Cairo
   * Imlib2

Notice that nvidia support is present and that apcupsd works (unlike in other builds).

These requires are missing in both conky 1.81 from openSUSE repo and conky 1.9.0 from server:monitoring. Thus, on my fresh Gnome install where these packages were not installed conky was unable to render png images.

# zypper rm imlib2-loaders libid3tag
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following packages are going to be REMOVED:
  imlib2-loaders libid3tag 

The following package is going to be downgraded:
  conky 

The following package is going to change vendor:
  conky  obs://build.opensuse.org/home:please_try_again -> openSUSE


1 package to downgrade, 2 to remove, 1 to change vendor.
Overall download size: 204.0 KiB. After the operation, 805.7 KiB will be freed.
Continue? [y/n/p/?] (y): y
Retrieving package conky-1.8.1-5.1.2.i586               (1/1), 204.0 KiB (566.0 KiB unpacked)
Retrieving: conky-1.8.1-5.1.2.i586.rpm ................................................[done]
Removing imlib2-loaders-1.4.5-9.2.1 ...................................................[done]
Removing libid3tag-0.15.1b-175.2.1 ....................................................[done]
Installing: conky-1.8.1-5.1.2 .........................................................[done]

However this version was compiled with imlib2 support:


# conky -v
Conky 1.8.1 compiled Mon Jul 16 04:04:49 UTC 2012 for Linux 3.1.10-1.9-default (i686)

Compiled in features:

System config file: /etc/conky/conky.conf
Package library path: /usr/lib/conky

 X11:
  * Xdamage extension
  * XDBE (double buffer extension)
  * Xft
  * ARGB visual

 Music detection:
  * MPD
  * MOC

 General:
  * math
  * hddtemp
  * portmon
  * Curl
  * RSS
  * wireless
  * eve-online
  * config-output
**  * Imlib2**
  * apcupsd
  * iostats
  * ncurses
  * Lua

  Lua bindings:
   * Cairo
**   * Imlib2**

But image rendering doesn’t work:


agnelo@olaf:~> conky
Conky: forked to background, pid is 12169
agnelo@olaf:~> 
Conky: desktop window (25e) is root window
Conky: window type - normal
Conky: drawing to created window (0x3c00001)
Conky: drawing to double buffer
Conky: Unable to load image '/usr/share/conkyweather/images/afewclouds.png'

Installing imlib2-loaders and libid3tag solve the problem with this version (and also with version 1.9.0 from server:monitoring, I guess).


# zypper in imlib2-loaders libid3tag 
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW packages are going to be installed:
  imlib2-loaders libid3tag 

2 new packages to install.
Overall download size: 81.7 KiB. After the operation, additional 271.9 KiB will be used.
Continue? [y/n/?] (y): y
Retrieving package libid3tag-0.15.1b-175.2.1.i586       (1/2),  34.9 KiB ( 93.4 KiB unpacked)
Retrieving: libid3tag-0.15.1b-175.2.1.i586.rpm ...........................[done (18.7 KiB/s)]
Retrieving package imlib2-loaders-1.4.5-9.2.1.i586      (2/2),  46.8 KiB (178.5 KiB unpacked)
Retrieving: imlib2-loaders-1.4.5-9.2.1.i586.rpm ..........................[done (35.0 KiB/s)]
Installing: libid3tag-0.15.1b-175.2.1 .................................................[done]
Installing: imlib2-loaders-1.4.5-9.2.1 ................................................[done]

$ conky
Conky: forked to background, pid is 21062
agnelo@olaf:~> 
Conky: desktop window (25e) is root window
Conky: window type - normal
Conky: drawing to created window (0x3c00001)
Conky: drawing to double buffer

Enjoy :wink:

https://build.opensuse.org/package/show?package=tolua%2B%2B&project=home%3Amalcolmlewis%3ATESTING


Cheers Malcolm °¿° (Linux Counter #276890)
openSUSE 12.2 (x86_64) Kernel 3.4.6-2.10-desktop
up 21:33, 4 users, load average: 0.53, 0.25, 0.18
CPU Intel i5 CPU M520@2.40GHz | Intel Arrandale GPU

I’m sure I will. Thanks Malcolm.

It looks like I’m starting to see what’s the problem with that other tolua++:

The working one:

# zypper  info tolua++
Loading repository data...
Reading installed packages...


Information for package tolua++:

Repository: **home:please_try_again:conky** (openSUSE_12.2)
Name: tolua++
Version: 1.0.93-9.1
Arch: i586
Vendor: obs://build.opensuse.org/home:please_try_again
Installed: Yes
Status: up-to-date
Installed Size: 128.7 KiB


# rpm -q --requires tolua++
/sbin/ldconfig  
/sbin/ldconfig  
libc.so.6  
libc.so.6(GLIBC_2.0)  
libc.so.6(GLIBC_2.1.3)  
libc.so.6(GLIBC_2.3.4)  
libc.so.6(GLIBC_2.4)  
libdl.so.2  
**liblua.so.5.1  **
libm.so.6  
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsLzma) <= 4.4.6-1

The broken one:

# zypper info tolua++
Loading repository data...
Reading installed packages...


Information for package tolua++:

Repository: **testing **(openSUSE_12.2)
Name: tolua++
Version: 1.0.93-2.1
Arch: i586
Vendor: obs://build.opensuse.org/home:please_try_again
Installed: Yes
Status: up-to-date
Installed Size: 128.7 KiB


# rpm -q --requires tolua++
/sbin/ldconfig  
/sbin/ldconfig  
libc.so.6  
libc.so.6(GLIBC_2.0)  
libc.so.6(GLIBC_2.1.3)  
libc.so.6(GLIBC_2.3.4)  
libc.so.6(GLIBC_2.4)  
libdl.so.2  
**liblua-5.1.so  **
libm.so.6  
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsLzma) <= 4.4.6-1

# ldd /usr/lib/libtolua++-5.1.so 
	linux-gate.so.1 (0xb77af000)
**	liblua-5.1.so => not found
**	libdl.so.2 => /lib/libdl.so.2 (0xb778b000)
	libm.so.6 => /lib/libm.so.6 (0xb775f000)
	libc.so.6 => /lib/libc.so.6 (0xb75b9000)
	/lib/ld-linux.so.2 (0xb77b0000)


OK. Now I replaced tolua++ in my home repo with yours, modified it a little bit to build for Fedora and Mandriva, but as you can see, nothing that could break it:

--- tolua++.spec.orig   2012-10-02 12:03:39.000000000 -0700
+++ tolua++.spec        2012-10-02 10:54:45.000000000 -0700
@@ -23,15 +23,29 @@
 License:        MIT
 Summary:        A tool to integrate C/C++ code with Lua
 Url:            [toLua++ - binding c/c++ code to lua](http://www.codenix.com/~tolua/)
-Group:          Development/Tools/Building
 Source0:        http://www.codenix.com/~tolua/%{name}-%{version}.tar.bz2
 # PATCH-FIX-OPENSUSE  tolua++-1.0.93-makeso.patch [email]malcolmlewis@opensuse.org[/email] -- Add shared library.
 Patch0:         tolua++-1.0.93-makeso.patch
+
+%if 0%{?mdkversion}
+Group:          System Environment/Libraries
+%endif
+%if 0%{?rhel_version} || 0%{?centos_version} || 0%{?fedora}
+Group:          Development/Tools
+BuildRequires:  gcc-c++
+BuildRequires:  pkgconfig
+%endif
+%if 0%{?suse_version}
+Group:          Development/Tools/Building
+%endif
+
 %if 0%{?suse_version} > 1210
 BuildRequires:  lua51-devel
 %else
 BuildRequires:  lua-devel
 %endif
+
+
 BuildRequires:  scons
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build

And I still get the same error:


# zypper in -r PTA conky
Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: nothing provides liblua-5.1.so()(64bit) needed by conky-1.9.0-59.4.x86_64
 Solution 1: do not install conky-1.9.0-59.4.x86_64
 Solution 2: break conky-1.9.0-59.4.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/c] (c): c

# zypper in -r PTA tolua++
Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: nothing provides liblua-5.1.so()(64bit) needed by tolua++-1.0.93-4.1.x86_64
 Solution 1: do not install tolua++-1.0.93-4.1.x86_64
 Solution 2: break tolua++-1.0.93-4.1.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/c] (c): 

It doesn’t surpprise me because it was broken before. What surprises me is that I got this error too with the other tolua++ (the one which works now in my conky repo). But we’re getting closer. Someone is (still) using “liblua-5.1.so” while it should be “liblua.so.5.1”.

If I build it locally with lua51-devel from standard repo, it’s OK:

$ rpm -q --requires tolua++
/sbin/ldconfig  
/sbin/ldconfig  
libc.so.6()(64bit)  
libc.so.6(GLIBC_2.14)(64bit)  
libc.so.6(GLIBC_2.2.5)(64bit)  
libdl.so.2()(64bit)  
**liblua.so.5.1**()(64bit)  
libm.so.6()(64bit)  
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsLzma) <= 4.4.6-1

I just need to get the same in my repo.

local build log:

...
Provides: libtolua++-5.1.so()(64bit)
Requires(interp): /sbin/ldconfig /sbin/ldconfig
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
Requires: libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libdl.so.2()(64bit) **liblua.so.5.1**()(64bit) libm.so.6()(64bit)
Processing files: tolua++-devel-1.0.93-0.x86_64
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires: libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libdl.so.2()(64bit) **liblua.so.5.1**()(64bit) libm.so.6()(64bit) libtolua++-5.1.so()(64bit)
...

OBS build log:

...
  138s] Provides: libtolua++-5.1.so()(64bit)
  138s] Requires(interp): /sbin/ldconfig /sbin/ldconfig
  138s] Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
  138s] Requires(post): /sbin/ldconfig
  138s] Requires(postun): /sbin/ldconfig
  138s] Requires: libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libdl.so.2()(64bit) **liblua-5.1.so**()(64bit) libm.so.6()(64bit)
  138s] Processing files: tolua++-devel-1.0.93-4.1.x86_64
  139s] Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
  139s] Requires: libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libdl.so.2()(64bit) **liblua-5.1.so**()(64bit) libm.so.6()(64bit) libtolua++-5.1.so()(64bit)
...

OBS:

[119/119] installing lua51-devel-**5.1-17.1**

locally:

# zypper info lua51-devel
Loading repository data...
Reading installed packages...


Information for package lua51-devel:

Repository: openSUSE-12.2-Oss
Name: lua51-devel
Version: **5.1.4-20.1.4**
Arch: x86_64
Vendor: openSUSE
Installed: Yes
Status: up-to-date

Hi
It’s provided by lua51-libs
https://build.opensuse.org/package/show?project=devel%3Alanguages%3Alua&package=lua51


Cheers Malcolm °¿° (Linux Counter #276890)
openSUSE 12.2 (x86_64) Kernel 3.4.6-2.10-desktop
up 1 day 2:48, 3 users, load average: 0.06, 0.26, 0.41
CPU Intel i5 CPU M520@2.40GHz | Intel Arrandale GPU

And we need to use the one included in liblua5_1:

# rpm -qf /usr/lib64/liblua.so.5.1
liblua5_1-5.1.4-20.1.4.x86_64

# zypper info liblua5_1
Loading repository data...
Reading installed packages...


Information for package liblua5_1:

Repository: openSUSE-12.2-Oss
Name: liblua5_1
Version: 5.1.4-20.1.4
Arch: x86_64
Vendor: openSUSE
Installed: Yes
Status: up-to-date
Installed Size: 192.6 KiB

Comparing the logs in my home project and conky subproject for tolua++, I notice that liblua5_1 is preinstalled in both cases:

   33s] [57/119] preinstalled liblua5_1-5.1.4-20.1.4

But they didn’t install the same lua51-devel version. Why?

openSUSE Build Service > Projects > home: please_try_again:conky > Packages > tolua++ > Build Log (OK)

51s] [115/118] installing lua51-devel-5.1.4-20.1.4

openSUSE Build Service > Projects > home: please_try_again > Packages > tolua++ > Build Log (broken)

43s] [119/119] installing lua51-devel-5.1-17.1

My guess is that it might happen ‘randomly’ (depend on the vm) - with a high percentage of failure actually. :
Just thoughts.

Solved by linking lua51 from openSUSE-12.2-Oss in my repo and adding the version in tolua++.spec.

BuildRequires:  lua51-devel >= 5.1.4

Thanks again, Malcolm.

Hi
I would raise a bug on it so it can get fixed once and for all? Maybe
offer to do the update?


Cheers Malcolm °¿° (Linux Counter #276890)
openSUSE 12.2 (x86_64) Kernel 3.4.6-2.10-desktop
up 1 day 8:09, 3 users, load average: 0.06, 0.05, 0.05
CPU Intel i5 CPU M520@2.40GHz | Intel Arrandale GPU

In this case, it’s your tolua++ which needed to be fixed. I have no idea why the OBS vms sometimes install one or the other lua51 version. It’s a bug in OBS I would say, but I don’t know. AFAIK other conky builds don’t require tolua++ to run. I don’t know why either.

Hi
I meant about pushing the change through so the ‘official’ one can get
patched/built to provide the shared library :wink:


Cheers Malcolm °¿° (Linux Counter #276890)
openSUSE 12.2 (x86_64) Kernel 3.4.6-2.10-desktop
up 1 day 9:00, 3 users, load average: 0.10, 0.07, 0.05
CPU Intel i5 CPU M520@2.40GHz | Intel Arrandale GPU

To me, it sounds like you’re ruled by rpmlint too much.

libcairo.so libimlib2.so seems to be the libraries conky wants instead of conky-devel.

And .so format is suggested to be placed in a -devel sub-package, as rpmlint says.

So you were running into difficulty to make it happen, if place them into conky, rpmlint warns; if place them into conky-devel, conky segfaults because it can’t find the runtime libraries.

Here’s my solutions(a few):

  1. Just place them into conky and ignore the warnings. (easiest)

  2. place them into conky-devel, and add “Requires: %{name}-devel = %{version}” to conky package(awkward but works for personal use, but will be certainly rejected if you submit to Factory)

  3. patch conky source code. make a conky-shlib.patch. (hardest)

find something like “$(CC) -shared” and replace the line with something like this:

$(CC) -shared -Wl,-soname,libcairo.so.1.0.0

it requires you to have some basic knowledge about gcc.

it you’are right, it will generate a library as you named. then you can link it to .so and .so.1 in %install section, like this:

ln -sf %{_libdir}/conky/libcairo.so.1.0.0 %{buildroot}%{_libdir}/conky/libcairo.so

Just Remember: the %{buildroot} has to be placed at the second parameter, or it will fail to link.

or you can do the same thing in soure code, link them and install them in configure.ac (then run autoreconf -fi at the top of %build section) or CMakeLists.txt

and in %files section


%files << conky
%defattr(-,root,root)
%{_libdir}/conky/libcairo.so.1
%{_libdir}/conky/libcairo.so.1.0.0

%file devel << conky-devel
%defattr(-,root,root)
%{_libdir}/conky/libcairo.so

  1. less hard solution

in %install section:


mv %{buildroot}%{_libdir}/conky/libcairo.so %{buildroot}%{_libdir}/conky/libcairo.so.1.0.0
ln -sf %{_libdir}/conky/libcairo.so.1.0.0 %{buildroot}%{_libdir}/conky/libcairo.so.1
ln -sf %{_libdir}/conky/libcairo.so.1.0.0 %{buildroot}%{_libdir}/conky/libcairo.so

and the same goes to %files section.

but I’m not sure if this simple rename method works.

Greetings,

Marguerite