#9335 closed defect (fixed)
BUG: gnupg - gpg no longer works after readline upgrade
Reported by: | vincent-opdarw@… | Owned by: | pipping@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 1.0 |
Keywords: | Cc: | yeled@… | |
Port: |
Description
After readline upgrade, I get the following error:
$ gpg dyld: Library not loaded: /opt/local/lib/libreadline.5.0.dylib
Referenced from: /opt/local/bin/gpg Reason: image not found
It should probably use /opt/local/lib/libreadline.5.dylib so that it no longer fails when readline is upgraded.
Change History (13)
comment:1 Changed 18 years ago by vincent-opdarw@…
comment:2 Changed 18 years ago by opendarwin-2006@…
Owner: | changed from darwinports-bugs@… to waqar@… |
---|
comment:3 Changed 18 years ago by yeled@…
Cc: | yeled@… added |
---|
comment:4 Changed 18 years ago by rhwood@…
Quick fix:
sudo port uninstall gnupg sudo port clean --all gnupg sudo port install gnupg
This will force gnupg to link against new readline.
comment:5 Changed 18 years ago by vincent-opdarw@…
(In reply to comment #2)
Quick fix:
Well, this is just a workaround. The problem should have never occurred. If nothing is done to really fix it, it may happen again in the future.
comment:6 Changed 18 years ago by cmconnelly (Claire Connelly)
(In reply to comment #1)
BTW, the Portfile should have port:readline in depends_lib.
I agree -- the missing dependency is the problem. Without it, it's possible to update readline without rebuilding gnupg to link against the new version.
comment:7 Changed 18 years ago by vincent-opdarw@…
(In reply to comment #4)
(In reply to comment #1)
BTW, the Portfile should have port:readline in depends_lib.
I agree -- the missing dependency is the problem. Without it, it's possible to update readline without rebuilding gnupg to link against the new version.
These are two different problems. In fact, even with the dependency, programs no longer work after an upgrade of readline. This is a bug in readline and a patch was posted on the darwinports mailing-list a couple of weeks ago. When a library is upgraded, one shouldn't need to recompile the programs, because the library must be compatible or have a different name (so that one can have several incompatible versions at the same time and one can't link with an incompatible version, thanks to versioning). This is important, because the programs compiled directly by a user must still work after a system upgrade. On this point, it seems that DarwinPorts is buggy.
comment:8 Changed 18 years ago by pipping@…
Milestone: | → Available Ports |
---|
comment:9 Changed 18 years ago by pipping@…
Owner: | changed from waqar@… to pipping@… |
---|---|
Status: | new → assigned |
comment:11 Changed 18 years ago by pipping@…
Milestone: | Available Ports → Port Bugs |
---|
comment:12 Changed 18 years ago by pipping@…
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
no new feedback, presumably fixed in r22947.
BTW, the Portfile should have port:readline in depends_lib.
And concerning the library name, this seems to be a MacOS-only bug. There's no such problem under Linux (Debian):
dixsept:~> ldd =gpg [...]
[...] dixsept:~> ls -lgo /lib/libreadline.so.5 lrwxrwxrwx 1 18 2006-03-25 23:52:23 /lib/libreadline.so.5 -> libreadline.so.5.1
As you can see, here gpg is linked against libreadline.so.5, not libreadline.so.5.1.