Hello Pierre, I hope you are well. I am currently working on this. Any insights or suggestions you can provide would be greatly appreciated.
I have been working on a universal installation script recently. One of the OSs I have tried to get working, without success, is macOS. Up until recently getting GNUstep working on macOS has not been a priority since it represents the system we are trying to implement. However, I do see the practical advantages of getting GNUstep building and working properly on it. You can find the script here... /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/gnustep/tools-scripts/master/gnustep-web-install )" The repo is, of course, https://github.com/gnustep/tools-scripts/ It should run partially and you can see the issues it has. Currently, this script works on Linux, Windows (if you install MSYS2), and a couple of the BSDs. Thanks, GC On Tue, Apr 20, 2021 at 11:56 PM pierre rs <[email protected]> wrote: > 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* > -- Gregory Casamento GNUstep Lead Developer / OLC, Principal Consultant http://www.gnustep.org - http://heronsperch.blogspot.com https://www.patreon.com/bePatron?u=352392 - Become a Patron https://gf.me/u/x8m3sx - My GNUstep GoFundMe https://teespring.com/stores/gnustep - Store
