[pacman-dev] [PATCH 0/3] makepkg: Alternate implementation of VCS URLs in sources array.
d at falconindy.com
Sat Aug 25 14:43:32 EDT 2012
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
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
More information about the pacman-dev