Hello!

I discovered this mailing list through gnutesp.org and decided to comment
here about what I'm trying to achieve so that if anyone has any
tips/comments about it, they will be very welcome!

I'm trying to install GNUstep on macOS Big Sur. My main goal is to have
GWorkspace running (especially because of the GWorkspace File manager which
is amazing!). Eventually, if possible, I would also like to have some other
apps like Gemas.app, ImageViewer.app, ViewPDF.app, Terminal.app and maybe
others.

I have been using GWorkspace and some GNUstep apps on a second laptop
(Acer) that I have running Linux (Debian based, which has GNUstep apps
available in its repositories), however now I would like to have these apps
running on my main laptop (Mac). I searched the internet on how to install
GNUStep on macOS, but for me it has been particularly confusing to put
things in order taking into account my lack of general notion about
everything besides configure / make / make install.

I made my first attempt to install via MacPorts <https://www.macports.org>.
It seemed to me that what was available regarding GNUstep on MacPorts was
out of date, but for me it would be interesting if it worked because
theoretically all dependencies would be resolved. But unfortunately the
installation via MacPorts had several errors, apparently wrong paths in the
packages / dependencies. So I removed MacPorts from the OS.

I also checked FinkProject <https://www.finkproject.org>, but it doesn't
seem to be incompatible with macOS Big Sur and I didn't find any GNUstep
packages either.

I noticed that the Homebrew <https://brew.sh> package manager seems to have
a single package available for GNUstep called gnustep-make
<https://formulae.brew.sh/formula/gnustep-make#default>, but I don't know
how to take advantage of it in my attempt. I also believe that Homebrew can
be an alternative to install dependencies (libraries?) that would be
necessary to compile GNUstep from source.

Speaking of compiling from source, it seems like the most possible option
to me. This is the route I intend to take now to try to install a GNUstep
environment on macOS that will allow me to compile / install Gworkspace at
the end. However, it is still unclear to me which dependencies (x11 and
other libraries?) I should try to install (via Homebrew maybe?) and in what
order.



*P.S.* Searching the internet about compiling GNUstep on macOS, I didn't
find much specific but I found a web page on GitHub called "GNUstep
scripts" (gnustep / tools-scripts <https://github.com/gnustep/tools-scripts>)
that can possibly help with the installation of GNUstep. I tried to run the
scripts but there were errors that led me to question whether they were
missing dependencies or something else. Just to illustrate my current
environment I describe below the steps I took in trying to run the scripts:

1. I have Xcode Version 12.4 (12D4e) installed from the App Store
(installed since my first attempt with MacPorts).

2. I installed Command Line Developer Tools (xcode-select --install).

gcc --version
> Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr
> --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
> Apple clang version 12.0.0 (clang-1200.0.32.29)
> Target: x86_64-apple-darwin20.3.0
> Thread model: posix
> InstalledDir:
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin


clang --version
> Apple clang version 12.0.0 (clang-1200.0.32.29)
> Target: x86_64-apple-darwin20.3.0
> Thread model: posix
> InstalledDir:
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin


gnumake --version

GNU Make 3.81

Copyright (C) 2006  Free Software Foundation, Inc.

This is free software; see the source for copying conditions.

There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A

PARTICULAR PURPOSE.

This program built for i386-apple-darwin11.3.0


3. I cloned the libs-base, libs-back, libs-gui, tool-make and tool-scripts
repositories into a directory.

mkdir -p ~/Downloads/gnustep
> cd ~/Downloads/gnustep
> git clone https://github.com/gnustep/libs-base.git
> git clone https://github.com/gnustep/libs-back.git
> git clone https://github.com/gnustep/libs-gui.git
> git clone https://github.com/gnustep/tools-make.git
> git clone https://github.com/gnustep/tools-scripts.git


4. The first two scripts that I ran, I didn't see any noticeable errors:

./tools-scripts/clang-build
> ./tools-scripts/compile-all


5. When running the build-darwin script, errors appeared:

./tools-scripts/build-darwin

I selected the most notable errors (from build-darwin script output) below:

...
> ======== Build base
> (...)
> In file included from GCObject.m:31:
> In file included from .././common.h:59:
> ../../Headers/Foundation/NSString.h:974:15: error: 'objc_class' is
> unavailable
> extern struct objc_class _NSConstantStringClassReference;
>               ^
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/runtime.h:55:8:
> note: 'objc_class' has been explicitly marked unavailable here
> struct objc_class {
>        ^
> In file included from GCArray.m:27:
> In file included from .././common.h:59:
> ../../Headers/Foundation/NSString.h:974:15: error: 'objc_class' is
> unavailable
> extern struct objc_class _NSConstantStringClassReference;
>               ^
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/runtime.h:55:8:
> note: 'objc_class' has been explicitly marked unavailable here
> struct objc_class {
>        ^
> In file included from GSObjCRuntime.m:32:
> In file included from .././common.h:59:
> ../../Headers/Foundation/NSString.h:974:15: error: 'objc_class' is
> unavailable
> extern struct objc_class _NSConstantStringClassReference;
>               ^
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/runtime.h:55:8:
> note: 'objc_class' has been explicitly marked unavailable here
> struct objc_class {
>        ^
> 1 error generated.
> 1 error generated.
> gnumake[4]: *** [obj/Additions.obj/GCObject.m.o] Error 1
> gnumake[4]: *** Waiting for unfinished jobs....
> gnumake[4]: *** [obj/Additions.obj/GCArray.m.o] Error 1
> In file included from GSObjCRuntime.m:52:
> In file included from
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/Protocol.h:39:
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/NSObject.h:53:1:
> error: duplicate interface definition for class 'NSObject'
> @interface NSObject <NSObject> {
> ^
> ../../Headers/Foundation/NSObject.h:292:12: note: previous definition is
> here
> @interface NSObject <NSObject>
>            ^
> 2 errors generated.
> gnumake[4]: *** [obj/Additions.obj/GSObjCRuntime.m.o] Error 1
> gnumake[3]: *** [internal-subproject-all_] Error 2
> gnumake[2]: *** [Additions.all.subproject.variables] Error 2
> gnumake[1]: *** [internal-all] Error 2
> make: *** [internal-all] Error 2
> (...)
> ======== Build gui
> (...)
> aking all in Source ...
> /usr/local/opt/GNUstep/System/Library/Makefiles/mkinstalldirs .
> mv ../Headers/Additions/GNUstepGUI/config.h .
> touch ./config.h
> Making all for library libgnustep-gui...
>  Compiling file Functions.m ...
>  Compiling file NSAccessibility.m ...
>  Compiling file NSAccessibilityCustomAction.m ...
>  Compiling file NSAccessibilityCustomRotor.m ...
> /bin/sh: gcc-10: command not found
> /bin/sh: gcc-10: command not found
> /bin/sh: gcc-10: command not found
> /bin/sh: gcc-10: command not found
> gnumake[4]: *** [obj/libgnustep-gui.obj/NSAccessibility.m.o] Error 127
> gnumake[4]: *** Waiting for unfinished jobs....
> gnumake[4]: *** [obj/libgnustep-gui.obj/Functions.m.o] Error 127
> gnumake[4]: *** [obj/libgnustep-gui.obj/NSAccessibilityCustomAction.m.o]
> Error 127
> gnumake[4]: *** [obj/libgnustep-gui.obj/NSAccessibilityCustomRotor.m.o]
> Error 127
> gnumake[3]: *** [internal-library-all_] Error 2
> gnumake[2]: *** [libgnustep-gui.all.library.variables] Error 2
> gnumake[1]: *** [internal-all] Error 2
> make: *** [internal-all] Error 2
> (...)
> ======== Build back
> (...)
> configure: error: libXt not found - required for building x11 server
> /usr/local/opt/GNUstep/System/Library/Makefiles/common.make:203:
> back.make: No such file or directory
> This is gnustep-make 2.9.0. Type 'gnumake print-gnustep-make-help' for
> help.
> Running in gnustep-make version 2 strict mode.
> if [ -x config.status ]; then \
>       ./config.status --recheck && ./config.status; \
>     else \
>       ./configure; \
>     fi
> checking build system type... x86_64-apple-darwin20.3.0
> checking host system type... x86_64-apple-darwin20.3.0
> checking target system type... x86_64-apple-darwin20.3.0
> configure: WARNING: You are running configure with the compiler (gcc-10)
> set to a different value from that used by gnustep-make (clang).  To a
> void conflicts/problems, reconfigure/reinstall gnustep-make to use gcc-10
> or run the gnustep-base configure again with your CC environment var
> iable set to clang
> configure: WARNING: You are running configure with the compiler (g++-10)
> set to a different value from that used by gnustep-make (clang++).  To
>  avoid conflicts/problems, reconfigure/reinstall gnustep-make to use
> g++-10 or run the gnustep-base configure again with your CXX environment
>  variable set to clang++
> checking for gcc... gcc-10
> checking whether the C compiler works... no
> configure: error: in `/Users/pierre/Downloads/gnustep/libs-back':
> configure: error: C compiler cannot create executables
> See `config.log' for more details
> make: *** [back.make] Error 77
> Done.


Searching the internet for the error "checking whether the C compiler works
... no" I found this
<https://stackoverflow.com/questions/22844522/os-x-10-9-2-checking-whether-the-c-compiler-works-no>
and this
<https://github.com/react-native-maps/react-native-maps/issues/2290> too.
Which suggested running the "sudo xcode-select --switch
/Applications/Xcode.app" command. But it ended up having no effect.

Best regards!
-- 
*Pierre Santos*

Reply via email to