[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: debmake and dh-make



> | I'd suggest $EDITOR, as dh_make does not handle all cases well, and
> | it is way too easy to leave silly buglets in.
> | 
> | (Of course, a combination of dh_make and $EDITOR is a viable
> | compromise :)
> 
> In every case, I'll have to run lintian (debuild do it automatically,
> isn't it?) to check the package.

lintian will not catch everything. For example, lets suppose you have
a package that does not use autoconf. Older dh_make versions put a
configure target in debian/rules, newer ones may automatically disable
it (to be honest, I did not check it lately). Anyway, the effect is
something like this:

config.status: configure
	# Add here commands to configure the package
	# ./configure --prefix=/usr --mandir=/usr/share/man

Now, you do not need it, yet it is there. Not a big thing, but still,
it is ugly. Like this one too:

build: build-stamp
build-stamp: config.status
	# Add here commands to build the package
	${MAKE}
	touch build-stamp

There are multiple things I do not like about this: first, the "# Add
here" thing is usually left there, not good: the commands are already
there - supposedly - so the comment is out-of-date. The second, which
is not really a cosmetic issue: the stamp file.

If you're building a package over and over, using debian/rules build
(because that adds some extra CFLAGS or the like, so it is more than a
simple make invocation), and change the source inbetween the runs, the
source will not get rebuilt, because of the stamp file. This basically
kills the purpose of make. Granted, for larger packages and certain
other tasks, stamp-files are close to essential, but for many of the
stuff packaged for Debian, they are not. I was bitten by this many
times: I was trying to fix a bug, or apply a local modification,
foobared the code, tried to recompile, yet it didn't. Sucks.

When you use dh_make, or any other template system, it is way more
likely that this kind of shortcomings will remain in there.

I'm not advocating against dh_make, if someone likes it, use it. But
special attention should be paid to its output, NOT only trusting
lintian/linda, for that is not enough. (Hence the comment in my
original post about dh_make + $EDITOR)

Attachment: pgpP_yCzRoyyj.pgp
Description: PGP signature


Reply to: