#26860 closed defect (fixed)
curl 7.21.2 +universal fails with librtmp installed
Reported by: | dbevans (David B. Evans) | Owned by: | ryandesign (Ryan Carsten Schmidt) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 1.9.1 |
Keywords: | universal | Cc: | |
Port: | curl |
Description
While attempting to upgrade to 7.21.2 on SL x86_64, curl +universal fails in destroot with
---> Staging curl into destroot Error: Target org.macports.destroot returned: /opt/local/bin/curl-config differs in /opt/local/var/macports/build/_Volumes_wdc-320_opt_macports_trunk_dports_net_curl/work/destroot-i386 and /opt/local/var/macports/build/_Volumes_wdc-320_opt_macports_trunk_dports_net_curl/work/destroot-x86_64 and cannot be merged Log for curl is at: /opt/local/var/macports/logs/_Volumes_wdc-320_opt_macports_trunk_dports_net_curl/main.log Error: Unable to upgrade port: 1
this is similar to #24001 but the diff is different
--- destroot-i386/opt/local/bin/curl-config 2010-10-15 12:25:56.000000000 -0700 +++ destroot-x86_64/opt/local/bin/curl-config 2010-10-15 12:25:54.000000000 -0700 @@ -142,14 +142,14 @@ CURLLIBDIR="" fi if test "Xyes" = "Xyes"; then - echo ${CURLLIBDIR}-lcurl -L/opt/local/lib -L/opt/local/lib -L/opt/local/lib -lidn -lssl -lcrypto -lssl -lcrypto -lz -lz + echo ${CURLLIBDIR}-lcurl -L/opt/local/lib -L/opt/local/lib -L/opt/local/lib -lidn -lssl -lcrypto -lssl -lcrypto -lz -lz -lrtmp else echo ${CURLLIBDIR}-lcurl -L/opt/local/lib -L/opt/local/lib -L/opt/local/lib fi ;; --static-libs) - echo ${exec_prefix}/lib/libcurl.a -L/opt/local/lib -L/opt/local/lib -L/opt/local/lib -lidn -lssl -lcrypto -lssl -lcrypto -lz -lz + echo ${exec_prefix}/lib/libcurl.a -L/opt/local/lib -L/opt/local/lib -L/opt/local/lib -lidn -lssl -lcrypto -lssl -lcrypto -lz -lz -lrtmp ;; --configure)
Previous version built +universal without problem. Log file attached.
Attachments (1)
Change History (5)
Changed 14 years ago by dbevans (David B. Evans)
comment:1 Changed 14 years ago by ryandesign (Ryan Carsten Schmidt)
Status: | new → assigned |
---|---|
Summary: | curl +universal: destroot fails after recent upgrade to 7.21.2 → curl 7.21.2 +universal fails with librtmp installed |
curl apparently now supports librtmp. The MacPorts rtmpdump port does not install the librtmp library, but you appear to have an x86_64-only librtmp installed somewhere, perhaps in /usr/lib or /usr/local/lib? I have modified curl in r72454 to disable librtmp and a couple other libraries we never use; please "sudo port selfupdate" and try again. And if you have anything installed in /usr/local, please remove it since, as you see, it can interfere with MacPorts.
comment:2 Changed 14 years ago by dbevans (David B. Evans)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Nothing in /usr/local at all. The culprit is /opt/local/lib/librtmp.a which is provided by rtmpdump
devans% port provides /opt/local/lib/librtmp.a /opt/local/lib/librtmp.a is provided by: rtmpdump
and, as you say, rtmpdump is built x86_64 only.
devans% port installed rtmpdump The following ports are currently installed: rtmpdump @2.2_2 (active)
At any rate, your patch allows curl to build universal again. Thanks.
comment:3 Changed 14 years ago by ryandesign (Ryan Carsten Schmidt)
Have you modified rtmpdump? Mine only installs binaries, and indeed its Portfile shows that's all that happens in the destroot:
destroot { xinstall -m 755 -W ${worksrcpath} rtmpdump rtmpsuck rtmpsrv rtmpgw ${destroot}${prefix}/bin }
There shouldn't be any libraries installed.
comment:4 Changed 14 years ago by dbevans (David B. Evans)
Yes, that's it. Some time ago I was experimenting with adding librtmp support to ffmpeg-devel and so I made a temporary local port file to generate the library. I deleted the local Portfile but forgot to restore the installed version. After reinstalling the rtmpdump port using the official Portfile, the library is gone.
So my fault but the fix is still worth the effort.
Debug log