easybuild-easyblocks icon indicating copy to clipboard operation
easybuild-easyblocks copied to clipboard

errors while building QScintilla (2.13.0)

Open jedokaplan opened this issue 4 years ago • 2 comments
trafficstars

I am cracking my head over getting a newer version (2.13.0) of QScintilla installed. QScintilla has its own EasyBlock specifically for this package qscintilla.py and I guess something in the build doesn’t work with the newest version. The differences between my easyblock qscintilla.py and the standard version are the following:

73c73
<         srcdir = os.path.join(self.cfg['start_dir'], 'src')
---
>         srcdir = os.path.join(self.cfg['start_dir'], 'Qt4Qt5')
147,148d146
<                 
<             run_cmd("cp pyproject-qt5.toml pyproject.toml")
150c148
<             run_cmd("python project.py %s" % ' '.join(cfgopts))
---
>             run_cmd("python configure.py %s" % ' '.join(cfgopts))
  • src replaces Qt4Qt5 because the latter directory does not exist.
  • project.py replaces configure.py because the latter does not exist.
  • to get project.py to work, I had to add the cp pyproject-qt5.toml pyproject.toml, following the QScintilla build instructions here (section on Python bindings, bottom of page).

As can be seen in the extract of the build log below, the build fails with a make: *** No targets specified and no makefile found.

== 2021-08-04 16:47:42,026 filetools.py:1775 INFO Creating directory /home/public/easybuild/software/QScintilla/2.13.0-GCCcore-10.2.0-Python-3.8.6/share/sip/PyQt5 (parents: True, set_gid: False, sticky: False)
== 2021-08-04 16:47:42,291 run.py:233 INFO running cmd: python -c 'import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(plat_specific=False, prefix="/tmp/"))' 
== 2021-08-04 16:47:42,795 run.py:233 INFO running cmd: cp pyproject-qt5.toml pyproject.toml 
== 2021-08-04 16:47:42,813 run.py:233 INFO running cmd: python project.py --destdir /home/public/easybuild/software/QScintilla/2.13.0-GCCcore-10.2.0-Python-3.8.6/lib/python3.8/site-packages/PyQt5 --qsci-sipdir /home/public/easybuild/software/QScintilla/2.13.0-GCCcore-10.2.0-Python-3.8.6/share/sip/PyQt5 --qsci-incdir /home/public/easybuild/software/QScintilla/2.13.0-GCCcore-10.2.0-Python-3.8.6/include --qsci-libdir /home/public/easybuild/software/QScintilla/2.13.0-GCCcore-10.2.0-Python-3.8.6/lib --pyqt-sipdir /home/public/easybuild/software/PyQt5/5.15.4-GCCcore-10.2.0/share/sip/PyQt5 --apidir /home/public/easybuild/software/QScintilla/2.13.0-GCCcore-10.2.0-Python-3.8.6/qsci/api/python --no-stubs --no-dist-info --pyqt=PyQt5 
== 2021-08-04 16:47:43,801 configuremake.py:338 INFO Building target ''
== 2021-08-04 16:47:43,802 run.py:233 INFO running cmd: export CPATH=$EBROOTQT5/include/QtWidgets:$EBROOTQT5/include/QtPrintSupport:$CPATH &&  make  -j 96  CXXFLAGS="$CXXFLAGS \$(DEFINES)"  
== 2021-08-04 16:47:43,855 build_log.py:169 ERROR EasyBuild crashed with an error (at easybuild/software/EasyBuild/4.4.1/lib/python3.6/site-packages/easybuild/base/exceptions.py:124 in __init__): cmd "export CPATH=$EBROOTQT5/include/QtWidgets:$EBROOTQT5/include/QtPrintSupport:$CPATH &&  make  -j 96  CXXFLAGS="$CXXFLAGS \$(DEFINES)" " exited with exit code 2 and output:
make: *** No targets specified and no makefile found.  Stop.
 (at easybuild/software/EasyBuild/4.4.1/lib/python3.6/site-packages/easybuild/tools/run.py:577 in parse_cmd_output)

jedokaplan avatar Aug 04 '21 08:08 jedokaplan

After further investigation it seems that the current easybuild for PyQt5 is not compatible with this earlier version of QScintilla. I think it may require both updating PyQt5 and then QScintilla.

jedokaplan avatar Aug 09 '21 11:08 jedokaplan

Update: I was finally able to build QScintilla-2.11.6-GCCcore-10.2.0-Python-3.8.6.eb against PyQt5-5.15.4-GCCcore-10.2.0-Python-3.8.6.eb using a very old version of sip (4.19.25) and the .eb copied and modified from PyQt5-5.12.1-GCCcore-10.2.0-Python-3.8.6.eb.

It also required modifying the qscintilla.py easyblock with the first change noted above Qt4Qt5 --> src

This is a klugy solution that doesn't use the most up-to-date versions of any of this software.

jedokaplan avatar Aug 11 '21 09:08 jedokaplan