summaryrefslogtreecommitdiff
path: root/freefilesync/freefilesync.spec
diff options
context:
space:
mode:
authorB Stack <bgstack15@gmail.com>2022-06-07 15:38:20 -0400
committerB Stack <bgstack15@gmail.com>2022-06-07 15:38:20 -0400
commit9ee86228fb287d93b79c83bd684614eb988cd8f2 (patch)
treebc52fa511ab8ec63a8ac24b537fed38e3af17016 /freefilesync/freefilesync.spec
parentMerge branch 'scite-bump' into 'master' (diff)
downloadstackrpms-9ee86228fb287d93b79c83bd684614eb988cd8f2.tar.gz
stackrpms-9ee86228fb287d93b79c83bd684614eb988cd8f2.tar.bz2
stackrpms-9ee86228fb287d93b79c83bd684614eb988cd8f2.zip
ffs: major rewrite of spec for el8 and fc
Diffstat (limited to 'freefilesync/freefilesync.spec')
-rw-r--r--freefilesync/freefilesync.spec140
1 files changed, 87 insertions, 53 deletions
diff --git a/freefilesync/freefilesync.spec b/freefilesync/freefilesync.spec
index 76d9c4b..8fa7e2e 100644
--- a/freefilesync/freefilesync.spec
+++ b/freefilesync/freefilesync.spec
@@ -10,14 +10,18 @@
%if 0%{?el6}%{?el7}
%define scl_env devtoolset-7
%define scl_buildreq devtoolset-7-toolchain
- %define min_libcurl >= 7.64.0
+ %define min_libcurl >= 7.61.0
%define min_libssh2 >= 1.8.0
%define min_openssl >= 1.1.1c
%endif
-%define libssh2_name libssh2
-%if 0%{?rhel} >= 8
-%define libssh2_name libssh2-%{name}
+%if 0%{?el8}
+ %define scl_env gcc-toolset-11
+ %define scl_buildreq gcc-toolset-11-gcc-c++, gcc-toolset-11-annobin-plugin-gcc
+ %define min_libcurl >= 7.61.0
+ %define min_libssh2 >= 1.9.0
+ %define min_openssl >= 1.1.1k
%endif
+%define libssh2_name libssh2
%if 0%{?fedora} >= 36
# https://www.spinics.net/lists/fedora-devel/msg296646.html
# https://fedoraproject.org/wiki/Changes/Package_information_on_ELF_objects
@@ -37,22 +41,28 @@ Source0: https://gitlab.com/opensource-tracking/%{pkgname}/-/archive/%{versio
Source1: %{pkgname}.desktop
Source2: %{prog2name}.desktop
Source3: %{name}.xml
-Patch0: ffs_allow_parallel_ops.patch
-Patch1: ffs_no_check_updates.patch
-Patch2: ffs_no_wx311.patch
-Patch3: ffs_sftp.patch
-Patch4: ffs_fedora.patch
-Patch5: ffs_el.patch
-Patch6: ffs_libssh2.patch
-Patch7: ffs_curl.patch
-Patch8: ffs_bit.patch
-Patch9: ffs_no_eraseif.patch
-Patch10: revert_zenju_aggressive_upstreamisms.patch
-Patch11: ffs_traditional_view.patch
-Patch12: ffs_desktop_notifications.patch
-Patch13: ffs_openssl.patch
-Patch14: ffs_icon_loader.patch
-Patch15: ffs_no_gcc12.patch
+# all rpm distros use these
+Patch0: 00_allow_parallel_ops.patch
+Patch1: 01_no_check_updates.patch
+Patch2: 02_no_wx311.patch
+Patch3: 03_sftp.patch
+Patch4: 04_revert_zenju_aggressive_upstreamisms.patch
+Patch5: 05_traditional_view.patch
+Patch6: 06_icon_loader.patch
+Patch7: 07_libssh2.patch
+# distro specific patches
+## Fedora and EL8
+Patch20: ffs_distro_fedora.patch
+## EL6 and EL7
+Patch30: ffs_distro_el6_el7.patch
+Patch31: ffs_el6_el7_bit.patch
+Patch32: ffs_el6_el7_no_eraseif.patch
+# dependency specific
+Patch40: ffs_openssl.patch
+Patch41: ffs_no_gcc12.patch
+Patch60: ffs_desktop_notifications.patch
+Patch70: ffs_libcurl_7.61.1.patch
+Patch71: ffs_libcurl_7.71.1.patch
Packager: B. Stack <bgstack15@gmail.com>
BuildRequires: brotli-devel
@@ -60,8 +70,16 @@ BuildRequires: wxGTK3-devel
BuildRequires: desktop-file-utils
BuildRequires: gcc-c++
BuildRequires: ImageMagick
+%if "%{?min_libcurl}" != ""
BuildRequires: libcurl-devel %{min_libcurl}
+%else
+BuildRequires: libcurl-devel
+%endif
+%if "%{?min_libssh2}" != ""
BuildRequires: %{libssh2_name}-devel %{min_libssh2}
+%else
+BuildRequires: %{libssh2_name}-devel
+%endif
BuildRequires: patch
BuildRequires: pkgconfig(giomm-2.4)
BuildRequires: pkgconfig(gtk+-2.0)
@@ -69,10 +87,14 @@ BuildRequires: pkgconfig(libselinux)
BuildRequires: pkgconfig(zlib)
%if 0%{?el6}%{?el7}
BuildRequires: %{scl_buildreq}
+%if "%{?min_openssl}" != ""
BuildRequires: openssl-%{name}-devel %{min_openssl}
-Requires: libcurl %{min_libcurl}
-Requires: %{libssh2_name} %{min_libssh2}
-Requires: openssl-%{name}-libs %{min_openssl}
+%else
+BuildRequires: openssl-%{name}-devel
+%endif
+#Requires: libcurl %%{?min_libcurl}
+#Requires: %%{libssh2_name} %%{?min_libssh2}
+#Requires: openssl-%%{name}-libs %%{?min_openssl}
%else
BuildRequires: openssl-devel
%endif
@@ -90,37 +112,57 @@ having nice visual feedback along the way.
%prep
%setup -n %{pkgname}-%{version}
-
# fix text file line endings and permissions to unix
find . ! -type d \( -name '*.c' -o -name '*.cpp' -o -name '*.h' \) \
-exec %{__sed} -i -r -e 's/\r$//' {} +
-
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
%if 0%{?el6}%{?el7}
# use the el patch
-%patch5 -p1
+%patch30 -p1
+%patch31 -p1
+%patch32 -p1
%else
# use the fedora patch, even for el8
-%patch4 -p1
+%patch20 -p1
%endif
-%patch6 -p1
-%patch7 -p1
-%if 0%{?el6}%{?el7}%{?el8}%{?fc29}
-%patch8 -p1
-%patch9 -p1
+# Determine if openssl < 3.0.0
+%define opensslver %( openssl version | awk '{if($2>=3){print "3"}else{print"1"}}' )
+%if 0%{opensslver} < 3
+%patch40 -p1
%endif
-%patch10 -p1
-%patch11 -p1
-%patch12 -p1
-%if 0%{?fedora} < 36
-# Patch13 openssl is only for openssl < 3.0.0
-%patch13 -p1
+# Determine if g++ < 12
+%if "%{?scl_env}" != ""
+ g__version="$( scl enable %{scl_env} /bin/bash <<'EOFSCL' | awk 'NR==1{if($2>=12){print "12"}else{print"11"}}'
+ %endif
+ g++ --version
+ %if "%{?scl_env}" != ""
+EOFSCL
%endif
-%patch14 -p1
-%patch15 -p1
+)"
+echo "G__version=${g_version}"
+if test ${g__version} -lt 12 ;
+then
+%patch41 -p1
+fi
+# desktop notifications merely has to happen after distro patch
+%patch60 -p1
+# Determine version of libcurl
+%define libcurl_ver %( rpm -q libcurl-devel --queryformat '%%{version}' )
+case "%{libcurl_ver}" in
+ 7.61.1)
+%patch70 -p1
+ ;;
+ *)
+%patch71 -p1
+ ;;
+esac
# custom build parameters for packaging application in rpm
# fedora provides build_cxxflags, which is really just optflags
@@ -144,7 +186,7 @@ EOFSCL
%install
%if !%{dummy_package}
-# removed by upstream!
+# removed by upstream around version 11
#%%make_install -C %%{pkgname}/Source
#%%make_install -C %%{pkgname}/Source/%%{prog2name}
pushd %{pkgname}/Build
@@ -162,12 +204,6 @@ mkdir -p %{buildroot}%{_datadir}/applications
desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE1}
desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE2}
-# application start script
-# none
-
-# man pages
-# none
-
# mimetypes
install -d %{buildroot}%{_datadir}/mime/packages
install -Dm 0644 -t %{buildroot}%{_datadir}/mime/packages %{SOURCE3}
@@ -195,12 +231,6 @@ done
%post
touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
-%preun
-# is it a final removal?
-#if test "$1" = "0" ;
-#then
-#fi
-
%postun
if test "$1" = "0" ;
then
@@ -224,6 +254,10 @@ update-mime-database -n ${_datadir}/mime 1>/dev/null 2>&1 & :
%ghost %config %attr(666, -, -) %{_datadir}/%{name}/GlobalSettings.xml
%changelog
+* Tue Jun 07 2022 B. Stack <bgstack15@gmail.com> - 11.21-2
+- rewrite spec for easier cross-distro support
+- fix builds for el8
+
* Wed May 25 2022 B. Stack <bgstack15@gmail.com> - 11.21-1
- version bump
- add ffs_no_gcc12 patch
bgstack15