Thread overview
D Shared Software System version 0.2 released!
Nov 15, 2006
Gregor Richards
Nov 15, 2006
Georg Wrede
Nov 15, 2006
John Reimer
Nov 15, 2006
Gregor Richards
Nov 16, 2006
Pragma
Nov 15, 2006
Jesse Phillips
Nov 15, 2006
Gregor Richards
Nov 16, 2006
BCS
November 15, 2006
I have just released version 0.2 of DSSS, the D Shared Software System. I've added support for mirrors since 0.1, though the actual mirror infrastructure isn't in place yet.

Since DSSS 0.1 distribution had some issues, I'll mention again that part of DSSS' purpose is to be an analogue to Perl's CPAN or Ruby's Gems.

DSSS is available from http://www.dsource.org/projects/dsss .

NOTE: Due to some changes in DSSS conf files (and specifically DSSS' dsss.conf), you can't use dsss net to update from DSSS version 0.1 to version 0.2

Here's everything you need to know:


The D Shared Software System
----------------------------

DSSS, the D Shared Software System, is a tool to ease the building,
installation, configuration and acquisition of D software.


Building
--------

There are plenty of tools for building D software. There's bud (previously
build), upon which DSSS is based, the antiquated make, and a plethora of other
tools capable of building D software. DSSS intends to be more generally useful
than any of them.

 * DSSS eliminates the need to keep lists of source files, figuring them all
   out by imports in source. It will even link in the proper libraries
   automatically.
 * DSSS can transparently build libraries from any D package.
 * DSSS automatically generates .di (D import) files for libraries which cause
   code using the library to link it in automatically.
 * Since DSSS uses bud, DSSS has all of bud's features as well.
 * DSSS can automatically choose names for libraries generated from D packages
   which will not conflict with libraries from other sources, or incompatible
   compilers. So you do not need to concern yourself with library names.


Installation
------------

As compared to building software, there are few tools capable of installing D
software well.

 * DSSS maintains a centralized repository of installed software, such that you
   can use it in your software trivially. .di files and library files are all
   managed by DSSS, as part of its effort to make imports map to library files
   automatically.
 * DSSS keeps track of all of the software that has been installed through
   DSSS, so any of it can be uninstalled easily.


Configuration
-------------

DSSS' build configuration file (dsss.conf) allows full use of version
statements from D. So, you can fine-tune your software to build precisely what
is necessary for the host system.


Acquisition
-----------

In the spirit of Perl's CPAN or Ruby's Gems, DSSS has a central repository of
sources for D software. It maintains a list of software packages available,
where they can be acquired, and what packages/modules they provide. Because it
maintains a list of packages and modules, dependencies for a tool can be
installed as easily as:
$ dsss net deps

DSSS will then trace all of the software's D dependencies and install them.
This feature can of course also be used to install arbitrary software, such as:
$ dsss net install mango

Upon either of these commands, DSSS will download the software from its
upstream source, compile it, and install it.


More Information
----------------

DSSS is available from http://www.dsource.org/projects/dsss . It is FOSS
(Free/Open Source Software) under a very permissive license. Its development
code base is maintained in subversion and can be checked out from the following
URL:
http://svn.dsource.org/projects/dsss/trunk


DSSS has been tested and is known to work with GDC on Posix systems, and with DMD on Windows. It has not been tested with GDC on Windows or DMD on GNU/Linux.



At present, the following software is installable via DSSS:
bcd.gen
bintod
ddbi
derelict
dirclib
dool
dsss
dstring
duit
gdc-gcc-3.4
gdc-gcc-4.0
mango
wxd


To add your own software, configure it to use DSSS (technically you don't have to, but it'd help ... ) then submit the information to me, and I'll add it.

 - Gregor Richards
November 15, 2006
Gregor, the mere idea of writing DSSS should earn you a place in the D Hall of Fame! Actually implementing it, and helping people understand the benefits (for themselves as well as for D itself) simply makes you one of the Great!


Gregor Richards wrote:
> I have just released version 0.2 of DSSS, the D Shared Software System. I've added support for mirrors since 0.1, though the actual mirror infrastructure isn't in place yet.
> 
> Since DSSS 0.1 distribution had some issues, I'll mention again that part of DSSS' purpose is to be an analogue to Perl's CPAN or Ruby's Gems.
> 
> DSSS is available from http://www.dsource.org/projects/dsss .
> 
> NOTE: Due to some changes in DSSS conf files (and specifically DSSS' dsss.conf), you can't use dsss net to update from DSSS version 0.1 to version 0.2
> 
> Here's everything you need to know:
> 
> 
> The D Shared Software System
> ----------------------------
> 
> DSSS, the D Shared Software System, is a tool to ease the building,
> installation, configuration and acquisition of D software.
> 
> 
> Building
> --------
> 
> There are plenty of tools for building D software. There's bud (previously
> build), upon which DSSS is based, the antiquated make, and a plethora of other
> tools capable of building D software. DSSS intends to be more generally useful
> than any of them.
> 
>  * DSSS eliminates the need to keep lists of source files, figuring them all
>    out by imports in source. It will even link in the proper libraries
>    automatically.
>  * DSSS can transparently build libraries from any D package.
>  * DSSS automatically generates .di (D import) files for libraries which cause
>    code using the library to link it in automatically.
>  * Since DSSS uses bud, DSSS has all of bud's features as well.
>  * DSSS can automatically choose names for libraries generated from D packages
>    which will not conflict with libraries from other sources, or incompatible
>    compilers. So you do not need to concern yourself with library names.
> 
> 
> Installation
> ------------
> 
> As compared to building software, there are few tools capable of installing D
> software well.
> 
>  * DSSS maintains a centralized repository of installed software, such that you
>    can use it in your software trivially. .di files and library files are all
>    managed by DSSS, as part of its effort to make imports map to library files
>    automatically.
>  * DSSS keeps track of all of the software that has been installed through
>    DSSS, so any of it can be uninstalled easily.
> 
> 
> Configuration
> -------------
> 
> DSSS' build configuration file (dsss.conf) allows full use of version
> statements from D. So, you can fine-tune your software to build precisely what
> is necessary for the host system.
> 
> 
> Acquisition
> -----------
> 
> In the spirit of Perl's CPAN or Ruby's Gems, DSSS has a central repository of
> sources for D software. It maintains a list of software packages available,
> where they can be acquired, and what packages/modules they provide. Because it
> maintains a list of packages and modules, dependencies for a tool can be
> installed as easily as:
> $ dsss net deps
> 
> DSSS will then trace all of the software's D dependencies and install them.
> This feature can of course also be used to install arbitrary software, such as:
> $ dsss net install mango
> 
> Upon either of these commands, DSSS will download the software from its
> upstream source, compile it, and install it.
> 
> 
> More Information
> ----------------
> 
> DSSS is available from http://www.dsource.org/projects/dsss . It is FOSS
> (Free/Open Source Software) under a very permissive license. Its development
> code base is maintained in subversion and can be checked out from the following
> URL:
> http://svn.dsource.org/projects/dsss/trunk
> 
> 
> DSSS has been tested and is known to work with GDC on Posix systems, and with DMD on Windows. It has not been tested with GDC on Windows or DMD on GNU/Linux.
> 
> 
> 
> At present, the following software is installable via DSSS:
> bcd.gen
> bintod
> ddbi
> derelict
> dirclib
> dool
> dsss
> dstring
> duit
> gdc-gcc-3.4
> gdc-gcc-4.0
> mango
> wxd
> 
> 
> To add your own software, configure it to use DSSS (technically you don't have to, but it'd help ... ) then submit the information to me, and I'll add it.
> 
>  - Gregor Richards
November 15, 2006
Just tried to install it from both the svn repo and the dsss.tar.bz2 file. I noticed the zip had the list.list file thinking that might be the problem but no luck. The error I get when I run it is.

$ ./dsss net
Error: /home/he/src/dsss.2/dsss-0.2/./inst/etc/dsss/list.list: No such
file or directory

output from the install:

$ make -fMakefile.dmd.posix
cd dsss_build && \
make -f Makefile.unix
make[1]: Entering directory `/home/he/src/dsss.2/dsss-0.2/dsss_build'
dmd -op -release -inline -ofdsss_build build.d util/pathex.d source_bn.d
util/str.d build_bn.d util/booltype.d source.d util/fdt.d util/fileex.d
util/linetoken.d util/macro.d util/file2.d
gcc build.o util/pathex.o source_bn.o util/str.o build_bn.o
util/booltype.o source.o util/fdt.o util/fileex.o util/linetoken.o
util/macro.o util/file2.o -o dsss_build -m32 -lphobos -lpthread -lm
make[1]: Leaving directory `/home/he/src/dsss.2/dsss-0.2/dsss_build'
./dsss_build/dsss_build -od. -Idsss_build sss/main.d -Tdsss
`pwd`/dsss build
Creating imports for budutil

util => budutil
+ /home/he/src/dsss.2/dsss-0.2/dsss_build/dsss_build
-I/home/he/src/dsss.2/dsss-0.2/inst/include/d
-LIBPATH=/home/he/src/dsss.2/dsss-0.2/inst/lib -LIBPATH=.  -od.
-explicit -lib -full util/fdt.d util/str.d util/macro.d util/fileex.d
util/pathex.d util/file2.d util/series.d util/booltype.d
util/linetoken.d -TlibSbudutil.a
/usr/bin/ar: creating libSbudutil.a

Creating imports for DD-sss

sss => DD-sss
+ /home/he/src/dsss.2/dsss-0.2/dsss_build/dsss_build
-I/home/he/src/dsss.2/dsss-0.2/inst/include/d
-LIBPATH=/home/he/src/dsss.2/dsss-0.2/inst/lib -LIBPATH=.  -od. -g
-Idsss_build -explicit -lib -full sss/uninstall.d sss/genconfig.d
sss/conf.d sss/install.d sss/build.d sss/clean.d -TlibSDD-sss.a
/usr/bin/ar: creating libSDD-sss.a

hcf

sss/main.d => dsss
Command: cd dsss_build
Command: make -f Makefile.unix
+ make -f Makefile.unix
make[1]: Entering directory `/home/he/src/dsss.2/dsss-0.2/dsss_build'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/he/src/dsss.2/dsss-0.2/dsss_build'
+ /home/he/src/dsss.2/dsss-0.2/dsss_build/dsss_build
-I/home/he/src/dsss.2/dsss-0.2/inst/include/d
-LIBPATH=/home/he/src/dsss.2/dsss-0.2/inst/lib -LIBPATH=.  -od. -g
-Idsss_build -LIBPATH=dsss_build sss/main.d -Tdsss

Hope this is more my error then yours.

Gregor Richards wrote:
> I have just released version 0.2 of DSSS, the D Shared Software System. I've added support for mirrors since 0.1, though the actual mirror infrastructure isn't in place yet.
> 
>  - Gregor Richards
November 15, 2006
I should probably document this somewhere properly, but:

The net feature cannot be used until you actually install dsss to some prefix.  The next step here would be:

$ ./dsss install --prefix=<your_favorite_prefix>

After that 'net' should work fine.

I think I'll actually add a check to the net.d module that spits out what you need to do if you run dsss net from a non-installed prefix :)

My apologies.

 - Gregor Richards

PS: Haven't tried it with DMD on GNU/Linux - if it works for you, please tell me :)

Jesse Phillips wrote:
> Just tried to install it from both the svn repo and the dsss.tar.bz2
> file. I noticed the zip had the list.list file thinking that might be
> the problem but no luck. The error I get when I run it is.
> 
> $ ./dsss net
> Error: /home/he/src/dsss.2/dsss-0.2/./inst/etc/dsss/list.list: No such
> file or directory
> 
> output from the install:
> 
> $ make -fMakefile.dmd.posix
> cd dsss_build && \
> make -f Makefile.unix
> make[1]: Entering directory `/home/he/src/dsss.2/dsss-0.2/dsss_build'
> dmd -op -release -inline -ofdsss_build build.d util/pathex.d source_bn.d
> util/str.d build_bn.d util/booltype.d source.d util/fdt.d util/fileex.d
> util/linetoken.d util/macro.d util/file2.d
> gcc build.o util/pathex.o source_bn.o util/str.o build_bn.o
> util/booltype.o source.o util/fdt.o util/fileex.o util/linetoken.o
> util/macro.o util/file2.o -o dsss_build -m32 -lphobos -lpthread -lm
> make[1]: Leaving directory `/home/he/src/dsss.2/dsss-0.2/dsss_build'
> ./dsss_build/dsss_build -od. -Idsss_build sss/main.d -Tdsss
> `pwd`/dsss build
> Creating imports for budutil
> 
> util => budutil
> + /home/he/src/dsss.2/dsss-0.2/dsss_build/dsss_build
> -I/home/he/src/dsss.2/dsss-0.2/inst/include/d
> -LIBPATH=/home/he/src/dsss.2/dsss-0.2/inst/lib -LIBPATH=.  -od.
> -explicit -lib -full util/fdt.d util/str.d util/macro.d util/fileex.d
> util/pathex.d util/file2.d util/series.d util/booltype.d
> util/linetoken.d -TlibSbudutil.a
> /usr/bin/ar: creating libSbudutil.a
> 
> Creating imports for DD-sss
> 
> sss => DD-sss
> + /home/he/src/dsss.2/dsss-0.2/dsss_build/dsss_build
> -I/home/he/src/dsss.2/dsss-0.2/inst/include/d
> -LIBPATH=/home/he/src/dsss.2/dsss-0.2/inst/lib -LIBPATH=.  -od. -g
> -Idsss_build -explicit -lib -full sss/uninstall.d sss/genconfig.d
> sss/conf.d sss/install.d sss/build.d sss/clean.d -TlibSDD-sss.a
> /usr/bin/ar: creating libSDD-sss.a
> 
> hcf
> 
> sss/main.d => dsss
> Command: cd dsss_build
> Command: make -f Makefile.unix
> + make -f Makefile.unix
> make[1]: Entering directory `/home/he/src/dsss.2/dsss-0.2/dsss_build'
> make[1]: Nothing to be done for `all'.
> make[1]: Leaving directory `/home/he/src/dsss.2/dsss-0.2/dsss_build'
> + /home/he/src/dsss.2/dsss-0.2/dsss_build/dsss_build
> -I/home/he/src/dsss.2/dsss-0.2/inst/include/d
> -LIBPATH=/home/he/src/dsss.2/dsss-0.2/inst/lib -LIBPATH=.  -od. -g
> -Idsss_build -LIBPATH=dsss_build sss/main.d -Tdsss
> 
> Hope this is more my error then yours.
> 
> Gregor Richards wrote:
> 
>>I have just released version 0.2 of DSSS, the D Shared Software System.
>>I've added support for mirrors since 0.1, though the actual mirror
>>infrastructure isn't in place yet.
>>
>> - Gregor Richards
November 15, 2006
On Wed, 15 Nov 2006 05:24:05 -0800, Georg Wrede <georg.wrede@nospam.org> wrote:

>
> Gregor, the mere idea of writing DSSS should earn you a place in the D Hall of Fame! Actually implementing it, and helping people understand the benefits (for themselves as well as for D itself) simply makes you one of the Great!
>
>


AHhhhH!!  Don't say that!! ... it'll go to his head!! He's already pretty full of himself! ;)


-JJR
November 15, 2006
John Reimer wrote:
> On Wed, 15 Nov 2006 05:24:05 -0800, Georg Wrede <georg.wrede@nospam.org>  wrote:
> 
>>
>> Gregor, the mere idea of writing DSSS should earn you a place in the D  Hall of Fame! Actually implementing it, and helping people understand  the benefits (for themselves as well as for D itself) simply makes you  one of the Great!
>>
>>
> 
> 
> AHhhhH!!  Don't say that!! ... it'll go to his head!! He's already pretty  full of himself! ;)
> 
> 
> -JJR

GREGOR IS BEST GREGOR DO GOOD GREGOR IS WINS BAHAHAHAHAHAAHAHAHAHAHAHAHAHAHAHAHAHHA

GREGOR DECLARE HIMSELF KING OF WORLD.


 - Gregor (The King of Everything) Richards

PS: I AM THE ONE SOVEREIGN
November 16, 2006
Gregor Richards wrote:
> I should probably document this somewhere properly, but:
> 
> The net feature cannot be used until you actually install dsss to some prefix.  The next step here would be:
> 
> $ ./dsss install --prefix=<your_favorite_prefix>
> 
> After that 'net' should work fine.
> 
> I think I'll actually add a check to the net.d module that spits out what you need to do if you run dsss net from a non-installed prefix :)
> 
> My apologies.
> 
>  - Gregor Richards
> 
> PS: Haven't tried it with DMD on GNU/Linux - if it works for you, please tell me :)
> 
> Jesse Phillips wrote:
> 


Two things:

1) What is <your_favorite_prefix>?

2) What kind of support does it have for sneaker-net?*
Is there anyway to have DSSS dump files to a disk and then have DSSS on another system install the files from the disk?

*(My main system is an off line system that isn't going go on line in the remotely near future.)
November 16, 2006
Gregor Richards wrote:
> John Reimer wrote:
>> On Wed, 15 Nov 2006 05:24:05 -0800, Georg Wrede <georg.wrede@nospam.org>  wrote:
>>
>>>
>>> Gregor, the mere idea of writing DSSS should earn you a place in the D  Hall of Fame! Actually implementing it, and helping people understand  the benefits (for themselves as well as for D itself) simply makes you  one of the Great!
>>>
>>>
>>
>>
>> AHhhhH!!  Don't say that!! ... it'll go to his head!! He's already pretty  full of himself! ;)
>>
>>
>> -JJR
> 
> GREGOR IS BEST GREGOR DO GOOD GREGOR IS WINS BAHAHAHAHAHAAHAHAHAHAHAHAHAHAHAHAHAHHA
> 
> GREGOR DECLARE HIMSELF KING OF WORLD.
> 
> 
>  - Gregor (The King of Everything) Richards
> 
> PS: I AM THE ONE SOVEREIGN

FLAGRANT POSTER ERROR
THREAD OVER = VERY YES

-- 
- EricAnderton at yahoo