From 3ec210ed9f9e99b4aa3f09e2f2b16cb954128d8f Mon Sep 17 00:00:00 2001 From: tigro Date: Mon, 30 Dec 2024 23:13:48 +0300 Subject: [PATCH] import fltk-1.3.8-10.el10 --- .fltk.metadata | 2 +- SOURCES/fltk-config.sh | 4 +- SOURCES/mingw-fltk-cmake.patch | 22 +++ SPECS/fltk.spec | 279 +++++++++++++++++++++++++-------- 4 files changed, 237 insertions(+), 70 deletions(-) create mode 100644 SOURCES/mingw-fltk-cmake.patch diff --git a/.fltk.metadata b/.fltk.metadata index 517e6eb..9cac188 100644 --- a/.fltk.metadata +++ b/.fltk.metadata @@ -1 +1 @@ -8753055c01f91e5295570324d8af2c5bdd7a2943 SOURCES/fltk-1.3.8-source.tar.gz +8753055c01f91e5295570324d8af2c5bdd7a2943 SOURCES/fltk-1.3.8-source.tar.gz diff --git a/SOURCES/fltk-config.sh b/SOURCES/fltk-config.sh index c70522d..a212283 100644 --- a/SOURCES/fltk-config.sh +++ b/SOURCES/fltk-config.sh @@ -1,3 +1,3 @@ -#!/bin/bash +#!/usr/bin/bash -exec fltk-config-$(uname -i) "$@" +exec fltk-config-$(uname -m) "$@" diff --git a/SOURCES/mingw-fltk-cmake.patch b/SOURCES/mingw-fltk-cmake.patch new file mode 100644 index 0000000..a2dfe7a --- /dev/null +++ b/SOURCES/mingw-fltk-cmake.patch @@ -0,0 +1,22 @@ +Index: fltk-1.3.8/CMake/setup.cmake +=================================================================== +--- fltk-1.3.8.orig/CMake/setup.cmake ++++ fltk-1.3.8/CMake/setup.cmake +@@ -57,13 +57,15 @@ set (FLTK_DOCDIR ${CMAKE_INSTALL_DATADIR + ####################################################################### + + # set where config files go +-if (WIN32 AND NOT CYGWIN) ++if (MINGW) ++ set (FLTK_CONFIG_PATH ${FLTK_DATADIR}/cmake/fltk) ++elseif (WIN32 AND NOT CYGWIN) + set (FLTK_CONFIG_PATH CMake) + elseif (APPLE AND NOT OPTION_APPLE_X11) + set (FLTK_CONFIG_PATH FLTK.framework/Resources/CMake) + else () + set (FLTK_CONFIG_PATH ${FLTK_DATADIR}/fltk CACHE FILEPATH "Install location for cmake files.") +-endif (WIN32 AND NOT CYGWIN) ++endif (MINGW) + + include(TestBigEndian) + TEST_BIG_ENDIAN(WORDS_BIGENDIAN) diff --git a/SPECS/fltk.spec b/SPECS/fltk.spec index 8a4aba4..c93cf13 100644 --- a/SPECS/fltk.spec +++ b/SPECS/fltk.spec @@ -1,87 +1,143 @@ -#global snap r9671 - # trim changelog included in binary rpms %global _changelog_trimtime %(date +%s -d "1 year ago") -Summary: C++ user interface toolkit -Name: fltk -Version: 1.3.8 -Release: 1%{?dist} +# MinGW is enabled by default (except for RHEL), to disable use '--without mingw' +%if 0%{?rhel} || 0%{?flatpak} +%bcond_with mingw +%else +%bcond_without mingw +%endif + +Name: fltk +Version: 1.3.8 +Release: 10%{?dist} +Summary: C++ user interface toolkit # see COPYING (or http://www.fltk.org/COPYING.php ) for exceptions details -License: LGPLv2+ with exceptions -URL: http://www.fltk.org/ +License: LGPL-2.0-or-later with exceptions +URL: http://www.fltk.org/ -%if "%{?snap:1}" == "1" -Source0: http://ftp.easysw.com/pub/fltk/snapshots/fltk-1.3.x-%{snap}.tar.bz2 -%else Source0: http://fltk.org/pub/%{name}/%{version}/%{name}-%{version}-source.tar.gz -%endif - Source1: fltk-config.sh Patch0: fltk-cmake.patch # add lib64 support, drop extraneous libs (bug #708185) and ldflags (#1112930) Patch1: fltk-1.3.4-fltk_config.patch +# Fix cmake install location for MinGW build +Patch2: mingw-fltk-cmake.patch + +BuildRequires: cmake +BuildRequires: desktop-file-utils +BuildRequires: doxygen +# For MinGW builds +BuildRequires: fltk-fluid +BuildRequires: gcc-c++ +BuildRequires: make +BuildRequires: texlive-latex +BuildRequires: pkgconfig(libjpeg) +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(gl) pkgconfig(glu) +BuildRequires: pkgconfig(ice) +BuildRequires: pkgconfig(sm) +BuildRequires: pkgconfig(xext) pkgconfig(xinerama) pkgconfig(xft) pkgconfig(xt) pkgconfig(x11) +BuildRequires: pkgconfig(xcursor) +BuildRequires: pkgconfig(xproto) +BuildRequires: pkgconfig(zlib) + +%if %{with mingw} +# MinGW +BuildRequires: mingw32-filesystem >= 95 +BuildRequires: mingw32-gcc +BuildRequires: mingw32-gcc-c++ +BuildRequires: mingw32-binutils +BuildRequires: mingw32-gettext +BuildRequires: mingw32-win-iconv +BuildRequires: mingw32-zlib +# Libraries +BuildRequires: mingw32-libpng +BuildRequires: mingw32-libjpeg + +BuildRequires: mingw64-filesystem >= 95 +BuildRequires: mingw64-gcc +BuildRequires: mingw64-gcc-c++ +BuildRequires: mingw64-binutils +BuildRequires: mingw64-gettext +BuildRequires: mingw64-win-iconv +BuildRequires: mingw64-zlib +# Libraries +BuildRequires: mingw64-libpng +BuildRequires: mingw64-libjpeg +%endif -BuildRequires: gcc-c++ -BuildRequires: cmake -BuildRequires: desktop-file-utils -BuildRequires: doxygen -BuildRequires: texlive-latex -# fltk bug with pdf generation, investigate later -#BuildRequires: texlive-epstopdf -BuildRequires: pkgconfig(libjpeg) -BuildRequires: pkgconfig(libpng) -BuildRequires: pkgconfig(gl) pkgconfig(glu) -BuildRequires: pkgconfig(ice) -BuildRequires: pkgconfig(sm) -BuildRequires: pkgconfig(xext) pkgconfig(xinerama) pkgconfig(xft) pkgconfig(xt) pkgconfig(x11) -BuildRequires: pkgconfig(xcursor) -BuildRequires: pkgconfig(xproto) -BuildRequires: pkgconfig(zlib) -BuildRequires: make -%description -FLTK (pronounced "fulltick") is a cross-platform C++ GUI toolkit. -It provides modern GUI functionality without the bloat, and supports +%global _description \ +FLTK (pronounced "fulltick") is a cross-platform C++ GUI toolkit. \ +It provides modern GUI functionality without the bloat, and supports \ 3D graphics via OpenGL and its built-in GLUT emulation. +%description +%{_description} %package devel -Summary: Development files for %{name} -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: libstdc++-devel -Requires: pkgconfig(fontconfig) -Requires: pkgconfig(gl) pkgconfig(glu) -Requires: pkgconfig(ice) pkgconfig(sm) -Requires: pkgconfig(xft) pkgconfig(xt) pkgconfig(x11) -Requires: pkgconfig(libjpeg) -Requires: pkgconfig(libpng) -Requires: pkgconfig(zlib) +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: libstdc++-devel +Requires: pkgconfig(fontconfig) +Requires: pkgconfig(gl) pkgconfig(glu) +Requires: pkgconfig(ice) pkgconfig(sm) +Requires: pkgconfig(xft) pkgconfig(xt) pkgconfig(x11) +Requires: pkgconfig(libjpeg) +Requires: pkgconfig(libpng) +Requires: pkgconfig(zlib) %description devel %{summary}. %package static -Summary: Static libraries for %{name} -Requires: %{name}-devel = %{version}-%{release} +Summary: Static libraries for %{name} +Requires: %{name}-devel = %{version}-%{release} %description static %{summary}. %package fluid -Summary: Fast Light User Interface Designer -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: %{name}-devel +Summary: Fast Light User Interface Designer +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-devel %description fluid %{summary}, an interactive GUI designer for %{name}. +%if %{with mingw} +%package -n mingw32-fltk +Summary: %{summary} + +%description -n mingw32-fltk +%{_description} + +# Win64 +%package -n mingw64-fltk +Summary: MinGW compiled fltk for the Win64 target + +%description -n mingw64-fltk +%{_description} + +%package -n mingw32-fltk-static +Summary: %{summary} + +%description -n mingw32-fltk-static +%{_description} + +# Win64 +%package -n mingw64-fltk-static +Summary: MinGW compiled fltk for the Win64 target + +%description -n mingw64-fltk-static +%{_description} + +%{?mingw_debug_package} +%endif + %prep -%if 0%{?snap:1} -%autosetup -p1 -n fltk-1.3.x-%{snap} -%else %autosetup -p1 -%endif %build @@ -95,28 +151,42 @@ Requires: %{name}-devel make docs -C %{_vpath_builddir} +%if %{with mingw} +%mingw_cmake -DOPTION_BUILD_SHARED_LIBS=TRUE +%mingw_make_build +%endif + %install %cmake_install +# Deal with license file of same name +mv src/xutf8/COPYING ./COPYING.xutf8 + # we only apply this hack to multilib arch's -%ifarch x86_64 %{ix86} ppc64 ppc s390x s390 sparc64 sparc -%global arch %(uname -i 2>/dev/null || echo undefined) +%ifarch x86_64 %{ix86} +%global arch %(uname -m 2>/dev/null || echo undefined) mv $RPM_BUILD_ROOT%{_bindir}/fltk-config \ $RPM_BUILD_ROOT%{_bindir}/fltk-config-%{arch} install -p -m755 -D %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/fltk-config %endif +%if %{with mingw} +%mingw_make_install +%mingw_debug_install_post +%endif + %check -desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/fluid.desktop +desktop-file-validate %{buildroot}%{_datadir}/applications/fluid.desktop %ldconfig_scriptlets + %files %doc ANNOUNCEMENT CHANGES CREDITS README -%license COPYING +%license COPYING COPYING.xutf8 %{_libdir}/libfltk.so.1.3* %{_libdir}/libfltk_forms.so.1.3* %{_libdir}/libfltk_gl.so.1.3* @@ -149,22 +219,97 @@ desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/fluid.desktop %{_datadir}/mime/packages/fluid.xml %{_datadir}/icons/hicolor/*/*/* +%if %{with mingw} +%files -n mingw32-fltk +%license COPYING COPYING.xutf8 +%{mingw32_bindir}/fltk-config +%{mingw32_bindir}/libfltk.dll +%{mingw32_libdir}/libfltk.dll.a +%{mingw32_bindir}/libfltk_forms.dll +%{mingw32_libdir}/libfltk_forms.dll.a +%{mingw32_bindir}/libfltk_images.dll +%{mingw32_libdir}/libfltk_images.dll.a +%{mingw32_bindir}/libfltk_gl.dll +%{mingw32_libdir}/libfltk_gl.dll.a +%{mingw32_includedir}/FL/ +%{mingw32_datadir}/cmake/fltk/ +%exclude %{mingw32_datadir}/man/* + +%files -n mingw64-fltk +%license COPYING COPYING.xutf8 +%{mingw64_bindir}/fltk-config +%{mingw64_bindir}/libfltk.dll +%{mingw64_libdir}/libfltk.dll.a +%{mingw64_bindir}/libfltk_forms.dll +%{mingw64_libdir}/libfltk_forms.dll.a +%{mingw64_bindir}/libfltk_images.dll +%{mingw64_libdir}/libfltk_images.dll.a +%{mingw64_bindir}/libfltk_gl.dll +%{mingw64_libdir}/libfltk_gl.dll.a +%{mingw64_includedir}/FL/ +%{mingw64_datadir}/cmake/fltk/ +%exclude %{mingw64_datadir}/man/* + +%files -n mingw32-fltk-static +%{mingw32_libdir}/libfltk.a +%{mingw32_libdir}/libfltk_forms.a +%{mingw32_libdir}/libfltk_images.a +%{mingw32_libdir}/libfltk_gl.a + +%files -n mingw64-fltk-static +%{mingw64_libdir}/libfltk.a +%{mingw64_libdir}/libfltk_forms.a +%{mingw64_libdir}/libfltk_images.a +%{mingw64_libdir}/libfltk_gl.a +%endif + %changelog -* Fri Dec 17 2021 Jan Grulich - 1.3.8-1 -- 1.3.8 - Resolves: bz#2025415 +* Mon Dec 30 2024 Arkady L. Shane - 1.3.8-10 +- Rebuilt for MSVSphere 10 + +* Wed Jul 17 2024 Fedora Release Engineering - 1.3.8-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Wed Jan 24 2024 Fedora Release Engineering - 1.3.8-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 1.3.8-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jul 19 2023 Fedora Release Engineering - 1.3.8-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jan 19 2023 Fedora Release Engineering - 1.3.8-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Mon Sep 05 2022 Richard Shaw - 1.3.8-5 +- Fix second instance of uname -i in bash script. + +* Sat Aug 27 2022 Richard Shaw - 1.3.8-4 +- Spec file modernization and fixes: + Update to SPDX license tag + Clean up spec file formatting + Remove obsolete snapshot build support + Migrate from uname -i to uname -m + +* Thu Jul 21 2022 Fedora Release Engineering - 1.3.8-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jan 20 2022 Fedora Release Engineering - 1.3.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Sat Nov 20 2021 Richard Shaw - 1.3.8-1 +- Update to 1.3.8. -* Mon Aug 09 2021 Mohan Boddu - 1.3.6-2 -- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags - Related: rhbz#1991688 +* Wed Jul 21 2021 Fedora Release Engineering - 1.3.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild -* Tue Jun 29 2021 Jan Grulich - 1.3.6-1 -- 1.3.6 - Resolves: bz#1976712 +* Sun Jun 27 2021 Richard Shaw - 1.3.6-1 +- Update to 1.3.6. -* Thu Apr 15 2021 Mohan Boddu - 1.3.5-11 -- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 +* Mon Feb 22 2021 Richard Shaw - 1.3.5-11 +- Update requires for devel package, fixes #1931645. * Tue Jan 26 2021 Fedora Release Engineering - 1.3.5-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild