Gentoo Archives: gentoo-dev

From: Christian Faulhammer <fauli@g.o>
To: Gentoo Development <gentoo-dev@l.g.o>
Subject: [gentoo-dev] Re: Unification of variables used within SCM eclasses
Date: Mon, 12 Apr 2010 07:10:31
Message-Id: 20100412101007.182ea2c7@gentoo.org
In Reply to: [gentoo-dev] Unification of variables used within SCM eclasses by "Michał Górny"
1 Hi,
2
3 sorry for the late reply.
4
5 Michał Górny <gentoo@××××××××××.pl>:
6 > a) Common variables - the variables which would have to be used by
7 > various SCM eclasses as default/fallback values.
8 >
9 > 1. ESCM_DISTDIR (defaulting to PORTAGE_ACTUAL_DISTDIR/PORTDIR)
10 > - an alternate parent dir to all SCM stores. It would be useful
11 > if user would like to use an small file-inefficient filesystem
12 > for main DISTDIR or rsync it with other machine (where SCM
13 > files are not as important as the tarballs are).
14
15 Sounds reasonable, though mostly a nice-have.
16
17 > 2. ESCM_OFFLINE (most eclasses use it already)
18 > - a common switch to easily switch off all network interaction.
19
20 Crucial, at least for me. :)
21
22 > 3. ESCM_LIVE_FAIL_IF_REPO_NOT_UPDATED (similar to the one in
23 > git.eclass)
24 > - a common switch to force unpack() phase to fail if no updates
25 > were found during the pull/update.
26
27 Something better named would be great...it looks just stupid in
28 make.conf.
29
30 > b) Common eclass-specific variables - these ones should allow user to
31 > override above variables for single SCM.
32 >
33 > 1. E*_STORE_DIR (defaulting to ${ESCM_DISTDIR}/*-src)
34 > - already used by few eclasses, allowing user to change
35 > the location where SCM-specific clones are stored.
36 >
37 > 2. E*_OFFLINE (defaulting to ${ESCM_OFFLINE})
38 > - allowing user to override global 'offline switch'. Thus, it
39 > should also support setting 'false' value to enable network
40 > interaction for single SCM.
41 >
42 > 3. E*_LIVE_FAIL_...
43 > - another override for the global one.
44
45 Ok with those.
46
47 > 4. E*_REPO_URI
48 > - the URI to the main repository. It might be extended to support
49 > multiple URIs.
50 > 5. E*_REVISION
51 > - explicit expected-revision/tag specification, preferably along
52 > with implicit one (e.g. in ESVN_REPO_URI) deprecation.
53 > This would allow applications to easily distinguish
54 > between 'real' live ebuilds and snapshot ones fetching
55 > directly from the repo.
56
57 Those are not really user settings, but defined by the using ebuild.
58
59
60 > c) Common export variables - these ones should be exported by SCM
61 > eclass and stored in environment.bz2 after successful emerge.
62 >
63 > 1. E*_VERSION (or _REVISION, or ...)
64 > - the version/revision to which the package was updated. This
65 > would be useful to determine whether the current repo is newer
66 > than one used when merging package.
67 >
68 > 2. E*_WC_PATH
69 > - the absolute path to the last-used clone dir (i.e.
70 > ${E*_STORE_DIR}/sth) and thus the most probable location
71 > to perform further updates in.
72
73 Portage team should comment here, maybe. What is the use case for
74 this, honestly?
75
76 > d) Other:
77 >
78 > 1. ESCM_CUSTOM_FETCH
79 > - this one is not directly related to eclasses but for use of
80 > ebuild authors. Setting this in an ebuild should notice applications
81 > that the ebuild does use custom fetching procedures
82 > (i.e. fetches from multiple repositories in a manner
83 > unsupported directly by the eclass) and thus external
84 > applications should not try to update the repository
85 > themselves.
86
87 Use case?
88
89 V-Li
90
91 --
92 Christian Faulhammer, Gentoo Lisp project
93 <URL:http://www.gentoo.org/proj/en/lisp/>, #gentoo-lisp on FreeNode
94
95 <URL:http://gentoo.faulhammer.org/>

Attachments

File name MIME type
signature.asc application/pgp-signature