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

Re: DebCamp work for pkg-perl?



-=| Martín Ferrari, Mon, Jan 07, 2008 at 08:13:38AM -0200 |=-
> On Jan 7, 2008 7:32 AM, Damyan Ivanov <dmn@debian.org> wrote:
> > * revamping the build approach: discussions/prototyping/rants/cdbs vs.
> >   anti-cdbs flames
> 
> This will surely be an interesting real-life flamewar :)
> 
> Speaking of which, after Friday's marathon, I threw the makefiles and
> haven't touched them again (make is _very_ frustrating). But I'd like
> to know if anyone had the opportunity to take a look at them and has
> any opinion.

I looked at the "short and simple" one and even if I had some dislikes,
it was at least mostly readable. I've committed it in scripts/supmbs.mk
in svn as a possible exploration direction. ("simple unified perl module
build system"; better name wanted)

The current approach tries to be all-in-one, which may be a bit
overreaching. Perhaps we can provide two files for arch-indep and
arch-dep modules, and one common that is included from both.

I am also a bit worried that some properties of the makefile are
controlled by the presence of some files/dirs. I'd make it
varriable-driven. I mean - patch system used, build method (MakeMaker
vs. Module::Build). Imagine a dpatch named "series" or a quilt patch
named "00list" -- confusing for everyone. It is also common for
Module::Build-using modules to also provide Makefile.PL for backwards
compatibility.

I also dislike that dh_install* calls are driven by the presence of
debian/$pkg.* files. I just prefer to review one file (debian/rules)
instead of many. This can be avoided at the cost of some uglification by
using variables. For example

SUPMBS_DOCS := auto  # default, let dh_installdocs look for debian/docs
            := README # generates "dh_installdocs README"
SUPMBS_LINKS := <empty> # default; omit the call to dh_link

I also understand that this approach currently supports extension via
the makefile target:: syntax, which means adding to the targets, i.e.

clean::
        rm some/forgotten/file

I am not sure how to improve this (and if it is worth it):

pre-clean: # empty by default
clean: pre-clean
        # simplified. Build.PL...
        [ ! -e Makefile ] || $(MAKE) distclean

With this, one could extend pre-clean:: to put something before the
"standard" clean

Too bad that makefiles don't have user-defined functions :(

Finally, I am not sure how will this work for more complicated,
multi-binary packages. Even if it doesn't, simplifying mass-changes to
the majort part of our packages would be a huge benefit.

-- 
dam            JabberID: dam@jabber.minus273.org

Attachment: signature.asc
Description: Digital signature


Reply to: