Comments (11)
Thanks. But first I will publish a package of your patchelfmod on GetDeb. It may be of use for other packages too.
from getdeb.
Ok, when running patchelfmod --remove-needed libQtDBus.so.4 XnView/XnView
there is still the dynamic linking there:
$ ldd XnView/XnView | grep Qt
libQtWebKit.so.4 => /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4 (0x00007fe68f53e000)
libQtXml.so.4 => /usr/lib/x86_64-linux-gnu/libQtXml.so.4 (0x00007fe68f081000)
libQtCore.so.4 => /usr/lib/x86_64-linux-gnu/libQtCore.so.4 (0x00007fe68eb9c000)
libQtGui.so.4 => /usr/lib/x86_64-linux-gnu/libQtGui.so.4 (0x00007fe68dcca000)
libQtSvg.so.4 => /usr/lib/x86_64-linux-gnu/libQtSvg.so.4 (0x00007fe68da73000)
libQtNetwork.so.4 => /usr/lib/x86_64-linux-gnu/libQtNetwork.so.4 (0x00007fe68d72b000)
libQtOpenGL.so.4 => /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4 (0x00007fe689c58000)
libQtDBus.so.4 => /usr/lib/x86_64-linux-gnu/libQtDBus.so.4 (0x00007fe6896a9000)
from getdeb.
Hmm, I'll take a look at that.
BTW, I'm using Mint 17 which is based on Ubuntu 14.04 and unlike on the previous version I had some trouble with the phonon plugin (needed for video preview). So made a second version which includes all the libs: https://github.com/darealshinji/Debian/tree/master/xnviewmp-all-libs
Not sure if I'm the only one with that issue.
from getdeb.
Here's the thing: it deletes the NEEDED entry from the header, but the old data seems to remain somewhere.
djcj: XnView $ ldd XnView | grep Qt
libQtWebKit.so.4 => /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4 (0x00007f84eecf9000)
libQtDBus.so.4 => /usr/lib/x86_64-linux-gnu/libQtDBus.so.4 (0x00007f84ee806000)
libQtXml.so.4 => /usr/lib/x86_64-linux-gnu/libQtXml.so.4 (0x00007f84ee5c1000)
libQtCore.so.4 => /usr/lib/x86_64-linux-gnu/libQtCore.so.4 (0x00007f84ee0dc000)
libQtGui.so.4 => /usr/lib/x86_64-linux-gnu/libQtGui.so.4 (0x00007f84ed20a000)
libQtSvg.so.4 => /usr/lib/x86_64-linux-gnu/libQtSvg.so.4 (0x00007f84ecfb3000)
libQtNetwork.so.4 => /usr/lib/x86_64-linux-gnu/libQtNetwork.so.4 (0x00007f84ecc6a000)
libQtOpenGL.so.4 => /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4 (0x00007f84e9198000)
djcj: XnView $ readelf -d XnView | grep Qt
0x0000000000000001 (NEEDED) Gemeinsame Bibliothek [libQtWebKit.so.4]
0x0000000000000001 (NEEDED) Gemeinsame Bibliothek [libQtDBus.so.4]
0x0000000000000001 (NEEDED) Gemeinsame Bibliothek [libQtXml.so.4]
0x0000000000000001 (NEEDED) Gemeinsame Bibliothek [libQtCore.so.4]
0x0000000000000001 (NEEDED) Gemeinsame Bibliothek [libQtGui.so.4]
0x0000000000000001 (NEEDED) Gemeinsame Bibliothek [libQtSvg.so.4]
0x0000000000000001 (NEEDED) Gemeinsame Bibliothek [libQtNetwork.so.4]
0x000000000000000f (RPATH) Bibliothek rpath: [/usr/local/Trolltech/Qt-4.8.5/lib]
djcj: XnView $ chrpath -d XnView
djcj: XnView $ patchelfmod --remove-needed libQtDBus.so.4 XnView
djcj: XnView $ readelf -d XnView | grep Qt
0x0000000000000001 (NEEDED) Gemeinsame Bibliothek [libQtWebKit.so.4]
0x0000000000000001 (NEEDED) Gemeinsame Bibliothek [libQtXml.so.4]
0x0000000000000001 (NEEDED) Gemeinsame Bibliothek [libQtCore.so.4]
0x0000000000000001 (NEEDED) Gemeinsame Bibliothek [libQtGui.so.4]
0x0000000000000001 (NEEDED) Gemeinsame Bibliothek [libQtSvg.so.4]
0x0000000000000001 (NEEDED) Gemeinsame Bibliothek [libQtNetwork.so.4]
djcj: XnView $ ldd XnView | grep Qt
libQtWebKit.so.4 => /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4 (0x00007fc35684b000)
libQtXml.so.4 => /usr/lib/x86_64-linux-gnu/libQtXml.so.4 (0x00007fc35638e000)
libQtCore.so.4 => /usr/lib/x86_64-linux-gnu/libQtCore.so.4 (0x00007fc355ea9000)
libQtGui.so.4 => /usr/lib/x86_64-linux-gnu/libQtGui.so.4 (0x00007fc354fd7000)
libQtSvg.so.4 => /usr/lib/x86_64-linux-gnu/libQtSvg.so.4 (0x00007fc354d80000)
libQtNetwork.so.4 => /usr/lib/x86_64-linux-gnu/libQtNetwork.so.4 (0x00007fc354a38000)
libQtOpenGL.so.4 => /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4 (0x00007fc350f65000)
libQtDBus.so.4 => /usr/lib/x86_64-linux-gnu/libQtDBus.so.4 (0x00007fc3509cc000)
I knew that the filesize grows everytime you edit the header data, so that doesn't surprise me much.
The main reason I did that was because of this warning (line 3): https://github.com/darealshinji/Debian/blob/master/xnviewmp/debian/dpkg-shlibdeps.log
Did a quick test and libQtDBus is not listed among the package dependencies. Though it might be installed as a dependency of one of the remaining Qt lib deps. ^^"
from getdeb.
Ok, the dependency list has not changed compared to the current GetDeb package.
What are the advantages exactly of the ELF patch?
(Will publish the package on GetDeb anyway. Sounds useful ;) )
from getdeb.
Well, for me it's mostly experimenting. Might also be useful for quick testing if compiled software was linked wrong. The original patchelf was developed for the NixOS distribution, which uses a completely different way of installing software and needs to use rpaths to run programs.
To me it was most useful on the FMOD ex libraries, since they're completely messed up and otherwise they can't be packaged properly: https://github.com/darealshinji/Debian/tree/master/fmodex
from getdeb.
Ok, just published patchelfmod on GetDeb.
But the xnviewp package will stay the same.
Thanks.
from getdeb.
I did build an XnView package with and without the use of patchelfmod and the package built without the use of it had these two extra dependencies: libqt4-dbus (>= 4:4.5.3), libxml2 (>= 2.6.27)
from getdeb.
Ok, but this is not a problem. When I want to uninstall libqt4-dbus it also wants to remove ubuntu-desktop. And uninstalling libxml2 fails completely.
from getdeb.
That's actually a good point, yeah.
What you might want to add to your package however is a Lintian override for the embedded library stuff and a manpage:
https://github.com/darealshinji/Debian/blob/master/xnviewmp/debian/xnviewmp.lintian-overrides
https://github.com/darealshinji/Debian/blob/master/xnviewmp/debian/xnviewmp.1
edit:
And you shouldn't install "license.txt", that will trigger a Lintian warning as well.
edit2:
You don't need to install the exiftool stuff as well. You can install that via dependencies and then symlink into XnView's directory.
from getdeb.
Ok, will keep that in mind for the next version.
from getdeb.
Related Issues (6)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from getdeb.