kdebindings
Are you running into the following problem when compiling kdebindings? Well, you’re probably not, because you picked a saner distribution than LFS, but here goes anyway!
ASSERT failure in QList::at: “index out of range”, file /qt/trunk/include/QtCore/qlist.h, line 456
/bin/sh: line 1: 7841 Aborted (core dumped)
From http://old.nabble.com/Smokegen-core-dump-td30797484.html, you can fix this with a patch to indexedstring.cpp:
--- generator/parser/indexedstring.cpp.orig 2011-02-23 22:12:38.695255708 +0100
+++ generator/parser/indexedstring.cpp 2011-02-24 02:36:09.035361151 +0100
@@ -195,12 +195,15 @@
}QByteArray IndexedString::byteArray() const {
+ Â qDebug() << "strings()->size():" << strings()->size() << ", m_index:" << m_index;
if(!m_index)
return QByteArray();
else if((m_index & 0xffff0000) == 0xffff0000)
return QString(QChar((char)m_index & 0xff)).toUtf8();
- Â else
+ Â else if (m_index < strings()->size())
return strings()->at(m_index).toUtf8(); /*arrayFromItem(globalIndexedStringRepository->itemFromIndex(m_index));*/
+ Â else
+ Â Â return QByteArray();
}unsigned int IndexedString::hashString(const char* str, unsigned short length) {
I ended up removing the first qDebug() line before the if statement as I don’t need my compiler to be that chatty – I just need this package to compile properly. Reconfigure and attempt to make with:
cmake -DCMAKE_INSTALL_PREFIX=$KDE4_PREFIX \ -DKDE_DEFAULT_HOME=.kde4 \ -DSYSCONF_INSTALL_DIR=/etc/kde4 \ .. && make
kdebase-runtime
You can patch away your problems if you run into the following message:
[ 39%] Building CXX object kioslave/nfs/CMakeFiles/kio_nfs.dir/kio_nfs.o
In file included from /sources/kdebase-runtime-4.6.0/kioslave/nfs/kio_nfs.cpp:21:0:
/sources/kdebase-runtime-4.6.0/kioslave/nfs/kio_nfs.h:33:21: fatal error: rpc/rpc.h: No such file or directory
compilation terminated.
First, get libtirpc installed to make this work, but then again, you could have just guessed that you needed it, right? 😉
There are some LFS-specific instructions to follow before libtirpc will compile:
- Unpack glibc-2.14.1
- In its directory, execute:
mkdir -p /usr/include/rpc{,svc} cp sunrpc/rpc/*.h /usr/include/rpc cp nis/rpcsvc/*.h /usr/include/rpcsvc
- Compile libtirpc with ./configure --prefix=/usr && make && make install
Then from Sourcemage, linking to an old Bugzilla installation:
diff --git a/kioslave/nfs/CMakeLists.txt b/kioslave/nfs/CMakeLists.txt index b973a73..6556769 100644 --- a/kioslave/nfs/CMakeLists.txt +++ b/kioslave/nfs/CMakeLists.txt @@ -3,8 +3,8 @@ set(kio_nfs_PART_SRCS kio_nfs.cpp mount_xdr.c nfs_prot_xdr.c ) kde4_add_plugin(kio_nfs ${kio_nfs_PART_SRCS}) - -target_link_libraries(kio_nfs ${KDE4_KIO_LIBS}) +include_directories(/usr/include/tirpc) +target_link_libraries(kio_nfs ${KDE4_KIO_LIBS} tirpc) install(TARGETS kio_nfs DESTINATION ${PLUGIN_INSTALL_DIR} )
Once this is complete you should be able to get kdebase-runtime compiled.
Leave a Reply