From 2a14e2b995384f758418703ac14371084ecd672f Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Wed, 11 May 2022 17:44:27 -0700 Subject: [PATCH] build-system: initial spec file for Fedora copr build This should allow us to automate builds using the Fedora infrastructure. For now this is intended to create 'test' builds of the latest commit; it would make sense to extend this to create release builds as well. Signed-off-by: Dirk Hohndel --- packaging/copr/subsurface.spec | 124 +++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 packaging/copr/subsurface.spec diff --git a/packaging/copr/subsurface.spec b/packaging/copr/subsurface.spec new file mode 100644 index 000000000..0db9d974a --- /dev/null +++ b/packaging/copr/subsurface.spec @@ -0,0 +1,124 @@ +# +# Fedora COPR spec file for package subsurface +# +# Copyright (c) 2014-2022 Dirk Hohndel +# + +Name: {{{ git_dir_name }}} +Version: {{{ git_dir_version }}} +Release: 1%{?dist} + +Summary: A test build of the latest development version of Subsurface + +License: GPL v2 +Url: http://subsurface-divelog.org +VCS: {{{ git_dir_vcs }}} + +Source0: {{{ git_dir_pack }}} + +Group: Productivity/Other + +BuildRequires: desktop-file-utils +BuildRequires: fdupes +BuildRequires: gcc-c++ +BuildRequires: make +BuildRequires: asciidoc +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: libtool +BuildRequires: cmake +BuildRequires: libzip-devel +BuildRequires: libxml2-devel +BuildRequires: libxslt-devel +BuildRequires: libssh2-devel +BuildRequires: libcurl-devel +BuildRequires: libgit2-devel +BuildRequires: libmtp-devel +BuildRequires: netpbm-devel +BuildRequires: openssl-devel +BuildRequires: libsqlite3x-devel +BuildRequires: libusbx-devel +BuildRequires: bluez-libs-devel +BuildRequires: qt5-qtbase-devel +BuildRequires: qt5-qttools-devel +BuildRequires: qt5-qtwebkit-devel +BuildRequires: qt5-qtsvg-devel +BuildRequires: qt5-qtscript-devel +BuildRequires: qt5-qtdeclarative-devel +BuildRequires: qt5-qtbase-mysql +BuildRequires: qt5-qtbase-postgresql +BuildRequires: qt5-qtbase-ibase +BuildRequires: qt5-qtbase-odbc +BuildRequires: qt5-qtbase-tds +BuildRequires: qt5-qtconnectivity-devel +BuildRequires: qt5-qtlocation-devel +BuildRequires: libappstream-glib + +Recommends: qt5-qttranslations + +%description +This is the official Subsurface build, including our own custom libdivecomputer + + +%prep +{{{ git_dir_setup_macro }}} + + +%build +# we need to temporarily install the output of our two included dependency in order to use those +# when building Subsurface - yes, this is ugly. But since we have private versions of these two +# libraries, this is the most reasonable approach... +mkdir -p install-root +(cd libdivecomputer ; \ + autoreconf --install ; \ + CFLAGS="-fPIC -g -O2" ./configure --prefix=%{_builddir}/install-root --bindir=%{_builddir}/install-root/bin --libdir=%{_builddir}/install-root/lib --includedir=%{_builddir}/install-root/include --disable-examples ; \ + make %{?_smp_mflags} ; \ + make install) +( cd googlemaps ; mkdir -p build ; cd build ; \ + qmake-qt5 ../googlemaps.pro ; \ + # on Fedora 36 and newer we get the package_notes that break the build - let's rip them out + sed -i 's/-Wl[^ ]*package_note[^ ]* //g' Makefile + make -j4 ; \ + make install_target INSTALL_ROOT=%{_builddir}/install-root ) +%cmake -DCMAKE_BUILD_TYPE=Release \ + -DMAKE_TESTS=OFF \ + -DLRELEASE=lrelease-qt5 \ + -DLIBDIVECOMPUTER_INCLUDE_DIR=%{_builddir}/install-root/include \ + -DLIBGIT2_INCLUDE_DIR=%{_builddir}/install-root/include \ + -DLIBDIVECOMPUTER_LIBRARIES=%{_builddir}/install-root/lib/libdivecomputer.a \ + -DNO_PRINTING=OFF \ + . +%cmake_build + +%install +mkdir -p %{buildroot}/%{_libdir} +( cd googlemaps/build ; make install_target INSTALL_ROOT=%{buildroot} ) +%cmake_install +install subsurface.debug %{buildroot}%{_bindir} +install appdata/subsurface.appdata.xml %{buildroot}%{_datadir}/metainfo +desktop-file-install --dir=%{buildroot}/%{_datadir}/applications subsurface.desktop + +%fdupes %{buildroot} + +%post +%desktop_database_post +/sbin/ldconfig + +%postun +%desktop_database_post +/sbin/ldconfig + +%files +%defattr(-,root,root) +%doc gpl-2.0.txt README.md ReleaseNotes/ReleaseNotes.txt +%{_bindir}/subsurface* +%{_libdir}/qt5/plugins/geoservices/libqtgeoservices_googlemaps.so +%{_datadir}/applications/subsurface.desktop +%dir %{_datadir}/metainfo +%{_datadir}/metainfo/subsurface.appdata.xml +%{_datadir}/icons/hicolor/*/apps/subsurface-icon.* +%{_datadir}/subsurface/ + + +%changelog +{{{ git_dir_changelog }}}