Quoting Rob Browning <[EMAIL PROTECTED]>:

> By "voodoo magic" do you mean the old approach, the possible md5
> approach, or both?

The combination of both.

> If you mean the old approach, then I obviously don't see it to be as
> cut and dry as you do.  To be fair, the only reason the current code
> broke is because the relative timestamps for files in the debian diff
> are unpredictable, and I didn't think about that.  Of course, that
> means that *any* files mentioned in the debian patch are potentially
> trouble as far as make is concerned.  Without this problem, it would
> have been quite correct to have autofiles.diff depend on the files
> that may influence its contents (i.e. the *.dpatch files).
>
> Of course if you just mean that the .md5 approach would be "voodoo
> magic", then I'll agree that it's not completely straightforward.
> Though to the extent I've thought it through so far, I haven't come up
> with any problems.

What I don't understand is why you think that modifying configure.in
and regenerating configure cannot be considered as part of a
regular dpatch. Or maybe am I missing something?

As an example, the amd64 port needs configure.in to be changed. I
can the see the following scenario:
- run dpatch-edit-patch
- apply changes
- run autoconf: this changes "configure"
- exit from dpatch-edit-patch

Why wouldn't this work?

Why is it better to gather all changes to the configure script in
a single separate dpatch rather than spreading all changes along
with the patch it belongs to?

> In any case, even if we go with the "only update when requested"
> dpatch-edit-patch approach that I think you're advocating, I'd still
> want a target for it so we can just invoke that when needed,
> i.e. something (only very roughly) like this:
>
>   update-autofiles-diff:
>           # rm aclocal.m4 so it doesn't confuse newer autoconfs, but touch it
>           # so ./Makefile won't be upset if it's not recreated (b/c not
> needed).
>           (dpatch-edit-patch ... autofiles.dpatch
>            && cd DPATCHDIR \
>            && rm -f aclocal.m4 \
>            && touch aclocal.m4 \
>            && aclocal \
>            && autoconf
>            && exit)
>
> (...which is really not that much different than what we're already
> doing, but I'll agree that handling everything with dpatch would be a
> bit cleaner, and if it works right, then I'm fine with that.)

It would be kind of better, yes.

> So it seems like the *only* thing we're in potential disagreement
> about is whether we should automatically invoke this target *iff*
> there's a solid way to automatically determine when doing so would be
> appropriate.

I think so.

> > IMO, creating a whole copy of the tree and diffing at build-time is
> > not worth the effort. You have the final word, anyway :P
>
> It's not only not worth the effort, but it should never have happened
> under normal circumstances.  As I mentioned, the only reason it did in
> this case was because I didn't consider the problem presented by the
> timestamps of files in the debian diff and so came up with a broken
> solution.

I almost all cases, changes to 'configure.in' only change 'configure'.
In the remaining cases, changes only happen in the toplevel of the
tree. I don't think it is unreasonnable to avoid duplicating the
whole tree, isn't it?

> The way things were intended to work, the autofiles.diff should only
> have been re-built if you changed a relevant file (i.e. *.dpatch), or
> if you manually requested a rebuild during "prepare-release".

I understood that.

--
Jérôme Marant

Reply via email to