[mono-packagers] mono-find-(provides|requires)

Jonathan Pryor jonpryor at vt.edu
Fri Dec 12 12:33:06 EST 2008


On Fri, 2008-12-12 at 08:56 -0700, Andrew Jorgensen wrote:
> There are some significant problems with the mono-find-(provides|
> requires) scripts as they exist now.  Some examples will illustrate
> the problem best:

<snip examples/>

I think the fundamental problem is that mono-find-{provides,requires}
doesn't distinguish between public assemblies (located in the GAC) and
private assemblies (not in the GAC).  They are both emitted as
mono(base-name-off-assembly).

*Both* public & private assemblies need to be output (lest we break the
aforementioned MonoDevelop.Core issue), especially since it's not always
appropriate to place assemblies into the GAC (e.g. unstable APIs, the
upstream maintainers don't care to maintain compatibility, etc.).

Thus, I suggest that we modify the output so that public assemblies
remain as they are -- mono(base-name-of-assembly) -- or modify the
output so that the assembly version is included.  It might be best,
actually, to just use the fully-qualified assembly name, e.g.
mono(mscorlib, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089).

Private assemblies *must* contain the full path, e.g.
mono(/full/path/to/assembly.dll).

This approach would allow multiple apps to bundle the same assembly
privately (e.g. log4net) w/o screwing up other apps, and would allow
apps to strongly specify which public assemblies they depend upon -- two
different use cases which we've been trying to shoehorn into the same
solution.

 - Jon




More information about the mono-packagers-list mailing list