LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 12-17-2013, 06:26 AM   #1
Toutatis
Member
 
Registered: Feb 2013
Posts: 430

Rep: Reputation: Disabled
problem with multilib and new libcairo


Hello !

I have had some problems when I tried to run 32 bits programs in slackware64 (usin alienbob's multilib). I got some

libudev.so.0 not found

It seems to come from the new libcairo.so.2.11200.16 in slacware64-current that uses it.
Is it sane to convert 32bits udev dans install it ?
 
Old 12-17-2013, 07:43 AM   #2
phenixia2003
Senior Member
 
Registered: May 2006
Location: France
Distribution: Slackware
Posts: 1,052

Rep: Reputation: 1009Reputation: 1009Reputation: 1009Reputation: 1009Reputation: 1009Reputation: 1009Reputation: 1009Reputation: 1009
Hello,

Quote:
Originally Posted by Toutatis View Post
Hello !

I have had some problems when I tried to run 32 bits programs in slackware64 (usin alienbob's multilib). I got some

libudev.so.0 not found

It seems to come from the new libcairo.so.2.11200.16 in slacware64-current that uses it.
Is it sane to convert 32bits udev dans install it ?

Be careful with udev because it contains binaries in locations (ex: /lib/udev) which are not handled by convertpkg-compat32, and some of 64-bit binaries will be overwritten by their 32-bit counterparts. If udev needs to be included into the multilib, then convertpkg-compat32 will need to be updated accordingly.

Some times ago, I wrote a patch for convertpkg-compat32 to manage udev in case this package would have to be added into the multilib. This patch works with current convertpkg-compat32 :

Code:
--- usr/sbin/convertpkg-compat32	2012-09-21 00:50:13.000000000 +0200
+++ convertpkg-compat32	2012-11-14 12:05:14.087003773 +0100
@@ -198,6 +198,38 @@
   mv ./32 usr/bin/
 fi
 
+  # udev needs special attention
+  #
+if [ "$PKGNAM" = "udev" ] ; then
+
+		# -- remove directories which comes with 64-bit udev.
+
+	rm -rf lib/firmware
+	rm -rf lib/udev
+	rm -rf usr/doc
+
+		# -- Only udev from 13.37 comes with this one
+	rm -rf usr/lib/ConsoleKit
+
+		# -- Only udev from 14.0 comes with this ones
+	rm -rf lib/modprobe.d
+	rm -rf run
+
+		# -- strip doinst.sh from things which comes with 64-bit udev
+		#
+		# Note:
+		#   'cd usr/lib/ConsoleKit/run-seat.d' is specific to udev from Slackware-13.37
+		#
+	cat install/doinst.sh | \
+		grep -v '( cd sbin' | \
+		grep -v '( cd lib/udev' | \
+		grep -v '( cd usr/lib/ConsoleKit/run-seat.d' > install/doinst.sh.2
+
+	cat install/doinst.sh.2 > install/doinst.sh
+	rm -f install/doinst.sh.2
+fi
+
+
 # Strip doinst.sh from everything we can't use:
 if [ "$PKGNAM" = "gtk+2" -o "$PKGNAM" = "gdk-pixbuf2" -o "$PKGNAM" = "pango" ];
 then
With that, you should have an udev-compat32 that contains the following :

Code:
./
lib/
lib/libudev.so.0.13.1
lib/libgudev-1.0.so.0.1.1
install/
install/slack-desc
install/doinst.sh
usr/
usr/lib/
usr/lib/pkgconfig/
usr/lib/pkgconfig/gudev-1.0.pc
usr/lib/pkgconfig/libudev.pc
usr/lib/libgudev-1.0.la
usr/lib/girepository-1.0/
usr/lib/girepository-1.0/GUdev-1.0.typelib
usr/lib/libgudev-1.0.a
usr/lib/libudev.la
usr/lib/libudev.a
Hope this helps.

Cheers.

Edit:Added the patch in attachment.

--
SeB
Attached Files
File Type: txt convertpkg-compat32_udev_slack14.0.patch.txt (1.1 KB, 12 views)

Last edited by phenixia2003; 12-17-2013 at 08:27 AM.
 
Old 12-17-2013, 10:01 AM   #3
Alien Bob
Slackware Contributor
 
Registered: Sep 2005
Location: Eindhoven, The Netherlands
Distribution: Slackware
Posts: 8,559

Rep: Reputation: 8120Reputation: 8120Reputation: 8120Reputation: 8120Reputation: 8120Reputation: 8120Reputation: 8120Reputation: 8120Reputation: 8120Reputation: 8120Reputation: 8120
Hi phenixia2003

That is unfortunate, cairo having a new dependency now...
But I thank you for your piece of code which I would like to use in my version of convertpkg-compat32 is that's OK? I will credit you in the script's header.

Eric
 
Old 12-17-2013, 10:44 AM   #4
phenixia2003
Senior Member
 
Registered: May 2006
Location: France
Distribution: Slackware
Posts: 1,052

Rep: Reputation: 1009Reputation: 1009Reputation: 1009Reputation: 1009Reputation: 1009Reputation: 1009Reputation: 1009Reputation: 1009
Hi Eric,

Quote:
Originally Posted by Alien Bob View Post
Hi phenixia2003
But I thank you for your piece of code which I would like to use in my version of convertpkg-compat32 is that's OK?
No problem.

Furthermore, it seems that mesa requires udev also. More precisely, it's required by /usr/lib/libEGL.so.1.0.0. I found that when running compat32pkg --depends in a virtualized slackware64/multilib (Note: the nvidia driver comes with its own libEGL.so which does not require udev) :

Code:
$ compat32pkg --depends mesa-compat32

compat32pkg ver. 1.6.131213 (stable)

[--depends] Started on Tue 17 Dec 2013 05:44:48 PM CET

[--depends]   Inspecting 32-bit binaries from package mesa-compat32-9.1.7-x86_64-1compat32
[--depends]     Found 27 32-bit binaries:                   
[--depends]       /usr/bin/32/glthreads (31 deps.)
[--depends]       /usr/bin/32/glxgears_fbconfig (31 deps.)
[--depends]       /usr/bin/32/glxinfo (31 deps.)
[--depends]       /usr/bin/32/glxcontexts (31 deps.)
[--depends]       /usr/bin/32/glxgears (31 deps.)
[--depends]       /usr/bin/32/glxpixmap (31 deps.)
[--depends]       /usr/bin/32/gears (34 deps.)
[--depends]         [WARNING] unmet dependency: libglut.so.3

[--depends]       /usr/bin/32/glinfo (34 deps.)
[--depends]         [WARNING] unmet dependency: libglut.so.3

[--depends]       /usr/bin/32/glxpbdemo (31 deps.)
[--depends]       /usr/bin/32/glxheads (31 deps.)
[--depends]       /usr/bin/32/glxdemo (31 deps.)
[--depends]       /usr/lib/libglapi.so.0.0.0 (4 deps.)
[--depends]       /usr/lib/libdricore9.1.7.so.1.0.0 (6 deps.)
[--depends]       /usr/lib/xorg/modules/dri/nouveau_dri.so (12 deps.)
[--depends]       /usr/lib/xorg/modules/dri/radeon_dri.so (12 deps.)
[--depends]       /usr/lib/xorg/modules/dri/i915_dri.so (13 deps.)
[--depends]       /usr/lib/xorg/modules/dri/swrast_dri.so (11 deps.)
[--depends]       /usr/lib/xorg/modules/dri/i965_dri.so (13 deps.)
[--depends]       /usr/lib/xorg/modules/dri/r600_dri.so (12 deps.)
[--depends]       /usr/lib/xorg/modules/dri/nouveau_vieux_dri.so (12 deps.)
[--depends]       /usr/lib/xorg/modules/dri/r200_dri.so (12 deps.)
[--depends]       /usr/lib/xorg/modules/dri/r300_dri.so (12 deps.)
[--depends]       /usr/lib/xorg/modules/dri/vmwgfx_dri.so (11 deps.)
[--depends]       /usr/lib/libGL.so.1.2.0 (19 deps.)
[--depends]       /usr/lib/libxatracker.so.1.0.0 (9 deps.)
[--depends]       /usr/lib/libOSMesa.so.8.0.0 (9 deps.)
[--depends]       /usr/lib/libEGL.so.1.0.0 (17 deps.)
[--depends]         [WARNING] unmet dependency: libudev.so.0

                                              
[--depends]     Found 44 dependencies (0 orphans, 2 unresolved)

[--depends]   42 dependencies are fulfilled by these packages:

        aaa_elflibs-compat32
        cxxlibs-compat32
        expat-compat32
        gcc
        gcc-g++
        glew-compat32
        glibc
        glibc-solibs
        glu-compat32
        libICE-compat32
        libSM-compat32
        libX11-compat32
        libXau-compat32
        libXdamage-compat32
        libXdmcp-compat32
        libXext-compat32
        libXfixes-compat32
        libXi-compat32
        libXmu-compat32
        libXrandr-compat32
        libXrender-compat32
        libXt-compat32
        libXxf86vm-compat32
        libdrm-compat32
        libpciaccess-compat32
        libxcb-compat32
        util-linux-compat32
        zlib-compat32

[--depends]   2 unresolved dependencies : 

        [ Dependency                       ] [ Note                                     ]
          libglut.so.3                         64-bit version in package(s) freeglut     
          libudev.so.0                         64-bit version in package(s) udev         

[--depends] Ended on Tue 17 Dec 2013 05:44:59 PM CET
libglut is only required by /usr/bin/32/gears and /usr/bin/32/glinfo, so I don't think freeglut really need to be added into the multilib. What do you think about that ?

Cheers.

--
SeB
 
Old 12-17-2013, 01:37 PM   #5
Alien Bob
Slackware Contributor
 
Registered: Sep 2005
Location: Eindhoven, The Netherlands
Distribution: Slackware
Posts: 8,559

Rep: Reputation: 8120Reputation: 8120Reputation: 8120Reputation: 8120Reputation: 8120Reputation: 8120Reputation: 8120Reputation: 8120Reputation: 8120Reputation: 8120Reputation: 8120
I think that freeglut needs to be added to the multilib set, just to avoid getting hit when we encounter a closed-source 32-bit program which is compiled against it.
Plus udev of course, needs to get added. Udev's dependencies are luckily met by aaa_elflibs.

Eric
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
[ANN] mk-slack64-multilib : A tool to create slackware64+multilib tree/iso phenixia2003 Slackware 5 12-28-2012 05:42 AM
[SOLVED] Broffice not compile on Slack64(multilib or no multilib);SlackBuild afreitascs Slackware 4 06-14-2010 07:16 AM
Upgrade to Ubuntu9.4 cacti8.7d does not shows graphs anymore (libcairo problem) smecherel Linux - Software 1 05-10-2009 03:23 AM
Libcairo HELP Sovetryne Linux - Newbie 8 06-29-2008 07:05 AM
libcairo.so.2 ? dave`2005 Linux - Newbie 3 03-14-2006 03:16 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 04:05 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration