-
-
Notifications
You must be signed in to change notification settings - Fork 416
Description
Describe the bug
GRASS GIS source code compilation process fails if MySQL DB backend support is enabled.
To reproduce
- Compile GRASS GIS source code with enabled MySQL DB support
- Under Gentoo GNU/Linux distribution
USE="mysql" emerge -v =sci-geosciences/grass-9999 - 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.
grass/db/drivers/mysql/grass-mysql.html
Lines 29 to 38 in 231bb51
| <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>