Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 67983 - GWorkspace fails with Critical Errors
Summary: GWorkspace fails with Critical Errors
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All All
: High normal (vote)
Assignee: Gentoo Gnustep project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-10-18 02:09 UTC by Colin Macdonald
Modified: 2005-05-19 17:52 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Colin Macdonald 2004-10-18 02:09:16 UTC
"openapp GWorkspace" fails.  It opens two dialogs titled "Critical Error in GWorkspace" with the following msgs:

NSInvalidArgumentException: NSConstantString(instance) does not recognize viewersForBaseNode:

SInvalidArgumentException: GWViewerIconsPath(class) does not recognize initWithFrame:

Here's what shows on the terminal if I ignore both errors:

nilok@belladonna ~ $ openapp GWorkspace
GWorkspace: /var/tmp/portage/gcc-3.3.4-r1/work/gcc-3.3.4/libobjc/sendmsg.c:260:
__objc_init_install_dtable: Assertion `(((Class)receiver)&&(((((Class)receiver)->info)&0x1L)==0x1L))' failed.
Aborted

I'm running ~x86 except that I have the following in /etc/portage/package.keywords:

sys-libs/glibc -~x86
sys-devel/gcc -~x86
sys-devel/binutils -~x86
sys-devel/libtool -~x86
sys-kernel/development-sources -~x86

and /etc/portage/package.mask:
>=dev-libs/libffi-3.4.1

This could be the cause of the bug because libffi-3.4.1-r* are in portage but it depends on gcc 3.4.x and thus I'm not using it.  I'm posting this anyway for confirmation and because googling didn't turn up anything.

emerge info:
Portage 2.0.51_rc9 (default-x86-2004.2, gcc-3.3.4, glibc-2.3.4.20040808-r1, 2.6.
8.1 i686)
=================================================================
System uname: 2.6.8.1 i686 Celeron (Coppermine)
Gentoo Base System version 1.5.3
distcc 2.18 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled]
Autoconf: sys-devel/autoconf-2.59-r5
Automake: sys-devel/automake-1.8.5-r1
Binutils: sys-devel/binutils-2.14.90.0.8-r1
Headers:  sys-kernel/linux-headers-2.4.22
Libtools: sys-devel/libtool-1.5.2-r5
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-O3 -march=i686 -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
COMPILER=""
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.3
/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /us
r/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /
usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/te
xmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O3 -march=i686 -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache collision-protection distcc distlocks sandbox"
GENTOO_MIRRORS="http://gentoo.osuosl.org/ ftp://ftp.ussg.iu.edu/pub/linux/gentoo
 http://gentoo.ccccom.com http://mirrors.tds.net/gentoo ftp://gentoo.mirrors.pai
r.com/"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X Xaw3d acpi alsa apm arts berkdb bitmap-fonts cjk crypt cups dga dvd eds e
macs encode esd f77 faad fbcon fftw flac gcj gdbm gif gimpprint ginac gnome gpm
gstreamer gtk gtk2 guile imlib jack java jpeg leim libg++ libwww live mad matros
ka mikmod mmx mng motif mozilla mpeg ncurses nls objc offensive oggvorbis opengl
 oss pam pdflib perl plotutils png ppds python qhull qt quicktime radeon readlin
e rtc scanner sdk sdl slang speex spell sse ssl svg tcltk tcpd tetex theora tiff
 truetype usb v4l wxwindows x86 xinerama xml xml2 xmms xosd xprint xv xvid zlib
video_cards_mach64"
Comment 1 Armando Di Cianno (RETIRED) gentoo-dev 2004-10-24 01:19:55 UTC
so what version of libffi are you using?

there are also:
- libffi-3.3.4.ebuild
- libffi-3.3.3-r1.ebuild
- libffi-3.3.4.ebuild
... which may interest you. :-)

More info along those lines would be helpful.

I've also updated libffi-3.3.3/4 to be more explicit about what versions of gcc must be installed.
Comment 2 Armando Di Cianno (RETIRED) gentoo-dev 2004-10-24 01:20:35 UTC
Sounds like a valid bug, marking as NEW.
Comment 3 Colin Macdonald 2004-11-19 11:21:50 UTC
Sorry for the delay, for some reason I didn't receive emails about updates to this bug.

I'm using libffi 3.3.4 because that is the most recent ebuild that works with gcc 3.3.4 (as I mentioned, I have gcc, glibc and a few others pinned to x86 and the rest of my system is ~x86).

This problem is still happening with the newest gnustep-base, etc ebuilds from 2004-11-16.

Actually, I wonder why I need libffi at all because I have built gcc with +gcj and from the description of libffi:
"libffi (from gcc) does not commonly build unless gcj is compiled, but is used by other projects, like GNUstep."

I can upgrade my system to gcc-3.4 and see if that fixes the problem.
Comment 4 Armando Di Cianno (RETIRED) gentoo-dev 2004-12-04 16:40:40 UTC
I updated a bunch of gnustep ebuilds tonight.  Things should be out to mirrors by now.

One change was there's a "gcc-libffi" use flag for gnustep-base now.  If you already emerged gcc with gcj, it should work.

Just confirm that you are using any gcc with gcj with `gcc-config -l` (make sure it's the active profile), and try to emerge gnustep-base with that use flag.

If things work, please let me know.

FYI, >=gcc-3.4.3-r1 even installs libffi with objc (but this gcc ebuild is in testing, not really recommended right now).
Comment 5 Colin Macdonald 2004-12-05 12:08:40 UTC
For gnustep-base, in the ${DEPEND}, I changed the gcc dependency to 3.3.4 because that's what I'm running (gcc and glibc pegged on x86).

    || ( gcc-libffi? >=sys-devel/gcc-3.3.4-r1
        >=dev-libs/libffi-3* )

If I didn't do this, then it still wanted to build libffi as a dependency.  I will post later after all gnustep is rebuilt.
Comment 6 Armando Di Cianno (RETIRED) gentoo-dev 2004-12-05 12:20:08 UTC
gnustep-make _requries_ that one compile gcc with objc support.

"objc" USE flag in >=gcc-3.4.3-r1 now installs libffi, as gcj USE flag has done for a while.

changing the depend will do nothing for you unless gcj is built.

I'll have to look at the ebuild again to clear things up a bit, but knowing this now, you should be better off :-)
Comment 7 Colin Macdonald 2004-12-05 12:54:56 UTC
I understand you the first time.

However, I do have gcc 3.3.4-r1 build with gcj and when I  tried to emerge gnustep-base (with gcc-libffi use flag on), it wanted to build libffi as a dependency.  So I looked at the ebuild and say this:
        || ( gcc-libffi? >=sys-devel/gcc-3.4.3-r1
                >=dev-libs/libffi-3* )
But I'm not using gcc-3.4.3-r1!  So I modified that line.  If gnustep works with gcc-3.3.4-r1 with gcj use flag set, then perhaps there is an additional dependency that would satisfy things:

(gcc-libffi && gjc)?  >= sys-devel/gcc-3.3.4

(or something like that -- I'm not sure of the build notation to setup such a thing).
Comment 8 Colin Macdonald 2004-12-05 12:56:26 UTC
sorry, s/gjc/gcj/

Comment 9 Armando Di Cianno (RETIRED) gentoo-dev 2004-12-05 13:01:04 UTC
What is the output of:

- `gcc-config -l`
- `find /usr/lib/gcc/ -name "*ffi*"`
Comment 10 Colin Macdonald 2004-12-05 13:05:38 UTC
nilok@aconite /usr/lib $ gcc-config -l
[1] i686-pc-linux-gnu-2.95.3
[2] i686-pc-linux-gnu-3.3.4 *

I don't have /usr/lib/gcc I assume you meant /usr/lib/gcc-lib?

nilok@aconite find /usr/lib/gcc-lib/ -name "*ffi*"
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/include/fficonfig.h
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/include/ffi.h
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/include/ffi_mips.h
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/include/java/awt/geom/AffineTransform.h
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/include/javax/naming/InsufficientResourcesException.h
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/libffi.la
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/libffi-2.00-beta.so
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/libffi.so
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/libffi.a
Comment 11 Armando Di Cianno (RETIRED) gentoo-dev 2004-12-05 13:10:53 UTC
Heh, I actually meant "gcc", not "gcc-lib", but that's okay ... gcc-lib has been deprecated, forgot it used to be that.

hrm...Things seem fine.  Does this simple program compile for you?
--snip--
//////
// Compile with:
// gcc -o tryffi tryffi.c -lffi
//////

#include <ffi.h>

int main(void)
{
        return 0;
}
--snip--
Comment 12 Colin Macdonald 2004-12-05 13:21:21 UTC
Yes that simple program works and even better so does GWorkspace.app!!

So I guess we can close this bug.  I still think the ebuild needs some modifications in the dependencies, because it doesn't seem to *need* gcc-3.4.3.  gcc-3.3.4 seems to work fine.

So logic like this perhaps:
if gcc-libffi and gcj and objc is set then gcc-3.3.4 is ok.
if gcc-libffi and objc is set then gcc-3.4.3 is ok.
if no gcc-libffi then depend on libffi.
Comment 13 Armando Di Cianno (RETIRED) gentoo-dev 2004-12-05 13:25:03 UTC
Excellent.

I'm working on adding apprpriate messages to gnustep-make and gnustep-base to clarify all this for people.

...but just to clarify for me, what did you change to make gcc-3.3.4 work?  You added gcj _and_ objc?  So objc was missing at first?

Thanks. (glad we got this solved!) :-)
Comment 14 Colin Macdonald 2004-12-05 13:41:50 UTC
I always had gcj and objc.  The thing that made gworkspace work was to stop using libffi.

things I never tried:
1) rebuilding gcc w/o gcj.
2) maybe the new gworkspace you introduced (20041203) would have fixed this bug *even* if I'd kept using libffi -- I never tried that.

Why is libffi needed at all?  Can you forget about libffi altogether and tell people to build gcc with objc (if they're using gcc 3.4) or to build gcc with gcj (and objc of course) if they're using gcc 3.3.  Presumably gcc 3.4 will be stable by the time gnustep goes stable anyway?  And since (I assume) you need objc to build gnustep, most people would never need libffi.  Maybe gcc 3.3 ebuild could be version bumped in stable to make objc build the ffi stuff like it does in gcc 3.4.

octave used to have a similar issue with fortran and the f77 use flag (now fortran use flag I think).  If gcc was built with f77 then everytihng was ok, but if it wasn't you could depend on f2c.  I think the situation is analogous here.

Comment 15 Armando Di Cianno (RETIRED) gentoo-dev 2004-12-05 13:44:49 UTC
Yes, the situation sounds analogous ... I suppose the main difference is that 'gcj' adds a A LOT of time to the gcc compile, so I wanted to give people a choice.

Sadly, the gcc-3.3.X series doesn't seem as "receptive" to the very very simple patch for gcc-3.4.X to make libffi compile seperately from 'gcj'.  I'm okay requiring 3.4.X for only 'objc' to isntall libffi, 'cause in the end, 'gcj' does work, it just takes a longer time to compile.
Comment 16 Armando Di Cianno (RETIRED) gentoo-dev 2004-12-05 14:06:47 UTC
fixed
Comment 17 Colin Macdonald 2004-12-12 14:11:58 UTC
Oh no!  My other system (laptop) still exhibits this bug!  The significant differences I can think of between the desktop (which this is fixed on) and the laptop is that the laptop runs Linux 2.6.9 instead of 2.4.28 and that the laptop has +ntpl for glibc.

[ebuild   R   ] sys-devel/gcc-3.3.4-r1  +X -bootstrap -build -debug +fortran +gcj -hardened -multilib +nls +objc -pic -static (-uclibc) 0 kB
[ebuild   R   ] gnustep-base/gnustep-base-1.10.2_pre20041203  -debug -doc +gcc-libffi -profile 0 kB
[ebuild   R   ] gnustep-apps/gworkspace-0.6.6_pre20041203  -debug +pdfkit -profile 0 kB

I've rebuild most of what I thought were the relevant dependencies of gworkspace and gnustep-base and the problem is still here.


The output in comment #10 is the same except that the laptop doesn't have gcc 2.95 installed.  The laptop also passes the "libffi.c" test in the ebuild


I've rebuilt gcc (when f77 use flag became fortran), but i haven't rebuilt glibc since then - not sure if that could be related or not.

This system uses distcc.  I will turn that off and rebuild to see if it helps.

emerge info:
Portage 2.0.51-r8 (default-linux/x86/2004.3, gcc-3.3.4, glibc-2.3.4.20040808-r1,
 2.6.9 i686)
=================================================================
System uname: 2.6.9 i686 Celeron (Coppermine)
Gentoo Base System version 1.6.7
Python:              dev-lang/python-2.3.4 [2.3.4 (#2, Oct 28 2004, 00:06:12)]
distcc 2.18 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled]
dev-lang/python:     2.3.4
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.5, 1.8.5-r2, 1.6.3, 1.7.9, 1.4_p6, 1.9.3
sys-devel/binutils:  2.15.90.0.1.1-r3
sys-devel/libtool:   1.5.10-r1
virtual/os-headers:  2.6.8.1-r1
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-O3 -march=i686 -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.3
/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /us
r/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /
usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/te
xmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O3 -march=i686 -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig ccache collision-protection distcc distlocks san
dbox sfperms userpriv usersandbox"
GENTOO_MIRRORS="ftp://gentoo.ccccom.com ftp://ftp.ussg.iu.edu/pub/linux/gentoo h
ttp://gentoo.ccccom.com http://gentoo.osuosl.org/ http://mirror.datapipe.net/gen
too"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X Xaw3d acpi alsa apm arts berkdb bitmap-fonts cjk crypt cups dga dvd eds e
macs encode esd f77 faad fam fbcon fftw flac fortran gcj gdbm gif gimpprint gina
c gnome gnustep gpm gstreamer gtk gtk2 guile imagemagick imlib jack java jpeg le
im libg++ libwww live mad matroska mikmod mmx mng motif mozilla mpeg ncurses nls
 nptl objc offensive oggvorbis opengl oss pam pdflib perl plotutils png ppds pyt
hon qhull qt quicktime radeon readline rtc scanner sdk sdl slang speex spell sql
ite sse ssl svg tcltk tcpd tetex theora tiff truetype usb v4l wxwindows x86 xine
rama xml xml2 xmms xosd xv xvid zlib video_cards_mach64"
Comment 18 Colin Macdonald 2004-12-12 15:00:58 UTC
removing distcc from make.conf FEATURES and rebuilding gnustep-base and gworkspace didn't help.
Comment 19 Armando Di Cianno (RETIRED) gentoo-dev 2004-12-12 22:23:26 UTC
I haven't committed that cvs.eclass patch yet (me and my computer out of commission for a few days).  So have you forgotten to commit that cvs.eclass patch?

I'll be updating it in a few hours, however.
Comment 20 Colin Macdonald 2004-12-13 10:58:01 UTC
I don't think this bug is in anyway related to the cvs.eclass patch from Bug #73482.
Comment 21 Armando Di Cianno (RETIRED) gentoo-dev 2004-12-13 19:07:10 UTC
Could you try doing an `emerge --sync` (updated [but not bumped]) some ebuilds today, and try again?  Remember to use userpriv and usersandbox, clear out /var/tmp/portage and make sure ownerships is "portage:portage" for /usr/src/distfiles/cvs-src/*.

If things work, please post here, I thought we'd solved this.  Thanks.
Comment 22 Colin Macdonald 2004-12-14 12:44:42 UTC
I followed Comment #11 and also unmerged every ebuild in /usr/portage/gnustep-*.

Then I emerged gnustep-env and gworkspace.  I then created a new user on my system (in case there was a problem in my ~/GNUstep).  Problem still persists.  Exactly the same dialogs and error messages as in Comment #1.

List of differences between the desktop (where GWorkspace works) and my laptop (GWorkspace doesn't work):
1)  Kernel 2.6 on laptop, 2.4 on desktop
2)  +nptl in glibc on laptop, not on desktop
3)  laptop CFLAGS="-O3 -march=i686 -fomit-frame-pointer"
    laptop CFLAGS="-march=athlon-xp -O3 -pipe"
4)  Laptop is celeron (coppermine), desktop is athlon XP.  Desktop has much more RAM
5)  On laptop, I have not emerged glibc since last update to gcc (although, I don't think this is related because I did have +objc and +gcj when I build glibc)

Maybe I'll just have to wait until gcc 3.4 goes stable (I guess this will happen around/before 2005.0) and see if that fixes the bug.  But its very strange that it only shows up on one of my systems.
Comment 23 Armando Di Cianno (RETIRED) gentoo-dev 2005-03-20 13:44:37 UTC
A bunch of gnustep ebuilds where updated a few days ago, including GWorksapce.

I'm curious to know if this bug is closable or not.

If you still want to test -- that'd be great.  If not, please post here, as I still cannot reliably recreate some aspects of this bug, and I want to re-re-close it. ;-)
Comment 24 Colin Macdonald 2005-03-20 14:08:10 UTC
I'd like to help but until gnustep-back-art stops trying to downgrade my freetype to 2.1.5-r1, I can't really emerge gnustep:

# emerge -pv gnustep-env

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild  N    ] gnustep-base/gnustep-make-1.10.1_pre20050312  -debug -doc -layout-from-conf-file -layout-osx-like -non-flattened -profile 0 kB 
[ebuild  N    ] gnustep-base/gnustep-base-1.10.2_pre20050312  -debug -doc +gcc-libffi -profile 0 kB 
[ebuild  N    ] gnustep-base/gnustep-gui-0.9.5_pre20050312-r1  +cups -debug -doc +gif +gsnd +jpeg +png -profile 0 kB 
[ebuild  N    ] gnustep-libs/artresources-0.1.2  -debug -profile 1,439 kB 
[ebuild     UD] media-libs/freetype-2.1.5-r1 [2.1.9-r1] -bindist +cjk -debug -doc +zlib 830 kB 
[ebuild  N    ] gnustep-base/mknfonts-0.5  -debug -profile 2 kB 
[ebuild  N    ] gnustep-base/gnustep-back-art-0.9.5_pre20050312  -debug -doc +opengl -profile -xim 0 kB 
[ebuild  N    ] gnustep-base/gnustep-env-0.1.6  -debug -profile 0 kB 

I see bug #84211 about this has been marked resolved but it doesn't look that way to me:
# cat gnustep-back-art-0.9.5_pre20050312.ebuild | grep freetype
        >=media-libs/freetype-2.1.5
        <media-libs/freetype-2.1.8
Comment 25 Colin Macdonald 2005-03-22 12:17:54 UTC
On my laptop, using a fresh gnustep/gworkspace install, I still see this bug.  Errors seem a little different this time.  It seems to get much further when launching GWorkspace.  I first get some dialogs with the following messages:

"The mtab path is not set.  Using default value."

and then

"The mount points for removable media are not defined.  Using default values."

After that I get similar Critical Error dialogs almost like before:

NSInvalidArgumentException: NSConstantString(instance) does not recognize GSDrawImage::
NSInvalidArgumentException: GWViewerIconsPath(class) does not recognize initWithFrame:

and then on the console:
GWorkspace: /var/tmp/portage/gcc-3.3.5-r1/work/gcc-3.3.5/libobjc/sendmsg.c:260: __objc_init_install_dtable: Assertion `(((Class)receiver)&&(((((Class)receiver)->info)&0x1L)==0x1L))' failed.
Aborted

Note the first critical error now refers to GSDrawImage:: instead of viewersForBaseNode:


On my desktop, using a fresh install, I also get the msgs about mtab and removable media but as before, no Critical Errors.

So unfortunately, this bug is still out there! :-(
Comment 26 Colin Macdonald 2005-05-19 17:52:04 UTC
I am now using gcc-3.3.5-20050130.  I've rebuild my gnustep setup and I can no
longer reproduce this bug.  Resolving to WORKSFORME.