Unix packaging
To make install tools and packages in the Tango sphere share as much common ground as possible, this is an attempt in standardizing how and where to install. Where applicable, we will use existing standards like the Filesystem Hierarch Standard (http://www.pathname.com/fhs/).
Layout
dmd
- /etc/dmd.conf
- /usr/bin/dmd
DMD 2
- /etc/dmd2.conf
- /usr/bin/dmd2
gdc
Note that the following makes an assumption on the GCC version GDC is based on.
- /usr/bin/gdc
- /usr/bin/gdmd
- /usr/include/d/4.1.2/*
- /usr/lib/libgphobos.a
llvmdc
- TBD
dmd-tango-devel
- /etc/dmd.conf
- /usr/include/d/tango/*
- /usr/lib/libtango-base-dmd.a
- /usr/lib/libtango-user-dmd.a
gdc-tango-devel
- /usr/include/d/4.1.2/*
- /usr/lib/libgphobos.a (to be renamed to "libtango-base-gdc.a")
- /usr/lib/libgtango.a (to be renamed to "libtango-user-gdc.a")
phobos aka tangobos
Note that this document is mainly about Tango and the compilers, and Phobos will not be part of the packages downloaded from our pages. Thus we may not worry too much about Phobos as Phobos, but instead Tangobos, which then is just another user library. Since the nature of Tangobos is such that it may conflict with minor parts of Tango, we want the inclusion to be explicit via an additional -I invocation.
- /usr/include/d/tangobos
As it is though, the layout doesn't preclude Phobos from being installed, and the following paths should be used to avoid conflicts.
- /usr/include/d/phobos/*
- /usr/lib/libphobos.a
or for D 2.0 Phobos
- /usr/include/d/phobos2/*
- /usr/lib/libphobos2.a
Notes
Anders F. Björklund did some packages for dsss / rebuild, maybe also should have like "dmd-tango" and "gdc-tango" to include all necessary switches ?
Both any needed -I and -L flags, to find the installation directory, and any versions/libs like: -fversion=Tango -fversion=Posix -lgtango
In the above, an install with Tangobos would require at least 3 -I invocations, one for Tango, one for Tangobos and one for the rest. Now, this sounds a bit silly, and this is not the way it is with current Tango downloads where Tango is installed at the root ( /usr/include/d or /usr/local/include/d) in the assumption that you didn't install Phobos in the same place. Of course, when Tango is in /usr/include/d/tango then Tangobos could be at the root /usr/include/d without causing conflicts, as long as Tango's -I switch appears first on the command line.