On Tue, Nov 07, 2006 at 09:52:42PM +0000, Neil Williams wrote:
> >This would mean, fleshing it out:
> >- the .dsc files for emdebs would contain just .orig.tar.gz and
> > foo-1.1em2.diff.gz, and the latter would be the merged Debian diff
> > and emdeb patches
> Presumably interdiff would be able to separate the two, should the need
Yes, or something like it.
> >- we would have some special tools for maintainers (variants of
> > svn-buildpackage and dpkg-dev tools, presumably) for pulling the
> > emdeb patch out of svn and applying it to a Debian version, and for
> > generating the patch files.
> But if we are packaging the emdebian diff's inside the ordinary
> .diff.gz (superimposed on the debian diffs), we won't need to pull down
> the patches from svn. Just getting the source (from the correct
> repository) will do the work - exactly as it does for ordinary Debian
> packages. Some packages have their debian/ data in a VCS of some kind
> but by no means all.
Correct - sounds sensible, doesn't it?
> The emdebian tools would only need to do the update. The actual changes
> made by the tools would be put into the next diff.gz.
I'm not 100% sure what you mean here, but the answer is probably yes.
> i.e. change from a pull model to a push model. Get the patches with the
> source, already applied by dpkg-source. Update the package and push the
> amended patches back to SVN for safekeeping.
> SVN becomes just storage - the patches themselves will live alongside
> the source in the repository.
> Have I missed something here? It sounds like we hardly need SVN.
You and I are both working on emdebianising foobar. I make a change
and run some command like emdebcommit (the emdebianised version of
debcommit). Then you run emdebupdate before you start editing the
package, and it synchronises it with the SVN version.
Oh, stuff. SVN works great if it can handle the real files, doing
things like conflict resolution, merging and so on. But just storing
patches in SVN loses all of that benefit. And to keep the whole thing
in SVN means having a huge SVN repository.
> > As I think about it more, I'm beginning to like this approach
> >better: it will mean that anyone can build emdebs using pretty
> >standard tools, and managing the emdeb patches - which is not part
> >of the build process per se - is the only thing which will need
> >customised tools.
> Especially as the patch process needs to be done before scripts like
> debuild and pdebuild start work because we need to patch debian/rules
> before it stars executing.
> > Julian
> So, at which point in this example, does the patch process take place?
> $ sudo apt-get install emdebian-tools
> $ apt-get source foo
> $ cd foo-1.2.3/
> $ debuild
> apt-get source will just get the Debian source and diff.gz so, a
> modified 'apt-get source' tool in emdebian tools, maybe, that uses the
> emdebian repository instead of the Debian mirrors to get the package
> (and hence gets the emdebian diff.gz which dpkg-source applies as
Correct. Or just something like apt-get -t emdebian source foo; see
apt_preferences(5) and apt-get(1) for details.
> What about:
> $ apt-get source foo=1.2.3-1em1
> Is that too subtle?
My suggestion is clearer and will get the most up-to-date version from
the correct repository. Just needs the repos. to be set up
correctly. (Sorry, don't ask me how, I don't know.)