diff --git a/.gitignore b/.gitignore index f733d8a..c394ba7 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /grass-7.0.4.tar.gz +/grass-7.2.1.tar.gz diff --git a/grass-704_ctypes_gcc7.diff b/grass-704_ctypes_gcc7.diff deleted file mode 100644 index e00cb1f..0000000 --- a/grass-704_ctypes_gcc7.diff +++ /dev/null @@ -1,33 +0,0 @@ -Index: grass-7.0.5/lib/python/ctypes/ctypesgencore/parser/lextab.py -=================================================================== ---- grass-7.0.5/lib/python/ctypes/ctypesgencore/parser/lextab.py (revision 71222) -+++ grass-7.0.5/lib/python/ctypes/ctypesgencore/parser/lextab.py (revision 71223) -@@ -4,5 +4,5 @@ - _lexliterals = '' - _lexstateinfo = {'INITIAL': 'inclusive', 'DEFINE': 'exclusive'} --_lexstatere = {'INITIAL': [('(?P\\#\\s+(\\d+)\\s+"([^"]+)"[ \\d]*\\n)|(?P(\\.\\.\\.|\\|\\||\\+\\+|\\*=|\\^=|<<=|>>=|\\|=|\\+=|>=|>>|<<|<=|<:|%=|:>|<%|!=|\\)|\\+|\\*|\\.|\\?|==|&=|&&|\\[|\\^|--|/=|%>|-=|->|\\||!|%|&|-|,|/|;|:|=|>|]|<|{|}|~))', [None, ('t_ANY_directive', 'ANY_directive'), None, None, ('t_ANY_punctuator', 'ANY_punctuator')]), ('(?P[a-zA-Z_]([a-zA-Z_]|[0-9])*)', [None, ('t_INITIAL_identifier', 'INITIAL_identifier')]), ('(?P(?P[0-9]+)?(?P[.]?)(?P(?(p1)[0-9]*|[0-9]+))(?P(?:[Ee][+-]?[0-9]+)?)(?P[FflL]?)(?!\\w))', [None, ('t_ANY_float', 'ANY_float'), None, None, None, None, None]), ('(?P(?P(?:0x[a-fA-F0-9]+)|(?:[0-9]+))(?P[uUlL]*))', [None, ('t_ANY_int', 'ANY_int'), None, None]), ('(?PL?\'(\\\\.|[^\\\\\'])+\')|(?PL?"(\\\\.|[^\\\\"])*")|(?P\\()|(?P\\n)|(?P\\#define)', [None, ('t_ANY_character_constant', 'ANY_character_constant'), None, ('t_ANY_string_literal', 'ANY_string_literal'), None, ('t_ANY_lparen', 'ANY_lparen'), ('t_INITIAL_newline', 'INITIAL_newline'), ('t_INITIAL_pp_define', 'INITIAL_pp_define')])], 'DEFINE': [('(?P\\#\\s+(\\d+)\\s+"([^"]+)"[ \\d]*\\n)|(?P(\\.\\.\\.|\\|\\||\\+\\+|\\*=|\\^=|<<=|>>=|\\|=|\\+=|>=|>>|<<|<=|<:|%=|:>|<%|!=|\\)|\\+|\\*|\\.|\\?|==|&=|&&|\\[|\\^|--|/=|%>|-=|->|\\||!|%|&|-|,|/|;|:|=|>|]|<|{|}|~))', [None, ('t_ANY_directive', 'ANY_directive'), None, None, ('t_ANY_punctuator', 'ANY_punctuator')]), ('(?P[a-zA-Z_]([a-zA-Z_]|[0-9])*)', [None, ('t_DEFINE_identifier', 'DEFINE_identifier')]), ('(?P(?P[0-9]+)?(?P[.]?)(?P(?(p1)[0-9]*|[0-9]+))(?P(?:[Ee][+-]?[0-9]+)?)(?P[FflL]?)(?!\\w))', [None, ('t_ANY_float', 'ANY_float'), None, None, None, None, None]), ('(?P(?P(?:0x[a-fA-F0-9]+)|(?:[0-9]+))(?P[uUlL]*))', [None, ('t_ANY_int', 'ANY_int'), None, None]), ('(?PL?\'(\\\\.|[^\\\\\'])+\')|(?PL?"(\\\\.|[^\\\\"])*")|(?P\\()|(?P\\n)|(?P(\\#\\#)|(\\#))', [None, ('t_ANY_character_constant', 'ANY_character_constant'), None, ('t_ANY_string_literal', 'ANY_string_literal'), None, ('t_ANY_lparen', 'ANY_lparen'), ('t_DEFINE_newline', 'DEFINE_newline'), ('t_DEFINE_pp_param_op', 'DEFINE_pp_param_op')])]} -+_lexstatere = {'INITIAL': [('(?P\\#\\s+(\\d+)\\s+"([^"]+)"[ \\d]*\\n)|(?P(\\.\\.\\.|\\|\\||\\+\\+|>>=|\\|=|\\^=|<<=|\\*=|\\+=|>=|>>|%=|:>|%>|!=|\\*|\\.|==|\\^|--|-=|->|\\||<<|<=|<:|<%|\\)|\\+|\\?|&=|&&|\\[|/=|&|,|:|<|>|~|!|%|-|/|;|=|]|{|}))', [None, ('t_ANY_directive', 'ANY_directive'), None, None, ('t_ANY_punctuator', 'ANY_punctuator')]), ('(?P[a-zA-Z_]([a-zA-Z_]|[0-9])*)', [None, ('t_INITIAL_identifier', 'INITIAL_identifier')]), ('(?P(?P[0-9]+)?(?P[.]?)(?P(?(p1)[0-9]*|[0-9]+))(?P(?:[Ee][+-]?[0-9]+)?)(?P([FfLl]|d[dfl]|D[DFL]|[fFdD][0-9]+x?)?)(?!\\w))', [None, ('t_ANY_float', 'ANY_float'), None, None, None, None, None]), ('(?P(?P(?:0x[a-fA-F0-9]+)|(?:[0-9]+))(?P[uUlL]*))', [None, ('t_ANY_int', 'ANY_int'), None, None]), ('(?PL?\'(\\\\.|[^\\\\\'])+\')|(?PL?"(\\\\.|[^\\\\"])*")|(?P\\()|(?P\\n)|(?P\\#define)', [None, ('t_ANY_character_constant', 'ANY_character_constant'), None, ('t_ANY_string_literal', 'ANY_string_literal'), None, ('t_ANY_lparen', 'ANY_lparen'), ('t_INITIAL_newline', 'INITIAL_newline'), ('t_INITIAL_pp_define', 'INITIAL_pp_define')])], 'DEFINE': [('(?P\\#\\s+(\\d+)\\s+"([^"]+)"[ \\d]*\\n)|(?P(\\.\\.\\.|\\|\\||\\+\\+|>>=|\\|=|\\^=|<<=|\\*=|\\+=|>=|>>|%=|:>|%>|!=|\\*|\\.|==|\\^|--|-=|->|\\||<<|<=|<:|<%|\\)|\\+|\\?|&=|&&|\\[|/=|&|,|:|<|>|~|!|%|-|/|;|=|]|{|}))', [None, ('t_ANY_directive', 'ANY_directive'), None, None, ('t_ANY_punctuator', 'ANY_punctuator')]), ('(?P[a-zA-Z_]([a-zA-Z_]|[0-9])*)', [None, ('t_DEFINE_identifier', 'DEFINE_identifier')]), ('(?P(?P[0-9]+)?(?P[.]?)(?P(?(p1)[0-9]*|[0-9]+))(?P(?:[Ee][+-]?[0-9]+)?)(?P([FfLl]|d[dfl]|D[DFL]|[fFdD][0-9]+x?)?)(?!\\w))', [None, ('t_ANY_float', 'ANY_float'), None, None, None, None, None]), ('(?P(?P(?:0x[a-fA-F0-9]+)|(?:[0-9]+))(?P[uUlL]*))', [None, ('t_ANY_int', 'ANY_int'), None, None]), ('(?PL?\'(\\\\.|[^\\\\\'])+\')|(?PL?"(\\\\.|[^\\\\"])*")|(?P\\()|(?P\\n)|(?P(\\#\\#)|(\\#))', [None, ('t_ANY_character_constant', 'ANY_character_constant'), None, ('t_ANY_string_literal', 'ANY_string_literal'), None, ('t_ANY_lparen', 'ANY_lparen'), ('t_DEFINE_newline', 'DEFINE_newline'), ('t_DEFINE_pp_param_op', 'DEFINE_pp_param_op')])]} - _lexstateignore = {'INITIAL': ' \t\x0b\x0c\r', 'DEFINE': ' \t\x0b\x0c\r'} - _lexstateerrorf = {'INITIAL': 't_INITIAL_error', 'DEFINE': 't_DEFINE_error'} -Index: grass-7.0.5/lib/python/ctypes/ctypesgencore/parser/pplexer.py -=================================================================== ---- grass-7.0.5/lib/python/ctypes/ctypesgencore/parser/pplexer.py (revision 71222) -+++ grass-7.0.5/lib/python/ctypes/ctypesgencore/parser/pplexer.py (revision 71223) -@@ -37,5 +37,5 @@ - 'H': '[a-fA-F0-9]', - 'E': '[Ee][+-]?\s*{D}+', -- 'FS': '[FflL]', -+ 'FS': '([FfLl]|d[dfl]|D[DFL]|[fFdD][0-9]+x?)', - 'IS': '[uUlL]*', - } -@@ -193,8 +193,8 @@ - suf = m.group("suf") - -- if dp or exp or (suf and suf in ("Ff")): -+ if dp or exp or (suf and suf not in ("Ll")): - s = m.group(0) - if suf: -- s = s[:-1] -+ s = s[:-len(suf)] - # Attach a prefix so the parser can figure out if should become an - # integer, float, or long diff --git a/grass.spec b/grass.spec index aa70604..1a41251 100644 --- a/grass.spec +++ b/grass.spec @@ -1,9 +1,9 @@ -%global shortver 70 +%global shortver 72 %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) Name: grass -Version: 7.0.4 -Release: 10%{?dist} +Version: 7.2.1 +Release: 1%{?dist} Summary: GRASS GIS - Geographic Resources Analysis Support System Group: Applications/Engineering @@ -11,38 +11,59 @@ License: GPLv2+ URL: https://grass.osgeo.org Source0: https://grass.osgeo.org/%{name}%{shortver}/source/%{name}-%{version}.tar.gz Source2: %{name}-config.h -# Remove URL from .desktop -# https://trac.osgeo.org/grass/ticket/3178#ticket -Patch0: grass-nourl.patch -Patch1: grass-704_ctypes_gcc7.diff +Patch0: grass72_ctypes_gcc7.diff BuildRequires: bison BuildRequires: blas-devel BuildRequires: desktop-file-utils BuildRequires: fftw-devel BuildRequires: flex +%if (0%{?rhel} > 6 || 0%{?fedora}) BuildRequires: freetype-devel +%endif BuildRequires: gdal-devel BuildRequires: geos-devel BuildRequires: gettext BuildRequires: lapack-devel +%if (0%{?rhel} > 6 || 0%{?fedora}) BuildRequires: libappstream-glib +%endif +%if 0%{?fedora} BuildRequires: liblas-devel => 1.8.0-12 +%endif BuildRequires: libpng-devel BuildRequires: libtiff-devel BuildRequires: libXmu-devel BuildRequires: mesa-libGL-devel BuildRequires: mesa-libGLU-devel BuildRequires: mysql-devel +%if (0%{?rhel} > 6 || 0%{?fedora}) BuildRequires: netcdf-devel +%endif +BuildRequires: numpy +%if (0%{?rhel} > 6 || 0%{?fedora}) BuildRequires: postgresql-devel +%else +# RHEL6: PG from http://yum.postgresql.org/9.6/redhat/rhel-$releasever-$basearch/ +BuildRequires: postgresql96-devel postgresql96-libs +%endif BuildRequires: proj-devel BuildRequires: proj-epsg BuildRequires: proj-nad +%if (0%{?rhel} <= 6 && !0%{?fedora}) +# argparse is included in python2.7+ but not python2.6 +BuildRequires: python-argparse +%endif BuildRequires: python-dateutil BuildRequires: python-devel -BuildRequires: python-matplotlib-wx +Requires: python-matplotlib +##? +#Requires: python-matplotlib-wx +%if (0%{?rhel} > 6 || 0%{?fedora}) BuildRequires: python-pillow +%else +BuildRequires: python-imaging +%endif BuildRequires: readline-devel BuildRequires: sqlite-devel BuildRequires: subversion @@ -50,6 +71,7 @@ BuildRequires: unixODBC-devel BuildRequires: wxGTK-devel BuildRequires: zlib-devel +Requires: geos Requires: numpy Requires: proj-epsg Requires: proj-nad @@ -86,8 +108,7 @@ GRASS GIS development headers %prep %setup -q -%patch0 -p1 -b .nourl -%patch1 -p1 +%patch0 -p1 # Correct mysql_config query sed -i -e 's/--libmysqld-libs/--libs/g' configure @@ -112,22 +133,40 @@ CXXFLAGS="-std=c++98 ${CFLAGS}" --with-blas \ --with-lapack \ --with-cairo \ +%if (0%{?rhel} > 6 || 0%{?fedora}) --with-freetype \ +%endif --with-nls \ --with-readline \ --with-regex \ --with-openmp \ --with-gdal=%{_bindir}/gdal-config \ --with-wxwidgets=%{_bindir}/wx-config \ - --with-netcdf=%{_bindir}/nc-config \ --with-geos=%{_bindir}/geos-config \ +%if (0%{?rhel} > 6 || 0%{?fedora}) + --with-netcdf=%{_bindir}/nc-config \ +%endif --with-mysql-includes=%{_includedir}/mysql \ --with-mysql-libs=%{_libdir}/mysql \ +%if (0%{?rhel} > 6 || 0%{?fedora}) + --with-postgres-includes=%{_includedir}/pgsql \ +%else + --with-postgres-includes=%{_prefix}/pgsql-9.6/include/ \ + --with-postgres-libs=%{_prefix}/pgsql-9.6/lib/ \ +%endif --with-cairo-ldflags=-lfontconfig \ --with-freetype-includes=%{_includedir}/freetype2 \ --with-proj-share=%{_datadir}/proj \ +%if 0%{?fedora} --with-liblas=%{_bindir}/liblas-config +%endif + +%if (0%{?rhel} > 6 || 0%{?fedora}) make %{?_smp_mflags} +%else +# EPEL6: the HTML parser is too strict in Python 6, hence a few manual pages will not be generated +make %{?_smp_mflags} || echo "EPEL6: ignoring failed manual pages" +%endif %install %make_install \ @@ -138,10 +177,13 @@ make %{?_smp_mflags} sed -i -e 's|%{buildroot}%{_prefix}/%{name}-%{version}|%{_libdir}/%{name}%{shortver}|g' \ %{buildroot}%{_bindir}/%{name}%{shortver} -# Make libraries and headers avaialble on the system +# Make libraries and headers available on the system mv %{buildroot}%{_prefix}/%{name}-%{version}/lib %{buildroot}%{_libdir} mv %{buildroot}%{_prefix}/%{name}-%{version}/include %{buildroot}%{_prefix} -rm -rf %{buildroot}%{_includedir}/Make +# 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/ mkdir -p %{buildroot}%{_libdir}/pkgconfig install -p -m 644 %{name}.pc %{buildroot}%{_libdir}/pkgconfig @@ -165,8 +207,8 @@ done # Make desktop, appdata and icon files available on the system mv %{buildroot}%{_prefix}/%{name}-%{version}/share/* %{buildroot}%{_datadir} desktop-file-validate %{buildroot}/%{_datadir}/applications/*.desktop -appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/*.appdata.xml - +# 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 @@ -217,7 +259,9 @@ fi %files libs %license AUTHORS COPYING GPL.TXT CHANGES -%{_libdir}/*.%{version}.so +#%{_libdir}/*.%{version}.so +%{_libdir}/*.so +%{_libdir}/*.a %dir %{_libdir}/%{name}%{shortver} %dir %{_libdir}/%{name}%{shortver}/driver %dir %{_libdir}/%{name}%{shortver}/driver/db @@ -232,20 +276,17 @@ fi %{_includedir}/%{name}/ %changelog -* Mon Jun 26 2017 Devrim Gündüz - 7.0.4-10 -- Add new patch for GCC 7. Per Markus. - -* Sun Mar 19 2017 Devrim Gündüz - 7.0.4-9 -- Rebuild against new boost. +* Wed May 3 2017 Markus Neteler - 7.2.1-1 +- New upstream version 7.2.1 -* Fri Feb 10 2017 Fedora Release Engineering - 7.0.4-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild +* Thu Mar 2 2017 Markus Neteler - 7.2.0-3 +- Fix for g.extension which needs include/ dir in grass-devel -* Tue Jan 24 2017 Devrim Gündüz - 7.0.4-7 -- Rebuild against Proj 4.9.3 +* Sat Feb 4 2017 Markus Neteler - 7.2.0-2 +- Fixes for EPEL -* Tue Jan 17 2017 Volker Froehlich - 7.0.4-6 -- Disable pthread support due to https://trac.osgeo.org/grass/ticket/2074 +* Thu Jan 12 2017 Markus Neteler - 7.2.0-1 +- New upstream version 7.2.0 * Thu Jan 12 2017 Igor Gnatenko - 7.0.4-5 - Rebuild for readline 7.x diff --git a/grass72_ctypes_gcc7.diff b/grass72_ctypes_gcc7.diff new file mode 100644 index 0000000..6ee91e7 --- /dev/null +++ b/grass72_ctypes_gcc7.diff @@ -0,0 +1,90 @@ +Index: grass-7.2.1/lib/python/ctypes/ctypesgencore/parser/lextab.py +=================================================================== +--- grass-7.2.1/lib/python/ctypes/ctypesgencore/parser/lextab.py (revision 71218) ++++ grass-7.2.1/lib/python/ctypes/ctypesgencore/parser/lextab.py (revision 71219) +@@ -1,59 +1,8 @@ + # lextab.py. This file automatically created by PLY (version 2.2). Don't edit! +-_lextokens = { +- 'RIGHT_OP': None, +- 'RIGHT_ASSIGN': None, +- 'DEC_OP': None, +- 'PP_MACRO_PARAM': None, +- 'DIV_ASSIGN': None, +- 'PP_DEFINE': None, +- 'PP_END_DEFINE': None, +- 'PP_DEFINE_MACRO_NAME': None, +- 'HEADER_NAME': None, +- 'NEWLINE': None, +- 'CHARACTER_CONSTANT': None, +- 'PP_STRINGIFY': None, +- 'AND_ASSIGN': None, +- 'PTR_OP': None, +- 'ELLIPSIS': None, +- 'IDENTIFIER': None, +- 'ADD_ASSIGN': None, +- 'PERIOD': None, +- 'AND_OP': None, +- 'OTHER': None, +- 'LPAREN': None, +- 'LEFT_OP': None, +- 'LE_OP': None, +- 'OR_OP': None, +- 'SUB_ASSIGN': None, +- 'MOD_ASSIGN': None, +- 'STRING_LITERAL': None, +- 'PP_IDENTIFIER_PASTE': None, +- 'PP_NUMBER': None, +- 'PP_DEFINE_NAME': None, +- 'XOR_ASSIGN': None, +- 'OR_ASSIGN': None, +- 'GE_OP': None, +- 'MUL_ASSIGN': None, +- 'LEFT_ASSIGN': None, +- 'INC_OP': None, +- 'NE_OP': None, +- 'EQ_OP': None} +-_lexreflags = 0 +-_lexliterals = '' ++_lextokens = {'RIGHT_OP': None, 'RIGHT_ASSIGN': None, 'DEC_OP': None, 'PP_MACRO_PARAM': None, 'DIV_ASSIGN': None, 'PP_DEFINE': None, 'PP_END_DEFINE': None, 'PP_DEFINE_MACRO_NAME': None, 'HEADER_NAME': None, 'NEWLINE': None, 'CHARACTER_CONSTANT': None, 'PP_STRINGIFY': None, 'AND_ASSIGN': None, 'PTR_OP': None, 'ELLIPSIS': None, 'IDENTIFIER': None, 'ADD_ASSIGN': None, 'PERIOD': None, 'AND_OP': None, 'OTHER': None, 'LPAREN': None, 'LEFT_OP': None, 'LE_OP': None, 'OR_OP': None, 'SUB_ASSIGN': None, 'MOD_ASSIGN': None, 'STRING_LITERAL': None, 'PP_IDENTIFIER_PASTE': None, 'PP_NUMBER': None, 'PP_DEFINE_NAME': None, 'XOR_ASSIGN': None, 'OR_ASSIGN': None, 'GE_OP': None, 'MUL_ASSIGN': None, 'LEFT_ASSIGN': None, 'INC_OP': None, 'NE_OP': None, 'EQ_OP': None} ++_lexreflags = 0 ++_lexliterals = '' + _lexstateinfo = {'INITIAL': 'inclusive', 'DEFINE': 'exclusive'} +-_lexstatere = { +- 'INITIAL': [ +- ('(?P\\#\\s+(\\d+)\\s+"([^"]+)"[ \\d]*\\n)|(?P(\\.\\.\\.|\\|\\||\\+\\+|\\*=|\\^=|<<=|>>=|\\|=|\\+=|>=|>>|<<|<=|<:|%=|:>|<%|!=|\\)|\\+|\\*|\\.|\\?|==|&=|&&|\\[|\\^|--|/=|%>|-=|->|\\||!|%|&|-|,|/|;|:|=|>|]|<|{|}|~))', [ +- None, ('t_ANY_directive', 'ANY_directive'), None, None, ('t_ANY_punctuator', 'ANY_punctuator')]), ('(?P[a-zA-Z_]([a-zA-Z_]|[0-9])*)', [ +- None, ('t_INITIAL_identifier', 'INITIAL_identifier')]), ('(?P(?P[0-9]+)?(?P[.]?)(?P(?(p1)[0-9]*|[0-9]+))(?P(?:[Ee][+-]?[0-9]+)?)(?P[FflL]?)(?!\\w))', [ +- None, ('t_ANY_float', 'ANY_float'), None, None, None, None, None]), ('(?P(?P(?:0x[a-fA-F0-9]+)|(?:[0-9]+))(?P[uUlL]*))', [ +- None, ('t_ANY_int', 'ANY_int'), None, None]), ('(?PL?\'(\\\\.|[^\\\\\'])+\')|(?PL?"(\\\\.|[^\\\\"])*")|(?P\\()|(?P\\n)|(?P\\#define)', [ +- None, ('t_ANY_character_constant', 'ANY_character_constant'), None, ('t_ANY_string_literal', 'ANY_string_literal'), None, ('t_ANY_lparen', 'ANY_lparen'), ('t_INITIAL_newline', 'INITIAL_newline'), ('t_INITIAL_pp_define', 'INITIAL_pp_define')])], 'DEFINE': [ +- ('(?P\\#\\s+(\\d+)\\s+"([^"]+)"[ \\d]*\\n)|(?P(\\.\\.\\.|\\|\\||\\+\\+|\\*=|\\^=|<<=|>>=|\\|=|\\+=|>=|>>|<<|<=|<:|%=|:>|<%|!=|\\)|\\+|\\*|\\.|\\?|==|&=|&&|\\[|\\^|--|/=|%>|-=|->|\\||!|%|&|-|,|/|;|:|=|>|]|<|{|}|~))', [ +- None, ('t_ANY_directive', 'ANY_directive'), None, None, ('t_ANY_punctuator', 'ANY_punctuator')]), ('(?P[a-zA-Z_]([a-zA-Z_]|[0-9])*)', [ +- None, ('t_DEFINE_identifier', 'DEFINE_identifier')]), ('(?P(?P[0-9]+)?(?P[.]?)(?P(?(p1)[0-9]*|[0-9]+))(?P(?:[Ee][+-]?[0-9]+)?)(?P[FflL]?)(?!\\w))', [ +- None, ('t_ANY_float', 'ANY_float'), None, None, None, None, None]), ('(?P(?P(?:0x[a-fA-F0-9]+)|(?:[0-9]+))(?P[uUlL]*))', [ +- None, ('t_ANY_int', 'ANY_int'), None, None]), ('(?PL?\'(\\\\.|[^\\\\\'])+\')|(?PL?"(\\\\.|[^\\\\"])*")|(?P\\()|(?P\\n)|(?P(\\#\\#)|(\\#))', [ +- None, ('t_ANY_character_constant', 'ANY_character_constant'), None, ('t_ANY_string_literal', 'ANY_string_literal'), None, ('t_ANY_lparen', 'ANY_lparen'), ('t_DEFINE_newline', 'DEFINE_newline'), ('t_DEFINE_pp_param_op', 'DEFINE_pp_param_op')])]} ++_lexstatere = {'INITIAL': [('(?P\\#\\s+(\\d+)\\s+"([^"]+)"[ \\d]*\\n)|(?P(\\.\\.\\.|\\|\\||\\+\\+|>>=|\\|=|\\^=|<<=|\\*=|\\+=|>=|>>|%=|:>|%>|!=|\\*|\\.|==|\\^|--|-=|->|\\||<<|<=|<:|<%|\\)|\\+|\\?|&=|&&|\\[|/=|&|,|:|<|>|~|!|%|-|/|;|=|]|{|}))', [None, ('t_ANY_directive', 'ANY_directive'), None, None, ('t_ANY_punctuator', 'ANY_punctuator')]), ('(?P[a-zA-Z_]([a-zA-Z_]|[0-9])*)', [None, ('t_INITIAL_identifier', 'INITIAL_identifier')]), ('(?P(?P[0-9]+)?(?P[.]?)(?P(?(p1)[0-9]*|[0-9]+))(?P(?:[Ee][+-]?[0-9]+)?)(?P([FfLl]|d[dfl]|D[DFL]|[fFdD][0-9]+x?)?)(?!\\w))', [None, ('t_ANY_float', 'ANY_float'), None, None, None, None, None]), ('(?P(?P(?:0x[a-fA-F0-9]+)|(?:[0-9]+))(?P[uUlL]*))', [None, ('t_ANY_int', 'ANY_int'), None, None]), ('(?PL?\'(\\\\.|[^\\\\\'])+\')|(?PL?"(\\\\.|[^\\\\"])*")|(?P\\()|(?P\\n)|(?P\\#define)', [None, ('t_ANY_character_constant', 'ANY_character_constant'), None, ('t_ANY_string_literal', 'ANY_string_literal'), None, ('t_ANY_lparen', 'ANY_lparen'), ('t_INITIAL_newline', 'INITIAL_newline'), ('t_INITIAL_pp_define', 'INITIAL_pp_define')])], 'DEFINE': [('(?P\\#\\s+(\\d+)\\s+"([^"]+)"[ \\d]*\\n)|(?P(\\.\\.\\.|\\|\\||\\+\\+|>>=|\\|=|\\^=|<<=|\\*=|\\+=|>=|>>|%=|:>|%>|!=|\\*|\\.|==|\\^|--|-=|->|\\||<<|<=|<:|<%|\\)|\\+|\\?|&=|&&|\\[|/=|&|,|:|<|>|~|!|%|-|/|;|=|]|{|}))', [None, ('t_ANY_directive', 'ANY_directive'), None, None, ('t_ANY_punctuator', 'ANY_punctuator')]), ('(?P[a-zA-Z_]([a-zA-Z_]|[0-9])*)', [None, ('t_DEFINE_identifier', 'DEFINE_identifier')]), ('(?P(?P[0-9]+)?(?P[.]?)(?P(?(p1)[0-9]*|[0-9]+))(?P(?:[Ee][+-]?[0-9]+)?)(?P([FfLl]|d[dfl]|D[DFL]|[fFdD][0-9]+x?)?)(?!\\w))', [None, ('t_ANY_float', 'ANY_float'), None, None, None, None, None]), ('(?P(?P(?:0x[a-fA-F0-9]+)|(?:[0-9]+))(?P[uUlL]*))', [None, ('t_ANY_int', 'ANY_int'), None, None]), ('(?PL?\'(\\\\.|[^\\\\\'])+\')|(?PL?"(\\\\.|[^\\\\"])*")|(?P\\()|(?P\\n)|(?P(\\#\\#)|(\\#))', [None, ('t_ANY_character_constant', 'ANY_character_constant'), None, ('t_ANY_string_literal', 'ANY_string_literal'), None, ('t_ANY_lparen', 'ANY_lparen'), ('t_DEFINE_newline', 'DEFINE_newline'), ('t_DEFINE_pp_param_op', 'DEFINE_pp_param_op')])]} + _lexstateignore = {'INITIAL': ' \t\x0b\x0c\r', 'DEFINE': ' \t\x0b\x0c\r'} + _lexstateerrorf = {'INITIAL': 't_INITIAL_error', 'DEFINE': 't_DEFINE_error'} +Index: grass-7.2.1/lib/python/ctypes/ctypesgencore/parser/pplexer.py +=================================================================== +--- grass-7.2.1/lib/python/ctypes/ctypesgencore/parser/pplexer.py (revision 71218) ++++ grass-7.2.1/lib/python/ctypes/ctypesgencore/parser/pplexer.py (revision 71219) +@@ -53,5 +53,5 @@ + 'H': '[a-fA-F0-9]', + 'E': '[Ee][+-]?\s*{D}+', +- 'FS': '[FflL]', ++ 'FS': '([FfLl]|d[dfl]|D[DFL]|[fFdD][0-9]+x?)', + 'IS': '[uUlL]*', + } +@@ -227,8 +227,8 @@ + suf = m.group("suf") + +- if dp or exp or (suf and suf in ("Ff")): ++ if dp or exp or (suf and suf not in ("Ll")): + s = m.group(0) + if suf: +- s = s[:-1] ++ s = s[:-len(suf)] + # Attach a prefix so the parser can figure out if should become an + # integer, float, or long diff --git a/sources b/sources index 9fade87..dd5bab9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -843e8942c14aa7473380ea70c9b0ec52 grass-7.0.4.tar.gz +SHA512 (grass-7.2.1.tar.gz) = 018c56aaed9dcdb1e014182f0bf2cdb19d5286351d366015a0ffc859109565fa3483129de9883466a8dc0b06bb059a9fba9b26bd4177cb048df4e6107dc84dae