[Git][debian-gis-team/grass][upstream] New upstream version 7.8.5

Bas Couwenberg gitlab at salsa.debian.org
Mon Dec 21 20:02:13 GMT 2020



Bas Couwenberg pushed to branch upstream at Debian GIS Project / grass


Commits:
eac0ae3f by Bas Couwenberg at 2020-12-21T20:27:01+01:00
New upstream version 7.8.5
- - - - -


14 changed files:

- doc/howto_release.md
- docker/README.md
- − docker/ubuntu/Dockerfile_ubuntu_latest_pdal
- docker/ubuntu/Dockerfile_ubuntu_pdal
- gui/wxpython/gui_core/dialogs.py
- gui/wxpython/gui_core/gselect.py
- gui/wxpython/modules/import_export.py
- gui/wxpython/timeline/frame.py
- gui/wxpython/tplot/frame.py
- include/VERSION
- raster/r.resamp.bspline/r.resamp.bspline.html
- scripts/d.correlate/d.correlate.py
- scripts/g.extension/g.extension.py
- tools/mkhtml.py


Changes:

=====================================
doc/howto_release.md
=====================================
@@ -241,7 +241,7 @@ ssh neteler@$SERVER1 "cd $SERVER1DIR ; rm -f grass-$MAJOR.$MINOR-latest.md5sum"
 ssh neteler@$SERVER1 "cd $SERVER1DIR ; ln -s grass-$VERSION.tar.gz grass-$MAJOR.$MINOR-latest.md5sum"
 
 # verify
-echo "https://$SERVER1/grass$MAJOR$MINOR/source/"
+echo "https://grass.osgeo.org/grass$MAJOR$MINOR/source/"
 
 # update winGRASS related files: Update the winGRASS version
 vim grass-addons/tools/wingrass-packager/grass_packager_release.bat
@@ -257,48 +257,38 @@ vim grass-addons/tools/addons/grass-addons.sh
 
 Release is done.
 
-### Advertise new release
+### Advertise the new release
 
-#### Update CMS web site to show new version
+#### Write trac Wiki release page
 
-- News section
-- <https://grass.osgeo.org/download/software/>
-- <https://grass.osgeo.org/download/software/sources/>
-- <https://grass.osgeo.org/download/software/linux/>
-- <https://grass.osgeo.org/home/history/releases/>
-
-TODO: git tags
-
-- <https://grass.osgeo.org/development/svn/svn-tags/> (add tag): echo $RELEASETAG
-
-#### Write announcement and publish it
-
-To easily generate the entries for the trac Wiki release pages, use a `git log` approach:
-
-- List of latest changes (example, get from GitHub release page)
-   - https://github.com/OSGeo/grass/compare/releasebranch_7_8@%7B05-05-20%7D...releasebranch_7_8@%7B09-26-20%7D
-- identify start and end commit hash
+To easily generate the entries for the trac Wiki release page, use the `git log` approach:
 - extract entries from oneline git log and prepare for trac Wiki copy-paste:
 
 ```
-#START=76d5988
-#END=8a81328
-##git log --oneline | sed -n "+^$START+,+^$END+p;+^$END+q"
-
+# get date of previous release from https://github.com/OSGeo/grass/releases
 # verify
-git log --oneline | sed -n '/^76d5988/,/^8a81328/p;/^8a81328/q' | tac
+git log --oneline --after="2020-10-05" | tac
 
-# prepare for trac Wiki release page
-git log --oneline | sed -n '/^76d5988/,/^8a81328/p;/^8a81328/q' | cut -d' ' -f2- | sed 's+^+ * G78:+g' | sort -u
+# prepare for trac Wiki release page (incl. PR trac macro)
+git log --oneline --after="2020-10-05" | cut -d' ' -f2- | sed 's+^+ * G78:+g' | sed 's+(#+(PR:+g' | sort -u
 ```
 
-- store entries in trac, by section:
+- store changelog entries in trac, by section:
     - <https://trac.osgeo.org/grass/wiki/Release/7.8.x-News>
-    - <https://trac.osgeo.org/grass/wiki/Grass7/NewFeatures78>  <- add content
-      of major changes only
-- update version in <https://grasswiki.osgeo.org/wiki/GRASS-Wiki>
-- ~~store in Web as announces/announce_grass$MAJOR$MINOR$RELEASE.html <- how?
-  with protected PHP upload page?~~ (dropped since CMS)
+    - <https://trac.osgeo.org/grass/wiki/Grass7/NewFeatures78>  <- add content of major changes only
+
+#### Update CMS web site to show new version (not for RCs!)
+
+Write announcement and publish it:
+- News section, https://github.com/OSGeo/grass-website/tree/master/content/news
+
+Software pages:
+- Linux: https://github.com/OSGeo/grass-website/blob/master/content/download/linux.en.md
+- Windows: https://github.com/OSGeo/grass-website/blob/master/content/download/windows.en.md
+- Mac: https://github.com/OSGeo/grass-website/blob/master/content/download/mac.en.md
+- Releases: https://github.com/OSGeo/grass-website/blob/master/content/about/history/releases.md
+- Wiki: https://grasswiki.osgeo.org/wiki/GRASS-Wiki
+
 
 #### Only in case of new major release
 


=====================================
docker/README.md
=====================================
@@ -4,17 +4,15 @@
 
 | Base image   | Docker tag      | GRASS GIS  | PROJ  | GDAL  | PDAL  | Python | Image size |
 |--------------|-----------------|------------|-------|-------|-------|--------|------------|
-| Ubuntu 18.04 | latest-ubuntu   | 7.9.dev    | 4.9.3 | 2.2.3 | 1.8.0 | 3.6.9  | 1.04 GB    |
-| Ubuntu 19.10 | latest-ubuntu19 | 7.9.dev    | 5.2.0 | 2.4.2 | 1.9.1 | 3.7.5  |  850 MB    |
+| Ubuntu 20.04 | latest-ubuntu   | 7.9.dev    | 6.3.1 | 3.0.4 | 2.2.0 | 3.8.5  | 1.04 GB    |
 | Debian 10.1  | latest-debian   | 7.9.dev    | 5.2.0 | 2.4.0 | 1.8.0 | 3.7.3  | 1.14 GB    |
 | Alpine 3.12  | latest-alpine   | 7.9.dev    | 7.0.1 | 3.1.2 | 2.1.0 | 3.5.8  |  385 MB    |
 |--------------|-----------------|------------|-------|-------|-------|--------|------------|
-| Ubuntu 18.04 | stable-ubuntu   | 7.8 branch | 4.9.3 | 2.2.3 | 1.8.0 | 3.6.9  | 1.04 GB    |
-| Ubuntu 19.10 | stable-ubuntu19 | 7.8 branch | 5.2.0 | 2.4.2 | 1.9.1 | 3.7.5  |  850 MB    |
+| Ubuntu 20.04 | stable-ubuntu   | 7.8 branch | 6.3.1 | 3.0.4 | 2.2.0 | 3.8.5  | 1.04 GB    |
 | Debian 10.1  | stable-debian   | 7.8 branch | 5.2.0 | 2.4.0 | 1.8.0 | 3.7.3  | 1.14 GB    |
 | Alpine 3.12  | stable-alpine   | 7.8 branch | 7.0.1 | 3.1.2 | 2.1.0 | 3.5.8  |  385 MB    |
 
-Last update: 17 Sep 2020 (source: https://hub.docker.com/r/mundialis/grass-py3-pdal/builds)
+Last update: 16 Dec 2020 (source: https://hub.docker.com/r/mundialis/grass-py3-pdal/builds)
 
 # Requirements
 


=====================================
docker/ubuntu/Dockerfile_ubuntu_latest_pdal deleted
=====================================
@@ -1,194 +0,0 @@
-FROM ubuntu:19.10
-
-LABEL authors="Carmen Tawalika,Markus Neteler,Anika Bettge"
-LABEL maintainer="tawalika at mundialis.de,neteler at mundialis.de,bettge at mundialis.de"
-
-ENV DEBIAN_FRONTEND noninteractive
-
-SHELL ["/bin/bash", "-c"]
-
-WORKDIR /tmp
-
-RUN apt-get update && apt-get upgrade -y && \
-    apt-get install -y --no-install-recommends --no-install-suggests \
-    build-essential \
-    bison \
-    bzip2 \
-    cmake \
-    curl \
-    flex \
-    g++ \
-    gcc \
-    gdal-bin \
-    git \
-    language-pack-en-base \
-    libbz2-dev \
-    libcairo2 \
-    libcairo2-dev \
-    libcurl4-gnutls-dev \
-    libfftw3-bin \
-    libfftw3-dev \
-    libfreetype6-dev \
-    libgdal-dev \
-    libgeos-dev \
-    libgsl0-dev \
-    libjpeg-dev \
-    libjsoncpp-dev \
-    libnetcdf-dev \
-    libncurses5-dev \
-    libopenblas-base \
-    libopenblas-dev \
-    libopenjp2-7 \
-    libopenjp2-7-dev \
-    libpdal-dev \
-    libpdal-plugins \
-    libpdal-plugin-python \
-    libpnglite-dev \
-    libpq-dev \
-    libproj-dev \
-    libpython3-all-dev \
-    libsqlite3-dev \
-    libtiff-dev \
-    libzstd-dev \
-    locales \
-    make \
-    mesa-common-dev \
-    moreutils \
-    ncurses-bin \
-    netcdf-bin \
-    pdal \
-    proj-bin \
-    proj-data \
-    python3 \
-    python3-dateutil \
-    python3-dev \
-    python3-magic \
-    python3-numpy \
-    python3-pil \
-    python3-pip \
-    python3-ply \
-    python3-setuptools \
-    python3-venv \
-    software-properties-common \
-    sqlite3 \
-    subversion \
-    unzip \
-    vim \
-    wget \
-    zip \
-    zlib1g-dev
-
-RUN echo LANG="en_US.UTF-8" > /etc/default/locale
-RUN echo en_US.UTF-8 UTF-8 >> /etc/locale.gen && locale-gen
-
-## TODO check if still needed
-## fetch vertical datums and store into PROJ dir
-WORKDIR /src
-RUN mkdir vdatum && \
-    cd vdatum && \
-    wget -q http://download.osgeo.org/proj/vdatum/usa_geoid2012.zip && unzip -j -u usa_geoid2012.zip -d /usr/share/proj; \
-    wget -q http://download.osgeo.org/proj/vdatum/usa_geoid2009.zip && unzip -j -u usa_geoid2009.zip -d /usr/share/proj; \
-    wget -q http://download.osgeo.org/proj/vdatum/usa_geoid2003.zip && unzip -j -u usa_geoid2003.zip -d /usr/share/proj; \
-    wget -q http://download.osgeo.org/proj/vdatum/usa_geoid1999.zip && unzip -j -u usa_geoid1999.zip -d /usr/share/proj; \
-    wget -q http://download.osgeo.org/proj/vdatum/vertcon/vertconc.gtx && mv vertconc.gtx /usr/share/proj; \
-    wget -q http://download.osgeo.org/proj/vdatum/vertcon/vertcone.gtx && mv vertcone.gtx /usr/share/proj; \
-    wget -q http://download.osgeo.org/proj/vdatum/vertcon/vertconw.gtx && mv vertconw.gtx /usr/share/proj; \
-    wget -q http://download.osgeo.org/proj/vdatum/egm96_15/egm96_15.gtx && mv egm96_15.gtx /usr/share/proj; \
-    wget -q http://download.osgeo.org/proj/vdatum/egm08_25/egm08_25.gtx && mv egm08_25.gtx /usr/share/proj; \
-    cd .. && \
-    rm -rf vdatum
-
-# copy grass gis source
-WORKDIR /src
-COPY . /src/grass_build/
-WORKDIR /src/grass_build
-
-# Set environmental variables for GRASS GIS compilation, without debug symbols
-# Set gcc/g++ environmental variables for GRASS GIS compilation, without debug symbols
-ENV MYCFLAGS "-O2 -std=gnu99 -m64"
-ENV MYLDFLAGS "-s"
-# CXX stuff:
-ENV LD_LIBRARY_PATH "/usr/local/lib"
-ENV LDFLAGS "$MYLDFLAGS"
-ENV CFLAGS "$MYCFLAGS"
-ENV CXXFLAGS "$MYCXXFLAGS"
-
-# Configure compile and install GRASS GIS
-ENV GRASS_PYTHON=/usr/bin/python3
-ENV NUMTHREADS=4
-RUN make distclean || echo "nothing to clean"
-RUN /src/grass_build/configure \
-  --with-cxx \
-  --enable-largefile \
-  --with-proj --with-proj-share=/usr/share/proj \
-  --with-gdal=/usr/bin/gdal-config \
-  --with-geos \
-  --with-sqlite \
-  --with-cairo --with-cairo-ldflags=-lfontconfig \
-  --with-freetype --with-freetype-includes="/usr/include/freetype2/" \
-  --with-fftw \
-  --with-postgres=yes --with-postgres-includes="/usr/include/postgresql" \
-  --with-netcdf \
-  --with-zstd \
-  --with-bzlib \
-  --with-pdal \
-  --without-mysql \
-  --without-odbc \
-  --without-openmp \
-  --without-ffmpeg \
-  --without-opengl \
-    && make -j $NUMTHREADS \
-    && make install && ldconfig
-
-# Unset environmental variables to avoid later compilation issues
-ENV INTEL ""
-ENV MYCFLAGS ""
-ENV MYLDFLAGS ""
-ENV MYCXXFLAGS ""
-ENV LD_LIBRARY_PATH ""
-ENV LDFLAGS ""
-ENV CFLAGS ""
-ENV CXXFLAGS ""
-
-# set SHELL var to avoid /bin/sh fallback in interactive GRASS GIS sessions
-ENV SHELL /bin/bash
-ENV LC_ALL "en_US.UTF-8"
-ENV GRASS_SKIP_MAPSET_OWNER_CHECK 1
-
-# Create generic GRASS GIS binary name regardless of version number
-RUN ln -sf `find /usr/local/bin -name "grass??" | sort | tail -n 1` /usr/local/bin/grass
-# Create generic GRASS GIS lib name regardless of version number
-RUN ln -sf `grass --config path` /usr/local/grass
-
-# show GRASS GIS, PROJ, GDAL etc versions
-RUN grass --tmp-location EPSG:4326 --exec g.version -rge && \
-    pdal --version && \
-    python3 --version
-
-# Reduce the image size
-RUN apt-get autoremove -y
-RUN apt-get clean -y
-
-WORKDIR /scripts
-
-# install external GRASS GIS session Python API
-RUN pip3 install grass-session
-
-# install GRASS GIS extensions
-RUN grass --tmp-location EPSG:4326 --exec g.extension extension=r.in.pdal
-
-# add GRASS GIS envs for python usage
-ENV GISBASE "/usr/local/grass/"
-ENV GRASSBIN "/usr/local/bin/grass"
-ENV PYTHONPATH "${PYTHONPATH}:$GISBASE/etc/python/"
-ENV LD_LIBRARY_PATH "$LD_LIBRARY_PATH:$GISBASE/lib"
-
-WORKDIR /tmp
-COPY docker/testdata/simple.laz .
-WORKDIR /scripts
-COPY docker/testdata/test_grass_session.py .
-## just scan the LAZ file
-RUN /usr/bin/python3 /scripts/test_grass_session.py
-
-WORKDIR /grassdb
-VOLUME /grassdb


=====================================
docker/ubuntu/Dockerfile_ubuntu_pdal
=====================================
@@ -1,15 +1,13 @@
-FROM ubuntu:18.04
+FROM ubuntu:20.04
 
-LABEL authors="Carmen Tawalika,Markus Neteler,Anika Bettge"
-LABEL maintainer="tawalika at mundialis.de,neteler at mundialis.de,bettge at mundialis.de"
+LABEL authors="Carmen Tawalika,Markus Neteler,Anika Weinmann"
+LABEL maintainer="tawalika at mundialis.de,neteler at mundialis.de,weinmann at mundialis.de"
 
 ENV DEBIAN_FRONTEND noninteractive
 
 # define versions to be used
-ARG PDAL_VERSION=1.8.0
-ARG PROJ_VERSION=4.9.3
-ARG PROJ_DATUMGRID_VERSION=1.8
-ARG LAZ_PERF_VERSION=1.3.0
+ARG PDAL_VERSION=2.2.0
+ARG LAZ_PERF_VERSION=1.5.0
 
 SHELL ["/bin/bash", "-c"]
 
@@ -48,6 +46,7 @@ RUN apt-get update && apt-get upgrade -y && \
     libopenjp2-7-dev \
     libpnglite-dev \
     libpq-dev \
+    libproj-dev \
     libpython3-all-dev \
     libsqlite3-dev \
     libtiff-dev \
@@ -58,6 +57,8 @@ RUN apt-get update && apt-get upgrade -y && \
     moreutils \
     ncurses-bin \
     netcdf-bin \
+    proj-bin \
+    proj-data \
     python3 \
     python3-dateutil \
     python3-dev \
@@ -80,19 +81,6 @@ RUN apt-get update && apt-get upgrade -y && \
 RUN echo LANG="en_US.UTF-8" > /etc/default/locale
 RUN echo en_US.UTF-8 UTF-8 >> /etc/locale.gen && locale-gen
 
-## install the latest projection library for GRASS GIS
-WORKDIR /src
-RUN wget -q http://download.osgeo.org/proj/proj-${PROJ_VERSION}.tar.gz && \
-    tar xzf proj-${PROJ_VERSION}.tar.gz && \
-    cd /src/proj-${PROJ_VERSION}/ && \
-    wget -q http://download.osgeo.org/proj/proj-datumgrid-${PROJ_DATUMGRID_VERSION}.zip && \
-    cd nad && \
-    unzip ../proj-datumgrid-${PROJ_DATUMGRID_VERSION}.zip && \
-    cd .. && \
-    ./configure --prefix=/usr/ && \
-    make && \
-    make install
-
 ## install laz-perf
 RUN apt-get install cmake
 WORKDIR /src
@@ -105,7 +93,7 @@ RUN wget -q https://github.com/hobu/laz-perf/archive/${LAZ_PERF_VERSION}.tar.gz
     make && \
     make install
 
-## fetch vertical datums and store into PROJ dir
+## fetch vertical datums for PDAL and store into PROJ dir
 WORKDIR /src
 RUN mkdir vdatum && \
     cd vdatum && \
@@ -158,6 +146,9 @@ WORKDIR /src
 COPY . /src/grass_build/
 WORKDIR /src/grass_build
 
+# Cleanup potentially leftover GISRC file with wrong path to "demolocation"
+RUN rm -f /src/grass_build/dist.*/demolocation/.grassrc7?
+
 # Set environmental variables for GRASS GIS compilation, without debug symbols
 # Set gcc/g++ environmental variables for GRASS GIS compilation, without debug symbols
 ENV MYCFLAGS "-O2 -std=gnu99 -m64"


=====================================
gui/wxpython/gui_core/dialogs.py
=====================================
@@ -368,8 +368,7 @@ class NewVectorDialog(VectorDialog):
                 proportion=0,
                 flag=wx.ALIGN_CENTER_VERTICAL)
             keySizer.AddSpacer(10)
-            keySizer.Add(self.keycol, proportion=0,
-                         flag=wx.ALIGN_RIGHT)
+            keySizer.Add(self.keycol, proportion=0)
             self.dataSizer.Add(keySizer, proportion=1,
                                flag=wx.EXPAND | wx.ALL, border=1)
 
@@ -1974,7 +1973,7 @@ class ImageSizeDialog(wx.Dialog):
         btnsizer.Realize()
 
         sizer.Add(btnsizer, proportion=0,
-                  flag=wx.EXPAND | wx.ALIGN_RIGHT | wx.ALL, border=5)
+                  flag=wx.EXPAND | wx.ALL, border=5)
 
         self.panel.SetSizer(sizer)
         sizer.Fit(self.panel)


=====================================
gui/wxpython/gui_core/gselect.py
=====================================
@@ -2559,7 +2559,10 @@ class VectorCategorySelect(wx.Panel):
         if self._isMapSelected():
             layerList = self.giface.GetLayerList()
             layerSelected = layerList.GetSelectedLayer()
-            inputName = self.task.get_param('input')
+            # d.vect module
+            inputName = self.task.get_param(value='map', raiseError=False)
+            if not inputName:
+                inputName = self.task.get_param('input')
             if inputName['value'] != str(layerSelected):
                 if inputName['value'] == '' or inputName['value'] is None:
                     GWarning(_("Input vector map is not selected"))


=====================================
gui/wxpython/modules/import_export.py
=====================================
@@ -713,7 +713,7 @@ class GdalOutputDialog(wx.Dialog):
         dialogSizer.Add(
             btnSizer,
             proportion=0,
-            flag=wx.ALIGN_CENTER_VERTICAL | wx.BOTTOM | wx.TOP | wx.ALIGN_RIGHT,
+            flag=wx.BOTTOM | wx.TOP | wx.ALIGN_RIGHT,
             border=10)
 
         self.panel.SetAutoLayout(True)


=====================================
gui/wxpython/timeline/frame.py
=====================================
@@ -35,7 +35,6 @@ try:
         FigureCanvasWxAgg as FigCanvas, \
         NavigationToolbar2WxAgg as NavigationToolbar
     import matplotlib.dates as mdates
-    from matplotlib import cbook
 except ImportError as e:
     raise ImportError(_('The Timeline Tool needs the "matplotlib" '
                         '(python-matplotlib and on some systems also python-matplotlib-wx) package(s) to be installed. {0}').format(e))
@@ -615,7 +614,7 @@ class DataCursor(object):
         self.formatFunction = formatFunction
         self.offsets = offsets
         self.display_all = display_all
-        if not cbook.iterable(artists):
+        if not np.iterable(artists):
             artists = [artists]
         self.artists = artists
 
@@ -626,7 +625,7 @@ class DataCursor(object):
         for ax in self.axes:
             self.annotations[ax] = self.annotate(ax)
         for artist in self.artists:
-            artist.set_picker(tolerance)
+            artist.set_pickradius(tolerance)
         for fig in self.figures:
             fig.canvas.mpl_connect('pick_event', self)
             fig.canvas.mpl_connect('key_press_event', self.keyPressed)


=====================================
gui/wxpython/tplot/frame.py
=====================================
@@ -39,7 +39,6 @@ try:
         FigureCanvasWxAgg as FigCanvas, \
         NavigationToolbar2WxAgg as NavigationToolbar
     import matplotlib.dates as mdates
-    from matplotlib import cbook
 except ImportError as e:
     raise ImportError(_('The Temporal Plot Tool needs the "matplotlib" '
                         '(python-matplotlib) package to be installed. {0}').format(e))
@@ -1125,7 +1124,7 @@ class DataCursor(object):
         self.formatFunction = formatFunction
         self.offsets = offsets
         self.display_all = display_all
-        if not cbook.iterable(artists):
+        if not np.iterable(artists):
             artists = [artists]
         self.artists = artists
         self.convert = convert
@@ -1136,7 +1135,7 @@ class DataCursor(object):
         for ax in self.axes:
             self.annotations[ax] = self.annotate(ax)
         for artist in self.artists:
-            artist.set_picker(tolerance)
+            artist.set_pickradius(tolerance)
         for fig in self.figures:
             fig.canvas.mpl_connect('pick_event', self)
             fig.canvas.mpl_connect('key_press_event', self.keyPressed)


=====================================
include/VERSION
=====================================
@@ -1,4 +1,4 @@
 7
 8
-5RC1
+5
 2020


=====================================
raster/r.resamp.bspline/r.resamp.bspline.html
=====================================
@@ -24,7 +24,8 @@ smooth the interpolation. With a small <b>lambda</b>, the
 interpolated surface closely follows observation points; a larger value
 will produce a smoother interpolation. Reasonable values are 0.0001,
 0.001, 0.005, 0.01, 0.02, 0.05, 0.1 (needs more testing). For seamless
-NULL cell interpolation, a small value is required and default is set to 0.005.
+NULL cell interpolation, a small value is required. The default <b>lambda</b>
+value is set to 0.01.
 <p>
 From a theoretical perspective, the interpolating procedure takes place in two
 parts: the first is an estimate of the linear coefficients of a spline function;


=====================================
scripts/d.correlate/d.correlate.py
=====================================
@@ -67,12 +67,12 @@ def main():
                                     stdin="%s %s" % (i, j))
                 line += 1
 
-                ofile = file(tmpfile, 'w')
+                ofile = open(tmpfile, 'w')
                 gcore.run_command('r.stats', flags='cnA', input=(i, j),
                                   stdout=ofile)
                 ofile.close()
 
-                ifile = file(tmpfile, 'r')
+                ifile = open(tmpfile, 'r')
                 first = True
                 for l in ifile:
                     f = l.rstrip('\r\n').split(' ')
@@ -98,12 +98,12 @@ def main():
                 p = gcore.feed_command('d.graph', color=color)
                 ofile = p.stdin
 
-                ifile = file(tmpfile, 'r')
+                ifile = open(tmpfile, 'r')
                 for l in ifile:
                     f = l.rstrip('\r\n').split(' ')
                     x = float(f[0])
                     y = float(f[1])
-                    ofile.write("icon + 0.1 %f %f\n" % ((x - minx + 1) * kx,
+                    ofile.write(b"icon + 0.1 %f %f\n" % ((x - minx + 1) * kx,
                                                         (y - miny + 1) * ky))
                 ifile.close()
 


=====================================
scripts/g.extension/g.extension.py
=====================================
@@ -1535,15 +1535,15 @@ def install_extension_std_platforms(name, source, url, branch):
                 # get the module name: PGM = <module name>
                 with open(os.path.join(r, 'Makefile')) as fp:
                     for line in fp.readlines():
-                        if "PGM" in line:
+                        if re.match(r'PGM.*.=|PGM=', line):
                             try:
                                 modulename = line.split('=')[1].strip()
                                 if modulename:
                                     module_list.append(modulename)
                                 else:
-                                    grass.error(pgm_not_found_message)
+                                    grass.fatal(pgm_not_found_message)
                             except IndexError:
-                                grass.error(pgm_not_found_message)
+                                grass.fatal(pgm_not_found_message)
 
     # change shebang from python to python3
     pyfiles = []


=====================================
tools/mkhtml.py
=====================================
@@ -67,6 +67,9 @@ def decode(bytes_):
     return unicode(bytes_)
 
 
+html_page_footer_pages_path = os.getenv('HTML_PAGE_FOOTER_PAGES_PATH') if \
+    os.getenv('HTML_PAGE_FOOTER_PAGES_PATH') else ''
+
 pgm = sys.argv[1]
 
 src_file = "%s.html" % pgm
@@ -309,6 +312,29 @@ else:
 
 if not re.search('<html>', src_data, re.IGNORECASE):
     tmp_data = read_file(tmp_file)
+    """
+    Adjusting keywords html pages paths if add-on html man page
+    stored on the server
+    """
+    if html_page_footer_pages_path:
+        new_keywords_paths = []
+        orig_keywords_paths = re.search(
+            r'<h[1-9]>KEYWORDS</h[1-9]>(.*?)<h[1-9]>',
+            tmp_data, re.DOTALL,
+        )
+        if orig_keywords_paths:
+            search_txt = 'href="'
+            for i in orig_keywords_paths.group(1).split(','):
+                if search_txt in i:
+                    index = i.index(search_txt) + len(search_txt)
+                    new_keywords_paths.append(
+                        i[:index] + html_page_footer_pages_path + i[index:],
+                    )
+        if new_keywords_paths:
+            tmp_data = tmp_data.replace(
+                orig_keywords_paths.group(1),
+                ','.join(new_keywords_paths),
+            )
     if not re.search('<html>', tmp_data, re.IGNORECASE):
         sys.stdout.write(header_tmpl.substitute(PGM=pgm, PGM_DESC=pgm_desc))
     if tmp_data:
@@ -404,9 +430,6 @@ else:
 if sys.platform == 'win32':
     url_source = url_source.replace(os.path.sep, '/')
 
-html_page_footer_pages_path = os.getenv('HTML_PAGE_FOOTER_PAGES_PATH') if \
-    os.getenv('HTML_PAGE_FOOTER_PAGES_PATH') else ''
-
 if index_name:
     tree = 'grass/tree'
     commits = 'grass/commits'



View it on GitLab: https://salsa.debian.org/debian-gis-team/grass/-/commit/eac0ae3f1ee799b2b1e3dbd8a0cc5cde4741d655

-- 
View it on GitLab: https://salsa.debian.org/debian-gis-team/grass/-/commit/eac0ae3f1ee799b2b1e3dbd8a0cc5cde4741d655
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20201221/03f1194d/attachment-0001.html>


More information about the Pkg-grass-devel mailing list