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

Reply via email to