Bug 458286

Summary: transmission must link with system libevent library
Product: [Fedora] Fedora Reporter: Mukund Sivaraman <muks>
Component: transmissionAssignee: Denis Leroy <denis>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: low    
Version: rawhideCC: charles, mclasen
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-09-28 13:47:01 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Mukund Sivaraman 2008-08-07 13:59:55 UTC
Description of problem:

The transmission binary currently uses its own local libevent which it pulls in as a svn external repository.

It must use the libevent package as a dependency and link to it.

Comment 1 Denis Leroy 2008-08-24 12:17:46 UTC
I don't see this as a big deal. I'll ask upstream why they use their own copy of libevent, they might have a good reason for it.

Comment 2 Matthias Clasen 2008-09-23 05:47:32 UTC
While looking at livecd size issues, I noticed that the transmission package grew by over 33% over the course of F10 development. Looking into this, I couldn't help but notice that transmission statically links a bunch of private libraries into at least 3 or 4 binaries. 

Beyond the policy-demands-you-use-system-libraries issue, this is wasteful in terms of disk space.

Comment 3 Mukund Sivaraman 2008-09-23 06:07:45 UTC
Matthias: Transmission couldn't have linked to libevent in F9 because it was too old. The one in F10 should be okay and we will rework the configure scripts to detect and link to the system libevent.

There are a few more libs, which first need to be supported as shared libraries before TR can link to them at runtime. These are small in size though.

Comment 4 Matthias Clasen 2008-09-23 13:30:56 UTC
Then there is probably something else going on. Some of the binaries, such as the cli and the remote one, have tripled in size, compared to F9

Comment 5 Matthias Clasen 2008-09-23 13:53:08 UTC
Here is the size comparison: 

F9:

[mclasen@localhost ~]$ rpm -qp --qf "[%{FILESIZES} %{FILENAMES}\n]" transmission-1.06-1.fc9.i386.rpm | grep /usr/bin
warning: transmission-1.06-1.fc9.i386.rpm: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2
512380 /usr/bin/transmission
332100 /usr/bin/transmission-daemon
48356 /usr/bin/transmission-proxy
110628 /usr/bin/transmission-remote
278512 /usr/bin/transmissioncli

rawhide:

[mclasen@localhost ~]$ rpm -q --qf "[%{FILESIZES} %{FILENAMES}\n]" transmission | grep /usr/bin
564916 /usr/bin/transmission
335304 /usr/bin/transmission-daemon
349352 /usr/bin/transmission-remote
344280 /usr/bin/transmissioncli

Comment 6 Matthias Clasen 2008-09-23 13:53:28 UTC
[mclasen@localhost ~]$ ldd /usr/bin/transmission-remote 
	linux-gate.so.1 =>  (0x00110000)
	libnsl.so.1 => /lib/libnsl.so.1 (0x007ec000)
	librt.so.1 => /lib/librt.so.1 (0x00b2e000)
	libresolv.so.2 => /lib/libresolv.so.2 (0x00808000)
	libssl.so.7 => /lib/libssl.so.7 (0x077ed000)
	libcrypto.so.7 => /lib/libcrypto.so.7 (0x075c3000)
	libdl.so.2 => /lib/libdl.so.2 (0x009f2000)
	libz.so.1 => /lib/libz.so.1 (0x00a33000)
	libcurl.so.4 => /usr/lib/libcurl.so.4 (0x00cdf000)
	libm.so.6 => /lib/libm.so.6 (0x009c7000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x009f9000)
	libc.so.6 => /lib/libc.so.6 (0x00851000)
	/lib/ld-linux.so.2 (0x00823000)
	libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x0753d000)
	libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x07713000)
	libcom_err.so.2 => /lib/libcom_err.so.2 (0x075ae000)
	libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x0756e000)
	libidn.so.11 => /lib/libidn.so.11 (0x077b9000)
	libssh2.so.1 => /usr/lib/libssh2.so.1 (0x001e1000)
	libldap-2.4.so.2 => /usr/lib/libldap-2.4.so.2 (0x003d8000)
	libssl3.so => /lib/libssl3.so (0x070f5000)
	libsmime3.so => /lib/libsmime3.so (0x07128000)
	libnss3.so => /lib/libnss3.so (0x07404000)
	libplds4.so => /lib/libplds4.so (0x07be7000)
	libplc4.so => /lib/libplc4.so (0x07b9e000)
	libnspr4.so => /lib/libnspr4.so (0x07ba5000)
	libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00625000)
	libkeyutils.so.1 => /lib/libkeyutils.so.1 (0x077b4000)
	liblber-2.4.so.2 => /usr/lib/liblber-2.4.so.2 (0x00220000)
	libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x00722000)
	libnssutil3.so => /lib/libnssutil3.so (0x005d8000)
	libselinux.so.1 => /lib/libselinux.so.1 (0x00111000)
	libcrypt.so.1 => /lib/libcrypt.so.1 (0x07a67000)

Comment 7 Denis Leroy 2008-09-23 14:00:28 UTC
Matthias, the extra size I'm guessing is the new web interface feature. How about if I split this into a sub-package ?

Comment 8 Matthias Clasen 2008-09-23 14:07:10 UTC
If it is actual new features, then I don't mind the size increase - its not a huge package after all. I would mind a 33% size increase if it is just a linking error...

Comment 9 Mukund Sivaraman 2008-09-23 14:14:11 UTC
Denis, please wait on splitting packages for now. We'll do the required changes upstream so libtransmission can be made a separate package. Then, the non-gtk dependent binaries can be split into a different package from the gtk app, both of which would link to libtransmission.

Comment 11 Charles Kerr 2009-06-03 17:09:05 UTC
Upstream now tries to use the system version of libevent by default:

http://trac.transmissionbt.com/changeset?new=8601%40%2F&old=8598%40%2F