2011/9/19 Lukáš Jirkovský <l.jirkovsky@gmail.com>:
On 18 September 2011 17:33, XeCycle <xecycle@gmail.com> wrote:
Hi, I build Emacs from git quite frequently, about twice a month or so. However the PKGBUILD from AUR rebuilds everything each time, which takes too many time I think. Perhaps Emacs is small, but I think there should be a way to prevent too many rebuilds --- is that possible?
I don't know which package you are using, but in my opinion the best approach is the following:
Look in the PKGBUILD and change "cd $srcdir/some_build_directory" (which is most likely created git clone) to a directory where the sources are downloaded (in most cases it's "$srcdir/$_gitname"). Now when you build package using makepkg, only the updated sources are rebuilt.
Generally, it's a good idea to read and understand the PKGBUILD before building. Then it's pretty simple to edit it in way which allows incremental builds.
If you would have any problems with editing this particular PKGBUILD to suit your need, you can send the it here and I (or maybe someone else) will try to help you with that.
i posted the solution i use for my AUR/internal packages awhile back, with the intention of suggesting it as a standardized way to handle this use case: http://mailman.archlinux.org/pipermail/arch-general/2011-July/021078.html ... not all that long of a thread ;-), but i'll highlight a few key benefits over locally storing repositories [in build dir], or other ad hoc solutions: ) uses a targeted fetch instead of a naive clone (for kernel IIRC you get ~50% size reduction, something like ~180MB) ) stores repositories in a known list of locations, with predictable ordering (allows for reuse between package variants) ) generates a lightweight proxy in the event a repository is found but it is read-only (allows for safe use concurrently or within a chroot [mkchrootpkg]) ... this doesn't stop emacs/etc from needing a fresh rebuild each time, but the repo will forever be intact until removed (it was unclear if the OP used `rebuild` in the sense of the software [make] or the repo [clone]) you'd need to add the routines to the target package (they are at the end of the link i provided). this package: http://aur.archlinux.org/packages/py/pyjamas-engine-pythonwebkit/PKGBUILD ... makes use of them, and serves as an example. it's not quite as "simple" or "KISS" as some may prefer, but hey, features/flexibility don't always agree with simplicity ... it's not complicated, but it's not a one-liner either. in the end it saves me a whole 'lotta time, and frankly, what else really matters? -- C Anthony