New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[wip] p4v: 2017.3.1601999 -> 2020.1.1946989 #86078
Conversation
qtscript | ||
qtsensors | ||
qtwebengine |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any chance this already works without qtwebkit?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Upstream ships libQt5WebKit.so
and libQt5WebEngine.so
, so I guess both are needed.
@nioncode You might need to recompile the C++ standard library (stdenv.cc.cc.lib) with versioned symbols. I think, this could help http://anadoxin.org/blog/control-over-symbol-exports-in-gcc.html, see "Using `ld' linker version script". |
Another possible solution: https://stackoverflow.com/questions/20721907/ld-to-library-without-version-information-in-linux |
@veprbl thanks, but I'm not sure how I could compile or use a different stdenv in the derivation. Also, to me it looks like the problem is not in the stdenv, but in the Qt libraries, since it works when I use the pre-built libraries shipped by upstream (which does not include Maybe the Qt libraries have to be compiled with different flags or version information? Do you have an idea how to do this? |
The symbol is from the C++ standard library
You can check with |
Looks like it is properly exported:
The store path is what is written in the But it looks like the Qt libraries are expecting something with |
I think the p4v tools actually have this version stored in them, e.g.:
And their shipped copies of the Qt libraries seem to provide the symbol:
However, the Qt libraries in my nix store don't provide the symbol:
Can we somehow patch the p4v binaries to remove the |
I was able to get it working with: which includes this change to patchelf: |
I cleaned it up a bit and made #95748. |
Dropping in favor of #95748 |
Motivation for this change
Updating the
p4v
version to get rid ofopenssl_1_0_2
.Unfortunately, this does not work. When running
p4merge -V
, the following error is printed:When I use the whole
/lib
folder as provided by upstream, then it works, but obviously it does not use the system Qt version then and I don't know what effects this might have.@ttuegel can you help me out here what the problem might be?
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)