File proj.spec of Package proj

#
# spec file for package proj
#
# Copyright (c) 2024 SUSE LLC
#
# 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/
#


%define data_version 1.17
%define sover   25
%define libname lib%{name}%{sover}
Name:           proj
Version:        9.4.0
Release:        0
Summary:        Cartographic projection software
License:        MIT
URL:            https://proj.org/
# Download from GitHub, osgeo.org appears to be slow and flaky at the moment
Source0:        https://github.com/OSGeo/PROJ/releases/download/%{version}/%{name}-%{version}.tar.gz
Source1:        https://github.com/OSGeo/PROJ-data/releases/download/%{data_version}.0/%{name}-data-%{data_version}.tar.gz
BuildRequires:  cmake >= 3.16
BuildRequires:  gcc-c++
BuildRequires:  pkgconfig >= 0.9.0
BuildRequires:  sqlite3
BuildRequires:  pkgconfig(gtest)
BuildRequires:  pkgconfig(libcurl)
BuildRequires:  pkgconfig(libtiff-4)
BuildRequires:  pkgconfig(nlohmann_json)
BuildRequires:  pkgconfig(sqlite3) >= 3.11
Provides:       libproj = %{version}

%description
This package offers the commandline tools for performing respective
forward and inverse transformation of cartographic data to or from cartesian
data with a wide range of selectable projection functions.

%package -n %{libname}
Summary:        Cartographic projection software
License:        MIT

%description -n %{libname}
This package the library for performing respective
forward and inverse transformation of cartographic data to or from cartesian
data with a wide range of selectable projection functions.

%package devel
Summary:        Development files for PROJ
License:        MIT
Requires:       %{libname} = %{version}
Provides:       libproj-devel = %{version}
Obsoletes:      libproj-devel < %{version}

%description devel
This package contains libproj and the appropriate header files and man pages.

%define data_subpkg(c:n:e:s:) \
%define countrycode %{-c:%{-c*}}%{!-c:%{error:Country code not defined}} \
%define countryname %{-n:%{-n*}}%{!-n:%{error:Country name not defined}} \
%define extrafile %{-e:%{_datadir}/%{name}/%{-e*}} \
%define wildcard %{!-s:%{_datadir}/%{name}/%{countrycode}_*} \
\
%package data-%{countrycode}\
Summary:      %{countryname} datum grids for Proj\
BuildArch:    noarch\
# See README.DATA \
License:      BSD-2-Clause AND CC0-1.0 AND CC-BY-4.0 AND CC-BY-SA-4.0 AND SUSE-Public-Domain \
Supplements:  proj\
\
%description data-%{countrycode}\
%{countryname} datum grids for Proj.\
\
%files data-%{countrycode}\
%{wildcard}\
%{extrafile}
License:        MIT
%data_subpkg -c ar -n Argentina
%data_subpkg -c at -n Austria
%data_subpkg -c au -n Australia
%data_subpkg -c be -n Belgium
%data_subpkg -c br -n Brasil
%data_subpkg -c ca -n Canada
%data_subpkg -c ch -n Switzerland
%data_subpkg -c de -n Germany
%data_subpkg -c dk -n Denmark -e DK
%data_subpkg -c es -n Spain
%data_subpkg -c eur -n %{quote:Nordic + Baltic} -e NKG
%data_subpkg -c fi -n Finland
%data_subpkg -c fo -n %{quote:Faroe Island} -e FO -s 1
%data_subpkg -c fr -n France
%data_subpkg -c is -n Island -e ISL
%data_subpkg -c jp -n Japan
%data_subpkg -c mx -n Mexico
%data_subpkg -c nc -n %{quote:New Caledonia}
%data_subpkg -c nl -n Netherlands
%data_subpkg -c no -n Norway
%data_subpkg -c nz -n %{quote:New Zealand}
%data_subpkg -c pl -n Poland
%data_subpkg -c pt -n Portugal
%data_subpkg -c se -n Sweden
%data_subpkg -c sk -n Slovakia
%data_subpkg -c uk -n %{quote:United Kingdom}
%data_subpkg -c us -n %{quote:United States}
%data_subpkg -c za -n %{quote:South Africa}

%prep
%autosetup

%build
# c++14 needed to build tests using gtest >= 1.14
%cmake \
%if 0%{?suse_version} >= 1650
  -DCMAKE_CXX_STANDARD=14 \
%endif
  %{nil}
%cmake_build

%install
%cmake_install
tar -C %{buildroot}%{_datadir}/%{name} -xf %{SOURCE1}
find %{buildroot} -type f -name "*.la" -delete -print
# It would be good to find out where these extra files
# come from:
rm -rf %{buildroot}%{_datadir}/doc/${name}

%check
# Tests dont work on i586 and noone cares
%ifnarch %{ix86}
%ctest
%endif

%ldconfig_scriptlets -n %{libname}

%files
%doc NEWS AUTHORS README ChangeLog
%defattr(0755,root,root)
%{_bindir}/cs2cs
%{_bindir}/cct
%{_bindir}/gie
%{_bindir}/geod
%{_bindir}/invgeod
%{_bindir}/invproj
%{_bindir}/proj
%{_bindir}/projsync
%{_bindir}/projinfo
%defattr(0644,root,root)
%{_mandir}/man1/cs2cs.1%{?ext_man}
%{_mandir}/man1/geod.1%{?ext_man}
%{_mandir}/man1/proj.1%{?ext_man}
%{_mandir}/man1/cct.1%{?ext_man}
%{_mandir}/man1/gie.1%{?ext_man}
%{_mandir}/man1/projinfo.1%{?ext_man}
%{_mandir}/man1/projsync.1%{?ext_man}
%dir %{_datadir}/%{name}/
%{_datadir}/%{name}/proj.ini
%{_datadir}/%{name}/copyright_and_licenses.csv
%{_datadir}/%{name}/CH
%{_datadir}/%{name}/GL27
%{_datadir}/%{name}/ITRF2000
%{_datadir}/%{name}/ITRF2008
%{_datadir}/%{name}/ITRF2014
%{_datadir}/%{name}/README.DATA
%{_datadir}/%{name}/cz_cuzk_CR-2005.tif
%{_datadir}/%{name}/cz_cuzk_README.txt
%{_datadir}/%{name}/deformation_model.schema.json
%{_datadir}/%{name}/nad.lst
%{_datadir}/%{name}/nad27
%{_datadir}/%{name}/nad83
%{_datadir}/%{name}/other.extra
%{_datadir}/%{name}/proj.db
%{_datadir}/%{name}/projjson.schema.json
%{_datadir}/%{name}/triangulation.schema.json
%{_datadir}/%{name}/world
%{_datadir}/%{name}/si_gurs_README.txt
%{_datadir}/%{name}/si_gurs_SLO-VRP2016-Koper.tif

%files -n %{libname}
%license COPYING
%{_libdir}/libproj.so.%{sover}*

%files devel
%{_includedir}/*.h
%{_includedir}/proj
%{_libdir}/libproj.so
%dir %{_libdir}/cmake/proj/
%{_libdir}/cmake/proj/*.cmake
%dir %{_libdir}/cmake/proj4/
%{_libdir}/cmake/proj4/*.cmake
%{_libdir}/pkgconfig/proj.pc

%changelog
openSUSE Build Service is sponsored by