I am sorry, I accidentally hit the sent button so you got a garbled
message!
Anyway:
With this mail I'd like to point to an inconsistency in fink's usage,
and want to give everybody a chance to comment on proposed plans on
how to resolve this... For the "historic" background of this, please
refer to <https://sourceforge.net/tracker/?
func=detail&atid=117203&aid=755128&group_id=17203>.
THE PROBLEM
===========
Now to explain the issue: Currently, Fink supports two kind of
"virtual packages":
* runtime virtuals, created by fink to represent parts of the system
outside fink. For example, the "macosx", "darwin", "gcc*" packages.
* "provides" virtuals; these are the result of "Provides" statements
in source packages.
The second kind is currently a second class citizen. Many fink
commands do not know about them, leading to strange reactions
(strange in the eyes of a user, at least; strange in my eyes, too).
Let me give an example: The "tetex-macosx" is such a provided virtual
package. It will be listed by "fink list tetex". But it's missing a
description.
Next, try a "fink info tetex-macosx" (or "fink desc tetex-macosx" if
you prefer, they are the same). Fink tells you that it knows nothing
about the package! Clearly this is bad.
Thanks to vasi, the latter is no more in fink HEAD CVS. Fink will now
show this:
--- BEGIN SCREEN OUTPUT ---
tetex-macosx is a virtual package, provided by:
system-tetex-20010808-14
tetex-nox-base-3.0-1
tetex-base-3.0-1
ptex-base-3.1.3-8
--- END SCREEN OUTPUT ---
This is a nice improvement, thanks Dave. However, it only partially
solves the problem. Most other fink commands still do not know about
these provided packages:
--- BEGIN SCREEN OUTPUT ---
$ fink install tetex-macosx
Information about 4792 packages read in 1 seconds.
Information about 363 shared libraries read in 0 seconds.
no version info available for tetex-macosx
Failed: no package found for specification 'tetex-macosx'!
$ fink remove tetex-macosx
Information about 4792 packages read in 1 seconds.
Information about 363 shared libraries read in 0 seconds.
Nothing removed
--- END SCREEN OUTPUT ---
Between the three of them, fink install, remove and desc now each
treat tetex-macosx differently. So we should get that fixed by making
install/remove/purge (any other I am forgetting? maybe dumpinfo?)
aware of provided packages. Here's the question: How should they
react to them?
THE SOLUTION(S)
===============
Proposal #1: Do the same as now (i.e. nothing) but with an
appropriate warning:
--- BEGIN SCREEN OUTPUT ---
$ fink install tetex-macosx
'tetex-macosx' is a virtual package and cannot be installed directly.
Instead, install one of the packages which provide it. The following
package are known to do that:
system-tetex-20010808-14
tetex-nox-base-3.0-1
tetex-base-3.0-1
ptex-base-3.1.3-8
--- END SCREEN OUTPUT ---
Proposal #2: Try to have those commands do something "sensible". In
my mind, that means:
--- BEGIN SCREEN OUTPUT ---
$ fink install tetex-macosx
'tetex-macosx' is a virtual package representing functionality
provide by (multiple) other packages and thus cannot be installed
directly. Instead, pick one of the packages which provide it, and I
will install it for you:
(1) Install 'system-tetex-20010808-14'
(2) Install 'tetex-nox-base-3.0-1'
(3) Install 'tetex-base-3.0-1'
(4) Install 'ptex-base-3.1.3-8'
(5) Cancel
How do you want to proceed? [5]
--- END SCREEN OUTPUT ---
In the case of "fink remove", it could look like this (note that most
of the time, there will be only one installed package providing a
given virtual package).
--- BEGIN SCREEN OUTPUT ---
$ fink remove tetex-macosx
'tetex-macosx' is a virtual package representing functionality
provide by (multiple) other packages and thus cannot be removed
directly. If you really want to remove it you have to remove all
currently installed packages which provide this virtual package.
(1) Remove 'tetex-base'
(2) Cancel
How do you want to proceed? [2]
--- END SCREEN OUTPUT ---
Of course, the text messages in either proposal are just
placeholders, and are subject to change :-)
HOW TO PROCEED
==============
My personal recommendation is to start out with proposal #1, as it
should be rather easy to implement. On the long run, I'd like to see
#2 implemented, but I am not sure everybody agrees, hence this mail.
Please add in your thoughts and constructive criticism.
Cheers,
Max
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Fink-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fink-devel