Giter VIP home page Giter VIP logo

Comments (11)

ckorn avatar ckorn commented on July 30, 2024

Thanks. But first I will publish a package of your patchelfmod on GetDeb. It may be of use for other packages too.

from getdeb.

ckorn avatar ckorn commented on July 30, 2024

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.

darealshinji avatar darealshinji commented on July 30, 2024

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.

darealshinji avatar darealshinji commented on July 30, 2024

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.

ckorn avatar ckorn commented on July 30, 2024

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.

darealshinji avatar darealshinji commented on July 30, 2024

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.

ckorn avatar ckorn commented on July 30, 2024

Ok, just published patchelfmod on GetDeb.

But the xnviewp package will stay the same.

Thanks.

from getdeb.

darealshinji avatar darealshinji commented on July 30, 2024

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.

ckorn avatar ckorn commented on July 30, 2024

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.

darealshinji avatar darealshinji commented on July 30, 2024

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.

ckorn avatar ckorn commented on July 30, 2024

Ok, will keep that in mind for the next version.

from getdeb.

Related Issues (6)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.