Build failure in solid, udev related

Alexander Neundorf neundorf at kde.org
Sat May 25 19:18:48 UTC 2013


On Saturday 25 May 2013, Kevin Ottens wrote:
> On Saturday 25 May 2013 11:34:27 Alexander Neundorf wrote:
> > On Saturday 25 May 2013, Kevin Ottens wrote:
> > > On Friday 24 May 2013 23:15:10 Alexander Neundorf wrote:
> > > > On Thursday 23 May 2013, Alexander Neundorf wrote:
> > > > > On Thursday 23 May 2013, Alexander Neundorf wrote:
> > > > > > Hi,
> > > > > > 
> > > > > > it seems I finally got a working Qt install :-)
> > > > > > 
> > > > > > 
> > > > > > [  7%] Building CXX object
> > > > > > tier1/solid/src/solid/CMakeFiles/Solid.dir/backends/shared/udevqt
> > > > > > dev i
> > > > > > ce. c
> > > > > > pp .o tier1/solid/src/solid/backends/shared/udevqtdevice.cpp: In
> > > > > > member function 'QStringList UdevQt::Device::sysfsProperties()
> > > > > > const':
> > > > > > tier1/solid/src/solid/backends/shared/udevqtdevice.cpp:205:72:
> > > > > > error: 'udev_device_get_sysattr_list_entry' was not declared in
> > > > > > this scope
> > > > > > tier1/solid/src/solid/backends/shared/udevqtdevice.cpp:206:1:
> > > > > > error: control reaches end of non-void function
> > > > > > make[2]: ***
> > > > > > [tier1/solid/src/solid/CMakeFiles/Solid.dir/backends/shared/udevq
> > > > > > tde v
> > > > > > ice .
> > > > > > cp p.o] Error 1
> > > > > > make[1]: *** [tier1/solid/src/solid/CMakeFiles/Solid.dir/all]
> > > > > > Error 2
> > > > > > 
> > > > > > 
> > > > > > Some udev version check missing or what is going wrong here ?
> > > > > 
> > > > > This is on Slackware 13.37, udev 0.10.0.
> > > > 
> > > > Ok. My udev version is 165.
> > > > udev_device_get_sysattr_list_entry() (and udev_get_run_path(), but
> > > > solid doesn't use that) was added in version 167.
> > > > 
> > > > libudev.h does not seem to have a function for querying the version,
> > > > at least I didn't find any in libudev.h.
> > > > 
> > > > I think I'll add a check whether udev_device_get_sysattr_list_entry()
> > > > is available.
> > > > What to do if not ?
> > > > Error out, and make it a hard dependency, or just have the function
> > > > QStringList Device::sysfsProperties() return an empty list if the
> > > > function is not available ?
> > > 
> > > I think it's fine to error out in that case.
> > 
> > what would be the consequences of Device::sysfsProperties() returning an
> > empty list ?
> > It'd be nice if Solid would still work with my system as it is, without
> > requiring me to update libudev, which sounds a bit scary to me.
> > Slackware 13.37 is not completely recent, but also not too old (around 2
> > years).
> 
> You got an opinion, so why did you ask it as an open question in the first
> place then? :-)

Yeah, yeah, I noticed that too...
The effect of sleeping a night over it.

> Anyway, you'd list devices with no properties and I'm pretty sure it won't
> be nice for applications. Now if you prefer you could compile out the
> whole udev backend on systems which have a too old udev. But compiling it
> in with a broken behavior is a no go.

that's why I'm basically asking how "broken" it would be without this 
function. Until recently it did not require it, so I thought it might not be 
too broken...

Alex


More information about the Kde-frameworks-devel mailing list