Attempting to compile solid with musl glibc results in the error ‘dev_t’ does not name a type. [ 52%] Building CXX object src/solid/CMakeFiles/KF5Solid.dir/devices/backends/udisks2/udisksdevice.cpp.o cd /var/tmp/portage/kde-frameworks/solid-5.35.0/work/solid-5.35.0_build/src/solid && /usr/bin/x86_64-gentoo-linux-musl-g++ -DKF5Solid_EXPORTS -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_GUI_LIB -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_SIGNALS_SLOTS_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_USE_FAST_OPERATOR_PLUS -DQT_USE_QSTRINGBUILDER -DQT_WIDGETS_LIB -DQT_XML_LIB -D_LARGEFILE64_SOURCE -I/var/tmp/portage/kde-frameworks/solid-5.35.0/work/solid-5.35.0_build/src/solid -I/var/tmp/portage/kde-frameworks/solid-5.35.0/work/solid-5.35.0/src/solid -I/var/tmp/portage/kde-frameworks/solid-5.35.0/work/solid-5.35.0_build/src/solid/KF5Solid_autogen/include -I/var/tmp/portage/kde-frameworks/solid-5.35.0/work/solid-5.35.0/src/solid/devices -I/var/tmp/portage/kde-frameworks/solid-5.35.0/work/solid-5.35.0/src/solid/devices/frontend -I/var/tmp/portage/kde-frameworks/solid-5.35.0/work/solid-5.35.0/src/solid/.. -I/var/tmp/portage/kde-frameworks/solid-5.35.0/work/solid-5.35.0_build/src/solid/.. -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtCore -isystem /usr/lib/qt5/mkspecs/linux-g++ -isystem /usr/include/qt5/QtDBus -isystem /usr/include/qt5/QtXml -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtGui -DQT_NO_DEBUG -DNDEBUG -march=x86-64 -mtune=generic -O2 -pipe -std=c++0x -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -pedantic -Wsuggest-override -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/KF5Solid.dir/devices/backends/udisks2/udisksdevice.cpp.o -c /var/tmp/portage/kde-frameworks/solid-5.35.0/work/solid-5.35.0/src/solid/devices/backends/udisks2/udisksdevice.cpp In file included from /var/tmp/portage/kde-frameworks/solid-5.35.0/work/solid-5.35.0/src/solid/devices/backends/udisks2/udisksdevice.cpp:24:0: /var/tmp/portage/kde-frameworks/solid-5.35.0/work/solid-5.35.0/src/solid/devices/backends/udisks2/udisksblock.h:52:5: error: ‘dev_t’ does not name a type dev_t m_devNum; ^ make[2]: *** [src/solid/CMakeFiles/KF5Solid.dir/build.make:1755: src/solid/CMakeFiles/KF5Solid.dir/devices/backends/udisks2/udisksdevice.cpp.o] Error 1 make[2]: Leaving directory '/var/tmp/portage/kde-frameworks/solid-5.35.0/work/solid-5.35.0_build' make[1]: *** [CMakeFiles/Makefile2:2457: src/solid/CMakeFiles/KF5Solid.dir/all] Error 2 make[1]: Leaving directory '/var/tmp/portage/kde-frameworks/solid-5.35.0/work/solid-5.35.0_build' make: *** [Makefile:130: all] Error 2 Reproducible: Always
Created attachment 482400 [details, diff] solid-5.35.0-udisks2-musl.patch This patch adds a needed include to fix the error.
Please try to get this patch upstream.
Minor suggestion for the patch: the patched file already contains a <sys/types.h> include but it is hidden behind a Q_OS_FREEBSD #ifdef. So it would make more sense to remove this #ifdef instead of adding another <sys/types.h> include.
(In reply to Andreas Sturmlechner from comment #2) > Please try to get this patch upstream. I'll see if I can bring attention to this upstream. It was submitted upstream nearly a year ago and hasn't been committed yet.
bugzilla is not a good place for patch submissions, better use KDE's phabricator resource.
https://cgit.kde.org/solid.git/commit/?id=2382c3f8d3669c473130f4baefb68d244dcb5cbc
5.37.0 is in tree, thanks.