[Buildroot] Question: Multiple versions of a package.
H Hartley Sweeten
hartleys at visionengravers.com
Tue Oct 4 00:12:48 UTC 2011
On Saturday, October 01, 2011 4:20 AM, Thomas Petazzoni wrote:
> Le Fri, 30 Sep 2011 16:21:02 -0500,
> H Hartley Sweeten <hartleys at visionengravers.com> a écrit :
>> Can a package/*/*.mk file be setup to handle two different versions
>> of a package or should two separate package/* directories be created?
>> I'm trying to add the ParaGUI package to buildroot. This is a widget
>> toolkit library that uses SDL. It also needs libsigc++, which is
>> available in packages/, but it's an incompatible version.
>> The version of libsigc++ in buildroot is 2.2.8. ParaGUI needs
>> libsigc++1.2 >= 1.2.5. It appears that even though these libraries
>> do the same thing they have very different API's.
>> A similar issue occurs with the new version of SDL. It has not been
>> offically released yet but SDL1.2 and SDL1.3 (2.0?) use completely
>> different APIs.
>> What's that bast way to handle this situation?
> There is basically two ways :
> 1) A single libsigc++ package, with a suboption to select the version
> to be compiled. This solution does not allow two different versions
> of libsigc++ to be built. For different versions of a library
> having different ABIs, this solution is probably not appropriate.
> 2) Separate libsigc++ packages, with different names, like libsigc1
> and libsigc2. This allows both versions to be built and installed
> in the target, in case different applications require different
> versions of the libsigc library.
> I guess in your case, solution 2) is the only way. This is also what
> traditional binary desktop distributions do.
Thanks for the information.
Using your suggestion (2) I was able to add both libsigc++ packages and
finally get the ParaGUI package to compile.
I have already submitted a patch to move package/libsigc to package/libsigc2.
If that one looks ok I'll submit the patches to add libsigc++1.2 and ParaGUI
Two issues I found with the ParaGUI package.
1) There is an error in one of the source files that breaks the build.
2) There is a bug in the configure script that breaks the sdl library linkage.
I have patches for both of these as part of the package/paragui patch. Is this
normally how something like this would be handled? The ParaGUI library is pretty
old and I don't think anyone is currently maintaining it.
I actually found a couple references to issue (2) on the web as a bug report to
Debian (Bug#551465) but nothing about an official patch to fix it.
Issue (1) might be the toolchain I am using. The build breaks on a std::strlen()
Call, I just changed it to strlen() to get the build to complete.
More information about the buildroot