You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by Benoît Thiébault <th...@artenum.com> on 2014/06/11 21:50:43 UTC
Felix 4.2.1 and 4.4.0 regression wrt native code (Win7)
Hi everyone,
I have an OSGi bundle containing native code that worked great with Felix 4.0.2.
I have switched to newer versions (originally 4.2.1 but also I tried with 4.4.0) and the bundle does not load anymore on Windows 7 64-bits (I haven’t tried the 32-bits version): I have a "No matching libraries found" error message. Java version is 1.6.0_37.
I don’t have the problem with native bundles on other platforms (I tried Debian Squeeze 64-bits and Mac OS Mavericks).
Do you know were this could come from? Is there a workaround, or better, a fix? Or should I go back to Felix 4.0.2 (which has difficulties with Java 7…)?
I have uploaded files here to reproduce the bug:
http://dev.artenum.com/blog/ben/download/FelixComparison_zip?action=download&nodecorator
It contains two versions of the Felix Framework (4.0.2 and 4.4.0), I just added the minimum required bundles in the bundle folder. Bundles in the bundle folder are identical. When you run the two Run.bat files, you obtain the attached screenshot. Bundle 4 loads in one case, not with Felix 4.4.0.
Below is also the Bundle-NativeCode definition in Maven Bundle plugin.
Thanks for you advice
Kind regards,
Ben
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Export-Package>vtk;version=${vtk.version}</Export-Package>
<Embed-Dependency>*;groupId=vtk;artifactId=vtk</Embed-Dependency>
<Include-Resource>
vtk=dependencies/thirdparty/vtk-${vtk.version}/windows-x86_64,
{maven-resources}
</Include-Resource>
<Bundle-NativeCode>
vtk/awt.dll;
vtk/jawt.dll;
vtk/msvcp100.dll;
vtk/msvcr100.dll;
vtk/Cosmo.dll;
vtk/MapReduceMPI.dll;
vtk/VPIC.dll;
vtk/mpistubs.dll;
vtk/vtkCharts.dll;
vtk/vtkChartsJava.dll;
vtk/vtkCommon.dll;
vtk/vtkCommonJava.dll;
vtk/vtkDICOMParser.dll;
vtk/vtkFiltering.dll;
vtk/vtkFilteringJava.dll;
vtk/vtkGenericFiltering.dll;
vtk/vtkGenericFilteringJava.dll;
vtk/vtkGeovis.dll;
vtk/vtkGeovisJava.dll;
vtk/vtkGraphics.dll;
vtk/vtkGraphicsJava.dll;
vtk/vtkHybrid.dll;
vtk/vtkHybridJava.dll;
vtk/vtkIO.dll;
vtk/vtkIOJava.dll;
vtk/vtkImaging.dll;
vtk/vtkImagingJava.dll;
vtk/vtkInfovis.dll;
vtk/vtkInfovisJava.dll;
vtk/vtkNetCDF.dll;
vtk/vtkNetCDF_cxx.dll;
vtk/vtkParallel.dll;
vtk/vtkParallelJava.dll;
vtk/vtkRendering.dll;
vtk/vtkRenderingJava.dll;
vtk/vtkViews.dll;
vtk/vtkViewsJava.dll;
vtk/vtkVolumeRendering.dll;
vtk/vtkVolumeRenderingJava.dll;
vtk/vtkWidgets.dll;
vtk/vtkWidgetsJava.dll;
vtk/vtkalglib.dll;
vtk/vtkexoIIc.dll;
vtk/vtkexpat.dll;
vtk/vtkfreetype.dll;
vtk/vtkftgl.dll;
vtk/vtkjpeg.dll;
vtk/vtklibxml2.dll;
vtk/vtkmetaio.dll;
vtk/vtkpng.dll;
vtk/vtkproj4.dll;
vtk/vtksys.dll;
vtk/vtktiff.dll;
vtk/vtkverdict.dll;
vtk/vtkzlib.dll;
osname=win7;
processor=x86_64
</Bundle-NativeCode>
</instructions>
</configuration>
</plugin>
Re: Felix 4.2.1 and 4.4.0 regression wrt native code (Win7)
Posted by "Richard S. Hall" <he...@ungoverned.org>.
On 6/12/14, 05:01 , Benoît Thiébault wrote:
> Hi again,
>
> I checked what version of Felix did break it:
>
> - Everything worked fine with Felix 4.0.3 that was released the 28th of December 2012
> - Version 4.2.0, released on the 11th of February 2013, broke it
>
> Isn’t this modification responsible for this?
> http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/util/manifestparser/R4LibraryClause.java?r1=1355580&r2=1441169
>
> It also seems to be related to bug https://issues.apache.org/jira/browse/FELIX-3363
If I had to guess, I'd say that the OS name being reported by the JVM
(i.e., System.getProperty("os.name");) is not what we are expecting.
I don't have Windows to test, but if I set a breakpoint in
R4LibraryClause.normalizeOSName() and manually edit 'value' to be
"Windows 7", then it appears to resolve the bundle correctly on my Mac.
What value does your JVM report for os.name?
-> richard
>
> Thanks for your help,
>
> Kind regards,
>
> Ben
>
> Le 11 juin 2014 à 21:50, Benoît Thiébault <th...@artenum.com> a écrit :
>
>> Hi everyone,
>>
>> I have an OSGi bundle containing native code that worked great with Felix 4.0.2.
>>
>> I have switched to newer versions (originally 4.2.1 but also I tried with 4.4.0) and the bundle does not load anymore on Windows 7 64-bits (I haven’t tried the 32-bits version): I have a "No matching libraries found" error message. Java version is 1.6.0_37.
>>
>> I don’t have the problem with native bundles on other platforms (I tried Debian Squeeze 64-bits and Mac OS Mavericks).
>>
>> Do you know were this could come from? Is there a workaround, or better, a fix? Or should I go back to Felix 4.0.2 (which has difficulties with Java 7…)?
>>
>> I have uploaded files here to reproduce the bug:
>> http://dev.artenum.com/blog/ben/download/FelixComparison_zip?action=download&nodecorator
>>
>> It contains two versions of the Felix Framework (4.0.2 and 4.4.0), I just added the minimum required bundles in the bundle folder. Bundles in the bundle folder are identical. When you run the two Run.bat files, you obtain the attached screenshot. Bundle 4 loads in one case, not with Felix 4.4.0.
>>
>> Below is also the Bundle-NativeCode definition in Maven Bundle plugin.
>>
>> Thanks for you advice
>>
>> Kind regards,
>>
>> Ben
>>
>>
>> <Error.png>
>>
>> <plugin>
>> <groupId>org.apache.felix</groupId>
>> <artifactId>maven-bundle-plugin</artifactId>
>> <configuration>
>> <instructions>
>> <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
>> <Export-Package>vtk;version=${vtk.version}</Export-Package>
>> <Embed-Dependency>*;groupId=vtk;artifactId=vtk</Embed-Dependency>
>> <Include-Resource>
>> vtk=dependencies/thirdparty/vtk-${vtk.version}/windows-x86_64,
>> {maven-resources}
>> </Include-Resource>
>> <Bundle-NativeCode>
>> vtk/awt.dll;
>> vtk/jawt.dll;
>> vtk/msvcp100.dll;
>> vtk/msvcr100.dll;
>> vtk/Cosmo.dll;
>> vtk/MapReduceMPI.dll;
>> vtk/VPIC.dll;
>> vtk/mpistubs.dll;
>> vtk/vtkCharts.dll;
>> vtk/vtkChartsJava.dll;
>> vtk/vtkCommon.dll;
>> vtk/vtkCommonJava.dll;
>> vtk/vtkDICOMParser.dll;
>> vtk/vtkFiltering.dll;
>> vtk/vtkFilteringJava.dll;
>> vtk/vtkGenericFiltering.dll;
>> vtk/vtkGenericFilteringJava.dll;
>> vtk/vtkGeovis.dll;
>> vtk/vtkGeovisJava.dll;
>> vtk/vtkGraphics.dll;
>> vtk/vtkGraphicsJava.dll;
>> vtk/vtkHybrid.dll;
>> vtk/vtkHybridJava.dll;
>> vtk/vtkIO.dll;
>> vtk/vtkIOJava.dll;
>> vtk/vtkImaging.dll;
>> vtk/vtkImagingJava.dll;
>> vtk/vtkInfovis.dll;
>> vtk/vtkInfovisJava.dll;
>> vtk/vtkNetCDF.dll;
>> vtk/vtkNetCDF_cxx.dll;
>> vtk/vtkParallel.dll;
>> vtk/vtkParallelJava.dll;
>> vtk/vtkRendering.dll;
>> vtk/vtkRenderingJava.dll;
>> vtk/vtkViews.dll;
>> vtk/vtkViewsJava.dll;
>> vtk/vtkVolumeRendering.dll;
>> vtk/vtkVolumeRenderingJava.dll;
>> vtk/vtkWidgets.dll;
>> vtk/vtkWidgetsJava.dll;
>> vtk/vtkalglib.dll;
>> vtk/vtkexoIIc.dll;
>> vtk/vtkexpat.dll;
>> vtk/vtkfreetype.dll;
>> vtk/vtkftgl.dll;
>> vtk/vtkjpeg.dll;
>> vtk/vtklibxml2.dll;
>> vtk/vtkmetaio.dll;
>> vtk/vtkpng.dll;
>> vtk/vtkproj4.dll;
>> vtk/vtksys.dll;
>> vtk/vtktiff.dll;
>> vtk/vtkverdict.dll;
>> vtk/vtkzlib.dll;
>> osname=win7;
>> processor=x86_64
>> </Bundle-NativeCode>
>> </instructions>
>> </configuration>
>> </plugin>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org
Re: Felix 4.2.1 and 4.4.0 regression wrt native code (Win7)
Posted by Benoît Thiébault <th...@artenum.com>.
Hi again,
I checked what version of Felix did break it:
- Everything worked fine with Felix 4.0.3 that was released the 28th of December 2012
- Version 4.2.0, released on the 11th of February 2013, broke it
Isn’t this modification responsible for this?
http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/util/manifestparser/R4LibraryClause.java?r1=1355580&r2=1441169
It also seems to be related to bug https://issues.apache.org/jira/browse/FELIX-3363
Thanks for your help,
Kind regards,
Ben
Le 11 juin 2014 à 21:50, Benoît Thiébault <th...@artenum.com> a écrit :
> Hi everyone,
>
> I have an OSGi bundle containing native code that worked great with Felix 4.0.2.
>
> I have switched to newer versions (originally 4.2.1 but also I tried with 4.4.0) and the bundle does not load anymore on Windows 7 64-bits (I haven’t tried the 32-bits version): I have a "No matching libraries found" error message. Java version is 1.6.0_37.
>
> I don’t have the problem with native bundles on other platforms (I tried Debian Squeeze 64-bits and Mac OS Mavericks).
>
> Do you know were this could come from? Is there a workaround, or better, a fix? Or should I go back to Felix 4.0.2 (which has difficulties with Java 7…)?
>
> I have uploaded files here to reproduce the bug:
> http://dev.artenum.com/blog/ben/download/FelixComparison_zip?action=download&nodecorator
>
> It contains two versions of the Felix Framework (4.0.2 and 4.4.0), I just added the minimum required bundles in the bundle folder. Bundles in the bundle folder are identical. When you run the two Run.bat files, you obtain the attached screenshot. Bundle 4 loads in one case, not with Felix 4.4.0.
>
> Below is also the Bundle-NativeCode definition in Maven Bundle plugin.
>
> Thanks for you advice
>
> Kind regards,
>
> Ben
>
>
> <Error.png>
>
> <plugin>
> <groupId>org.apache.felix</groupId>
> <artifactId>maven-bundle-plugin</artifactId>
> <configuration>
> <instructions>
> <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
> <Export-Package>vtk;version=${vtk.version}</Export-Package>
> <Embed-Dependency>*;groupId=vtk;artifactId=vtk</Embed-Dependency>
> <Include-Resource>
> vtk=dependencies/thirdparty/vtk-${vtk.version}/windows-x86_64,
> {maven-resources}
> </Include-Resource>
> <Bundle-NativeCode>
> vtk/awt.dll;
> vtk/jawt.dll;
> vtk/msvcp100.dll;
> vtk/msvcr100.dll;
> vtk/Cosmo.dll;
> vtk/MapReduceMPI.dll;
> vtk/VPIC.dll;
> vtk/mpistubs.dll;
> vtk/vtkCharts.dll;
> vtk/vtkChartsJava.dll;
> vtk/vtkCommon.dll;
> vtk/vtkCommonJava.dll;
> vtk/vtkDICOMParser.dll;
> vtk/vtkFiltering.dll;
> vtk/vtkFilteringJava.dll;
> vtk/vtkGenericFiltering.dll;
> vtk/vtkGenericFilteringJava.dll;
> vtk/vtkGeovis.dll;
> vtk/vtkGeovisJava.dll;
> vtk/vtkGraphics.dll;
> vtk/vtkGraphicsJava.dll;
> vtk/vtkHybrid.dll;
> vtk/vtkHybridJava.dll;
> vtk/vtkIO.dll;
> vtk/vtkIOJava.dll;
> vtk/vtkImaging.dll;
> vtk/vtkImagingJava.dll;
> vtk/vtkInfovis.dll;
> vtk/vtkInfovisJava.dll;
> vtk/vtkNetCDF.dll;
> vtk/vtkNetCDF_cxx.dll;
> vtk/vtkParallel.dll;
> vtk/vtkParallelJava.dll;
> vtk/vtkRendering.dll;
> vtk/vtkRenderingJava.dll;
> vtk/vtkViews.dll;
> vtk/vtkViewsJava.dll;
> vtk/vtkVolumeRendering.dll;
> vtk/vtkVolumeRenderingJava.dll;
> vtk/vtkWidgets.dll;
> vtk/vtkWidgetsJava.dll;
> vtk/vtkalglib.dll;
> vtk/vtkexoIIc.dll;
> vtk/vtkexpat.dll;
> vtk/vtkfreetype.dll;
> vtk/vtkftgl.dll;
> vtk/vtkjpeg.dll;
> vtk/vtklibxml2.dll;
> vtk/vtkmetaio.dll;
> vtk/vtkpng.dll;
> vtk/vtkproj4.dll;
> vtk/vtksys.dll;
> vtk/vtktiff.dll;
> vtk/vtkverdict.dll;
> vtk/vtkzlib.dll;
> osname=win7;
> processor=x86_64
> </Bundle-NativeCode>
> </instructions>
> </configuration>
> </plugin>
--
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