[pacman-dev] [PATCH 0/3] makepkg: Alternate implementation of VCS URLs in sources array.

Dave Reisner 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
> 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

More information about the pacman-dev mailing list