www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - D Shared Software System version 0.2 released!

reply Gregor Richards <Richards codu.org> writes:
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
Nov 14 2006
next sibling parent reply Georg Wrede <georg.wrede nospam.org> writes:
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

Nov 15 2006
parent reply "John Reimer" <terminal.node gmail.com> writes:
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
Nov 15 2006
parent reply Gregor Richards <Richards codu.org> writes:
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
Nov 15 2006
parent Pragma <ericanderton yahoo.removeme.com> writes:
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
Nov 16 2006
prev sibling parent reply Jesse Phillips <Jesse.K.Phillips+Digitalmars gmail.com> writes:
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

Nov 15 2006
parent reply Gregor Richards <Richards codu.org> writes:
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


Nov 15 2006
parent BCS <BCS pathlink.com> writes:
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.)
Nov 15 2006