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

GNUstep web install script

22 views
Skip to first unread message

Gregory Casamento

unread,
Aug 23, 2020, 7:47:12 PM8/23/20
to Discuss-gnustep Discuss
This should download install GNUstep on debian in one command:


My goal is to make this universal so it will work on any linux, bsd, or windows.

-- 
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

Ivan Vučica

unread,
Aug 24, 2020, 1:20:24 PM8/24/20
to Gregory Casamento, Discuss-gnustep Discuss
This is cool

Gregory Casamento

unread,
Aug 24, 2020, 4:20:20 PM8/24/20
to Ivan Vučica, Discuss-gnustep Discuss
I'm going to add logic to determine which OS for the dependencies as well as checking the clang version, since anything before clang 7 doesn't really work.   More to come.

Svetlana Tkachenko

unread,
Aug 24, 2020, 6:44:12 PM8/24/20
to Gregory Casamento, Ivan Vučica, Discuss-gnustep Discuss
Dear Gregory,

> I'm going to add logic to determine which OS for the dependencies as well
> as checking the clang version, since anything before clang 7 doesn't really
> work. More to come.

Also uninstall my distribution's gnustep packages if they are already installed?

Regards,
Svetlana

Maxthon Chan

unread,
Aug 24, 2020, 7:45:52 PM8/24/20
to Gregory Casamento, Ivan Vučica, Discuss-gnustep Discuss
Dear Gregory,

I'm going to add logic to determine which OS for the dependencies as well as checking the clang version, since anything before clang 7 doesn't really work.   More to come.

In the case there is a working binary build, install that instead, importing any necessary additional repo/PPA as necessary.

Sincerely,
Max Chan
signature.asc

David Wetzel

unread,
Aug 24, 2020, 11:48:25 PM8/24/20
to Maxthon Chan, Gregory Casamento, Ivan Vučica, Discuss-gnustep Discuss
Hi!

You have to also know if the user wants database (GDL2) support or not.
I have never used gswnames only wonames.

Manuel was using gsw names only to avoid legal issues. But since WebObjects is not a product a class or tag name shouldn’t be a problem.

Dave

Von meinem iPhone gesendet

> Am 24.08.2020 um 19:46 schrieb Maxthon Chan <xcv...@me.com>:
>
> Dear Gregory,

H. Nikolaus Schaller

unread,
Aug 26, 2020, 5:03:04 AM8/26/20
to Gregory Casamento, Discuss-gnustep Discuss

> Am 24.08.2020 um 01:46 schrieb Gregory Casamento <greg.ca...@gmail.com>:
>
> /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/gnustep/tools-scripts/master/gnustep-web-install)"

I gave it a try on the MIPS JZ4780 CI20 board (where HDMI is working since last week with a v5.9 kernel) with Debian Bullseye.
Here are some experiences:

1. curl wasn't installed to start the command - but that is easy to fix
2. the script still prints "Get sudo and curl..." - which must have been installed before
3. started cloning a lot of files
4. there was one message about "warning: Pulling without specifying how to reconcile divergent branches is discouraged." (Cloning into 'tools-make')
5. it did install gobjc-10 and clang-9 (and some more packages)
6. succeeds: ======== Installing Make...
7. fails: ======== Installing libobjc2...

for example:

[ 6%] Building C object CMakeFiles/objc.dir/statics_loader.c.o
[ 6%] Building ASM object CMakeFiles/objc.dir/block_trampolines.S.o
[ 6%] Building ASM object CMakeFiles/objc.dir/objc_msgSend.S.o
<instantiation>:1:6: error: invalid operand for instruction
move SARG1, SARG0
^
/tmp/libobjc2/block_trampolines.S:167/tmp/libobjc2/objc_msgSend.S:14:2: warning: objc_msgSend() not implemented for your architecture [-W#warnings]
:2: #warning objc_msgSend() not implemented for your architecture
^
1 warning generated.
note: while in macro instantiation
trampoline SARG0, SARG1
^
<instantiation>:2:5: error: invalid operand for instruction
lw SARG0, -4096($25)
^
/tmp/libobjc2/block_trampolines.S:167:2: note: while in macro instantiation
trampoline SARG0, SARG1
^
gmake[2]: *** [CMakeFiles/objc.dir/build.make:327: CMakeFiles/objc.dir/block_trampolines.S.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
gmake[2]: Leaving directory '/tmp/libobjc2/build'

6. continues despite earlier errors: ======== Installing libpwq...
7. fails ======== Installing libdispatch...

for example:

CMake Error at /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message):
Could NOT find kqueue (missing: KQUEUE_INCLUDE_DIRS)
Call Stack (most recent call first):
/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:393 (_FPHSA_FAILURE_MESSAGE)
cmake/Findkqueue.cmake:20 (find_package_handle_standard_args)
CMakeLists.txt:64 (find_package)

8. continues: ======== Installing Base...

configure: WARNING: You are running configure with the link options (-fuse-ld=gold ) set to a different value from that used by gnustep-make (-fuse-ld=gold). To avoid conflicts/problems, reconfigure/reinstall gnustep-make to use LDFLAGS=-fuse-ld=gold or run the gnustep-base configure again with your LDFLAGS environment variable set to -fuse-ld=gold

Do you notice the space character after "-fuse-ld=gold"?

The build continues a little with some more fatal errors but leaves me not with a working system.
The main reason seems to be system dependencies.

So I am not sure if this approach can solve all installation issues...

Another question that came to my mind is how to update such an installation. Do I have to reinstall?
Can I run it again? There are no packages installed?

So maybe a better strategy would be to provide a package repository with the latest packages
and provide templates e.g. for /etc/apt/sources.list.d/gnustep.list

Then simply instruct users to run: apt-get update; apt-get install gnustep

Well, that would be orthogonal to your idea to support multiple BaseOS with a single script.

So far my first experiences with the script.
Summary:
* good idea
* failed to create a working setup
* leaves questions about how to install upgrade

BR and thanks,
Nikolaus

Here is the full build log (too big for attaching to the list):
https://download.goldelico.com/quantumstep/other/gnustep.log



Gregory Casamento

unread,
Aug 26, 2020, 12:11:54 PM8/26/20
to H. Nikolaus Schaller, Discuss-gnustep Discuss
I am not sure if David Chisnall ever got libobjc2 working on MIPS. 

I have no way of testing this as i dont own a similar machine

H. Nikolaus Schaller

unread,
Aug 26, 2020, 12:24:08 PM8/26/20
to Gregory Casamento, Discuss-gnustep Discuss

> Am 26.08.2020 um 18:11 schrieb Gregory Casamento <greg.ca...@gmail.com>:
>
> I am not sure if David Chisnall ever got libobjc2 working on MIPS.

I also have no idea - I was just assuming that it works if not rejected by the script or the build system...

> I have no way of testing this as i dont own a similar machine

Yes, MIPS is unfortunately quite rare and especially with a RasPi style of hardware (I think it even has a compatible connector)...

Anyways sharing such experiences may help to make the script and GNUstep better.

Gregory Casamento

unread,
Aug 26, 2020, 2:15:19 PM8/26/20
to H. Nikolaus Schaller, Discuss-gnustep Discuss

Nikolaus,

On Wed, Aug 26, 2020 at 12:24 PM H. Nikolaus Schaller <h...@goldelico.com> wrote:

> Am 26.08.2020 um 18:11 schrieb Gregory Casamento <greg.ca...@gmail.com>:
>
> I am not sure if David Chisnall ever got libobjc2 working on MIPS.

I also have no idea - I was just assuming that it works if not rejected by the script or the build system...


That's a fair assumption since the purpose of this script is to install anywhere GNUstep is supported.  It seems I will need to have it fall back to gcc on architectures that don't support clang or libobjc2.

 
> I have no way of testing this as i dont own a similar machine

Yes, MIPS is unfortunately quite rare and especially with a RasPi style of hardware (I think it even has a compatible connector)...

> Anyways sharing such experiences may help to make the script and GNUstep better.

True.  Is this on one of the letux devices?  I had one a while ago, but I don't have it anymore.  It got destroyed by my kids (it was a LONG time ago).   Is there any way you might be able to lend me one so that I can test on it?
All errors after this point are spurious as this dooms them all. :) 

GC

David Chisnall

unread,
Aug 26, 2020, 4:31:32 PM8/26/20
to H. Nikolaus Schaller, Gregory Casamento, Discuss-gnustep Discuss
On 26 Aug 2020, at 17:23, H. Nikolaus Schaller <h...@goldelico.com> wrote:
>
>>
>> Am 26.08.2020 um 18:11 schrieb Gregory Casamento <greg.ca...@gmail.com>:
>>
>> I am not sure if David Chisnall ever got libobjc2 working on MIPS.
>
> I also have no idea - I was just assuming that it works if not rejected by the script or the build system...

It was working with the n64 ABI last time I tested it but I haven’t tested it recently and it isn’t tested in CI. I don’t think I ever tested it with n32 or o32.

David



H. Nikolaus Schaller

unread,
Aug 26, 2020, 4:42:58 PM8/26/20
to Gregory Casamento, Discuss-gnustep Discuss
Am 26.08.2020 um 20:14 schrieb Gregory Casamento <greg.ca...@gmail.com>:

True.  Is this on one of the letux devices?  I had one a while ago, but I don't have it anymore.  It got destroyed by my kids (it was a LONG time ago).   Is there any way you might be able to lend me one so that I can test on it?

No, it is the CI20 MipsCreator board by Imagination Technologies: https://elinux.org/MIPS_Creator_CI20

I got mine approx. 2 years ago from RS Components (UK). Riccardo also has one. I am not sure if it is still sold anywhere.

BR,
Nikolaus

0 new messages