diff options
Diffstat (limited to 'freefilesync/freefilesync.spec')
-rw-r--r-- | freefilesync/freefilesync.spec | 83 |
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} |