commit:     7c473887fbc1dfbc393930e612cfc811e0f7e077
Author:     Mario Haustein <mario.haustein <AT> hrz <DOT> tu-chemnitz <DOT> de>
AuthorDate: Fri Jan 28 22:59:57 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Jan 29 06:18:25 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7c473887

sci-geosciences/grass: version bump 8.0.0

Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Mario Haustein <mario.haustein <AT> hrz.tu-chemnitz.de>
Closes: https://github.com/gentoo/gentoo/pull/24003
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sci-geosciences/grass/Manifest                     |   2 +-
 .../grass/files/grass-8.0.0-mkhtml.patch           | 316 +++++++++++++++++++++
 .../{grass-8.0.0_rc2.ebuild => grass-8.0.0.ebuild} |   1 +
 3 files changed, 318 insertions(+), 1 deletion(-)

diff --git a/sci-geosciences/grass/Manifest b/sci-geosciences/grass/Manifest
index ff32202d3394..85de9606c6e5 100644
--- a/sci-geosciences/grass/Manifest
+++ b/sci-geosciences/grass/Manifest
@@ -1,2 +1,2 @@
 DIST grass-7.8.6.tar.gz 66331264 BLAKE2B 
bb5a3387f74bc30b7ce3230765cecdc7e61ded8693d888e6cefc2d491022496409d053e170293fcef392a9c9178a41b070767e1ce90b57b448b189c9e16a2761
 SHA512 
6db10a20e5b70f0ce9a8fc4d6966c6f078453a88fa8f0577c1c62303f9787fa3bf3369e281f7ca864280c865e3ef022c51d8805d1258ea04da45e63cd34c27df
-DIST grass-8.0.0RC2.tar.gz 64942585 BLAKE2B 
fc7499def2029acb9b547c688eaaad986daae5c80b085bbe876d7bca4d4c7547867375edee752705e30ab215d0b8e0c7f017e94802a549569a525196bbd7bcb4
 SHA512 
9e624c54974e253dce1b93a0ce1c51eaa421d8baacdf61b03893d34c5cd36af76915ab035fb9bb78af4c16e1efc12bb501a707e335e312a12cf2c17a2b0d6f61
+DIST grass-8.0.0.tar.gz 64944539 BLAKE2B 
61ea667321599026f2514333e5fe47313d232236a818458939e968d80ed88a511ddc29e2b51edd082bd246b614a0b121b10c09e9059ae31fd5c211e9844d89b1
 SHA512 
29bd57fb017937b0f3ad105790449704c6f12b56ffe79091f0aceed328f4da5293dd42cc3071158aad5386a51309f35a4f0b9bbd57221431e705f51880c2ce42

diff --git a/sci-geosciences/grass/files/grass-8.0.0-mkhtml.patch 
b/sci-geosciences/grass/files/grass-8.0.0-mkhtml.patch
new file mode 100644
index 000000000000..1eb46012f6a4
--- /dev/null
+++ b/sci-geosciences/grass/files/grass-8.0.0-mkhtml.patch
@@ -0,0 +1,316 @@
+--- a/lib/init/variables.html
++++ b/lib/init/variables.html
+@@ -234,12 +234,7 @@ PERMANENT
+   <dt>GRASS_PERL</dt>
+   <dd>[used during install process for generating man pages]<br>
+     set Perl with path.</dd>
+-
+-  <dt>GRASS_PROXY</dt>
+-  <dd>[used during addon install/reinstall process for generating man
+-    pages (download commit from GitHub API server and remote modules.xml 
file)]<br>
+-    set the proxy with: 
<tt>GRASS_PROXY="http=&lt;value&gt;,ftp=&lt;value&gt;"</tt>.</dd>
+-
++  
+   <dt>GRASS_SKIP_MAPSET_OWNER_CHECK</dt>
+   <dd>By default it is not possible to work with MAPSETs that are
+     not owned by current user. Setting this variable to any non-empty value
+--- a/scripts/g.extension/g.extension.py
++++ b/scripts/g.extension/g.extension.py
+@@ -354,6 +354,7 @@ def download_addons_paths_file(url, response_format, 
*args, **kwargs):
+                 ),
+             )
+         return response
++
+     except HTTPError as err:
+         if err.code == 403 and err.msg == "rate limit exceeded":
+             gscript.warning(
+@@ -2588,8 +2589,6 @@ def main():
+         proxy = urlrequest.ProxyHandler(PROXIES)
+         opener = urlrequest.build_opener(proxy)
+         urlrequest.install_opener(opener)
+-        # Required for mkhtml.py script (get addon git commit from GitHub API 
server)
+-        os.environ["GRASS_PROXY"] = options["proxy"]
+ 
+     # define path
+     options["prefix"] = resolve_install_prefix(
+--- a/utils/mkhtml.py
++++ b/utils/mkhtml.py
+@@ -16,7 +16,6 @@
+ #
+ #############################################################################
+ 
+-import http
+ import sys
+ import os
+ import string
+@@ -25,9 +24,6 @@ from datetime import datetime
+ import locale
+ import json
+ import pathlib
+-import shutil
+-import subprocess
+-import time
+ 
+ try:
+     # Python 2 import
+@@ -35,26 +31,11 @@ try:
+ except ImportError:
+     # Python 3 import
+     from html.parser import HTMLParser
+-
+-from six.moves.urllib import request as urlrequest
+-from six.moves.urllib.error import HTTPError, URLError
+-
+ try:
+     import urlparse
+ except ImportError:
+     import urllib.parse as urlparse
+ 
+-try:
+-    import grass.script as gs
+-except ImportError:
+-    # During compilation GRASS GIS
+-    gs = None
+-
+-HEADERS = {
+-    "User-Agent": "Mozilla/5.0",
+-}
+-HTTP_STATUS_CODES = list(http.HTTPStatus)
+-
+ if sys.version_info[0] == 2:
+     PY2 = True
+ else:
+@@ -65,24 +46,6 @@ if not PY2:
+     unicode = str
+ 
+ 
+-grass_version = os.getenv("VERSION_NUMBER", "unknown")
+-trunk_url = ""
+-addons_url = ""
+-if grass_version != "unknown":
+-    major, minor, patch = grass_version.split(".")
+-    grass_git_branch = "releasebranch_{major}_{minor}".format(
+-        major=major,
+-        minor=minor,
+-    )
+-    base_url = "https://github.com/OSGeo";
+-    trunk_url = "{base_url}/grass/tree/{branch}/".format(
+-        base_url=base_url, branch=grass_git_branch
+-    )
+-    addons_url = "{base_url}/grass-addons/tree/grass{major}/".format(
+-        base_url=base_url, major=major
+-    )
+-
+-
+ def _get_encoding():
+     encoding = locale.getdefaultlocale()[1]
+     if not encoding:
+@@ -105,151 +68,6 @@ def decode(bytes_):
+     return unicode(bytes_)
+ 
+ 
+-def urlopen(url, *args, **kwargs):
+-    """Wrapper around urlopen. Same function as 'urlopen', but with the
+-    ability to define headers.
+-    """
+-    request = urlrequest.Request(url, headers=HEADERS)
+-    return urlrequest.urlopen(request, *args, **kwargs)
+-
+-
+-def set_proxy():
+-    """Set proxy"""
+-    proxy = os.getenv("GRASS_PROXY")
+-    if proxy:
+-        proxies = {}
+-        for ptype, purl in (p.split("=") for p in proxy.split(",")):
+-            proxies[ptype] = purl
+-        urlrequest.install_opener(
+-            urlrequest.build_opener(urlrequest.ProxyHandler(proxies))
+-        )
+-
+-
+-set_proxy()
+-
+-
+-def download_git_commit(url, response_format, *args, **kwargs):
+-    """Download module/addon last commit from GitHub API
+-
+-    :param str url: url address
+-    :param str response_format: content type
+-
+-    :return urllib.request.urlopen or None response: response object or
+-                                                     None
+-    """
+-    try:
+-        response = urlopen(url, *args, **kwargs)
+-        if not response.code == 200:
+-            index = HTTP_STATUS_CODES.index(response.code)
+-            desc = HTTP_STATUS_CODES[index].description
+-            gs.fatal(
+-                _(
+-                    "Download commit from <{url}>, return status code "
+-                    "{code}, {desc}".format(
+-                        url=url,
+-                        code=response.code,
+-                        desc=desc,
+-                    ),
+-                ),
+-            )
+-        if response_format not in response.getheader("Content-Type"):
+-            gs.fatal(
+-                _(
+-                    "Wrong downloaded commit file format. "
+-                    "Check url <{url}>. Allowed file format is "
+-                    "{response_format}.".format(
+-                        url=url,
+-                        response_format=response_format,
+-                    ),
+-                ),
+-            )
+-        return response
+-    except HTTPError as err:
+-        gs.warning(
+-            _(
+-                "The download of the commit from the GitHub API "
+-                "server wasn't successful, <{}>. Commit and commit "
+-                "date will not be included in the <{}> addon html manual "
+-                "page.".format(err.msg, pgm)
+-            ),
+-        )
+-    except URLError:
+-        gs.warning(
+-            _(
+-                "Download file from <{url}>, failed. Check internet "
+-                "connection. Commit and commit date will not be included "
+-                "in the <{pgm}> addon manual page.".format(url=url, pgm=pgm)
+-            ),
+-        )
+-
+-
+-def get_last_git_commit(src_dir, is_addon, addon_path):
+-    """Get last module/addon git commit
+-
+-    :param str src_dir: module/addon source dir
+-    :param bool is_addon: True if it is addon
+-    :param str addon_path: addon path
+-
+-    :return dict git_log: dict with key commit and date, if not
+-                          possible download commit from GitHub API server
+-                          values of keys have "unknown" string
+-    """
+-    unknown = "unknown"
+-    git_log = {"commit": unknown, "date": unknown}
+-    datetime_format = "%A %b %d %H:%M:%S %Y"  # e.g. Sun Jan 16 23:09:35 2022
+-    if is_addon:
+-        grass_addons_url = (
+-            
"https://api.github.com/repos/osgeo/grass-addons/commits?path={path}";
+-            "&page=1&per_page=1&sha=grass{major}".format(
+-                path=addon_path,
+-                major=major,
+-            )
+-        )  # sha=git_branch_name
+-    else:
+-        core_module_path = os.path.join(
+-            *(set(src_dir.split(os.path.sep)) ^ 
set(topdir.split(os.path.sep)))
+-        )
+-        grass_modules_url = (
+-            "https://api.github.com/repos/osgeo/grass/commits?path={path}";
+-            "&page=1&per_page=1&sha={branch}".format(
+-                branch=grass_git_branch,
+-                path=core_module_path,
+-            )
+-        )  # sha=git_branch_name
+-
+-    if shutil.which("git"):
+-        if os.path.exists(src_dir):
+-            git_log["date"] = time.ctime(os.path.getmtime(src_dir))
+-        stdout, stderr = subprocess.Popen(
+-            args=["git", "log", "-1", src_dir],
+-            stdout=subprocess.PIPE,
+-            stderr=subprocess.PIPE,
+-        ).communicate()
+-        stdout = decode(stdout)
+-        stderr = decode(stderr)
+-
+-        if stderr and "fatal: not a git repository" in stderr:
+-            response = download_git_commit(
+-                url=grass_addons_url if is_addon else grass_modules_url,
+-                response_format="application/json",
+-            )
+-            if response:
+-                commit = json.loads(response.read())
+-                if commit:
+-                    git_log["commit"] = commit[0]["sha"]
+-                    git_log["date"] = datetime.strptime(
+-                        commit[0]["commit"]["author"]["date"],
+-                        "%Y-%m-%dT%H:%M:%SZ",
+-                    ).strftime(datetime_format)
+-        else:
+-            if stdout:
+-                commit = stdout.splitlines()
+-                git_log["commit"] = commit[0].split(" ")[-1]
+-                commit_date = commit[2].lstrip("Date:").strip()
+-                git_log["date"] = commit_date.rsplit(" ", 1)[0]
+-    return git_log
+-
+-
+ html_page_footer_pages_path = (
+     os.getenv("HTML_PAGE_FOOTER_PAGES_PATH")
+     if os.getenv("HTML_PAGE_FOOTER_PAGES_PATH")
+@@ -261,6 +79,14 @@ pgm = sys.argv[1]
+ src_file = "%s.html" % pgm
+ tmp_file = "%s.tmp.html" % pgm
+ 
++grass_version = os.getenv("VERSION_NUMBER", "unknown")
++trunk_url = ""
++addons_url = ""
++if grass_version != "unknown":
++    major, minor, patch = grass_version.split(".")
++    trunk_url = 
f"https://github.com/OSGeo/grass/tree/releasebranch_{major}_{minor}/";
++    addons_url = f"https://github.com/OSGeo/grass-addons/tree/grass{major}/";
++
+ header_base = """<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 
Transitional//EN">
+ <html>
+ <head>
+@@ -295,9 +121,6 @@ sourcecode = string.Template(
+   <a href="${URL_SOURCE}">${PGM} source code</a>
+   (<a href="${URL_LOG}">history</a>)
+ </p>
+-<p>
+-  ${DATE_TAG}
+-</p>
+ """
+ )
+ 
+@@ -624,7 +447,6 @@ else:
+     source_url = addons_url
+     pgmdir = os.path.sep.join(curdir.split(os.path.sep)[-3:])
+ url_source = ""
+-addon_path = None
+ if os.getenv("SOURCE_URL", ""):
+     addon_path = get_addon_path()
+     if addon_path:
+@@ -655,23 +477,11 @@ if index_name:
+     else:
+         url_log = url_source.replace(tree, commits)
+ 
+-    git_commit = get_last_git_commit(
+-        src_dir=curdir,
+-        addon_path=addon_path if addon_path else None,
+-        is_addon=True if addon_path else False,
+-    )
+-    if git_commit["commit"] == "unknown":
+-        date_tag = "Accessed: {date}".format(date=git_commit["date"])
+-    else:
+-        date_tag = "Latest change: {date} in commit: {commit}".format(
+-            date=git_commit["date"], commit=git_commit["commit"]
+-        )
+     sys.stdout.write(
+         sourcecode.substitute(
+             URL_SOURCE=url_source,
+             PGM=pgm,
+             URL_LOG=url_log,
+-            DATE_TAG=date_tag,
+         )
+     )
+     sys.stdout.write(

diff --git a/sci-geosciences/grass/grass-8.0.0_rc2.ebuild 
b/sci-geosciences/grass/grass-8.0.0.ebuild
similarity index 99%
rename from sci-geosciences/grass/grass-8.0.0_rc2.ebuild
rename to sci-geosciences/grass/grass-8.0.0.ebuild
index 1a9dc30646ec..598e8b0ea52d 100644
--- a/sci-geosciences/grass/grass-8.0.0_rc2.ebuild
+++ b/sci-geosciences/grass/grass-8.0.0.ebuild
@@ -85,6 +85,7 @@ S="${WORKDIR}/${MY_P}"
 PATCHES=(
        # bug 746590
        "${FILESDIR}/${PN}-flock.patch"
+       "${FILESDIR}/${PN}-${PV}-mkhtml.patch"
 )
 
 pkg_setup() {

Reply via email to