Note: This website is archived. For up-to-date information about D projects and development, please visit wiki.dlang.org.

Welcome to DDebber

This project is geared towards developing a program that will build a .deb file from a zip file downloaded from Digital Mars. Several attempts have been made to provide .deb files but they have one major flaw, no one maintains it. I want to make it easy to create up-to-date packages so it is more likely to happen and anyone can pick it up when someone falls off the planet.

Status

Version 1.07 is available for download.

The available code is able to generate a Debian package for AMD64 and i386. It also uses a configurations directory to hold run-time configuration.

Goals

The goal is to give this program to Walter so he is able to build .deb packages and host them on digitalmars.com

If things go well I also intend to build packages for Tango, Descent, DWT, DSSS, Derelic, and anything else that I get to.

At some point getting a repository set up to host these would be good. And if this program is easy enough to use maybe Walter will host it.

This project is not limited in scope to .deb files, .rpm would also be reasonable. But I do not have any intention at this time to develop it myself. Also I don't really know how to design something like this, so I think it would be difficult to reuse my code at this time.

Requirements

To use this program it is important that you have installed a number of programs:

  • sudo aptitude install build-essential unzip wget html2text

If I missed some please add.

Compiling

Checkout the code: $ svn co http://svn.dsource.org/projects/ddebber/trunk ddebber

DMD 2.060 needs to be installed, then just type $ make

Run the program with $ ./dmddebber -d -v 2.060

Yes, I know you may need the latest compiler to build this. That is why I release a binary that should work with the latest packaged dmd.

Problems

There are a number of problems to packaging DMD and I don't know how or if other packages deal with them.

dmd.conf is the configuration file for dmd and shared by both D1.0 and D2.0. However the configuration is different for each version. This makes it very hard to configure dmd when someone installs both versions of D or even Tango.

I think I have the solution. I created an intermediate shell script between invoking dmd and passing flags to the actual program. This should allow dmd versions 1 and 2 along with tango to be installed together. I have also made the versions more specific, but it is not recommended to install multiple minor versions togther because of libphobos.

I suppose the correct solution is to say that the versions conflict and that Tango conflicts with Phobos. I wish to avoid this and will try to convince Walter to fix dmd.conf

I think if I can remove the conflict between D1.0 and D2.0 I can have a conflict between Tango-1 and Phobos-1. And most people would be happy.