On Fri, 2012-04-20 at 20:51 -0700, Eric Smith wrote:
Corey Richardson wrote:
Getting source tarballs from github is a nightmare. See http://lists.fedoraproject.org/pipermail/devel/2011-February/148676.html
The debian tool doesn't help very much because one still needs revision garbage in the specfile. Is there any more recent ways to mitigate this? Perhaps we could "lobby" github to change their ways, at least partially?
I don't know if this will be of any use to you, but for tcplay there isn't a tagged release, so I use this script to create an suitable tarball from a github commit with a known hash, by doing a clone then archiving it locally. Certainly this doesn't solve the problem of not having a source URL.
#!/bin/sh # usage: tcplay-get-snapshot.sh <hash> git clone git://github.com/bwalex/tc-play ( cd tc-play && \ git archive --format=tar --prefix=tcplay-$1/ $1 \ ) | xz - >tcplay-$1.tar.xz
We could probably add something like this to the 'snippets' bit of the packaging guidelines, since github is pretty significant. Just to try and help packagers do it in a uniform and guideline-complaint way.
As a reminder for packagers following the thread - any time you have to 'generate' a source tarball like this (i.e. it is not possible to provide a Source: URL that can be expected to remain valid), you should ensure the tarball is reliably reproducible by others and include all necessary instructions to produce it, using comments in the .spec file and/or a script like Eric's - so if you wanted to use Eric's script, you should ensure you actually check the script itself into git (and probably cite it as a Source itself, so it winds up in the .src.rpm), then have a comment in the .spec file which specifies the invocation of the script that was used to generate the source tarball.