Nixpkgs: ufraw: libexiv2.so: undefined reference

Created on 14 Sep 2020  路  7Comments  路  Source: NixOS/nixpkgs

Describe the bug

The package ufraw fails to build on current unstable channel due to exiv2 issue. Suspecting https://github.com/NixOS/nixpkgs/commit/b181edb32282f1fd0d0359f60d81e8dca9f91c21 (and subsequent exiv2 changes) as possible cause, tried downgrading to the commit just before that one (https://github.com/NixOS/nixpkgs/commit/2b575c5f1f287293a5dbfab3e9963519e713fd3b) and it works.

...
In file included from ufraw_lens_ui.c:21:0:
/nix/store/c486x0ydwsgzhpj6lggxys9znjdnp5m0-lensfun-0.3.95/include/lensfun/lensfun.h:2137:37: note: declared here
 DEPRECATED LF_EXPORT const lfLens **lf_db_find_lenses_hd (
                                     ^~~~~~~~~~~~~~~~~~~~
  AR       libufraw.a
ar: `u' modifier ignored since `D' is the default (see `U')
  GEN      ufraw-batch
/nix/store/iygzjy14i075hkxr2gq8cpfjvk2rkx0b-binutils-2.31.1/bin/ld: /nix/store/7msa09m8fkpxyraf8g7mqgc2bj08yzph-exiv2-0.27.3/lib/libexiv2.so: undefined reference to `std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream()@GLIBCXX_3.4.26'
/nix/store/iygzjy14i075hkxr2gq8cpfjvk2rkx0b-binutils-2.31.1/bin/ld: /nix/store/7msa09m8fkpxyraf8g7mqgc2bj08yzph-exiv2-0.27.3/lib/libexiv2.so: undefined reference to `std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::basic_stringstream()@GLIBCXX_3.4.26'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:813: ufraw-batch] Error 1
make[2]: Leaving directory '/build/source'
make[1]: *** [Makefile:1060: all-recursive] Error 1
make[1]: Leaving directory '/build/source'
make: *** [Makefile:610: all] Error 2
builder for '/nix/store/9ygxgfbwb2kgwy419rlh9g79xz7wa9ih-ufraw-unstable-2019-06-12.drv' failed with exit code 2
error: build of '/nix/store/9ygxgfbwb2kgwy419rlh9g79xz7wa9ih-ufraw-unstable-2019-06-12.drv' failed

To Reproduce

  1. nix-shell -p ufraw

Expected behavior

Package installs.

Notify maintainers

@gloaming @jtojnar

Metadata

 - system: `"x86_64-linux"`
 - host os: `Linux 5.7.16, NixOS, 21.03pre243434.e0759a49733 (Okapi)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.3.7`
 - channels(root): `"nixos-21.03pre243434.e0759a49733, home-manager"`
 - channels(austin): `"home-manager"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Maintainer information:

# a list of nixpkgs attributes affected by the problem
attribute:
  - gimp-with-plugins
  - ufraw
# a list of nixos modules affected by the problem
module:
bug

Most helpful comment

I'd suggest at least removing it from gimp-with-plugins.

All 7 comments

C++ linking issues are not really my expertise. I guess we can mark the package as broken to be eventually removed since it is unmaintained upstream. Bringing back the old exiv2 would be too much work since we would have to backport lot of CVE patches.

It seems there is a maintained fork here: https://sourceforge.net/projects/nufraw/
From the readme: "The backwards compatibility (with ufraw) should be assured." - it seems it's a good candidate for replacing ufraw.

Also I just noticed that we use https://github.com/sergiomb2/ufraw fork which collects patches from distros, which seems also recently updated. But the update to latest commit did not fix the issue ...

And just dropping nufraw into the ufraw package seems to fail with the same error as ufraw.

Using either ufraw or nufraw, I can get it to build just by bumping from gcc6Stdenv to gcc9Stenv, but it crashes when loading a Panasonic RW2 from the file chooser.

Thread 1 "nufraw" received signal SIGSEGV, Segmentation fault.
0x00007ffff7ad0adb in lfLens::operator=(lfLens const&) () from /nix/store/8ahbzf4xspn8xmmw0wmqbnyqvhgwnags-lensfun-0.3.95/lib/liblensfun.so.2
Thread 1 "ufraw" received signal SIGSEGV, Segmentation fault.
0x00007ffff7ad0adb in lfLens::operator=(lfLens const&) () from /nix/store/8ahbzf4xspn8xmmw0wmqbnyqvhgwnags-lensfun-0.3.95/lib/liblensfun.so.2

Found a thread where it seems the same issue was reported for someone on Arch. I tried the same RW2 file from before with nufraw on an Arch computer and it doesn't crash, but the resulting image is just a single color. I then tried a Canon CR2 on Arch and that crashed nufraw.

At this point it seems ufraw is sort of on life support and I'm not sure what need it fills that other tools don't already. With GIMP it seems you can use Darktable for RAW, which works much better. So I'd be fine closing this issue and/or removing the ufraw package entirely.

I'd suggest at least removing it from gimp-with-plugins.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

lverns picture lverns  路  3Comments

sid-kap picture sid-kap  路  3Comments

retrry picture retrry  路  3Comments

copumpkin picture copumpkin  路  3Comments

ghost picture ghost  路  3Comments