Well, that’s unfortunate!

I have declared the platform like this (for the example of MacOS):

<Bundle-NativeCode>
vtk/libCosmo.jnilib;
[…]
vtk/libvtkzlib.jnilib;
osname=MacOSX;
processor=x86_64, *
</Bundle-NativeCode>

But when I deploy the bundle, it loads the Linux 32 bits one (I guess the first 
one in the list)…

Welcome to Apache Felix Gogo

g! obr:repos add file:/Users/ben/.m2/repository/repository.xml
g! obr:deploy org-example-myapp
g! Target resource(s):
-------------------
   My App (2.5.7.SNAPSHOT)

Required resource(s):
---------------------

   VTK service API (2.0.3.SNAPSHOT)

Optional resource(s):
---------------------
   Linux 32 bits VTK bundle (2.0.3.SNAPSHOT)

Deploying...
done.
g! 

Le 31 mars 2014 à 17:56, Neil Bartlett <[email protected]> a écrit :

> Okay so here's the thing... if you run this on any pre-R6 framework, then
> nothing provides this capability. And since R6 is not released, that means
> all of them.
> 
> But you shouldn't have to explicitly require the osgi.ee capability. Even
> on R5 and earlier, the Bundle-NativeCode header creates an implicit
> requirement for the correct platform -- assuming you did not use a wildcard
> entry and got the format of this header correct (it is tricky).
> 
> Regards,
> Neil
> 
> 
> On Mon, Mar 31, 2014 at 10:38 AM, Benoît Thiébault 
> <[email protected]>wrote:
> 
>> Hi again,
>> 
>> What bundle provides the osgi.native capability? When running Felix, I
>> have the following error:
>> 
>> g! org.osgi.framework.BundleException: Unresolved constraint in bundle
>> org-myapp [42]: Unable to resolve 42.0: missing requirement [42.0]
>> org.myapp.native; (library=vtk) [caused by: Unable to resolve 43.0: missing
>> requirement [43.0] osgi.native;
>> (&(osgi.native.osname=MacOS)(os.native.processor=x86_64))]
>> 
>> I’m using Felix 4.2.1 and I’m pretty sure I’m on a 64 bits Mac (Mavericks
>> 10.9.2)
>> 
>> Kind regards
>> Ben
>> 
>> Le 29 mars 2014 à 11:21, Neil Bartlett <[email protected]> a écrit :
>> 
>>> You cannot do this with OBR. If you can use the R5 repository format,
>> along
>>> with the repoindex tool, then you can use Provide- and Require-Capability
>>> headers to ensure the set of libraries you need is resolved. For example
>>> the fragment "org.example.nativelib.osx64" would provide something custom
>>> like this:
>>> 
>>>   Provide-Capability: myapp.native; library=com.example.nativelib
>>> 
>>> and it would require the osgi.native capability to ensure it can only
>>> resolve on a single platform:
>>> 
>>>   Require-Capability: osgi.native;
>>> filter:="(&(osgi.native.osname=MacOS)(os.native.processor=x86_64))"
>>> 
>>> Now your core bundle just requires the myapp.native capability and the
>>> resolver will pick the right fragment for your runtime platform.
>>> 
>>> 
>>> On Sat, Mar 29, 2014 at 7:47 AM, Benoît Thiébault <[email protected]
>>> wrote:
>>> 
>>>> Hi everyone,
>>>> 
>>>> I’m willing to simplify my application deployment and plan to use an
>> OBR.
>>>> On this OBR, I have deployed several bundles, including some containing
>>>> native code.
>>>> 
>>>> I have a cross-platform bundle, say org.example.nativelib and one
>> fragment
>>>> for each platform:
>>>> - org.example.nativelib.linux64b
>>>> - org.example.nativelib.linux32b
>>>> - org.example.nativelib.win7-64b
>>>> - org.example.nativelib.osx64b
>>>> - etc.
>>>> 
>>>> How can I be sure that when deploying org.example.nativelib from the
>> OBR,
>>>> the native fragment of the correct platform will be deployed?
>>>> 
>>>> Thanks for your help
>>>> 
>>>> Benoît
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>>> 
>>>> 
>> 
>> --
>> Dr Benoît Thiébault
>> Project Manager
>> 
>>  Artenum Toulouse - Science & Groupware
>>  http://www.artenum.com
>> 
>>      Bâtiment Calfocenter
>>      10, rue Marguerite-Long
>>      31320 Castanet-Tolosan
>>      France
>>      Phone: +33 (0)5 82 95 19 00
>> 
>> 
>> 

-- 
Dr Benoît Thiébault
Project Manager

  Artenum Toulouse - Science & Groupware
  http://www.artenum.com

      Bâtiment Calfocenter
      10, rue Marguerite-Long
      31320 Castanet-Tolosan
      France
      Phone: +33 (0)5 82 95 19 00


Reply via email to