File GoldenCheetah.spec of Package GoldenCheetah

#
# spec file for package GoldenCheetah
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2013-2016 Malcolm J Lewis <malcolmlewis@opensuse.org>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#

%{!?python_configdir: %global python_configdir %(python3-config --configdir)}
%{!?python_includes: %global python_includes %(python3-config --includes)}
%{!?python_libs: %global python_libs %(python3-config --libs)}
Name:           GoldenCheetah
Version:        3.6
Release:        1.74
Summary:        Cycling Performance Software
License:        GPL-3.0-only
Group:          Hardware/Other
URL:            http://goldencheetah.org/
Source0:        v3.6.tar.gz
Source1:        %{name}.png
# PATCH-FIX-OPENSUSE GoldenCheetah-sip.patch
Patch0:         %{name}-sip.patch
BuildRequires:  ImageMagick
BuildRequires:  bison
BuildRequires:  flex
BuildRequires:  gcc-c++
BuildRequires:  pkgconfig
BuildRequires:  qwtplot3d-devel
BuildRequires:  srmio-devel
BuildRequires:  pkgconfig(Qt5Bluetooth)
BuildRequires:  pkgconfig(Qt5Charts)
BuildRequires:  pkgconfig(Qt5Concurrent)
BuildRequires:  pkgconfig(Qt5Core) >= 5.13
BuildRequires:  pkgconfig(Qt5Multimedia)
BuildRequires:  pkgconfig(Qt5MultimediaWidgets)
BuildRequires:  pkgconfig(Qt5OpenGL)
BuildRequires:  pkgconfig(Qt5Script)
BuildRequires:  pkgconfig(Qt5SerialPort)
BuildRequires:  pkgconfig(Qt5Sql)
BuildRequires:  pkgconfig(Qt5Svg)
BuildRequires:  pkgconfig(Qt5WebEngine)
BuildRequires:  pkgconfig(Qt5WebEngineCore)
#BuildRequires:  pkgconfig(Qt5WebKit)
#BuildRequires:  pkgconfig(Qt5WebKitWidgets)
BuildRequires:  pkgconfig(Qt5Xml)
BuildRequires:  pkgconfig(Qt5Gui)
BuildRequires:  pkgconfig(glu)
BuildRequires:  pkgconfig(gsl)
BuildRequires:  pkgconfig(libclucene-core)
BuildRequires:  pkgconfig(libical)
BuildRequires:  pkgconfig(libusb)
BuildRequires:  pkgconfig(samplerate)
BuildRequires:  pkgconfig(libcurl)
#BuildRequires:  pkgconfig(openssl)
BuildRequires:  pkgconfig(zlib)
BuildRequires:  pkgconfig(python3)
BuildRequires:  R-core-devel
BuildRequires:  python3-sip-devel
BuildRequires:  python3-devel
BuildRequires:  python3-qt5-devel
%if 0%{?suse_version} > 1500
BuildRequires:  libkml-devel
BuildRequires:  python3-qtwebengine-qt5
%endif
%if 0%{?suse_version} < 1599
BuildRequires:  python3-sip4-devel
%endif
BuildRequires:  boost-devel
BuildRequires:  vlc-devel
#BuildRequires:  libcurl-devel
#BuildRequires:  libftd2xx-devel
BuildRequires:  libgcrypt-devel
#BuildRequires:  libkqoauth-devel
#BuildRequires:  liboauth-devel
#BuildRequires:  libopenssl-1_0_0-devel
#BuildRequires:  libqt4-linguist
BuildRequires:  libqt5-linguist
#BuildRequires:  libsamplerate-devel
#BuildRequires:  qoauth-qt5-devel
BuildRequires:  libqt5-qtnetworkauth-devel
BuildRequires:  texinfo
BuildRequires:  texlive
%if 0%{?suse_version}
BuildRequires:  update-desktop-files
Requires(post): update-desktop-files
Requires(postun): update-desktop-files
Requires:       R-base
Requires:       udev-ant+
%endif

%description
GoldenCheetah is a software package that:
- Downloads ride data directly from the CycleOps PowerTap and the SRM
  PowerControl V. Support for SRM PowerControl VI and VII is planned for
  the future.

- Imports ride data downloaded with other programs, including WKO+
  and the manufacturers' software for the Ergomo, Garmin, Polar,
  PowerTap, and SRM devices.

- Provides a rich set of analysis tools, including a critical
  power graph, BikeScore calculation, histogram analysis, a best interval
  finder, and a pedal force versus pedal velocity chart, to name just a few.

%package -n udev-ant+
Summary:        udev ANT+ configuration
License:        GPL-3.0-only
Group:          Hardware/Other

%description -n udev-ant+
udev ANT+ configuration

%prep
%setup -q -n %{name}-3.6
%patch0 -p1

sed -i -e "s/\_\_DATE\_\_/\"$set_date\"/g" src/Gui/GcCrashDialog.cpp
sed -i -e "s/\_\_TIME\_\_/\"$set_time\"/g" src/Gui/GcCrashDialog.cpp

%build
cp qwt/qwtconfig.pri.in qwt/qwtconfig.pri
cp src/gcconfig.pri.in src/gcconfig.pri
#Add our own libraries to build
echo DEFINES += NOWEBKIT >> src/gcconfig.pri
echo QMAKE_CFLAGS += -std=gnu99 >> src/gcconfig.pri
echo SRMIO_INSTALL = %{_prefix} >> src/gcconfig.pri
echo SRMIO_INCLUDE = %{_includedir} >> src/gcconfig.pri
echo SRMIO_LIBS = %{_libdir}/libsrmio.so >> src/gcconfig.pri
echo QWT3D_INSTALL = %{_prefix} >> src/gcconfig.pri
echo QWT3D_INCLUDE = %{_includedir}/qwtplot3d/ >> src/gcconfig.pri
echo QWT3D_LIBS = %{_libdir}/libqwtplot3d.so >> src/gcconfig.pri
echo LIBZ_INCLUDE = %{_includedir} >> src/gcconfig.pri
echo QJSON_INCLUDE = %{_includedir}/qjson/ >> src/gccconfig.pri
echo LIBZ_LIBS = -lz >> src/gcconfig.pri
echo DEFINES += GC_WANT_R >> src/gcconfig.pri
echo LIBUSB_INSTALL = %{_prefix} >> src/gcconfig.pri
echo LIBUSB_INCLUDE = %{_includedir} >> src/gcconfig.pri
echo ICAL_INSTALL = %{_includedir} >> src/gcconfig.pri
echo ICAL_LIBS = -lical >> src/gcconfig.pri
#echo D2XX_INSTALL = %{_prefix} >> src/gcconfig.pri
#echo D2XX_INCLUDE = %{_includedir}/ftd2xx >> src/gcconfig.pri
echo SAMPLERATE_INSTALL = %{_prefix} >> src/gcconfig.pri
echo QMAKE_LRELEASE = %{_bindir}/lrelease-qt5 >> src/gcconfig.pri
echo CONFIG += release >> src/gcconfig.pri
echo GSL_INCLUDES = %{_includedir} >> src/gcconfig.pri
echo GSL_LIBS = -lgsl -lgslcblas -lm >> src/gcconfig.pri
echo QMAKE_MOVE = cp >> src/gcconfig.pri
%if 0%{?suse_version} > 1500
sed -i "s|\(DEFINES += GC_VIDEO_NONE.*\)|#\1 |" src/gcconfig.pri
echo VLC_INSTALL = %{_prefix} >> src/gcconfig.pri
echo VLC_INCLUDE = %{_includedir}/vlc >> src/gcconfig.pri
echo DEFINES += GC_VIDEO_VLC >> src/gcconfig.pri
echo KML_INSTALL = %{_prefix} >> src/gcconfig.pri
echo KML_LIBS = -lkmldom -lkmlconvenience -lkmlengine -lkmlbase >> src/gcconfig.pri
%endif
%if 0%{?suse_version} <= 1500
echo DEFINES += GC_WANT_PYTHON >> src/gcconfig.pri
echo PYTHONINCLUDES = %python_includes >> src/gcconfig.pri
echo PYTHONLIBS = -L%python_configdir %python_libs >> src/gcconfig.pri
%endif
# Patch Secrets.h
sed -i "s/__GC_GOOGLE_CALENDAR_CLIENT_SECRET__/"$GC_GOOGLE_CALENDAR_CLIENT_SECRET"/" src/Core/Secrets.h
sed -i "s/__GC_STRAVA_CLIENT_SECRET__/"$GC_STRAVA_CLIENT_SECRET"/" src/Core/Secrets.h
sed -i "s/__GC_DROPBOX_CLIENT_SECRET__/"$GC_DROPBOX_CLIENT_SECRET"/" src/Core/Secrets.h
sed -i "s/__GC_CYCLINGANALYTICS_CLIENT_SECRET__/"$GC_CYCLINGANALYTICS_CLIENT_SECRET"/" src/Core/Secrets.h
sed -i "s/__GC_TWITTER_CONSUMER_SECRET__/"$GC_TWITTER_CONSUMER_SECRET"/" src/Core/Secrets.h
sed -i "s/__GC_DROPBOX_CLIENT_ID__/"$GC_DROPBOX_CLIENT_ID"/" src/Core/Secrets.h
sed -i "s/__GC_MAPQUESTAPI_KEY__/"$GC_MAPQUESTAPI_KEY"/" src/Core/Secrets.h
sed -i "s/__GC_CLOUD_DB_BASIC_AUTH__/"$GC_CLOUD_DB_BASIC_AUTH"/" src/Core/Secrets.h
sed -i "s/__GC_CLOUD_DB_APP_NAME__/"$GC_CLOUD_DB_APP_NAME"/" src/Core/Secrets.h
sed -i "s/__GC_GOOGLE_DRIVE_CLIENT_ID__/"$GC_GOOGLE_DRIVE_CLIENT_ID"/" src/Core/Secrets.h
sed -i "s/__GC_GOOGLE_DRIVE_CLIENT_SECRET__/"$GC_GOOGLE_DRIVE_CLIENT_SECRET"/" src/Core/Secrets.h
sed -i "s/__GC_GOOGLE_DRIVE_API_KEY__/"$GC_GOOGLE_DRIVE_API_KEY"/" src/Core/Secrets.h
sed -i "s/__GC_TODAYSPLAN_CLIENT_SECRET__/"$GC_TODAYSPLAN_CLIENT_SECRET"/" src/Core/Secrets.h
cat src/gcconfig.pri
# update translations
lupdate-qt5 src/src.pro
cat > .qmake.cache <<EOF
CONFIG += release
QMAKE_CFLAGS_RELEASE = -O3 -fmessage-length=0 -grecord-gcc-switches -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
QMAKE_CXXFLAGS_RELEASE = -O3 -fmessage-length=0 -grecord-gcc-switches -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
QMAKE_LRELEASE="%{_bindir}/lrelease-qt5"
EOF
# FIXME: you should use %qmake_qt5 macro
qmake-qt5 -recursive
make VERBOSE=1 %{?_smp_mflags}

%install
install -Dm0755 src/GoldenCheetah %{buildroot}%{_bindir}/GoldenCheetah
%if 0%{?suse_version}
%if 0%{?suse_version} > 1500 
%suse_update_desktop_file -c %{name}        "GoldenCheetah"        "Sports Analyse"  %{name}           %{name}  Science Sports
%else
%suse_update_desktop_file -c %{name}        "GoldenCheetah"        "Sports Analyse"  %{name}           %{name}  Education Teaching
%endif
%endif
mkdir -p %{buildroot}%{_udevrulesdir}
cp src/Resources/linux/51-garmin-usb.rules %{buildroot}%{_udevrulesdir}/

%files
%license COPYING
%doc doc/user/*.pdf
%{_bindir}/GoldenCheetah
%{_datadir}/applications/*
%{_datadir}/pixmaps/%{name}.png

%files -n udev-ant+
%{_udevrulesdir}/51-garmin-usb.rules

%changelog
openSUSE Build Service is sponsored by