Files
rpms/fedora/SPECS/proj.spec
2020-01-06 16:44:27 +01:00

146 lines
3.6 KiB
RPMSpec

%global proj_version 6.3.0
%global datumgrid_version 1.8
Name: proj
Version: %{proj_version}
Release: 1%{?dist}
Summary: Cartographic projection software (PROJ.4)
License: MIT
URL: https://proj4.org
Source0: https://download.osgeo.org/%{name}/%{name}-%{version}.tar.gz
Source1: https://download.osgeo.org/%{name}/%{name}-datumgrid-%{datumgrid_version}.tar.gz
BuildRequires: libtool gcc-c++
%description
Proj and invproj perform 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.4
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
This package contains libproj and the appropriate header files and man pages.
%package static
Summary: Development files for PROJ.4
Requires: %{name}-devel%{?_isa} = %{version}-%{release}
%description static
This package contains libproj static library.
%package datumgrid
Summary: Additional datum shift grids for PROJ.4
Version: %{datumgrid_version}
Release: 99%{?dist}
# See README.DATUMGRID
License: CC-BY and Freely Distributable and Ouverte and Public Domain
BuildArch: noarch
# Renamed; remove after Fedora 31.
Obsoletes: proj-nad < 5.2.0-2
Provides: proj-nad = %{proj_version}-%{release}
%description datumgrid
This package contains additional datum shift grids.
%prep
%autosetup
# Prepare datumgrid and file list (in {datadir}/proj and README marked as doc)
mkdir nad
tar xvf %{SOURCE1} -C nad | \
sed -e 's!^!%{_datadir}/%{name}/!' -e '/README/s!^!%%doc !' > datumgrid.files
%build
# rebuild due to patch
autoreconf -i
%configure
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
%make_build
%install
%make_install
chmod -x %{buildroot}%{_libdir}/libproj.la
install -p -m 0644 nad/README.DATUMGRID %{buildroot}%{_datadir}/%{name}
for f in $(egrep '^\/usr' datumgrid.files); do
bf=$(basename $f)
install -m 0644 nad/$bf %{buildroot}%{_datadir}/%{name}/$bf
done
# Install cmake config manually because we use autotools for building
mkdir -p %{buildroot}%{_datadir}/cmake/Modules/
cat << EOF > %{buildroot}%{_datadir}/cmake/Modules/FindPROJ4.cmake
set(PROJ4_FOUND 1)
set(PROJ4_INCLUDE_DIRS %{_includedir})
set(PROJ4_LIBRARIES proj)
if(\${LIB_SUFFIX} MATCHES 64)
set(PROJ4_LIBRARY_DIRS /usr/lib64)
else()
set(PROJ4_LIBRARY_DIRS /usr/lib)
endif()
set(PROJ4_BINARY_DIRS %{_bindir})
set(PROJ4_VERSION %{proj_version})
message(STATUS "Found PROJ4: version \${PROJ4_VERSION}")
EOF
%check
LD_LIBRARY_PATH=%{buildroot}%{_libdir} \
make PROJ_LIB=%{buildroot}%{_datadir}/%{name} check || ( cat src/test-suite.log; exit 1 )
%files
%doc NEWS AUTHORS COPYING README ChangeLog
%{_bindir}/*
%{_mandir}/man1/*.1*
%{_libdir}/libproj.so.15*
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/CH
%{_datadir}/%{name}/GL27
%{_datadir}/%{name}/ITRF2000
%{_datadir}/%{name}/ITRF2008
%{_datadir}/%{name}/ITRF2014
%{_datadir}/%{name}/nad.lst
%{_datadir}/%{name}/nad27
%{_datadir}/%{name}/nad83
%{_datadir}/%{name}/null
%{_datadir}/%{name}/other.extra
%{_datadir}/%{name}/world
%{_datadir}/%{name}/projjson.schema.json
%{_datadir}/%{name}/%{name}.db
%files devel
%{_mandir}/man3/*.3*
%{_includedir}/*.h
%{_includedir}/%{name}/*.hpp
%{_libdir}/libproj.so
%{_libdir}/pkgconfig/%{name}.pc
%{_datadir}/cmake/Modules/FindPROJ4.cmake
%exclude %{_libdir}/libproj.a
%exclude %{_libdir}/libproj.la
%files static
%{_libdir}/libproj.a
%{_libdir}/libproj.la
%files datumgrid -f datumgrid.files
%dir %{_datadir}/%{name}
%changelog
* Mon Jan 6 2020 Daniel Steiner <daniel.steiner@dsteiner.ch>
- Initial build