Closed treinen closed 5 years ago
Note that using Dune for the Debian build would solve that.
Do you mean that src/Makefile could be replaced by one that just calls dune? That would probably be an improvement for lablgtk in general since the Makefile is quite complex.
I think so, of course OMMV, but using a more uniform build system for Debian Ocaml could help; I'll try to finish the Dune port this week [just missing a few extra packages] and we can see.
In fact you don't need to replace the makefile, you could just call dune build
from the Dunerized Debian setup, and skip the makefile altogether which could be useful for some other platforms. [As I don't have the means to test them]
I dont want to use for debian a completely different build-system than upstream. if the current makefile can be replaced by dune then it is up to upstream to take that decision.
I think the plan is to have both systems upstream, so Debian would be free to choose.
This error came from a wrong use of the --libdir option. Useful directories are created by the Makefile.
There was no --libdir option in the example invocation in the initial bug report.
The Makefile does not always create all useful directories. The problem is that the touch command does not create missing path components. This patch fixes that: lablgtk3-makefile-patch.txt
OK, I will apply your patch, but it's still confusing: there is only one ld.conf file, which should be in stublibs, and you're not supposed to overwrite it... Maybe it's just that I don't understand well how findlib works.
Note that your error is still strange: I don't see why your ld.conf would reside is /usr/lib/ocaml, whereas the real ocaml is in /usr/local/lib. There is supposed to be one ocaml ld.conf file by version of ocaml.
patch applied to master and lablgtk3, commits cc0e08ef and 5c9341d
Thanks.
In fact it is your makefile that directly touches ocaml.ld.conf, and that could fail when DESTDIR is set. I was just fixing this. Besides I don't know either whether that file is useful when installing stuff using findlib.
Concerning /usr/local: When ocaml is installed by the operating system (this includes in particular installation via some distribution, like debian) then it goes into /usr/{lib,bin,...} and not into /usr/local. The operating system is not supposed to install stuff in /usr/local, as stated by the File Hierarchy Standard. /usr/local is for the sysadmin to install additional stuff.
"make install: should create missing directories (usr/lib etc.). This is important when using a nonempty value for DESTDIR since then one cannot assume any already existing directories. Packagers from software distributions use this to install into an empty staging directory.
For instance :
Here the problem is that /home/treinen/usr/lib does not exist (not the missing "local")