D issues are now tracked on GitHub. This Bugzilla instance remains as a read-only archive.
Issue 13386 - dmd .zip file download and posix.mak install targets lack usability
Summary: dmd .zip file download and posix.mak install targets lack usability
Status: NEW
Alias: None
Product: D
Classification: Unclassified
Component: installer (show other issues)
Version: D2
Hardware: All Linux
: P4 enhancement
Assignee: No Owner
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-08-28 00:20 UTC by Marco Leise
Modified: 2022-12-17 10:32 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description Marco Leise 2014-08-28 00:20:50 UTC
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?