1 |
Hello, everyone. |
2 |
|
3 |
After 2+ years of repeating disagreements with Portage maintainer(s) |
4 |
I have finally decided to fork Portage. My little fork uses technical |
5 |
name of 'portage[mgorny]' [1] (to distinguish it from mainline Portage), |
6 |
and aims to focus on cleaning up code and adding useful features with |
7 |
less concern for infinite bug-by-bug compatibility. |
8 |
|
9 |
Detailed rationale in README [2]. |
10 |
|
11 |
|
12 |
Before installing |
13 |
----------------- |
14 |
This is a bleeding-edge, strictness-first fork of Portage. It is |
15 |
intended for developers and power users mostly. Things will break. |
16 |
You will eventually be asked to remove files deprecated 5+ years ago. |
17 |
Developer mistakes will harm you (but someone needs to find them |
18 |
and report them!) |
19 |
|
20 |
Dynamic dependencies are off by default (following Council decision |
21 |
from 3.5yr ago). If you haven't rebuilt your system recently, you may |
22 |
need to use '--changed-deps' once. Afterwards, things should work fine |
23 |
unless developers screw up, and then you should report bugs. |
24 |
|
25 |
Only ~arch version at the moment. |
26 |
|
27 |
|
28 |
Installing |
29 |
---------- |
30 |
To switch to my fork of Portage, just: |
31 |
|
32 |
emerge -vn sys-apps/portage-mgorny |
33 |
|
34 |
Note that you may need to: |
35 |
|
36 |
emerge --deselect sys-apps/portage app-portage/repoman |
37 |
|
38 |
(repoman is integrated back into Portage) |
39 |
|
40 |
You may also need to upgrade all revdeps of Portage since the newest |
41 |
versions were bumped with updated dependencies. |
42 |
|
43 |
Please note that due to misdesign, Portage will abort upon having to |
44 |
unmerge itself on first install. However, it is a harmless failure |
45 |
and portage[mgorny] will be installed already at the point, so upon |
46 |
restarting it will just finish cleaning up. |
47 |
|
48 |
|
49 |
Merge plan |
50 |
---------- |
51 |
I do intend to regularly merge from mainline Portage, and preserve |
52 |
reasonable compatibility (especially in terms of API). I also plan to |
53 |
keep reasonably good commit quality as to make it easier for Portage |
54 |
developers to merge back. However, this is not my primary concern. |
55 |
|
56 |
|
57 |
Releases |
58 |
-------- |
59 |
I plan to make frequent releases. I'm planning to version the releases |
60 |
by sequential values of fourth version component from the last Portage |
61 |
release. For example, since the last Portage release is 2.3.24, I have |
62 |
just released portage-mgorny-2.3.24.1, the next release will |
63 |
be 2.3.24.2, etc. until Portage 2.3.25 is released. |
64 |
|
65 |
The releases are made against *git HEAD* and not respective Portage |
66 |
versions, i.e. 2.3.24.1 is [2.3.24 + changes in mainline + my changes]. |
67 |
The matching versions are mostly meant to make >= deps easier, i.e. you |
68 |
can reasonably assume portage-mgorny-2.3.24* will have all the new APIs |
69 |
of portage-2.3.24. |
70 |
|
71 |
The release notes [3] list any major changes I make. They do not list |
72 |
the respective changes in mainline Portage, sorry. |
73 |
|
74 |
|
75 |
Bugs, features and requests |
76 |
--------------------------- |
77 |
I'm open to your feedback, including things that were rejected |
78 |
by mainline Portage team. For best efficiency, please report bugs |
79 |
on GitHub [4] and/or open pull requests [5]. |
80 |
|
81 |
Enjoy! |
82 |
|
83 |
|
84 |
[1]:https://github.com/mgorny/portage |
85 |
[2]:https://github.com/mgorny/portage/blob/master/README |
86 |
[3]:https://github.com/mgorny/portage/releases |
87 |
[4]:https://github.com/mgorny/portage/issues |
88 |
[5]:https://github.com/mgorny/portage/pulls |
89 |
|
90 |
-- |
91 |
Best regards, |
92 |
Michał Górny |