# Error building FFTW and SpecialFunctions on ElementaryOS

**URL:** https://discourse.julialang.org/t/error-building-fftw-and-specialfunctions-on-elementaryos/29021
**Category:** New to Julia
**Created:** [September 20, 2019, 10:58pm UTC](https://discourse.julialang.org/t/error-building-fftw-and-specialfunctions-on-elementaryos/29021 "2019-09-20T22:58:59Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![degleris1](https://avatars.discourse-cdn.com/v4/letter/d/7c8e57/32.png) [@degleris1](https://discourse.julialang.org/u/degleris1)
#### Post date: [September 20, 2019, 10:58pm UTC](https://discourse.julialang.org/t/error-building-fftw-and-specialfunctions-on-elementaryos/29021/1 "2019-09-20T22:58:59Z")

</div>

Does anyone have any insight into this error? This is on a clean Julia build (freshly installed 1.2.0).

```julia
(v1.2) pkg> add DSP
   ... # removed for brevity
  Building FFTW ────────────→ `~/.julia/packages/FFTW/MJ7kl/deps/build.log`
┌ Error: Error building `FFTW`: 
│ [ Info: Downloading https://github.com/JuliaBinaryWrappers/FFTW_jll.jl/releases/download/FFTW-v3.3.9+2/FFTW.v3.3.9.x86_64-linux-gnu.tar.gz to /home/anthony/.julia/packages/FFTW/MJ7kl/deps/usr/downloads/FFTW.v3.3.9.x86_64-linux-gnu.tar.gz...
│ ERROR: LoadError: LoadError: Could not download https://github.com/JuliaBinaryWrappers/FFTW_jll.jl/releases/download/FFTW-v3.3.9+2/FFTW.v3.3.9.x86_64-linux-gnu.tar.gz to /home/anthony/.julia/packages/FFTW/MJ7kl/deps/usr/downloads/FFTW.v3.3.9.x86_64-linux-gnu.tar.gz:
│ ErrorException("")
│ Stacktrace:
│ [1] error(::String) at ./error.jl:33
│ [2] #download#89(::Bool, ::typeof(BinaryProvider.download), ::String, ::String) at /home/anthony/.julia/packages/BinaryProvider/TcAwt/src/PlatformEngines.jl:498
│ [3] #download at ./none:0 [inlined]
│ [4] #download_verify#90(::Bool, ::Bool, ::Bool, ::typeof(download_verify), ::String, ::String, ::String) at /home/anthony/.julia/packages/BinaryProvider/TcAwt/src/PlatformEngines.jl:567
│ [5] #download_verify at ./tuple.jl:0 [inlined]
│ [6] #install#129(::Prefix, ::String, ::Bool, ::Bool, ::Bool, ::typeof(install), ::String, ::String) at /home/anthony/.julia/packages/BinaryProvider/TcAwt/src/Prefix.jl:314
│ [7] (::getfield(BinaryProvider, Symbol("#kw##install")))(::NamedTuple{(:prefix, :force, :verbose),Tuple{Prefix,Bool,Bool}}, ::typeof(install), ::String, ::String) at ./tuple.jl:0
│ [8] top-level scope at /home/anthony/.julia/packages/FFTW/MJ7kl/deps/build_fftw.jl:45
│ [9] include at ./boot.jl:328 [inlined]
│ [10] include_relative(::Module, ::String) at ./loading.jl:1094
│ [11] include(::Module, ::String) at ./Base.jl:31
│ [12] include(::String) at ./client.jl:431
│ [13] top-level scope at /home/anthony/.julia/packages/FFTW/MJ7kl/deps/build.jl:49
│ [14] include at ./boot.jl:328 [inlined]
│ [15] include_relative(::Module, ::String) at ./loading.jl:1094
│ [16] include(::Module, ::String) at ./Base.jl:31
│ [17] include(::String) at ./client.jl:431
│ [18] top-level scope at none:5
│ in expression starting at /home/anthony/.julia/packages/FFTW/MJ7kl/deps/build_fftw.jl:43
│ in expression starting at /home/anthony/.julia/packages/FFTW/MJ7kl/deps/build.jl:20
│ caused by [exception 1]
│ 
│ Stacktrace:
│ [1] error() at ./error.jl:42
│ [2] #download#89(::Bool, ::typeof(BinaryProvider.download), ::String, ::String) at /home/anthony/.julia/packages/BinaryProvider/TcAwt/src/PlatformEngines.jl:492
│ [3] #download at ./none:0 [inlined]
│ [4] #download_verify#90(::Bool, ::Bool, ::Bool, ::typeof(download_verify), ::String, ::String, ::String) at /home/anthony/.julia/packages/BinaryProvider/TcAwt/src/PlatformEngines.jl:567
│ [5] #download_verify at ./tuple.jl:0 [inlined]
│ [6] #install#129(::Prefix, ::String, ::Bool, ::Bool, ::Bool, ::typeof(install), ::String, ::String) at /home/anthony/.julia/packages/BinaryProvider/TcAwt/src/Prefix.jl:314
│ [7] (::getfield(BinaryProvider, Symbol("#kw##install")))(::NamedTuple{(:prefix, :force, :verbose),Tuple{Prefix,Bool,Bool}}, ::typeof(install), ::String, ::String) at ./tuple.jl:0
│ [8] top-level scope at /home/anthony/.julia/packages/FFTW/MJ7kl/deps/build_fftw.jl:45
│ [9] include at ./boot.jl:328 [inlined]
│ [10] include_relative(::Module, ::String) at ./loading.jl:1094
│ [11] include(::Module, ::String) at ./Base.jl:31
│ [12] include(::String) at ./client.jl:431
│ [13] top-level scope at /home/anthony/.julia/packages/FFTW/MJ7kl/deps/build.jl:49
│ [14] include at ./boot.jl:328 [inlined]
│ [15] include_relative(::Module, ::String) at ./loading.jl:1094
│ [16] include(::Module, ::String) at ./Base.jl:31
│ [17] include(::String) at ./client.jl:431
│ [18] top-level scope at none:5
│ [15:52:31] curl: symbol lookup error: /home/anthony/miniconda3/bin/../lib/libcurl.so.4: undefined symbol: SSLv2_client_method
└ @ Pkg.Operations /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.2/Pkg/src/backwards_compatible_isolation.jl:647
  Building SpecialFunctions → `~/.julia/packages/SpecialFunctions/ne2iw/deps/build.log`
┌ Error: Error building `SpecialFunctions`: 
│ [ Info: Downloading https://github.com/JuliaPackaging/Yggdrasil/releases/download/OpenSpecFun-v0.5.3+0/OpenSpecFun.v0.5.3.x86_64-linux-gnu-gcc7.tar.gz to /home/anthony/.julia/packages/SpecialFunctions/ne2iw/deps/usr/downloads/OpenSpecFun.v0.5.3.x86_64-linux-gnu-gcc7.tar.gz...
│ ERROR: LoadError: Could not download https://github.com/JuliaPackaging/Yggdrasil/releases/download/OpenSpecFun-v0.5.3+0/OpenSpecFun.v0.5.3.x86_64-linux-gnu-gcc7.tar.gz to /home/anthony/.julia/packages/SpecialFunctions/ne2iw/deps/usr/downloads/OpenSpecFun.v0.5.3.x86_64-linux-gnu-gcc7.tar.gz:
│ ErrorException("")
│ Stacktrace:
│ [1] error(::String) at ./error.jl:33
│ [2] #download#89(::Bool, ::typeof(BinaryProvider.download), ::String, ::String) at /home/anthony/.julia/packages/BinaryProvider/TcAwt/src/PlatformEngines.jl:498
│ [3] #download at ./none:0 [inlined]
│ [4] #download_verify#90(::Bool, ::Bool, ::Bool, ::typeof(download_verify), ::String, ::String, ::String) at /home/anthony/.julia/packages/BinaryProvider/TcAwt/src/PlatformEngines.jl:567
│ [5] #download_verify at ./tuple.jl:0 [inlined]
│ [6] #install#129(::Prefix, ::String, ::Bool, ::Bool, ::Bool, ::typeof(install), ::String, ::String) at /home/anthony/.julia/packages/BinaryProvider/TcAwt/src/Prefix.jl:314
│ [7] (::getfield(BinaryProvider, Symbol("#kw##install")))(::NamedTuple{(:prefix, :force, :verbose),Tuple{Prefix,Bool,Bool}}, ::typeof(install), ::String, ::String) at ./tuple.jl:0
│ [8] top-level scope at /home/anthony/.julia/packages/SpecialFunctions/ne2iw/deps/build.jl:142
│ [9] include at ./boot.jl:328 [inlined]
│ [10] include_relative(::Module, ::String) at ./loading.jl:1094
│ [11] include(::Module, ::String) at ./Base.jl:31
│ [12] include(::String) at ./client.jl:431
│ [13] top-level scope at none:5
│ in expression starting at /home/anthony/.julia/packages/SpecialFunctions/ne2iw/deps/build.jl:139
│ caused by [exception 1]
│ 
│ Stacktrace:
│ [1] error() at ./error.jl:42
│ [2] #download#89(::Bool, ::typeof(BinaryProvider.download), ::String, ::String) at /home/anthony/.julia/packages/BinaryProvider/TcAwt/src/PlatformEngines.jl:492
│ [3] #download at ./none:0 [inlined]
│ [4] #download_verify#90(::Bool, ::Bool, ::Bool, ::typeof(download_verify), ::String, ::String, ::String) at /home/anthony/.julia/packages/BinaryProvider/TcAwt/src/PlatformEngines.jl:567
│ [5] #download_verify at ./tuple.jl:0 [inlined]
│ [6] #install#129(::Prefix, ::String, ::Bool, ::Bool, ::Bool, ::typeof(install), ::String, ::String) at /home/anthony/.julia/packages/BinaryProvider/TcAwt/src/Prefix.jl:314
│ [7] (::getfield(BinaryProvider, Symbol("#kw##install")))(::NamedTuple{(:prefix, :force, :verbose),Tuple{Prefix,Bool,Bool}}, ::typeof(install), ::String, ::String) at ./tuple.jl:0
│ [8] top-level scope at /home/anthony/.julia/packages/SpecialFunctions/ne2iw/deps/build.jl:142
│ [9] include at ./boot.jl:328 [inlined]
│ [10] include_relative(::Module, ::String) at ./loading.jl:1094
│ [11] include(::Module, ::String) at ./Base.jl:31
│ [12] include(::String) at ./client.jl:431
│ [13] top-level scope at none:5
│ [15:52:36] curl: symbol lookup error: /home/anthony/miniconda3/bin/../lib/libcurl.so.4: undefined symbol: SSLv2_client_method
└ @ Pkg.Operations /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.2/Pkg/src/backwards_compatible_isolation.jl:647

```

---

<div class="post-metadata">

### Author: ![Pbellive](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pbellive/32/3604_2.png) [@Pbellive](https://discourse.julialang.org/u/Pbellive)
#### Post date: [September 20, 2019, 11:32pm UTC](https://discourse.julialang.org/t/error-building-fftw-and-specialfunctions-on-elementaryos/29021/2 "2019-09-20T23:32:20Z")

</div>

Hi @degleris1. Welcome to Julia! Under the hood, the DSP package relies on the FFTW C library. When you add the package julia will automatically download the FFTW library for you. It looks like in your case it simply failed to download the library. I just checked that adding DSP works for me on julia 1.2 on Linux. Might just have been a temporary connectivity issue. You can do

```julia
pkg> build FFTW

```

to try downloading that dependency again.

---

<div class="post-metadata">

### Author: ![degleris1](https://avatars.discourse-cdn.com/v4/letter/d/7c8e57/32.png) [@degleris1](https://discourse.julialang.org/u/degleris1)
#### Post date: [September 21, 2019, 1:15am UTC](https://discourse.julialang.org/t/error-building-fftw-and-specialfunctions-on-elementaryos/29021/3 "2019-09-21T01:15:13Z")

</div>

@Pbellive I’m not sure that’s it. I’ve tried a few times over two different networks now and receive the same error message. Building other packages (e.g. CSV) seems to work fine.

For reference, I had DSP installed on Julia 1.1 and it was working fine earlier this year. When I tried to build it this morning, building FFTW failed with a similar error. I thought this was a problem with my specific Julia distribution (I tweaked some things in the past), so I clean built today. However, the error still persists.

**Edit:** If I set `ENV["JULIA_FFTW_PROVIDER"] = "MKL"`, as mentioned [here](https://juliamath.github.io/FFTW.jl/latest/), then a new error message appears:

```julia
  Building Conda → `~/.julia/packages/Conda/kLXeC/deps/build.log`
  Building FFTW ─→ `~/.julia/packages/FFTW/MJ7kl/deps/build.log`
┌ Error: Error building `FFTW`: 
│ [ Info: Downloading miniconda installer ...
│ ┌ Error: Download failed: curl: symbol lookup error: /home/anthony/miniconda3/bin/../lib/libcurl.so.4: undefined symbol: SSLv2_client_method
│ └ @ Base download.jl:43
│ ERROR: LoadError: failed process: Process(`curl -s -S -g -L -f -o /home/anthony/.julia/conda/3/installer.sh https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh`, ProcessExited(127)) [127]
│ 
│ Stacktrace:
│ [1] pipeline_error at ./process.jl:813 [inlined]
│ [2] download_curl(::String, ::String, ::String) at ./download.jl:44
│ [3] download(::String, ::String) at ./download.jl:52
│ [4] _install_conda(::String, ::Bool) at /home/anthony/.julia/packages/Conda/kLXeC/src/Conda.jl:160
│ [5] _install_conda(::String) at /home/anthony/.julia/packages/Conda/kLXeC/src/Conda.jl:152
│ [6] runconda(::Cmd, ::String) at /home/anthony/.julia/packages/Conda/kLXeC/src/Conda.jl:111
│ [7] #add#1(::String, ::typeof(Conda.add), ::String, ::String) at /home/anthony/.julia/packages/Conda/kLXeC/src/Conda.jl:184
│ [8] add at /home/anthony/.julia/packages/Conda/kLXeC/src/Conda.jl:183 [inlined] (repeats 2 times)
│ [9] top-level scope at /home/anthony/.julia/packages/FFTW/MJ7kl/deps/build.jl:25
│ [10] include at ./boot.jl:328 [inlined]
│ [11] include_relative(::Module, ::String) at ./loading.jl:1094
│ [12] include(::Module, ::String) at ./Base.jl:31
│ [13] include(::String) at ./client.jl:431
│ [14] top-level scope at none:5
│ in expression starting at /home/anthony/.julia/packages/FFTW/MJ7kl/deps/build.jl:20
└ @ Pkg.Operations /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.2/Pkg/src/backwards_compatible_isolation.jl:647

```

---

<div class="post-metadata">

### Author: ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)
#### Post date: [September 21, 2019, 1:34am UTC](https://discourse.julialang.org/t/error-building-fftw-and-specialfunctions-on-elementaryos/29021/4 "2019-09-21T01:34:59Z")

</div>

Sounds like you have a broken `curl` program in your `PATH`, probably from an out-of-date Anaconda installation. Since Julia uses `curl` to download things, this will break lots of package installations.

---

<div class="post-metadata">

### Author: ![degleris1](https://avatars.discourse-cdn.com/v4/letter/d/7c8e57/32.png) [@degleris1](https://discourse.julialang.org/u/degleris1)
#### Post date: [September 21, 2019, 3:33am UTC](https://discourse.julialang.org/t/error-building-fftw-and-specialfunctions-on-elementaryos/29021/5 "2019-09-21T03:33:36Z")

</div>

Removing Anaconda worked. Thanks!
