diff options
author | B Stack <bgstack15@gmail.com> | 2019-02-18 10:43:53 -0500 |
---|---|---|
committer | B Stack <bgstack15@gmail.com> | 2019-02-18 10:43:53 -0500 |
commit | d37779e8b1af7b7237844a9ff7c705296718835d (patch) | |
tree | 403405057d49f01c278ef6e4f285f53a0a4e872a /freefilesync/freefilesync.spec | |
parent | WIP: freefilesync on centos7 raw (diff) | |
download | stackrpms-d37779e8b1af7b7237844a9ff7c705296718835d.tar.gz stackrpms-d37779e8b1af7b7237844a9ff7c705296718835d.tar.bz2 stackrpms-d37779e8b1af7b7237844a9ff7c705296718835d.zip |
WIP: FreeFileSync on CentOS 7, part 1
In my original dev environment, I can now compile and execute the main
binaries. My next commit should include some attempts at static
linking so the runtime environment does not need the hacked
openssl 1.1.0h packages.
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} |