Failing to register new version because

What does this mean?

[ Info: Attempting to `Pkg.add` the package
     Copying registry from `~/work/General/General`
      Copied registry `General` to `/tmp/jl_jNfC54/registries/General`
[ Info: Attempting to `Pkg.add` package...
    Updating registry at `/tmp/jl_jNfC54/registries/General`
┌ Error: Some registries failed to update:
│     — `/tmp/jl_jNfC54/registries/General` — registry dirty
└ @ Pkg.Registry /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/Pkg/src/Registry/Registry.jl:450

Start at line 291 of the log: New version: GMT v0.42.3 · JuliaRegistries/General@f56973b · GitHub

ERROR: The following 1 direct dependency failed to precompile:
292
293
GMT [5752ebe1-31b9-557e-87aa-f909b540aa54]
294
295
Failed to precompile GMT [5752ebe1-31b9-557e-87aa-f909b540aa54] to /tmp/jl_8TsdLY/compiled/v1.7/GMT/jl_LrUdvh.
296
    Building Conda → `/tmp/jl_8TsdLY/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/6e47d11ea2776bc5627421d59cdcc1296c058071/build.log`
297
    Building GMT ──→ `/tmp/jl_8TsdLY/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/8dbff2500402be5d91f652856ccadee7f32a76e2/build.log`
298
ERROR: LoadError: could not load library "/tmp/jl_8TsdLY/conda/3/lib/libgmt.so"
299
/opt/hostedtoolcache/julia/1.7.3/x64/bin/../lib/julia/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /tmp/jl_8TsdLY/conda/3/lib/./libgdal.so.31)
300
Stacktrace:
301
  [1] GMT_Create_Session (repeats 2 times)
302
    @ /tmp/jl_8TsdLY/packages/GMT/q2JlU/src/libgmt.jl:2 [inlined]
303
  [2] top-level scope
304
    @ /tmp/jl_8TsdLY/packages/GMT/q2JlU/src/get_enums.jl:9
305
  [3] include(mod::Module, _path::String)
306
    @ Base./Base.jl:418
307
  [4] include(x::String)
308
    @ GMT/tmp/jl_8TsdLY/packages/GMT/q2JlU/src/GMT.jl:1
309
  [5] top-level scope
310
    @ /tmp/jl_8TsdLY/packages/GMT/q2JlU/src/GMT.jl:273
311
  [6] include
312
    @ ./Base.jl:418 [inlined]
313
  [7] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt64}}, source::Nothing)
314
    @ Base./loading.jl:1318
315
  [8] top-level scope
316
    @ none:1
317
  [9] eval
318
    @ ./boot.jl:373 [inlined]
319
 [10] eval(x::Expr)
320
    @ Base.MainInclude./client.jl:453
321
 [11] top-level scope
322
    @ none:1
323
in expression starting at /tmp/jl_8TsdLY/packages/GMT/q2JlU/src/get_enums.jl:9
324
in expression starting at /tmp/jl_8TsdLY/packages/GMT/q2JlU/src/GMT.jl:1

Looks like GMT/libgdal? expects a newer version of libstdc++ than the one julia 1.7.3 ships with (which is the .29 one, I think). This is so bleeding edge, not even master has it yet, I believe. I ran into a similar issue a few days ago. Probably worth an issue in julia, to bump the version and backport that to 1.8 if possible.

1 Like
3 Likes

Anything I can do for the moment? And why it says that registry dirty?

line 192
┌ Error: Some registries failed to update:
│ — /tmp/jl_bC8Hc4/registries/General — registry dirty

Not using a compiler released 31 days ago expecting everyone has it would be a good starting point :slightly_smiling_face:

???

I’m not using anything different than always had. Maybe Conda did, but not me.
And if *nix didn’t find so amusing breaking compatibility all the times that would help a bit too :face_with_open_eyes_and_hand_over_mouth:

libstdc++ is mostly backward compatible meaning that you can run with a new libstdc++ a library built using an old libstdc++, but not forward compatible, meaning that generally you can’t run with an old libstdc++ a library built with a newer libstdc++. That’s why in the JLL world to maximise compatibility we try to always use the oldest version of GCC possible (and at the same time try to ship in Julia a decently recent libstdc++). But compiling libraries for general consumption on different systems with the super latest version of GCC is begging for troubles (whoever did it).

4 Likes

This can safely be ignored.

Maybe I should add an @info right before that step that tells people they can ignore the “Some registries failed to update” and “registry dirty” messages.

And can I have the new version PR be merged manually? (I need it). Thanks.