On 05/07/2014 11:55, Karanbir Singh wrote:
On 07/03/2014 03:15 PM, Dennis Gilmore wrote:
>> For example, when using the default URL path rpkg attempts to
>> download the following file:
>>
https://git.centos.org/sources/a2ps/SOURCES/a2ps-4.14.tar.gz/365abbbe4b71...
>> The path I wish to set for rpkg to use is:
>>
https://git.centos.org/sources/a2ps/c7/365abbbe4b7128bf70dad16d06e23c5701...
> ewww, seriously eww. the tooling would need to rename the file it gets
> to the name in the spec file. this I think doesn't belong in rpkg,
yes, so rather than using a curl -O, you get to give it a name to write
to - a name that maps to sanity in the source repos, and does the sha
validation without needing to waste time doing it down the road, and a
process that allows far better and more effecient duplication checks on
the cache side.
tell me why we'd want to change to lose all that functionality ? I'm
getting assurance on code retreval to match code checkin, for free.
> whatever tooling centos people come up with will have to replace rpkgs
> function with its own version. I would strongly advocate for centos to
> rethink how they are doing it and follow the standard convention.
'standard convention'... which is exactly what ?
I think Dennis is (in general) meaning the dist-git layout that Fedora
uses, and fedpkg is designed for. My undertstanding of the history is
that Jesse Keating's design for dist-git was inspired by the dist-cvs
scheme that Fedora inherited from Red Hat's internal systems when Fedora
Core moved out from inside Red Hat's firewall. In turn, I think Jesse
then did a very similar conversion inside Red Hat, moving them from
their CVS system to a git system based on Fedora's. I've gotten the
impression that Red Hat has their own tool internally that, like fedpkg
and centpkg, is a layer over rpkg (I'm guessing that's why rpkg exists
at all).
CentOS' scheme is conceptually similar (git repo per package, git
branches for each OS release, specs, patches etc in git, tarballs and
whatnot in a lookaside cache), but the details are a bit different. For
example, Fedora's lookaside cache URL scheme is:
http://pkgs.fedoraproject.org/repo/pkgs/<package
name>/<filename>/<md5sum>/<filename>
A quick bit of a think doesn't turn up any major differences between the
two schemes, other than Fedora's uses the real filename, so doesn't
require the file to be renaming during download, so to speak. Oh, and
being newer, CentOS is using SHA rather than MD5, but I'm not sure the
hash collision issue is that great.
I had a bit of a chat with Jim Perrin in the last couple of weeks and
asked why CentOS wasn't using the dist-git scheme (and getting all the
existing Fedora tooling for free). He pointed out that the CentOS
scheme already existed, and CentOS was being consistant with itself.
That's fair enough, really. Changing your own tooling would not doubt
be a pain at this point, and making everyone else already consuming
git.centos.org's contents change too probably wouldn't go down too well.
Fortunately, the split between the rpkg core and the <vendor>pkg wrapper
means that replacing various rpkg core methods is fairly simple, based
on my recollection of looking at the code in the past (when implementing
another <vendor>pkg wrapper).
--
HJ