diff --git a/sdljava-0.9.1-ruby19.patch b/sdljava-0.9.1-ruby19.patch new file mode 100644 index 0000000..1e72407 --- /dev/null +++ b/sdljava-0.9.1-ruby19.patch @@ -0,0 +1,32 @@ +--- sdljava-0.9.1/src/org/gljava/opengl/native/ftgl/post-process.rb~ 2005-02-20 23:19:13.000000000 +0100 ++++ sdljava-0.9.1/src/org/gljava/opengl/native/ftgl/post-process.rb 2012-07-26 12:45:18.738168697 +0200 +@@ -1,7 +1,7 @@ + #!/usr/bin/ruby -w + + require "find" +-require "ftools" ++require "fileutils" + + # temporary hack until I can figure out a better way to do this + # process the given files, change the methods names to start +@@ -101,16 +101,16 @@ Find.find(".") do |path| + + f = File.new("#{path}.tmp", "w+") + +- f << lines ++ f.puts(lines) + +- f << post if not post == nil ++ f.puts(post) if not post == nil + +- f << "\n}" ++ f.puts("\n}") + + f.close + + # move it to the actual file now +- File.move("#{path}.tmp", path) ++ FileUtils.move("#{path}.tmp", path) + end + + diff --git a/sdljava.rpmlintrc b/sdljava.rpmlintrc new file mode 100644 index 0000000..333107f --- /dev/null +++ b/sdljava.rpmlintrc @@ -0,0 +1,7 @@ +# We ship a cleaned tarbal with nonfree fonts removed +addFilter("W: invalid-url Source0: sdljava-0.9.1.tar.gz") +# Silence warnings about the nonfree font replacement symlinks +addFilter("W: dangling-symlink .*") +# The demos do not have docs / manpages, nor do they need these +addFilter("W: no-manual-page-for-binary .*") +addFilter("W: no-documentation") diff --git a/sdljava.spec b/sdljava.spec index 9d1002f..fc8380d 100644 --- a/sdljava.spec +++ b/sdljava.spec @@ -7,21 +7,44 @@ Name: sdljava Version: 0.9.1 -Release: 17%{?dist} +Release: 67%{?dist} Summary: Java binding to the SDL API -Group: System Environment/Libraries -License: LGPLv2+ -Url: http://sdljava.sourceforge.net/ -# this is http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz +# Automatically converted from old format: LGPLv2+ - review is highly recommended. +License: LicenseRef-Callaway-LGPLv2+ +URL: http://sdljava.sourceforge.net/ +# this is http://downloads.sourceforge.net/%%{name}/%%{name}-%%{version}.tar.gz # with the included Microsoft Copyrighted Arial fonts removed Source0: %{name}-%{version}.tar.gz Source1: %{name}-runtest.sh Patch0: sdljava-0.9.1-regen.patch Patch1: sdljava-0.9.1-ftgl213.patch -BuildRequires: ftgl-devel glew-devel SDL-devel SDL_gfx-devel SDL_image-devel -BuildRequires: SDL_mixer-devel SDL_ttf-devel java-devel jpackage-utils -BuildRequires: java-javadoc ant xml-commons-apis swig bsh jdom ruby -Requires: bsh jdom +Patch2: sdljava-0.9.1-ruby19.patch + +BuildRequires: gcc-c++ +BuildRequires: make +BuildRequires: ftgl-devel +BuildRequires: glew-devel +BuildRequires: SDL-devel +BuildRequires: SDL_gfx-devel +BuildRequires: SDL_image-devel +BuildRequires: SDL_mixer-devel +BuildRequires: SDL_ttf-devel + +BuildRequires: javapackages-local-openjdk25 +BuildRequires: ant-openjdk25 +BuildRequires: swig +BuildRequires: jdom +BuildRequires: xml-commons-apis +BuildRequires: %{_bindir}/ruby +BuildRequires: rubygems +# To generate the replacement font symlinks for the sdljava-demo testdata +BuildRequires: font(dejavusans) fontconfig +# sdljava provides java bindings for SDL, so it can only run on java_arches +ExclusiveArch: %{java_arches} + +Requires: java-25 +Requires: javapackages-filesystem +Requires: jdom %description sdljava is a Java binding to the SDL API being developed by Ivan Ganza. @@ -33,9 +56,7 @@ efficient and easy to use. %package javadoc Summary: Javadoc for %{name} -Group: Development/Libraries BuildArch: noarch -Requires: %{name} = %{version}-%{release} %description javadoc Javadoc for %{name}. @@ -43,23 +64,21 @@ Javadoc for %{name}. %package demo Summary: Some examples for %{name} -Group: Development/Libraries BuildArch: noarch Requires: %{name} = %{version}-%{release} -Requires: /usr/share/fonts/dejavu/DejaVuSans.ttf -Requires: /usr/share/fonts/dejavu/DejaVuSans-Bold.ttf -Requires: /usr/share/fonts/dejavu/DejaVuSans-Oblique.ttf -Requires: /usr/share/fonts/dejavu/DejaVuSans-BoldOblique.ttf -Requires: java jpackage-utils +Requires: font(dejavusans) +Requires: javapackages-tools %description demo Demonstrations and samples for %{name}. %prep -%setup -q -%patch0 -p1 -z .regen -%patch1 -p1 +%autosetup -p1 + +find -name '*.jar' -or -name '*.class' -or -name '*.bat' -name '*.so' -delete +rm -r etc/build/gljava/windows etc/build/windows + # Newer ftgl no longer exports the FTFace class rm src/org/gljava/opengl/ftgl/FTFace.java iconv -f ISO_8859-2 -t UTF8 docs/CHANGES_0_9_1 > docs/CHANGES_0_9_1.tmp @@ -77,12 +96,8 @@ sed -i "s#@GCC_INCLUDE_PATH@#$GCC_PATH/include#g" \ find ./testsrc -name '*.java' | xargs sed -i \ -e 's|testdata|%{_datadir}/%{name}/testdata|g' -# use system versions of bsh & jdom -pushd lib -rm *.jar -ln -s /usr/share/java/jdom.jar . -ln -s /usr/share/java/bsh.jar . -popd +# use system versions of jdom +build-jar-repository -p lib jdom # copy the Linux Makefiles into place cp etc/build/linux/Makefile src/sdljava/native @@ -95,7 +110,7 @@ rm src/org/gljava/opengl/native/glew_wrap.c %build -# We must add -D__%{_arch}__ to swigs arguments as swig doesn't do that itself. +# We must add -D__%%{_arch}__ to swigs arguments as swig doesn't do that itself. # Special case ppc as the define is powerpc not ppc and both ppc and ppc64 # must be set for ppc64, also add -D__LONG_DOUBLE_128__ which works around # swig barfing on bits/stdlib-ldbl.h @@ -105,16 +120,29 @@ export ARCH_DEFINE="-D__powerpc__ -D__LONG_DOUBLE_128__" %ifarch ppc64 export ARCH_DEFINE="-D__powerpc__ -D__powerpc64__ -D__LONG_DOUBLE_128__" %endif +%ifarch ppc64le +export ARCH_DEFINE="-D__powerpc__ -D__powerpc64__ -D__LITTLE_ENDIAN__ -D\"__BYTE_ORDER__=1234\" -D\"_CALL_ELF=2\" -D__LONG_DOUBLE_128__" +%endif +%ifarch s390x +export ARCH_DEFINE="-D__s390x__ -D__LONG_DOUBLE_128__" +%endif # special case ix86 as all of ix86 should define __i386__ %ifarch %{ix86} export ARCH_DEFINE="-D__i386__" %endif +# arm also needs a bunch of special defines +%ifarch %{arm} +export ARCH_DEFINE="-D__arm__ -D__ARMEL__ -D__ARM_EABI__" +%ifnarch armv5tel +export ARCH_DEFINE="$ARCH_DEFINE -D__ARM_PCS_VFP" +%endif +%endif # All other archs if [ -z "$ARCH_DEFINE" ]; then export ARCH_DEFINE="-D__%{_arch}__" fi -export JAVA_HOME=/usr/lib/jvm/java +export JAVA_HOME=%{_jvmdir}/java pushd src/sdljava/native make CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fPIC" @@ -137,25 +165,24 @@ ant jar javadoc mkdir -p $RPM_BUILD_ROOT%{_bindir} mkdir -p $RPM_BUILD_ROOT%{_libdir}/%{name} mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name} -mkdir -p $RPM_BUILD_ROOT%{_javadir} -# should be just %{_javadocdir}/%{name} but that is a ghosted symlink in older -# versions and rpm does not grok replacing that with a dir -mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version} +mkdir -p $RPM_BUILD_ROOT%{_jnidir} +mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name} # jars install -m 644 lib/%{name}.jar \ - $RPM_BUILD_ROOT%{_javadir}/%{name}.jar + $RPM_BUILD_ROOT%{_jnidir}/%{name}.jar # native libraries install -m 755 lib/*.so $RPM_BUILD_ROOT%{_libdir}/%{name} # javadoc -cp -pr docs/api/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version} +cp -pr docs/api/* $RPM_BUILD_ROOT%{_javadocdir}/%{name} # demo scripts install -m 755 %{SOURCE1} $RPM_BUILD_ROOT%{_bindir} pushd bin rm runtest.sh +rm run-bsh.sh for i in `ls -1 *.sh`; do sed -i -e 's|./runtest.sh|%{_bindir}/%{name}-runtest.sh|g' $i FN=`echo $i | awk 'BEGIN { FS="." }{ print $1 }'` @@ -165,33 +192,189 @@ popd #test data cp -a testdata $RPM_BUILD_ROOT%{_datadir}/%{name} -ln -s ../../fonts/dejavu/DejaVuSans.ttf \ +ln -s $(fc-match -f "%{file}" "sans") \ $RPM_BUILD_ROOT%{_datadir}/%{name}/testdata/arial.ttf -ln -s ../../fonts/dejavu/DejaVuSans-Bold.ttf \ +ln -s $(fc-match -f "%{file}" "sans:bold") \ $RPM_BUILD_ROOT%{_datadir}/%{name}/testdata/arialbd.ttf -ln -s ../../fonts/dejavu/DejaVuSans-Oblique.ttf \ +ln -s $(fc-match -f "%{file}" "sans:italic") \ $RPM_BUILD_ROOT%{_datadir}/%{name}/testdata/ariali.ttf -ln -s ../../fonts/dejavu/DejaVuSans-BoldOblique.ttf \ +ln -s $(fc-match -f "%{file}" "sans:bold:italic") \ $RPM_BUILD_ROOT%{_datadir}/%{name}/testdata/arialbi.ttf %files -%defattr(-,root,root,-) %doc README TODO docs/CHANGES_0_9_1 -%{_javadir}/%{name}.jar +%{_jnidir}/%{name}.jar %{_libdir}/%{name} %files javadoc -%defattr(-,root,root,-) -%doc %{_javadocdir}/%{name}-%{version} +%doc %{_javadocdir}/%{name} %files demo -%defattr(-,root,root,-) %{_bindir}/%{name}-*.sh %{_datadir}/%{name} %changelog +* Mon Jul 28 2025 jiri vanek - 0.9.1-67 +- Rebuilt for java-25-openjdk as preffered jdk + +* Fri Jul 25 2025 Fedora Release Engineering - 0.9.1-66 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Sun Jan 19 2025 Fedora Release Engineering - 0.9.1-65 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Sep 04 2024 Miroslav Suchý - 0.9.1-64 +- convert license to SPDX + +* Sat Jul 20 2024 Fedora Release Engineering - 0.9.1-63 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Tue Feb 27 2024 Jiri Vanek - 0.9.1-62 +- Rebuilt for java-21-openjdk as system jdk + +* Sat Jan 27 2024 Fedora Release Engineering - 0.9.1-61 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Jul 22 2023 Fedora Release Engineering - 0.9.1-60 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Sat Jan 21 2023 Fedora Release Engineering - 0.9.1-59 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sat Jul 23 2022 Fedora Release Engineering - 0.9.1-58 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sat Jul 16 2022 Hans de Goede - 0.9.1-57 +- sdljava provides java bindings for SDL and the JDK is no longer + build on i686, disable i686 builds (rhbz#2104100) + +* Thu Feb 10 2022 Orion Poplawski - 0.9.1-56 +- Rebuild for glew 2.2 + +* Sat Feb 05 2022 Jiri Vanek - 0.9.1-55 +- Rebuilt for java-17-openjdk as system jdk + +* Sat Jan 22 2022 Fedora Release Engineering - 0.9.1-54 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Dec 2 2021 Hans de Goede - 0.9.1-53 +- Drop sdljava-run-bsh.sh demo +- Drop now unnecessary bsh Requires + +* Fri Jul 23 2021 Fedora Release Engineering - 0.9.1-52 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jan 27 2021 Fedora Release Engineering - 0.9.1-51 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 0.9.1-50 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Sat Jul 11 2020 Jiri Vanek - 0.9.1-49 +- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 + +* Mon Mar 9 2020 Hans de Goede - 0.9.1-48 +- Use fc-match to generate dejavu font file symlinks in -demo in case the + file-paths or names change again in the future + +* Fri Mar 6 2020 Hans de Goede - 0.9.1-47 +- Replace path requires on dejavu with Requires: font(dejavusans) (rhbz#1731701) +- Adjust -demo font paths for F32+ font path changes (rhbz#1806272) + +* Thu Jan 30 2020 Fedora Release Engineering - 0.9.1-46 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Mon Nov 25 2019 Hans de Goede - 0.9.1-45 +- Replace unnecessary BuildRequires: jruby with BuildRequires: rubygems +- Drop version prefix from javadocs installation the ghosted symlink + blocking us from doing this has last shipped in Fedora 16 +- Update to match latest java packaging guidelines + +* Fri Jul 26 2019 Fedora Release Engineering - 0.9.1-44 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sat Feb 02 2019 Fedora Release Engineering - 0.9.1-43 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Aug 23 2018 Nicolas Chauvet - 0.9.1-42 +- Rebuilt for glew 2.1.0 + +* Sat Jul 14 2018 Fedora Release Engineering - 0.9.1-41 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon Feb 19 2018 Michael Simacek - 0.9.1-40 +- Add BR on gcc and make + +* Fri Feb 09 2018 Fedora Release Engineering - 0.9.1-39 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Oct 26 2017 Vít Ondruch - 0.9.1-38 +- Prefer dependency on "%%{_bindir}/ruby". + +* Mon Sep 04 2017 Michael Simacek - 0.9.1-37 +- Fix build on s390x + +* Thu Aug 03 2017 Fedora Release Engineering - 0.9.1-36 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 0.9.1-35 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 0.9.1-34 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Tue Jan 10 2017 Orion Poplawski - 0.9.1-33 +- Rebuild for glew 2.0.0 + +* Sun Jul 17 2016 Michael Simacek - 0.9.1-32 +- Fix FTBFS +- Specfile cleanup + +* Thu Feb 04 2016 Fedora Release Engineering - 0.9.1-31 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Thu Jan 14 2016 Adam Jackson - 0.9.1-30 +- Rebuild for glew 1.13 + +* Fri Jun 19 2015 Fedora Release Engineering - 0.9.1-29 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Wed Oct 01 2014 Karsten Hopp 0.9.1-28 +- fix ppc64le build + +* Mon Aug 18 2014 Fedora Release Engineering - 0.9.1-27 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Fri Jun 13 2014 Hans de Goede - 0.9.1-26 +- Rebuild for new SDL_gfx + +* Sun Jun 08 2014 Fedora Release Engineering - 0.9.1-25 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon Nov 18 2013 Dave Airlie - 0.9.1-24 +- rebuilt for GLEW 1.10 + +* Sun Aug 04 2013 Fedora Release Engineering - 0.9.1-23 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Sun Mar 24 2013 Hans de Goede - 0.9.1-22 +- Fix FTBFS on ARM (rhbz#893157) + +* Thu Feb 14 2013 Fedora Release Engineering - 0.9.1-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Thu Dec 13 2012 Adam Jackson - 0.9.1-20 +- Rebuild for glew 1.9.0 + +* Thu Jul 26 2012 Hans de Goede - 0.9.1-19 +- Fix building with ruby 1.9 +- Rebuilt for new GLEW + +* Sat Jul 21 2012 Fedora Release Engineering - 0.9.1-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + * Sat Jan 14 2012 Fedora Release Engineering - 0.9.1-17 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild