On Wed, Jun 06, 2007 at 02:33:58PM +0200, Raphael Hertzog wrote:
> On Wed, 06 Jun 2007, Steve Langasek wrote:
> > > > Consider cases where you want to declare that more than one package
> > > > satisfies the dependency -- we do have libraries using that today in their
> > > > shlibs. I do think it's necessary here to support the full range of
> > > > dependency semantics here.
> > > Good that you mention it because it can't be done with my current
> > > implementation/syntax...
> > > Can we make the supposition that in that case all packages providing the
> > > library have the same version?
> > Nope. Have a look at libGL. (libGL would actually benefit significantly
> > from symbol-shlibs, because not all of the symbols exported by each of the
> > implementors are supported by all the others. :/)
> Can you expand? I don't see at all how libgl would "benefit" from this new
> approach. The current shlibs is already very lax and non-versioned.
Yes, and that's the problem: I know the libgl shlibs to have been wrong in
certain corner cases involving uncommon symbols (whether those are
implementors adding their own extensions, or failing to implement the
standard, or just exposing symbols in the lib that aren't part of the API in
the headers, I don't know).
--- /tmp/mesa-syms 2007-06-06 22:32:25.000000000 +0000
+++ /tmp/nvidia-syms 2007-06-06 22:31:01.000000000 +0000
<snip>
Base glAccum
+Base glActiveStencilFaceEXT
Base glActiveTexture
Base glActiveTextureARB
-Base glAlphaFragmentOp1ATI
-Base glAlphaFragmentOp2ATI
-Base glAlphaFragmentOp3ATI
+Base glActiveVaryingNV
+Base glAddSwapHintRectWIN
Base glAlphaFunc
Base glAreProgramsResidentNV
Base glAreTexturesResident
@@ -106,14 +53,21 @@
Base glAttachObjectARB
Base glAttachShader
Base glBegin
-Base glBeginFragmentShaderATI
+Base glBeginConditionalRenderNVX
+Base glBeginConditionalRenderOES
+Base glBeginOcclusionQueryNV
Base glBeginQuery
Base glBeginQueryARB
+Base glBeginTransformFeedbackNV
+Base glBindArraySetARB
Base glBindAttribLocation
Base glBindAttribLocationARB
Base glBindBuffer
Base glBindBufferARB
-Base glBindFragmentShaderATI
+Base glBindBufferBaseNV
+Base glBindBufferOffsetNV
+Base glBindBufferRangeNV
+Base glBindFragDataLocationEXT
Base glBindFramebufferEXT
Base glBindProgramARB
<snip>
$ diff -u /tmp/mesa-syms /tmp/nvidia-syms |grep -c '^\+.*\bgl'
255
$ diff -u /tmp/mesa-syms /tmp/nvidia-syms |grep -c '^\-.*\bgl'
75
$
For another example, see fam/gamin, which are supposed to be 100%
ABI-compatible, but I'm not sure this is the case.
--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
vorlon@debian.org http://www.debian.org/