Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

can not start kdeinit....

0 views
Skip to first unread message

Erik Neun

unread,
Oct 3, 2003, 8:06:06 AM10/3/03
to
Hi!

Nach dem Update von KDE 3.1.3 auf 3.1.4 über apt4rpm (SuSE 8.1 Pro) erhalte
ich nach dem Einloggen die Meldung "Could not start kdeinit. Check your
installation." Nach Bestätigung mit "ok" startet KDE
augenscheinlich normal und funktioniert auch wie immer.

Woran kann das liegen?

Gruß,

Erik

Udo Neist

unread,
Oct 4, 2003, 3:20:12 AM10/4/03
to
Erik Neun wrote:

Ich habe das gleiche Problem und festgestellt, das das mit dem
Qt-3.2.1-Paket zusammenhängen muss. Beim Starten wird eine
Fehlermeldung "kdeinit: relocation error:
/usr/lib/qt3/lib/libqt-mt.so.3: undefined symbol: FT_Seek_Stream"
erzeugt. Scheint ein Problem mit Freetype2 zu sein. Wenn ich Qt neu
kompiliere, dann verschwindet diese Meldung, aber ich kann KDE
nicht benutzen, da jetzt Fehler beim Rendern von Bildern gemeldet
werden und KDE damit unbenutzbar ist.

Gruß
Udo

--
Mail: u...@singollo.de oder udo....@t-online.de
Hompage: http://www.singollo.de

Sven Carstens

unread,
Oct 4, 2003, 10:37:22 AM10/4/03
to
Siehe auch den Thread 'kdeinit unresolved symbols'

Das Qt scheint mit einer freetype 2.0.X gebaut zu sein.
Mit dem X-Free 4.3.0 kommt aber eine 2.1.3 auf den Rechner.
Zwischen beiden Versionen sind einige unterne Routinen
umbenannt worden. FT_Seek_Stream heißt dann FT_Stream_Seek.
Die anderen umbennanten fangen jetzt auch mit FT_Stream an.
Warum allerdings das kompilieren von Qt fehlschlägt (bei mir
auch) weiß ich nicht. Bin gerade dabei die alten Symbolnamen
wieder in freetype 2.1.3 einzubauen und mal sehen was passiert.

CU Sven

Udo Neist wrote:
> Erik Neun wrote:
>
>> Hi!
>>
>> Nach dem Update von KDE 3.1.3 auf 3.1.4 über apt4rpm (SuSE 8.1
>> Pro) erhalte ich nach dem Einloggen die Meldung "Could not start
>> kdeinit. Check your installation." Nach Bestätigung mit "ok"
>> startet KDE augenscheinlich normal und funktioniert auch wie
>> immer.

Sven Carstens

unread,
Oct 4, 2003, 12:07:46 PM10/4/03
to
Hi Leute,

nach einigem ausprobieren hier der passende Patch.
Für freetype2-2.1.3-36-Suse

Am besten das Quellpaket installieren.
Den Patch unter dem Namen freetype-2.1.3-names.patch in das
Verzeichnis /usr/src/packages/SOURCES packen
Die unter /usr/src/packages/SPECS/ liegende freetype2.spec
anpassen:
Build auf 37 erhöhen
Patch3: freetype-2.1.3-names.patch
am Anfang dazupacken
in der Prep-phase nach patch2(genauso woe patch2) einfügen:
%patch3 -p 1 -b .names-patch

Und dann das ganze mit
rpm -bb /usr/src/packages/SPECS/freetype2.spec
neu kompilieren und danach installieren.
Bei mir funktioniert das ganze auch bisher.
Mal sehen ob der artsd noch gelegentlich fehlt.

CU Sven

diff -ur freetype-2.1.3.orig/include/freetype/internal/ftmemory.h
freetype-2.1.3/include/freetype/internal/ftmemory.h
--- freetype-2.1.3.orig/include/freetype/internal/ftmemory.h 2002-04-20
07:38:33.000000000 +0200
+++ freetype-2.1.3/include/freetype/internal/ftmemory.h 2003-10-04
17:12:58.000000000 +0200
@@ -287,6 +299,12 @@

/* */

+#define ALLOC( _pointer_, _size_ ) \
+ FT_SET_ERROR( FT_MEM_ALLOC( _pointer_, _size_ ) )
+
+#define FREE( _pointer_ ) \
+ FT_MEM_FREE( _pointer_ )
+

FT_END_HEADER

diff -ur freetype-2.1.3.orig/include/freetype/internal/ftstream.h
freetype-2.1.3/include/freetype/internal/ftstream.h
--- freetype-2.1.3.orig/include/freetype/internal/ftstream.h 2002-10-31
23:19:27.000000000 +0100
+++ freetype-2.1.3/include/freetype/internal/ftstream.h 2003-10-04
17:14:01.000000000 +0200
@@ -326,6 +326,11 @@
FT_Stream_Close( FT_Stream stream );


+ /* Patch for difference in Functionname */
+ FT_BASE( FT_Error )
+ FT_Seek_Stream( FT_Stream stream,
+ FT_ULong pos );
+
/* seek within a stream. position is relative to start of stream */
FT_BASE( FT_Error )
FT_Stream_Seek( FT_Stream stream,
@@ -389,6 +394,25 @@
FT_Stream_ReleaseFrame( FT_Stream stream,
FT_Byte** pbytes );

+ /* Patch for changed Functionname */
+ FT_BASE( FT_Char )
+ FT_Get_Char( FT_Stream stream );
+
+ FT_BASE( FT_Short )
+ FT_Get_Short( FT_Stream stream );
+
+ FT_BASE( FT_Long )
+ FT_Get_Offset( FT_Stream stream );
+
+ FT_BASE( FT_Long )
+ FT_Get_Long( FT_Stream stream );
+
+ FT_BASE( FT_Short )
+ FT_Get_ShortLE( FT_Stream stream );
+
+ FT_BASE( FT_Long )
+ FT_Get_LongLE( FT_Stream stream );
+
/* read a byte from an entered frame */
FT_BASE( FT_Char )
FT_Stream_GetChar( FT_Stream stream );
@@ -452,6 +476,22 @@
void* structure );


+/* Patch for changed Functionname */
+ FT_BASE( FT_Error )
+ FT_Access_Frame( FT_Stream stream,
+ FT_ULong count );
+
+ FT_BASE( void )
+ FT_Forget_Frame( FT_Stream stream );
+
+#define NEXT_Short( buffer ) \
+ ( (short)( buffer += 2, FT_GET_SHORT_BE( buffer - 2 ) ) )
+
+#define FT_GET_SHORT_BE( p ) \
+ ((FT_Int16)( ( (FT_Int16)(FT_Char)(p)[0] << 8 ) | \
+ (FT_Int16)(FT_Byte)(p)[1] ) )
+
+
#define FT_STREAM_POS() \
FT_Stream_Pos( stream )

diff -ur freetype-2.1.3.orig/src/base/ftstream.c freetype-2.1.3/src/base
ftstream.c
--- freetype-2.1.3.orig/src/base/ftstream.c 2002-03-30 14:16:35.000000000
+0100
+++ freetype-2.1.3/src/base/ftstream.c 2003-10-04 17:31:15.000000000 +0200
@@ -55,6 +55,37 @@
}
}

+ /* Patch for difference in FunctionName */
+ FT_BASE_DEF( FT_Error )
+ FT_Seek_Stream( FT_Stream stream,
+ FT_ULong pos )
+ {
+ FT_Error error = FT_Err_Ok;
+
+
+ stream->pos = pos;
+
+ if ( stream->read )
+ {
+ if ( stream->read( stream, pos, 0, 0 ) )
+ {
+ FT_ERROR(( "FT_Stream_Seek: invalid i/o; pos = 0x%lx, size = 0x%l
\n",
+ pos, stream->size ));
+
+ error = FT_Err_Invalid_Stream_Operation;
+ }
+ }
+ /* note that seeking to the first position after the file is valid */
+ else if ( pos > stream->size )
+ {
+ FT_ERROR(( "FT_Stream_Seek: invalid i/o; pos = 0x%lx, size = 0x%l
\n",
+ pos, stream->size ));
+
+ error = FT_Err_Invalid_Stream_Operation;
+ }
+
+ return error;
+ }

FT_BASE_DEF( FT_Error )
FT_Stream_Seek( FT_Stream stream,
@@ -279,6 +310,114 @@
stream->limit = 0;
}

+ /* Patch for changed Functionname */
+ FT_BASE( FT_Char )
+ FT_Get_Char( FT_Stream stream )
+ {
+ FT_Char result;
+
+
+ FT_ASSERT( stream && stream->cursor );
+
+ result = 0;
+ if ( stream->cursor < stream->limit )
+ result = *stream->cursor++;
+
+ return result;
+ }
+
+
+ FT_BASE( FT_Short )
+ FT_Get_Short( FT_Stream stream )
+ {
+ FT_Byte* p;
+ FT_Short result;
+
+
+ FT_ASSERT( stream && stream->cursor );
+
+ result = 0;
+ p = stream->cursor;
+ if ( p + 1 < stream->limit )
+ result = FT_NEXT_SHORT( p );
+ stream->cursor = p;
+
+ return result;
+ }
+
+
+ FT_BASE( FT_Short )
+ FT_Get_ShortLE( FT_Stream stream )
+ {
+ FT_Byte* p;
+ FT_Short result;
+
+
+ FT_ASSERT( stream && stream->cursor );
+
+ result = 0;
+ p = stream->cursor;
+ if ( p + 1 < stream->limit )
+ result = FT_NEXT_SHORT_LE( p );
+ stream->cursor = p;
+
+ return result;
+ }
+
+
+ FT_BASE( FT_Long )
+ FT_Get_Offset( FT_Stream stream )
+ {
+ FT_Byte* p;
+ FT_Long result;
+
+
+ FT_ASSERT( stream && stream->cursor );
+
+ result = 0;
+ p = stream->cursor;
+ if ( p + 2 < stream->limit )
+ result = FT_NEXT_OFF3( p );
+ stream->cursor = p;
+ return result;
+ }
+
+
+ FT_BASE( FT_Long )
+ FT_Get_Long( FT_Stream stream )
+ {
+ FT_Byte* p;
+ FT_Long result;
+
+
+ FT_ASSERT( stream && stream->cursor );
+
+ result = 0;
+ p = stream->cursor;
+ if ( p + 3 < stream->limit )
+ result = FT_NEXT_LONG( p );
+ stream->cursor = p;
+ return result;
+ }
+
+
+ FT_BASE( FT_Long )
+ FT_Get_LongLE( FT_Stream stream )
+ {
+ FT_Byte* p;
+ FT_Long result;
+
+
+ FT_ASSERT( stream && stream->cursor );
+
+ result = 0;
+ p = stream->cursor;
+ if ( p + 3 < stream->limit )
+ result = FT_NEXT_LONG_LE( p );
+ stream->cursor = p;
+ return result;
+ }
+

FT_BASE_DEF( FT_Char )
FT_Stream_GetChar( FT_Stream stream )
@@ -800,4 +939,91 @@
}


+ FT_BASE_DEF( FT_Error )
+ FT_Access_Frame( FT_Stream stream,
+ FT_ULong count )
+ {
+ FT_Error error = FT_Err_Ok;
+ FT_ULong read_bytes;
+
+
+ /* check for nested frame access */
+ FT_ASSERT( stream && stream->cursor == 0 );
+
+ if ( stream->read )
+ {
+ /* allocate the frame in memory */
+ FT_Memory memory = stream->memory;
+
+
+ if ( ALLOC( stream->base, count ) )
+ goto Exit;
+
+ /* read it */
+ read_bytes = stream->read( stream, stream->pos,
+ stream->base, count );
+ if ( read_bytes < count )
+ {
+ FT_ERROR(( "FT_Access_Frame:" ));
+ FT_ERROR(( " invalid read; expected %lu bytes, got %lu\n",
+ count, read_bytes ));
+
+ FREE( stream->base );
+ error = FT_Err_Invalid_Stream_Operation;
+ }
+ stream->cursor = stream->base;
+ stream->limit = stream->cursor + count;
+ stream->pos += read_bytes;
+ }
+ else
+ {
+ /* check current and new position */
+ if ( stream->pos >= stream->size ||
+ stream->pos + count > stream->size )
+ {
+ FT_ERROR(( "FT_Access_Frame:" ));
+ FT_ERROR(( " invalid i/o; pos = 0x%lx, count = %lu, size = 0x%l
\n",
+ stream->pos, count, stream->size ));
+
+ error = FT_Err_Invalid_Stream_Operation;
+ goto Exit;
+ }
+
+ /* set cursor */
+ stream->cursor = stream->base + stream->pos;
+ stream->limit = stream->cursor + count;
+ stream->pos += count;
+ }
+
+ Exit:
+ return error;
+ }
+
+
+ FT_BASE_DEF( void )
+ FT_Forget_Frame( FT_Stream stream )
+ {
+ /* IMPORTANT: The assertion stream->cursor != 0 was removed, given
*/
+ /* that it is possible to access a frame of length 0 in
*/
+ /* some weird fonts (usually, when accessing an array of
*/
+ /* 0 records, like in some strange kern tables).
*/
+ /*
*/
+ /* In this case, the loader code handles the 0-length table
*/
+ /* gracefully; however, stream.cursor is really set to 0 by the
*/
+ /* FT_Access_Frame() call, and this is not an error.
*/
+ /*
*/
+ FT_ASSERT( stream );
+
+ if ( stream->read )
+ {
+ FT_Memory memory = stream->memory;
+
+
+ FREE( stream->base );
+ }
+ stream->cursor = 0;
+ stream->limit = 0;
+ }
+
+
/* END */
--
"Programming today is a race between software engineers striving to build
bigger and better idiot-proof programs, and the Universe trying to produce
bigger and better idiots. So far, the Universe is winning."

Dieter Nützel

unread,
Oct 4, 2003, 2:00:07 PM10/4/03
to Sven Carstens
<veröffentlicht & per Mail versendet>

Sven Carstens schrieb:

> Hi Leute,
>
> nach einigem ausprobieren hier der passende Patch.
> Für freetype2-2.1.3-36-Suse
>
> Am besten das Quellpaket installieren.
> Den Patch unter dem Namen freetype-2.1.3-names.patch in das
> Verzeichnis /usr/src/packages/SOURCES packen
> Die unter /usr/src/packages/SPECS/ liegende freetype2.spec
> anpassen:
> Build auf 37 erhöhen
> Patch3: freetype-2.1.3-names.patch
> am Anfang dazupacken
> in der Prep-phase nach patch2(genauso woe patch2) einfügen:
> %patch3 -p 1 -b .names-patch
>
> Und dann das ganze mit
> rpm -bb /usr/src/packages/SPECS/freetype2.spec
> neu kompilieren und danach installieren.
> Bei mir funktioniert das ganze auch bisher.
> Mal sehen ob der artsd noch gelegentlich fehlt.

Warum hast Du nicht gleich 2.1.4 verwendet?

Gruß
Dieter

SuSE 7.3 mit XFree86/DRI-Devel, und freetype2-2.1.4.

--
Dieter Nützel
Graduate Student, Computer Science
@home: Dieter.Nuetzel at hamburg.de (replace at with @)

Udo Neist

unread,
Oct 5, 2003, 8:13:21 AM10/5/03
to
Sven Carstens wrote:

> Siehe auch den Thread 'kdeinit unresolved symbols'
>
> Das Qt scheint mit einer freetype 2.0.X gebaut zu sein.
> Mit dem X-Free 4.3.0 kommt aber eine 2.1.3 auf den Rechner.
> Zwischen beiden Versionen sind einige unterne Routinen
> umbenannt worden. FT_Seek_Stream heißt dann FT_Stream_Seek.
> Die anderen umbennanten fangen jetzt auch mit FT_Stream an.
> Warum allerdings das kompilieren von Qt fehlschlägt (bei mir
> auch) weiß ich nicht. Bin gerade dabei die alten Symbolnamen
> wieder in freetype 2.1.3 einzubauen und mal sehen was passiert.
>
> CU Sven

Danke für die Info :-) Ich werde mir mal Freetype2 (2.0.x) besorgen
und dann testen.

Udo Neist

unread,
Oct 5, 2003, 8:48:17 AM10/5/03
to
[...]
Ich habe den Patch mal ausgetestet. Er funktioniert. Allerdings
hängt sich KMail auf, wenn ich auf meinen IMAP-Server zurückgreifen
will :(

Sven Carstens

unread,
Oct 5, 2003, 1:59:46 PM10/5/03
to
Udo Neist wrote:
> Danke für die Info :-) Ich werde mir mal Freetype2 (2.0.x) besorgen
> und dann testen.

Freetype muß aber umbedingt auch zum XServer-Paket passen!

CU Sven

Sven Carstens

unread,
Oct 5, 2003, 2:01:40 PM10/5/03
to
Udo Neist wrote:
> Ich habe den Patch mal ausgetestet. Er funktioniert. Allerdings
> hängt sich KMail auf, wenn ich auf meinen IMAP-Server zurückgreifen
> will :(
Ich verwende hier ausschließlich IMAP. Und habe bisher keine Probleme.
Es hängt nicht noch zufällig irgendwo eine alte Variante der library rum?
Mit 'lsof|grep DELETED' findet man die von rpm gelöschten, aber noch im
System geladenen libraries eigentlich recht gut.
Für das Update musste ich erst mit 'init 3' auch den XServer beenden.

CU Sven

Udo Neist

unread,
Oct 5, 2003, 2:06:10 PM10/5/03
to
Sven Carstens wrote:

> Udo Neist wrote:
>> Ich habe den Patch mal ausgetestet. Er funktioniert. Allerdings
>> hängt sich KMail auf, wenn ich auf meinen IMAP-Server
>> zurückgreifen will :(
> Ich verwende hier ausschließlich IMAP. Und habe bisher keine
> Probleme. Es hängt nicht noch zufällig irgendwo eine alte Variante
> der library rum? Mit 'lsof|grep DELETED' findet man die von rpm
> gelöschten, aber noch im System geladenen libraries eigentlich
> recht gut. Für das Update musste ich erst mit 'init 3' auch den
> XServer beenden.
>
> CU Sven

Ich habe die entsprechende Lib per Hand gelöscht. Mein Rechner
startet zudem im Runlevel 3. Die Pakete von KDE (inkl. Qt) hatte
ich über YasT deinstalliert. Es brachte keinen Erfolg. Bevor ich
weiter probiere, dazu fehlt mir auch der Nerv, habe ich kurzerhand
die SuSE 9.0 vorbestellt.

Udo Neist

unread,
Oct 5, 2003, 2:07:33 PM10/5/03
to
Sven Carstens wrote:

> Udo Neist wrote:
>> Danke für die Info :-) Ich werde mir mal Freetype2 (2.0.x)
>> besorgen und dann testen.
>
> Freetype muß aber umbedingt auch zum XServer-Paket passen!
>
> CU Sven
>

Ich hab deinen Patch getestet, aber hier will das ganze trotzdem
nicht ganz so wie ich will. Naja, KDE 3.1.3 tut es hier ja auch,
bis SuSE 9.0 bei mir eintrifft :)

0 new messages