-
-
Notifications
You must be signed in to change notification settings - Fork 304
Description
Description
Version 7.2.0 introduces a breaking change in how Bundle-NativeCode manifest entries are formatted. The new version incorrectly separates native code clauses with commas and duplicates the platform attributes for each library, causing native library loading failures.
Expected Behavior (7.1.0)
The Bundle-NativeCode header should list all native libraries separated by semicolons, with the platform attributes (processor, osname) specified once at the end:
Bundle-NativeCode: natives/linux-amd64/libgluegen_rt. so; natives/linux
-amd64/libjocl.so; natives/linux-amd64/libnativewindow_awt.so; native
s/linux-amd64/libnewt_drm. so; natives/linux-amd64/libnativewindow_x11
.so; natives/linux-amd64/libnativewindow_drm. so; natives/linux-amd64/
libnewt_head.so; natives/linux-amd64/libjogl_mobile.so; natives/linux
-amd64/libjogl_desktop.so; processor=x86-64; osname=Linux
Actual Behavior (7.2.0)
Version 7.2.0 separates each library with commas and duplicates the platform attributes for every entry:
Bundle-NativeCode: natives/linux-amd64/libgluegen_rt. so;osname=Linux;p
rocessor=x86-64,natives/linux-amd64/libjocl.so;osname=Linux;processor
=x86-64,natives/linux-amd64/libnativewindow_awt.so;osname=Linux;proce
ssor=x86-64,natives/linux-amd64/libnewt_drm.so;osname=Linux;processor
=x86-64,natives/linux-amd64/libnativewindow_x11.so;osname=Linux;proce
ssor=x86-64,natives/linux-amd64/libnativewindow_drm.so;osname=Linux;p
rocessor=x86-64,natives/linux-amd64/libnewt_head.so;osname=Linux;proc
essor=x86-64,natives/linux-amd64/libjogl_mobile.so;osname=Linux;proce
ssor=x86-64,natives/linux-amd64/libjogl_desktop.so;osname=Linux;proce
ssor=x86-64
Source Input
Bundle-NativeCode: natives/linux-amd64/libgluegen_rt.so; \
natives/linux-amd64/libjocl.so; \
natives/linux-amd64/libnativewindow_awt.so; \
natives/linux-amd64/libnewt_drm.so; \
natives/linux-amd64/libnativewindow_x11.so; \
natives/linux-amd64/libnativewindow_drm.so; \
natives/linux-amd64/libnewt_head.so; \
natives/linux-amd64/libjogl_mobile. so; \
natives/linux-amd64/libjogl_desktop.so; \
processor=x86-64; osname=Linux
Reference
According to the OSGi specification for Bundle-NativeCode (see this blog post), commas are used to separate alternative clauses (different native libraries for different platforms), while semicolons separate paths and attributes within the same clause.