Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clean up installation of Tkinter #2509

Merged
merged 6 commits into from
Sep 1, 2021
Merged

Conversation

Flamefire
Copy link
Contributor

Tkinter adds a non-existing path easybuild/python to PYTHONPATH, which is a bug.

In the process I'v also done some cleanup:

  • Custom Python modules should be installed into libdir, aka site-packages especially to work with EBPYTHONPREFIXES and hence virtualenvs. Moved.
  • Do the setting of PYTHONPATH in EB_Python only if ebpythonprefixes is still active. the other var that was checked is set in the ctor so subclasses had no chance to change that. Fix the latter by doing it in prepare_step
  • Refactor get_tkinter_so_basename to explicitely ask for getting from our installdir or from python

@Flamefire
Copy link
Contributor Author

Test report by @Flamefire

Overview of tested easyconfigs (in order)

  • SUCCESS Tkinter-2.7.16-GCCcore-8.3.0.eb
  • SUCCESS Tkinter-2.7.18-GCCcore-9.3.0.eb
  • SUCCESS Tkinter-2.7.18-GCCcore-10.2.0.eb
  • SUCCESS Tkinter-3.7.2-GCCcore-8.2.0.eb
  • SUCCESS Tkinter-3.7.4-GCCcore-8.3.0.eb
  • SUCCESS Tkinter-3.8.2-GCCcore-9.3.0.eb
  • SUCCESS Tkinter-3.8.6-GCCcore-10.2.0.eb
  • SUCCESS gettext-0.21-GCCcore-10.3.0.eb
  • SUCCESS intltool-0.51.0-GCCcore-10.3.0.eb
  • SUCCESS hwloc-1.11.7-GCCcore-6.4.0.eb
  • SUCCESS OpenMPI-2.1.1-GCC-6.4.0-2.28.eb
  • SUCCESS gompi-2017b.eb
  • SUCCESS FFTW-3.3.6-gompi-2017b.eb
  • SUCCESS ScaLAPACK-2.0.2-gompi-2017b-OpenBLAS-0.2.20.eb
  • SUCCESS foss-2017b.eb
  • FAIL (build issue) Python-3.6.3-foss-2017b.eb (partial log available at https://gist.github.com/01a632bd32085f25ee1bb021ecedeb91)
  • SUCCESS Ninja-1.10.2-GCCcore-10.3.0.eb
  • SUCCESS freetype-2.8-GCCcore-6.4.0.eb
  • SUCCESS expat-2.2.4-GCCcore-6.4.0.eb
  • SUCCESS Perl-5.26.0-GCCcore-6.4.0.eb
  • SUCCESS Meson-0.58.0-GCCcore-10.3.0.eb
  • SUCCESS fontconfig-2.12.4-GCCcore-6.4.0.eb
  • SUCCESS XML-Parser-2.44_01-GCCcore-6.4.0-Perl-5.26.0.eb
  • SUCCESS intltool-0.51.0-GCCcore-6.4.0-Perl-5.26.0.eb
  • SUCCESS X11-20171023-GCCcore-6.4.0.eb
  • SUCCESS Tk-8.6.7-foss-2017b.eb
  • FAIL (build issue) Tkinter-3.6.3-foss-2017b-Python-3.6.3.eb (partial log available at https://gist.github.com/0bdee2b0685edb2e8442461f614aeab2)
  • SUCCESS gperf-3.1-GCCcore-10.3.0.eb
  • SUCCESS util-linux-2.36-GCCcore-10.3.0.eb
  • SUCCESS libpng-1.6.37-GCCcore-10.3.0.eb
  • SUCCESS freetype-2.10.4-GCCcore-10.3.0.eb
  • SUCCESS fontconfig-2.13.93-GCCcore-10.3.0.eb
  • SUCCESS X11-20210518-GCCcore-10.3.0.eb
  • SUCCESS Tk-8.6.11-GCCcore-10.3.0.eb
  • SUCCESS Tkinter-3.9.5-GCCcore-10.3.0.eb

Build succeeded for 33 out of 35 (9 easyconfigs in total)
taurusi5362.taurus.hrsk.tu-dresden.de - Linux RHEL 7.9, x86_64, Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz (haswell), Python 2.7.5
See https://gist.github.com/880c6a7c50ba21a75d7fbf74a37fd9b9 for a full test report.

@Flamefire
Copy link
Contributor Author

Test report by @Flamefire

Overview of tested easyconfigs (in order)

  • SUCCESS Tkinter-3.6.3-foss-2017b-Python-3.6.3.eb

Build succeeded for 1 out of 1 (1 easyconfigs in total)
taurusa7 - Linux centos linux 7.7.1908, x86_64, Intel(R) Xeon(R) CPU E5-2603 v4 @ 1.70GHz (broadwell), Python 2.7.5
See https://gist.github.com/c1886eaff68f72bfa0c033601630557e for a full test report.

@ocaisa
Copy link
Member

ocaisa commented Jul 19, 2021

Test report by @ocaisa

Overview of tested easyconfigs (in order)

  • SUCCESS Python-3.8.6-GCCcore-10.2.0.eb
  • SUCCESS Tkinter-3.8.6-GCCcore-10.2.0.eb

Build succeeded for 2 out of 2 (2 easyconfigs in total)
generoso - Linux centos linux 8.2.2004, x86_64, Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz, Python 3.6.8
See https://gist.github.com/e12f031c3d57baf7fbed40d71bf0c152 for a full test report.

@ocaisa
Copy link
Member

ocaisa commented Jul 19, 2021

Test report by @ocaisa

Overview of tested easyconfigs (in order)

  • SUCCESS Python-3.8.6-GCCcore-10.2.0.eb
  • SUCCESS Tkinter-3.8.6-GCCcore-10.2.0.eb

Build succeeded for 2 out of 2 (2 easyconfigs in total)
generoso - Linux centos linux 8.2.2004, x86_64, Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz, Python 3.6.8
See https://gist.github.com/76f1a31f2114f3e8f839b11f859e7ed7 for a full test report.

easybuild_subdir = log_path()
self.pythonpath = os.path.join(easybuild_subdir, 'python')
# Used for EBPYTHONPREFIXES handler script
self.pythonpath = os.path.join(log_path(), 'python')
Copy link
Contributor Author

@Flamefire Flamefire Jul 21, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ocaisa Setting this always here (instead of conditionally None) provides most of backwards compat. However there is a minor change especially with checking (now consistently) for self.cfg.get('ebpythonprefixes')
This allows derived easyblocks to overwrite this value if they need to instead of overwriting it in prepare_step

@Flamefire Flamefire closed this Jul 22, 2021
@Flamefire Flamefire reopened this Jul 22, 2021
@easybuilders easybuilders deleted a comment from boegelbot Aug 4, 2021
@boegel boegel added the bug fix label Aug 4, 2021
@boegel boegel added this to the next release (4.4.2?) milestone Aug 4, 2021
Copy link
Member

@boegel boegel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@boegel
Copy link
Member

boegel commented Sep 1, 2021

Test report by @boegel

Overview of tested easyconfigs (in order)

  • SUCCESS Tkinter-2.7.15-GCCcore-8.2.0.eb
  • SUCCESS Tkinter-2.7.18-GCCcore-10.2.0.eb
  • SUCCESS Tkinter-2.7.18-GCCcore-9.3.0.eb
  • SUCCESS Tkinter-3.6.6-foss-2018b-Python-3.6.6.eb
  • SUCCESS Tkinter-3.8.6-GCCcore-10.2.0.eb
  • SUCCESS Tkinter-3.9.5-GCCcore-10.3.0.eb

Build succeeded for 6 out of 6 (6 easyconfigs in total)
node3597.doduo.os - Linux RHEL 8.2, x86_64, AMD EPYC 7552 48-Core Processor (zen2), Python 3.6.8
See https://gist.github.com/781d2929b937531d0774c3cf6c1dea6c for a full test report.

@boegel boegel merged commit ab837f3 into easybuilders:develop Sep 1, 2021
@Flamefire Flamefire deleted the tkinter branch September 2, 2021 10:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants