Compare commits

...

No commits in common. "c8s" and "c9-beta" have entirely different histories.
c8s ... c9-beta

10 changed files with 206 additions and 93 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/jna-4.5.1-clean.tar.xz
SOURCES/jna-5.6.0-clean.tar.xz

View File

@ -1 +1 @@
23ecbd9bdc26f7c01365b53f46382eca214ef832 SOURCES/jna-4.5.1-clean.tar.xz
78b24042ae61b976b521efa9c333a914a7981c4c SOURCES/jna-5.6.0-clean.tar.xz

View File

@ -1,14 +1,14 @@
From 52ef407584801916d6e60c4f4c5411023b5ac369 Mon Sep 17 00:00:00 2001
From 2560a89cc5537890c3a692263715c93b97d7ea37 Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek@redhat.com>
Date: Mon, 16 Jan 2017 11:29:06 +0100
Subject: [PATCH 1/6] Adapt build
Subject: [PATCH 1/7] Adapt build
---
native/Makefile | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/native/Makefile b/native/Makefile
index 6f9ad25..3712a9e 100644
index 1bea2dc..cb3afed 100644
--- a/native/Makefile
+++ b/native/Makefile
@@ -97,7 +97,7 @@ CDEFINES=-D_REENTRANT
@ -20,7 +20,7 @@ index 6f9ad25..3712a9e 100644
ifeq ($(DYNAMIC_LIBFFI),true)
CFLAGS += $(shell pkg-config --cflags libffi 2>/dev/null || echo)
LIBS += $(shell pkg-config --libs libffi 2>/dev/null || echo -lffi)
@@ -455,7 +455,6 @@ $(BUILD)/$(JNA_JNI_VERSION).stamp:
@@ -457,7 +457,6 @@ $(BUILD)/$(JNA_JNI_VERSION).stamp:
$(LIBRARY): $(JNIDISPATCH_OBJS) $(FFI_LIB)
$(LD) $(LDFLAGS) $(JNIDISPATCH_OBJS) $(FFI_LIB) $(LIBS)
@ -29,5 +29,5 @@ index 6f9ad25..3712a9e 100644
$(TESTLIB): $(BUILD)/testlib.o
$(LD) $(LDFLAGS) $< $(LIBS)
--
2.14.3
2.38.1

View File

@ -1,24 +1,22 @@
From 3d08314de0494ff8bdc1a7bccc0ecc1730dbdd60 Mon Sep 17 00:00:00 2001
From 28f5c64f5443a6d465663a1b737e9fc20b7364d4 Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek@redhat.com>
Date: Mon, 16 Jan 2017 11:31:32 +0100
Subject: [PATCH 2/6] Load system library
Subject: [PATCH 2/7] Load system library
---
src/com/sun/jna/Native.java | 97 ++-------------------------------------------
1 file changed, 4 insertions(+), 93 deletions(-)
src/com/sun/jna/Native.java | 80 ++-----------------------------------
1 file changed, 4 insertions(+), 76 deletions(-)
diff --git a/src/com/sun/jna/Native.java b/src/com/sun/jna/Native.java
index 91b195f..9ac3815 100644
index 0cf39fa..603659c 100644
--- a/src/com/sun/jna/Native.java
+++ b/src/com/sun/jna/Native.java
@@ -829,101 +829,12 @@ public final class Native implements Version {
/**
@@ -912,84 +912,12 @@ public final class Native implements Version {
* Loads the JNA stub library.
- * First tries jna.boot.library.path, then the system path, then from the
- * jar file.
+ * MODIFIED FROM UPSTREAM - we rip out all sorts of gunk here that is
+ * unnecessary when JNA is properly installed with the OS.
* First tries jna.boot.library.path, then the system path, then from the
* jar file.
+ * MODIFIED FROM UPSTREAM - we rip out all sorts of gunk here that is
+ * unnecessary when JNA is properly installed with the OS.
*/
private static void loadNativeDispatchLibrary() {
- if (!Boolean.getBoolean("jna.nounpack")) {
@ -26,7 +24,7 @@ index 91b195f..9ac3815 100644
- removeTemporaryFiles();
- }
- catch(IOException e) {
- System.err.println("JNA Warning: IOException removing temporary files: " + e.getMessage());
- LOG.log(Level.WARNING, "JNA Warning: IOException removing temporary files", e);
- }
- }
-
@ -39,20 +37,14 @@ index 91b195f..9ac3815 100644
- String dir = dirs.nextToken();
- File file = new File(new File(dir), System.mapLibraryName(libName).replace(".dylib", ".jnilib"));
- String path = file.getAbsolutePath();
- if (DEBUG_JNA_LOAD) {
- System.out.println("Looking in " + path);
- }
- LOG.log(DEBUG_JNA_LOAD_LEVEL, "Looking in {0}", path);
- if (file.exists()) {
- try {
- if (DEBUG_JNA_LOAD) {
- System.out.println("Trying " + path);
- }
- LOG.log(DEBUG_JNA_LOAD_LEVEL, "Trying {0}", path);
- System.setProperty("jnidispatch.path", path);
- System.load(path);
- jnidispatchPath = path;
- if (DEBUG_JNA_LOAD) {
- System.out.println("Found jnidispatch at " + path);
- }
- LOG.log(DEBUG_JNA_LOAD_LEVEL, "Found jnidispatch at {0}", path);
- return;
- } catch (UnsatisfiedLinkError ex) {
- // Not a problem if already loaded in anoteher class loader
@ -70,37 +62,28 @@ index 91b195f..9ac3815 100644
- ext = "dylib";
- }
- path = path.substring(0, path.lastIndexOf(orig)) + ext;
- if (DEBUG_JNA_LOAD) {
- System.out.println("Looking in " + path);
- }
- LOG.log(DEBUG_JNA_LOAD_LEVEL, "Looking in {0}", path);
- if (new File(path).exists()) {
- try {
- if (DEBUG_JNA_LOAD) {
- System.out.println("Trying " + path);
- }
- LOG.log(DEBUG_JNA_LOAD_LEVEL, "Trying {0}", path);
- System.setProperty("jnidispatch.path", path);
- System.load(path);
- jnidispatchPath = path;
- if (DEBUG_JNA_LOAD) {
- System.out.println("Found jnidispatch at " + path);
- }
- LOG.log(DEBUG_JNA_LOAD_LEVEL, "Found jnidispatch at {0}", path);
- return;
- } catch (UnsatisfiedLinkError ex) {
- System.err.println("File found at " + path + " but not loadable: " + ex.getMessage());
- LOG.log(Level.WARNING, "File found at " + path + " but not loadable: " + ex.getMessage(), ex);
- }
- }
- }
- }
- }
- if (!Boolean.getBoolean("jna.nosys")) {
- String jnaNosys = System.getProperty("jna.nosys", "true");
- if ((!Boolean.parseBoolean(jnaNosys)) || Platform.isAndroid()) {
- try {
- if (DEBUG_JNA_LOAD) {
- System.out.println("Trying (via loadLibrary) " + libName);
- }
- LOG.log(DEBUG_JNA_LOAD_LEVEL, "Trying (via loadLibrary) {0}", libName);
- System.loadLibrary(libName);
- if (DEBUG_JNA_LOAD) {
- System.out.println("Found jnidispatch on system path");
- }
- LOG.log(DEBUG_JNA_LOAD_LEVEL, "Found jnidispatch on system path");
- return;
- }
- catch(UnsatisfiedLinkError e) {
@ -113,10 +96,10 @@ index 91b195f..9ac3815 100644
- throw new UnsatisfiedLinkError("Unable to locate JNA native support library");
- }
+ jnidispatchPath = "@LIBDIR@/" + System.mapLibraryName("jnidispatch");
+ System.load(jnidispatchPath);
+ System.load(jnidispatchPath);
}
static final String JNA_TMPLIB_PREFIX = "jna";
--
2.14.3
2.38.1

View File

@ -1,24 +1,24 @@
From c0f33e9ed0a5cfd79b58487c2a36c9b880b49947 Mon Sep 17 00:00:00 2001
From 4b05abecb7b8a1edc0a32048ab12aba6ee1d6824 Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek@redhat.com>
Date: Mon, 16 Jan 2017 11:32:32 +0100
Subject: [PATCH 3/6] Tests headless
Subject: [PATCH 3/7] Tests headless
---
build.xml | 1 +
1 file changed, 1 insertion(+)
diff --git a/build.xml b/build.xml
index 63a9cc7..ab9cf52 100644
index 0153731..8dbe173 100644
--- a/build.xml
+++ b/build.xml
@@ -1128,6 +1128,7 @@ osname=macosx;processor=x86;processor=x86-64;processor=ppc
@@ -1250,6 +1250,7 @@ cd ..
<sysproperty key="jna.nosys" value="true"/>
<sysproperty key="jna.builddir" file="${build}"/>
<sysproperty key="jna.nativedir" file="${build.native}"/>
<jvmarg value="${vmopt.arch}"/>
+ <jvmarg value="-Djava.awt.headless=true"/>
<classpath><path refid="test.runpath"/></classpath>
<formatter type="brief" usefile="false"/>
<formatter type="xml"/>
--
2.14.3
2.38.1

View File

@ -1,24 +1,24 @@
From ced8baacd3bccba7ebaba80785b891bf579af215 Mon Sep 17 00:00:00 2001
From 042a878f130a855faae8706abc12a4c417607753 Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek@redhat.com>
Date: Tue, 31 Jan 2017 14:21:19 +0100
Subject: [PATCH 4/6] Fix javadoc build
Subject: [PATCH 4/7] Fix javadoc build
---
build.xml | 1 +
1 file changed, 1 insertion(+)
diff --git a/build.xml b/build.xml
index ab9cf52..d1fe4aa 100644
index 8dbe173..741ab6e 100644
--- a/build.xml
+++ b/build.xml
@@ -1233,6 +1233,7 @@ osname=macosx;processor=x86;processor=x86-64;processor=ppc
@@ -1355,6 +1355,7 @@ cd ..
<group title="Platform Specific" packages="com.sun.jna.platform.*"/>
<arg value="-notimestamp"/>
+ <arg value="--allow-script-in-comments"/>
</javadoc>
<jar jarfile="${platform-javadoc-jar}">
<jar jarfile="${platform-javadoc-jar}" createUnicodeExtraFields="never" encoding="UTF-8">
<fileset dir="${javadoc}" />
--
2.14.3
2.38.1

View File

@ -1,20 +1,19 @@
From de939d7c9266f89542cea5ebef5980a95f1244a9 Mon Sep 17 00:00:00 2001
From c86b3417e9588cdbb43d7034e16a22d4b815ce95 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk@redhat.com>
Date: Mon, 10 Jul 2017 11:48:43 +0200
Subject: [PATCH 5/6] Fix duplicate manifest entry
Subject: [PATCH 5/7] Fix duplicate manifest entry
Resolves https://bugzilla.redhat.com/show_bug.cgi?id=1469022
---
build.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/build.xml b/build.xml
index d1fe4aa..c0a0b78 100644
index 741ab6e..54e569c 100644
--- a/build.xml
+++ b/build.xml
@@ -571,9 +571,9 @@ osname=macosx;processor=x86;processor=x86-64;processor=ppc
includes="*jnidispatch*"
prefix="com/sun/jna/w32ce-arm"/>
@@ -611,9 +611,9 @@ osname=macosx;processor=x86;processor=x86-64;processor=ppc
includes="LICENSE,LGPL2.1,AL2.0"
prefix="META-INF"/>
</jar>
- <zip zipfile="${build}/${minjar}">
+ <jar zipfile="${build}/${minjar}" filesetmanifest="merge">
@ -25,5 +24,5 @@ index d1fe4aa..c0a0b78 100644
<target name="aar" depends="jar" description="Build Android Archive">
--
2.14.3
2.38.1

View File

@ -1,22 +1,23 @@
From 6e8784db2fa3b3b2efedaae75d15d5d5cf3ed50c Mon Sep 17 00:00:00 2001
From 2e21a725ac8836f51f8b9a0171d5610eea81559f Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek@redhat.com>
Date: Thu, 22 Feb 2018 16:17:15 +0100
Subject: [PATCH 6/6] Remove -Werror
Subject: [PATCH 6/7] Remove -Werror
---
native/Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/native/Makefile b/native/Makefile
index 3712a9e..73a906f 100644
index cb3afed..028c201 100644
--- a/native/Makefile
+++ b/native/Makefile
@@ -336,10 +336,10 @@ endif
ifeq ($(CC),gcc)
@@ -337,11 +337,11 @@ ifeq ($(CC),gcc)
GCC_MAJOR_VERSION = $(shell gcc -dumpversion | cut -f 1 -d '.')
ifneq ($(GCC_MAJOR_VERSION),4)
- LOC_CC_OPTS=-Wno-unknown-warning-option -Werror -Wno-clobbered -Wno-unused-variable
+ LOC_CC_OPTS=-Wno-unknown-warning-option -Wno-clobbered -Wno-unused-variable
ifneq ($(GCC_MAJOR_VERSION),3)
- LOC_CC_OPTS=-Wno-unknown-warning-option -Werror -Wno-clobbered -Wno-unused-variable
+ LOC_CC_OPTS=-Wno-unknown-warning-option -Wno-clobbered -Wno-unused-variable
endif
endif
else
- LOC_CC_OPTS=-Wno-unknown-warning-option -Werror -Wno-clobbered -Wno-unused-variable
@ -25,5 +26,5 @@ index 3712a9e..73a906f 100644
# Enable 64-bit builds if the arch demands it
--
2.14.3
2.38.1

View File

@ -0,0 +1,59 @@
From a925b1196599f48bfbd85e7f37cfc7c1e9583a3f Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk@redhat.com>
Date: Mon, 23 Jan 2023 14:53:34 +0100
Subject: [PATCH 7/7] Set explicit compiler release
---
build.xml | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/build.xml b/build.xml
index 54e569c..f724bb0 100644
--- a/build.xml
+++ b/build.xml
@@ -101,9 +101,7 @@
JDK 11 is the last JDK, that supports creation of Java 6 compatible class
files.
-->
- <condition property="compatibility" value="1.6" else="9">
- <matches pattern="^1\.\d+$" string="${ant.java.version}"/>
- </condition>
+ <property name="compatibility" value="8"/>
<condition property="compatibility-check" value="true">
<equals arg1="${compatibility}" arg2="1.6" />
@@ -394,6 +392,7 @@
<javac source="${compatibility}"
target="${compatibility}"
+ release="${compatibility}"
destdir="${classes}"
includeantruntime="false"
deprecation="on"
@@ -405,6 +404,7 @@
<javac classpath="${compatibility}"
source="${compatibility}"
target="${compatibility}"
+ release="${compatibility}"
destdir="${classes}"
includeantruntime="false"
deprecation="on"
@@ -1071,6 +1071,7 @@ cd ..
<javac classpathref="compile-test.path"
source="${test.compatibility}"
target="${test.compatibility}"
+ release="${test.compatibility}"
destdir="${test.classes}"
includeantruntime="false"
includes="**/StructureFieldOrderInspector.java"
@@ -1087,6 +1088,7 @@ cd ..
<javac classpathref="compile-test.path"
source="${test.compatibility}"
target="${test.compatibility}"
+ release="${test.compatibility}"
destdir="${test.classes}"
includeantruntime="false"
excludes="${tests.exclude-patterns}"
--
2.38.1

View File

@ -1,16 +1,18 @@
Name: jna
Version: 4.5.1
Release: 5%{?dist}
Version: 5.6.0
Release: 8%{?dist}
Summary: Pure Java access to native libraries
# Most of code is dual-licensed under either LGPL 2.1 only or Apache
# Most of code is dual-licensed under either LGPL 2.1+ only or Apache
# License 2.0. WeakIdentityHashMap.java was taken from Apache CXF,
# which is pure Apache License 2.0.
License: (LGPLv2 or ASL 2.0) and ASL 2.0
License: (LGPLv2+ or ASL 2.0) and ASL 2.0
URL: https://github.com/java-native-access/jna/
# ./generate-tarball.sh
Source0: %{name}-%{version}-clean.tar.xz
Source1: package-list
Source2: generate-tarball.sh
Patch0: 0001-Adapt-build.patch
# This patch is Fedora-specific for now until we get the huge
# JNI library location mess sorted upstream
@ -27,6 +29,9 @@ Patch3: 0004-Fix-javadoc-build.patch
Patch4: 0005-Fix-duplicate-manifest-entry.patch
# We don't want newly added warnings to break our build
Patch5: 0006-Remove-Werror.patch
# Fix compatibility with Java 8
# See https://bugzilla.redhat.com/show_bug.cgi?id=2162040
Patch6: 0007-Set-explicit-compiler-release.patch
# We manually require libffi because find-requires doesn't work
# inside jars.
@ -58,7 +63,7 @@ This package contains the javadocs for %{name}.
%package contrib
Summary: Contrib for %{name}
License: LGPLv2 or ASL 2.0
License: LGPLv2+ or ASL 2.0
Requires: %{name} = %{version}-%{release}
BuildArch: noarch
@ -67,7 +72,7 @@ This package contains the contributed examples for %{name}.
%prep
%setup -q -n %{name}-%{version}
%setup -q
cp %{SOURCE1} .
%patch0 -p1 -b .build
%patch1 -p1 -b .loadlib
@ -75,6 +80,7 @@ cp %{SOURCE1} .
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
chmod -Rf a+rX,u+w,g-w,o-w .
sed -i 's|@LIBDIR@|%{_libdir}/%{name}|' src/com/sun/jna/Native.java
@ -84,24 +90,25 @@ sed -i 's/\r//' LICENSE
chmod -c 0644 LICENSE OTHERS CHANGES.md
build-jar-repository -s -p lib junit ant
cp lib/native/aix-ppc64.jar lib/clover.jar
# we don't want reflections BR
build-jar-repository -s -p lib junit
rm test/com/sun/jna/StructureFieldOrderInspector.java
rm test/com/sun/jna/StructureFieldOrderInspectorTest.java
rm contrib/platform/test/com/sun/jna/platform/StructureFieldOrderTest.java
ln -s $(xmvn-resolve ant:ant:1.10.5) lib/ant.jar
cp lib/native/aix-ppc64.jar lib/clover.jar
%build
# We pass -Ddynlink.native which comes from our patch because
# upstream doesn't want to default to dynamic linking.
# -Drelease removes the .SNAPSHOT suffix from maven artifact names
#ant -Dcflags_extra.native="%{optflags}" -Ddynlink.native=true native compile javadoc jar contrib-jars
ant -Dcompatibility=1.6 -Dplatform.compatibility=1.6 -Dcflags_extra.native="%{optflags}" -Ddynlink.native=true native dist
ant -Drelease -Dcompatibility=1.8 -Dplatform.compatibility=1.8\
-Dcflags_extra.native="%{optflags}" -Ddynlink.native=true -DCC=%{__cc} native dist
# remove compiled contribs
find contrib -name build -exec rm -rf {} \; || :
%install
# NOTE: JNA has highly custom code to look for native jars in this
# directory. Since this roughly matches the jpackage guidelines,
@ -132,11 +139,75 @@ install -m 755 build/native*/libjnidispatch*.so %{buildroot}%{_libdir}/%{name}/
%changelog
* Fri Aug 02 2019 Jakub Janco <jjanco@redhat.com> - 4.5.1-5
- Onboard gating and move to AppStream
* Mon Jan 30 2023 Zuzana Miklankova <zmiklank@redhat.com> - 5.6.0-8
- Set correct compat. value also to ant parameters
- Resolves: rhbz#2162040
* Mon May 28 2018 Michael Simacek <msimacek@redhat.com> - 4.5.1-4
- Remove BR on reflections
* Mon Jan 23 2023 Mikolaj Izdebski <mizdebsk@redhat.com> - 5.6.0-7
- Fix compatibility with Java 8
- Resolves: rhbz#2162040
* Wed Aug 18 2021 Carlos O'Donell <codonell@redhat.com> - 5.6.0-6
- Rebuilt for libffi 3.4.2 SONAME transition.
Related: rhbz#1891914
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 5.6.0-5
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Thu Apr 29 2021 Ondrej Dubaj <odubaj@redhat.com> - 5.6.0-4
- Build without reflections optional dependency (#1954987)
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 5.6.0-3
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 5.6.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Thu Jan 07 2021 Ondrej Dubaj <odubaj@redhat.com> - 5.6.0-1
- Rebase to version 5.6.0
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 5.4.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Thu Jul 23 2020 Fabio Valentini <decathorpe@gmail.com> - 5.4.0-6
- Remove special-cased aarch32 build for java-1.8.0-openjdk.
* Fri Jul 10 2020 Jiri Vanek <jvanek@redhat.com> - 5.4.0-5
- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11
* Thu Jul 09 2020 Mat Booth <mat.booth@redhat.com> - 5.4.0-4
- Fix conditional build without reflections
* Thu Apr 02 2020 Tom Stellard <tstellar@redhat.com> - 5.4.0-3
- Pass C compiler to ant
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 5.4.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Aug 01 2019 Marian Koncek <mkoncek@redhat.com> - 5.4.0-1
- Update to upstream version 5.4.0
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.5.1-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Mon Jul 01 2019 Mat Booth <mat.booth@redhat.com> - 4.5.1-9
- Minor correction in license tag
* Mon Jun 17 2019 Mat Booth <mat.booth@redhat.com> - 4.5.1-8
- Use xmvn-resolve for portable way to get the ant jar
* Sat Jun 08 2019 Mat Booth <mbooth@apache.org> - 4.5.1-7
- Speed up builds on 32bit arm
* Thu Mar 07 2019 Mat Booth <mat.booth@redhat.com> - 4.5.1-6
- Allow conditionally building without the reflections library for tests
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.5.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.5.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Thu Feb 22 2018 Michael Simacek <msimacek@redhat.com> - 4.5.1-3
- Disable -Werror