- new upstream version 7.2.3

- selected backport of SPEC file cleanup from 7.4.0
- store binaries in /usr/lib[64]/grass74/
This commit is contained in:
Markus Neteler 2018-03-22 15:33:28 +01:00
commit 5f02b2aa69

View file

@ -2,16 +2,17 @@
%global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
Name: grass
Version: 7.2.2
Release: 2%{?dist}
Version: 7.2.3
Release: 1%{?dist}
Summary: GRASS GIS - Geographic Resources Analysis Support System
%if 0%{?rhel}
Group: Applications/Engineering
%endif
License: GPLv2+
URL: https://grass.osgeo.org
Source0: https://grass.osgeo.org/%{name}%{shortver}/source/%{name}-%{version}.tar.gz
Source2: %{name}-config.h
Patch0: grass72_rpc_removal.diff
BuildRequires: bison
BuildRequires: blas-devel
@ -104,6 +105,14 @@ Group: Applications/Engineering
%description libs
GRASS GIS runtime libraries
%package gui
Summary: GRASS GIS GUI
Group: Applications/Engineering
Requires: %{name}%{?isa} = %{version}-%{release}
%description gui
GRASS GIS GUI
%package devel
Summary: GRASS GIS development headers
Group: Applications/Engineering
@ -114,7 +123,6 @@ GRASS GIS development headers
%prep
%setup -q
%patch0 -p1
# Correct mysql_config query
sed -i -e 's/--libmysqld-libs/--libs/g' configure
@ -151,6 +159,9 @@ CXXFLAGS="-std=c++98 ${CFLAGS}"
--with-geos=%{_bindir}/geos-config \
%if (0%{?rhel} > 6 || 0%{?fedora})
--with-netcdf=%{_bindir}/nc-config \
%endif
%if 0%{?fedora}
--with-liblas=%{_bindir}/liblas-config \
%endif
--with-mysql-includes=%{_includedir}/mysql \
%if (0%{?fedora} >= 27)
@ -166,10 +177,7 @@ CXXFLAGS="-std=c++98 ${CFLAGS}"
%endif
--with-cairo-ldflags=-lfontconfig \
--with-freetype-includes=%{_includedir}/freetype2 \
--with-proj-share=%{_datadir}/proj \
%if 0%{?fedora}
--with-liblas=%{_bindir}/liblas-config \
%endif
--with-proj-share=%{_datadir}/proj
%if (0%{?rhel} > 6 || 0%{?fedora})
make %{?_smp_mflags}
@ -178,66 +186,74 @@ make %{?_smp_mflags}
make %{?_smp_mflags} || echo "EPEL6: ignoring failed manual pages"
%endif
# by default, grass will be installed to /usr/grass-%%{version}
# this is not FHS compliant: hide grass-%%{version} in %%{libdir}
%install
%make_install \
prefix=%{buildroot}%{_prefix} \
prefix=%{buildroot}%{_libdir} \
UNIX_BIN=%{buildroot}%{_bindir}
# Change GISBASE in startup script
sed -i -e 's|%{buildroot}%{_prefix}/%{name}-%{version}|%{_libdir}/%{name}%{shortver}|g' \
%{buildroot}%{_bindir}/%{name}%{shortver}
# libraries and headers are in GISBASE = %%{_libdir}/%%{name}
# keep them in GISBASE
# Make libraries and headers available on the system
mv %{buildroot}%{_prefix}/%{name}-%{version}/lib %{buildroot}%{_libdir}
mv %{buildroot}%{_prefix}/%{name}-%{version}/include %{buildroot}%{_prefix}
# TODO: keep for g.extension support, #1409006
#sed -i -e 's|%{buildroot}%{_prefix}/%{name}-%{version}|%{_libdir}/%{name}%{shortver}|g' \
# %{buildroot}%{_includedir}/Make/Platform.make
rm -rf %{buildroot}%{_includedir}/Make/
# fix paths:
# Change GISBASE in startup script
sed -i -e 's|%{buildroot}%{_libdir}/%{name}-%{version}|%{_libdir}/%{name}%{shortver}|g' \
%{buildroot}%{_bindir}/%{name}%{shortver}
# fix GRASS_HOME and RUN_GISBASE in Platform.make
sed -i -e 's|%{buildroot}%{_libdir}/%{name}-%{version}|%{_libdir}/%{name}%{shortver}|g' \
%{buildroot}%{_libdir}/%{name}-%{version}/include/Make/Platform.make
# fix ARCH_DISTDIR in Grass.make
sed -i -e 's|%{buildroot}%{_libdir}/%{name}-%{version}|%{_libdir}/%{name}%{shortver}|g' \
%{buildroot}%{_libdir}/%{name}-%{version}/include/Make/Grass.make
# fix ARCH_BINDIR in Grass.make
sed -i -e 's|%{buildroot}%{_bindir}|%{_bindir}|g' \
%{buildroot}%{_libdir}/%{name}-%{version}/include/Make/Grass.make
# fix GISDBASE in demolocation
sed -i -e 's|%{buildroot}%{_libdir}/%{name}-%{version}|%{_libdir}/%{name}%{shortver}|g' \
%{buildroot}%{_libdir}/%{name}-%{version}/demolocation/.grassrc%{shortver}
# Correct font path
sed -i -e 's|%{buildroot}%{_libdir}/%{name}-%{version}|%{_libdir}/%{name}%{shortver}|' \
%{buildroot}%{_libdir}/%{name}-%{version}/etc/fontcap
# fix paths in grass.pc
sed -i -e 's|%{_prefix}/%{name}-%{version}|%{_libdir}/%{name}%{shortver}|g' \
%{name}.pc
mkdir -p %{buildroot}%{_libdir}/pkgconfig
install -p -m 644 %{name}.pc %{buildroot}%{_libdir}/pkgconfig
# Create multilib header
install -p -m 644 %{buildroot}%{_includedir}/%{name}/config.h \
%{buildroot}%{_includedir}/%{name}/config-%{cpuarch}.h
install -p -m 644 %{SOURCE2} %{buildroot}%{_includedir}/%{name}/config.h
mv %{buildroot}%{_libdir}/%{name}-%{version}/include/%{name}/config.h \
%{buildroot}%{_libdir}/%{name}-%{version}/include/%{name}/config-%{cpuarch}.h
install -p -m 644 %{SOURCE2} %{buildroot}%{_libdir}/%{name}-%{version}/include/%{name}/config.h
# Make man pages available on the system, convert to utf8 and avoid name conflict
mkdir -p %{buildroot}%{_mandir}/man1
for man in $(ls %{buildroot}%{_prefix}/%{name}-%{version}/docs/man/man1/*.1)
for man in $(ls %{buildroot}%{_libdir}/%{name}-%{version}/docs/man/man1/*.1)
do
iconv -f iso8859-1 -t utf8 $man > %{buildroot}%{_mandir}/man1/$(basename $man)"%{name}"
done
for file in infrastructure.txt ; do
iconv -f ISO-8859-1 -t UTF-8 $file > ${file}.tmp && mv -f ${file}.tmp $file
done
# symlink docs from GISBASE to standard system location
mkdir -p %{buildroot}%{_docdir}
# append shortver to destination ? man pages are unversioned
ln -s %{_libdir}/%{name}%{shortver}/docs %{buildroot}%{_docdir}/%{name}%{shortver}
# Make desktop, appdata and icon files available on the system
mv %{buildroot}%{_prefix}/%{name}-%{version}/share/* %{buildroot}%{_datadir}
mv %{buildroot}%{_libdir}/%{name}-%{version}/share/* %{buildroot}%{_datadir}
desktop-file-validate %{buildroot}/%{_datadir}/applications/*.desktop
# EPEL7 fails on url tag, so we ignore failure:
appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/*.appdata.xml || echo "Ignoring appstream-util failure"
# Correct font path
sed -i -e 's|%{buildroot}%{_prefix}/%{name}-%{version}|%{_libdir}/%{name}%{shortver}|' \
%{buildroot}%{_prefix}/%{name}-%{version}/etc/fontcap
appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/metainfo/org.osgeo.%{name}.appdata.xml
# Hide GISBASE into system's %%{_libdir} to be FHS compliant
mkdir -p %{buildroot}%{_libdir}/%{name}%{shortver}
mv %{buildroot}%{_prefix}/%{name}-%{version}/{bin,driver,etc,fonts,gui,locale,scripts} \
%{buildroot}%{_libdir}/%{name}%{shortver}
# Cleanup: nothing to do
#rm -rf %%{buildroot}%%{_prefix}/%%{name}-%%{version}
# GRASS scripts expect docs in GISBASE
ln -s %{_docdir}/%{name} %{buildroot}%{_libdir}/%{name}%{shortver}/docs
# Finally move entire tree to shortver subdir
mv %{buildroot}%{_libdir}/%{name}-%{version} %{buildroot}%{_libdir}/%{name}%{shortver}
# Cleanup
rm -rf %{buildroot}%{_prefix}/%{name}-%{version}
# rpm macro for version checking
# rpm macro for version checking (not from buildroot!)
mkdir -p ${RPM_BUILD_ROOT}%{macrosdir}
cat > ${RPM_BUILD_ROOT}%{macrosdir}/macros.%{name} <<EOF
# %name version is
%%%{name}_version %{version}
EOF
@ -264,53 +280,53 @@ fi
%postun libs -p /sbin/ldconfig
%files
%doc dist.*/docs/html/
%exclude %{_libdir}/%{name}%{shortver}/driver/db/*
%exclude %{_libdir}/%{name}%{shortver}/lib
%exclude %{_libdir}/%{name}%{shortver}/include
%exclude %{_libdir}/%{name}%{shortver}/gui
%{_libdir}/%{name}%{shortver}
%{_bindir}/*
%{_datadir}/appdata/*
%{_datadir}/metainfo/*
%{_datadir}/applications/*
%{_datadir}/icons/hicolor/*/apps/*
%{_libdir}/%{name}%{shortver}/
%{_datadir}/metainfo/
%{_mandir}/man1/*
%{_docdir}/%{name}%{shortver}
%files libs
%license AUTHORS COPYING GPL.TXT CHANGES
#%{_libdir}/*.%{version}.so
%{_libdir}/*.so
%{_libdir}/*.a
%dir %{_libdir}/%{name}%{shortver}
%{_libdir}/%{name}%{shortver}/lib/*.%{version}.so
%{_libdir}/%{name}%{shortver}/lib/*.a
%dir %{_libdir}/%{name}%{shortver}/driver
%dir %{_libdir}/%{name}%{shortver}/driver/db
%{_libdir}/%{name}%{shortver}/driver/db/*
%files gui
%{_libdir}/%{name}%{shortver}/gui
%files devel
%doc TODO doc/* SUBMITTING
%{macrosdir}/macros.%{name}
%exclude %{_libdir}/*.a
%{_libdir}/pkgconfig/*
%{_libdir}/*[!%{version}].so
%{_includedir}/%{name}/
%dir %{_libdir}/%{name}%{shortver}/lib
%{_libdir}/%{name}%{shortver}/lib/*[!%{version}].so
%{_libdir}/%{name}%{shortver}/include
%changelog
* Mon Feb 26 2018 Markus Neteler <neteler@mundialis.de> - 7.2.2-2
- Fix RPC header leftovers
* Thu Mar 22 2018 Markus Neteler <neteler@mundialis.de> - 7.2.3-1
- new upstream version 7.2.3
- selected backport of SPEC file cleanup from 7.4.0
- store binaries in /usr/lib[64]/grass74/
* Sun Feb 25 2018 Markus Neteler <neteler@mundialis.de> - 7.2.2-1
- New upstream version 7.2.2
- fixes for EPEL support
- fix for mariadb/mysql support
* Sun Jan 28 2018 Markus Neteler <neteler@mundialis.de> - 7.2.2-2
- fix for EPEL in r.random.surface to avoid variable collision with GDAL
- SPEC cleanup with fix of dependencies between packages (review #1539116)
- appdata.xml file also go into '/usr/share/metainfo'
- use icon cache scriplets only on EPEL
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 7.2.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Wed Jan 31 2018 Volker Froehlich <volker27@gmx.at> - 7.2.1-5
- Rebuild for boost
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 7.2.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 7.2.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Mon Jan 15 2018 Markus Metz <metz@mundialis.de> - 7.2.2-1
- Major cleanup of SPEC file
- Fix grass-devel which needs include/grass and include/Make dirs
* Fri Jul 21 2017 Kalev Lember <klember@redhat.com> - 7.2.1-2
- Rebuilt for Boost 1.64