1 |
What all are blocks used for? |
2 |
|
3 |
a) Marking that two unrelated packages are mutually incompatible at |
4 |
runtime because they happen to collide, for example on a commonly named |
5 |
executable. |
6 |
|
7 |
b) Marking that two related implementations are mutually incompatible at |
8 |
runtime because they both provide the same binary. |
9 |
|
10 |
c) Marking that a file that used to be provided by one package is now |
11 |
provided by another package that is either depending upon or depended |
12 |
upon by the original package. |
13 |
|
14 |
d) Marking that a package has been moved into another package. |
15 |
|
16 |
Are there any other uses? |
17 |
|
18 |
For future EAPIs, being able to tell the package manager that your |
19 |
block is of one of the types above will help the package manager smooth |
20 |
out the upgrade path for users. For example, for class d) blocks such |
21 |
as the recent coreutils / mktemp mess, the package manager can suggest |
22 |
to the user to install the new package and then uninstall the old |
23 |
package, rather than forcing the user to uninstall the old package by |
24 |
hand (possibly leaving their system without critical utilities) and then |
25 |
install the new package. |
26 |
|
27 |
I strongly suspect that in many (but not all) cases the package manager |
28 |
could be making users' lives a lot easier than it currently is... |
29 |
|
30 |
-- |
31 |
Ciaran McCreesh |