| 1 |
=== The D Shared Software System === |
|---|
| 2 |
|
|---|
| 3 |
DSSS, the D Shared Software System, is a tool to ease the building, |
|---|
| 4 |
installation, configuration and acquisition of D software. |
|---|
| 5 |
|
|---|
| 6 |
|
|---|
| 7 |
== Building == |
|---|
| 8 |
|
|---|
| 9 |
There are plenty of tools for building D software. There's bud (previously |
|---|
| 10 |
build), upon which DSSS is based, the antiquated make, and a plethora of other |
|---|
| 11 |
tools capable of building D software. DSSS intends to be more generally useful |
|---|
| 12 |
than any of them. |
|---|
| 13 |
|
|---|
| 14 |
* DSSS eliminates the need to keep lists of source files, figuring them all |
|---|
| 15 |
out by imports in source. It will even link in the proper libraries |
|---|
| 16 |
automatically. |
|---|
| 17 |
* DSSS can transparently build libraries from any D package. |
|---|
| 18 |
* DSSS automatically generates .di (D import) files for libraries which cause |
|---|
| 19 |
code using the library to link it in automatically. |
|---|
| 20 |
* DSSS is based on the build tool 'rebuild', which, like bud, has a suite |
|---|
| 21 |
of its own features which DSSS can employ. |
|---|
| 22 |
* DSSS can automatically choose names for libraries generated from D packages |
|---|
| 23 |
which will not conflict with libraries from other sources, or incompatible |
|---|
| 24 |
compilers. So you do not need to concern yourself with library names. |
|---|
| 25 |
|
|---|
| 26 |
|
|---|
| 27 |
== Installation == |
|---|
| 28 |
|
|---|
| 29 |
As compared to building software, there are few tools capable of installing D |
|---|
| 30 |
software well. |
|---|
| 31 |
|
|---|
| 32 |
* DSSS maintains a centralized repository of installed software, such that you |
|---|
| 33 |
can use it in your software trivially. .di files and library files are all |
|---|
| 34 |
managed by DSSS, as part of its effort to make imports map to library files |
|---|
| 35 |
automatically. |
|---|
| 36 |
* DSSS keeps track of all of the software that has been installed through |
|---|
| 37 |
DSSS, so any of it can be uninstalled easily. |
|---|
| 38 |
|
|---|
| 39 |
|
|---|
| 40 |
== Configuration == |
|---|
| 41 |
|
|---|
| 42 |
DSSS' build configuration file (dsss.conf) allows full use of version |
|---|
| 43 |
statements from D. So, you can fine-tune your software to build precisely what |
|---|
| 44 |
is necessary for the host system. |
|---|
| 45 |
|
|---|
| 46 |
|
|---|
| 47 |
== Acquisition == |
|---|
| 48 |
|
|---|
| 49 |
In the spirit of Perl's CPAN or Ruby's Gems, DSSS has a central repository of |
|---|
| 50 |
sources for D software. It maintains a list of software packages available, |
|---|
| 51 |
where they can be acquired, and what packages/modules they provide. Because it |
|---|
| 52 |
maintains a list of packages and modules, dependencies for a tool can be |
|---|
| 53 |
installed as easily as: |
|---|
| 54 |
$ dsss net deps |
|---|
| 55 |
|
|---|
| 56 |
DSSS will then trace all of the software's D dependencies and install them. |
|---|
| 57 |
This feature can of course also be used to install arbitrary software, such as: |
|---|
| 58 |
$ dsss net install mango |
|---|
| 59 |
|
|---|
| 60 |
Upon either of these commands, DSSS will download the software from its |
|---|
| 61 |
upstream source, compile it, and install it. |
|---|
| 62 |
|
|---|
| 63 |
|
|---|
| 64 |
== More Information == |
|---|
| 65 |
|
|---|
| 66 |
DSSS is available from http://www.dsource.org/projects/dsss . It is FOSS |
|---|
| 67 |
(Free/Open Source Software) under a very permissive license. Its development |
|---|
| 68 |
code base is maintained in subversion and can be checked out from the following |
|---|
| 69 |
URL: |
|---|
| 70 |
http://svn.dsource.org/projects/dsss/trunk |
|---|