[Pkg-d-devel] dsss and libtango packages

Peter De Wachter pdewacht at gmail.com
Mon Oct 13 22:06:57 UTC 2008


[and a copy for the mailing list]

On Mon, 13 Oct 2008 01:06:10 +0200
Vincenzo Ampolo <vincenzo.ampolo at gmail.com> wrote:

> > I tried compiling your package, but it failed to build for me (on my
> > Debian/unstable system, I don't use Ubuntu). The build log is here:
> > http://walrus.rave.org/~pdewacht/dsss_0.75-0ubuntu5.log
> > I'm afraid I've got no idea on what goes wrong there.  
> 
> It was a problem with a patch i did. As you can see. dsss is composed
> by dsss itself and rebuild. Due to policy problems, i renamed rebuild
> to drebuild according with Walter Bright and Gregor Richards. To do
> this i rename it after compilation, and i did a wrong patch. I've
> solved it now.   

Ok, it builds fine now. So, let's take a closer look :)

- Your diff adds a rebuild/dsss.last file. I guess this is something
generated during the build, if so you should delete it in your clean
target so that it doesn't end up in your diff.

- lintian -Ii gives a couple of warnings. Mostly about manpages.

- The usr/bin/rerun symlink should point to drebuild instead of
rebuild. And it should probably be called drerun. Is it even needed at
all? It seems rather useless.

- You should include the upstream changelog and documentation. Just put
the name of the changelog after the dh_installchangelogs command, and
list the file names of the useful documentation in dsss.docs.

- It looks like the upstream source comes with a test suite, you should
run that during the build, if you don't already do that.

- The /usr/include files should be put in a separate -dev package. (I
assume they're not needed for ordinary dsss usage.)

- /usr/lib/dymoduleinit.d is weird. What is it, why does it go
into /usr/lib? That's almost certainly wrong. Dumping random files
in /usr/lib is not OK.

> As expected gdc on intrepid is messed up, i filled a LP bug #282400 .
> It works/compiles like a sharm on ubuntu 8.04.  

Odd, gdc-4.2 works on Debian.

> > Looked at the package a bit, I found some other things that should
> > be fixed:
> >
> > * You need to be much more detailed in the copyright file. dsss is
> > not plain GPLv2 licensed. For example:
> > - for the dmd frontend you should see the discussion in
> > Debian bug #499927  
> 
> That bug just say that gdc license is incompatible with dmd. It's all
> nonsense like Walter Bright said to me two years ago.
> I talked about this issue with Walter Bright directly and he replied:
> 
> On Wed, 2006-08-02 at 15:29 -0700, Walter Bright wrote:  
> > I don't understand. The D front end is *already* released under the
> > GPL (it is a dual license, GPL and Artistic).
> >  
> 
> Walter Bright is a very good coder and he is open to
> contributions/free software world. So licensing have never been a
> problem.  

His intentions are good, but his legalise is poor :) And for
distributors it's very important that all the legalise is clear and
unambiguous.

The basic problem is that Walter specified version 1 of the GPL, but
didn't make clear that upgrading to newer versions is permitted. And in
copyright law, if something isn't explicitly permitted by the copyright
holder, it is not allowed. So integrating that code into gcc
(GPLv2-or-higher) was not technically legal.

Though it looks like this doesn't really matter for dsss, as I can't
find any GPLv2-or-higher licensed code.

> > - the files in rebuild/util by Derek Parnell have a custom BSD-style
> > license
> > - the code by Gregor Richards seems to be MIT licensed.  
> 
> I did:
> grep -Ri copyright * on the source tree
> and wrote all the results. And it should be good.
> 
> About License, please tell me how i should  do it and i'll do it.
> Should i append other licenses in copyright file? Or is the most
> restrictive that wins?  

These two emails explain how to write proper copyright files:
http://lists.debian.org/debian-devel-announce/2003/12/msg00007.html
http://lists.debian.org/debian-devel-announce/2006/03/msg00023.html

It's an annoying job, but it's important to get right.

> > * Why is the C code compiled without optimisation?  
> 
> How can i do it using cdbs?
> I'll look for it.  

It looks like you can just override CXXFLAGS on the drebuild make
command line:
cd rebuild && $(MAKE) CXXFLAGS="$(CXXFLAGS)"
(I think cdbs initializes CXXFLAGS to a sensible default)

-- 
Peter De Wachter



More information about the Pkg-d-devel mailing list