I checked the sources and Project Center defaults to calling NSWorkspace which in turn calls xdg to open files. So I will leave it at that.
As to the GNUmail error, I ran the program through GDB and the following call in NSThread is returning null :
line 619 : NSThread *t = pthread_getspecific(thread_object_key);
where the value for thread_object_key is 0 (as seen in gdb). Since this is the first thread that is created I guess this is normal, because no set was previously made
It then does :
if (nil == thr)
NSValue *selfThread = NSValueCreateFromPthread(pthread_self());
which also returns null. This I think it should not return null
it then does :
if (nil == thr)
thr = pthread_getspecific(thread_object_key);
if ((nil == defaultThread) && IS_MAIN_PTHREAD)
defaultThread = RETAIN(thr);
but unless it was set in some other place, the variable thread_object_key is still 0, so thr should still be null after this.
And then the assertion :
assert(nil != thr && "No main thread”); is reached, and there’s the error I saw in the console.
I noticed that I can make GNUMail if i first run the GNUStep.sh script from the makefiles project, and then the error running it.
If I don’t run the GNUStep.sh script and do make on the command line I get :
This is gnustep-make 2.7.0. Type 'make print-gnustep-make-help' for help.
Running in gnustep-make version 2 strict mode.
/usr/local/share/GNUstep/Makefiles/config-noarch.make:121: *** GNUSTEP_USER_ROOT is obsolete. Stop.
1. You might mean xdg-open, though I doubt PC checks freedesktop.org
's mime database before deciding how to open the file. It's probably based on the extension. I have not used PC in years, but doesn't it generate and overwrite GNUmakefile? I'd expect if you manage to get PC to open it, it might not be as useful.
I'd rather recommend that, if a project doesn't come with a PC project file, don't try to use PC unless upstream wants to support this.
2. Did you uninstall all of GNUstep? Did you remove /etc/GNUstep.conf? Other than that, there isn't enough information to make a guess, I think. How about a nice backtrace, from which you or someone else can work out where GNUMail died.
This is rather generic and just says something didn't create the main thread. How did you build GNUMail? Unfortunately, you may want to provide full steps from a blank machine to the state in which you are.
I have cloned the GNUStep repos on GitHub and built them and installed them on a Debian 9. Then I downloaded GNUMail 1.2.3 and installed its dependencies (Pantomime and AddressBook)
I ran Address Book and i seems to be running fine. I then built GNUMail and when trying to run it form the command line I am getting the following error :
GNUMail: NSThread.m:646: GSCurrentThread: Assertion `nil != thr && "No main thread"' failed.
,wich lead me to download and build project center to look at the sources and try to debug it. Project center installed fine (the release version on the main site) and I then created a project in the directory of the GNUMail sources.
When I open the GNUmakefile the file opens in a external editor and not in Project center. I investigated it and it seems to be related to xdc-open. I didn’t get a chance to look at the GNUMail code yet.
I have two questions :
1 - Is it possible to make project center ignore xdc-open and open all the text files it knows in its own editor ?
2 - Any clue to why the error in GNUMail is happenning ?
Discuss-gnustep mailing list