[OE-core] [PATCH 2/5] libva-initial: New recipe to carry only pkgconfig files and headers

Khem Raj raj.khem at gmail.com
Wed Feb 26 20:31:14 UTC 2020



On 2/26/20 12:21 PM, Böszörményi Zoltán wrote:
> 2020. 02. 26. 20:44 keltezéssel, Khem Raj írta:
>>
>>
>> On 2/26/20 9:14 AM, Böszörményi Zoltán wrote:
>>> 2020. 02. 26. 18:08 keltezéssel, Böszörményi Zoltán írta:
>>>> 2020. 02. 26. 17:51 keltezéssel, Khem Raj írta:
>>>>>
>>>>>
>>>>> On 2/26/20 7:58 AM, Böszörményi Zoltán wrote:
>>>>>> 2020. 02. 26. 16:30 keltezéssel, Khem Raj írta:
>>>>>>> On Wed, Feb 26, 2020 at 7:20 AM Böszörményi Zoltán 
>>>>>>> <zboszor at pr.hu> wrote:
>>>>>>>>
>>>>>>>> 2020. 02. 26. 16:13 keltezéssel, Khem Raj írta:
>>>>>>>>> On Wed, Feb 26, 2020 at 7:12 AM Böszörményi Zoltán <zboszor at pr.hu>
>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> 2020. 02. 26. 15:58 keltezéssel, Khem Raj írta:
>>>>>>>>>>> On Wed, Feb 26, 2020 at 6:05 AM Böszörményi Zoltán via
>>>>>>>>>>> Openembedded-core <openembedded-core at lists.openembedded.org> 
>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> The package name exploits sstate.bbclass so it's not added as
>>>>>>>>>>>> implicit dependency to packages.
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> what is the use of this recipe and why should it be added to 
>>>>>>>>>>> core ?
>>>>>>>>>>
>>>>>>>>>> I should have added a cover letter, shouldn't I?
>>>>>>>>>> See patch 3/5 in the series for enabling gallium-va in Mesa.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> recipe seems to build full libva, so why not just use that 
>>>>>>>>> instead.
>>>>>>>>
>>>>>>>> You don't seem to be reading mails from openembedded-devel that
>>>>>>>> you were cc-ed on.
>>>>>>>
>>>>>>> don't assume things
>>>>>>
>>>>>> Understood.
>>>>>>
>>>>>>>> http://lists.openembedded.org/pipermail/openembedded-devel/2020-February/205142.html 
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> I am trying to make us thing if -dev package can be used somehow to
>>>>>>> avoid this
>>>>>>> or have we exhausted all possibilities.
>>>>>>
>>>>>> Why is it a problem to exploit sstate.bbclass internals implicitly
>>>>>> by using a *-initial package name for an arbitrary package?
>>>>>
>>>>> it is not a problem, however, it is a work to keep such setup going 
>>>>> and
>>>>> also it has to be considered always in dependencies etc.
>>>>>
>>>>>> Surely it's not reserved for libgcc-initial and friends.
>>>>>>
>>>>>
>>>>> they are different usecases, libgcc-initial is a veneer/trampoline 
>>>>> used
>>>>> to bootstrap toolchain, and that too we want to remove at every
>>>>> opportunity we get, we use to have lot of initial recipes and they are
>>>>> very few left, so we have to be mindful of adding another one.
>>>>>
>>>>>> It solves two problems nicely in one go:
>>>>>> 1. by using a different package than libva, the libva-vs-mesa
>>>>>>     circular dependency is avoided. mesa needs a crippled libva
>>>>>> (pkgconfig + headers)
>>>>>>     to build its VAAPI state tracker and the VAAPI drivers
>>>>>
>>>>> I see archlinux using full libva for this. how are other distros doing
>>>>> it? is this problem unique to OE
>>>>
>>>> Fedora also uses the full libva.
>>>>
>>>> However, the chicken-and-egg circular dependency is broken by history
>>>> for these distros.
>>>>
>>>> Koji and Mock build one package at a time with all their dependencies
>>>> already available from the staging package repository and the results
>>>> will be eventually uploaded to the same repository.
>>>>
>>>> Bitbake doesn't have have this loophole to download pre-built 
>>>> dependencies.
>>>
>>> Also, somewhere on 01.org or in the libva sources the same solution
>>> I presented in this patchset is suggested:
>>>
>>> 1. build libva with --disable-glx (it is needed when Mesa SDK is 
>>> present)
>>>     but it's not needed by not depending on mesa in libva-initial
>>> 2. build mesa with libva build in (1) as it only needs the pkgconfig 
>>> files
>>>     and the headers
>>> 3. build libva with --enable-glx. It's autodetected, set to on with
>>>     depending on mesa in the full libva recipe.
>>
>> looking at the nature of the problem, it might be the way to unbreak 
>> the catch-22, does anything else needs this bootstrap header package ?
> 
> Besides DEPENDS="libdrm", no.
> 
>> do we need to ensure that content of libva-dev and the bootstrap 
>> packages do not overlap.
> 
> I don't think so.
> Apparently, the mesa-dev package built from this patchset
> doesn't depend on libva-initial-dev and this latter package
> doesn't get included into an image either. I guess the
> sstate.bbclass internals deal with this properly.
> 

OK, I guess, we should give it a test.

> 
>>
>>>
>>> Obviusly the same libva recipe can't be used to build mesa that 
>>> depends on mesa.
>>>
>>
>>
> 


More information about the Openembedded-core mailing list