[PATCH 0/2] Allow rpkg to use custom source metadata file and format

Howard Johnson merlin at mwob.org.uk
Sat Jul 5 12:51:49 UTC 2014


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/365abbbe4b7128bf70dad16d06e23c5701874852/SOURCES/a2ps-4.14.tar.gz
>>> The path I wish to set for rpkg to use is:
>>> https://git.centos.org/sources/a2ps/c7/365abbbe4b7128bf70dad16d06e23c5701874852
>> 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


More information about the buildsys mailing list