[kde-freebsd] My hard way to kde 4.6.2

Илья Ермолин ermolinis at gmail.com
Mon Apr 18 22:11:46 CEST 2011


Hi all!
  I want to share my experience of updating kde to version 4.6.2.
  It was very long way to get in work as expected...
  Sorry for my poor English... and absense of logs and configs. I
wrote this after many tries of steps forward so I haven't logs of my
faults for now....

  Any way, from the tart:

1. Wrong step 1 (pre KDE):
  While updating python from 2.6 to 2.7 I checked option "Use GNU Pth
for threading/multiprocessing", so after that many ports failed to
build...
  Googling from links get me to the problem and I unchecked this
option and proced to updating of all ports.

2. Wrong step 2 (redland):
  While compiling redland port with error like from this mail:
   http://mail.kde.org/pipermail/kde-freebsd/2008-June/002620.html
   After some experiments I find out that on my system there is 3
   different versions of db database: 41, 42 and 51
   following idea, that no one in different mails mention 51 version
   I tried to remove it and redland builds fine for me after that

3. Error in configuring kdepimlibs4:
   Next error station is kdepimlibs4 port with following error:

-----------------------------------------------------------------------------
-- The following REQUIRED packages could NOT be located on your system.
-- You must install these packages before continuing.
-----------------------------------------------------------------------------
   * Nepomuk  <http://www.kde.org>
     Support for the semantic desktop, including indexing of PIM data
     Nepomuk is part of kdelibs

All suggestions about this problem where in updating soprano... but I
already have up to date redland and soprano ports... strange ... it's
not typical error.

So I start to read build logs and found this line:
-- Found Redland storage:
/usr/local/lib/redland/librdf_storage_mysql.so;/usr/local/lib/redland/librdf_storage_sqlite.so;/usr/local/lib/redland/librdf_storage_postgresql.so;/usr/local/lib/redland/librdf_storage_virtuoso.so
-- 
-- Redland with broken NEEDED section detected, disabling
-- Could NOT find Redland (missing:  _REDLAND_VERSION_OK)

I see strange thing: libs are found but some thing still wrong so
configure script
 think that there is no Redland in my system...
I found place in make file where test happened
(it's /usr/ports/textproc/soprano/work/soprano-2.6.0/cmake/modules/
FindRedland.cmake )
I manualy compile test program witch loads dinamic libraries from it's
agrs and run it aganst string in output...
[root at free-cgi ~/tmp]# ./a.out
/usr/local/lib/redland/librdf_storage_mysql.so;/usr/local/lib/redland/librdf_storage_sqlite.so;/usr/local/lib/redland/librdf_storage_postgresql.so;/usr/local/lib/redland/librdf_storage_virtuoso.so
Segmentation fault: 11 (core dumped)
Segmentation fault: 11 (core dumped)
Segmentation fault: 11 (core dumped)

But wait a minute... all libs paths are send in one line...
It strange I think... so command 2 is:
[root at free-cgi ~/tmp]# ./a.out
/usr/local/lib/redland/librdf_storage_mysql.so \
/usr/local/lib/redland/librdf_storage_sqlite.so \
/usr/local/lib/redland/librdf_storage_postgresql.so \
/usr/local/lib/redland/librdf_storage_virtuoso.so
It's working!!!
But why in cmake file there is no any replacements?
So I tried to patch this file to get redlang detection to work...
this is my diff
--- /usr/ports/textproc/soprano/work/soprano-2.6.0/cmake/modules/FindRedland.cmake
     2011-02-01 17:51:41.000000000 +0300
+++ FindRedland.cmake   2011-04-12 12:17:35.000000000 +0400
@@ -105,6 +105,8 @@
   set(CMAKE_FIND_LIBRARY_SUFFIXES ${_SUFFIXES})
   if(_REDLAND_STORAGE_LIBS)
     message(STATUS "Found Redland storage: ${_REDLAND_STORAGE_LIBS}")
+    string( REPLACE ";" " " _REDLAND_STORAGE_LIBS "${_REDLAND_STORAGE_LIBS}" )
+    message(STATUS "Found Redland storage2: ${_REDLAND_STORAGE_LIBS}")
     try_run(_TEST_EXITCODE _TEST_COMPILED
       "${CMAKE_CURRENT_BINARY_DIR}"
       "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/CheckLibraryLoads.c"
@@ -114,7 +116,8 @@
     )
     if(NOT "${_TEST_EXITCODE}" EQUAL 0)
       set(_REDLAND_VERSION_OK)
-      message(STATUS "${_OUTPUT}")
+      message(STATUS "TEST_OUTPUT: ${_OUTPUT} ")
+      message(STATUS "TEST_EXITCODE: ${_TEST_EXITCODE}-${_TEST_COMPILED} ")
       message(STATUS "Redland with broken NEEDED section detected, disabling")
     endif(NOT "${_TEST_EXITCODE}" EQUAL 0)
   endif(_REDLAND_STORAGE_LIBS)

But even with this changes output is folloing:
-- Found Raptor 1.4.21: libs - /usr/local/lib/libraptor.so; includes -
/usr/local/include
-- Found Redland storage:
/usr/local/lib/redland/librdf_storage_mysql.so;/usr/local/lib/redland/librdf_storage_sqlite.so;/usr/local/lib/redland/librdf_storage_postgresql.so;/usr/local/lib/redland/librdf_storage_virtuoso.so
-- TEST_OUTPUT:
-- TEST_EXITCODE: -FALSE
-- Redland with broken NEEDED section detected, disabling
-- Could NOT find Redland (missing:  _REDLAND_VERSION_OK)
So build status in error log = FALSE, e.g. error while compiling test prog.
After that I comment line with unset result variable and building with
redland support goes fine...

4. Error start kde ( dbus):
while starting KDE under ordinal user message box appired with that text:
"startkde: Could not start D-Bus. Can you call qdbus?"

I don't understand how dbus could breake in that way... but I rebuild
dbus port and problem goes away.

5. Current status:
After solving error on step 4 I cat lunch kde 4.6.2 on freebsd 8.2 amd64...
but some points get me sed...
a. Terminal application ends up with core dump:
[root at free-cgi /usr/ports/textproc/soprano]# Terminal
:1: error: unexpected character `\35', expected keyword - e.g. `style'
Segmentation fault: 11 (core dumped)
...
[root at free-cgi /usr/ports/textproc/soprano]# gdb Terminal
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "amd64-marcel-freebsd"...(no debugging
symbols found)...
(gdb) r
Starting program: /usr/local/bin/Terminal
:1: error: unexpected character `\35', expected keyword - e.g. `style'
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 8066041c0 (LWP 100364)]
0x0000000801c15e71 in pthread_condattr_setclock () from /lib/libthr.so.3
(gdb) bt
#0  0x0000000801c15e71 in pthread_condattr_setclock () from /lib/libthr.so.3
#1  0x000000080747e601 in _dbus_pthread_condvar_new () at
dbus-sysdeps-pthread.c:207
#2  0x00000008074733a9 in _dbus_condvar_new_at_location
(location_p=0x8066f37d8) at dbus-threads.c:203
#3  0x000000080745f667 in _dbus_connection_new_for_transport
(transport=0x806725e00) at dbus-connection.c:1279
#4  0x0000000807461187 in _dbus_connection_open_internal
(address=Variable "address" is not available.
) at dbus-connection.c:1791
#5  0x000000080745c3a8 in internal_bus_get (type=Variable "type" is
not available.
#6  0x000000080720b334 in g_io_module_load () from
/usr/local/lib/gio/modules/libgvfsdbus.so
#7  0x00000008016db880 in g_type_create_instance () from
/usr/local/lib/libgobject-2.0.so.0
#8  0x00000008016bf0cc in g_object_set () from
/usr/local/lib/libgobject-2.0.so.0
#9  0x00000008016bf5bf in g_object_newv () from
/usr/local/lib/libgobject-2.0.so.0
#10 0x00000008016c055c in g_object_new () from
/usr/local/lib/libgobject-2.0.so.0
#11 0x0000000801515383 in g_vfs_is_active () from /usr/local/lib/libgio-2.0.so.0
#12 0x000000080185eeae in g_once_impl () from /usr/local/lib/libglib-2.0.so.0
#13 0x00000008014dfbce in g_file_new_for_path () from
/usr/local/lib/libgio-2.0.so.0
#14 0x0000000800b64505 in gtk_icon_theme_add_builtin_icon () from
/usr/local/lib/libgtk-x11-2.0.so.0
#15 0x0000000800b64baa in gtk_icon_info_load_icon () from
/usr/local/lib/libgtk-x11-2.0.so.0
#16 0x0000000800b66b68 in gtk_icon_theme_load_icon () from
/usr/local/lib/libgtk-x11-2.0.so.0
#17 0x0000000800cb677f in gtk_window_get_default_icon_list () from
/usr/local/lib/libgtk-x11-2.0.so.0
#18 0x0000000800cb6cfe in gtk_window_get_default_icon_list () from
/usr/local/lib/libgtk-x11-2.0.so.0
#19 0x0000000800cbf073 in gtk_window_new () from
/usr/local/lib/libgtk-x11-2.0.so.0
#20 0x00000008016b807f in g_closure_invoke () from
/usr/local/lib/libgobject-2.0.so.0
#21 0x00000008016ceccd in g_signal_handlers_block_matched () from
/usr/local/lib/libgobject-2.0.so.0
#22 0x00000008016d0e70 in g_signal_emit_valist () from
/usr/local/lib/libgobject-2.0.so.0
#23 0x00000008016d1273 in g_signal_emit () from
/usr/local/lib/libgobject-2.0.so.0
#24 0x0000000800cae797 in gtk_widget_realize () from
/usr/local/lib/libgtk-x11-2.0.so.0
#25 0x0000000800cae890 in gtk_widget_realize () from
/usr/local/lib/libgtk-x11-2.0.so.0
#26 0x0000000800cae890 in gtk_widget_realize () from
/usr/local/lib/libgtk-x11-2.0.so.0
#27 0x0000000800cae890 in gtk_widget_realize () from
/usr/local/lib/libgtk-x11-2.0.so.0
#28 0x0000000800cae890 in gtk_widget_realize () from
/usr/local/lib/libgtk-x11-2.0.so.0
#29 0x000000000041670c in ?? ()

I sow source of bus function from bt and threading function... it's magical...
One more thing: if I unset DBUS_SESSION_BUS_ADDRESS variable before
start Terminal - it's start without error...

b. Simmilar problem with firefox port
c. I can't shutdown kde from start menu (nothing happend)
I even tryed to use command line commant (qdbus to shutdown ... nothing woks...)

So trevel is not completed yet...

Sory for long story... I think my mistakes could help some one to
solve same errors.
If one could dvice me with this strange terminations - it would be great...

-- 
С Уважением,
Ермолин Илья
Ermolin Ilya


More information about the kde-freebsd mailing list