LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Home Forums Tutorials Articles Register
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 03-16-2016, 01:27 AM   #1
DarkVision
Member
 
Registered: Jul 2007
Posts: 199

Rep: Reputation: Disabled
Question Slackware 14.2/-current - problem with rebuilding kde-workspace and possibly other packages


Hi there...
this might not be a problem when running -current on x32-platform but might be a problem if there is any need to re-compile kde-workspace (maybe because a major-version bump of a library dependency).

I have setup 14.2/-current inside of a virtualbox for 32bit and a second virtual machine with 64bit with package updates up to 16-03-10.

I have used 'KDE.SlackBuild kdebase kde-workspace' to recompile the kde-workspace package.

This works fine for x64, the package compiles fine without any issues.

On x32 i get the following error:
Code:
[ 44%] Building C object kdm/backend/CMakeFiles/kdm.dir/auth.c.o
/usr/lib/gcc/i586-slackware-linux/5.3.0/../../../libpci.a(names-hwdb.o): In function `pci_id_hwdb_lookup':
names-hwdb.c:(.text+0xb9): undefined reference to `udev_hwdb_get_properties_list_entry'
names-hwdb.c:(.text+0xc9): undefined reference to `udev_list_entry_get_next'
names-hwdb.c:(.text+0xdb): undefined reference to `udev_list_entry_get_name'
names-hwdb.c:(.text+0xf3): undefined reference to `udev_list_entry_get_value'
names-hwdb.c:(.text+0x25a): undefined reference to `udev_new'
names-hwdb.c:(.text+0x265): undefined reference to `udev_hwdb_new'
/usr/lib/gcc/i586-slackware-linux/5.3.0/../../../libpci.a(names-hwdb.o): In function `pci_id_hwdb_free':
names-hwdb.c:(.text+0x293): undefined reference to `udev_hwdb_unref'
names-hwdb.c:(.text+0x2a9): undefined reference to `udev_unref'
collect2: error: ld returned 1 exit status
kinfocenter/Modules/pci/CMakeFiles/kcm_pci.dir/build.make:191: recipe for target 'lib/kcm_pci.so' failed
make[2]: *** [lib/kcm_pci.so] Error 1
CMakeFiles/Makefile2:17681: recipe for target 'kinfocenter/Modules/pci/CMakeFiles/kcm_pci.dir/all' failed
make[1]: *** [kinfocenter/Modules/pci/CMakeFiles/kcm_pci.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
I thought there might be a problem with pciutils so i had a look to archlinux and it looks like they are using a shared library instead of a static one.
I tried to rebuild pciutils as a shared library (using SHARED=yes with the original SlackBuild) and this will fix the build on x32 but on x64 build kde-workspace is ok with the static version of pciutils.

Not sure if there will be ever again any need to re-compile kde-workspace since KDE4 is deprecated but maybe this affects other packages also so i would like to get some feedback:
Any ideas what could be the problem here and how can it be fixed on x32 without using a shared library version of pciutils? Maybe some missing compiler or linker flags?

P.S. I tried to use some older versions of pciutils (3.2.1) and it looks like build on x32 is ok even with a static library. I had a look to the libpci.pc config file and with 3.4.1 there is an additional -ludev for Libs.private. Might this be a problem related to the eudev package?

P.S.#2: Really looks like an issue with the new -ludev. If i modify the FindPciutils.cmake file from kde-workspace to include the ${UDEV_LIBS} also everything seem to work. I just wonder why this works on x64 without specify the -ludev libs.
Code:
FIND_LIBRARY(PCIUTILS_LIBRARY NAMES pci)
if(PCIUTILS_LIBRARY)
  FIND_LIBRARY(RESOLV_LIBRARY NAMES resolv)
  if(RESOLV_LIBRARY)
    set(PCIUTILS_LIBRARIES ${PCIUTILS_LIBRARY} ${RESOLV_LIBRARY} ${UDEV_LIBS})
  else(RESOLV_LIBRARY)
    set(PCIUTILS_LIBRARIES ${PCIUTILS_LIBRARY} ${UDEV_LIBS})
  endif(RESOLV_LIBRARY)
endif(PCIUTILS_LIBRARY)

Last edited by DarkVision; 03-18-2016 at 12:45 PM. Reason: P.S. added, thread title updated
 
Old 03-17-2016, 01:37 PM   #2
55020
Senior Member
 
Registered: Sep 2009
Location: Yorks. W.R. 167397
Distribution: Slackware
Posts: 1,307
Blog Entries: 4

Rep: Reputation: Disabled
The same problem shows itself with a number of SBo packages, e.g. pommed-light, flashrom, nvidia*-driver ...

I think the reason is as follows. Note: This isn't my core competency, so apologies if this post turns out to be bollocks.

Slackware's libpci has traditionally been static (quite a reasonable decision) and hasn't had a dependency on libudev. This was true right up until pciutils-3.4.1-x86_64-1.txz on Tue Mar 8 (pciutils-3.4.0 preceded the big eudev update by a week). But now it depends on the new udev hwdb functions in /lib64/libudev.so.1.

Packages that link libpci can use pkg-config to retrieve the required library flags. But when libpci is static, those packages need to use 'pkg-config libpci --libs --static'. This retrieves the correct flags: "-lpci -lz -lresolv -ludev". Unfortunately, a number of packages don't expect libpci to be static and don't use pkg-config --static, so they just get "-lpci" and end up with the OP's error. Or the cruder packages just have hardcoded "-lpci" in their Makefiles

Now that there is this new dependency from libpci to libudev (which is dynamic), maybe the right thing to do is for Slackware to surrender to the zeitgeist and just rebuild pciutils with SHARED=yes.
 
2 members found this post helpful.
Old 03-17-2016, 01:58 PM   #3
Didier Spaier
LQ Addict
 
Registered: Nov 2008
Location: Paris, France
Distribution: Slint64-15.0
Posts: 11,064

Rep: Reputation: Disabled
Quote:
Originally Posted by 55020 View Post
... maybe the right thing to do is for Slackware to surrender to the zeitgeist..
Unfortunately translate.google.com was not helpful in this case. Would "succomber à la mode actuelle" or "succomber à l'air du temps" be an acceptable translation? Maybe instead of "succomber", "se rendre"?

Sorry for the off-topic, I am in a learning process that will cease with me.

Last edited by Didier Spaier; 03-17-2016 at 02:00 PM.
 
Old 03-17-2016, 02:12 PM   #4
DarkVision
Member
 
Registered: Jul 2007
Posts: 199

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by 55020 View Post
The same problem shows itself with a number of SBo packages, e.g. pommed-light, flashrom, nvidia*-driver ...
...
Now that there is this new dependency from libpci to libudev (which is dynamic), maybe the right thing to do is for Slackware to surrender to the zeitgeist and just rebuild pciutils with SHARED=yes.
By mistake i missed an update on x86_64 so i was still using pciutils 3.4.0 which worked well. After upgrading to 3.4.1 i get the same issue and until pciutils is compiled with SHARED=yes i keep my own scripts patched by adding the USB_LIBS if pciutils 3.4.1 is installed.

Thanks for the feedback that this behavior affects other packages also, not just only kde-workspace.

@Didier: I translated the german meaning of zeitgeist from wikipedia using google... maybe that helps
Quote:
The Zeitgeist is the thinking and feeling of ( mentality ) of an age . The term refers to the character of a particular era or trying us to visualize this .
I had a look to some distros how they have build pciutils while i was investigating the problem with rebuilding kde-workspace and using SHARED=yes seem to common practice. This does not mean i think this is correct, but if this would fix building a few packages it might be worth thinking about it expect there are good reasons to keep pciutils static.
 
Old 03-17-2016, 02:57 PM   #5
55020
Senior Member
 
Registered: Sep 2009
Location: Yorks. W.R. 167397
Distribution: Slackware
Posts: 1,307
Blog Entries: 4

Rep: Reputation: Disabled
Quote:
Originally Posted by Didier Spaier View Post
"succomber à la mode actuelle" or "succomber à l'air du temps"
Perfect better than the crap I wrote -- succomber/succumb is the best word in both English and French, and both French phrases suggest "here today/gone tomorrow" more than the German word

Edit: I'm in love with the double meaning in "l'air du temps" -- tomorrow a wind will come and blow away today's temporary ideas.

Last edited by 55020; 03-17-2016 at 03:17 PM.
 
Old 03-18-2016, 12:41 PM   #6
DarkVision
Member
 
Registered: Jul 2007
Posts: 199

Original Poster
Rep: Reputation: Disabled
I'm currently rebuilding KDE Plasma5 and kinfocenter-5.5.5 also fails with pciutils 3.4.1. Patching ${UDEV_LIBS} into the sources does fix the problem here also.
 
Old 03-18-2016, 12:57 PM   #7
55020
Senior Member
 
Registered: Sep 2009
Location: Yorks. W.R. 167397
Distribution: Slackware
Posts: 1,307
Blog Entries: 4

Rep: Reputation: Disabled
But ${UDEV_LIBS} is specific to FindPciutils.cmake, it doesn't fix the non-cmake stuff that's broken.
 
Old 03-18-2016, 01:18 PM   #8
DarkVision
Member
 
Registered: Jul 2007
Posts: 199

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by 55020 View Post
But ${UDEV_LIBS} is specific to FindPciutils.cmake, it doesn't fix the non-cmake stuff that's broken.
Yes... but right now i don't want to replace pciutils with a shared version or a modified pkg-config file if i can fix this in some other way. I agree finding a solution that works for all packages might be better. The above post was just a note about another package that is not able to handle the static pciutils library with udev-support.
 
Old 03-21-2016, 01:32 AM   #9
willysr
Senior Member
 
Registered: Jul 2004
Location: Jogja, Indonesia
Distribution: Slackware-Current
Posts: 4,670

Rep: Reputation: 1787Reputation: 1787Reputation: 1787Reputation: 1787Reputation: 1787Reputation: 1787Reputation: 1787Reputation: 1787Reputation: 1787Reputation: 1787Reputation: 1787
this is now fixed in latest batch of update
 
  


Reply



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
[SOLVED] X Session error logging problem in KDE-4.8.0 on Slackware current v8dave Slackware 1 02-19-2012 04:19 PM
[Solved] Sound problem in Slackware 13 Current KDE 4.3 AuroraZero Slackware 14 04-21-2010 05:42 PM
problem slackware-current kde 4.2 elmana Slackware 1 04-11-2009 03:38 AM
KDE problem using Slackware "12.1" -->current version phodopus Slackware 1 02-07-2008 03:25 AM
Problem with KDE 3.5.3 on Slackware-Current KeithE Slackware 11 06-07-2006 09:29 AM

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

All times are GMT -5. The time now is 02:28 AM.

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