-
Notifications
You must be signed in to change notification settings - Fork 86
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
dylibbundler is missing dependencies #18
Comments
Hi, I'm no longer actively maintaining dylibbundler, but if someone wants to make a pull request I would be more than happy to merge it. Unfortunately chearon's work might be mergeable as-is since the commit message reads "this should NOT be relied on for new work because I didn't really take |
Yeah, I saw how I could get it to work in a quick way and didn't go any deeper. I think I see where the problem really is now, though, I'll open a PR soon |
@jjeising is there anything else depending on the C library |
@chearon The binary itself depends on I have updated the post above to reflect this. You can also see the different path for
(vs. Symlinks are at different levels:
|
Thanks, I ask because it actually turns out that my situation is a little different than the one I described in my commit. I think Homebrew had multiple copies of the same library, which my patch fixed because it patches ALL paths with the same base filename. Just in case your situation is mine, and not a symlink issue, what does:
output? |
|
those |
It is a real file because
This is expected behaviour from homebrew as far as I know. This path is used for formulas that are keg-only (not linked to But as the realpath of both libs points to the same target shouldn't dylibbundler replace both? |
My mistake, you're right, the issue is multiple symbolic links pointing to the same file. Which is also my problem. The code uses the same prefix for all symbolic links (it expects them all to be in the same directory) which I think is the issue. If it stored the full path instead then all symbolic links would be correctly patched, is there a reason they are expected to be in the same directory @auriamg ? |
dylibbundler may have limitations simply because I never encountered any such case, I don't think there's any fundamental reason why this couldn't be supported |
@chearon I've tested your pull request #19, it looks like it's still missing something (commenting here for references): These are fine:
But one dependency is untouched:
Your old patch didn't show this behaviour. I hope I got the path from the pull request right, but I double checked and it looks like the right version. |
@jjeising did you do Edit: if you post everything before the first |
@chearon I did: https://p.rrbone.net/paste/fu7ovGaG#6YAbV4Jz ( |
that's very weird, it doesn't look like |
That's because it's not in the main binary but only in
I'm not sure how one gets in this situation, it may be possible to clean this up by selective reinstall or complete rebuild, but I still think |
I swear it worked for my dependencies of dependencies... maybe because they weren't symbolic links though. I'll look into it and open another PR if I can figure it out |
@chearon I've tested macpack and it works fine. It by the way takes a fraction of the time, but that's maybe related to the output, too. |
Awesome! Yeah that and probably partly because I used async/await on the processes, so it launches a bunch of them in parallel and exits pretty fast |
I am having a similar problem with macdylibbunder that jjeising is having. The problem is with a file called libhogweed.2.5.dylib. It comes with nettle. If you 'brew install nettle', you would see it. I copied the libhogweed.2.5.dylib file into its own folder, then tried this command on it to copy all its prerequisites into the same folder: macdylibbundler-master/dylibbundler -od -b -x /Users/john/Desktop/erase/libhogweed.2.5.dylib -d /Users/john/Desktop/erase/libs/ This is the error I saw:
The permissions of the copied and original files were -r--r--r--. Adding writability like this 'chmod +w libhogweed.2.5.dylib' fixed the problem. I suggest after macdylibbundler has copied a dylib, it changes that file's permissions to be writable. |
I have what looks like a similar issue with complex dependencies. First I installed corsixth via homebrew Then I ran But, while it appears all the required dylibs were copied over, I launch the app and one of the dylibs is still referencing one of its own dependencies to an absolute path:
|
I'm running into a problem similar to what's already been brought up in this thread. What's the status of this issue? If that commit in the link will work, it'd be great to see that merged and published. |
Sorry, I no longer have the time to actively develop dylibbundler, also I don't have a good test case to reproduce this on my old macbook. However, if someone wants to diagnose what's going on, pull requests are welcome |
I would like to fix a binary with some more complex GTK dependencies. This kind of works, but the dependencies of pulled in dylibs sometimes get lost. Example:
The binary depends on
libatkmm
andlibatk
:dylibbundler has fixed this link and copied
libatkmm-1.6.1.dylib
. It also pulled inlibatk
(the original C library) and fixed it's dependencies. But the dependency onlibatk
oflibaktmm
is not fixed:The commit of @chearon seems to fix this – the build works with this version.
The text was updated successfully, but these errors were encountered: