On Thu, 15 Aug 2013 16:30:49 +0200, intrigeri wrote: Picking up one point from our BoF at DebConf: > Two years git > ============= > * git packaging following upstream?? > git-import-orig --upstream-vcs-tag= makes it easy. > See debconf-discuss recent discussion, it has more details about > how this works. [abe can add that to the docs] Some thoughts on this topic: "Makes it easy" seems to be true, even if it takes a few more steps, as described on e.g. https://wiki.debian.org/CDBS+git-buildpackage git remote add upstream-repo ${upstream_git_url} git fetch upstream-repo git-import-orig --pristine-tar --sign-tags --upstream-vcs-tag=${tag} ${path-to-fetched-tarball} Nice so far; except that a simple `git-import-orig --pristine-tar --uscan' doesn't work anymore :/ (Or does it? But even then, manually specifying tag names seems like a regression in comfort to me.) Ok, next problem: Unless I'm mistaken, which might very well be the case, the "local" remotes are not pushed, so no one else will know that I added this nice upstream-repo remote. Which means, as a first step, if we want to go into this direction, that we'll need the upstream git URL somewhere in the package/repo. A possible solution might be DEP12/UMEGAYA, the spec for a debian/upstream file. http://dep.debian.net/deps/dep12 (dead right now but this works: http://anonscm.debian.org/viewvc/dep/web/deps/dep12.mdwn?view=markup ) http://wiki.debian.org/UpstreamMetadata This spec has all kinds of interesting fields, among them Repository. (And also things like Bug-Submit which we might want to use in `dpt forward-{bug,patch}. Oh, and they probably also need github support. But I digress.) Ok, so we can write a YAML file called debian/upstream which contains the repository URL for the remote. And how does the value get there? CPAN::META::Spec has a resources field with exactly this information (and other intersting stuff, like bugtracker), and all newer META.{yml,json} files actually provide it, at least in my experience. https://metacpan.org/pod/CPAN::Meta::Spec#resources So it shouldn't be too hard to get the information from META.yml in the distribution into debian/upstream (YAML) in our package. (Not only for the repository URL but also for all other mapable fields, if we're there.) I guess this could be added to dh-make-perl or dpt-package-check or somewhere else. Summary, or: not sure where this leads us to: - For "git packaging following upstream" we somehow need the upstream git URL. This seems possible if someone writes the glue code between META.yml and debian/upstream. - Then everyone has to "git remote add && git fetch" ... - Then "git-import-orig --uscan" doesn't work anymore ... - And then, the very general question: What does this buy us? At first glance, tracking upstream git sounds very sexy but what are the concrete advantages? Having all upstream commits locally is nice to step through them; adding fixes is not so trivial, at least (in my understanding) 'git cherry-pick' doesn't work as long as we are using quilt patches; and 'git format-patch' and adding the file under debian/patches is not much easier than downloading the patch from github or wherever. And now I'm kind of stuck on how to conclude this mail; I guess the message is: Tell me what you think :) Cheers, gregor -- .''`. Homepage: http://info.comodo.priv.at/ - OpenPGP key 0xBB3A68018649AA06 : :' : Debian GNU/Linux user, admin, and developer - http://www.debian.org/ `. `' Member of VIBE!AT & SPI, fellow of the Free Software Foundation Europe `- NP: Blumfeld: Anders als glücklich
Attachment:
signature.asc
Description: Digital signature