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

Build fails on Travis CI #75

Closed
brian-j-smith opened this issue Jul 20, 2014 · 6 comments
Closed

Build fails on Travis CI #75

brian-j-smith opened this issue Jul 20, 2014 · 6 comments

Comments

@brian-j-smith
Copy link

We are working on using Tk.jl in the Mamba package to graphically show the progress of MCMC simulations. It works great on our local machines. However, testing of Mamba on Travis CI is failing to build the Tk.jl package. The build appears to start out okay...

INFO: Building Tk
INFO: Attempting to Create directory /home/travis/.julia/v0.3/Tk/deps/downloads
INFO: Downloading file http://prdownloads.sourceforge.net/tcl/tcl8.6.0-src.tar.gz
INFO: Done downloading file http://prdownloads.sourceforge.net/tcl/tcl8.6.0-src.tar.gz
INFO: Attempting to Create directory /home/travis/.julia/v0.3/Tk/deps/src
INFO: Attempting to Create directory /home/travis/.julia/v0.3/Tk/deps
INFO: Directory /home/travis/.julia/v0.3/Tk/deps already created
INFO: Attempting to Create directory /home/travis/.julia/v0.3/Tk/deps/src/tcl8.6.0
INFO: Attempting to Create directory /home/travis/.julia/v0.3/Tk/deps/builds/tcl
INFO: Changing Directory to /home/travis/.julia/v0.3/Tk/deps/builds/tcl

The tcl compile and installations proceed fine (1000+ lines of output omitted), until the following:

make[1]: Leaving directory `/home/travis/.julia/v0.3/Tk/deps/builds/tcl/pkgs/thread2.7.0'
Installing and cross-linking command (.n) docs to /home/travis/.julia/v0.3/Tk/deps/usr/man/mann/
Installing dependency tk8.6 via `sudo apt-get install tk8.6`:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package tk8.6 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'tk8.6' has no installation candidate
=================================[ ERROR: Tk ]==================================

failed process: Process(`sudo apt-get install tk8.6`, ProcessExited(100)) [100]
while loading /home/travis/.julia/v0.3/Tk/deps/build.jl, in expression starting on line 54

================================================================================

It looks like tcl is downloaded and installed from source, whereas an apt-get install is tried for tk. Any thoughts on how or whether Tk.jl can be built on Travis? Thanks.

@timholy
Copy link
Member

timholy commented Jul 20, 2014

I think the issue comes down to the fact that the build script calls for tk8.6, but on the Travis machines (Ubuntu 12.04) the package is 8.5. One could test this by submitting a pull request to Tk that changes the version to 8.5, and see whether it passes. If so, then one has to come up with a fix that works on both Travis and on machines that have 8.6 available.

@bdeonovic
Copy link
Contributor

Why is 8.6 required? I changed all instances of "8.6" in Tk's build script to 8.5 and it built Tk just fine on a fresh Ubuntu 12.04.

@timholy
Copy link
Member

timholy commented Aug 1, 2014

I don't think there's any fundamental reason; simply that, for the original author, for his/her system 8.6 was the right answer.

Usually the task of supporting multiple OSes/distros involves a gradual process of generalization, stemming from users who try it on their system and encounter failures. If you would be willing to improve the build script and contribute your changes, that would be a big help.

@bdeonovic
Copy link
Contributor

It looks like the problem is that the build script tries to install tk8.6 via apt-get, but that version of tk is not in the repository (8.5 is). Confusingly, there is also code to install tk8.6 from source.

The problem with the source install is that tk requires certain X11 headers, which might or might not be available on all systems.

You could include X11 as a dependency as well, but I don't know what this translates to for MacOSX or windows. Or perhaps we could just install tk as a binary rather than from source. I'm not that familiar with the BinDeps package to know what is involved in that.

@timholy
Copy link
Member

timholy commented Aug 2, 2014

I think a great solution would be to install 8.5 from apt-get if that's the right thing for your distro. I wouldn't personally tackle any harder solution than that.

@aviks
Copy link
Collaborator

aviks commented Feb 5, 2020

Fixed by #147. Will be better with #148

@aviks aviks closed this as completed Feb 5, 2020
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

4 participants