Opened 4 years ago

Closed 4 years ago

#60485 closed defect (fixed)

librdkafka: Opportunistically uses lots of libraries

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: alexeyt820
Priority: Normal Milestone:
Component: ports Version: 2.6.2
Keywords: Cc:
Port: librdkafka

Description

librdkafka opportunistically uses lots of libraries.

The binary built by our build server on which no extra libraries would be installed has the following linkage:

$ otool -L ./opt/local/lib/librdkafka.1.dylib
./opt/local/lib/librdkafka.1.dylib:
	/opt/local/lib/librdkafka.1.dylib (compatibility version 0.0.0, current version 0.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.50.4)
	/usr/lib/libsasl2.2.dylib (compatibility version 3.0.0, current version 3.15.0)
	/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)

In contrast, building it from source on my own computer which has many extra libraries installed had the following linkage:

$ otool -L ./opt/local/lib/librdkafka.1.dylib
./opt/local/lib/librdkafka.1.dylib:
	/opt/local/lib/librdkafka.1.dylib (compatibility version 0.0.0, current version 0.0.0)
	/opt/local/lib/liblz4.1.dylib (compatibility version 1.0.0, current version 1.9.2)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.50.4)
	/opt/local/lib/libzstd.1.dylib (compatibility version 1.0.0, current version 1.4.4)
	/opt/local/lib/libsasl2.3.dylib (compatibility version 4.0.0, current version 4.0.0)
	/opt/local/lib/libssl.1.1.dylib (compatibility version 1.1.0, current version 1.1.0)
	/opt/local/lib/libcrypto.1.1.dylib (compatibility version 1.1.0, current version 1.1.0)
	/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)

As you can see there are lots of MacPorts libraries that librdkafka will link with if they exist. For each such library, one of two fixes could be employed: either add the dependency on the corresponding MacPorts port or tell the build system not to use that library even if it is present. And then the revision would need to be increased.

Change History (2)

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

Owner: changed from ra1nb0w to alexeyt820

comment:2 Changed 4 years ago by alexeyt820

Resolution: fixed
Status: assignedclosed

In 5ce3b00ccae3971cf23b55b4cd38143cc0f7acca/macports-ports (master):

librdkafka: fix opportunistic linkage

Fixes: #60485

Note: See TracTickets for help on using tickets.