Compiling gnustep-make

classic Classic list List threaded Threaded
15 messages Options
Reply | Threaded
Open this post in threaded view
|

Compiling gnustep-make

Svetlana Tkachenko-3
Hello All,

When compiling GNUStep Make (gnustep-make-2.7.0) on Debian buster, I get

./configure output: http://paste.debian.net/plain/1007866

Then the following error message:
config-noarch.make:121: *** GNUSTEP_USER_ROOT is obsolete

Do not know what user root stands for or how to work around this.

-- Sveta

_______________________________________________
Discuss-gnustep mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep
Reply | Threaded
Open this post in threaded view
|

Re: Compiling gnustep-make

Ivan Vučica-2
Have you uninstalled a previous installation of GS fully? Have you cleared away your environment of GNUSTEP_* variables and deleted /etc/GNUstep.conf?

If you did, it’s worth figuring out why that variable is making an appearance.

On Mon 29 Jan 2018 at 19:35 Svetlana Tkachenko <[hidden email]> wrote:
Hello All,

When compiling GNUStep Make (gnustep-make-2.7.0) on Debian buster, I get

./configure output: http://paste.debian.net/plain/1007866

Then the following error message:
config-noarch.make:121: *** GNUSTEP_USER_ROOT is obsolete

Do not know what user root stands for or how to work around this.

-- Sveta

_______________________________________________
Discuss-gnustep mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep
--
Sent from Gmail Mobile

_______________________________________________
Discuss-gnustep mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep
Reply | Threaded
Open this post in threaded view
|

Re: Compiling gnustep-make

Yavor Doganov-3
In reply to this post by Svetlana Tkachenko-3
В Tue, 30 Jan 2018 06:35:03 +1100, Svetlana Tkachenko написа:
> Then the following error message:
> config-noarch.make:121: *** GNUSTEP_USER_ROOT is obsolete

When is this "then"?  When you run `make' after the successful
configure run of gnustep-make, when you run `make install' for
gnustep-make or when you attempt to build a random GNUstep tool/app
afterwards?

I suspect that you still have gnustep-make/gnustep-common installed as
official Debian packages.  GNUstep Make will not configure properly if
there is a previous installation as it'll attempt to find and use an
existing GNUstep.conf.  Debian's gnustep-make configuration still
caters for old (1.x) makefiles as we have to make sure that nothing
breaks if we remove the compatibility layer (on my TODO, after the
ongoing gnustep-gui transition).

If you intend to use a pristine GNUstep installation on a Debian
system, it's much better to wipe out all GNUstep-related Debian
packages.  Or you can install in the USER domain which always takes
precedence.  That's what I'm doing and it works nicely except when
testing changes to GNUstep Make.

If you have problems with the Debian packages, please report them to
the Debian BTS; thanks in advance.  If my theory above is correct,
this is not a problem in the Debian gnustep-make package.  Rather,
it's a problem in the upstream build system which is assuming things
it shouldn't.


_______________________________________________
Discuss-gnustep mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep
Reply | Threaded
Open this post in threaded view
|

Re: Compiling gnustep-make

Riccardo Mottola-5
In reply to this post by Svetlana Tkachenko-3
Hi,

On 2018-01-29 20:35:03 +0100 Svetlana Tkachenko
<[hidden email]> wrote:

> Hello All,
>
> When compiling GNUStep Make (gnustep-make-2.7.0) on Debian buster, I
> get
> ./configure output: http://paste.debian.net/plain/1007866
>
> Then the following error message:
> config-noarch.make:121: *** GNUSTEP_USER_ROOT is obsolete
>
> Do not know what user root stands for or how to work around this.

I got this too sometimes. I think it happens when you already did
source GNUstep.sh in some way before configuring and installing
GNUstep make.

try sourcing GNUstep-reset.sh before configuring and installing
gnustep make, then after source GNUstep.sh again and get the "new"
updated environment set up.

Riccardo


_______________________________________________
Discuss-gnustep mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep
Reply | Threaded
Open this post in threaded view
|

Re: Compiling gnustep-make

Svetlana Tkachenko-3
In reply to this post by Yavor Doganov-3
Hello All,

Ivan Vučica wrote:
> Have you uninstalled a previous installation of GS fully? Have you cleared away your environment of GNUSTEP_* variables and deleted /etc/GNUstep.conf?
> If you did, it’s worth figuring out why that variable is making an appearance.

I now did 'apt purge *gnustep*' and that showed that some packages still needed removal. However I then rebooted and tried to compile GNUstep Make again and it produced the same error message. The workaround proposed by Riccardo appears to work (see below).

Yavor Doganov wrote:
> В Tue, 30 Jan 2018 06:35:03 +1100, Svetlana Tkachenko написа:
> > Then the following error message:
> > config-noarch.make:121: *** GNUSTEP_USER_ROOT is obsolete
>
> When is this "then"?  When you run `make' after the successful
> configure run of gnustep-make, when you run `make install' for
> gnustep-make or when you attempt to build a random GNUstep tool/app
> afterwards?

When I run make after the successful configure run of gnustep-make.

Yavor Doganov wrote:
> If you intend to use a pristine GNUstep installation on a Debian
> system, it's much better to wipe out all GNUstep-related Debian
> packages.  Or you can install in the USER domain which always takes
> precedence.

How do I install in the USER domain?

Yavor Doganov wrote:
> That's what I'm doing and it works nicely except when
> testing changes to GNUstep Make.

Why don't you install GNUstep Make into the USER domain as well?

> If you have problems with the Debian packages, please report them to
> the Debian BTS; thanks in advance.  If my theory above is correct,
> this is not a problem in the Debian gnustep-make package.  Rather,
> it's a problem in the upstream build system which is assuming things
> it shouldn't.

Riccardo Mottola wrote:
> try sourcing GNUstep-reset.sh before configuring and installing
gnustep make, then after source GNUstep.sh again and get the "new"
updated environment set up.

This works. GNUstep-make compiles. Now gnustep-base says objc headers are missing, what package is that in Debian? I already tried objc*dev but the error remains.

-- Sveta

_______________________________________________
Discuss-gnustep mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep
Reply | Threaded
Open this post in threaded view
|

Re: Compiling gnustep-make

Ivan Vučica-2
One thing is unclear to me...

If you had GNUstep-reset.sh on your system, would that not suggest that GNUstep was, in fact, not uninstalled?

I mean, if there were GNUstep-specific environment variables present in your environment even after a reboot, would that, in fact, not indicate that there was another installation of GNUstep on your system?

On Wed 31 Jan 2018 at 22:40 Svetlana Tkachenko <[hidden email]> wrote:
Hello All,

Ivan Vučica wrote:
> Have you uninstalled a previous installation of GS fully? Have you cleared away your environment of GNUSTEP_* variables and deleted /etc/GNUstep.conf?
> If you did, it’s worth figuring out why that variable is making an appearance.

I now did 'apt purge *gnustep*' and that showed that some packages still needed removal. However I then rebooted and tried to compile GNUstep Make again and it produced the same error message. The workaround proposed by Riccardo appears to work (see below).

Yavor Doganov wrote:
> В Tue, 30 Jan 2018 06:35:03 +1100, Svetlana Tkachenko написа:
> > Then the following error message:
> > config-noarch.make:121: *** GNUSTEP_USER_ROOT is obsolete
>
> When is this "then"?  When you run `make' after the successful
> configure run of gnustep-make, when you run `make install' for
> gnustep-make or when you attempt to build a random GNUstep tool/app
> afterwards?

When I run make after the successful configure run of gnustep-make.

Yavor Doganov wrote:
> If you intend to use a pristine GNUstep installation on a Debian
> system, it's much better to wipe out all GNUstep-related Debian
> packages.  Or you can install in the USER domain which always takes
> precedence.

How do I install in the USER domain?

Yavor Doganov wrote:
> That's what I'm doing and it works nicely except when
> testing changes to GNUstep Make.

Why don't you install GNUstep Make into the USER domain as well?

> If you have problems with the Debian packages, please report them to
> the Debian BTS; thanks in advance.  If my theory above is correct,
> this is not a problem in the Debian gnustep-make package.  Rather,
> it's a problem in the upstream build system which is assuming things
> it shouldn't.

Riccardo Mottola wrote:
> try sourcing GNUstep-reset.sh before configuring and installing
gnustep make, then after source GNUstep.sh again and get the "new"
updated environment set up.

This works. GNUstep-make compiles. Now gnustep-base says objc headers are missing, what package is that in Debian? I already tried objc*dev but the error remains.

-- Sveta

_______________________________________________
Discuss-gnustep mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep
--
Sent from Gmail Mobile

_______________________________________________
Discuss-gnustep mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep
Reply | Threaded
Open this post in threaded view
|

Re: Compiling gnustep-make

Svetlana Tkachenko-3
Hi Ivan,

Ivan Vučica wrote:
> One thing is unclear to me...
>
> If you had GNUstep-reset.sh on your system, would that not suggest that GNUstep was, in fact, not uninstalled?

No, I ran GNUstep-reset.sh from gnustep-make sources directory.

-- Sveta

_______________________________________________
Discuss-gnustep mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep
Reply | Threaded
Open this post in threaded view
|

Re: Compiling gnustep-make

Yavor Doganov-3
In reply to this post by Svetlana Tkachenko-3
В Thu, 01 Feb 2018 09:39:33 +1100, Svetlana Tkachenko написа:
> Ivan Vučica wrote:
>> Have you uninstalled a previous installation of GS fully?
>
> I now did 'apt purge *gnustep*' and that showed that some packages
> still needed removal. However I then rebooted and tried to compile
> GNUstep Make again and it produced the same error message.

Then you definitely have some remnants from an old installation.  It
could be from a debian package (purge removes every file *dpkg* knows
about), something in /usr/local or $HOME.

I had to install GNUstep on ~20 machines recently, it worked
flawlessly with 2.7.0.  If you'are trying with the master branch it
shouldn't make any difference; there are a few unrelated commits on
top of 2.7.0.

> Yavor Doganov wrote:
>> Or you can install in the USER domain which always takes
>> precedence.
>
> How do I install in the USER domain?

make install GNUSTEP_INSTALLATION_DOMAIN=USER

Or, if you don't have root access and/or intend to install in the USER
domain most of the time, you can put in your ~/.profile:

export GNUSTEP_INSTALLATION_DOMAIN=USER

and then use just `make install' which would install in the USER
domain.  You can still explicitly specify `make install
GNUSTEP_INSTALLATION_DOMAIN=LOCAL' in cases when you need to.

>> That's what I'm doing and it works nicely except when testing changes
>> to GNUstep Make.
>
> Why don't you install GNUstep Make into the USER domain as well?

Well, GNUstep Make introduces the concept of domains, you cannot
install it in the USER or any other domain without extra hoops, it
honours --prefix.

> Now gnustep-base says objc headers are missing, what package is that
> in Debian? I already tried objc*dev but the error remains.

What are you trying to do?  You must have an Objective-C compiler and
runtime before configuring GNUstep Make.  You build the compiler and
the runtime first, then Make, Base, Gui, Back and the rest of the
GNUstep world.  GNUstep Base has a configure check to detect if
there's a mismatch between its own and gnustep-make's configuration.

If you have gobjc/gobjc-7 installed, you already have the GNU
Objective-C runtime headers (libobjc-7-dev).  If you intend to use
Clang and the GNUstep runtime, you have to remove gobjc, install clang
as a debian package (or build it manually if you wish) and
build/install the GNUstep runtime before configuring GNUstep make.

There is no Debian package for the GNUstep runtime (aka libobjc2).


_______________________________________________
Discuss-gnustep mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep
Reply | Threaded
Open this post in threaded view
|

Re: Compiling gnustep-make

Ivan Vučica-2
In reply to this post by Svetlana Tkachenko-3

On Thu 1 Feb 2018 at 02:49 Svetlana Tkachenko <[hidden email]> wrote:
Hi Ivan,

Ivan Vučica wrote:
> One thing is unclear to me...
>
> If you had GNUstep-reset.sh on your system, would that not suggest that GNUstep was, in fact, not uninstalled?

No, I ran GNUstep-reset.sh from gnustep-make sources directory.

-- Sveta
You didn’t say anything about how the env vars were in your environment after a reboot?

Did you check if they are there using the “env” command? Did you find out what left them there and cleaned that thing away?
--
Sent from Gmail Mobile

_______________________________________________
Discuss-gnustep mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep
Reply | Threaded
Open this post in threaded view
|

Re: Compiling gnustep-make

Svetlana Tkachenko-3
In reply to this post by Yavor Doganov-3
Hello All,

Yavor Doganov wrote:

> > Now gnustep-base says objc headers are missing, what package is that
> > in Debian? I already tried objc*dev but the error remains.
>
> What are you trying to do?  You must have an Objective-C compiler and
> runtime before configuring GNUstep Make.  You build the compiler and
> the runtime first, then Make, Base, Gui, Back and the rest of the
> GNUstep world.  GNUstep Base has a configure check to detect if
> there's a mismatch between its own and gnustep-make's configuration.
>
> If you have gobjc/gobjc-7 installed, you already have the GNU
> Objective-C runtime headers (libobjc-7-dev).  If you intend to use
> Clang and the GNUstep runtime, you have to remove gobjc, install clang
> as a debian package (or build it manually if you wish) and
> build/install the GNUstep runtime before configuring GNUstep make.
>
> There is no Debian package for the GNUstep runtime (aka libobjc2).

I compiled GNUstep Make.
Then I tried to compile GNUstep Base.
It says this: http://dpaste.com/0AEA0ZE.txt

Ivan Vučica wrote:
> You didn’t say anything about how the env vars were in your environment after a reboot?
> Did you check if they are there using the “env” command? Did you find out what left them there and cleaned that thing away?

'env|grep GNUSTEP' says...
svetlana@debians:~$ env|grep GNUSTEP # I do not know what makes this
GNUSTEP_USER_ROOT=/home/svetlana/GNUstep
svetlana@debians:~$ source /usr/local/share/GNUstep/Makefiles/GNUstep.sh # this was made by GNUstep Make that I compiled
svetlana@debians:~$ env|grep GNUSTEP
GNUSTEP_MAKEFILES=/usr/local/share/GNUstep/Makefiles
svetlana@debians:~$

-- Sveta


_______________________________________________
Discuss-gnustep mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep
Reply | Threaded
Open this post in threaded view
|

Re: Compiling gnustep-make

Svetlana Tkachenko-3
Svetlana Tkachenko wrote:

> Hello All,
>
> Yavor Doganov wrote:
> > > Now gnustep-base says objc headers are missing, what package is that
> > > in Debian? I already tried objc*dev but the error remains.
> >
> > What are you trying to do?  You must have an Objective-C compiler and
> > runtime before configuring GNUstep Make.  You build the compiler and
> > the runtime first, then Make, Base, Gui, Back and the rest of the
> > GNUstep world.  GNUstep Base has a configure check to detect if
> > there's a mismatch between its own and gnustep-make's configuration.
> >
> > If you have gobjc/gobjc-7 installed, you already have the GNU
> > Objective-C runtime headers (libobjc-7-dev).  If you intend to use
> > Clang and the GNUstep runtime, you have to remove gobjc, install clang
> > as a debian package (or build it manually if you wish) and
> > build/install the GNUstep runtime before configuring GNUstep make.
> >
> > There is no Debian package for the GNUstep runtime (aka libobjc2).
>
> I compiled GNUstep Make.
> Then I tried to compile GNUstep Base.
> It says this: http://dpaste.com/0AEA0ZE.txt
>
> Ivan Vučica wrote:
> > You didn’t say anything about how the env vars were in your environment after a reboot?
> > Did you check if they are there using the “env” command? Did you find out what left them there and cleaned that thing away?
>
> 'env|grep GNUSTEP' says...
> svetlana@debians:~$ env|grep GNUSTEP # I do not know what makes this
> GNUSTEP_USER_ROOT=/home/svetlana/GNUstep
> svetlana@debians:~$ source /usr/local/share/GNUstep/Makefiles/GNUstep.sh
> # this was made by GNUstep Make that I compiled
> svetlana@debians:~$ env|grep GNUSTEP
> GNUSTEP_MAKEFILES=/usr/local/share/GNUstep/Makefiles
> svetlana@debians:~$

Turns out installing gobjc-7 fixes the error message provided by GNUstep Make.
It was suggested by the objc-compiler package.

-- Sveta

_______________________________________________
Discuss-gnustep mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep
Reply | Threaded
Open this post in threaded view
|

Re: Compiling gnustep-make

Yavor Doganov-3
In reply to this post by Svetlana Tkachenko-3
В Mon, 05 Feb 2018 06:24:14 +1100, Svetlana Tkachenko написа:

> I compiled GNUstep Make.
> Then I tried to compile GNUstep Base.
> It says this: http://dpaste.com/0AEA0ZE.txt

Inspect config.log and post the part relevant to this failure?
Have you stripped the output of `dpkg -l'?  I don't see a compiler there,
on my system it returns:

$ dpkg -l *objc* | grep ^i
ii  gobjc               4:7.2.0-1d1  amd64        GNU Objective-C compiler
ii  gobjc++             4:7.2.0-1d1  amd64        GNU Objective-C++
compiler
ii  gobjc++-7           7.3.0-1      amd64        GNU Objective-C++
compiler
ii  gobjc-7             7.3.0-1      amd64        GNU Objective-C compiler
ii  libobjc-7-dev:amd64 7.3.0-1      amd64        Runtime library for GNU
Objective-C applications (development files)
ii  libobjc4:amd64      7.3.0-1      amd64        Runtime library for GNU
Objective-C applications
ii  libobjc4-dbg:amd64  7.3.0-1      amd64        Runtime library for GNU
Objective-C applications (debug symbols

> svetlana@debians:~$ env|grep GNUSTEP # I do not know what makes this
> GNUSTEP_USER_ROOT=/home/svetlana/GNUstep

This is set from your ~/.profile or ~/.bashrc or from another
GNUstep.sh (from an old installation) that is sourced from there.


_______________________________________________
Discuss-gnustep mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep
Reply | Threaded
Open this post in threaded view
|

Re: Compiling gnustep-make

Yavor Doganov-3
In reply to this post by Svetlana Tkachenko-3
В Mon, 05 Feb 2018 06:47:55 +1100, Svetlana Tkachenko написа:
 
> Turns out installing gobjc-7 fixes the error message provided by GNUstep
> Make.

Sorry, there was some race condition: I read your message only after
sending my last message.

The gnustep-make configure script should fail if it cannot find an
Objective-C compiler so there's something really fishy here.


_______________________________________________
Discuss-gnustep mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep
Reply | Threaded
Open this post in threaded view
|

Re: Compiling gnustep-make

Andreas Fink-2
In reply to this post by Svetlana Tkachenko-3
You need a better compiler for ObjC.


it works perfectly ok on Debian 9 using the Debian provided clang 3.8 or 3.9.  I also built a package with llvm/clang/lldb 5.0 for debian which is in my repo. Especially lldb sucks under Linux. The version 5.0 sucks a bit less but its still missing the macros which I know from OS X (such as "po" for print object). For some reasons I can't even print NSStrings properly in the debugger. Apparently Apple has some magic scripts for LLDB which the generic version doesn't have (does anyone happen to know?).

If you want to use llvm 5.0 from my repo:

echo "deb http://repo.universalss7.ch/debian/ stretch universalss7" > /etc/apt/sources.list.d/universalss7.list
wget 4 -O - http://repo.universalss7.ch/debian/key.asc |apt-key add -
apt-get update
apt-get install llvm-clang-lldb


The same repo also has prebuilt gnustep-make,-base,-gui,-back, -corebase builds built exactly on these instructions (and installs to /usr/local) So if you do apt-get install gnustep-bundle you get them pulled in including all dependencies.



On 4 Feb 2018, at 20:24, Svetlana Tkachenko <[hidden email]> wrote:

Hello All,

Yavor Doganov wrote:
Now gnustep-base says objc headers are missing, what package is that
in Debian? I already tried objc*dev but the error remains.

What are you trying to do?  You must have an Objective-C compiler and
runtime before configuring GNUstep Make.  You build the compiler and
the runtime first, then Make, Base, Gui, Back and the rest of the
GNUstep world.  GNUstep Base has a configure check to detect if
there's a mismatch between its own and gnustep-make's configuration.

If you have gobjc/gobjc-7 installed, you already have the GNU
Objective-C runtime headers (libobjc-7-dev).  If you intend to use
Clang and the GNUstep runtime, you have to remove gobjc, install clang
as a debian package (or build it manually if you wish) and
build/install the GNUstep runtime before configuring GNUstep make.

There is no Debian package for the GNUstep runtime (aka libobjc2).

I compiled GNUstep Make.
Then I tried to compile GNUstep Base.
It says this: http://dpaste.com/0AEA0ZE.txt

Ivan Vučica wrote:
You didn’t say anything about how the env vars were in your environment after a reboot?
Did you check if they are there using the “env” command? Did you find out what left them there and cleaned that thing away?

'env|grep GNUSTEP' says...
svetlana@debians:~$ env|grep GNUSTEP # I do not know what makes this
GNUSTEP_USER_ROOT=/home/svetlana/GNUstep
svetlana@debians:~$ source /usr/local/share/GNUstep/Makefiles/GNUstep.sh # this was made by GNUstep Make that I compiled
svetlana@debians:~$ env|grep GNUSTEP
GNUSTEP_MAKEFILES=/usr/local/share/GNUstep/Makefiles
svetlana@debians:~$

-- Sveta


_______________________________________________
Discuss-gnustep mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep


_______________________________________________
Discuss-gnustep mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep
Reply | Threaded
Open this post in threaded view
|

Re: Compiling gnustep-make

Riccardo Mottola-5
In reply to this post by Svetlana Tkachenko-3
Hi,

Svetlana Tkachenko wrote:
> Riccardo Mottola wrote:
>> try sourcing GNUstep-reset.sh before configuring and installing
> gnustep make, then after source GNUstep.sh again and get the "new"
> updated environment set up.
>
> This works. GNUstep-make compiles. Now gnustep-base says objc headers are missing, what package is that in Debian? I already tried objc*dev but the error remains.

If you use gcc, you just need gobjc packages, if you use clang, I don't
know, I don't use that setup on debian.

However, if my workaround "worked" it means that you had a leftover from
debian and/or that you were already sourcing GNUstep.sh somehow and that
in an open shell you have some GNUstep variables set.
This happens if you source something in your profile, it might be done
by debian stuff or if you added that manually.



Riccardi

_______________________________________________
Discuss-gnustep mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep