On Fri, 2011-08-12 at 14:35:58 +0200, Raphael Hertzog wrote:
> On Fri, 12 Aug 2011, Guillem Jover wrote:
> > In addition such an interface cannot be expected to be used realiably
> > by maintainers for all builds of their packages on buildds and
> > similar or user systems, as it needs an additional setup step.
> 
> It's definitely not meant for maintainers... but it can be very useful
> for derivatives distributions.

Sure, was just mentioning to explicitly point out where that interface
is not that useful. And in the particular Fink case were you brought up
this bug report, I don't see why this is needed at all. They have their
own build recipes, the users are building those on their own system a
la Gentoo, so they'd need to use the “maintainer way”. In this case
dpkg-deb is being called from Fink itself, so instead of modifying Fink
to set the environment and calling some external script, they might as
well just hook whatever they need to do directly into Fink itself.

> I believe Ubuntu is doing stuff like
> this with their pkgbinarymangler: for instance moving .mo files in
> their language packs.

I've always thought that was a hack, but not just the implementation,
the whole concept of modifying externally (to the packaging) the
binary packages during the build process. I think what they are trying
to fix should be fixed elsewhere, but of course this is the easiest
way.

It also makes their packages more tricky to reproduce as you need
more environment (and packages) setup/installed to get there.

> This precise wishlist is also a follow up of a discussion with a Maemo
> developer who was looking for something similar.
> 
> It could also be useful for Emdebian to strip documentation at build time,
> etc.

In any case I'm not denying it could be useful, just that not all
useful things are correct things to implement.

> > At the point the build needs the builder to setup the environment
> > variable, other more standard options can be used instead, like
> > placing a wrapper in /usr/local/bin/dpkg-deb, dpkg-divert'ing,
> > etc.
> 
> All those options need to implement the same option parsing logic than
> dpkg-deb. While it's probably not hard, it's also busy work that can be
> easily avoided.

Just checking for -b/--build (being second or third to last argument)
and validating the arguments should be enough I'd say, and that should
be minor compared to any mangling or action the “hook” would be doing,
I don't see how that can be called busy work, it's not something you
have to do every day anyway, or commonly really.

> I don't really see what's bad with this wishlist. If the environment
> variable is not good, we can certainly consider a command line option
> with a new /etc/dpkg/dpkg-deb.conf{,.d}. That would be cleaner indeed
> as it allows to have several scripts invoked in the hook just like
> dpkg --pre-invoke/--post-invoke.

Heh, I also had a paragraph about configuration files being something
that dpkg-deb should not really have at all. For the same reason you'd
not request a configuration file for something like gzip or cp.

The difference between dpkg and dpkg-deb, and why one has
configuration files and command hook support, is that the former has
state and when you perform actions they are persistent, dpkg-deb works
on different “state” every time, and as such is ephemeral.

> (With the configuration file, it would also make it dead easy for a
> derived distribution to use xz compression by default everywhere.)

I think I've mentioned this before, but the correct solution for a
derivative wanting to change the default compression method would be
to add a configure time switch for that.

> Would the command-line option + config file approach be more acceptable to
> you? I believe it's important to provide a clean way for others to do that
> kind of customizations.

So while I think cattering for derivatives' needs or for that matter any
users external to Debian is important, and I think I'm always open and
have those in mind, that does not mean anything they request or that
might directly map to what they are currently doing should be accepted,
sometimes there might be better ways to implement things, that might
even benefit others, etc. Some others the correct way is just to modify
every an each package, but that's a general downside/weakness (or an
advantage depending on the situation!) of the “design” of how we handle
our source packages. Compare with the explicitly designed centralized
nature of for example ebuilds, rpm spec files or BSD ports. Trying to
bolt in the same concept on how things are done in the .deb world
seems like a forced afterthough to me.

But I guess the main contention here is that I disagree this is a
“customization” that should be allowed at this level, the usage
patterns for it seems like hacks, and as such I'd rather keep them
explicitly as what they are, which something like a wrapper does.

regards,
guillem



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to