On Thu, Dec 15, 2011 at 12:39 AM, Nirbheek Chauhan <nirbh...@gentoo.org> wrote:
> Nevertheless, the basic bug is about changing the distfile repository
> format in such a way that a single repo can contain several distfiles
> built with differing build conditions. Putting metadata in the
> filename is only one way of ensuring that.

Well, having the filename vary when the metadata changes is the only
way of ensuring that.  Putting the metadata in the filename is just
one of many ways to make the filename vary.

Another solution (which I can already sense the objections to), would
be to content-hash the files and use that as the filename.  Then use
indexes to point to the files.  You could use symlink indexes to point
to the files so that superficially it looks the same as it does now
for the last version emerged.  Then people looking for a particular
set of metadata could use more detailed indexes to find the right
file.  Portage could look for an exact match when trying to merge a
binpkg since searching indexes is a trivial problem.

The indexes could be anything from text files to binary files to
databases to a couple of directory trees full of symlinks (like
/dev/disk/by-*).  The symlinks could get tricky with all the metadata
- it might make more sense to just keep it simple and use something
more like a database for the full details and symlinks for the basics.

There are countless variations on this as well - like sticking a copy
of the environment for each package in a separate text file with the
same base name so that it is easy to grep/search/etc.

You can also make it more user-friendly by keeping the PF in the
filename followed by the hash - like gvim-1.23-r1-723ba298d92f.  In
such a case you probably don't even need to index the PFs.

Rich

Reply via email to