Gentoo Archives: gentoo-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] [RFC] Should we introduce PROPERTIES into the ebuild metadata cache on the rsync mirrors?
Date: Wed, 13 Aug 2008 00:01:48
Message-Id: 48A22464.2060701@gentoo.org
1 -----BEGIN PGP SIGNED MESSAGE-----
2 Hash: SHA1
3
4 Hi everyone,
5
6 Please consider the introduction of a new "PROPERTIES" variable to
7 the ebuild metadata cache that's distributed via the rsync mirrors
8 and resides locally in the ${PORTDIR}/metadata/cache/ directory.
9 This variable is intended to have identical syntax to the existing
10 RESTRICT variable, including support for the USE conditional syntax
11 that is also supported by the LICENSE, PROVIDE, SRC_URI, and *DEPEND
12 variables.
13
14 The idea to introduce the PROPERTIES variable arose from discussion
15 about the introduction of a new RESTRICT value [1]. By using a new
16 PROPERTIES variable instead of the existing RESTRICT variable, we
17 will have two separate categories of boolean attributes. This will
18 be useful since some boolean attributes, such as "primaruri" and
19 "live-sources", have an inverted nomenclature when compared to the
20 other boolean attributes that currently exist within the RESTRICT
21 set, show here:
22
23 binchecks - Disable all QA checks for binaries.
24
25 bindist - Distribution of binary packages is restricted.
26
27 fetch - Files will not be fetched via SRC_URI.
28
29 installsources - Disable FEATURES=installsources.
30
31 mirror - Disable mirroring.
32
33 primaryuri - Fetch from URLs in SRC_URI before GENTOO_MIRRORS.
34
35 strip - Final binaries/libraries will not be stripped.
36
37 test - Do not run src_test even if user has FEATURES=test.
38
39 userpriv - Disables FEATURES=userpriv.
40
41 We can add the new PROPERTIES variable to the metadata cache and it
42 will be fully backward compatible as long as PROPERTIES only
43 contains information that can be safely ignored by older versions of
44 portage. Newer versions of portage that are aware of the new
45 variable will simply have a superset of the information that's
46 available to older versions of portage.
47
48 The addition of the PROPERTIES variable isn't entirely necessary
49 since any PROPERTIES value can alternatively be expressed as a
50 RESTRICT value. However, numerous people have expressed a desire to
51 have a new variable to represent a different category of boolean
52 attributes, so as not to pollute the RESTRICT variable with values
53 that don't fit well into existing RESTRICT nomenclature conventions.
54
55 We haven't made any firm decisions yet on specific PROPERTIES values
56 and their meanings. However, it would be nice to have the cache
57 support in place so that we are prepared to start defining
58 PROPERTIES in ebuilds as soon as we've decided on the names and
59 meanings of specific values such as "live" [2], "virtual" [3], and
60 "interactive" [4].
61
62 Introducing the PROPERTIES variable into the cache will require a
63 very small patch to portage. As soon as this patch is applied to
64 portage on the master rsync mirror, it will be possible to define
65 the PROPERTIES variable in any ebuild and have that value
66 automatically distributed via the metadata cache on the rsync
67 mirrors. The current cache format has space to store the values of
68 22 variables, delimited by newlines, of which 7 are currently
69 unused. The attached patch will cause the PROPERTIES value to be
70 stored on line number 16, following the EAPI value.
71
72 Should we go ahead an apply this patch to the master rsync mirror,
73 or would anybody like to discuss any alternatives? In the future we
74 may want to discuss a change in cache format. However, in this
75 thread I think we should limit discussion simply to whether or not
76 adding this one variable to the cache is a good idea at this time.
77
78 Thanks,
79 Zac
80
81 [1]
82 http://archives.gentoo.org/gentoo-dev/msg_d8adb5d0dab3e8546c416781c452d81d.xml
83 [2]
84 http://archives.gentoo.org/gentoo-dev/msg_187585c5d49b69034183719ff473710d.xml
85 [3] http://article.gmane.org/gmane.linux.gentoo.devel/57610
86 [4]
87 http://archives.gentoo.org/gentoo-dev/msg_e145fc04e907de72e30d88285afb134c.xml
88 -----BEGIN PGP SIGNATURE-----
89 Version: GnuPG v2.0.9 (GNU/Linux)
90
91 iEYEARECAAYFAkiiJGIACgkQ/ejvha5XGaMIfQCguxt0Z0k1V3SEtW+PrhQPsdIK
92 MPIAn37AWGFONJsbdD6oRJryzQ8EHkxt
93 =d5Jf
94 -----END PGP SIGNATURE-----

Attachments

File name MIME type
cache_properties.patch text/plain
cache_properties.patch.sig application/octet-stream

Replies