[pacman-dev] About makepkg dlagents
Allan McRae
allan at archlinux.org
Mon Oct 26 03:16:20 EDT 2009
Ciprian Dorin, Craciun wrote:
> About download-agents for makepkg. (This is why I've bothered the
> developers of pacman this morning with compilation issues... :))
>
> So I wanted to be able to make PKGBUILD and makepkg extract
> sources for Git repositories. And after asking on the arch-general, I
> was pointed to the following bug:
> http://bugs.archlinux.org/task/7816
>
> As a consequence I've started hacking and commed up with the
> following patches (put at the end). (I've ended up with four pathes
> from git format-patch... Should I put only the diff between maint
> branch and my branch?)
>
> Also below is the description on the bug-tracker:
>
> ~~~~
> I've made some hacking staring from pacman Git repository. My work is
> available at (branch patches/git-dlagent):
> http://gitorious.org/~ciprian.craciun/pacman/ciprian-craciun-patches
>
> In summary:
> * added a script: /usr/bin/git-dlagent that takes exactly two
> arguments: URL and output.
> * updated /etc/makepkg.conf to include the following URL's: git://,
> git+file://, git+http://, git+https://, git+ssh://, git+rsync;
>
<snip>
Hi,
Thanks for tackling this. There are some interesting ideas in your patch.
From my point of view, this is far too complex for inclusion into
makepkg. The addition of six new download URLs to makepkg (and that is
just for git and not cvs,svn,hg,...) and requiring a download script
just seems overboard.
Taking a look at git PKGBUILDs on the AUR and the git prototype
distributed with the Arch from the ABS package, what is really wanted is
to reduce this:
--start--
_gitroot="GITURL"
_gitname="MODENAME"
build() {
cd "$srcdir"
msg "Connecting to GIT server...."
if [ -d $_gitname ] ; then
cd $_gitname && git pull origin
msg "The local files are updated."
else
git clone $_gitroot
fi
msg "GIT checkout done or server timeout"
msg "Starting make..."
rm -rf "$srcdir/$_gitname-build"
git clone "$srcdir/$_gitname" "$srcdir/$_gitname-build"
cd "$srcdir/$_gitname-build"
--end--
with a "source=(git...)" line. I'm sure that you have covered some edge
cases that can not be handled very easily in this fashion and I see some
added functionality in your changes. However, I am not sure we need
that complexity in 99% of use cases.
Your patch has pointed out some interesting issues. Especially the
issue of checksums and how they are handled when the source is not a
real source file.
Allan
More information about the pacman-dev
mailing list