Hi Mikko,

On 2014-11-26 2:01 PM, Ylinen, Mikko wrote:
> Hi,
> 
> On Wed, Nov 26, 2014 at 4:52 AM, Damian Hobson-Garcia <[email protected]>
> wrote:
> 
>> Hi Mikko,
>>
>> On 2014-10-23 12:31 PM, Damian Hobson-Garcia wrote:
>>
>> I am proposing:
>>
>> Prefer: mesa-libGLESv2
>> Prefer: libwayland-egl
>> Prefer: libgbm
>> Prefer: mesa-libEGL
>>
>> %if "%_repository" == "emulator"
>> Prefer: mesa-libGL
>> Prefer: emulator-yagl
>> ...
>> %endif
>>
>>
> Would you be able to explain why this is needed.
Sure.  Let me recap/restate a bit since this thread is already a little old.

The main goal is to be able to have the ARM versions (I'm working on
the Renesas versions) of these packages exist alongside the Mesa
versions (and other ARM versions) without having to create new build
configurations (and repositories) for each ARM platform. For the purpose
of this discussion, I will call a package that has multiple versions a
"multi-versioned package".

Having multiple packages that provide the same files (in the OpenGL/ES
case, each version will naturally provide its own libGLESv2.so* files)
will break the rpm build, since the tools will not know which version to
install when building other packages that require the multi-versioned
package (for OpenGL/ES, that's most of the graphics libraries).  The
"BuildRequires:" fields in the spec file typically only specify the
-devel version of the packages via the pkgconfg(), so if only one
version of each multi-versioned package supplies the -devel package, the
problem is solved for packages the directly require the multi-versioned
package. The assumption is that the -devel package contents (.pc file
and/or headers) should be the same for each version, since they
essentially do the same thing and should be binary compatible.

During the build process, if package A depends on package B that depends
on a multi-versioned package C, package B will typically depend on the
versioned library in packages C instead of the development one (in the
OpenGL/ES case, it will depend on libGLESv2.so.2.0.0 instead of
libGLESv2.so).  This means that once again there will be a choice as to
which version of package C should be installed for the build. This
conflict can be resolved with the "Prefer:" statements in the build
configuration.

The specific reason for my proposal is that I would like to start the
process of merging the Renesas versions of these OpenGL/ES libraries
into the repository, and of course I do not want to break the build.

For the Renesas R-Car M2 platform there are platform specific versions
of the libgbm, and libEGL libraries. libwayland-egl and mesa-libGLESv2
are strictly not necessary, but the 4 together form a good set of what
could potentially be useful for other platforms and the extra "Prefer:"s
should hurt anything even if there is only one version of that library
available.

> 
> 
>> It looks like the settings files in scm/meta/build-config are generated
>> from the OBS settings, so I'm not sure if this suggestion should be
>> submitted through gerrit to the scm/meta/build-config project or
>> somewhere else.
>>
> 
> Let's first discuss it here. I'd need some support from our OBS maintainers
> too.

Sounds great. I hope to get some input from them.

Thanks,
Damian
_______________________________________________
IVI mailing list
[email protected]
https://lists.tizen.org/listinfo/ivi

Reply via email to