diff --git a/.devtoolset-4-jffi.metadata b/.devtoolset-4-jffi.metadata new file mode 100644 index 0000000..b7a61cf --- /dev/null +++ b/.devtoolset-4-jffi.metadata @@ -0,0 +1 @@ +f34dbed21d40e41f083badb561f36b37642b8415 SOURCES/1.2.9.zip diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..320d5f0 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/1.2.9.zip diff --git a/README.md b/README.md deleted file mode 100644 index 98f42b4..0000000 --- a/README.md +++ /dev/null @@ -1,4 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/MANIFEST.MF b/SOURCES/MANIFEST.MF new file mode 100644 index 0000000..8ab756c --- /dev/null +++ b/SOURCES/MANIFEST.MF @@ -0,0 +1,9 @@ +Manifest-Version: 1.0 +Bundle-SymbolicName: com.kenai.jffi +Export-Package: com.kenai.jffi;version="@VERSION" +Bundle-Name: Java Foreign Function Interface +Bundle-Version: @VERSION +Bundle-ManifestVersion: 2 +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 + diff --git a/SOURCES/NATIVE-MANIFEST.MF b/SOURCES/NATIVE-MANIFEST.MF new file mode 100644 index 0000000..56317b4 --- /dev/null +++ b/SOURCES/NATIVE-MANIFEST.MF @@ -0,0 +1,13 @@ +Manifest-Version: 1.0 +JavaPackages-Classifier: native +Archiver-Version: Plexus Archiver +JavaPackages-Version: @VERSION +Bundle-Version: @VERSION +Bundle-SymbolicName: com.kenai.jffi.native +Fragment-Host: com.kenai.jffi +Bundle-ClassPath: .,jni +JavaPackages-ArtifactId: jffi +JavaPackages-GroupId: com.github.jnr +Created-By: Apache Maven 3.3.3 +Build-Jdk: 1.8.0_60 + diff --git a/SOURCES/jffi-add-built-jar-to-test-classpath.patch b/SOURCES/jffi-add-built-jar-to-test-classpath.patch new file mode 100644 index 0000000..b8d394f --- /dev/null +++ b/SOURCES/jffi-add-built-jar-to-test-classpath.patch @@ -0,0 +1,13 @@ +--- build.xml.sav 2015-04-30 18:23:37.609686947 +0300 ++++ build.xml 2015-04-30 18:23:50.621619907 +0300 +@@ -219,8 +219,8 @@ + + + +- +- ++ ++ + + + diff --git a/SOURCES/jffi-fix-compilation-flags.patch b/SOURCES/jffi-fix-compilation-flags.patch new file mode 100644 index 0000000..d10d01b --- /dev/null +++ b/SOURCES/jffi-fix-compilation-flags.patch @@ -0,0 +1,30 @@ +--- jni/GNUmakefile.orig 2015-03-02 23:35:21.000000000 +0200 ++++ jni/GNUmakefile 2015-04-30 18:16:46.270806239 +0300 +@@ -66,9 +66,9 @@ OFLAGS = -O2 $(JFLAGS) + # MacOS headers aren't completely warning free, so turn them off + WERROR = -Werror + ifneq ($(OS),darwin) +- WFLAGS += -Wundef $(WERROR) ++ WFLAGS += -Wundef + endif +-WFLAGS += -W -Wall -Wno-unused -Wno-parentheses -Wno-unused-parameter ++WFLAGS += -W -Wall -Wno-parentheses -Wno-unused-parameter + PICFLAGS = -fPIC + SOFLAGS = # Filled in for each OS specifically + FFI_MMAP_EXEC = -DFFI_MMAP_EXEC_WRIT +@@ -76,11 +76,13 @@ FFI_MMAP_EXEC = -DFFI_MMAP_EXEC_WRIT + FFI_CC = $(CCACHE) $(CC) + FFI_LD = $(LD) + FFI_CFLAGS = $(FFI_MMAP_EXEC) $(OFLAGS) +-STRIP ?= strip -S ++STRIP ?= /bin/true ++ ++RPMFLAGS=$(shell rpm --eval %optflags) + + JDK_INCLUDES = -I"$(JDK_HOME)/include" -I"$(JDK_HOME)/include/$(OS)" + IFLAGS = -I"$(BUILD_DIR)" -I"$(BUILD_DIR)"/jni -I$(SRC_DIR) -I"$(JFFI_SRC_DIR)" +-CFLAGS += $(OFLAGS) $(WFLAGS) $(IFLAGS) $(PICFLAGS) $(JDK_INCLUDES) $(LIBFFI_CFLAGS) ++CFLAGS += $(OFLAGS) $(WFLAGS) $(IFLAGS) $(PICFLAGS) $(JDK_INCLUDES) $(LIBFFI_CFLAGS) $(RPMFLAGS) + CFLAGS += -D_REENTRANT -D_LARGEFILE64_SOURCE -D_GNU_SOURCE + + ifeq ($(OS), win64) diff --git a/SOURCES/jffi-fix-dependencies-in-build-xml.patch b/SOURCES/jffi-fix-dependencies-in-build-xml.patch new file mode 100644 index 0000000..5d870af --- /dev/null +++ b/SOURCES/jffi-fix-dependencies-in-build-xml.patch @@ -0,0 +1,12 @@ +--- build.xml.orig 2015-04-30 18:11:44.075363204 +0300 ++++ build.xml 2015-04-30 18:12:37.964085560 +0300 +@@ -198,8 +198,7 @@ + + + +- +- ++ + + + diff --git a/SOURCES/p2.inf b/SOURCES/p2.inf new file mode 100644 index 0000000..ede6910 --- /dev/null +++ b/SOURCES/p2.inf @@ -0,0 +1,4 @@ +requires.1.namespace = org.eclipse.equinox.p2.iu +requires.1.name = com.kenai.jffi.native +requires.1.range = [$version$,$version$] +requires.1.filter = (&(osgi.os=linux)) diff --git a/SPECS/jffi.spec b/SPECS/jffi.spec new file mode 100644 index 0000000..58ed9e1 --- /dev/null +++ b/SPECS/jffi.spec @@ -0,0 +1,234 @@ +%{?scl:%scl_package jffi} +%{!?scl:%global pkg_name %{name}} +%{?java_common_find_provides_and_requires} + +%global cluster jnr +%global sover 1.2 + +Name: %{?scl_prefix}jffi +Version: 1.2.9 +Release: 8.1%{?dist} +Summary: Java Foreign Function Interface + +License: LGPLv3+ or ASL 2.0 +URL: http://github.com/jnr/jffi +Source0: https://github.com/%{cluster}/%{pkg_name}/archive/%{version}.zip +Source1: MANIFEST.MF +Source2: NATIVE-MANIFEST.MF +Source3: p2.inf +Patch0: jffi-fix-dependencies-in-build-xml.patch +Patch1: jffi-add-built-jar-to-test-classpath.patch +Patch2: jffi-fix-compilation-flags.patch + +BuildRequires: %{?scl_prefix_java_common}maven-local +BuildRequires: libffi-devel +BuildRequires: %{?scl_prefix_java_common}ant +BuildRequires: %{?scl_prefix_java_common}ant-junit + +%description +An optimized Java interface to libffi. + +%package native +Summary: %{pkg_name} JAR with native bits + +%description native +This package contains %{pkg_name} JAR with native bits. + +%package javadoc +Summary: Javadoc for %{pkg_name} +BuildArch: noarch + +%description javadoc +This package contains the API documentation for %{pkg_name}. + +%prep +%{?scl:scl enable %{scl_maven} %{scl} - << "EOF"} +%setup -n %{pkg_name}-%{version} -q +cp %{SOURCE1} . +cp %{SOURCE2} . +sed -i -e's/@VERSION/%{version}/g' MANIFEST.MF +sed -i -e's/@VERSION/%{version}/g' NATIVE-MANIFEST.MF +%patch0 +%patch1 +%patch2 + +# ppc{,64} fix +# https://bugzilla.redhat.com/show_bug.cgi?id=561448#c9 +sed -i.cpu -e '/m\$(MODEL)/d' jni/GNUmakefile libtest/GNUmakefile + +# remove uneccessary directories +rm -rf archive/* jni/libffi/ jni/win32/ lib/CopyLibs/ lib/junit* + +find ./ -name '*.jar' -exec rm -f '{}' \; +find ./ -name '*.class' -exec rm -f '{}' \; + +build-jar-repository -s -p lib/ junit + +%mvn_package 'com.github.jnr:jffi::native:' native +%mvn_file ':{*}' %{pkg_name}/@1 @1 +%{?scl:EOF} + + +%build +%{?scl:scl enable %{scl_maven} %{scl} - << "EOF"} +# ant will produce JAR with native bits +ant jar build-native -Duse.system.libffi=1 + +# maven will look for JAR with native bits in archive/ +cp -p dist/jffi-*-Linux.jar archive/ + +%mvn_build +%{?scl:EOF} + + +%install +%{?scl:scl enable %{scl_maven} %{scl} - << "EOF"} +%mvn_install + +mkdir -p META-INF/ +cp %{SOURCE3} META-INF/ +jar umf MANIFEST.MF %{buildroot}%{_jnidir}/%{pkg_name}/%{pkg_name}.jar META-INF/p2.inf + +# install *.so +install -dm 755 %{buildroot}%{_libdir}/%{pkg_name} +cp -rp target/jni/* %{buildroot}%{_libdir}/%{pkg_name}/ +# create version-less symlink for .so file +sofile=`find %{buildroot}%{_libdir}/%{pkg_name} -name lib%{pkg_name}-%{sover}.so` +chmod +x ${sofile} +ln -sr ${sofile} `dirname ${sofile}`/lib%{pkg_name}.so + +jar umf NATIVE-MANIFEST.MF %{buildroot}%{_jnidir}/%{pkg_name}/%{pkg_name}-native.jar +%{?scl:EOF} + + +%check +%{?scl:scl enable %{scl_maven} %{scl} - << "EOF"} +# skip tests on s390 until https://bugzilla.redhat.com/show_bug.cgi?id=1084914 is resolved +%ifnarch s390 +# don't fail on unused parameters... (TODO: send patch upstream) +sed -i 's|-Werror||' libtest/GNUmakefile +ant -Duse.system.libffi=1 test +%endif +%{?scl:EOF} + + +%files -f .mfiles +%doc COPYING.GPL COPYING.LESSER LICENSE +%dir %{_jnidir}/jffi +%dir %{_mavenpomdir}/jffi + +%files native -f .mfiles-native +%{_libdir}/%{pkg_name} +%doc COPYING.GPL COPYING.LESSER LICENSE + +%files javadoc -f .mfiles-javadoc +%doc COPYING.GPL COPYING.LESSER LICENSE + +%changelog +* Mon Jul 13 2015 Mat Booth - 1.2.9-8.1 +- Import latest from Fedora + +* Mon Jul 13 2015 Mat Booth - 1.2.9-8 +- Fix unstripped binaries and empty debuginfo package +- Ensure presence of ant-junit at buildtime +- Fixed mixed use of space and tabs + +* Thu Jun 25 2015 Roland Grunberg - 1.2.9-7 +- Minor fixes to manifest as we introduce p2.inf file. + +* Wed Jun 24 2015 Jeff Johnston 1.2.9-6 +- Fix manifests so jffi requires com.kenai.jffi.native and native has bundle version. + +* Tue Jun 23 2015 Roland Grunberg - 1.2.9-5 +- Add missing Bundle-SymbolicName attribute to manifest. + +* Mon Jun 22 2015 Jeff Johnston 1.2.9-4 +- Fix native MANIFEST.MF + +* Thu Jun 18 2015 Jeff Johnston 1.2.9-3 +- Add MANIFEST.MF. + +* Wed Jun 17 2015 Fedora Release Engineering - 1.2.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Tue May 5 2015 Alexander Kurtakov 1.2.9-1 +- Update to upstream 1.2.9. + +* Thu Apr 30 2015 Alexander Kurtakov 1.2.8-1 +- Update to upstream 1.2.8. + +* Fri Feb 20 2015 Michal Srb - 1.2.7-5 +- Install version-less symlink for .so file + +* Fri Feb 20 2015 Michal Srb - 1.2.7-4 +- Fix rpmlint warnings + +* Fri Feb 20 2015 Michal Srb - 1.2.7-3 +- Install *.so file to %%{_libdir}/%%{pkg_name}/ + +* Tue Feb 17 2015 Michal Srb - 1.2.7-2 +- Build jffi-native +- Introduce javadoc subpackage + +* Fri Dec 05 2014 Mo Morsi - 1.2.7-1 +- Update to JFFI 1.2.7 + +* Sat Aug 16 2014 Fedora Release Engineering - 1.2.6-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Thu Jun 12 2014 Alexander Kurtakov 1.2.6-7 +- Fix FTBFS. + +* Sun Jun 08 2014 Fedora Release Engineering - 1.2.6-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon Apr 07 2014 Dan HorĂ¡k - 1.2.6-5 +- skip tests on s390 until https://bugzilla.redhat.com/show_bug.cgi?id=1084914 is resolved + +* Fri Mar 28 2014 Michael Simacek - 1.2.6-4 +- Use Requires: java-headless rebuild (#1067528) + +* Sun Aug 11 2013 Mat Booth - 1.2.6-3 +- Remove BR on ant-nodeps, fixes FTBFS rhbz #992622 + +* Sat Aug 03 2013 Fedora Release Engineering - 1.2.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Tue Feb 05 2013 Bohuslav Kabrda - 1.2.6-1 +- Updated to version 1.2.6. + +* Wed Dec 19 2012 Stanislav Ochotnicky - 1.0.10-4 +- revbump after jnidir change + +* Thu Jul 19 2012 Fedora Release Engineering - 1.0.10-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri Jan 13 2012 Fedora Release Engineering - 1.0.10-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue Aug 02 2011 Mo Morsi - 1.0.10-1 +- Updated to most recent upstream release + +* Wed Jun 01 2011 Mo Morsi - 1.0.9-1 +- Updated to most recent upstream release + +* Mon Oct 25 2010 - 1.0.2-1 +- Updated to most recent upstream release + +* Wed Apr 14 2010 - 0.6.5-4 +- added Mamoru Tasaka's fix for ppc{,64} to prep + +* Mon Mar 08 2010 - 0.6.5-3 +- fixes to jffi from feedback +- don't strip debuginfo, remove extraneous executable bits, + +* Tue Feb 23 2010 - 0.6.5-2 +- fixes to jffi compilation process +- fixes to spec to conform to package guidelines + +* Wed Feb 17 2010 - 0.6.5-1 +- bumped version +- fixed package to comply to fedora guidelines + +* Tue Jan 19 2010 - 0.6.2-1 +- Initial build.