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

Make failing for Tk-8.6.4-foss-2015b-no-X11.eb #2261

Closed
nathanhaigh opened this issue Jan 5, 2016 · 20 comments
Closed

Make failing for Tk-8.6.4-foss-2015b-no-X11.eb #2261

nathanhaigh opened this issue Jan 5, 2016 · 20 comments
Milestone

Comments

@nathanhaigh
Copy link
Contributor

Trying to install this (a Python dependency) and I get errors from make like this:

In file included from /mnt/bioinf-7/easybuild/build/Tk/8.6.4/foss-2015b-no-X11/tk8.6.4/unix/../generic/tkPort.h:21:0,
                 from /mnt/bioinf-7/easybuild/build/Tk/8.6.4/foss-2015b-no-X11/tk8.6.4/unix/../generic/tkInt.h:19,
                 from /mnt/bioinf-7/easybuild/build/Tk/8.6.4/foss-2015b-no-X11/tk8.6.4/unix/../generic/tkStubLib.c:14:
/mnt/bioinf-7/easybuild/build/Tk/8.6.4/foss-2015b-no-X11/tk8.6.4/unix/../generic/tk.h:96:25: fatal error: X11/Xlib.h: No such file or directory
 #   include <X11/Xlib.h>
                         ^
compilation terminated.
make: *** [tkStubLib.o] Error 1
make: *** Waiting for unfinished jobs....
In file included from /mnt/bioinf-7/easybuild/build/Tk/8.6.4/foss-2015b-no-X11/tk8.6.4/unix/../generic/tkPort.h:21:0,
                 from /mnt/bioinf-7/easybuild/build/Tk/8.6.4/foss-2015b-no-X11/tk8.6.4/unix/../generic/tkInt.h:19,
                 from /mnt/bioinf-7/easybuild/build/Tk/8.6.4/foss-2015b-no-X11/tk8.6.4/unix/../generic/tk3d.c:14:
/mnt/bioinf-7/easybuild/build/Tk/8.6.4/foss-2015b-no-X11/tk8.6.4/unix/../generic/tk.h:96:25: fatal error: X11/Xlib.h: No such file or directory
 #   include <X11/Xlib.h>
                         ^

I assumed that since this is for no-X11 then then I should get an error-free build. Am I missing something? For someone who know this stuff better than me, the following link may help: http://wiki.tcl.tk/1843.

Does it require a dependency adding for supplying these headers or should the ones supplied by Tk in the xlib/X11/ subdirectory.

@boegel
Copy link
Member

boegel commented Jan 6, 2016

The intention is indeed that this Tk build doesn't require X11 headers, which is why we specify --without-x as a configure option, but it apparently still those.

This is a known issue (to me), and I thought there was an open issue for this already, but I couldn't find it... I think @verdurin ran into this too?

@boegel
Copy link
Member

boegel commented Jan 9, 2016

@nathanhaigh: it looks like including libX11 as a build dependency for Tk may work, it's basically the same as option 2 suggested at http://wiki.tcl.tk/1843. That sounds easier than it is though, because the recent libX11 easyconfigs include Python as a dependency.. :-)

I'm puzzled why the X11 headers are required at all, when Tk is being configured using --without-x...

One option there is to contact http://wiki.tcl.tk/82 (i.e. CL linked from the other page), and ask him why this happens.

@boegel boegel added this to the v2.6.0 milestone Jan 9, 2016
@nathanhaigh
Copy link
Contributor Author

@boegel I was in touch with some Tk folks on irc. No one really seemed to know what --without-x was supposed to do other than potentially mess things up! I'll get in touch with CL via the page you linked to.

I tried a couple of things:

  1. point ./configure to %(builddir)s/%(namelower)s%(version)s/xlib.
    • This picked up the X11/Xlib.h but then other header files were required and not provided by Tk
    • In addition, Tk states that these file should not be used for these purposes. They are meant for non-*UNIX systems.
  2. Add libX11 as a dependency
    • This forms a circular dependency which EB gets caught up in: Tk -> libX11 -> Python -> Tk
  3. Installing my OS's libx11-dev to get the X11 header files.
    • This worked 😃

Although I got Tk installed by using my OS's libx11-dev, what is still not clear is what effect, if any the --without-x has on the build.

@nathanhaigh
Copy link
Contributor Author

Just done some investigation of builds using --without-x and --with-x on my system which has libx11-dev package installed.

There is no difference (via md5 checksums) in the files residing under EB's software directory. So it doesn't appear to have any effect anyway.

@rjeschmi
Copy link
Contributor

It does feel like we need to fix the base python to remove Tk support and somehow remove this circular unresolvable dep.

For the libX11 PR it still depends on Python which sends us into this hole.

@rjeschmi
Copy link
Contributor

I resolved this by removing the Tk dep from Python. I don't think it is useful without X11 anyway and we can probably build it as a separate extension if it is needed

@hajgato
Copy link
Collaborator

hajgato commented Feb 25, 2016

@rjeschmi I am working on a Pythonless libX11.... See #2549

@hajgato
Copy link
Collaborator

hajgato commented Feb 25, 2016

@rjeschmi ignore my comment ;) its too morning for me...

@boegel
Copy link
Member

boegel commented Feb 25, 2016

@rjeschmi: Python without Tk dep is crippled, see #2102

@boegel
Copy link
Member

boegel commented Mar 15, 2016

We now have libX11 easyconfigs that do not include a Python dependency anymore, so we can potentially solve this by adding libX11 as a (build) dep for Tk.

I'm not sure that's an ideal situation though, it should still be possible to build Tk without X11 support?

Any idea if that makes sense at all @nathanhaigh?

cc @verdurin

@verdurin
Copy link
Member

Just a note that this still happens with 2.7.0.

@verdurin
Copy link
Member

Just bumped into this one again, on a cloud-based cluster.

Would be nice to fix it for 2.8.0.

@boegel
Copy link
Member

boegel commented Apr 26, 2016

@verdurin The only proper way to fix this, without relying on the OS, is to include libX11 as a dependency for Tk, which only works for the more recent toolchains where we got rid of the Python (build) dependency...

@verdurin
Copy link
Member

I'm trying this with foss-2016a, but I'm coming up against this error (minimal-toolchains is on):

eb r/RELION/RELION-1.4-foss-2016a.eb --robot=./ -d
== temporary log file in case of crash /tmp/eb-sIbdUg/easybuild-R91m96.log
== resolving dependencies ...
ERROR: Failed to process easyconfig /camp/home.new/huffmaa/src/github/easybuild-easyconfigs/easybuild/easyconfigs/t/Tk/Tk-8.6.4-GCC-4.9.3-2.25-no-X11.eb: No easyconfig for {'external_module_metadata': {}, 'full_mod_name': None, 'build_only': True, 'versionsuffix': '', 'external_module': False, 'dummy': False, 'toolchain': None, 'name': 'libX11', 'short_mod_name': None, 'version': '1.6.3', 'hidden': False} that matches toolchain hierarchy generated by {'version': '4.9.3-2.25', 'name': 'GCC'}

whereas I've just built that module:

ml show libX11
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   /camp/apps/eb.new/modules/all/libX11/1.6.3-GCC-4.9.3-2.25:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
whatis("Description: X11 client-side library - Homepage: http://www.freedesktop.org/wiki/Software/xlibs ")
conflict("libX11")
load("libxcb/1.11.1-GCC-4.9.3-2.25")
prepend_path("CPATH","/camp/apps/eb.new/software/libX11/1.6.3-GCC-4.9.3-2.25/include")
prepend_path("LD_LIBRARY_PATH","/camp/apps/eb.new/software/libX11/1.6.3-GCC-4.9.3-2.25/lib")
prepend_path("LIBRARY_PATH","/camp/apps/eb.new/software/libX11/1.6.3-GCC-4.9.3-2.25/lib")
prepend_path("MANPATH","/camp/apps/eb.new/software/libX11/1.6.3-GCC-4.9.3-2.25/share/man")
prepend_path("PKG_CONFIG_PATH","/camp/apps/eb.new/software/libX11/1.6.3-GCC-4.9.3-2.25/lib/pkgconfig")
setenv("EBROOTLIBX11","/camp/apps/eb.new/software/libX11/1.6.3-GCC-4.9.3-2.25")
setenv("EBVERSIONLIBX11","1.6.3")
setenv("EBDEVELLIBX11","/camp/apps/eb.new/software/libX11/1.6.3-GCC-4.9.3-2.25/easybuild/libX11-1.6.3-GCC-4.9.3-2.25-easybuild-devel")
help([[ X11 client-side library - Homepage: http://www.freedesktop.org/wiki/Software/xlibs

]])

I've applied the framework patch in framework PR 1795 and it still fails.

@verdurin
Copy link
Member

verdurin commented Jul 7, 2016

@boegel - it's very much based on that one:

easyblock = 'ConfigureMake'

name = 'Tk'
version = '8.6.4'
libx11 = 'libX11'
libxver = '1.6.3'
versionsuffix = '-%s-%s' % (libx11, libxver)

homepage = 'http://www.tcl.tk/'
description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building
 a graphical user interface (GUI) in many different programming languages."""

toolchain = {'name': 'foss', 'version': '2016a'}

source_urls = ["http://prdownloads.sourceforge.net/tcl"]
sources = ['%(namelower)s%(version)s-src.tar.gz']

patches = ['Tk-%(version)s_different-prefix-with-tcl.patch']

builddependencies = [
    ('xextproto', '7.3.0'),
    ('xproto', '7.0.28'),
]

dependencies = [
    ('Tcl', version),
    (libx11, libxver),
    ('libXt', '1.1.5'),
    ('libXext', '1.3.3'),
    ('libXft', '2.3.2'),
]

configopts = '--disable-xss --enable-threads --with-tcl=$EBROOTTCL/lib CFLAGS="-I$EBROOTTCL/include"'

start_dir = 'unix'

moduleclass = 'vis'

wpoely86 added a commit to wpoely86/easybuild-easyconfigs that referenced this issue Sep 2, 2016
To build Tk, you need an X11 stack. All current python easyconfig need
X11 to build. Follow up in
easybuilders#2261
@boegel boegel modified the milestones: 3.0, v2.9.0 Sep 19, 2016
@boegel boegel modified the milestones: 3.0, 3.1 Nov 14, 2016
@boegel boegel modified the milestones: 3.1.0, 3.2.0 Feb 1, 2017
@boegel boegel modified the milestones: 3.2.0, 3.3.0 May 2, 2017
@nortex
Copy link

nortex commented May 9, 2017

Hi,

I was able to successfully install Tk-8.6.4-foss-2015b-no-X11.eb only after installing an additional: libX11/1.6.3-foss-2015b and libX11/1.6.3-foss-2015b module.

In Tk module as a dependency i manually added to load: libX11/1.6.3-foss-2015b and libX11/1.6.3-foss-2015b modules.

@boegel boegel modified the milestones: 3.3.0, 3.4.0 Jun 25, 2017
@boegel
Copy link
Member

boegel commented Sep 6, 2017

@verdurin This can be closed now we include X11 as a dep for Tk in more recent easyconfigs?

@boegel boegel modified the milestones: 3.x, 3.4.0 Sep 6, 2017
@boegel boegel modified the milestones: 3.x, 4.x Feb 20, 2020
@Micket
Copy link
Contributor

Micket commented Mar 22, 2024

Yes it can.

@Micket Micket closed this as completed Mar 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants