Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#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)

main.log (325.1 KB) - added by dbevans (David B. Evans) 13 years ago.
Debug log

Download all attachments as: .zip

Change History (5)

Changed 13 years ago by dbevans (David B. Evans)

Attachment: main.log added

Debug log

comment:1 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Status: newassigned
Summary: curl +universal: destroot fails after recent upgrade to 7.21.2curl 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 13 years ago by dbevans (David B. Evans)

Resolution: fixed
Status: assignedclosed

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 13 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 13 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.

Note: See TracTickets for help on using tickets.