Re: [bug #41125] -make documentation is un-installable

2014-01-10 Thread Richard Frith-Macdonald

On 9 Jan 2014, at 19:49, Markus Hitter m...@jump-ing.de wrote:

 Am 08.01.2014 13:11, schrieb Niels Grewe:
 In fact it’s very, very easy to switch the documentation to using the
 present (not yet installed) configuration: You just have to set
 GNUSTEP_MAKEFILES=../ at the beginning of Documentation/GNUmakefile.
 
 After evaluating this more closely, it's indeed very good:
 
 - First time I see HTML documentation installed.
 
 - .info documentation is installed again.
 
 - Usage of DESTDIR works fine.
 
 - Unless the documentation installation process is changed drastically,
  makefile fragments in the source dir always share their hierarchy
  with the installed ones. That's how documentation.make works.
 
 - Cleaning works fine.
 
 - Build time for the whole thing almost cut in half (one run of
  configure instead of three).
 
 - About 40 lines of complicated code removed.
 
 The only minor problem not solved is, make -C Documentation distclean
 _without_ configuring previously errors out (instead of doing
 nonsense before).
 
 Patch attached. It adresses Richards concerns in comments.

Hi Markus ...  When Niels suggested setting GNUSTEP_MAKEFILES at the 
'beginning' of the makefile,   I suspect he meant that, for your special case, 
you should set it in your environment before running the makefile.

However,  I tried your patch as follows:

$ cd Documentation
$ make
../common.make:61: ../config-noarch.make: No such file or directory
/bin/sh: ../config.guess: No such file or directory
/bin/sh: ../config.sub: No such file or directory
/bin/sh: ../cpu.sh: No such file or directory
/bin/sh: ../vendor.sh: No such file or directory
/bin/sh: ../os.sh: No such file or directory
/bin/sh: ../clean_cpu.sh: No such file or directory
/bin/sh: ../clean_vendor.sh: No such file or directory
/bin/sh: ../clean_os.sh: No such file or directory
../common.make:100: .././config.make: No such file or directory
../common.make:148: ../filesystem.make: No such file or directory
../common.make:857: WARNING: Your PATH may not be set up correctly !
../common.make:858: Please try again after adding  to your path
make: *** No rule to make target `../filesystem.make'.  Stop.

Obviously it doesn't work because gnustep-make hasn't been configured yet.
You could presumably work around that issue by checking to see if the 
configuration has been completed successfuly in order to decide whether to 
define GNUSTEP_MAKEFILES tyo be ../ or not.

Alternatively, how about implementing Sebastien's good suggestion:

 For that matter, if the gnustep-make package would support
 generating and installing the documentation in one go, i.e.
 ./configure
 make
 make install   (which would go for me on OpenBSD into a fake environment)
 make install-docs  (that would use the values from configure, and also 
 install in that fake environment)

 or an install-all (installing the makefiles and the docs with one command)

That seems a great extension which won't breask any existing functionality.


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: [bug #41125] -make documentation is un-installable

2014-01-10 Thread Richard Frith-Macdonald

On 10 Jan 2014, at 08:26, Richard Frith-Macdonald 
richardfrithmacdon...@gmail.com wrote:

 
 On 9 Jan 2014, at 19:49, Markus Hitter m...@jump-ing.de wrote:
 
 Am 08.01.2014 13:11, schrieb Niels Grewe:
 In fact it’s very, very easy to switch the documentation to using the
 present (not yet installed) configuration: You just have to set
 GNUSTEP_MAKEFILES=../ at the beginning of Documentation/GNUmakefile.
 
 After evaluating this more closely, it's indeed very good:
 
 - First time I see HTML documentation installed.
 
 - .info documentation is installed again.
 
 - Usage of DESTDIR works fine.
 
 - Unless the documentation installation process is changed drastically,
 makefile fragments in the source dir always share their hierarchy
 with the installed ones. That's how documentation.make works.
 
 - Cleaning works fine.
 
 - Build time for the whole thing almost cut in half (one run of
 configure instead of three).
 
 - About 40 lines of complicated code removed.
 
 The only minor problem not solved is, make -C Documentation distclean
 _without_ configuring previously errors out (instead of doing
 nonsense before).
 
 Patch attached. It adresses Richards concerns in comments.
 
 Hi Markus ...  When Niels suggested setting GNUSTEP_MAKEFILES at the 
 'beginning' of the makefile,   I suspect he meant that, for your special 
 case, you should set it in your environment before running the makefile.
 
 However,  I tried your patch as follows:
 
 $ cd Documentation
 $ make
 ../common.make:61: ../config-noarch.make: No such file or directory
 /bin/sh: ../config.guess: No such file or directory
 /bin/sh: ../config.sub: No such file or directory
 /bin/sh: ../cpu.sh: No such file or directory
 /bin/sh: ../vendor.sh: No such file or directory
 /bin/sh: ../os.sh: No such file or directory
 /bin/sh: ../clean_cpu.sh: No such file or directory
 /bin/sh: ../clean_vendor.sh: No such file or directory
 /bin/sh: ../clean_os.sh: No such file or directory
 ../common.make:100: .././config.make: No such file or directory
 ../common.make:148: ../filesystem.make: No such file or directory
 ../common.make:857: WARNING: Your PATH may not be set up correctly !
 ../common.make:858: Please try again after adding  to your path
 make: *** No rule to make target `../filesystem.make'.  Stop.
 
 Obviously it doesn't work because gnustep-make hasn't been configured yet.
 You could presumably work around that issue by checking to see if the 
 configuration has been completed successfuly in order to decide whether to 
 define GNUSTEP_MAKEFILES tyo be ../ or not.
 
 Alternatively, how about implementing Sebastien's good suggestion:
 
 For that matter, if the gnustep-make package would support
 generating and installing the documentation in one go, i.e.
 ./configure
 make
 make install   (which would go for me on OpenBSD into a fake environment)
 make install-docs  (that would use the values from configure, and also 
 install in that fake environment)
 
 or an install-all (installing the makefiles and the docs with one command)
 
 That seems a great extension which won't breask any existing functionality.

Actually, it looks like I'll have some time today, so I'll have a go at 
implementing both changes.


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: [bug #41125] -make documentation is un-installable

2014-01-10 Thread Markus Hitter
Am 10.01.2014 09:26, schrieb Richard Frith-Macdonald:
 However,  I tried your patch as follows:
 
 $ cd Documentation
 $ make

Unbelievable!

What from ...

Am 09.01.2014 20:49, schrieb Markus Hitter:
 The only minor problem not solved is, make -C Documentation distclean
 _without_ configuring previously errors out (instead of doing
 nonsense before).

... didn't you understand?

Believe me, I'm done with this bullshit. If you insist in ignoring
everything which doesn't fit you extremely narrow mind and insist in
making things far more complex than neccessary, please continue. But
don't bother me.

Until yesterday I tried to find a way for converging some of the forks
of GNUstep. Glad to see these considerations have come to an end just
this minute. I'll join one of the forks.


Good luck for all of you!
Markus

-- 
- - - - - - - - - - - - - - - - - - -
Dipl. Ing. (FH) Markus Hitter
http://www.reprap-diy.com/
http://www.jump-ing.de/

___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: [bug #41125] -make documentation is un-installable

2014-01-10 Thread Richard Frith-Macdonald

On 10 Jan 2014, at 09:43, Richard Frith-Macdonald 
richardfrithmacdon...@gmail.com wrote:

 
 On 10 Jan 2014, at 08:26, Richard Frith-Macdonald 
 richardfrithmacdon...@gmail.com wrote:
 
 
 On 9 Jan 2014, at 19:49, Markus Hitter m...@jump-ing.de wrote:
 
 Am 08.01.2014 13:11, schrieb Niels Grewe:
 In fact it’s very, very easy to switch the documentation to using the
 present (not yet installed) configuration: You just have to set
 GNUSTEP_MAKEFILES=../ at the beginning of Documentation/GNUmakefile.
 
 After evaluating this more closely, it's indeed very good:
 
 - First time I see HTML documentation installed.
 
 - .info documentation is installed again.
 
 - Usage of DESTDIR works fine.
 
 - Unless the documentation installation process is changed drastically,
 makefile fragments in the source dir always share their hierarchy
 with the installed ones. That's how documentation.make works.
 
 - Cleaning works fine.
 
 - Build time for the whole thing almost cut in half (one run of
 configure instead of three).
 
 - About 40 lines of complicated code removed.
 
 The only minor problem not solved is, make -C Documentation distclean
 _without_ configuring previously errors out (instead of doing
 nonsense before).
 
 Patch attached. It adresses Richards concerns in comments.
 
 Hi Markus ...  When Niels suggested setting GNUSTEP_MAKEFILES at the 
 'beginning' of the makefile,   I suspect he meant that, for your special 
 case, you should set it in your environment before running the makefile.
 
 However,  I tried your patch as follows:
 
 $ cd Documentation
 $ make
 ../common.make:61: ../config-noarch.make: No such file or directory
 /bin/sh: ../config.guess: No such file or directory
 /bin/sh: ../config.sub: No such file or directory
 /bin/sh: ../cpu.sh: No such file or directory
 /bin/sh: ../vendor.sh: No such file or directory
 /bin/sh: ../os.sh: No such file or directory
 /bin/sh: ../clean_cpu.sh: No such file or directory
 /bin/sh: ../clean_vendor.sh: No such file or directory
 /bin/sh: ../clean_os.sh: No such file or directory
 ../common.make:100: .././config.make: No such file or directory
 ../common.make:148: ../filesystem.make: No such file or directory
 ../common.make:857: WARNING: Your PATH may not be set up correctly !
 ../common.make:858: Please try again after adding  to your path
 make: *** No rule to make target `../filesystem.make'.  Stop.
 
 Obviously it doesn't work because gnustep-make hasn't been configured yet.
 You could presumably work around that issue by checking to see if the 
 configuration has been completed successfuly in order to decide whether to 
 define GNUSTEP_MAKEFILES tyo be ../ or not.
 
 Alternatively, how about implementing Sebastien's good suggestion:
 
 For that matter, if the gnustep-make package would support
 generating and installing the documentation in one go, i.e.
 ./configure
 make
 make install   (which would go for me on OpenBSD into a fake 
 environment)
 make install-docs  (that would use the values from configure, and also 
 install in that fake environment)
 
 or an install-all (installing the makefiles and the docs with one command)
 
 That seems a great extension which won't breask any existing functionality.
 
 Actually, it looks like I'll have some time today, so I'll have a go at 
 implementing both changes.

And indeed, it turns out to be quite easy to:
a. fix that patch to continue to work for the vast majority of newbies who try 
to make without configure and
b. implement Sebastien's suggestions for convenient build targets for packagers

I comitted those, so you can try them out.
___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: [bug #41125] -make documentation is un-installable

2014-01-09 Thread Markus Hitter
Am 08.01.2014 13:11, schrieb Niels Grewe:
 In fact it’s very, very easy to switch the documentation to using the
 present (not yet installed) configuration: You just have to set
 GNUSTEP_MAKEFILES=../ at the beginning of Documentation/GNUmakefile.

After evaluating this more closely, it's indeed very good:

- First time I see HTML documentation installed.

- .info documentation is installed again.

- Usage of DESTDIR works fine.

- Unless the documentation installation process is changed drastically,
  makefile fragments in the source dir always share their hierarchy
  with the installed ones. That's how documentation.make works.

- Cleaning works fine.

- Build time for the whole thing almost cut in half (one run of
  configure instead of three).

- About 40 lines of complicated code removed.

The only minor problem not solved is, make -C Documentation distclean
_without_ configuring previously errors out (instead of doing
nonsense before).

Patch attached. It adresses Richards concerns in comments.


Markus

-- 
- - - - - - - - - - - - - - - - - - -
Dipl. Ing. (FH) Markus Hitter
http://www.reprap-diy.com/
http://www.jump-ing.de/
From b4bf5f3df7fec3714f26c9cc42e8cbee076607b2 Mon Sep 17 00:00:00 2001
From: Markus Hitter m...@jump-ing.de
Date: Thu, 9 Jan 2014 18:02:05 +0100
Subject: Documentation/GNUmakefile: allow installation without having make
 installed.

The approach is very simple and robust: just use the makefile fragments
in the source tree as-is. The previous one was pretty fragile and not
yet complete, anyways.

Thanks to Niels Grewe for hinting to this excellent solution.
---
 Documentation/GNUmakefile | 66 ---
 1 file changed, 11 insertions(+), 55 deletions(-)

diff --git a/Documentation/GNUmakefile b/Documentation/GNUmakefile
index 1766099..21c2ebf 100644
--- a/Documentation/GNUmakefile
+++ b/Documentation/GNUmakefile
@@ -4,63 +4,21 @@
 
 # The GNUmakefile itself is written using gnustep-make.  If we find an
 # existing gnustep-make installation, we use it.  Otherwise, we
-# configure, compile and install gnustep-make into a temporary
-# subdirectory, then we use that copy.
+# use the source tree as-is.  As all makefile fragments in the source tree
+# are placed the same way as they're installed, this works fine.
 
-# In the very unlikely event that gnustep-make does not even install
-# on your machine, please get a pre-generated copy of the
-# documentation from the internet!  Or just read the documentation in
-# source format. :-)
+# If future changes happen to introduce different behaviour between the
+# makefile fragments in the source tree and installed ones (which is not
+# a trivial change), this strategy has to be reviewed.  One possible solution
+# then is to install make into a temporary directory (DESTDIR?) first, then to
+# use these. Nevertheless it's important for packaging and cross-compiling to
+# have documentation installation work without having make installed
+# system-wide previously.
 
 ifeq ($(GNUSTEP_MAKEFILES),)
+  GNUSTEP_MAKEFILES=..
+endif
 
-# We have no gnustep-make installation to use.  We need gnustep-make
-# to generate the documentation.
-
-# To help lazy cows who want to type 'make' and have all work
-# automatically without installating gnustep-make first, if we don't
-# have a gnustep-make installation to use, we create a temporary one
-# in the subdirectory ./tmp-installation, the run make again passing
-# GNUSTEP_MAKEFILES set to point to the new makefile installation
-
-# To execute all, or clean, we first depend on a local
-# temporary installation of gnustep-make; when we have it, we source
-# GNUstep.sh, then we run the make command again.
-all regenerate: ./tmp-installation/System/Library/Makefiles
-	@echo ** Running 'make $@' using the local/temporary gnustep-make installation **
-	$(MAKE) $@ GNUSTEP_MAKEFILES=$(CURRENT_DIR)/tmp-installation/System/Library/Makefiles
-	@echo ** Finished local/temporary documentation in $(CURRENT_DIR)/tmp-installation. **
-	@echo ** Use an installed gnustep-make if you wish to install documentation. **
-
-clean: ./tmp-installation/System/Library/Makefiles
-	$(MAKE) $@ GNUSTEP_MAKEFILES=$(CURRENT_DIR)/tmp-installation/System/Library/Makefiles
-
-install:
-	@echo ** To install the documentation you first install/set-up gnustep-make **
-
-CURRENT_DIR = $(shell pwd)
-
-# This creates a local temporary installation of GNUstep-make
-./tmp-installation/System/Library/Makefiles:
-	@echo ** No gnustep-make installation found, attempting to create a local/temporary one. **
-	(mkdir tmp-build; \
-	cd tmp-build; \
-	../../configure --prefix=$(CURRENT_DIR)/tmp-installation \
-			--with-layout=gnustep \
-	--with-config-file=$(CURRENT_DIR)/tmp-installation/GNUstep.conf; \
-	make; \
-	make install)
-
-distclean:
-	-(if [ -f ./tmp-installation/System/Library/Makefiles/common.make ]; then \
-	  $(MAKE) $@ 

Re: [bug #41125] -make documentation is un-installable

2014-01-08 Thread Niels Grewe
Hi guys,

I think I finally get what Markus’ problem is. The question is rather not 
whether installing gnustep-make should implicitly install its documentation, 
the question rather is which configuration you expect the ./Documentation 
subdirectory to use. Markus expects it to use the configuration you just set 
using make’s configure script, while it in fact will use the configuration of 
the last installed version of gnustep-make. I don’t think there is a technical 
reason why we would require that behaviour, because gnustep-make is already 
configured and we know where things will be installed. In fact it’s very, very 
easy to switch the documentation to using the present (not yet installed) 
configuration: You just have to set GNUSTEP_MAKEFILES=../ at the beginning of 
Documentation/GNUmakefile.

Cheers,

Niels

Am 08.01.2014 um 06:21 schrieb Richard Frith-Macdonald 
richardfrithmacdon...@gmail.com:

 
 On 7 Jan 2014, at 21:31, Markus Hitter m...@jump-ing.de wrote:
 
 This prerequisite you talk about is a
 showstopper in some environments and does not solve the problem. If
 having showstoppers is the intention, I feel sorry for GNUstep.
 
 Please, please, calm down and try to help me here;
 
 I'm asking for information about what the problem.  Saying it's 'a 
 showstopper' means something to you, but it doesn't tell anyone else 
 anything.  We need to have it explained to us in what way it's an issue for 
 you.
 It does not seem reasonable for it to be a showstopper for anything (lots of 
 packages have dependencies, so there's no obvious reason why this should be 
 special), especially given the flexibility of location/configuratrion 
 available with the environment variables and config file... so you really 
 need to explain in some detail.
 
 It can't install the documentation because, at this
 point you haven't configured/installed gnustep-make, so the eventual
 installation location is unknown.
 
 It could, because at this point -make is actually configured, so the
 installation location and layout is defined. But it ignores each of
 --prefix, --with-layout and DESTDIR. That's what I'm talking about and
 that's what the shell snippets demonstrate.
 
 I see your point ...  you have run the configure script on gnustep-make, and 
 you expect the documentation package to use the configuration settings you 
 specified then.
 
 But the documentation package is consistent with all other packages (so the 
 concept is simple ... you install gnustep-make and then everything else in 
 gnustep is built/installed using that) ... it uses your currently selected 
 gnustep-make installation to determine where to install things.
 
 When you don't have a gnustep-make installation selected, it could guess that 
 it should build/install one based on the current config in the enclosing 
 directory,
 but it hasn't been told to do that and could well be doing the wrong thing if 
 it did ... given that you haven't installed gnustep-make it's a fair 
 assumption that you have not yet configured it as you want it.  You could add 
 support for some variation of this behavior, document it clearly (since it's 
 not the nmormal behavior), and perhaps make the build/install process prompt 
 the user to confirm that they really want to do it.
 
 
 I have another ~15 bugs similar to this one stacked.
 
 Well, [...]
 
 Please scratch that. Very apparently it's much easier to fix the bug
 than to explain somebody with commit privileges that the bug is actually
 a bug, so I'll do this next time (and keep the patch in the packaging
 patch stack).
 
 Perhaps if you supplied patches it would be clearer what you are trying to 
 achieve (often the code clarifies the explanation as well as an explanation 
 clarifying code).
 It's a shame you don't feel willing/able to take time to explain the 
 problems; I feel sure that if you did so you would find that many have simple 
 solutions, or could at least come up with solutions consistent with behavior 
 elsewhere.  We do need to be able to understand more about what you need to 
 do in order to suggest ways that you can do it.
 
 
 
 ___
 Gnustep-dev mailing list
 Gnustep-dev@gnu.org
 https://lists.gnu.org/mailman/listinfo/gnustep-dev


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: [bug #41125] -make documentation is un-installable

2014-01-08 Thread Markus Hitter
Am 08.01.2014 13:11, schrieb Niels Grewe:
 Markus expects it to use the configuration you just set using make’s
 configure script, while it in fact will use the configuration of the
 last installed version of gnustep-make.

Thank you. That's entirely the point. Because in some environments there
is no last installed version of gnustep-make.


 In fact it’s very, very easy to switch the documentation
 to using the present (not yet installed) configuration: You just have
 to set GNUSTEP_MAKEFILES=../ at the beginning of
 Documentation/GNUmakefile.

+5 for your guru level :-) I'll try this.


Markus

-- 
- - - - - - - - - - - - - - - - - - -
Dipl. Ing. (FH) Markus Hitter
http://www.reprap-diy.com/
http://www.jump-ing.de/

___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: [bug #41125] -make documentation is un-installable

2014-01-08 Thread Richard Frith-Macdonald

On 8 Jan 2014, at 12:38, Markus Hitter m...@jump-ing.de wrote:

 Am 08.01.2014 13:11, schrieb Niels Grewe:
 Markus expects it to use the configuration you just set using make’s
 configure script, while it in fact will use the configuration of the
 last installed version of gnustep-make.

I eventually got that.

 Thank you. That's entirely the point. Because in some environments there
 is no last installed version of gnustep-make.

I'd still like to know why you can't set one up?

 In fact it’s very, very easy to switch the documentation
 to using the present (not yet installed) configuration: You just have
 to set GNUSTEP_MAKEFILES=../ at the beginning of
 Documentation/GNUmakefile.
 
 +5 for your guru level :-) I'll try this.

Since defining GNUSTEP_MAKEFILES to ../ before running make is telling it that 
gnustep-make is installed in ../ this has a good chance of working perfectly.

But, if the normal install process changes the layout of files at all (ie the 
relationships between the installed files is not the same as the relationships 
between them before installation),  there might be some problems; which is why 
I  suggested installing somewhere first (eg install to ./tmp and then use that 
copy) as the current Documentation GNUmakefile does.

So the safe way to do it would be to have a script something like

configure 
export DESTDIR=./tmpinst
make install
cd Documentation
export GNUSTEP_MAKEFILES =../tmpinst/pathtomakefilesdependingonlayoutyouused
make install
unset GNUSTEP_MAKEFILES
cd ..
rm -rf ./tmpinst



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: [bug #41125] -make documentation is un-installable

2014-01-08 Thread Markus Hitter
Am 08.01.2014 14:54, schrieb Richard Frith-Macdonald:
 On 8 Jan 2014, at 12:38, Markus Hitter m...@jump-ing.de wrote:
 
 Thank you. That's entirely the point. Because in some environments
 there is no last installed version of gnustep-make.
 
 I'd still like to know why you can't set one up?

Simply set it as a given. Else you'd have to learn how cross-compilation
and/or packaging (which is pretty much cross-compilation with target ==
host) works.

 Since defining GNUSTEP_MAKEFILES to ../ before running make is
 telling it that gnustep-make is installed in ../ this has a good
 chance of working perfectly.
 
 But, if the normal install process changes the layout of files at all
 (ie the relationships between the installed files is not the same as
 the relationships between them before installation),  there might be
 some problems;

Then simply don't let this happen. -make is in full control of the
situation, code possibly bringing up the problems you describe would
have yet to be written. All we apparently need is the GNUSTEP_MAKEFILES
location and the contents _inside_ this one doesn't change with the
various filesystem layouts.


Markus

-- 
- - - - - - - - - - - - - - - - - - -
Dipl. Ing. (FH) Markus Hitter
http://www.reprap-diy.com/
http://www.jump-ing.de/

___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: [bug #41125] -make documentation is un-installable

2014-01-08 Thread Sebastian Reitenbach
 
On Wednesday, January 8, 2014 14:54 CET, Richard Frith-Macdonald 
richardfrithmacdon...@gmail.com wrote: 
 
 
 On 8 Jan 2014, at 12:38, Markus Hitter m...@jump-ing.de wrote:
 
  Am 08.01.2014 13:11, schrieb Niels Grewe:
  Markus expects it to use the configuration you just set using make’s
  configure script, while it in fact will use the configuration of the
  last installed version of gnustep-make.
 
 I eventually got that.
 
  Thank you. That's entirely the point. Because in some environments there
  is no last installed version of gnustep-make.
 
 I'd still like to know why you can't set one up?

I think this is mostly a problem packagers are facing.
For example, I create a package for gnustep-make, then install it.
But then, I'm done with it. at least on OpenBSD, there is no 
easy way, to rely on an installed version of the same package,
to build additional components out of it.

With a lot of dirty tricks, I likely could get around it, maybe use
the installed version from the fake stage in the packaging process
to generate the documentation. But that would likely end up in
something very ugly.

Since as I understand Markus has the similar/same problem
for his Debian or Ubuntu packages, I can guess others for other SO/distros
face similar problems. I don't know, Fred, aren't you experimenting
with GNUstep packages on the SUSE build server, how is it working
there for you?

For that matter, if the gnustep-make package would support
generating and installing the documentation in one go, i.e.
./configure
make
make install   (which would go for me on OpenBSD into a fake environment)
make install-docs  (that would use the values from configure, and also install 
in that fake environment)

or an install-all (installing the makefiles and the docs with one command)

hope above was not too confusing ;)

cheers,
Sebastian



 
  In fact it’s very, very easy to switch the documentation
  to using the present (not yet installed) configuration: You just have
  to set GNUSTEP_MAKEFILES=../ at the beginning of
  Documentation/GNUmakefile.
   +5 for your guru level :-) I'll try this.
 
 Since defining GNUSTEP_MAKEFILES to ../ before running make is telling it 
 that gnustep-make is installed in ../ this has a good chance of working 
 perfectly.
 
 But, if the normal install process changes the layout of files at all (ie the 
 relationships between the installed files is not the same as the 
 relationships between them before installation),  there might be some 
 problems; which is why I  suggested installing somewhere first (eg install to 
 ./tmp and then use that copy) as the current Documentation GNUmakefile does.
 
 So the safe way to do it would be to have a script something like
 
 configure 
 export DESTDIR=./tmpinst
 make install
 cd Documentation
 export GNUSTEP_MAKEFILES =../tmpinst/pathtomakefilesdependingonlayoutyouused
 make install
 unset GNUSTEP_MAKEFILES
 cd ..
 rm -rf ./tmpinst
 
 
 
 ___
 Gnustep-dev mailing list
 Gnustep-dev@gnu.org
 https://lists.gnu.org/mailman/listinfo/gnustep-dev
 
 
 
 


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: [bug #41125] -make documentation is un-installable

2014-01-08 Thread Richard Frith-Macdonald

On 8 Jan 2014, at 14:53, Markus Hitter m...@jump-ing.de wrote:

 Am 08.01.2014 14:54, schrieb Richard Frith-Macdonald:
 On 8 Jan 2014, at 12:38, Markus Hitter m...@jump-ing.de wrote:
 
 Thank you. That's entirely the point. Because in some environments
 there is no last installed version of gnustep-make.
 
 I'd still like to know why you can't set one up?
 
 Simply set it as a given. Else you'd have to learn how cross-compilation
 and/or packaging (which is pretty much cross-compilation with target ==
 host) works.

My problem with taking it as a given is that gnustep-make is designed to 
support packaging, and I read in its documentation that it supports 
cross-compilation ... so if either of those is not the case its a bug which 
should be fixed.
___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: [bug #41125] -make documentation is un-installable

2014-01-08 Thread Riccardo Mottola

Hi,

Sebastian Reitenbach wrote:

I think this is mostly a problem packagers are facing.
For example, I create a package for gnustep-make, then install it.
But then, I'm done with it. at least on OpenBSD, there is no
easy way, to rely on an installed version of the same package,
to build additional components out of it.
I don't know for OpenBSD, but I used to maintain RPMs for GNUstep. You 
must be able to rely on an installed package: e.g. you can rely on make 
or gcc as a build dependency (RPMs specify build and runtime 
dependencies).


So when installing base, you need to set gnustep-make as a dependency 
and so on.


The resulting package was a binary + dev package and of course to build, 
you ned the dev-package of the previous. GNUstep-make while bing a dev 
package was set as a dependency.


So the only difficult package for me was gnustep-make (and libobjc-1 
back then) all the rest worked more or less out of the box, chaining 
build-dependencies.


gnustep-make of course gets build in a clean environment, except basic 
dependencies. No previous installation is assumed, since it is clean.


Riccardo

___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: [bug #41125] -make documentation is un-installable

2014-01-08 Thread Richard Frith-Macdonald

On 8 Jan 2014, at 14:57, Sebastian Reitenbach sebas...@l00-bugdead-prods.de 
wrote:

 
 On Wednesday, January 8, 2014 14:54 CET, Richard Frith-Macdonald 
 richardfrithmacdon...@gmail.com wrote: 
 
 
 On 8 Jan 2014, at 12:38, Markus Hitter m...@jump-ing.de wrote:
 
 Am 08.01.2014 13:11, schrieb Niels Grewe:
 Markus expects it to use the configuration you just set using make’s
 configure script, while it in fact will use the configuration of the
 last installed version of gnustep-make.
 
 I eventually got that.
 
 Thank you. That's entirely the point. Because in some environments there
 is no last installed version of gnustep-make.
 
 I'd still like to know why you can't set one up?
 
 I think this is mostly a problem packagers are facing.
 For example, I create a package for gnustep-make, then install it.
 But then, I'm done with it. at least on OpenBSD, there is no 
 easy way, to rely on an installed version of the same package,
 to build additional components out of it.

 
 With a lot of dirty tricks, I likely could get around it, maybe use
 the installed version from the fake stage in the packaging process
 to generate the documentation. But that would likely end up in
 something very ugly.
 
 Since as I understand Markus has the similar/same problem
 for his Debian or Ubuntu packages, I can guess others for other SO/distros
 face similar problems. I don't know, Fred, aren't you experimenting
 with GNUstep packages on the SUSE build server, how is it working
 there for you?
 
 For that matter, if the gnustep-make package would support
 generating and installing the documentation in one go, i.e.
 ./configure
 make
 make install   (which would go for me on OpenBSD into a fake environment)
 make install-docs  (that would use the values from configure, and also 
 install in that fake environment)
 
 or an install-all (installing the makefiles and the docs with one command)

I'm sure you could do that quite easily ... sounds like a good idea as a 
convenience.

But even without that, my assumption about package building is that when 
packaging you basically always run a script to build/install the software in a 
location for the packaging system  to wrap up into the actual package archive 
format.
That script ought to be able to either use a pre-installed copy of gnustep-make 
(ie when you have already packaged it and then installed it, so its a 
dependency of the package you are building now) or use the copy it's packaging, 
or install a local temporary copy to use.

So, for instance, the last case you suggest (installing gnustep-make  and its 
documentsation together),  the script might do:

configure ...
export DESTDIR=...
make install
export GNUSTEP_MAKEFILES=...
cd Documentation
make install

Yes, that's three commands longer than if you had 'make install-all', but does 
it matter in a script?

So it must be here that I'm missing something ... the reason why the packaging 
process can't execute a script to build a package perhaps?  Are there package 
builders that prohibit the use of siomple scripts like this?  If so, how do 
they actually build things?


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: [bug #41125] -make documentation is un-installable

2014-01-07 Thread Markus Hitter
Am 07.01.2014 21:32, schrieb Richard Frith-Macdonald:

 To me the term 'shell snippet' means a script to be executed and I
 haven't seen you provide that.

I gave a bunch of commands which can be copy  pasted into a shell as-is.


 So, again I'm guessing a bit ... the only think I can think  of three
 of, were three examples of trying to install documentation wikthout
 having first installed gnustep-make.  But if that's what you are
 referring to, why are you asking me to 'try' them (particularly when
 I've already explained a few times that installing gnustep-make is a
 prerequisite for everything else, and build/install without
 gnustgep-make is not expected/intended to work)? Perhaps you missed
 reading one or two of my emails (or perhaps I missed one of yours)?

I'm very well capable of reading your emails and did so, but none of
them gave a satisfying answer. This prerequisite you talk about is a
showstopper in some environments and does not solve the problem. If
having showstoppers is the intention, I feel sorry for GNUstep.


 Documentation/GNUmakefile line 37ff attempts to go such a route
 without packaging, but it's buggy and/or incomplete. But I
 mentioned the latter already.
 
 I don't know what 37ff means

line 37ff = line 37 and the following lines.

 It can't install the documentation because, at this
 point you haven't configured/installed gnustep-make, so the eventual
 installation location is unknown.

It could, because at this point -make is actually configured, so the
installation location and layout is defined. But it ignores each of
--prefix, --with-layout and DESTDIR. That's what I'm talking about and
that's what the shell snippets demonstrate.


 I have another ~15 bugs similar to this one stacked.
 
 Well, [...]

Please scratch that. Very apparently it's much easier to fix the bug
than to explain somebody with commit privileges that the bug is actually
a bug, so I'll do this next time (and keep the patch in the packaging
patch stack).


Markus

-- 
- - - - - - - - - - - - - - - - - - -
Dipl. Ing. (FH) Markus Hitter
http://www.reprap-diy.com/
http://www.jump-ing.de/

___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: [bug #41125] -make documentation is un-installable

2014-01-07 Thread Markus Hitter

For those on the -dev mailing list, we're talking about this bug:

https://savannah.gnu.org/bugs/?41125#comment0


Am 07.01.2014 15:17, schrieb Richard Frith-Macdonald:

 I might guess that the issue you mean [...]

Instead of guessing I'd prefer you'd try with the shell snippets I
provided. They clearly expose unintended results in at least 3 cases.

 Perhaps I might guess that you mean, as Sebastian suggested, that you
 want documentation to be built and installed along with gnustep-make
 ... if so, that's not a (reasonable IMO) change request ... but since
 what you are asking for is a change to overall policy rather than a
 specific package, probably the mailing list makes more sense.

Weird policy which prohibits to install documentation on its own. This
prohibits not only packaging, but also cross-compilation, because in
both cases is install root != system root.

That said, what you committed earlier today into README.packaging
doesn't work. It isn't sufficient to package gnustep-make, it also has
to be installed. Setting aside debian-type packaging doesn't build by
binary package, but by source package, which makes it impossible to
install a package not yet built, Documentation/GNUmakefile line 37ff
attempts to go such a route without packaging, but it's buggy and/or
incomplete. But I mentioned the latter already.

I have another ~15 bugs similar to this one stacked.


Markus

-- 
- - - - - - - - - - - - - - - - - - -
Dipl. Ing. (FH) Markus Hitter
http://www.reprap-diy.com/
http://www.jump-ing.de/

___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: [bug #41125] -make documentation is un-installable

2014-01-07 Thread Richard Frith-Macdonald

On 7 Jan 2014, at 21:31, Markus Hitter m...@jump-ing.de wrote:

  This prerequisite you talk about is a
 showstopper in some environments and does not solve the problem. If
 having showstoppers is the intention, I feel sorry for GNUstep.

Please, please, calm down and try to help me here;

I'm asking for information about what the problem.  Saying it's 'a showstopper' 
means something to you, but it doesn't tell anyone else anything.  We need to 
have it explained to us in what way it's an issue for you.
It does not seem reasonable for it to be a showstopper for anything (lots of 
packages have dependencies, so there's no obvious reason why this should be 
special), especially given the flexibility of location/configuratrion available 
with the environment variables and config file... so you really need to explain 
in some detail.

 It can't install the documentation because, at this
 point you haven't configured/installed gnustep-make, so the eventual
 installation location is unknown.
 
 It could, because at this point -make is actually configured, so the
 installation location and layout is defined. But it ignores each of
 --prefix, --with-layout and DESTDIR. That's what I'm talking about and
 that's what the shell snippets demonstrate.

I see your point ...  you have run the configure script on gnustep-make, and 
you expect the documentation package to use the configuration settings you 
specified then.

But the documentation package is consistent with all other packages (so the 
concept is simple ... you install gnustep-make and then everything else in 
gnustep is built/installed using that) ... it uses your currently selected 
gnustep-make installation to determine where to install things.

When you don't have a gnustep-make installation selected, it could guess that 
it should build/install one based on the current config in the enclosing 
directory,
but it hasn't been told to do that and could well be doing the wrong thing if 
it did ... given that you haven't installed gnustep-make it's a fair assumption 
that you have not yet configured it as you want it.  You could add support for 
some variation of this behavior, document it clearly (since it's not the 
nmormal behavior), and perhaps make the build/install process prompt the user 
to confirm that they really want to do it.

 
 I have another ~15 bugs similar to this one stacked.
 
 Well, [...]
 
 Please scratch that. Very apparently it's much easier to fix the bug
 than to explain somebody with commit privileges that the bug is actually
 a bug, so I'll do this next time (and keep the patch in the packaging
 patch stack).

Perhaps if you supplied patches it would be clearer what you are trying to 
achieve (often the code clarifies the explanation as well as an explanation 
clarifying code).
It's a shame you don't feel willing/able to take time to explain the problems; 
I feel sure that if you did so you would find that many have simple solutions, 
or could at least come up with solutions consistent with behavior elsewhere.  
We do need to be able to understand more about what you need to do in order to 
suggest ways that you can do it.



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev