Gentoo Logo
Gentoo Spaceship

Installation:
Gentoo Handbook
Installation Docs

Documentation:
Home
Listing
About Gentoo
Philosophy
Social Contract

Resources:
Bug Tracker
Developer List
Discussion Forums
Gentoo BitTorrents
Gentoo Linux Enhancement Proposals
IRC Channels
Mailing Lists
Mirrors
Name and Logo Guidelines
Online Package Database
Security Announcements
Staffing Needs
Supporting Vendors
View our CVS

Graphics:
Logos and themes
Icons
ScreenShots

Miscellaneous Resources:
Gentoo Linux Store
Gentoo-hosted projects
IBM dW/Intel article archive




List Archive: gentoo-dev
Navigation:
Lists: gentoo-dev: < Prev By Thread Next > < Prev By Date Next >
Headers:
To: gentoo-dev@g.o
From: Zac Medico <zmedico@g.o>
Subject: [RFC] Should we introduce PROPERTIES into the ebuild metadata cache on the rsync mirrors?
Date: Tue, 12 Aug 2008 17:01:40 -0700
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi everyone,

Please consider the introduction of a new "PROPERTIES" variable to
the ebuild metadata cache that's distributed via the rsync mirrors
and resides locally in the ${PORTDIR}/metadata/cache/ directory.
This variable is intended to have identical syntax to the existing
RESTRICT variable, including support for the USE conditional syntax
that is also supported by the LICENSE, PROVIDE, SRC_URI, and *DEPEND
variables.

The idea to introduce the PROPERTIES variable arose from discussion
about the introduction of a new RESTRICT value [1]. By using a new
PROPERTIES variable instead of the existing RESTRICT variable, we
will have two separate categories of boolean attributes. This will
be useful since some boolean attributes, such as "primaruri" and
"live-sources", have an inverted nomenclature when compared to the
other boolean attributes that currently exist within the RESTRICT
set, show here:

    binchecks - Disable all QA checks for binaries.

    bindist - Distribution of binary packages is restricted.

    fetch - Files will not be fetched via SRC_URI.

    installsources - Disable FEATURES=installsources.

    mirror - Disable mirroring.

    primaryuri - Fetch from URLs in SRC_URI before GENTOO_MIRRORS.

    strip - Final binaries/libraries will not be stripped.

    test - Do not run src_test even if user has FEATURES=test.

    userpriv - Disables FEATURES=userpriv.

We can add the new PROPERTIES variable to the metadata cache and it
will be fully backward compatible as long as PROPERTIES only
contains information that can be safely ignored by older versions of
portage. Newer versions of portage that are aware of the new
variable will simply have a superset of the information that's
available to older versions of portage.

The addition of the PROPERTIES variable isn't entirely necessary
since any PROPERTIES value can alternatively be expressed as a
RESTRICT value. However, numerous people have expressed a desire to
have a new variable to represent a different category of boolean
attributes, so as not to pollute the RESTRICT variable with values
that don't fit well into existing RESTRICT nomenclature conventions.

We haven't made any firm decisions yet on specific PROPERTIES values
and their meanings. However, it would be nice to have the cache
support in place so that we are prepared to start defining
PROPERTIES in ebuilds as soon as we've decided on the names and
meanings of specific values such as "live" [2], "virtual" [3], and
"interactive" [4].

Introducing the PROPERTIES variable into the cache will require a
very small patch to portage. As soon as this patch is applied to
portage on the master rsync mirror, it will be possible to define
the PROPERTIES variable in any ebuild and have that value
automatically distributed via the metadata cache on the rsync
mirrors. The current cache format has space to store the values of
22 variables, delimited by newlines, of which 7 are currently
unused. The attached patch will cause the PROPERTIES value to be
stored on line number 16, following the EAPI value.

Should we go ahead an apply this patch to the master rsync mirror,
or would anybody like to discuss any alternatives? In the future we
may want to discuss a change in cache format. However, in this
thread I think we should limit discussion simply to whether or not
adding this one variable to the cache is a good idea at this time.

Thanks,
Zac

[1]
http://archives.gentoo.org/gentoo-dev/msg_d8adb5d0dab3e8546c416781c452d81d.xml
[2]
http://archives.gentoo.org/gentoo-dev/msg_187585c5d49b69034183719ff473710d.xml
[3] http://article.gmane.org/gmane.linux.gentoo.devel/57610
[4]
http://archives.gentoo.org/gentoo-dev/msg_e145fc04e907de72e30d88285afb134c.xml
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)

iEYEARECAAYFAkiiJGIACgkQ/ejvha5XGaMIfQCguxt0Z0k1V3SEtW+PrhQPsdIK
MPIAn37AWGFONJsbdD6oRJryzQ8EHkxt
=d5Jf
-----END PGP SIGNATURE-----
Index: pym/portage/__init__.py
===================================================================
--- pym/portage/__init__.py	(revision 11402)
+++ pym/portage/__init__.py	(working copy)
@@ -6797,7 +6797,7 @@
 	'RESTRICT',  'HOMEPAGE',  'LICENSE',   'DESCRIPTION',
 	'KEYWORDS',  'INHERITED', 'IUSE',      'CDEPEND',
 	'PDEPEND',   'PROVIDE', 'EAPI',
-	'UNUSED_01', 'UNUSED_02', 'UNUSED_03', 'UNUSED_04',
+	'PROPERTIES', 'UNUSED_02', 'UNUSED_03', 'UNUSED_04',
 	'UNUSED_05', 'UNUSED_06', 'UNUSED_07',
 	]
 auxdbkeylen=len(auxdbkeys)
Index: bin/ebuild.sh
===================================================================
--- bin/ebuild.sh	(revision 11404)
+++ bin/ebuild.sh	(working copy)
@@ -2046,7 +2046,7 @@
 
 		auxdbkeys="DEPEND RDEPEND SLOT SRC_URI RESTRICT HOMEPAGE LICENSE
 			DESCRIPTION KEYWORDS INHERITED IUSE CDEPEND PDEPEND PROVIDE EAPI
-			UNUSED_01 UNUSED_02 UNUSED_03 UNUSED_04 UNUSED_05 UNUSED_06
+			PROPERTIES UNUSED_02 UNUSED_03 UNUSED_04 UNUSED_05 UNUSED_06
 			UNUSED_07"
 
 		#the extra $(echo) commands remove newlines
Attachment:
cache_properties.patch.sig (Binary data)
Replies:
Re: [RFC] Should we introduce PROPERTIES into the ebuild metadata cache on the rsync mirrors?
-- Joe Peterson
Navigation:
Lists: gentoo-dev: < Prev By Thread Next > < Prev By Date Next >
Previous by thread:
best way to use profiles and package.use.mask?
Next by thread:
Re: [RFC] Should we introduce PROPERTIES into the ebuild metadata cache on the rsync mirrors?
Previous by date:
Re: Jeeves IRC replacement now alive - Willikins
Next by date:
One-Day Gentoo Council Reminder for August


Updated Jun 17, 2009

Donate to support our development efforts.

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

php|architect

php|architect

Copyright 2001-2007 Gentoo Foundation, Inc. Questions, Comments? Email www@gentoo.org.