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