summaryrefslogtreecommitdiff
path: root/freefilesync/freefilesync.spec
diff options
context:
space:
mode:
Diffstat (limited to 'freefilesync/freefilesync.spec')
-rw-r--r--freefilesync/freefilesync.spec83
1 files changed, 24 insertions, 59 deletions
diff --git a/freefilesync/freefilesync.spec b/freefilesync/freefilesync.spec
index 2136e86..6d4caf9 100644
--- a/freefilesync/freefilesync.spec
+++ b/freefilesync/freefilesync.spec
@@ -1,16 +1,17 @@
-# Summary for CentOS 7 compilation of freefilesync:
-# 1. city-fan repo (http://www.city-fan.org/ftp/contrib/yum-repo/) for newer libssh2
-# 2. sclo for gcc 7.3.1
-# 3. all sorts of custom patches to code in freefilesync.spec and some standalone patch files.
-# 4. custom openssl 1.1.0-devel and -libs packages.
%global pkgname FreeFileSync
%global prog2name RealTimeSync
%global dummy_package 0
+%define min_libcurl %{nil}
+%define min_libssh2 %{nil}
+%define min_openssl %{nil}
%define scl_env %{nil}
%define scl_buildreq coreutils
%if 0%{?el6}%{?el7}
%define scl_env devtoolset-7
%define scl_buildreq devtoolset-7-toolchain
+ %define min_libcurl >= 7.64.0
+ %define min_libssh2 >= 1.8.0
+ %define min_openssl >= 1.1.0h
%endif
Name: freefilesync
Version: 10.9
@@ -25,14 +26,11 @@ URL: http://www.freefilesync.org/
Source0: https://gitlab.com/opensource-tracking/%{pkgname}/-/archive/%{version}/%{pkgname}-%{version}.tar.gz
Source1: %{pkgname}.desktop
Source2: %{prog2name}.desktop
-Patch0: ffs_makefile.patch
-Patch1: ffs_no_check_updates.patch
-Patch2: ffs_no_wx311.patch
-Patch3: ffs_fedora.patch
-Patch4: ffs_allow_parallel_ops.patch
-Patch5: ffs_old_libcurl.patch
-Patch6: ffs_sftp.patch
-Patch7: ffs_abi.patch
+Patch0: ffs_no_check_updates.patch
+Patch1: ffs_no_wx311.patch
+Patch2: ffs%{?dist}.patch
+Patch3: ffs_allow_parallel_ops.patch
+Patch4: ffs_sftp.patch
Packager: B Stack <bgstack15@gmail.com>
# WARNING: the build will FAIL if you have wxGTK3-devel installed. Only wxGTK2-devel should be on the build system.
@@ -41,19 +39,18 @@ BuildRequires: compat-wxGTK3-gtk2-devel
BuildRequires: desktop-file-utils
BuildRequires: gcc-c++
BuildRequires: ImageMagick
-BuildRequires: libcurl-devel
-BuildRequires: libssh2-devel
-BuildRequires: openssl-devel
BuildRequires: pkgconfig(gtk+-2.0)
BuildRequires: pkgconfig(libselinux)
BuildRequires: pkgconfig(zlib)
+BuildRequires: libcurl-devel %{min_libcurl}
+BuildRequires: libssh2-devel %{min_libssh2}
+BuildRequires: openssl-devel %{min_openssl}
%if 0%{?el6}%{?el7}
BuildRequires: wxGTK-devel
-%endif
-%if "%{?scl_env}" != ""
BuildRequires: %{scl_buildreq}
%endif
Requires: hicolor-icon-theme
+Requires: xdg-utils
%description
FreeFileSync is a free Open Source software that helps you synchronize
@@ -73,41 +70,13 @@ find . ! -type d \( -name '*.c' -o -name '*.cpp' -o -name '*.h' \) \
%patch2 -p1
%patch3 -p1
%patch4 -p1
-%patch5 -p1
-%patch6 -p1
-%patch7 -p1
-
-%if "%{?scl_env}" != ""
- # everything minus the -fPIC got farther but failed asking for -fPIC
- # another option is to use the output of "wx-config --libs std, aui --debug=no" from fc28 and find the 3.0 libs and use those here.
- %{__sed} \
- -e 's|-O3 -DNDEBUG|& -I/usr/include/wx-3.0-gtk2 -I/usr/lib64/wx/include/gtk2-unicode-3.0-gtk2 -fPIC|;' \
- -e '/LINKFLAGS/s|-no-pie|& -I/usr/include/wx-3.0-gtk2 -I/usr/lib64/wx/include/gtk2-unicode-3.0-gtk2 -pthread -lwx_gtk2u_aui-3.0-gtk2 -lwx_gtk2u_xrc-3.0-gtk2 -lwx_gtk2u_html-3.0-gtk2 -lwx_gtk2u_qa-3.0-gtk2 -lwx_gtk2u_adv-3.0-gtk2 -lwx_gtk2u_core-3.0-gtk2 -lwx_baseu_xml-3.0-gtk2 -lwx_baseu_net-3.0-gtk2 -lwx_baseu-3.0-gtk2|;' \
- -e 's|-O3 -DNDEBUG|-DNDEBUG -D"warn_static(arg)= " -DZEN_LINUX %{optflags}|g' \
- -e '/LINKFLAGS/s|-s|-Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld %{__global_ldflags}|g' \
- -e '/LINKFLAGS/s|LINKLAGS\s*=\s*|&--static |;' \
- -i %{pkgname}/Source/Makefile %{pkgname}/Source/%{prog2name}/Makefile
-
- # old libcurl problems again, perhaps solved with http://www.city-fan.org/ftp/contrib/yum-repo/rhel7/x86_64/
- #sed -r -e '/CURLE_WEIRD_SERVER_REPLY|CURLE_HTTP2|CURLE_NO_CONNECTION_AVAILABLE|CURLE_SSL_PINNEDPUBKEYNOTMATCH|CURLE_SSL_INVALIDCERTSTATUS|CURLE_RECURSIVE_API_CALL|CURLINFO_ACTIVESOCKET/s|^|//|;' \
- # -i %{pkgname}/Source/fs/libcurl/curl_wrap.h
-
- # https://stackoverflow.com/questions/52567517/freefilesync-c-error-byte-is-not-a-member-of-std
- sed -i '1s/^/#include <cstddef>\n/' zen/serialize.h zen/ring_buffer.h
-
- # trying to use some openssl-devel from 1.1.0 to satisfy it, from city-fan?
- ## use openssl 1.0.2 on centos7
- #sed -r -e '/OPENSSL_VERSION_NUMBER/s|0x[0-9]+L|0x100020beL|;' \
- # -i FreeFileSync/Source/fs/libssh2/*.cpp
-
-%else
-# only when not el6/el7
+
# custom build parameters for packaging application in rpm
- %{__sed} \
- -e 's|-O3 -DNDEBUG|-DNDEBUG -D"warn_static(arg)= " -DZEN_LINUX %{build_cxxflags}|g' \
- -e '/LINKFLAGS/s|-s|%{__global_ldflags}|g' \
- -i %{pkgname}/Source/Makefile %{pkgname}/Source/%{prog2name}/Makefile
-%endif
+# fedora provides build_cxxflags, which is really just optflags
+%{__sed} \
+ -e 's|-O3 -DNDEBUG|-DNDEBUG -D"warn_static(arg)= " -DZEN_LINUX %{?build_cxxflags:%{build_cxxflags}}%{!?build_cxxflags:%{optflags}}|g' \
+ -e '/LINKFLAGS/s|-s|%{__global_ldflags}|;' \
+ -i %{pkgname}/Source/Makefile %{pkgname}/Source/%{prog2name}/Makefile
%build
%if !%{dummy_package}
@@ -115,8 +84,7 @@ find . ! -type d \( -name '*.c' -o -name '*.cpp' -o -name '*.h' \) \
scl enable %{scl_env} /bin/bash << EOF
%endif
%make_build -C %{pkgname}/Source
- # turned off while building ffs for centos 7
- #%make_build -C %{pkgname}/Source/%{prog2name}
+ %make_build -C %{pkgname}/Source/%{prog2name}
%if "%{?scl_env}" != ""
EOF
%endif
@@ -129,9 +97,7 @@ EOF
#%%make_install -C %%{pkgname}/Source/%%{prog2name}
pushd %{pkgname}/Build
install -d %{buildroot}%{_bindir} %{buildroot}%{_datadir}/%{name}
-# turned off while building ffs for centos 7
-#install -Dm 0755 -t %{buildroot}%{_bindir} Bin/%{pkgname} Bin/%{prog2name}
-install -Dm 0755 -t %{buildroot}%{_bindir} Bin/%{pkgname}
+install -Dm 0755 -t %{buildroot}%{_bindir} Bin/%{pkgname} Bin/%{prog2name}
cp -pr Languages %{buildroot}%{_datadir}/%{name}
install -Dm 0644 ding.wav gong.wav harp.wav Resources.zip styles.gtk_rc %{buildroot}%{_datadir}/%{name}
popd
@@ -194,8 +160,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%license %attr(444, -, -) License.txt
%doc %attr(444, -, -) Changelog.txt
%{_bindir}/%{pkgname}
-# turned off while building ffs for centos 7
-#%{_bindir}/%{prog2name}
+%{_bindir}/%{prog2name}
%{_datadir}/applications/*.desktop
%{_datadir}/icons/hicolor/*x*/apps/*.png
%{_datadir}/%{name}
bgstack15