Gentoo Archives: gentoo-dev

From: Dan Armak <danarmak@g.o>
To: gentoo-dev@g.o
Subject: Re: [gentoo-dev] CVS versions and portage management
Date: Tue, 28 May 2002 14:00:06
Message-Id: 200205282211.02896.danarmak@gentoo.org
In Reply to: [gentoo-dev] CVS versions and portage management by "marco mascherpa (aka mush)"
1 -----BEGIN PGP SIGNED MESSAGE-----
2 Hash: SHA1
3
4 Hi,
5
6 I'm Dan Armak, the kde-base maintainer. This is a topic I could (and have)
7 write a lot about, I'll try to give you a summary:
8
9 Until the kde 3.0 release (March), I maintained for several months a set of
10 KDE cvs ebuilds outside portage (since cvs ebuilds haven't been sanctioned as
11 yet). You can find the last release on
12 http://www.gentoo.org/~danarmak/kde3-pre.html.
13
14 I used eclasses to implement automatic cvs/cvsup checkout/update/etc. and
15 seamless compilation and installation. If you don't know about eclasses see
16 http://www.gentoo.org/doc/eclass-howto.html. You can see kde-cvs.eclass,
17 kde-cvsup.eclass and kde-source.eclas in the archive on my site referenced
18 above, they complement the kde-* eclasses present in portage.
19
20 However I didn't solve the versioning issue, I named the ebuilds version 3.0
21 since that was the version towards which the kde cvs was working. But
22 obviously this wouldn't be any good on a larger scale.
23
24 Some time ago I wrote a proposition on introducing cvs ebuilds into portage,
25 with a versioning scheme. The discussion was on the developer-only
26 gentoo-core list, so you can't browse the archives. I quote:
27 - ---
28 "Bevin and I discussed CVS ebuilds in #gentoodev and came up with the
29 following
30 improved proposal:
31
32 An ebuild can have a version, a cvs name element, or both. The order of
33 version precedence is as follows:
34
35 foo-cvs > foo-2.0-cvs > foo-2.0 > foo-1.0-cvs > foo-1.0
36
37 A cvs ebuild without a version gets its source from cvs HEAD, so it's always
38 newest. When it is emerged, however, it is automatically given (i.e. by
39 emerge) the version number of the latest non-cvs ebuild in existence. If only
40 the cvs ebuild exists, it gets version 0.
41
42 That way, when a new non-cvs ebuild is added with a greater version, it serves
43 as an update. The DATE variable is no longer needed.
44
45 A cvs ebuild with a version gets code from a specific tag or branch on cvs.
46 Usually the branch of a version only gets bugfixes, not new features, so it's
47 extra-stable.
48
49 Because a cvs ebuild is always newer than a itself merged a few minutes ago,
50 we won't let them into the world update. Instead we can add a new emere
51 - --update cvs that will update all cvs ebuilds, or emerge --cvs which will
52 allow cvs ebuilds to be merged (i.e. when merging new packages)."
53
54 - ---
55
56
57 And some 10 days ago Daniel Robbins said:
58 "Dan Armak and others have already worked out a plan for adding this to
59 Portage; you should be able to find it in the gentoo-core archives. It
60 will be added eventually, but I'm going to be focusing on more
61 fundamental things for a while (robustness, error handling, streamlining
62 the code.)"
63
64 That's all that known atm.
65
66 On Tuesday 28 May 2002 18:33, marco mascherpa (aka mush) wrote:
67 > hi,
68 > it's the first time i write to this ML, altough i've been subscribed for a
69 > while. i'm an italian guy, i'm studying information engineering in milan
70 > and i'm a happy linux user. :) at the moment i'm enjoying a slackware, but
71 > some months ago i found this gentoo and i think it's really awesome! it
72 > merges the goods of both linux and BSD which i appreciate too! so i thought
73 > this is a great project and i'm planning to join you developers as soon as
74 > my skills will permit it and i will know enough of gentoo to avoid those
75 > RTFM questions. :)
76 >
77 > now, let's go to the meat: last night i happened to install the CVS version
78 > of gaim (the open source AIM clone) and suddenly i wondered how could
79 > gentoo portage system manage the install/upgrade process of a CVS snapshot
80 > of an application. it could seem a weird situation, why would we need to
81 > install the CVS snapshot when we have the official releases? as you know
82 > better than me sometimes some features we need are available only in the
83 > CVS version: for example licq CVS version is perfectly compatible with the
84 > latest ICQ protocol, but the official release isn't. but there are much
85 > more interesting cases than this one, i guess :)
86 >
87 > AFAIK the portege system cannot manage the CVS version of an app and
88 > decide, for instance whether the version we are considering is older or
89 > newer than the installed one: i can't upgrade a program with his CVS
90 > version.
91 >
92 > i found two possible solutions to this problem:
93 > - we could make a separate ebuild for every pregram: let's say we have the
94 > ebuild of program foo, version 1.2.3: we have a foo-1.2.3-r1.ebuild for the
95 > official release and a fooCVS-20020528-r1.ebuild for the CVS version. this
96 > would lead to some coexistence inssues but it would be very easy to do and
97 > wouldn't require any changes in the portage system.
98 > - otherwise we could include in the ebuild a DATE variable wich will
99 > contain the release date for official releases and the date of the CVS
100 > snapshot for CVS versions. obviously this would mean some changes in the
101 > way upgrade and dependencies are managed, but i think it wouldn't be too
102 > hard to implement.
103 >
104 > i hope my thoughts will be useful in some way and again i congratulate you
105 > for the optimum job you have made so far.
106 > best regards
107 > marco
108
109 - --
110 Dan Armak
111 Gentoo Linux developer (KDE)
112 Matan, Israel
113 -----BEGIN PGP SIGNATURE-----
114 Version: GnuPG v1.0.7 (GNU/Linux)
115
116 iD8DBQE889ZGUI2RQ41fiVERAj8HAJ9mwHzHvh/FWa2vMCgGbjPoSy4LTgCfS5vz
117 7yOvC0nt13IU1JCZVn/O2Ec=
118 =6upx
119 -----END PGP SIGNATURE-----