Nettle Fail to Build

package
pyplot
pkg
linux

#1

Hi all,

I recently downloaded a 64-bit binary of Julia into a Linux cluster at my school to run some computation heavy simulations. When I ran Pkg.build( ), I received the following errors for Nettle:

===============================[ ERROR: Nettle ]================================

LoadError: UndefVarError: dlext not defined
while loading /home/noahguzman/.julia/v0.5/Nettle/deps/build.jl, in expression starting on line 39

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

These failures to build properly seem to cause, or be related to, problems for other packages. For example, when trying to build Cairo using Pkg.build(“Cairo”), it seems to build fine but I get a warning:

INFO: Building Cairo
WARNING: BinDeps.shlib_ext is deprecated.
likely near /home/noahguzman/.julia/v0.5/Cairo/deps/build.jl:112

Based on other issues which have been filed, it seems that this deprecation may be responsible for some of the errors. I attempted the solution suggested in this pull request, but, I could not seem to find the sysinfo.jl script and

locate -c sysinfo.jl

returned zero matches. Another interesting and possibly related error is when I try to load the PyPlot backend for plots with

using Plots
pyplot( )

I get

WARNING: No working GUI backend found for matplotlib
WARNING: Couldn't initialize pyplot.  (might need to install it?)

despite having added and built PyPlot, Plots, and PyCall without any errors. This is becoming really frustrating, as I have researched for the last couple days trying to determine the cause of these errors so that I could fix them without having to come here, but nothing has worked. Any help in this matter is greatly appreciated.


#2

Homebrew is for mac…


#3

For some reason that didn’t even occur to me. A bit of an oversight on my part. Not sure why it’s included in the Linux binary distributions. That still leaves the other problems though.


#4

What does Pkg.status() say?


#5

Here is the print out for Pkg.status( ):

8 required packages:
 - BinDeps                       0.6.0
 - Cairo                         0.3.0
 - HDF5                          0.8.1
 - Homebrew                      0.5.7
 - Juno                          0.2.7
 - Nettle                        0.3.0
 - Plots                         0.11.4
 - PyPlot                        2.3.2
27 additional packages:
 - Blosc                         0.2.1
 - ColorTypes                    0.5.1
 - Colors                        0.7.3
 - Compat                        0.26.0
 - Conda                         0.5.3
 - DataStructures                0.5.3
 - FixedPointNumbers             0.3.8
 - FixedSizeArrays               0.2.5
 - Graphics                      0.2.0
 - Hiccup                        0.1.1
 - JSON                          0.12.0
 - LaTeXStrings                  0.2.1
 - MacroTools                    0.3.7
 - Measures                      0.1.0
 - Media                         0.2.7
 - NaNMath                       0.2.5
 - Pkg25.jl                      0.0.0-             master (unregistered)
 - PlotThemes                    0.1.4
 - PlotUtils                     0.4.1
 - PyCall                        1.12.0
 - RecipesBase                   0.1.0
 - Reexport                      0.0.3
 - SHA                           0.3.3
 - Showoff                       0.1.1
 - SpecialFunctions              0.1.1
 - StatsBase                     0.16.0
 - URIParser                     0.1.8

And in case it is relevant, here is my version info:

Julia Version 0.5.2
Commit f4c6c9d (2017-05-06 16:34 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Xeon(R) CPU           E5450  @ 3.00GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Penryn)
  LAPACK: libopenblas64_
  LIBM: libopenlibm
  LLVM: libLLVM-3.7.1 (ORCJIT, penryn)

#6

Also, I ran a Pkg.test( ) to see if any other errors came up, and there were a few errors:

Cairo:

signal (6): Aborted
while loading /home/noahguzman/.julia/v0.5/Cairo/samples/sample_operators.jl, in expression starting on line 65
gsignal at /lib64/libc.so.6 (unknown line)
abort at /lib64/libc.so.6 (unknown line)
unknown function (ip: 0x3d5a42b60d)
__assert_fail at /lib64/libc.so.6 (unknown line)

================================[ ERROR: Cairo ]================================

failed process: Process(`/home/noahguzman/julia/bin/julia -Cx86-64 -J/home/noahguzman/
julia/lib/julia/sys.so --compile=yes --depwarn=yes --check-bounds=yes --code-coverage=none 
--color=yes --compilecache=yes /home/noahguzman/.julia/v0.5/Cairo/test/runtests.jl`, 
ProcessSignaled(6)) [0]

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

Colors:

HDF5-DIAG: Error detected in HDF5 (1.10.0-patch1) thread 0:
  #000: /home/noahguzman/.julia/v0.5/HDF5/deps/src/hdf5-1.10.0-patch1/src/H5F.c line 579 in H5Fopen(): unable to open file
    major: File accessibilty
    minor: Unable to open file
  #001: /home/noahguzman/.julia/v0.5/HDF5/deps/src/hdf5-1.10.0-patch1/src/H5Fint.c line 1168 in H5F_open(): unable to lock the file or initialize file structure
    major: File accessibilty
    minor: Unable to open file
  #002: /home/noahguzman/.julia/v0.5/HDF5/deps/src/hdf5-1.10.0-patch1/src/H5FD.c line 1821 in H5FD_lock(): driver lock request failed
    major: Virtual File Layer
    minor: Can't update object
  #003: /home/noahguzman/.julia/v0.5/HDF5/deps/src/hdf5-1.10.0-patch1/src/H5FDsec2.c line 939 in H5FD_sec2_lock(): unable to flock file, errno = 5, error message = 'Input/output error'
    major: File accessibilty
    minor: Bad file ID accessed
ERROR: LoadError: LoadError: Error opening file /home/noahguzman/.julia/v0.5/Colors/test/test_conversions.jld
 in h5f_open(::String, ::UInt8, ::Int64) at /home/noahguzman/.julia/v0.5/HDF5/src/HDF5.jl:2089
 in #jldopen#9(::Bool, ::Bool, ::Bool, ::Function, ::String, ::Bool, ::Bool, ::Bool, ::Bool, ::Bool) at /home/noahguzman/.julia/v0.5/JLD/src/JLD.jl:221
 in (::JLD.#kw##jldopen)(::Array{Any,1}, ::JLD.#jldopen, ::String, ::Bool, ::Bool, ::Bool, ::Bool, ::Bool) at ./<missing>:0
 in #jldopen#10(::Bool, ::Bool, ::Bool, ::Function, ::String, ::String) at /home/noahguzman/.julia/v0.5/JLD/src/JLD.jl:248
 in jldopen(::String) at /home/noahguzman/.julia/v0.5/JLD/src/JLD.jl:248
 in #jldopen#11(::Array{Any,1}, ::Function, ::##3#4, ::String, ::Vararg{String,N}) at /home/noahguzman/.julia/v0.5/JLD/src/JLD.jl:258
 in jldopen(::Function, ::String) at /home/noahguzman/.julia/v0.5/JLD/src/JLD.jl:258
 in include_from_node1(::String) at ./loading.jl:488 (repeats 2 times)
 in process_options(::Base.JLOptions) at ./client.jl:265
 in _start() at ./client.jl:321
while loading /home/noahguzman/.julia/v0.5/Colors/test/conversion.jl, in expression starting on line 222
while loading /home/noahguzman/.julia/v0.5/Colors/test/runtests.jl, in expression starting on line 2
===============================[ ERROR: Colors ]================================

failed process: Process(`/home/noahguzman/julia/bin/julia -Cx86-64 -J/home/noahguzman/julia/lib/julia/
sys.so --compile=yes --depwarn=yes --check-bounds=yes --code-coverage=none --color=yes --compilecache
=yes /home/noahguzman/.julia/v0.5/Colors/test/runtests.jl`, ProcessExited(1)) [1]

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

HDF5:

HDF5-DIAG: Error detected in HDF5 (1.10.0-patch1) thread 0:
  #000: /home/noahguzman/.julia/v0.5/HDF5/deps/src/hdf5-1.10.0-patch1/src/H5F.c line 579 in H5Fopen(): unable to open file
    major: File accessibilty
    minor: Unable to open file
  #001: /home/noahguzman/.julia/v0.5/HDF5/deps/src/hdf5-1.10.0-patch1/src/H5Fint.c line 1168 in H5F_open(): unable to lock the file or initialize file structure
    major: File accessibilty
    minor: Unable to open file
  #002: /home/noahguzman/.julia/v0.5/HDF5/deps/src/hdf5-1.10.0-patch1/src/H5FD.c line 1821 in H5FD_lock(): driver lock request failed
    major: Virtual File Layer
    minor: Can't update object
  #003: /home/noahguzman/.julia/v0.5/HDF5/deps/src/hdf5-1.10.0-patch1/src/H5FDsec2.c line 939 in H5FD_sec2_lock(): unable to flock file, errno = 5, error message = 'Input/output error'
    major: File accessibilty
    minor: Bad file ID accessed
plain: Error During Test
  Got an exception of type ErrorException outside of a @test
  Error opening file /home/noahguzman/.julia/v0.5/HDF5/test/compound.h5
   in h5f_open(::String, ::UInt8, ::Int64) at /home/noahguzman/.julia/v0.5/HDF5/src/HDF5.jl:2089
   in h5open(::String, ::Bool, ::Bool, ::Bool, ::Bool, ::Bool, ::HDF5.HDF5Properties, ::HDF5.HDF5Properties) at /home/noahguzman/.julia/v0.5/HDF5/src/HDF5.jl:556
   in h5open(::String, ::String) at /home/noahguzman/.julia/v0.5/HDF5/src/HDF5.jl:585
   in h5read(::String, ::String) at /home/noahguzman/.julia/v0.5/HDF5/src/HDF5.jl:621
   in macro expansion; at /home/noahguzman/.julia/v0.5/HDF5/test/plain.jl:308 [inlined]
   in macro expansion; at ./test.jl:674 [inlined]
   in anonymous at ./<missing>:?
   in include_from_node1(::String) at ./loading.jl:488 (repeats 2 times)
   in process_options(::Base.JLOptions) at ./client.jl:265
   in _start() at ./client.jl:321
Test Summary: | Pass  Error  Total
  plain       |  109      1    110
ERROR: LoadError: LoadError: Some tests did not pass: 109 passed, 0 failed, 1 errored, 0 broken.
 in finish(::Base.Test.DefaultTestSet) at ./test.jl:498
 in macro expansion; at ./test.jl:681 [inlined]
 in anonymous at ./<missing>:?
 in include_from_node1(::String) at ./loading.jl:488 (repeats 2 times)
 in process_options(::Base.JLOptions) at ./client.jl:265
 in _start() at ./client.jl:321
while loading /home/noahguzman/.julia/v0.5/HDF5/test/plain.jl, in expression starting on line 6
while loading /home/noahguzman/.julia/v0.5/HDF5/test/runtests.jl, in expression starting on line 4
================================[ ERROR: HDF5 ]=================================

failed process: Process(`/home/noahguzman/julia/bin/julia -Cx86-64 -J/home/noahguzman/julia/lib/julia/
sys.so --compile=yes --depwarn=yes --check-bounds=yes --code-coverage=none --color=yes --compilecache
=yes /home/noahguzman/.julia/v0.5/HDF5/test/runtests.jl`, ProcessExited(1)) [1]

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

And with Nettle:

ERROR: LoadError: libnettle not properly installed. Please run Pkg.build("Nettle")
 in error(::String) at ./error.jl:21
 in include_from_node1(::String) at ./loading.jl:488
 in macro expansion; at ./none:2 [inlined]
 in anonymous at ./<missing>:?
 in eval(::Module, ::Any) at ./boot.jl:234
 in process_options(::Base.JLOptions) at ./client.jl:242
 in _start() at ./client.jl:321
while loading /home/noahguzman/.julia/v0.5/Nettle/src/Nettle.jl, in expression starting on line 11
ERROR: LoadError: Failed to precompile Nettle to /home/noahguzman/.julia/lib/v0.5/Nettle.ji.
 in compilecache(::String) at ./loading.jl:593
 in require(::Symbol) at ./loading.jl:422
 in include_from_node1(::String) at ./loading.jl:488
 in process_options(::Base.JLOptions) at ./client.jl:265
 in _start() at ./client.jl:321
while loading /home/noahguzman/.julia/v0.5/Nettle/test/runtests.jl, in expression starting on line 1
===============================[ ERROR: Nettle ]================================

failed process: Process(`/home/noahguzman/julia/bin/julia -Cx86-64 -J/home/noahguzman/julia/lib/julia/
sys.so --compile=yes --depwarn=yes --check-bounds=yes --code-coverage=none --color=yes --compilecache
=yes /home/noahguzman/.julia/v0.5/Nettle/test/runtests.jl`, ProcessExited(1)) [1]

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

The error which indicates a problem accessing libnettle cannot be fixed by building Nettle since Pkg.build("Nettle") throws errors. This problem may be related to this pull request, but I do not have sudo privileges on this system. Should I just ask the sysadmin to install Nettle for me?


#7

dlext now needs to be changed to Libdl.dlext (as of v0.5.x)


#8

I made the necessary changes to Cairo’s build.jl script and Cairo built without any errors. But when I ran another Pkg.test("Cairo") I received the same errors as before. Do I also need to make changes to Cairo’s test script?


#9

I don’t think, that changes on testing in Cairo will solve your installation problems (but i might biased, because i worked on cairo testing some time…).

  • what is actually your linux/distribution version?
  • the signal6 in libc might be an indicator that the program tries to mix libraries of different versions
  • my recommendation is then: solve the dependencies by (manual) installation (your sysadmin) and use BinDeps only to find/access the libraries

Could you please post the output of

using BinDeps
BinDeps.debug("Cairo")

and similar. btw: the deprecation warnings are annoying, but are now known to reduce functionality


#10

Thank you for your insight, here is the information you requested:

Linux Version: 64-bit Rocks/RHEL

Output of the BinDeps.debug("Cairo"):

The package declares 1 dependencies.
 - Library Group "cairo" (satisfied by BinDeps.SystemPaths, BinDeps.SystemPaths)
     - Library "png" (not applicable to this system)
     - Library "pixman" (not applicable to this system)
     - Library "ffi" (not applicable to this system)
     - Library "gettext"
        - Satisfied by:
          - System Paths at /usr/lib64/preloadable_libintl.so
          - System Paths at /usr/lib64/libgettextpo.so
        - Providers:
          - BinDeps.AptGet package gettext (can't provide)
          - BinDeps.Yum package gettext-libs (can't provide)
          - BinDeps.Zypper package gettext (can't provide)
          - Autotools Build
     - Library "gobject"
        - Satisfied by:
          - System Paths at /usr/lib64/libgobject-2.0.so
        - Providers:
          - BinDeps.AptGet package libglib2.0-0 (can't provide)
          - BinDeps.Yum package glib2 (can't provide)
          - BinDeps.Zypper package libglib-2.0 (can't provide)
          - Autotools Build
     - Library "freetype" (not applicable to this system)
     - Library "fontconfig" (not applicable to this system)
     - Library "cairo"
        - Satisfied by:
          - System Paths at /usr/lib64/libcairo.so
        - Providers:
          - BinDeps.AptGet package libcairo2 (can't provide)
          - BinDeps.Yum package cairo (can't provide)
          - BinDeps.Zypper package libcairo (can't provide)
          - Autotools Build
     - Library "pango"
        - Satisfied by:
          - System Paths at /usr/lib64/libpango-1.0.so
        - Providers:
          - BinDeps.AptGet package libpango1.0-0 (can't provide)
          - BinDeps.Yum package pango (can't provide)
          - BinDeps.Zypper package libpango-1.0 (can't provide)
          - Autotools Build
     - Library "pangocairo"
        - Satisfied by:
          - System Paths at /usr/lib64/libpangocairo-1.0.so
        - Providers:
          - BinDeps.AptGet package libpango1.0-0 (can't provide)
          - BinDeps.Yum package pango (can't provide)
          - BinDeps.Zypper package libpango-1.0 (can't provide)
          - Autotools Build
     - Library "zlib" (not applicable to this system)

I will do my best to get the sysadmin to install the dependencies, though he’s not too happy with me at the moment since I’m one of only two scientists at my school who codes in Julia. Thank you for your help, I appreciate it.


#11

Hmm. So Cairo dependencies are satisfied with system libs. How and what did you install as julia binaries?


#12

I downloaded the most recent 64-bit (X86) generic Linux binary distribution directly from the Julia website. I used scp to download the distribution directory from my personal machine into my user environment in the Linux cluster. I then altered my bash_profile to allow me to access Julia directly from bin/julia in the Julia directory.


#13

Can you please start a new session, do Pkg.build(“Cairo”) and Pkg.test(“Cairo”) and post the full output?


#14
julia> Pkg.build("Cairo")
INFO: Building Cairo

julia> Pkg.test("Cairo")
INFO: Computing test dependencies for Cairo...
INFO: Installing BaseTestNext v0.2.2
INFO: Testing Cairo
Test Summary:   | Pass  Total
  Image Surface   |    7      7
Test Summary:   | Pass  Total
  Conversions     |    4      4
Test Summary:   | Pass  Total
  TexLexer        |    1      1
julia: cairo-misc.c:380: _cairo_operator_bounded_by_source: Assertion `NOT_REACHED' failed.

signal (6): Aborted
while loading /home/noahguzman/.julia/v0.5/Cairo/samples/sample_operators.jl, in expression starting on line 65
gsignal at /lib64/libc.so.6 (unknown line)
abort at /lib64/libc.so.6 (unknown line)
unknown function (ip: 0x3d5a42b60d)
__assert_fail at /lib64/libc.so.6 (unknown line)
unknown function (ip: 0x3d6301b1f7)
unknown function (ip: 0x3d6302e806)
unknown function (ip: 0x3d6302b10e)
unknown function (ip: 0x3d63013ca9)
cairo_fill_preserve at /usr/lib64/libcairo.so (unknown line)
cairo_fill at /usr/lib64/libcairo.so (unknown line)
operator_demo at /home/noahguzman/.julia/v0.5/Cairo/samples/sample_operators.jl:52
macro expansion; at /home/noahguzman/.julia/v0.5/Cairo/samples/sample_operators.jl:68 [inlined]
anonymous at ./<missing> (unknown line)
unknown function (ip: 0x7fb7d8d5a56f)
jl_call_method_internal at /home/centos/buildbot/slave/package_tarball64/build/src/julia_internal.h:211 [inlined]
jl_toplevel_eval_flex at /home/centos/buildbot/slave/package_tarball64/build/src/toplevel.c:569
jl_parse_eval_all at /home/centos/buildbot/slave/package_tarball64/build/src/ast.c:717
jl_load at /home/centos/buildbot/slave/package_tarball64/build/src/toplevel.c:596
jl_load_ at /home/centos/buildbot/slave/package_tarball64/build/src/toplevel.c:605
include_from_node1 at ./loading.jl:488
unknown function (ip: 0x7fb9db65110b)
jl_call_method_internal at /home/centos/buildbot/slave/package_tarball64/build/src/julia_internal.h:211 [inlined]
jl_apply_generic at /home/centos/buildbot/slave/package_tarball64/build/src/gf.c:1950
macro expansion; at /home/noahguzman/.julia/v0.5/Cairo/test/runtests.jl:84 [inlined]
macro expansion; at ./test.jl:674 [inlined]
anonymous at ./<missing> (unknown line)
unknown function (ip: 0x7fb7d8d4af9f)
jl_call_method_internal at /home/centos/buildbot/slave/package_tarball64/build/src/julia_internal.h:211 [inlined]
jl_toplevel_eval_flex at /home/centos/buildbot/slave/package_tarball64/build/src/toplevel.c:569
jl_parse_eval_all at /home/centos/buildbot/slave/package_tarball64/build/src/ast.c:717
jl_load at /home/centos/buildbot/slave/package_tarball64/build/src/toplevel.c:596
jl_load_ at /home/centos/buildbot/slave/package_tarball64/build/src/toplevel.c:605
include_from_node1 at ./loading.jl:488
unknown function (ip: 0x7fb9db65110b)
jl_call_method_internal at /home/centos/buildbot/slave/package_tarball64/build/src/julia_internal.h:211 [inlined]
jl_apply_generic at /home/centos/buildbot/slave/package_tarball64/build/src/gf.c:1950
process_options at ./client.jl:265
_start at ./client.jl:321
unknown function (ip: 0x7fb9db676398)
jl_call_method_internal at /home/centos/buildbot/slave/package_tarball64/build/src/julia_internal.h:211 [inlined]
jl_apply_generic at /home/centos/buildbot/slave/package_tarball64/build/src/gf.c:1950
unknown function (ip: 0x401b3d)
unknown function (ip: 0x401446)
__libc_start_main at /lib64/libc.so.6 (unknown line)
unknown function (ip: 0x40148c)
Allocations: 4312535 (Pool: 4311488; Big: 1047); GC: 5
================================[ ERROR: Cairo ]================================

failed process: Process(`/home/noahguzman/julia/bin/julia -Cx86-64 -J/home/noahguzman/julia/lib/julia/
sys.so --compile=yes --depwarn=yes --check-bounds=yes --code-coverage=none --color=yes --compilecache
=yes /home/noahguzman/.julia/v0.5/Cairo/test/runtests.jl`, ProcessSignaled(6)) [0]

================================================================================
INFO: Removing BaseTestNext v0.2.2
ERROR: Cairo had test errors
 in #test#61(::Bool, ::Function, ::Array{AbstractString,1}) at ./pkg/entry.jl:748
 in (::Base.Pkg.Entry.#kw##test)(::Array{Any,1}, ::Base.Pkg.Entry.#test, ::Array{AbstractString,1}) at ./<missing>:0
 in (::Base.Pkg.Dir.##2#3{Array{Any,1},Base.Pkg.Entry.#test,Tuple{Array{AbstractString,1}}})() at ./pkg/dir.jl:31
 in cd(::Base.Pkg.Dir.##2#3{Array{Any,1},Base.Pkg.Entry.#test,Tuple{Array{AbstractString,1}}}, ::String) at ./file.jl:59
 in #cd#1(::Array{Any,1}, ::Function, ::Function, ::Array{AbstractString,1}, ::Vararg{Array{AbstractString,1},N}) at ./pkg/dir.jl:31
 in (::Base.Pkg.Dir.#kw##cd)(::Array{Any,1}, ::Base.Pkg.Dir.#cd, ::Function, ::Array{AbstractString,1}, ::Vararg{Array{AbstractString,1},N}) at ./<missing>:0
 in #test#3(::Bool, ::Function, ::String, ::Vararg{String,N}) at ./pkg/pkg.jl:258
 in test(::String, ::Vararg{String,N}) at ./pkg/pkg.jl:258

#15

There is a small, but not vanishing possibility, that you run into cairo version problem. Some of the operators that are tested/used in sample_operators are only available in versions >= 1.10. But someone (i don’t remember) asked for library version check >= 1.8 (because of some build infrastructure etc.) and i never had the chance to test actually a libcairo that old.

a) try to get the information, what libcairo is installed in your system.
b) you could patch runtests.jl https://github.com/JuliaGraphics/Cairo.jl/blob/master/test/runtests.jl#L80#L82 and add sample_operators.jl to the files to exclude list.


#16

It looks like the libcairo version is 2.1 based on these files I found in my lib64 directory:

libcairo.so.2.10800.8
libcairomm-1.0.so.1.3.0

I’m currently working on figuring out the tests you suggested in b) in your last comment. Thank you for your help so far, I appreciate your time.


#17

No. Unfortunately the 10800 tells us rather it’s a 1.08.0 (released sept 2008)


#18

I patched runtests.jl as you suggested, but when I ran Pkg.test("Cairo") I got the same errors as before. I will attempt to update libcairo and see if that helps. Thank you so much for your time.


#19

Try Pkg.checkout("Cairo"). This should be fixed in current git, but isn’t yet tagged:

https://github.com/JuliaGraphics/Cairo.jl/pull/188

(edit: linked to the wrong PR)


#20

Got this interesting error when I attempted Pkg.checkout("Cairo"):

ERROR: Cairo is dirty, bailing
 in (::Base.Pkg.Entry.##18#20{String,String,Bool,Bool})(::Base.LibGit2.GitRepo) at ./pkg/entry.jl:228
 in transact(::Base.Pkg.Entry.##18#20{String,String,Bool,Bool}, ::Base.LibGit2.GitRepo) at ./libgit2/libgit2.jl:521
 in with(::Base.Pkg.Entry.##17#19{String,String,Bool,Bool}, ::Base.LibGit2.GitRepo) at ./libgit2/types.jl:701
 in checkout(::String, ::String, ::Bool, ::Bool) at ./pkg/entry.jl:226
 in (::Base.Pkg.Dir.##2#3{Array{Any,1},Base.Pkg.Entry.#checkout,Tuple{String,String,Bool,Bool}})() at ./pkg/dir.jl:31
 in cd(::Base.Pkg.Dir.##2#3{Array{Any,1},Base.Pkg.Entry.#checkout,Tuple{String,String,Bool,Bool}}, ::String) at ./file.jl:59
 in #cd#1(::Array{Any,1}, ::Function, ::Function, ::String, ::Vararg{Any,N}) at ./pkg/dir.jl:31
 in checkout(::String) at ./pkg/pkg.jl:170