Building on RHEL6 fails
Posted: Mon Jul 29, 2013 11:55 pm
Trying to build qlcplus on RHEL6 using create-rpm.sh fails due to the required alsa-lib-devel (ALSA headers) version is newer or equal 1.0.23, while RHEL6 currently only has 1.0.22-3. I'm not sure about the differences, but if it were possible to loosen the build requirements somewhat to support RHEL6 (The newest version of THE rpm based Linux distribution)
After changing the spec file to allow 1.0.22-3, it fails due to many missing symbols udev_*
(libudev 147.2.46 and libudev-devel are installed and added as dependencies to the spec file):
~~~~~~
$ ./create-rpm.sh
[...]
g++ -m64 -Wl,-O1 -o test main.o hpmtest.o moc_hpmtest.o -L../src -lhotplugmonitor -ludev -lQtGui -lQtCore -lpthread
../src/libhotplugmonitor.a(hpmprivate-udev.o): In function `HPMPrivate::run()':
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:62: undefined reference to `udev_new()'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:65: undefined reference to `udev_monitor_new_from_netlink(udev*, char const*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:68: undefined reference to `udev_monitor_filter_add_match_subsystem_devtype(udev_monitor*, char const*, char const*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:76: undefined reference to `udev_monitor_enable_receiving(udev_monitor*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:84: undefined reference to `udev_monitor_get_fd(udev_monitor*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:104: undefined reference to `udev_monitor_receive_device(udev_monitor*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:107: undefined reference to `udev_device_get_action(udev_device*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:108: undefined reference to `udev_device_get_property_value(udev_device*, char const*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:109: undefined reference to `udev_device_get_property_value(udev_device*, char const*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:136: undefined reference to `udev_device_unref(udev_device*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:141: undefined reference to `udev_monitor_unref(udev_monitor*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:142: undefined reference to `udev_unref(udev*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:79: undefined reference to `udev_monitor_unref(udev_monitor*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:80: undefined reference to `udev_unref(udev*)'
~~~~~~
After changing the spec file to allow 1.0.22-3, it fails due to many missing symbols udev_*
(libudev 147.2.46 and libudev-devel are installed and added as dependencies to the spec file):
~~~~~~
$ ./create-rpm.sh
[...]
g++ -m64 -Wl,-O1 -o test main.o hpmtest.o moc_hpmtest.o -L../src -lhotplugmonitor -ludev -lQtGui -lQtCore -lpthread
../src/libhotplugmonitor.a(hpmprivate-udev.o): In function `HPMPrivate::run()':
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:62: undefined reference to `udev_new()'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:65: undefined reference to `udev_monitor_new_from_netlink(udev*, char const*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:68: undefined reference to `udev_monitor_filter_add_match_subsystem_devtype(udev_monitor*, char const*, char const*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:76: undefined reference to `udev_monitor_enable_receiving(udev_monitor*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:84: undefined reference to `udev_monitor_get_fd(udev_monitor*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:104: undefined reference to `udev_monitor_receive_device(udev_monitor*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:107: undefined reference to `udev_device_get_action(udev_device*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:108: undefined reference to `udev_device_get_property_value(udev_device*, char const*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:109: undefined reference to `udev_device_get_property_value(udev_device*, char const*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:136: undefined reference to `udev_device_unref(udev_device*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:141: undefined reference to `udev_monitor_unref(udev_monitor*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:142: undefined reference to `udev_unref(udev*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:79: undefined reference to `udev_monitor_unref(udev_monitor*)'
/home/zeuz/rpmbuild/BUILD/qlcplus-4.4.0/hotplugmonitor/src/hpmprivate-udev.cpp:80: undefined reference to `udev_unref(udev*)'
~~~~~~