Gentoo Archives: gentoo-dev

From: Jason Stubbs <jstubbs@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] macos mess
Date: Sun, 25 Jul 2004 01:23:19
Message-Id: 200407251026.28675.jstubbs@gentoo.org
In Reply to: Re: [gentoo-dev] macos mess by Pieter Van den Abeele
1 On Sunday 25 July 2004 01:54, Pieter Van den Abeele wrote:
2 > There are two types of Gentoo MacOS users: There is the user who wants
3 > to extend his Mac OS X system with packages that didn't came
4 > pre-installed (like tetex, kde, mysql, prolog, ,... ) Then there's the
5 > user who wants to use Gentoo to rebuild parts of his Mac OS X operating
6 > system (a new kernel, python with readline support, ...) or just build
7 > a Darwin system from scratch without the fancy Apple stuff.
8 >
9 > Several devs work on making Gentoo MacOS work for both users.
10 > Everything happens in parallel.
11
12 The real problem is that nobody (if I am like everybody else) has heard about
13 this stuff except those that are following the macos movement. If you had
14 announced your plan to inject everything in MacOS and keyword ebuilds on the
15 assumption that those packages are available, many people could have told you
16 that the issues that are happening currently would occur. More importantly,
17 solutions would have been able to be created before the current issues became
18 issues.
19
20 > Why does repoman/linux think the dependency graph for macos is broken?
21
22 Because it is.
23
24 > Developers that work for users of the first type, keyword packages
25 > against a virtual base system. The entire base system (all packages
26 > provided by apple) is injected into the depgraph and locked down by a
27 > profile. A user cannot upgrade or downgrade Apple provided stuff,
28 > unless the user really insists on doing so. Repoman on linux complains
29 > about broken macos depgraph because the macos base system obviously
30 > isn't injected into the depgraph under linux.
31
32 So then you are trying to use one keyword to describe both a situation where
33 all base packages are available and one where they aren't?
34
35 > There are some ways to make repoman not complain about macos:
36
37 > 1. make repoman not do macos QA under linux
38
39 Ignore the issues? Not likely...
40
41 > Since repoman doesn't complain about macos under macos (it must be
42 > broken or somehow take into account injected packages when doing
43 > --emptytree), I prefer this option. It's also the least amount of work.
44
45 Does it complain when the patch Travis mentioned is in place?
46
47 > 2. make repoman macos aware
48
49 s/make repoman macos aware/include support in ALL of portage/
50
51 > This requires new portage features. Adding another file to the
52 > profiles, I can think of at least 2 portage feature requests that
53 > require adding another file to the profiles, so this can't be a short
54 > term solution.
55
56 Why wasn't this suggested months ago? A feature such as this (which isn't hard
57 to implement btw) could allow you to not inject everything and be able
58 satisfy repoman as well. It would also be useful in separating your two types
59 of macos users into separate profiles.
60
61 > Opened a bug about persistent injected packages. (Also needed to make
62 > --emptytree work on macos, since --emptytree also removes the injected
63 > base system).
64
65 This is not a bug.
66
67 > 3. add empty ebuilds keyworded "-* macos" for everything that gets
68 > injected.
69 >
70 > Requires 300 empty ebuilds to be added for each macos profile. This is
71 > a hack around a portage bug that prevents a package from being purely
72 > virtual.
73
74 "Portage bug"? I see it as a feature that's not available yet as no one has
75 ever required it or asked for it.
76
77 > There needs to be at least an empty ebuild. The problem with the workaround
78 > is that if a linux user uses the 'ignore keywords' syntax:
79 > emerge ./macos.ebuild that will break their system.
80
81 I don't think we have ever prevented users from intentionally doing something
82 blatently unsupported.
83
84 > 4. change every ebuild that depends on the macos base system by making
85 > the base system dependencies conditional.
86 >
87 > How many ebuilds depend on 300 ebuilds? How many dependencies need to
88 > be changed per ebuild? What about base system evolution?
89
90 If you want to use portage as it is now with macos, these #3 and #4 are your
91 *only* options without throwing QA out of the window.
92
93 Regards,
94 Jason Stubbs
95
96 --
97 gentoo-dev@g.o mailing list

Replies

Subject Author
Re: [gentoo-dev] macos mess Pieter Van den Abeele <pvdabeel@g.o>