Gentoo Logo
Gentoo Spaceship




Note: Due to technical difficulties, the Archives are currently not up to date. GMANE provides an alternative service for most mailing lists.
c.f. bug 424647
List Archive: gentoo-scm
Navigation:
Lists: gentoo-scm: < Prev By Thread Next > < Prev By Date Next >
Headers:
To: gentoo-scm@g.o
From: Nirbheek Chauhan <nirbheek.chauhan@...>
Subject: Thin Manifests for git
Date: Sun, 18 Apr 2010 18:25:02 +0530
(re-sending since I sent it using my gentoo account the first time;
but I'm subscribed with my gmail acount)

Since we're closer to completing the git migration now, I feel this
should be brought up again to discuss the best way of going about with
it.

Below is what I'm proposing; feel free to pick holes in it :)

=======
Concept:
=======
* Store only DIST checksums in Manifest for git
  - Due to the distributed nature of git, to do mischief, you need to
change every clone in the world to be successful
  - This has nothing to do with strength of the hash used by git
* Needs to be done after the move to git (see "Migration:" below)
* User's rsync-ed portage still needs full Manifests (see "How:" below)

-> Anything else that should be a part of this?

==========
Advantages:
==========
* Saves an extra step for the developer while testing
 - *edit* *manifest* *test* => *edit* *test*
* Reduces conflicts
 - Especially helpful in very active overlays where merging takes place
* Doesn't store redundant data
 - git's workflow already ensures the integrity of content due to the
distributed nature
 - No need to store checksums for files stored in the tree

-> Any other advantages?

====
How:
====
* EBUILD/MISC/AUX checksums are not stored in the git tree
 - Generate them on the rsync side before distribution
* Portage support for thin manifests
 - If Manifest contains *only* DIST checksums *and* the tree is a
dvcs tree; use only those
   + This is for local testing by devs, and overlays
   + Make emerge check if the $dvcs tree has conflicts and warn/error
out (optional)
      ~ Since we don't have file manifests, portage leaves the work
of verification to the dvcs
      ~ If the dvcs is in an uncertain state, portage should detect that
         > Might want to skip if there are performance problems
 - If Manifest contains any other checksums; old behaviour
   + Users of rsync portage will see no change

-> Anything else that needs to be done?

========
Migration:
========
* We tell all devs to move to a newer portage immediately after the
git conversion
 - Release a new version of portage much before the migration to git
with support for all this
 - All Manifests in-tree are pruned in one massive commit after the
conversion to git, and before opening the tree for dev push use.
 - Push hook to reject commits with old manifests
* Overlay users
 - Overlay users will have to move to a newer portage which supports
thin manifests
 - Need to find a way to inform users of this

-> Anything else in migration?

===========
Compatibility:
===========

* Compatible with Manifest2 (per-category manifests)
* Per-dev signed commits become obsolete since we most of the
checksums are generated during rsync conversion
 - Aim of signed commits is to stop MITM attacks on rsync mirrors
 - With Manifest2, we can sign the grouped Manifest with a "Gentoo" gpg key
   + This alleviates MITM attacks

-> Any other Manifest-related proposals this might conflict with?

======
Coding:
======
* Portage support for thin manifests
 - Most important; a release must be done atleast 1 month before the migration
 - Testing can be done with overlays
* Repoman support for thin manifests
 - Testing can be done with overlays
* Push hooks to reject old-style manifests
* Rsync-side scripts for generation of "Fat" Manifests
* Rsync-side scripts for "Gentoo" signing of Manifests (conditional)

-> Anything else that needs coding?

--
~Nirbheek Chauhan

Gentoo GNOME+Mozilla Team


Replies:
Re: Thin Manifests for git
-- Michał Górny
Navigation:
Lists: gentoo-scm: < Prev By Thread Next > < Prev By Date Next >
Previous by thread:
Status
Next by thread:
Re: Thin Manifests for git
Previous by date:
Re: Status
Next by date:
Re: Thin Manifests for git


Updated May 23, 2012

Summary: Archive of the gentoo-scm mailing list.

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.