From c1972ca629923aa2535a1e91e39c6a708588dcc1 Mon Sep 17 00:00:00 2001 From: MSVSphere Packaging Team Date: Tue, 26 Nov 2024 16:48:05 +0300 Subject: [PATCH] import jna-5.14.0-6.el10 --- .gitignore | 1 + .jna.metadata | 1 + SOURCES/0001-Adapt-build.patch | 33 ++ SOURCES/0002-Load-system-library.patch | 105 ++++ SOURCES/0003-Tests-headless.patch | 24 + SOURCES/0004-Fix-javadoc-build.patch | 24 + .../0005-Fix-duplicate-manifest-entry.patch | 28 + SOURCES/0006-Remove-Werror.patch | 30 + SOURCES/0007-Support-openjdk-17.patch | 210 +++++++ SOURCES/generate-tarball.sh | 28 + SOURCES/package-list | 135 +++++ SPECS/jna.spec | 537 ++++++++++++++++++ 12 files changed, 1156 insertions(+) create mode 100644 .gitignore create mode 100644 .jna.metadata create mode 100644 SOURCES/0001-Adapt-build.patch create mode 100644 SOURCES/0002-Load-system-library.patch create mode 100644 SOURCES/0003-Tests-headless.patch create mode 100644 SOURCES/0004-Fix-javadoc-build.patch create mode 100644 SOURCES/0005-Fix-duplicate-manifest-entry.patch create mode 100644 SOURCES/0006-Remove-Werror.patch create mode 100644 SOURCES/0007-Support-openjdk-17.patch create mode 100755 SOURCES/generate-tarball.sh create mode 100644 SOURCES/package-list create mode 100644 SPECS/jna.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2834330 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/jna-5.14.0-clean.tar.xz diff --git a/.jna.metadata b/.jna.metadata new file mode 100644 index 0000000..641cac6 --- /dev/null +++ b/.jna.metadata @@ -0,0 +1 @@ +eb9c4f88f448904b17ad2e9525fb5a06b120dce4 SOURCES/jna-5.14.0-clean.tar.xz diff --git a/SOURCES/0001-Adapt-build.patch b/SOURCES/0001-Adapt-build.patch new file mode 100644 index 0000000..36ad5d1 --- /dev/null +++ b/SOURCES/0001-Adapt-build.patch @@ -0,0 +1,33 @@ +From 52ef407584801916d6e60c4f4c5411023b5ac369 Mon Sep 17 00:00:00 2001 +From: Michael Simacek +Date: Mon, 16 Jan 2017 11:29:06 +0100 +Subject: [PATCH 1/6] Adapt build + +--- + native/Makefile | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/native/Makefile b/native/Makefile +index 1bea2dc..cb3afed 100644 +--- a/native/Makefile ++++ b/native/Makefile +@@ -97,7 +97,7 @@ CDEFINES=-D_REENTRANT + PCFLAGS=-W -Wall -Wno-unused -Wno-parentheses + CFLAGS=$(PCFLAGS) $(CFLAGS_EXTRA) $(COPT) $(CDEBUG) $(CDEFINES) $(CINCLUDES) \ + -DJNA_JNI_VERSION='"$(JNA_JNI_VERSION)"' -DCHECKSUM='"$(CHECKSUM)"' +-LDFLAGS=-o $@ -shared ++LDFLAGS=$(RPM_LD_FLAGS) -o $@ -shared + 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) +@@ -457,7 +457,6 @@ $(BUILD)/$(JNA_JNI_VERSION).stamp: + + $(LIBRARY): $(JNIDISPATCH_OBJS) $(FFI_LIB) + $(LD) $(LDFLAGS) $(JNIDISPATCH_OBJS) $(FFI_LIB) $(LIBS) +- $(STRIP) $@ + + $(TESTLIB): $(BUILD)/testlib.o + $(LD) $(LDFLAGS) $< $(LIBS) +-- +2.20.1 + diff --git a/SOURCES/0002-Load-system-library.patch b/SOURCES/0002-Load-system-library.patch new file mode 100644 index 0000000..b8785b0 --- /dev/null +++ b/SOURCES/0002-Load-system-library.patch @@ -0,0 +1,105 @@ +From 3d08314de0494ff8bdc1a7bccc0ecc1730dbdd60 Mon Sep 17 00:00:00 2001 +From: Michael Simacek +Date: Mon, 16 Jan 2017 11:31:32 +0100 +Subject: [PATCH 2/6] Load system library + +--- + 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 eae060f..11bcc5b 100644 +--- a/src/com/sun/jna/Native.java ++++ b/src/com/sun/jna/Native.java +@@ -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. + */ + private static void loadNativeDispatchLibrary() { +- if (!Boolean.getBoolean("jna.nounpack")) { +- try { +- removeTemporaryFiles(); +- } +- catch(IOException e) { +- LOG.log(Level.WARNING, "JNA Warning: IOException removing temporary files", e); +- } +- } +- +- String libName = System.getProperty("jna.boot.library.name", "jnidispatch"); +- String bootPath = System.getProperty("jna.boot.library.path"); +- if (bootPath != null) { +- // String.split not available in 1.4 +- StringTokenizer dirs = new StringTokenizer(bootPath, File.pathSeparator); +- while (dirs.hasMoreTokens()) { +- String dir = dirs.nextToken(); +- File file = new File(new File(dir), System.mapLibraryName(libName).replace(".dylib", ".jnilib")); +- String path = file.getAbsolutePath(); +- LOG.log(DEBUG_JNA_LOAD_LEVEL, "Looking in {0}", path); +- if (file.exists()) { +- try { +- LOG.log(DEBUG_JNA_LOAD_LEVEL, "Trying {0}", path); +- System.setProperty("jnidispatch.path", path); +- System.load(path); +- jnidispatchPath = 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 +- // Unfortunately we can't distinguish the difference... +- //System.out.println("File found at " + file + " but not loadable: " + ex.getMessage()); +- } +- } +- if (Platform.isMac()) { +- String orig, ext; +- if (path.endsWith("dylib")) { +- orig = "dylib"; +- ext = "jnilib"; +- } else { +- orig = "jnilib"; +- ext = "dylib"; +- } +- path = path.substring(0, path.lastIndexOf(orig)) + ext; +- LOG.log(DEBUG_JNA_LOAD_LEVEL, "Looking in {0}", path); +- if (new File(path).exists()) { +- try { +- LOG.log(DEBUG_JNA_LOAD_LEVEL, "Trying {0}", path); +- System.setProperty("jnidispatch.path", path); +- System.load(path); +- jnidispatchPath = path; +- LOG.log(DEBUG_JNA_LOAD_LEVEL, "Found jnidispatch at {0}", path); +- return; +- } catch (UnsatisfiedLinkError ex) { +- LOG.log(Level.WARNING, "File found at " + path + " but not loadable: " + ex.getMessage(), ex); +- } +- } +- } +- } +- } +- String jnaNosys = System.getProperty("jna.nosys", "true"); +- if ((!Boolean.parseBoolean(jnaNosys)) || Platform.isAndroid()) { +- try { +- LOG.log(DEBUG_JNA_LOAD_LEVEL, "Trying (via loadLibrary) {0}", libName); +- System.loadLibrary(libName); +- LOG.log(DEBUG_JNA_LOAD_LEVEL, "Found jnidispatch on system path"); +- return; +- } +- catch(UnsatisfiedLinkError e) { +- } +- } +- if (!Boolean.getBoolean("jna.noclasspath")) { +- loadNativeDispatchLibraryFromClasspath(); +- } +- else { +- throw new UnsatisfiedLinkError("Unable to locate JNA native support library"); +- } ++ jnidispatchPath = "@LIBDIR@/" + System.mapLibraryName("jnidispatch"); ++ System.load(jnidispatchPath); + } + + static final String JNA_TMPLIB_PREFIX = "jna"; +-- +2.20.1 + diff --git a/SOURCES/0003-Tests-headless.patch b/SOURCES/0003-Tests-headless.patch new file mode 100644 index 0000000..9a4645d --- /dev/null +++ b/SOURCES/0003-Tests-headless.patch @@ -0,0 +1,24 @@ +From c0f33e9ed0a5cfd79b58487c2a36c9b880b49947 Mon Sep 17 00:00:00 2001 +From: Michael Simacek +Date: Mon, 16 Jan 2017 11:32:32 +0100 +Subject: [PATCH 3/6] Tests headless + +--- + build.xml | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/build.xml b/build.xml +index d5c2bbc..835c02b 100644 +--- a/build.xml ++++ b/build.xml +@@ -1202,6 +1202,7 @@ cd .. + + + ++ + + + +-- +2.20.1 + diff --git a/SOURCES/0004-Fix-javadoc-build.patch b/SOURCES/0004-Fix-javadoc-build.patch new file mode 100644 index 0000000..dc5ab54 --- /dev/null +++ b/SOURCES/0004-Fix-javadoc-build.patch @@ -0,0 +1,24 @@ +From ced8baacd3bccba7ebaba80785b891bf579af215 Mon Sep 17 00:00:00 2001 +From: Michael Simacek +Date: Tue, 31 Jan 2017 14:21:19 +0100 +Subject: [PATCH 4/6] Fix javadoc build + +--- + build.xml | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/build.xml b/build.xml +index 835c02b..cecafd0 100644 +--- a/build.xml ++++ b/build.xml +@@ -1307,6 +1307,7 @@ cd .. + + + ++ + + + +-- +2.20.1 + diff --git a/SOURCES/0005-Fix-duplicate-manifest-entry.patch b/SOURCES/0005-Fix-duplicate-manifest-entry.patch new file mode 100644 index 0000000..abcefa8 --- /dev/null +++ b/SOURCES/0005-Fix-duplicate-manifest-entry.patch @@ -0,0 +1,28 @@ +From de939d7c9266f89542cea5ebef5980a95f1244a9 Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Mon, 10 Jul 2017 11:48:43 +0200 +Subject: [PATCH 5/6] Fix duplicate manifest entry + +--- + build.xml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/build.xml b/build.xml +index aa5aa00..9deb2b7 100644 +--- a/build.xml ++++ b/build.xml +@@ -681,9 +681,9 @@ osname=macosx;processor=aarch64 + includes="LICENSE,LGPL2.1,AL2.0" + prefix="META-INF"/> + +- ++ + +- ++ + + + +-- +2.20.1 + diff --git a/SOURCES/0006-Remove-Werror.patch b/SOURCES/0006-Remove-Werror.patch new file mode 100644 index 0000000..cfc6c9f --- /dev/null +++ b/SOURCES/0006-Remove-Werror.patch @@ -0,0 +1,30 @@ +From 6e8784db2fa3b3b2efedaae75d15d5d5cf3ed50c Mon Sep 17 00:00:00 2001 +From: Michael Simacek +Date: Thu, 22 Feb 2018 16:17:15 +0100 +Subject: [PATCH 6/6] Remove -Werror + +--- + native/Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/native/Makefile b/native/Makefile +index 34ace68..b97df45 100644 +--- a/native/Makefile ++++ b/native/Makefile +@@ -356,11 +356,11 @@ ifeq ($(CC),gcc) + GCC_MAJOR_VERSION = $(shell gcc -dumpversion | cut -f 1 -d '.') + ifneq ($(GCC_MAJOR_VERSION),4) + ifneq ($(GCC_MAJOR_VERSION),3) +- LOC_CC_OPTS=-Wno-unknown-warning-option -Werror -Wno-clobbered -Wno-unused-variable -Wno-alloca-larger-than ++ LOC_CC_OPTS=-Wno-unknown-warning-option -Wno-clobbered -Wno-unused-variable -Wno-alloca-larger-than + endif + endif + else +- 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 + + # Enable 64-bit builds if the arch demands it +-- +2.31.1 + diff --git a/SOURCES/0007-Support-openjdk-17.patch b/SOURCES/0007-Support-openjdk-17.patch new file mode 100644 index 0000000..062fae4 --- /dev/null +++ b/SOURCES/0007-Support-openjdk-17.patch @@ -0,0 +1,210 @@ +From 511d4b372a2ea1e79b850d2790ce29be9280cd75 Mon Sep 17 00:00:00 2001 +From: Zuzana Miklankova +Date: Mon, 10 Jan 2022 07:46:11 +0100 +Subject: [PATCH] Support-openjdk-17 + +--- + contrib/alphamaskdemo/build.xml | 4 ++-- + contrib/balloonmanagerdemo/build.xml | 4 ++-- + contrib/balloontips/build.xml | 4 ++-- + contrib/dnddemo/build.xml | 4 ++-- + contrib/monitordemo/build.xml | 4 ++-- + contrib/msoffice/build.xml | 4 ++-- + contrib/native_window_msg/build.xml | 4 ++-- + contrib/ntservice/nbproject/project.properties | 4 ++-- + contrib/shapedwindowdemo/build.xml | 4 ++-- + contrib/w32printing/build.xml | 4 ++-- + contrib/w32windowhooks/build.xml | 4 ++-- + contrib/x11/build.xml | 4 ++-- + 12 files changed, 22 insertions(+), 22 deletions(-) + +diff --git a/contrib/alphamaskdemo/build.xml b/contrib/alphamaskdemo/build.xml +index 2186daadd..9e4a2072e 100644 +--- a/contrib/alphamaskdemo/build.xml ++++ b/contrib/alphamaskdemo/build.xml +@@ -9,8 +9,8 @@ + + + +- +- ++ ++ + + + +diff --git a/contrib/balloonmanagerdemo/build.xml b/contrib/balloonmanagerdemo/build.xml +index e9cba2c7b..37d0d0e7a 100644 +--- a/contrib/balloonmanagerdemo/build.xml ++++ b/contrib/balloonmanagerdemo/build.xml +@@ -9,8 +9,8 @@ + + + +- +- ++ ++ + + + +diff --git a/contrib/balloontips/build.xml b/contrib/balloontips/build.xml +index e5b64b11d..8fa15d576 100644 +--- a/contrib/balloontips/build.xml ++++ b/contrib/balloontips/build.xml +@@ -9,8 +9,8 @@ + + + +- +- ++ ++ + + + +diff --git a/contrib/dnddemo/build.xml b/contrib/dnddemo/build.xml +index 1feacb3a9..151194fcd 100644 +--- a/contrib/dnddemo/build.xml ++++ b/contrib/dnddemo/build.xml +@@ -9,8 +9,8 @@ + + + +- +- ++ ++ + + + +diff --git a/contrib/monitordemo/build.xml b/contrib/monitordemo/build.xml +index 6e7a5c1b5..f7228c7c9 100644 +--- a/contrib/monitordemo/build.xml ++++ b/contrib/monitordemo/build.xml +@@ -9,8 +9,8 @@ + + + +- +- ++ ++ + + + +diff --git a/contrib/msoffice/build.xml b/contrib/msoffice/build.xml +index fa0387b61..06627c1cf 100644 +--- a/contrib/msoffice/build.xml ++++ b/contrib/msoffice/build.xml +@@ -9,8 +9,8 @@ + + + +- +- ++ ++ + + + +diff --git a/contrib/native_window_msg/build.xml b/contrib/native_window_msg/build.xml +index 19e99db68..066da4065 100644 +--- a/contrib/native_window_msg/build.xml ++++ b/contrib/native_window_msg/build.xml +@@ -9,8 +9,8 @@ + + + +- +- ++ ++ + + + +diff --git a/contrib/ntservice/nbproject/project.properties b/contrib/ntservice/nbproject/project.properties +index 587ae2b4d..d30a26c83 100644 +--- a/contrib/ntservice/nbproject/project.properties ++++ b/contrib/ntservice/nbproject/project.properties +@@ -7,7 +7,7 @@ javadoc.nonavbar=false + javac.external.vm=false + run.test.classpath=${javac.test.classpath}\:${build.test.classes.dir} + javac.processorpath=${javac.classpath} +-javac.target=1.6 ++javac.target=1.8 + annotation.processing.processors.list= + javadoc.noindex=false + javadoc.additionalparam= +@@ -29,7 +29,7 @@ dist.dir=dist + build.classes.excludes=**/*.java,**/*.form + javadoc.splitindex=true + javadoc.encoding= +-javac.source=1.6 ++javac.source=1.8 + file.reference.jna.jar=../../build/jna.jar + application.vendor=matthias + junit.selected.version=4 +diff --git a/contrib/shapedwindowdemo/build.xml b/contrib/shapedwindowdemo/build.xml +index 24c25b5cc..b4f8c995d 100644 +--- a/contrib/shapedwindowdemo/build.xml ++++ b/contrib/shapedwindowdemo/build.xml +@@ -9,8 +9,8 @@ + + + +- +- ++ ++ + + + +diff --git a/contrib/w32printing/build.xml b/contrib/w32printing/build.xml +index 0af971a82..b76e00709 100644 +--- a/contrib/w32printing/build.xml ++++ b/contrib/w32printing/build.xml +@@ -9,8 +9,8 @@ + + + +- +- ++ ++ + + + +diff --git a/contrib/w32windowhooks/build.xml b/contrib/w32windowhooks/build.xml +index 668d22daa..992ae4d7e 100644 +--- a/contrib/w32windowhooks/build.xml ++++ b/contrib/w32windowhooks/build.xml +@@ -9,8 +9,8 @@ + + + +- +- ++ ++ + + + +diff --git a/contrib/x11/build.xml b/contrib/x11/build.xml +index ecf2ae5f9..95f5e8a88 100644 +--- a/contrib/x11/build.xml ++++ b/contrib/x11/build.xml +@@ -9,8 +9,8 @@ + + + +- +- ++ ++ + + + +-- +2.31.1 + diff --git a/SOURCES/generate-tarball.sh b/SOURCES/generate-tarball.sh new file mode 100755 index 0000000..511bc4d --- /dev/null +++ b/SOURCES/generate-tarball.sh @@ -0,0 +1,28 @@ +#!/bin/bash +set -e + +version=`grep Version: *spec | sed -e 's/Version:\s*\(.*\)/\1/'` + + +wget https://github.com/java-native-access/jna/archive/${version}.tar.gz -O jna-${version}.tar.gz +rm -rf jna-${version} +tar xf jna-${version}.tar.gz +#mv twall-jna-* jna-${version} +# remove bundled things with unknown licensing +rm -rvf jna-${version}/{dist/*,www,native/libffi} +# jars in lib/native subdir need to be present in tarball so +# that final jar can be built. They can be empty and then have no +# effect on resulting jar. One jar (depending on architecture) will +# be replaced with full content (containing libjnidispatch.so) +for njar in jna-${version}/lib/native/*.jar; do + rm -v $njar + touch empty + jar cf $njar empty + rm -f empty +done + +find jna-${version} -iname '*jar' -size +1b -delete +find jna-${version} -name '*.class' -delete + +tar cf jna-${version}-clean.tar jna-${version} +xz -9 jna-${version}-clean.tar diff --git a/SOURCES/package-list b/SOURCES/package-list new file mode 100644 index 0000000..fecd4d4 --- /dev/null +++ b/SOURCES/package-list @@ -0,0 +1,135 @@ +java.applet +java.awt +java.awt.color +java.awt.datatransfer +java.awt.dnd +java.awt.event +java.awt.font +java.awt.geom +java.awt.im +java.awt.im.spi +java.awt.image +java.awt.image.renderable +java.awt.print +java.beans +java.beans.beancontext +java.io +java.lang +java.lang.ref +java.lang.reflect +java.math +java.net +java.nio +java.nio.channels +java.nio.channels.spi +java.nio.charset +java.nio.charset.spi +java.rmi +java.rmi.activation +java.rmi.dgc +java.rmi.registry +java.rmi.server +java.security +java.security.acl +java.security.cert +java.security.interfaces +java.security.spec +java.sql +java.text +java.util +java.util.jar +java.util.logging +java.util.prefs +java.util.regex +java.util.zip +javax.accessibility +javax.crypto +javax.crypto.interfaces +javax.crypto.spec +javax.imageio +javax.imageio.event +javax.imageio.metadata +javax.imageio.plugins.jpeg +javax.imageio.spi +javax.imageio.stream +javax.naming +javax.naming.directory +javax.naming.event +javax.naming.ldap +javax.naming.spi +javax.net +javax.net.ssl +javax.print +javax.print.attribute +javax.print.attribute.standard +javax.print.event +javax.rmi +javax.rmi.CORBA +javax.security.auth +javax.security.auth.callback +javax.security.auth.kerberos +javax.security.auth.login +javax.security.auth.spi +javax.security.auth.x500 +javax.security.cert +javax.sound.midi +javax.sound.midi.spi +javax.sound.sampled +javax.sound.sampled.spi +javax.sql +javax.swing +javax.swing.border +javax.swing.colorchooser +javax.swing.event +javax.swing.filechooser +javax.swing.plaf +javax.swing.plaf.basic +javax.swing.plaf.metal +javax.swing.plaf.multi +javax.swing.table +javax.swing.text +javax.swing.text.html +javax.swing.text.html.parser +javax.swing.text.rtf +javax.swing.tree +javax.swing.undo +javax.transaction +javax.transaction.xa +javax.xml.parsers +javax.xml.transform +javax.xml.transform.dom +javax.xml.transform.sax +javax.xml.transform.stream +org.ietf.jgss +org.omg.CORBA +org.omg.CORBA.DynAnyPackage +org.omg.CORBA.ORBPackage +org.omg.CORBA.TypeCodePackage +org.omg.CORBA.portable +org.omg.CORBA_2_3 +org.omg.CORBA_2_3.portable +org.omg.CosNaming +org.omg.CosNaming.NamingContextExtPackage +org.omg.CosNaming.NamingContextPackage +org.omg.Dynamic +org.omg.DynamicAny +org.omg.DynamicAny.DynAnyFactoryPackage +org.omg.DynamicAny.DynAnyPackage +org.omg.IOP +org.omg.IOP.CodecFactoryPackage +org.omg.IOP.CodecPackage +org.omg.Messaging +org.omg.PortableInterceptor +org.omg.PortableInterceptor.ORBInitInfoPackage +org.omg.PortableServer +org.omg.PortableServer.CurrentPackage +org.omg.PortableServer.POAManagerPackage +org.omg.PortableServer.POAPackage +org.omg.PortableServer.ServantLocatorPackage +org.omg.PortableServer.portable +org.omg.SendingContext +org.omg.stub.java.rmi +org.w3c.dom +org.xml.sax +org.xml.sax.ext +org.xml.sax.helpers diff --git a/SPECS/jna.spec b/SPECS/jna.spec new file mode 100644 index 0000000..64a7c9d --- /dev/null +++ b/SPECS/jna.spec @@ -0,0 +1,537 @@ +# Allow conditionally building without the reflections library +%if %{defined rhel} +%bcond_with reflections +%else +%bcond_without reflections +%endif + +Name: jna +Version: 5.14.0 +Release: 6%{?dist} +Summary: Pure Java access to native libraries +# 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: Apache-2.0 OR LGPL-2.1-or-later + +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 +Patch1: 0002-Load-system-library.patch +# The X11 tests currently segfault; overall I think the X11 JNA stuff is just a +# Really Bad Idea, for relying on AWT internals, using the X11 API at all, +# and using a complex API like X11 through JNA just increases the potential +# for problems. +Patch2: 0003-Tests-headless.patch +# Adds --allow-script-in-comments arg to javadoc to avoid error +Patch3: 0004-Fix-javadoc-build.patch +# Avoid generating duplicate manifest entry +# See https://bugzilla.redhat.com/show_bug.cgi?id=1469022 +Patch4: 0005-Fix-duplicate-manifest-entry.patch +# We don't want newly added warnings to break our build +Patch5: 0006-Remove-Werror.patch + +Patch6: 0007-Support-openjdk-17.patch + +ExclusiveArch: %{java_arches} + +# We manually require libffi because find-requires doesn't work +# inside jars. +Requires: libffi +BuildRequires: gcc +BuildRequires: make +BuildRequires: javapackages-local +BuildRequires: libffi-devel +BuildRequires: ant +BuildRequires: ant-junit +BuildRequires: junit +BuildRequires: libX11-devel +BuildRequires: libXt-devel +BuildRequires: objectweb-asm +BuildRequires: hamcrest +%if %{with reflections} +BuildRequires: reflections +%endif + +%description +JNA provides Java programs easy access to native shared libraries +(DLLs on Windows) without writing anything but Java code. JNA's +design aims to provide native access in a natural way with a +minimum of effort. No boilerplate or generated code is required. +While some attention is paid to performance, correctness and ease +of use take priority. + +%package javadoc +Summary: Javadocs for %{name} +BuildArch: noarch + +%description javadoc +This package contains the javadocs for %{name}. + +%package contrib +Summary: Contrib for %{name} +License: Apache-2.0 OR LGPL-2.1-or-later +Requires: %{name} = %{version}-%{release} +BuildArch: noarch + +%description contrib +This package contains the contributed examples for %{name}. + + +%prep +%setup -q +cp %{SOURCE1} . +%patch -P 0 -p1 -b .build +%patch -P 1 -p1 -b .loadlib +%patch -P 2 -p1 -b .tests-headless +%patch -P 3 -p1 +%patch -P 4 -p1 +%patch -P 5 -p1 +%patch -P 6 -p1 + +chmod -Rf a+rX,u+w,g-w,o-w . +sed -i 's|@LIBDIR@|%{_libdir}/%{name}|' src/com/sun/jna/Native.java + +# TEMPLATE has to be changed to %%version in the pom files +# in order to generate correct provides +sed -i 's/TEMPLATE/%{version}/' pom-jna-jpms.xml \ + pom-jna-platform.xml \ + pom-jna.xml \ + pom-jna-platform-jpms.xml + +# clean LICENSE.txt +sed -i 's/\r//' LICENSE + +chmod -c 0644 LICENSE OTHERS CHANGES.md + +%if %{with reflections} +sed s,',&,' -i build.xml +build-jar-repository -s -p lib junit reflections +%else +build-jar-repository -s -p lib junit +rm test/com/sun/jna/StructureFieldOrderInspector.java +rm test/com/sun/jna/StructureFieldOrderInspectorTest.java +%endif +ln -s $(xmvn-resolve ant:ant:1.10.5) lib/ant.jar +ln -s $(xmvn-resolve org.ow2.asm:asm) lib/asm-8.0.1.jar +ln -s $(xmvn-resolve org.hamcrest:hamcrest-all) lib/hamcrest-core-1.3.jar +ln -s $(xmvn-resolve org.reflections:reflections) lib/test/reflections.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 -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, +# we'll leave it unchanged. +install -d -m 755 %{buildroot}%{_libdir}/%{name} +install -m 755 build/native*/libjnidispatch*.so %{buildroot}%{_libdir}/%{name}/ + +%mvn_file :jna jna jna/jna %{_javadir}/jna + +%mvn_package :jna-platform contrib +%mvn_alias :jna-platform :platform + +%mvn_artifact pom-jna.xml build/jna-min.jar +%mvn_artifact pom-jna-platform.xml contrib/platform/dist/jna-platform.jar + +%mvn_install -J doc/javadoc + + +%files -f .mfiles +%doc OTHERS README.md CHANGES.md TODO +%license LICENSE LGPL2.1 AL2.0 +%{_libdir}/%{name} + +%files javadoc -f .mfiles-javadoc +%license LICENSE LGPL2.1 AL2.0 + +%files contrib -f .mfiles-contrib + + +%changelog +* Tue Nov 26 2024 MSVSphere Packaging Team - 5.14.0-6 +- Rebuilt for MSVSphere 10 + +* Fri Aug 09 2024 Marián Konček - 5.14.0-6 +- Rebuild without generated Requires + +* Mon Jun 24 2024 Troy Dawson - 5.14.0-5 +- Bump release for June 2024 mass rebuild + +* Wed May 15 2024 Zuzana Miklankova - 5.14.0-4 +- update license to SPDX format + +* Wed Jan 24 2024 Fedora Release Engineering - 5.14.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Jan 20 2024 Fedora Release Engineering - 5.14.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Dec 11 2023 Zuzana Miklankova - 5.14.0-1 +- Rebase to version 5.14.0 + +* Thu Jul 20 2023 Fedora Release Engineering - 5.13.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jan 19 2023 Fedora Release Engineering - 5.13.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Mon Jan 16 2023 Zuzana Miklankova - 5.13.0-1 +- Rebase to version 5.13.0 + +* Thu Jul 21 2022 Fedora Release Engineering - 5.12.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jul 11 2022 Zuzana Miklankova - 5.12.1-1 +- Rebase to version 5.12.1 + +* Mon May 16 2022 Zuzana Miklankova - 5.11.0-2 +- Use correct version in provided pom files + +* Mon Mar 28 2022 Zuzana Miklankova - 5.11.0-1 +- Rebase to version 5.11.0 + +* Sat Feb 05 2022 Jiri Vanek - 5.10.0-3 +- Rebuilt for java-17-openjdk as system jdk + +* Thu Jan 20 2022 Fedora Release Engineering - 5.10.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Mon Jan 10 2022 Zuzana Miklankova - 5.10.0-1 +- Rebase to version 5.10.0 + +* Sat Jan 08 2022 Miro Hrončok - 5.9.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Changes/LIBFFI34 + +* Wed Dec 1 2021 Zuzana Miklankova - 5.9.0-3 +- Support openjdk-17 with dropping 1.6 compatibility + +* Wed Dec 1 2021 Zuzana Miklankova - 5.9.0-2 +- Rebuild with resolved reflections dependecy + +* Fri Sep 17 2021 Ondrej Dubaj - 5.9.0-1 +- Rebase to version 5.9.0 + +* Thu Jul 22 2021 Fedora Release Engineering - 5.6.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed May 12 2021 Ondrej Dubaj - 5.6.0-3 +- Remove maven-javadoc-plugin dependency + +* Tue Jan 26 2021 Fedora Release Engineering - 5.6.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Jan 07 2021 Ondrej Dubaj - 5.6.0-1 +- Rebase to version 5.6.0 + +* Tue Jul 28 2020 Fedora Release Engineering - 5.4.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu Jul 23 2020 Fabio Valentini - 5.4.0-6 +- Remove special-cased aarch32 build for java-1.8.0-openjdk. + +* Fri Jul 10 2020 Jiri Vanek - 5.4.0-5 +- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 + +* Thu Jul 09 2020 Mat Booth - 5.4.0-4 +- Fix conditional build without reflections + +* Thu Apr 02 2020 Tom Stellard - 5.4.0-3 +- Pass C compiler to ant + +* Wed Jan 29 2020 Fedora Release Engineering - 5.4.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Aug 01 2019 Marian Koncek - 5.4.0-1 +- Update to upstream version 5.4.0 + +* Thu Jul 25 2019 Fedora Release Engineering - 4.5.1-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Mon Jul 01 2019 Mat Booth - 4.5.1-9 +- Minor correction in license tag + +* Mon Jun 17 2019 Mat Booth - 4.5.1-8 +- Use xmvn-resolve for portable way to get the ant jar + +* Sat Jun 08 2019 Mat Booth - 4.5.1-7 +- Speed up builds on 32bit arm + +* Thu Mar 07 2019 Mat Booth - 4.5.1-6 +- Allow conditionally building without the reflections library for tests + +* Fri Feb 01 2019 Fedora Release Engineering - 4.5.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 4.5.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu Feb 22 2018 Michael Simacek - 4.5.1-3 +- Disable -Werror + +* Wed Feb 07 2018 Fedora Release Engineering - 4.5.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Fri Jan 05 2018 Michael Simacek - 4.5.1-1 +- Update to upstream version 4.5.1 + +* Tue Sep 19 2017 Michael Simacek - 4.5.0-1 +- Update to upstream version 4.5.0 + +* Thu Aug 03 2017 Fedora Release Engineering - 4.4.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 4.4.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Wed Jul 19 2017 Mikolaj Izdebski - 4.4.0-5 +- Fix generation of JAR manifest +- Resolves: rhbz#1472494 + +* Mon Jul 10 2017 Mikolaj Izdebski - 4.4.0-4 +- Fix duplicate manifest bug +- Resolves: rhbz#1469022 + +* Fri Jul 07 2017 Michael Simacek - 4.4.0-3 +- Temporarily add symlink to javadir + +* Mon Jul 03 2017 Michael Simacek - 4.4.0-2 +- Install with XMvn + +* Tue Mar 28 2017 Michael Simacek - 4.4.0-1 +- Update to upstream version 4.4.0 + +* Tue Feb 07 2017 Michael Simacek - 4.3.0-4 +- Use --allow-script-in-comments on all arches + +* Wed Feb 1 2017 Mikolaj Izdebski - 4.3.0-3 +- Add missing build-requires on GCC + +* Tue Jan 31 2017 Michael Simacek - 4.3.0-2 +- Try to fix javadoc generation + +* Mon Jan 16 2017 Michael Simacek - 4.3.0-1 +- Update to upstream version 4.3.0 +- Cleanup rhel macros, because packages was retired in EPEL + +* Thu Mar 24 2016 Mikolaj Izdebski - 4.2.2-1 +- Update to upstream version 4.2.2 + +* Thu Feb 04 2016 Fedora Release Engineering - 4.2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Oct 20 2015 Mikolaj Izdebski - 4.2.1-1 +- Update to upstream version 4.2.1 + +* Thu Sep 17 2015 Levente Farkas - 4.2.0-1 +- Update to 4.2.0 + +* Wed Jun 17 2015 Fedora Release Engineering - 4.1.0-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Thu Jun 11 2015 Mikolaj Izdebski - 4.1.0-8 +- Force Java 1.6 source/target (rhbz#842609) +- Fix licensing headers (rhbz#988808) + +* Wed Oct 01 2014 Michal Srb - 4.1.0-7 +- Fix for 32-bit systems (Resolves: rhbz#1148349) +- Fix FTBFS (Resolves: rhbz#1106955) + +* Sat Aug 16 2014 Fedora Release Engineering - 4.1.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sun Jun 08 2014 Fedora Release Engineering - 4.1.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Fri Jan 10 2014 Roland Grunberg - 4.0.0-4 +- fix updated depmap + +* Fri Jan 10 2014 Roland Grunberg - 4.0.0-3 +- Update depmap calls and fix tests compilation issue. + +* Sat Aug 03 2013 Fedora Release Engineering - 4.0.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Sat Jul 6 2013 Levente Farkas - 4.0-1 +- Update to 4.0 + +* Fri Jun 28 2013 Mikolaj Izdebski - 3.5.2-2 +- Fix ant-trax and ant-nodeps BR on RHEL + +* Thu Apr 25 2013 Levente Farkas - 3.5.2-1 +- Update to 3.5.2 + +* Thu Feb 14 2013 Fedora Release Engineering - 3.5.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Thu Jul 19 2012 Fedora Release Engineering - 3.4.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed Jun 20 2012 Levente Farkas - 3.4.0-4 +- fix #833786 by Mary Ellen Foster + +* Wed Mar 14 2012 Juan Hernandez - 3.4.0-3 +- Generate correctly the maven dependencies map (#) + +* Sun Mar 11 2012 Ville Skyttä - 3.4.0-2 +- Don't strip binaries too early, build with $RPM_LD_FLAGS (#802020). + +* Wed Mar 7 2012 Levente Farkas - 3.4.0-1 +- Update to 3.4.0 + +* Fri Jan 13 2012 Fedora Release Engineering - 3.2.7-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed Feb 09 2011 Fedora Release Engineering - 3.2.7-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Thu Dec 9 2010 Ville Skyttä - 3.2.7-11 +- Drop dependency on main package from -javadoc. +- Add license to -javadoc, and OTHERS and TODO to main package docs. +- Install javadocs and jars unversioned. +- Fix release-notes.html permissions. +- Make -javadoc and -contrib noarch where available. + +* Fri Dec 3 2010 Levente Farkas - 3.2.7-10 +- fix pom file name #655810 +- disable check everywhere since it seems to always fail in mock + +* Fri Nov 5 2010 Dan Horák - 3.2.7-9 +- exclude checks on s390(x) + +* Tue Oct 12 2010 Levente Farkas - 3.2.7-8 +- exclude check on ppc + +* Fri Oct 8 2010 Levente Farkas - 3.2.7-7 +- fix excludearch condition + +* Wed Oct 6 2010 Levente Farkas - 3.2.7-6 +- readd excludearch for old release fix #548099 + +* Fri Oct 01 2010 Dennis Gilmore - 3.2.7-5.1 +- remove the ExcludeArch it makes no sense + +* Sun Aug 1 2010 Levente Farkas - 3.2.7-5 +- reenable test and clean up contrib files + +* Tue Jul 27 2010 Levente Farkas - 3.2.7-4 +- add Obsoletes for jna-examples + +* Sat Jul 24 2010 Levente Farkas - 3.2.7-3 +- upstream 64bit fixes + +* Fri Jul 23 2010 Levente Farkas - 3.2.7-2 +- Temporary hack for 64bit build + +* Thu Jul 22 2010 Levente Farkas - 3.2.7-1 +- Rebase on upstream 3.2.7 + +* Wed Jul 21 2010 Stanislav Ochotnicky - 3.2.4-6 +- Add maven depmap + +* Thu Apr 22 2010 Colin Walters - 3.2.4-5 +- Add patches to make the build happen with gcj + +* Wed Apr 21 2010 Colin Walters - 3.2.4-4 +- Fix the build by removing upstream's hardcoded md5 + +* Thu Dec 17 2009 Levente Farkas - 3.2.4-3 +- add proper ExclusiveArch + +* Thu Dec 17 2009 Alexander Kurtakov 3.2.4-2 +- Comment rhel ExclusiveArchs - not correct applies on Fedora. + +* Sat Nov 14 2009 Levente Farkas - 3.2.4-1 +- Rebase on upstream 3.2.4 + +* Thu Oct 29 2009 Lubomir Rintel - 3.0.9-6 +- Add examples subpackage + +* Fri Jul 24 2009 Fedora Release Engineering - 3.0.9-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Feb 25 2009 Fedora Release Engineering - 3.0.9-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Tue Dec 30 2008 Colin Walters - 3.0.9-3 +- Add patch to allow opening current process + +* Sun Nov 30 2008 Colin Walters - 3.0.9-2 +- Fix library mapping, remove upstreamed patches + +* Fri Oct 31 2008 Colin Walters - 3.0.9-1 +- Rebase on upstream 3.0.9 + +* Tue Oct 14 2008 Colin Walters - 3.0.4-10.svn729 +- Add patch to support String[] returns + +* Wed Oct 01 2008 Colin Walters - 3.0.4-9.svn729 +- Add new patch to support NativeMapped[] which I want + +* Wed Oct 01 2008 Colin Walters - 3.0.4-8.svn729 +- Update to svn r729 +- drop upstreamed typemapper patch + +* Thu Sep 18 2008 Colin Walters - 3.0.4-7.svn700 +- Add patch to make typemapper always accessible +- Add patch to skip cracktastic X11 test bits which currently fail + +* Tue Sep 09 2008 Colin Walters - 3.0.4-5.svn700 +- Update to upstream SVN r700; drop all now upstreamed patches + +* Sat Sep 06 2008 Colin Walters - 3.0.4-3.svn630 +- A few more patches for JGIR + +* Thu Sep 04 2008 Colin Walters - 3.0.4-2.svn630 +- Add two (sent upstream) patches that I need for JGIR + +* Thu Jul 31 2008 Colin Walters - 3.0.4-1.svn630 +- New upstream version, drop upstreamed patch parts +- New patch jna-3.0.4-nomixedjar.patch which ensures that we don't + include the .so in the .jar + +* Fri Apr 04 2008 Colin Walters - 3.0.2-7 +- Add patch to use JPackage-compatible JNI library path +- Do build debuginfo package +- Refactor build patch greatly so it's hopefully upstreamable +- Install .so directly to JNI directory, rather than inside jar +- Clean up Requires/BuildRequires (thanks Mamoru Tasaka) + +* Sun Mar 30 2008 Conrad Meyer - 3.0.2-6 +- -javadocs should be -javadoc. +- %%files section cleaned a bit. + +* Mon Mar 17 2008 Conrad Meyer - 3.0.2-5 +- -javadocs package should be in group "Documentation". + +* Mon Mar 17 2008 Conrad Meyer - 3.0.2-4 +- License should be LGPLv2+, not GPLv2+. +- Several minor fixes. +- Fix Requires in javadoc package. + +* Sun Mar 16 2008 Conrad Meyer - 3.0.2-3 +- Don't use internal libffi. + +* Thu Mar 6 2008 Conrad Meyer - 3.0.2-2 +- Don't pull in jars from the web. + +* Mon Mar 3 2008 Conrad Meyer - 3.0.2-1 +- Initial package.