Skip to content

[Bug] GRASS GIS source code compilation process fails if MySQL DB backend support is enabled #4777

@tmszi

Description

@tmszi

Describe the bug

GRASS GIS source code compilation process fails if MySQL DB backend support is enabled.

To reproduce

  1. Compile GRASS GIS source code with enabled MySQL DB support
  2. Under Gentoo GNU/Linux distribution USE="mysql" emerge -v =sci-geosciences/grass-9999
  3. See error
GRASS GIS 8.5.0dev 231bb51e5 compilation log
--------------------------------------------------
Started compilation: Thu Nov 28 07:16:33 AM CET 2024
--
Errors in:
/var/tmp/portage/sci-geosciences/grass-9999/work/grass-9999/db/drivers/mysql
/var/tmp/portage/sci-geosciences/grass-9999/work/grass-9999/man
--
In case of errors please change into the directory with error and run 'make'.
If you get multiple errors, you need to deal with them in the order they
appear in the error log. If you get an error building a library, you will
also get errors from anything which uses the library.
--
Finished compilation: Thu Nov 28 07:24:01 AM CET 2024
make: *** [Makefile:71: default] Error 1
 * ERROR: sci-geosciences/grass-9999::localrepo failed (compile phase):
 *   emake failed
 * 
 * If you need support, post the output of `emerge --info '=sci-geosciences/grass-9999::localrepo'`,
 * the complete build log and the output of `emerge -pqv '=sci-geosciences/grass-9999::localrepo'`.
 * The complete build log is located at '/var/tmp/portage/sci-geosciences/grass-9999/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sci-geosciences/grass-9999/temp/environment'.
 * Working directory: '/var/tmp/portage/sci-geosciences/grass-9999/work/grass-9999'
 * S: '/var/tmp/portage/sci-geosciences/grass-9999/work/grass-9999'

>>> Failed to emerge sci-geosciences/grass-9999, Log file:

>>>  '/var/tmp/portage/sci-geosciences/grass-9999/temp/build.log'

MySQL DB build man HTML error message from build.log file:

VERSION_NUMBER=8.5.0dev /var/tmp/portage/sci-geosciences/grass-9999/work/grass-9999/dist.x86_64-pc-linux-gnu/utils/g.html2man.py 
"/var/tmp/portage/sci-geosciences/grass-9999/work/grass-9999/dist.x86_64-pc-linux-gnu/docs/html/grass.html" 
"/var/tmp/portage/sci-geosciences/grass-9999/work/grass-9999/dist.x86_64-pc-linux-gnu/docs/man/man1/grass.1"
/var/tmp/portage/sci-geosciences/grass-9999/work/grass-9999/dist.x86_64-pc-linux-gnu/docs/html/grass-mysql.html:69:0: Error (IndexError('pop from empty list')): </ul>

grass-mysql.html:69:0: Error (IndexError('pop from empty list')): </ul>

Expected behavior

GRASS GIS source code compilation process should be successfull if MySQL DB backend support is enabled.

System description

  • Operating System: all (tested under Gentoo GNU/Linux)
  • GRASS GIS version: all (tested with GRASS GIS 8.5.0dev 231bb51)

Additional context

Problematic is nested <ul></ul> element inside parent <ul></ul> element inside MySQL DB driver backend man HTML page.

<ul>
<li> Database name - in case of connection from localhost</li>
<li> String of comma separated list of kye=value options.
Supported options are:</li>
<ul>
<li> dbname - database name</li>
<li> host - host name or IP address</li>
<li> port - server port number</li>
</ul>
</ul>

During compilation process, build process of MySQL DB driver backend man HTML page fails because HTMLParser() class instance doesn't find nested <ul> HTML element end </ul> element tag.

Expected nested <ul></ul> element tag position is nested position inside <li></li> element:

<ul>
    <li> Database name - in case of connection from localhost</li>
    <li> String of comma separated list of kye=value options.
         Supported options are:
        <ul>
            <li> dbname - database name</li>
            <li> host - host name or IP address</li>
            <li> port - server port number</li>
        </ul>
    </li>
</ul>

Metadata

Metadata

Assignees

Labels

HTMLRelated code is in HTMLbugSomething isn't working

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions