| 1 | GLEP: 49 |
1 | GLEP: 49 |
| 2 | Title: Alternative Package Manager requirements |
2 | Title: Alternative Package Manager requirements |
| 3 | Version: $Revision: 1.2 $ |
3 | Version: $Revision: 1.3 $ |
| 4 | Last-Modified: $Date: 2006/05/20 14:22:15 $ |
4 | Last-Modified: $Date: 2006/05/21 10:23:55 $ |
| 5 | Author: Paul de Vrieze <pauldv@gentoo.org>, |
5 | Author: Paul de Vrieze <pauldv@gentoo.org>, |
| 6 | Status: Draft |
6 | Status: Draft |
| 7 | Type: Standards Track |
7 | Type: Standards Track |
| 8 | Content-Type: text/x-rst |
8 | Content-Type: text/x-rst |
| 9 | Created: 18-May-2006 |
9 | Created: 18-May-2006 |
| … | |
… | |
| 89 | ============================ |
89 | ============================ |
| 90 | |
90 | |
| 91 | As a package manager is in a state of higher support there are higher |
91 | As a package manager is in a state of higher support there are higher |
| 92 | requirements to it. The purpose of these requirements is to ensure the unity of |
92 | requirements to it. The purpose of these requirements is to ensure the unity of |
| 93 | the distribution and the package tree. For this purpose it is needed that there |
93 | the distribution and the package tree. For this purpose it is needed that there |
| 94 | is only one primary package manager. |
94 | is only one primary package manager. This is from gentoo's perspective. From a |
|
|
95 | user perspective it is perfectly possible to use another package |
|
|
96 | manager. Candidate primary package managers and secondary package managers are |
|
|
97 | also supported in regards to bugs etc. |
| 95 | |
98 | |
| 96 | |
99 | |
| 97 | Primary package manager requirements |
100 | Primary package manager requirements |
| 98 | ------------------------------------ |
101 | ------------------------------------ |
| 99 | |
102 | |
| 100 | The primary package manager is the package manager that sets the standards for |
103 | The primary package manager is the package manager that sets the standards for |
| 101 | the tree. All ebuilds in the tree must function with the primary package |
104 | the tree. All ebuilds in the tree must function with the primary package |
| 102 | manager. As the primary package manager sets the standard it does not have to |
105 | manager. As the primary package manager sets the standard it does not have to |
| 103 | maintain compatibility with other package managers. |
106 | maintain compatibility with other package managers. This does not mean that the |
|
|
107 | actual implementation is the standard, but that the maintainers have the ability |
|
|
108 | to define new standards, together with the other involved gentoo projects. |
| 104 | |
109 | |
| 105 | The primary package manager does however have the responsibility that it must be |
110 | The primary package manager does however have the responsibility that it must be |
| 106 | very stable. The primary package manager must maintain compatibility with old |
111 | very stable. The primary package manager must maintain compatibility with old |
| 107 | versions of itself for extended periods of time. This compatibility time is set |
112 | versions of itself for extended periods of time. This compatibility time is set |
| 108 | by the council. The suggested time would be one year from the point that there |
113 | by the council. The suggested time would be one year from the point that there |
| … | |
… | |
| 113 | unstable version of the primary package manager to a stable version. This may be |
118 | unstable version of the primary package manager to a stable version. This may be |
| 114 | done either by first introducing reading compatibility for a new format and only |
119 | done either by first introducing reading compatibility for a new format and only |
| 115 | having write support later. Another way would be the provision of a conversion |
120 | having write support later. Another way would be the provision of a conversion |
| 116 | tool that ensures that the on disk information maintained by the package manager |
121 | tool that ensures that the on disk information maintained by the package manager |
| 117 | is supported by the stable package manager. |
122 | is supported by the stable package manager. |
|
|
123 | |
|
|
124 | The primary package manager maintainers further have the responsibility to allow |
|
|
125 | competition. This means that reasonable patches from the maintainers of |
|
|
126 | secondary or candidate primary package managers must be applied, given that |
|
|
127 | these patches are as independent of that package manager as possible. |
| 118 | |
128 | |
| 119 | The primary package manager is maintained on official Gentoo infrastructure, |
129 | The primary package manager is maintained on official Gentoo infrastructure, |
| 120 | under control of Gentoo developers. |
130 | under control of Gentoo developers. |
| 121 | |
131 | |
| 122 | |
132 | |
| … | |
… | |
| 181 | and deinstallation by the primary package manager must remain functional. |
191 | and deinstallation by the primary package manager must remain functional. |
| 182 | |
192 | |
| 183 | The second kind is formed by those package managers that maintain their own |
193 | The second kind is formed by those package managers that maintain their own |
| 184 | package database, or a package database incompatible with the primary package |
194 | package database, or a package database incompatible with the primary package |
| 185 | manager. To ensure the secondary role of these package managers the support in |
195 | manager. To ensure the secondary role of these package managers the support in |
| 186 | the tree for these package manager is provided along with restrictions. |
196 | the tree for these package managers is provided along with restrictions. |
| 187 | |
197 | |
| 188 | The first restriction is that no packages in the tree must rely on the secondary |
198 | The first restriction is that no packages in the tree must rely on the secondary |
| 189 | package manager. While packages may provide a level of support (while being |
199 | package manager. While packages may provide a level of support (while being |
| 190 | compatible with the primary package manager) this may not result in a |
200 | compatible with the primary package manager) this may not result in a |
| 191 | significant increase of features. If this were allowed, this would mean that |
201 | significant increase of features. If this were allowed, this would mean that |
| … | |
… | |
| 239 | |
249 | |
| 240 | Primary package manager transition phase |
250 | Primary package manager transition phase |
| 241 | ---------------------------------------- |
251 | ---------------------------------------- |
| 242 | |
252 | |
| 243 | A candidate primary package manager can be chosen to become primary package |
253 | A candidate primary package manager can be chosen to become primary package |
| 244 | manager. This can only happen by council decision. This decision can only be |
254 | manager. This can only happen by council decision. This decision can only be |
| 245 | made when the candidate primary package manager is stable on all stable |
255 | made when the candidate primary package manager is stable on all stable |
| 246 | architectures. (all architectures except experimental ones). |
256 | architectures. (all architectures except experimental ones). There is a |
|
|
257 | incubation period of at least 3 months before a candidate primary package |
|
|
258 | manager can become the primary package manager. |
| 247 | |
259 | |
| 248 | After the decision has been made to replace the primary package manager, the |
260 | After the decision has been made to replace the primary package manager, the |
| 249 | transition phase starts. The use of the old stable package manager must remain |
261 | transition phase starts. The use of the old stable package manager must remain |
| 250 | supported for a period of 6 months. This means that core packages must be |
262 | supported for a period of 6 months. This means that core packages must be |
| 251 | installable by this package manager. Further the possibility to convert the |
263 | installable by this package manager. Further the possibility to convert the |