installer icon indicating copy to clipboard operation
installer copied to clipboard

dmd .zip file download and posix.mak install targets lack usability

Open dlangBugzillaToGithub opened this issue 11 years ago • 0 comments

Marco Leise (@mleise) reported this on 2014-08-28T00:20:50Z

Transferred from https://issues.dlang.org/show_bug.cgi?id=13386

CC List

  • RazvanN

Description

I've been using the bundled dmd, druntime and Phobos sources and documentation from the .zip file download on dlang.org for the past couple of years. The expectation for a Linux source archive is usually that you can run:

./configure && make
sudo make install

and the package is installed to the system's default locations (or a user defined prefix other than /usr). But this package is making it particularly hard. Quite a few things don't seem to match up at the seems between the 3 included posix.mak files:

1) druntime installs imports to /import, Phobos installs them to /src/phobos. The Ubuntu package respectively uses /include/dmd/druntime/import and /include/dmd/phobos. In any case the imports should not be placed in new root directories, and a /include sub-directory is the obvious choice.

2) The druntime & Phobos posix.mak will by default look for dmd in ../dmd/src/dmd, but it wont be there with the present directory structure, but in ../dmd/dmd.

3) The dmd posix.mak runs `cp ../ini/$(OS)/$(bin_dir)/dmd.conf $(INSTALL_DIR)/$(OS)/$(bin_dir)/dmd.conf'. But there is no ../ini folder with OS specific dmd.conf presets in the .zip.

4) The dmd binary installation path `$(INSTALL_DIR)/$(OS)/$(bin_dir)' is tailored towards creation of multi-OS bundles instead of the current OS. In case of GNU Linux, the correct procedure is described here: https://www.gnu.org/prep/standards/html_node/DESTDIR.html

5) The druntime and Phobos library paths are also affected by the above. E.g. they should be installed to $(DESTDIR)$(libdir)/. Right now the former is installed to $(INSTALL_DIR)/lib and the latter to $(INSTALL_DIR)/$(OS)/lib$(MODEL).

6) Concerning SONAMEs: According to http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html, we should add another symlink called libphobos2.so.0.66, which would be the "fully-qualified soname" opposed to the "realname" (including non-breaking bug fix revisions) and "linker name" (no version). Is there a reason we don't have that soname symlink?

dlangBugzillaToGithub avatar Aug 28 '14 00:08 dlangBugzillaToGithub