# Makie/FFMPEG pb libharfbuzz.so.0: undefined symbol: FT\_Get\_Transform

**URL:** <https://discourse.julialang.org/t/makie-ffmpeg-pb-libharfbuzz-so-0-undefined-symbol-ft-get-transform/99570>\
**Category:** Visualization\
**Tags:** question, makie\
**Created:** [May 29, 2023, 3:40pm UTC](https://discourse.julialang.org/t/makie-ffmpeg-pb-libharfbuzz-so-0-undefined-symbol-ft-get-transform/99570 "2023-05-29T15:40:02Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![LaurentPlagne](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/laurentplagne/32/10103_2.png) [@LaurentPlagne](https://discourse.julialang.org/u/LaurentPlagne)\
**Post date:** [May 29, 2023, 3:40pm UTC](https://discourse.julialang.org/t/makie-ffmpeg-pb-libharfbuzz-so-0-undefined-symbol-ft-get-transform/99570/1 "2023-05-29T15:40:02Z")

</div>

Hi, I have a bug during animation with CairoMakie. I try the example from the doc:

```julia
using CairoMakie

scene = lines(rand(10); linewidth=10)

record(scene, "out.mp4", 1:255; framerate = 60) do i
    scene.plots[2][:color] = RGBf0(i/255, (255 - i)/255, 0) # animate scene
end;

```

ang get

```julia
julia> include("test.jl")
ffmpeg: symbol lookup error: /lib/x86_64-linux-gnu/libharfbuzz.so.0: undefined symbol: FT_Get_Transform
ERROR: UndefVarError: RGBf0 not defined
Stacktrace:
 [1] (::var"#5#6")(i::Int64)
   @ Main ~/temp/testRecord/test.jl:6
 [2] Record(func::var"#5#6", figlike::Makie.FigureAxisPlot, iter::UnitRange{Int64}; kw_args::Base.Pairs{Symbol, Any, Tuple{Symbol, Symbol}, NamedTuple{(:format, :framerate), Tuple{SubString{String}, Int64}}})
   @ Makie ~/.julia/packages/Makie/DekzU/src/recording.jl:167
 [3] record(func::Function, figlike::Makie.FigureAxisPlot, path::String, iter::UnitRange{Int64}; kw_args::Base.Pairs{Symbol, Int64, Tuple{Symbol}, NamedTuple{(:framerate,), Tuple{Int64}}})
   @ Makie ~/.julia/packages/Makie/DekzU/src/recording.jl:148
 [4] top-level scope
   @ ~/temp/testRecord/test.jl:5

julia> 

```

In case it helps :

```julia
julia> versioninfo()
Julia Version 1.8.5
Commit 17cfb8e65ea (2023-01-08 06:45 UTC)
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 32 × 13th Gen Intel(R) Core(TM) i9-13900K
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-13.0.1 (ORCJIT, goldmont)
  Threads: 8 on 32 virtual cores
Environment:
  JULIA_EDITOR = code
  JULIA_NUM_THREADS = 8

julia> 

(testRecord) pkg> status
Status `~/temp/testRecord/Project.toml`
  [13f3f980] CairoMakie v0.10.5

```

It is Ubuntu 23.04. FWIW, the same code runs OK on my Mac…

Any hints ?

---

<div class="post-metadata">

**Author:** ![LaurentPlagne](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/laurentplagne/32/10103_2.png) [@LaurentPlagne](https://discourse.julialang.org/u/LaurentPlagne)\
**Post date:** [May 29, 2023, 5:03pm UTC](https://discourse.julialang.org/t/makie-ffmpeg-pb-libharfbuzz-so-0-undefined-symbol-ft-get-transform/99570/2 "2023-05-29T17:03:31Z")

</div>

OK, the former example looks outdated. When I run the following MWE (from the update Makie docs) it runs OK with julia 1.9.0 but has the same issue with Julia 1.8.5

```julia
using CairoMakie

time = Observable(0.0)

xs = range(0, 7, length=40)

ys_1 = @lift(sin.(xs .- $time))
ys_2 = @lift(cos.(xs .- $time) .+ 3)

fig = lines(xs, ys_1, color = :blue, linewidth = 4,
    axis = (title = @lift("t = $(round($time, digits = 1))"),))
scatter!(xs, ys_2, color = :red, markersize = 15)

framerate = 30
timestamps = range(0, 2, step=1/framerate)

record(fig, "time_animation.mp4", timestamps;
        framerate = framerate) do t
    time[] = t
end

```

The problem is that I am using `ParallelStencil.jl which is not yet compatible with Julia 1.9.0…  
I am stuck ☹

```julia
julia> include("observable.jl")
ffmpeg: symbol lookup error: /lib/x86_64-linux-gnu/libharfbuzz.so.0: undefined symbol: FT_Get_Transform
ERROR: IOError: write: broken pipe (EPIPE)

```

---

<div class="post-metadata">

**Author:** ![sdanisch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sdanisch/32/1406_2.png) [@sdanisch](https://discourse.julialang.org/u/sdanisch)\
**Post date:** [June 1, 2023, 1:33pm UTC](https://discourse.julialang.org/t/makie-ffmpeg-pb-libharfbuzz-so-0-undefined-symbol-ft-get-transform/99570/3 "2023-06-01T13:33:19Z")

</div>

Have you tried in a new and empty project, e.g. Via `]activate --temp`?

---

<div class="post-metadata">

**Author:** ![LaurentPlagne](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/laurentplagne/32/10103_2.png) [@LaurentPlagne](https://discourse.julialang.org/u/LaurentPlagne)\
**Post date:** [June 1, 2023, 1:45pm UTC](https://discourse.julialang.org/t/makie-ffmpeg-pb-libharfbuzz-so-0-undefined-symbol-ft-get-transform/99570/4 "2023-06-01T13:45:11Z")

</div>

Hi Simon,

Thank you very much for your answer and for Makie in general !

I just try to run in a temp env with the same result 🥲.

> **results with temp project**
>
> ```julia
> laurent@tsi13900k:~/Projects/Acoustic.jl$ julia
> _
> _ _ _(_)_ | Documentation: https://docs.julialang.org
> (_) | (_) (_) |
> _ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
> | | | | | | |/ _` | |
> | | |_| | | | (_| | | Version 1.8.5 (2023-01-08)
> _/ |\ __'_|_|_|\__'_| | Official https://julialang.org/ release
> |__/ |
> 
> (@v1.8) pkg> activate --temp
> Activating new project at `/tmp/jl_FO6W7P`
> 
> (jl_FO6W7P) pkg> add CairoMakie
> Updating registry at `~/.julia/registries/General.toml`
> Resolving package versions...
> Installed OpenSSL_jll ─ v1.1.21+0
> Downloaded artifact: OpenSSL
> Updating `/tmp/jl_FO6W7P/Project.toml`
> [13f3f980] + CairoMakie v0.10.5
> Updating `/tmp/jl_FO6W7P/Manifest.toml`
> [621f4979] + AbstractFFTs v1.3.1
> [1520ce14] + AbstractTrees v0.4.4
> [79e6a3ab] + Adapt v3.6.2
> [27a7e980] + Animations v0.4.1
> [67c07d97] + Automa v0.8.2
> [13072b0f] + AxisAlgorithms v1.0.1
> [39de3d68] + AxisArrays v0.4.6
> [fa961155] + CEnum v0.4.2
> [159f3aea] + Cairo v1.0.5
> [13f3f980] + CairoMakie v0.10.5
> [49dc2e85] + Calculus v0.5.1
> [d360d2e6] + ChainRulesCore v1.16.0
> [9e997f8a] + ChangesOfVariables v0.1.7
> [a2cac450] + ColorBrewer v0.4.0
> [35d6a980] + ColorSchemes v3.21.0
> [3da002f7] + ColorTypes v0.11.4
> [c3611d14] + ColorVectorSpace v0.9.10
> [5ae59095] + Colors v0.12.10
> [34da2185] + Compat v4.6.1
> [187b0558] + ConstructionBase v1.5.2
> [d38c429a] + Contour v0.6.2
> [9a962f9c] + DataAPI v1.15.0
> [864edb3b] + DataStructures v0.18.13
> [e2d170a0] + DataValueInterfaces v1.0.0
> [b429d917] + DensityInterface v0.4.0
> [31c24e10] + Distributions v0.25.95
> [ffbed154] + DocStringExtensions v0.9.3
> [fa6b7ba4] + DualNumbers v0.6.8
> [411431e0] + Extents v0.1.1
> [c87230d0] + FFMPEG v0.4.1
> [7a1cc6ca] + FFTW v1.6.0
> [5789e2e9] + FileIO v1.16.1
> [1a297f60] + FillArrays v1.1.0
> [53c48c17] + FixedPointNumbers v0.8.4
> [59287772] + Formatting v0.4.2
> [b38be410] + FreeType v4.0.0
> [663a7486] + FreeTypeAbstraction v0.10.0
> [46192b85] + GPUArraysCore v0.1.5
> [cf35fbd7] + GeoInterface v1.3.1
> [5c1252a2] + GeometryBasics v0.4.7
> [a2bd30eb] + Graphics v1.1.2
> [3955a311] + GridLayoutBase v0.9.1
> [42e2da0e] + Grisu v1.0.2
> [34004b35] + HypergeometricFunctions v0.3.16
> [2803e5a7] + ImageAxes v0.6.10
> [c817782e] + ImageBase v0.1.5
> [a09fc81d] + ImageCore v0.9.4
> [82e4d734] + ImageIO v0.6.6
> [bc367c6b] + ImageMetadata v0.9.8
> [9b13fd28] + IndirectArrays v1.0.0
> [d25df0c9] + Inflate v0.1.3
> [a98d9a8b] + Interpolations v0.14.7
> [8197267c] + IntervalSets v0.7.4
> [3587e190] + InverseFunctions v0.1.9
> [92d709cd] + IrrationalConstants v0.2.2
> [f1662d9f] + Isoband v0.1.1
> [c8e1da08] + IterTools v1.4.0
> [82899510] + IteratorInterfaceExtensions v1.0.0
> [692b3bcd] + JLLWrappers v1.4.1
> [682c06a0] + JSON v0.21.4
> [b835a17e] + JpegTurbo v0.1.2
> [5ab0869b] + KernelDensity v0.6.7
> [b964fa9f] + LaTeXStrings v1.3.0
> [8cdb02fc] + LazyModules v0.3.1
> [2ab3a3ac] + LogExpFunctions v0.3.23
> [1914dd2f] + MacroTools v0.5.10
> [ee78f7c6] + Makie v0.19.5
> [20f20a25] + MakieCore v0.6.3
> [dbb5928d] + MappedArrays v0.4.2
> [7eb4fadd] + Match v1.2.0
> [0a4f8689] + MathTeXEngine v0.5.6
> [978d7f02] + MiniQhull v0.4.0
> [e1d29d7a] + Missings v1.1.0
> [e94cdb99] + MosaicViews v0.3.4
> [77ba4419] + NaNMath v1.0.2
> [f09324ee] + Netpbm v1.1.0
> [510215fc] + Observables v0.5.4
> [6fe1bfb0] + OffsetArrays v1.12.9
> [52e1d378] + OpenEXR v0.3.2
> [bac558e1] + OrderedCollections v1.6.0
> [90014a1f] + PDMats v0.11.17
> [f57f5aa1] + PNGFiles v0.3.17
> [19eb6ba3] + Packing v0.5.0
> [5432bcbf] + PaddedViews v0.5.12
> [69de0a69] + Parsers v2.5.10
> [eebad327] + PkgVersion v0.3.2
> [995b91a9] + PlotUtils v1.3.5
> [647866c9] + PolygonOps v0.1.2
> [aea7be01] + PrecompileTools v1.1.1
> [21216c6a] + Preferences v1.4.0
> [92933f4c] + ProgressMeter v1.7.2
> [4b34888f] + QOI v1.0.0
> [1fd47b50] + QuadGK v2.8.2
> [b3c3ace0] + RangeArrays v0.3.2
> [c84ed2f1] + Ratios v0.4.4
> [189a3867] + Reexport v1.2.2
> [05181044] + RelocatableFolders v1.0.0
> [ae029012] + Requires v1.3.0
> [79098fc4] + Rmath v0.7.1
> [fdea26ae] + SIMD v3.4.5
> [7b38b023] + ScanByte v0.3.3
> [6c6a2e73] + Scratch v1.2.0
> [efcf1570] + Setfield v1.1.1
> [992d4aef] + Showoff v1.0.3
> [73760f76] + SignedDistanceFields v0.4.0
> [699a6c99] + SimpleTraits v0.9.4
> [45858cf5] + Sixel v0.1.2
> [a2af1166] + SortingAlgorithms v1.1.0
> [276daf66] + SpecialFunctions v2.2.0
> [c5dd0088] + StableHashTraits v0.3.1
> [cae243ae] + StackViews v0.1.1
> [90137ffa] + StaticArrays v1.5.25
> [1e83bf80] + StaticArraysCore v1.4.0
> [82ae8749] + StatsAPI v1.6.0
> ⌅ [2913bbd2] + StatsBase v0.33.21
> [4c63d2b9] + StatsFuns v1.3.0
> [09ab397b] + StructArrays v0.6.15
> [3783bdb8] + TableTraits v1.0.1
> [bd369af6] + Tables v1.10.1
> [62fd8b95] + TensorCore v0.1.1
> [731e570b] + TiffImages v0.6.4
> [3bb67fe8] + TranscodingStreams v0.9.13
> [981d1d27] + TriplotBase v0.1.0
> [9d95972d] + TupleTools v1.3.0
> [1cfade01] + UnicodeFun v0.4.1
> [efce3f68] + WoodburyMatrices v0.5.5
> [6e34b625] + Bzip2_jll v1.0.8+0
> [83423d85] + Cairo_jll v1.16.1+1
> [5ae413db] + EarCut_jll v2.2.4+0
> [2e619515] + Expat_jll v2.4.8+0
> [b22a6f82] + FFMPEG_jll v4.4.2+2
> [f5851436] + FFTW_jll v3.3.10+0
> [a3f928ae] + Fontconfig_jll v2.13.93+0
> [d7e528f0] + FreeType2_jll v2.10.4+0
> [559328eb] + FriBidi_jll v1.0.10+0
> [78b55507] + Gettext_jll v0.21.0+0
> [7746bdde] + Glib_jll v2.74.0+2
> [3b182d85] + Graphite2_jll v1.3.14+0
> [2e76f6c2] + HarfBuzz_jll v2.8.1+1
> [905a6f67] + Imath_jll v3.1.7+0
> [1d5cc7b8] + IntelOpenMP_jll v2023.1.0+0
> [aacddb02] + JpegTurbo_jll v2.1.91+0
> [c1c5ebd0] + LAME_jll v3.100.1+0
> [dd4b983a] + LZO_jll v2.10.1+0
> ⌅ [e9f186c6] + Libffi_jll v3.2.2+1
> [d4300ac3] + Libgcrypt_jll v1.8.7+0
> [7add5ba3] + Libgpg_error_jll v1.42.0+0
> [94ce4f54] + Libiconv_jll v1.16.1+2
> [4b2f31a3] + Libmount_jll v2.35.0+0
> [38a345b3] + Libuuid_jll v2.36.0+0
> ⌅ [856f044c] + MKL_jll v2022.2.0+0
> [e7412a2a] + Ogg_jll v1.3.5+1
> [18a262bb] + OpenEXR_jll v3.1.4+0
> ⌅ [458c3c95] + OpenSSL_jll v1.1.21+0
> [efe28fd5] + OpenSpecFun_jll v0.5.5+0
> [91d4177d] + Opus_jll v1.3.2+0
> [36c8627f] + Pango_jll v1.50.9+0
> [30392449] + Pixman_jll v0.40.1+0
> [460c41e3] + QhullMiniWrapper_jll v1.0.0+1
> ⌅ [784f63db] + Qhull_jll v8.0.1003+0
> [f50d1b31] + Rmath_jll v0.4.0+0
> [02c8fc9c] + XML2_jll v2.10.3+0
> [aed1982a] + XSLT_jll v1.1.34+0
> [4f6342f7] + Xorg_libX11_jll v1.6.9+4
> [0c0b7dd1] + Xorg_libXau_jll v1.0.9+4
> [a3789734] + Xorg_libXdmcp_jll v1.1.3+4
> [1082639a] + Xorg_libXext_jll v1.3.4+4
> [ea2f1a96] + Xorg_libXrender_jll v0.9.10+4
> [14d82f49] + Xorg_libpthread_stubs_jll v0.1.0+3
> [c7cfdc94] + Xorg_libxcb_jll v1.13.0+3
> [c5fb5394] + Xorg_xtrans_jll v1.4.0+3
> [9a68df92] + isoband_jll v0.2.3+0
> [a4ae2306] + libaom_jll v3.4.0+0
> [0ac62f75] + libass_jll v0.15.1+0
> [f638f0a6] + libfdk_aac_jll v2.0.2+0
> [b53b4c65] + libpng_jll v1.6.38+0
> [075b6546] + libsixel_jll v1.10.3+0
> [f27f6e37] + libvorbis_jll v1.3.7+1
> [1270edf5] + x264_jll v2021.5.5+0
> [dfaa095f] + x265_jll v3.5.0+0
> [0dad84c5] + ArgTools v1.1.1
> [56f22d72] + Artifacts
> [2a0f44e3] + Base64
> [8bf52ea8] + CRC32c
> [ade2ca70] + Dates
> [8ba89e20] + Distributed
> [f43a241f] + Downloads v1.6.0
> [7b1f6079] + FileWatching
> [9fa8497b] + Future
> [b77e0a4c] + InteractiveUtils
> [4af54fe1] + LazyArtifacts
> [b27032c2] + LibCURL v0.6.3
> [76f85450] + LibGit2
> [8f399da3] + Libdl
> [37e2e46d] + LinearAlgebra
> [56ddb016] + Logging
> [d6f4376e] + Markdown
> [a63ad114] + Mmap
> [ca575930] + NetworkOptions v1.2.0
> [44cfe95a] + Pkg v1.8.0
> [de0858da] + Printf
> [3fa0cd96] + REPL
> [9a3f8284] + Random
> [ea8e919c] + SHA v0.7.0
> [9e88b42a] + Serialization
> [1a1011a3] + SharedArrays
> [6462fe0b] + Sockets
> [2f01184e] + SparseArrays
> [10745b16] + Statistics
> [4607b0f0] + SuiteSparse
> [fa267f1f] + TOML v1.0.0
> [a4e569a6] + Tar v1.10.1
> [8dfed614] + Test
> [cf7118a7] + UUIDs
> [4ec0a83e] + Unicode
> [e66e0078] + CompilerSupportLibraries_jll v1.0.1+0
> [deac9b47] + LibCURL_jll v7.84.0+0
> [29816b5a] + LibSSH2_jll v1.10.2+0
> [c8ffd9c3] + MbedTLS_jll v2.28.0+0
> [14a3606d] + MozillaCACerts_jll v2022.2.1
> [4536629a] + OpenBLAS_jll v0.3.20+0
> [05823500] + OpenLibm_jll v0.8.1+0
> [efcefdf7] + PCRE2_jll v10.40.0+0
> [83775a58] + Zlib_jll v1.2.12+3
> [8e850b90] + libblastrampoline_jll v5.1.1+0
> [8e850ede] + nghttp2_jll v1.48.0+0
> [3f19e933] + p7zip_jll v17.4.0+0
> Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m`
> Precompiling project...
> 5 dependencies successfully precompiled in 65 seconds. 183 already precompiled.
> 
> julia> pwd()
> "/home/laurent/Projects/Acoustic.jl"
> 
> julia> include("test.jl")
> ffmpeg: symbol lookup error: /lib/x86_64-linux-gnu/libharfbuzz.so.0: undefined symbol: FT_Get_Transform
> ERROR: LoadError: IOError: write: broken pipe (EPIPE)
> Stacktrace:
> [1] uv_write(s::Base.PipeEndpoint, p::Ptr{UInt8}, n::UInt64)
> @ Base ./stream.jl:1064
> [2] unsafe_write(s::Base.PipeEndpoint, p::Ptr{UInt8}, n::UInt64)
> @ Base ./stream.jl:1118
> [3] unsafe_write
> @ ./io.jl:683 [inlined]
> [4] write
> @ ./io.jl:706 [inlined]
> [5] recordframe!(io::VideoStream)
> @ Makie ~/.julia/packages/Makie/DekzU/src/ffmpeg-util.jl:247
> [6] Record(func::var"#7#8", figlike::Makie.FigureAxisPlot, iter::StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}; kw_args::Base.Pairs{Symbol, Any, Tuple{Symbol, Symbol}, NamedTuple{(:format, :framerate), Tuple{SubString{String}, Int64}}})
> @ Makie ~/.julia/packages/Makie/DekzU/src/recording.jl:168
> [7] record(func::Function, figlike::Makie.FigureAxisPlot, path::String, iter::StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}; kw_args::Base.Pairs{Symbol, Int64, Tuple{Symbol}, NamedTuple{(:framerate,), Tuple{Int64}}})
> @ Makie ~/.julia/packages/Makie/DekzU/src/recording.jl:148
> [8] top-level scope
> @ ~/Projects/Acoustic.jl/test.jl:17
> [9] include(fname::String)
> @ Base.MainInclude ./client.jl:476
> [10] top-level scope
> @ REPL[4]:1
> in expression starting at /home/laurent/Projects/Acoustic.jl/test.jl:17
> 
> julia> 
> 
> ```

Like I said it works OK with 1.9.0 so I did save my simulation data (that still have to run with 1.8.5) and make the animation in post-treatment with CairoMakie/julia 1.9.0. So I am not stuck anymore. In addition I can enjoy the GLMakie interactive animation with sliders on my local machine 😉

---

<div class="post-metadata">

**Author:** ![tomchor](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tomchor/32/28234_2.png) [@tomchor](https://discourse.julialang.org/u/tomchor)\
**Post date:** [June 30, 2023, 8:37pm UTC](https://discourse.julialang.org/t/makie-ffmpeg-pb-libharfbuzz-so-0-undefined-symbol-ft-get-transform/99570/5 "2023-06-30T20:37:20Z")

</div>

I’m having the same problem on Manjaro. Has anyone found the issue?

(I also can’t use julia 1.9 yet…)

---

<div class="post-metadata">

**Author:** ![LaurentPlagne](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/laurentplagne/32/10103_2.png) [@LaurentPlagne](https://discourse.julialang.org/u/LaurentPlagne)\
**Post date:** [July 1, 2023, 12:43pm UTC](https://discourse.julialang.org/t/makie-ffmpeg-pb-libharfbuzz-so-0-undefined-symbol-ft-get-transform/99570/6 "2023-07-01T12:43:10Z")

</div>

Nope. I use 1.9.x for Makie visualization and 1.8.5 for computations…

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [July 1, 2023, 1:25pm UTC](https://discourse.julialang.org/t/makie-ffmpeg-pb-libharfbuzz-so-0-undefined-symbol-ft-get-transform/99570/7 "2023-07-01T13:25:28Z")

</div>

> [@LaurentPlagne](#):
>
> `ffmpeg: symbol lookup error: /lib/x86_64-linux-gnu/libharfbuzz.so.0: undefined symbol: FT_Get_Transform`

The problem is straight there: _somehow_ you’re using system libraries instead of JLLs. How that happens, I don’t know. Educated guess: you set `LD_LIBRARY_PATH` to include system libraries. Or something similar.

---

<div class="post-metadata">

**Author:** ![sceptri](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sceptri/32/52356_2.png) [@sceptri](https://discourse.julialang.org/u/sceptri)\
**Post date:** [July 15, 2023, 8:13am UTC](https://discourse.julialang.org/t/makie-ffmpeg-pb-libharfbuzz-so-0-undefined-symbol-ft-get-transform/99570/8 "2023-07-15T08:13:56Z")

</div>

I am having the same problem on Julia 1.9.x (I tested 1.9.0 and 1.9.2).

Furthermore, I am not aware of changing any ENV variables, and certainly not `LD_LIBRARY_PATH`.

I tried making temp environment, adding CairoMakie and running an example from docs:

```julia
time = Observable(0.0)
color_observable = @lift(RGBf($time, 0, 0))

fig = lines(0..10, sin, color = color_observable)

record(fig, "color_animation_2.mp4", timestamps; framerate = framerate) do t
    time[] = t
end

```

But still I get the same error:

```julia
ffmpeg: symbol lookup error: /lib64/libharfbuzz.so.0: undefined symbol: FT_Get_Transform
ERROR: IOError: write: broken pipe (EPIPE)
Stacktrace:
 [1] uv_write(s::Base.PipeEndpoint, p::Ptr{UInt8}, n::UInt64)
   @ Base ./stream.jl:1066
 [2] unsafe_write(s::Base.PipeEndpoint, p::Ptr{UInt8}, n::UInt64)
   @ Base ./stream.jl:1120
 [3] unsafe_write
   @ ./io.jl:685 [inlined]
 [4] write
   @ ./io.jl:708 [inlined]
 [5] recordframe!(io::VideoStream)
   @ Makie ~/.julia/packages/Makie/iECbF/src/ffmpeg-util.jl:247
 [6] Record(func::var"#87#88", figlike::Makie.FigureAxisPlot, iter::StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}; kw_args::Base.Pairs{Symbol, Any, Tuple{Symbol, Symbol}, NamedTuple{(:format, :framerate), Tuple{SubString{String}, Int64}}})
   @ Makie ~/.julia/packages/Makie/iECbF/src/recording.jl:168
 [7] record(func::Function, figlike::Makie.FigureAxisPlot, path::String, iter::StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}; kw_args::Base.Pairs{Symbol, Int64, Tuple{Symbol}, NamedTuple{(:framerate,), Tuple{Int64}}})
   @ Makie ~/.julia/packages/Makie/iECbF/src/recording.jl:148
 [8] top-level scope
   ...

```

Does anyone know what to do with it?

---

<div class="post-metadata">

**Author:** ![LaurentPlagne](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/laurentplagne/32/10103_2.png) [@LaurentPlagne](https://discourse.julialang.org/u/LaurentPlagne)\
**Post date:** [July 15, 2023, 9:10am UTC](https://discourse.julialang.org/t/makie-ffmpeg-pb-libharfbuzz-so-0-undefined-symbol-ft-get-transform/99570/9 "2023-07-15T09:10:56Z")

</div>

No idea, I did not get the problem with Julia 1.9.x.

What give versioninfo() and Pkg status ?

---

<div class="post-metadata">

**Author:** ![sceptri](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sceptri/32/52356_2.png) [@sceptri](https://discourse.julialang.org/u/sceptri)\
**Post date:** [July 15, 2023, 9:21am UTC](https://discourse.julialang.org/t/makie-ffmpeg-pb-libharfbuzz-so-0-undefined-symbol-ft-get-transform/99570/10 "2023-07-15T09:21:54Z")

</div>

Hi, thanks for the quick reply!  
The output of those commands is here:

```julia
(jl_futn5t) pkg> st
Status `/tmp/jl_futn5t/Project.toml`
  [13f3f980] CairoMakie v0.10.6

julia> versioninfo()
Julia Version 1.9.2
Commit e4ee485e909 (2023-07-05 09:39 UTC)
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 8 × Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-14.0.6 (ORCJIT, skylake)
  Threads: 1 on 8 virtual cores
Environment:
  LD_PRELOAD = /usr/lib64/libstdc++.so.6
  JULIA_EDITOR = code
  JULIA_NUM_THREADS =

```

I am using a release version of Julia installed via `juliaup` (but fixing the version to 1.9.0 does nothing)

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [July 15, 2023, 9:22am UTC](https://discourse.julialang.org/t/makie-ffmpeg-pb-libharfbuzz-so-0-undefined-symbol-ft-get-transform/99570/11 "2023-07-15T09:22:38Z")

</div>

> [@sceptri](#):
>
> `LD_PRELOAD = /usr/lib64/libstdc++.so.6`

Well, you _are_ setting an environment variable which affects the dynamic loader. Don’t do that

---

<div class="post-metadata">

**Author:** ![sceptri](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sceptri/32/52356_2.png) [@sceptri](https://discourse.julialang.org/u/sceptri)\
**Post date:** [July 15, 2023, 9:28am UTC](https://discourse.julialang.org/t/makie-ffmpeg-pb-libharfbuzz-so-0-undefined-symbol-ft-get-transform/99570/12 "2023-07-15T09:28:43Z")

</div>

That’s interesting… If I run julia from the terminal (via e.g. `julialauncher`), the `LD_PRELOAD` ENV variable doesn’t showup in the `versioninfo()` output…

But running in the REPL provided by VS Code, it does

---

<div class="post-metadata">

**Author:** ![sceptri](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sceptri/32/52356_2.png) [@sceptri](https://discourse.julialang.org/u/sceptri)\
**Post date:** [July 15, 2023, 9:38am UTC](https://discourse.julialang.org/t/makie-ffmpeg-pb-libharfbuzz-so-0-undefined-symbol-ft-get-transform/99570/13 "2023-07-15T09:38:24Z")

</div>

Okay, thanks I managed to find it in the `settings.json` of VS Code, that `LD_PRELOAD` was being set as an environment variable for bash…

After removing it, it works like a charm 🙂
