On Sat, Aug 25, 2012 at 01:36:41PM -0400, Luke Shumaker wrote:
A while ago I started working on a derivative of makepkg to support having 'git://...' type urls in the sources=() array. When preparing to file this patch, I did a `git rebase`, and noticed that Allan McRae began working on a similar feature. Our implementations are in many ways similar. Hopefully mine will be useful.
An interesting approach. As you've noticed, I think we're fairly committed to the implementation that Allan has provided. If you have specific concerns, maybe we can work to fix those.
My implementation makes minimal changes to makepkg itself (only adding blob expansion to DLAGENTS, allowing for things like "git+*::""). Instead I added a `vcsget` tool which generates a tarball from the VCS repo, in a very similar manner to the way Allan's implementation does so within makepkg.
I'm not thrilled with the shell I saw in that patch -- there's extensive use of external commands when simple bash features would have sufficed.
It looks as if Allan's download_*() functions are more verbose than mine about what failed when there is an error. His svn and hg handlers are likely more robust--though my git is pretty solid. I also have a half-written handler for for bzr.
An advantage of my design is that it does allow for integrity checks of VCS packages, rather than inserting 'SKIP' into the md5sums array. This is very important to the derivative distribution Parabola. (However, the 'SKIP' option is still valuable for URLs that track a branch)
I don't see this as an advantage so much as a duplication. The backing VCS takes care of integrity checks. They're only necessary with tarballs because there is no "builtin" checksum to reference.
Happy hacking, ~ Luke Shumaker
Luke Shumaker (3): Add a `vcsget` tool to download source from VCS repositories. makepkg: do glob expansion in DLAGENTS maps makepkg.conf: add vcsget DLAGENTS
etc/makepkg.conf.in | 8 +- scripts/.gitignore | 1 + scripts/Makefile.am | 4 +- scripts/makepkg.sh.in | 13 ++- scripts/vcsget.sh.in | 294 ++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 316 insertions(+), 4 deletions(-) create mode 100644 scripts/vcsget.sh.in
-- 1.7.12