Gentoo Archives: gentoo-dev

From: Enrico Weigelt <weigelt@×××××.de>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] PostgreSQL Status
Date: Thu, 17 Apr 2008 16:31:17
Message-Id: 20080417163044.GA31409@nibiru.local
In Reply to: [gentoo-dev] PostgreSQL Status by "Tiziano Müller"
1 * Tiziano Müller <dev-zero@g.o> schrieb:
2
3 Hi,
4
5 > Since my blog doesn't get syndicated on planet.gentoo.org I'm posting the
6 > entry here again, but it's probably a good idea anyway:
7
8 Actually, I'd clearly prefer lists like this one for those discussions.
9 Blogs are okay for writing journal articles and let people comment them,
10 but bad for real discussions, IMHO.
11
12 > First I want to apologize for the current situation. I know we're lagging
13 > behind and I know that bugs are piling up.
14 > As a small excuse I can only say that my time is limited and PostgreSQL
15 > isn't the only thing in Gentoo I (have to) maintain.
16
17 Well, my time is limited too (hmm, an contract for Gentoo development
18 would be fine ;-)), otherwise I'd already reworked the pg ebuilds ;-o
19
20 > There are a couple of reasons:
21 > a) dev-db/libpq is slotted but with collisions. Fixing this wasn't really an
22 > option since slotting this was wrong from the beginning.
23
24 ACK. It should be done by *real* MVCC. But I doubt that portage is
25 actually capable of this yet. For the vast majority of the cases I
26 see slots just as a dirty hack ;-p
27
28 The main problem for MVCC (and also what often makes revdep-rebuild
29 necessary) is the point that source and binary packages have to be
30 completely different: the mapping from source to binary happens at
31 only build time and all the rest of the dependency handling derives
32 from that. I'm currently implementing this approach in my own build/
33 packaging system, but it's going to tricky.
34
35 > b) The split-up in two packages dev-db/{libpq,postgresql} was wrong too:
36 > There are a couple of packages which do not only need libpq, but also one
37 > of the other PostgreSQL libraries (like libecpg, libpgtypes, libecpg_compat
38 > or libpgport).
39
40 NAK! Each of these libraries are their own entities. Some clients even may
41 depend on one of them, but not libpq. So they clearly belong to their
42 own packages.
43
44 I do *NOT* want *ANY* unneeded stuff in my systems. You'll force me to fork.
45
46 > c) Upgrading between major versions of PostgreSQL requires the DB admin to
47 > bump the database using the old version, moving the database away and to
48 > reload the dump into a new database cluster using the new version of
49 > PostgreSQL. Having to take down the old server and purging the old version
50 > of PostgreSQL before being able to try out the new one is more than
51 > cumbersome. Therefore a slotted postgresql-server is needed to make the
52 > upgrade easier.
53
54 That's the point where we need *real* MVCC. An virtual package could
55 coordinate the update process (eg. pulling in new versions and providing
56 update utils, maybe with some additional refcounting and automatic cleanup
57 based on that)
58
59 Yes, MVCC is not trivial ;-P
60
61 > What do the new ebuilds offer:
62 > a) A split into dev-db/postgresql-{base,server,docs}. Now, I know that
63 > splitting up packages isn't the Gentoo way. I know we could have done it
64 > using USE flags but this approach gives more flexibility due to the current
65 > way how binary packages are being generated and distributed.
66
67 I actually think packages should be split whenever suitable, useflags should
68 only be used for *conditional* building (where features are switched that
69 do *not* reflect separate modules) or for virtual (frontend) packages.
70
71 > b) New virtuals: virtual/postgresql-{base,server} to be able to install
72 > pgcluster as your postgresql-base in a next step.
73
74 Yes, frontend virtuals for convenience are an good idea for many users.
75 I, personally, probably won't use them, since my setups would be too
76 complex for them. Other folks with simpler setups might be perfectly
77 fine with them.
78
79 > c) Slotting: It is now possible to have more than one major version of
80 > PostgreSQL installed and running on the same machine.
81
82 Great. This makes smooth update processes easier (reduces the need of
83 custom ebuilds). But I, pesonally, prefer *separate* packages instead
84 of slots.
85
86 > 159223 postgresql threads USE flag required for ecpg
87
88 BTW: does portage meanwhile handle feature dependencies ?
89 It's always a big mess when an whole install/update fails in the middle
90 just because some package wants some other built with certain useflag :(
91
92 > 161980 QA Notice: USE Flag 'kernel_linux' not in IUSE for dev-db...
93
94 Naive question: why does this useflag appear in pg ?
95
96
97 cu
98 --
99 ---------------------------------------------------------------------
100 Enrico Weigelt == metux IT service - http://www.metux.de/
101 ---------------------------------------------------------------------
102 Please visit the OpenSource QM Taskforce:
103 http://wiki.metux.de/public/OpenSource_QM_Taskforce
104 Patches / Fixes for a lot dozens of packages in dozens of versions:
105 http://patches.metux.de/
106 ---------------------------------------------------------------------
107 --
108 gentoo-dev@l.g.o mailing list