From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from lists.gentoo.org ([140.105.134.102] helo=robin.gentoo.org) by nuthatch.gentoo.org with esmtp (Exim 4.54) id 1EnX5z-0001xN-TD for garchives@archives.gentoo.org; Sat, 17 Dec 2005 08:07:12 +0000 Received: from robin.gentoo.org (localhost [127.0.0.1]) by robin.gentoo.org (8.13.5/8.13.5) with SMTP id jBH865wu029101; Sat, 17 Dec 2005 08:06:05 GMT Received: from smtp.gentoo.org (smtp.gentoo.org [134.68.220.30]) by robin.gentoo.org (8.13.5/8.13.5) with ESMTP id jBH847sR018980 for ; Sat, 17 Dec 2005 08:04:08 GMT Received: from mta13.mail.adelphia.net ([68.168.78.44] helo=mta13.adelphia.net) by smtp.gentoo.org with esmtp (Exim 4.54) id 1EnX31-0000xz-Ar for gentoo-dev@lists.gentoo.org; Sat, 17 Dec 2005 08:04:07 +0000 Received: from [192.168.0.165] (really [68.168.137.100]) by mta13.adelphia.net (InterMail vM.6.01.05.02 201-2131-123-102-20050715) with ESMTP id <20051217080406.YZWC26442.mta13.adelphia.net@[192.168.0.165]> for ; Sat, 17 Dec 2005 03:04:06 -0500 Message-ID: <43A3C9A8.9050608@leetworks.com> Date: Sat, 17 Dec 2005 03:17:44 -0500 From: Andrew Muraco User-Agent: Mozilla Thunderbird 1.0.7 (X11/20051102) X-Accept-Language: en-us, en Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@gentoo.org Reply-to: gentoo-dev@lists.gentoo.org MIME-Version: 1.0 To: gentoo-dev@lists.gentoo.org Subject: [gentoo-dev] DRAFT GLEP: MULTI-REPO Content-Type: multipart/mixed; boundary="------------060000060503010009050406" X-Archives-Salt: 8ead80f3-81a1-40b0-b5aa-835f1fe6a77e X-Archives-Hash: 2306c58802c6179418d576cb98d96bc3 This is a multi-part message in MIME format. --------------060000060503010009050406 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Attached is a draft of a glep for formalizing multiple-repository support This is far from ideal in many ways, but i'm too tired and I drank too much caffine to be sane. Also, i have no clue how to use docutils so i just tried my best. (** is my way of doing another level of bullets, please let me know how to properly do this) Comments, objections, anything consructive is welcome. Thanks, Andrew Muraco --------------060000060503010009050406 Content-Type: text/plain; name="glep-multi-repo-draft.txt" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="glep-multi-repo-draft.txt" GLEP: XX Title: Multiple Repository Support in Portage Version: $Revision: 1.0 $ Author: Andrew Muraco Last-Modified: $Date: 2005/12/17 03:13:10 $ Status: Draft Type: Standards Track Content-Type: text/x-rst Created: 17-Dec-2005 Post-History: 17-Dec-2005 Abstract ======== To implement a functional and expandable method for Portage to support multiple repositories. Motivation ========== Multiple Repository support is needed, this GLEP is to address this need. Specification ============= Portage will make use of two (2) ways to address repositories: * A User-defined name, which is likely to be used as a convinance in most situations - this will be referred to as REPO_NAME in this GLEP * A hard-coded repository-id which will be found in the repository tree at: metadata/repo_id - this will be referred to as REPO_ID in this GLEP Both names will contain no spaces, and only standard characters [TODO: references] Repositories ------------ Each repository will contain: * the repo name in metadata/repo_id * repo information such as maintainer of the repo, notes on who hosts it, etc will be contained metadata/repo_info * unique packages.mask which will only apply to ebuilds within that specific repo. The REPO_ID must match the name that will be used for rsync Therefore, rsync://MyServer.tdl/REPO_ID/ /etc/portage/* ------------- In order to provide users with the current set of options and extend them so they can be customized to each repository, the structure of /etc/portage will remain similar with these changes: * /etc/portage/REPO_NAME/* will be the location of repository-specific portage files. * /etc/portage/ will continue to function over all repos ** ex) =sys-devel/gcc-4 -* in /etc/portage/package.keywords would use the latest gcc-4 regardless of what tree it comes from. The following new files will be added to /etc/portage: * /etc/portage/repositories.perfer - will contain each REPO_NAME in order of preferance, higher is more perfered. (Each REPO_NAME will be on a seperate line) ** In the absence of this file portage should use repositories in alphabetical order. * /etc/portage/REPO_NAME/repository.id - contains the specific REPO_ID which REPO_NAME applies to. */etc/portage/REPO_NAME/repository.conf - will contain any repository-specific options, which can include, but is not limited to, FEATURES="" C[XX]FLAGS="". ** This will also include a new variable; OPTIONS="" of which is similar to FEATURES, but modifies the way portage will handle that specific repository. A few examples of options which could be useful: *** EXCLUDESYNC - Prevents portage from doing a sync on this repo. *** EXCLUDEUPDATE - Prevents portage from using ebuilds in this repo as updates for packages which currently reside in a different repo. *** EXCLUSIVEUPDATE - forces any update to any package which is from this repository to a newer version which resides inside of this repo. *** et al. All of the repository rsync URIs will be stored in /etc/make.conf SYNC="rsync://myfavoriterepo.org/myportage \ rsync://rsync.namerica.gentoo.org/gentoo-portage" The Tree: /usr/portage -> /var/repositories/REPO_ID/ ---------------------- The repository tree will need to be moved, each repository will have its own folder: /var/repositories/REPO_ID/. For compatibility reasons, /usr/portage will be treated as /var/repositories/gentoo-portage Ebuilds ------- Ebuilds will now be able to have dependencies based on packages from specific repositories. * DEP Atoms now support the following format: =REPO_ID:SLOTNUM:CAT/EBUILD-X.Y.Z ** Ex1) >=MyRepo:2:sys-devel/gcc-4.0 ** Ex2)