commit: dbee876ddee6b184f5b21b877d3de462fefe6202 Author: Mario Haustein <mario.haustein <AT> hrz <DOT> tu-chemnitz <DOT> de> AuthorDate: Mon May 23 10:04:35 2022 +0000 Commit: Conrad Kostecki <conikost <AT> gentoo <DOT> org> CommitDate: Mon May 23 11:59:23 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dbee876d
sci-geosciences/grass: remove old 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/25605 Signed-off-by: Conrad Kostecki <conikost <AT> gentoo.org> sci-geosciences/grass/Manifest | 1 - .../grass/files/grass-8.0.0-mkhtml.patch | 316 --------------------- sci-geosciences/grass/grass-8.0.0.ebuild | 274 ------------------ sci-geosciences/grass/grass-8.0.1.ebuild | 281 ------------------ 4 files changed, 872 deletions(-) diff --git a/sci-geosciences/grass/Manifest b/sci-geosciences/grass/Manifest index a0364e0e9b96..cd51431391bf 100644 --- a/sci-geosciences/grass/Manifest +++ b/sci-geosciences/grass/Manifest @@ -1,5 +1,4 @@ DIST grass-7.8.6.tar.gz 66331264 BLAKE2B bb5a3387f74bc30b7ce3230765cecdc7e61ded8693d888e6cefc2d491022496409d053e170293fcef392a9c9178a41b070767e1ce90b57b448b189c9e16a2761 SHA512 6db10a20e5b70f0ce9a8fc4d6966c6f078453a88fa8f0577c1c62303f9787fa3bf3369e281f7ca864280c865e3ef022c51d8805d1258ea04da45e63cd34c27df DIST grass-7.8.7.tar.gz 66333084 BLAKE2B 809daed6992838cd89b7f913c92bb588db05ae933c6e05b6fbd1add135dc36238260222f338df023c402b411b6c0338a56e06268d1fb736e9d9f6779bc2e4c42 SHA512 8c890b34a64c3a52285a8d99e2a2ec61b41de0258ae5b70d1876499988a9a8229925b82f4595df6b5cf21b77ecc8529feb75f765d4e92f324a734293dffc7303 -DIST grass-8.0.0.tar.gz 64944539 BLAKE2B 61ea667321599026f2514333e5fe47313d232236a818458939e968d80ed88a511ddc29e2b51edd082bd246b614a0b121b10c09e9059ae31fd5c211e9844d89b1 SHA512 29bd57fb017937b0f3ad105790449704c6f12b56ffe79091f0aceed328f4da5293dd42cc3071158aad5386a51309f35a4f0b9bbd57221431e705f51880c2ce42 DIST grass-8.0.1.tar.gz 64928098 BLAKE2B 81512a5e95727202705a06e11dcb243a393bb6d7b5756957ffe055c867aa18933d84a31ed5e006e8c25bff558aa3ce5acab9e90660b1537192ffa11c92cdf4cc SHA512 ec0e52bfe22179c85bb7119980ab4d5b96278fc85d1fc5c0781aea1864e89a302677fa008b65f0398d564fd6ffc05cee0da1b81affb489c89c20a3bd9f6b089f DIST grass-8.0.2.tar.gz 65665825 BLAKE2B 496dab376b38c74d2206096f8b1bf848888c328be3871fca5173042d7368f5c40cdbb6908ed69ec9f2c0669b25f3cfc50b4105f9bb7b375c379b9cc518ebfe8f SHA512 fc6f45f2b6ac2507c70a14baa931d5c66f0b115c914081d24c95f40afa6c266a718026df895f7a182ea837c6abf70da15b09dccba39eedd6a71ba7b6301edf7c diff --git a/sci-geosciences/grass/files/grass-8.0.0-mkhtml.patch b/sci-geosciences/grass/files/grass-8.0.0-mkhtml.patch deleted file mode 100644 index 1eb46012f6a4..000000000000 --- a/sci-geosciences/grass/files/grass-8.0.0-mkhtml.patch +++ /dev/null @@ -1,316 +0,0 @@ ---- 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=<value>,ftp=<value>"</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.ebuild b/sci-geosciences/grass/grass-8.0.0.ebuild deleted file mode 100644 index 3ab8a5a5d5f2..000000000000 --- a/sci-geosciences/grass/grass-8.0.0.ebuild +++ /dev/null @@ -1,274 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{8..10} ) -PYTHON_REQ_USE="sqlite" # bug 572440 -WX_GTK_VER="3.0-gtk3" - -inherit autotools desktop python-single-r1 toolchain-funcs wxwidgets xdg - -MY_PM=${PN}$(ver_cut 1-2 ${PV}) -MY_PM=${MY_PM/.} -MY_P=${P/_rc/RC} - -DESCRIPTION="A free GIS with raster and vector functionality, as well as 3D vizualization" -HOMEPAGE="https://grass.osgeo.org/" -SRC_URI="https://grass.osgeo.org/${MY_PM}/source/${MY_P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0/8.0" -if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="amd64 ~ppc x86" -fi -IUSE="blas cxx fftw geos lapack liblas mysql netcdf nls odbc opencl opengl openmp png postgres readline sqlite threads tiff truetype X zstd" -REQUIRED_USE=" - ${PYTHON_REQUIRED_USE} - opengl? ( X )" - -RDEPEND=" - ${PYTHON_DEPS} - >=app-admin/eselect-1.2 - $(python_gen_cond_dep ' - dev-python/numpy[${PYTHON_USEDEP}] - dev-python/six[${PYTHON_USEDEP}] - ') - sci-libs/gdal:= - sys-libs/gdbm:= - sys-libs/ncurses:0= - sci-libs/proj:= - sci-libs/xdrfile - sys-libs/zlib - media-libs/libglvnd - media-libs/glu - blas? ( - virtual/cblas[eselect-ldso(+)] - virtual/blas[eselect-ldso(+)] - ) - fftw? ( sci-libs/fftw:3.0= ) - geos? ( sci-libs/geos:= ) - lapack? ( virtual/lapack[eselect-ldso(+)] ) - liblas? ( sci-geosciences/liblas ) - mysql? ( dev-db/mysql-connector-c:= ) - netcdf? ( sci-libs/netcdf:= ) - odbc? ( dev-db/unixODBC ) - opencl? ( virtual/opencl ) - opengl? ( virtual/opengl ) - png? ( media-libs/libpng:0= ) - postgres? ( >=dev-db/postgresql-8.4:= ) - readline? ( sys-libs/readline:0= ) - sqlite? ( dev-db/sqlite:3 ) - tiff? ( media-libs/tiff:0= ) - truetype? ( media-libs/freetype:2 ) - X? ( - dev-python/wxpython:4.0 - x11-libs/cairo[X,opengl?] - x11-libs/libICE - x11-libs/libSM - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXt - ) - zstd? ( app-arch/zstd )" -DEPEND="${RDEPEND} - X? ( x11-base/xorg-proto )" -BDEPEND=" - sys-devel/bison - sys-devel/flex - sys-devel/gettext - virtual/pkgconfig - X? ( dev-lang/swig )" - -S="${WORKDIR}/${MY_P}" - -PATCHES=( - # bug 746590 - "${FILESDIR}/${PN}-flock.patch" - "${FILESDIR}/${PN}-${PV}-mkhtml.patch" -) - -pkg_setup() { - if use lapack; then - local mylapack=$(eselect lapack show) - if [[ -z "${mylapack/.*reference.*/}" ]] && \ - [[ -z "${mylapack/.*atlas.*/}" ]]; then - ewarn "You need to set lapack to atlas or reference. Do:" - ewarn " eselect lapack set <impl>" - ewarn "where <impl> is atlas, threaded-atlas or reference" - die "setup failed" - fi - fi - - if use blas; then - local myblas=$(eselect blas show) - if [[ -z "${myblas/.*reference.*/}" ]] && \ - [[ -z "${myblas/.*atlas.*/}" ]]; then - ewarn "You need to set blas to atlas or reference. Do:" - ewarn " eselect blas set <impl>" - ewarn "where <impl> is atlas, threaded-atlas or reference" - die "setup failed" - fi - fi - - python-single-r1_pkg_setup -} - -src_prepare() { - # Fix unversioned python calls - sed -e "s:=python3:=${EPYTHON}:" -i "${S}/lib/init/grass.sh" || die - sed -e "s:= python3:= ${EPYTHON}:" -i "${S}/include/Make/Platform.make.in" || die - - default - eautoreconf - - ebegin "Fixing python shebangs" - python_fix_shebang -q "${S}" - eend $? - - # For testsuite, see https://bugs.gentoo.org/show_bug.cgi?id=500580#c3 - shopt -s nullglob - local mesa_cards=$(echo -n /dev/dri/card* /dev/dri/render* | sed 's/ /:/g') - if test -n "${mesa_cards}"; then - addpredict "${mesa_cards}" - fi - local ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g') - if test -n "${ati_cards}"; then - addpredict "${ati_cards}" - fi - shopt -u nullglob - addpredict /dev/nvidiactl -} - -src_configure() { - if use X; then - local WX_BUILD=yes - setup-wxwidgets - fi - - addwrite /dev/dri/renderD128 - - local myeconfargs=( - --enable-shared - --disable-w11 - --without-opendwg - --with-regex - --with-gdal="${EPREFIX}"/usr/bin/gdal-config - --with-proj-includes="${EPREFIX}"/usr/include/proj - --with-proj-libs="${EPREFIX}"/usr/$(get_libdir) - --with-proj-share="${EPREFIX}"/usr/share/proj/ - $(use_with cxx) - $(use_with tiff) - $(use_with png) - $(use_with postgres) - $(use_with mysql) - $(use_with mysql mysql-includes "${EPREFIX}"/usr/include/mysql) - $(use_with sqlite) - $(use_with opengl) - $(use_with odbc) - $(use_with fftw) - $(use_with blas) - $(use_with lapack) - $(use_with X cairo) - $(use_with truetype freetype) - $(use_with truetype freetype-includes "${EPREFIX}"/usr/include/freetype2) - $(use_with nls) - $(use_with readline) - $(use_with threads pthread) - $(use_with openmp) - $(use_with opencl) - $(use_with liblas liblas "${EPREFIX}"/usr/bin/liblas-config) - $(use_with X wxwidgets "${WX_CONFIG}") - $(use_with netcdf netcdf "${EPREFIX}"/usr/bin/nc-config) - $(use_with geos geos "${EPREFIX}"/usr/bin/geos-config) - $(use_with X x) - $(use_with zstd) - ) - econf "${myeconfargs[@]}" -} - -src_compile() { - # we don't want to link against embedded mysql lib - emake CC="$(tc-getCC)" MYSQLDLIB="" -} - -src_install() { - emake DESTDIR="${ED}" \ - INST_DIR=/usr/$(get_libdir)/${MY_PM} \ - prefix=/usr/ BINDIR=/usr/bin \ - install - - pushd "${ED}"/usr/$(get_libdir)/${MY_PM} >/dev/null || die - - local HTML_DOCS=( docs/html/. ) - einstalldocs - - # translations - if use nls; then - insinto /usr/share/locale - doins -r locale/. - fi - - popd >/dev/null || die - - # link libraries in the ~standard~ place - local f file - for f in "${ED}"/usr/$(get_libdir)/${MY_PM}/lib/*; do - file="${f##*/}" - dosym ${MY_PM}/lib/${file} /usr/$(get_libdir)/${file} - done - - # link headers in the ~standard~ place - dodir /usr/include/ - dosym ../$(get_libdir)/${MY_PM}/include/grass /usr/include/grass - - # fix paths in addons makefile includes - local scriptMakeDir="${ED}"/usr/$(get_libdir)/${MY_PM}/include/Make/ - for f in "${scriptMakeDir}"/*; do - file="${f##*/}" - echo sed -i "s|${ED}|/|g" "${scriptMakeDir}/${file}" || die - sed -i "s|${ED}|/|g" "${scriptMakeDir}/${file}" || die - done - - # get proper folder for grass path in script - local gisbase=/usr/$(get_libdir)/${MY_PM} - sed -e "s:GISBASE = os.path.normpath(\"${D}/usr/$(get_libdir)/${MY_PM}\"):\ -GISBASE = os.path.normpath(\"${gisbase}\"):" \ - -i "${ED}"/usr/bin/grass || die - - # get proper fonts path for fontcap - sed -i \ - -e "s|${ED}/usr/${MY_PM}|${EPREFIX}/usr/$(get_libdir)/${MY_PM}|" \ - "${ED}"${gisbase}/etc/fontcap || die - - # set proper python interpreter - sed -e "s:os.environ\[\"GRASS_PYTHON\"\] = \"python3\":\ -os.environ\[\"GRASS_PYTHON\"\] = \"${EPYTHON}\":" \ - -i "${ED}"/usr/bin/grass || die - - # set proper GISDBASE directory path in the demolocation .grassrc80 file - sed -e "s:GISDBASE\:.*$:GISDBASE\: ${gisbase}:" \ - -i "${ED}"${gisbase}/demolocation/.grassrc80 || die - - if use X; then - local GUI="-gui" - [[ ${WX_BUILD} == yes ]] && GUI="-wxpython" - make_desktop_entry "/usr/bin/grass ${GUI}" "${PN}" "${PN}-48x48" "Science;Education" - doicon -s 48 gui/icons/${PN}-48x48.png - fi - - # install .pc file so other apps know where to look for grass - insinto /usr/$(get_libdir)/pkgconfig/ - doins grass.pc - - # fix weird +x on tcl scripts - find "${ED}" -name "*.tcl" -exec chmod +r-x '{}' \; || die -} - -pkg_postinst() { - use X && xdg_pkg_postinst -} - -pkg_postrm() { - use X && xdg_pkg_postrm -} diff --git a/sci-geosciences/grass/grass-8.0.1.ebuild b/sci-geosciences/grass/grass-8.0.1.ebuild deleted file mode 100644 index f2a791cdcee7..000000000000 --- a/sci-geosciences/grass/grass-8.0.1.ebuild +++ /dev/null @@ -1,281 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{8..10} ) -PYTHON_REQ_USE="sqlite" # bug 572440 -WX_GTK_VER="3.0-gtk3" - -inherit autotools desktop python-single-r1 toolchain-funcs wxwidgets xdg - -DESCRIPTION="A free GIS with raster and vector functionality, as well as 3D vizualization" -HOMEPAGE="https://grass.osgeo.org/" - -LICENSE="GPL-2" -SLOT="0/8.0" - -GVERSION=${SLOT#*/} -MY_PM="${PN}${GVERSION}" -MY_PM="${MY_PM/.}" - -if [[ ${PV} =~ "9999" ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/OSGeo/grass.git" -else - MY_P="${P/_rc/RC}" - SRC_URI="https://grass.osgeo.org/${MY_PM}/source/${MY_P}.tar.gz" - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="amd64 ~ppc x86" - fi - - S="${WORKDIR}/${MY_P}" -fi - -IUSE="blas cxx fftw geos lapack liblas mysql netcdf nls odbc opencl opengl openmp png postgres readline sqlite threads tiff truetype X zstd" -REQUIRED_USE=" - ${PYTHON_REQUIRED_USE} - opengl? ( X )" - -RDEPEND=" - ${PYTHON_DEPS} - >=app-admin/eselect-1.2 - $(python_gen_cond_dep ' - dev-python/numpy[${PYTHON_USEDEP}] - dev-python/six[${PYTHON_USEDEP}] - ') - sci-libs/gdal:= - sys-libs/gdbm:= - sys-libs/ncurses:0= - sci-libs/proj:= - sci-libs/xdrfile - sys-libs/zlib - media-libs/libglvnd - media-libs/glu - blas? ( - virtual/cblas[eselect-ldso(+)] - virtual/blas[eselect-ldso(+)] - ) - fftw? ( sci-libs/fftw:3.0= ) - geos? ( sci-libs/geos:= ) - lapack? ( virtual/lapack[eselect-ldso(+)] ) - liblas? ( sci-geosciences/liblas ) - mysql? ( dev-db/mysql-connector-c:= ) - netcdf? ( sci-libs/netcdf:= ) - odbc? ( dev-db/unixODBC ) - opencl? ( virtual/opencl ) - opengl? ( virtual/opengl ) - png? ( media-libs/libpng:0= ) - postgres? ( >=dev-db/postgresql-8.4:= ) - readline? ( sys-libs/readline:0= ) - sqlite? ( dev-db/sqlite:3 ) - tiff? ( media-libs/tiff:0= ) - truetype? ( media-libs/freetype:2 ) - X? ( - dev-python/wxpython:4.0 - x11-libs/cairo[X,opengl?] - x11-libs/libICE - x11-libs/libSM - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXt - ) - zstd? ( app-arch/zstd )" -DEPEND="${RDEPEND} - X? ( x11-base/xorg-proto )" -BDEPEND=" - sys-devel/bison - sys-devel/flex - sys-devel/gettext - virtual/pkgconfig - X? ( dev-lang/swig )" - -PATCHES=( - # bug 746590 - "${FILESDIR}/${PN}-flock.patch" -) - -pkg_setup() { - if use lapack; then - local mylapack=$(eselect lapack show) - if [[ -z "${mylapack/.*reference.*/}" ]] && \ - [[ -z "${mylapack/.*atlas.*/}" ]]; then - ewarn "You need to set lapack to atlas or reference. Do:" - ewarn " eselect lapack set <impl>" - ewarn "where <impl> is atlas, threaded-atlas or reference" - die "setup failed" - fi - fi - - if use blas; then - local myblas=$(eselect blas show) - if [[ -z "${myblas/.*reference.*/}" ]] && \ - [[ -z "${myblas/.*atlas.*/}" ]]; then - ewarn "You need to set blas to atlas or reference. Do:" - ewarn " eselect blas set <impl>" - ewarn "where <impl> is atlas, threaded-atlas or reference" - die "setup failed" - fi - fi - - python-single-r1_pkg_setup -} - -src_prepare() { - # Fix unversioned python calls - sed -e "s:=python3:=${EPYTHON}:" -i "${S}/lib/init/grass.sh" || die - sed -e "s:= python3:= ${EPYTHON}:" -i "${S}/include/Make/Platform.make.in" || die - - default - eautoreconf - - ebegin "Fixing python shebangs" - python_fix_shebang -q "${S}" - eend $? - - # For testsuite, see https://bugs.gentoo.org/show_bug.cgi?id=500580#c3 - shopt -s nullglob - local mesa_cards=$(echo -n /dev/dri/card* /dev/dri/render* | sed 's/ /:/g') - if test -n "${mesa_cards}"; then - addpredict "${mesa_cards}" - fi - local ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g') - if test -n "${ati_cards}"; then - addpredict "${ati_cards}" - fi - shopt -u nullglob - addpredict /dev/nvidiactl -} - -src_configure() { - if use X; then - local WX_BUILD=yes - setup-wxwidgets - fi - - addwrite /dev/dri/renderD128 - - local myeconfargs=( - --enable-shared - --disable-w11 - --without-opendwg - --with-regex - --with-gdal="${EPREFIX}"/usr/bin/gdal-config - --with-proj-includes="${EPREFIX}"/usr/include/proj - --with-proj-libs="${EPREFIX}"/usr/$(get_libdir) - --with-proj-share="${EPREFIX}"/usr/share/proj/ - $(use_with cxx) - $(use_with tiff) - $(use_with png) - $(use_with postgres) - $(use_with mysql) - $(use_with mysql mysql-includes "${EPREFIX}"/usr/include/mysql) - $(use_with sqlite) - $(use_with opengl) - $(use_with odbc) - $(use_with fftw) - $(use_with blas) - $(use_with lapack) - $(use_with X cairo) - $(use_with truetype freetype) - $(use_with truetype freetype-includes "${EPREFIX}"/usr/include/freetype2) - $(use_with nls) - $(use_with readline) - $(use_with threads pthread) - $(use_with openmp) - $(use_with opencl) - $(use_with liblas liblas "${EPREFIX}"/usr/bin/liblas-config) - $(use_with X wxwidgets "${WX_CONFIG}") - $(use_with netcdf netcdf "${EPREFIX}"/usr/bin/nc-config) - $(use_with geos geos "${EPREFIX}"/usr/bin/geos-config) - $(use_with X x) - $(use_with zstd) - ) - econf "${myeconfargs[@]}" -} - -src_compile() { - # we don't want to link against embedded mysql lib - emake CC="$(tc-getCC)" MYSQLDLIB="" -} - -src_install() { - emake DESTDIR="${ED}" \ - INST_DIR=/usr/$(get_libdir)/${MY_PM} \ - prefix=/usr/ BINDIR=/usr/bin \ - install - - pushd "${ED}"/usr/$(get_libdir)/${MY_PM} >/dev/null || die - - local HTML_DOCS=( docs/html/. ) - einstalldocs - - # translations - if use nls; then - insinto /usr/share/locale - doins -r locale/. - fi - - popd >/dev/null || die - - # link libraries in the ~standard~ place - local f file - for f in "${ED}"/usr/$(get_libdir)/${MY_PM}/lib/*; do - file="${f##*/}" - dosym ${MY_PM}/lib/${file} /usr/$(get_libdir)/${file} - done - - # link headers in the ~standard~ place - dodir /usr/include/ - dosym ../$(get_libdir)/${MY_PM}/include/grass /usr/include/grass - - # fix paths in addons makefile includes - local scriptMakeDir="${ED}"/usr/$(get_libdir)/${MY_PM}/include/Make/ - for f in "${scriptMakeDir}"/*; do - file="${f##*/}" - echo sed -i "s|${ED}|/|g" "${scriptMakeDir}/${file}" || die - sed -i "s|${ED}|/|g" "${scriptMakeDir}/${file}" || die - done - - # get proper folder for grass path in script - local gisbase=/usr/$(get_libdir)/${MY_PM} - sed -e "s:GISBASE = os.path.normpath(\"${D}/usr/$(get_libdir)/${MY_PM}\"):\ -GISBASE = os.path.normpath(\"${gisbase}\"):" \ - -i "${ED}"/usr/bin/grass || die - - # get proper fonts path for fontcap - sed -i \ - -e "s|${ED}/usr/${MY_PM}|${EPREFIX}/usr/$(get_libdir)/${MY_PM}|" \ - "${ED}"${gisbase}/etc/fontcap || die - - # set proper python interpreter - sed -e "s:os.environ\[\"GRASS_PYTHON\"\] = \"python3\":\ -os.environ\[\"GRASS_PYTHON\"\] = \"${EPYTHON}\":" \ - -i "${ED}"/usr/bin/grass || die - - # set proper GISDBASE directory path in the demolocation .grassrc${GVERSION//.} file - sed -e "s:GISDBASE\:.*$:GISDBASE\: ${gisbase}:" \ - -i "${ED}"${gisbase}/demolocation/.grassrc${GVERSION//.} || die - - if use X; then - local GUI="-gui" - [[ ${WX_BUILD} == yes ]] && GUI="-wxpython" - make_desktop_entry "/usr/bin/grass ${GUI}" "${PN}" "${PN}-48x48" "Science;Education" - doicon -s 48 gui/icons/${PN}-48x48.png - fi - - # install .pc file so other apps know where to look for grass - insinto /usr/$(get_libdir)/pkgconfig/ - doins grass.pc - - # fix weird +x on tcl scripts - find "${ED}" -name "*.tcl" -exec chmod +r-x '{}' \; || die -} - -pkg_postinst() { - use X && xdg_pkg_postinst -} - -pkg_postrm() { - use X && xdg_pkg_postrm -}