From: Brian Harring <ferringb@gmail.com>
To: gentoo-portage-dev@lists.gentoo.org
Subject: Re: [gentoo-portage-dev] Package compression header for binhosts
Date: Tue, 1 Jun 2010 14:22:33 -0700 [thread overview]
Message-ID: <AANLkTindg00VxUmyciXXkcADXCnwYiQuY9NX40l3uOmo@mail.gmail.com> (raw)
In-Reply-To: <1275422465.24611.9.camel@hangover>
[-- Attachment #1: Type: text/plain, Size: 3631 bytes --]
On Tue, Jun 1, 2010 at 1:01 PM, Ned Ludd <solar@gentoo.org> wrote:
> On Mon, 2010-05-31 at 22:16 -0700, Brian Harring wrote:
> > On Mon, May 31, 2010 at 08:32:34PM -0700, Zac Medico wrote:
> > > Hi,
> > >
> > > In order to support alternative compression types for binhost
> > > packages, I was thinking about adding support for a header field in
> > > the Packages index file. For example, a header line like
> > > "PACKAGE_EXTENSION: txz" could be used to indicate that clients
> > > should download files with txz extensions instead of tbz2
> > > extensions. I'm planning to add support for both tgz [1] and txz
> > > extensions.
> > >
> > > [1] http://bugs.gentoo.org/show_bug.cgi?id=142579
> >
> > 1) requires a version header bump
>
> Agreed. But there were some other pending changes for "VERSION: 1"
>
> Any planned changes to the format should be documented on
> https://bugs.gentoo.org/show_bug.cgi?id=263994
>
>
> > 2) a header alone isn't useful unless it's specifiable per cpv entry;
> > thus it must be inheritable
>
> Per CPV entries is going to bloat the format and make me carry around a
> more data on a per pkg basis then I'd want to. How about we run with
> zac's idea but use tools to convert a full repo over to $EXTENTION
> This should keep the portage code fast as well as it checks for invalid
> binpkgs all the time. Having to have portage process a ton of ever
> growing extentions is just going to be slow.
>
Note I said 'inheritable'; one of the main flaws w/ version 0 is that it
requires quite a few entries per CPV, instead of setting a default in the
preamble and then overriding as needed at the CPV level.
What I'm suggesting is a COMPRESSOR in the preamble, and individual cpv's
override it if they're not that compressor.
As for zacs tool to try and generate new views of a repository via
hardlinking/recreating the tree... frankly it's a bit of a hack. Via
DEFAULT_URI and relying on the hash, you can make a stable repository that
is able to be updated in place without corrupting ongoing downloads- simply
put, new additions to the repo don't perturb current DL's since the md5 is
the same (hash collision chance is low enough that I don't care about it
here).
> > 3) PACKAGE_EXTENSION is overly verbose and unclear it's specifying
> > the compressor too; it's intention is for compression, state it as
> > such (I mention this in light of URI's existance where
> > PACKAGE_EXTENSION would only be a hint of compressor)
> >
> > Re: #1, there is a decent set of optimizations I'm kicking around in
> > pkgcore for the next version- a discussion should probably be started
> > there.
> >
> > Offhand, having a compression specific header (a simple enumeration
> > of known compressors) and a DEFAULT_URI that is python string
>
> No go bro. The 'Packages' format should be independent of python.
>
> > interpolation assembled (for example,
> > DEFAULT_URI="%(host)s/%(category)s/%(pf)s.txz") seems wiser. Via
> > doing what I'm suggesting, it would be possible to do binpkg
> > repository 'views' w/out having to map each binpkg into the url space
> > for it.
>
Then come up w/ an alternative w/ the same power as DEFAULT_URI that isn't
python specific; think through the potentials of it, I could very easily
centralize the binpkgs for an arch, use the hash as they're lookup value,
then use the Packages cache as a 'view' into that binpkg repository.
Differing use flag combinations, differing license views, hell, differing
ACCEPT_KEYWORDS, all of that can have the raw pkgs stored centrally while
just providing differing views into it- DEFAULT_URI lays the groundwork for
it.
[-- Attachment #2: Type: text/html, Size: 4848 bytes --]
next prev parent reply other threads:[~2010-06-01 21:23 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-01 3:32 [gentoo-portage-dev] Package compression header for binhosts Zac Medico
2010-06-01 5:16 ` Brian Harring
2010-06-01 20:01 ` Ned Ludd
2010-06-01 21:22 ` Brian Harring [this message]
2010-06-01 21:37 ` Zac Medico
2010-06-01 21:52 ` Brian Harring
2010-06-01 23:53 ` Zac Medico
2010-06-02 3:42 ` Brian Harring
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=AANLkTindg00VxUmyciXXkcADXCnwYiQuY9NX40l3uOmo@mail.gmail.com \
--to=ferringb@gmail.com \
--cc=gentoo-portage-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox