[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Accepted sdl-image1.2 1.2.2-1 (i386 source)



>> Junichi Uekawa <dancer@netfort.gr.jp> writes:

 > Consider a situation:
 > A->libA->libpng2(nover)
 > A->libpng2(nover)

 > if libA was recompiled with libpng3(versioned), then
 > libA->libpng3(versioned), but A won't be.
 > 
 > upgrading libA only might cause A to fail ?

 It depends. What is A? A package? Something else?

 If it's a package, for discussion purposes let's say versions 1.0.12-5
 and 1.2.1-4 of libpng[23] introduce versioned symbols (adjust to match
 reality, I'm going from memory here).  Please bear with me here, I'm
 second guessing you, I really don't know what's in your mind, but I
 think you mean this:

 Package: A
 Depends: libA, libpng2

 Package: libA
 Depends: libpng2
 Version: 3.1-4

 now libA is recompiled:

 Package: libA
 Depends: libpng3 (>= 1.2.1-4)
 Version: 3.1-4.1

 but Package A hasn't been recompiled yet, that is, there is no:
 
 Package: A
 Depends: libpng2 (>= 1.0.12-5), libA
 
 That means it is installable by doing:

 $ apt-get install A

 which in this state leaves you with a non-working program.  Same thing
 for upgrading just libA.

 And that's precisely the reason why we are doing this in two steps:
 first recompile everything against the new libpng libraries, and /then/
 recompile against libpng3.

 Now, if you are talking about something that is not a package, no, I
 don't have a solution for that other than well written documentation.
 The only solution to this is mockering with SONAMEs, but I'll oppose
 vocally to that.  The interoperability problems that *that* would cause
 are not worth it.

-- 
Marcelo



Reply to: