www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 13386] New: dmd .zip file download and posix.mak install

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

          Issue ID: 13386
           Summary: dmd .zip file download and posix.mak install targets
                    lack usability
           Product: D
           Version: D2
          Hardware: All
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: DMD
          Assignee: nobody puremagic.com
          Reporter: Marco.Leise gmx.de

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?

--
Aug 27 2014