I recently switched pkgin‘s repository from SourceForge‘s CVS to GitHub. Long story short, I heard here and there that SF was considering to drop CVS support and I found GitHub service to be more responsive and elegant. Also, I was looking for an excuse to learn git :)
Anyway, GitHub interface may be sexy, they used to have some kind of “upload” section which has been dropped. That may sound like a simple story, but the fact is when it comes to packaging a GitHub-hosted application, things are not that simple when the author has not explicitly tagged a specific release. Another use case, in which I actually am, is when you have an ongoing development, like
pkgin in pkgsrc WIP and do not want to tag every test-release.
The way I found to handle that case with pkgsrc is to use GitHub's commit archives. In short, I will use that kind of URL:
which is redirected like this by GitHub:
and permits to point to a particular commit, no matter if it has been tagged or not.
A typical pkgsrc
Makefile will look like this:
FETCH_USING= curl is mandatory here in order to follow redirect codes along with https.
There you go, happy GitHub packaging!
Here's another approach pointed out by Amitai Schlair (schmonz@):
Here, Amitai doesn't use HTTPS so specifying
curl as the fetch method is not mandatory. The dash before the URL in the
MASTER_SITES line means that
DISTNAME will not be appended when fetching, which is very handy when it comes to GitHub archives.