Version 41 (modified by charles, 12 years ago) (diff) |
---|
Building Transmission
If you are searching for a HOWTO, covering a specific desitribution or device (NAS, router, ...), have a look at the Running Transmission on a headless machine page
Getting the Source
Recommended
Source code for official releases can be found on our download page.
Experimental
Automated source code tarballs including the newest code are now available, too!
If you want to check out the source code yourself from svn, open a terminal window and type:
$ svn co svn://svn.m0k.org/Transmission/trunk Transmission
On Mac OSX
Transmission has an Xcode project file (Transmission.xcodeproj) for building in Xcode. Make sure you have this software:
- Mac OS X 10.6 or newer
- Mac OS X 10.6 SDK
- Xcode 3.2 or newer
(Found on your OSX installation disk, or from the Apple Developer website)
If building from source is too daunting for you, check out the nightly builds.
(Note: These are untested snapshots. Use them with care.)
On CentOS 5.4
These instructions submitted by abiko
Compiling Transmission 1.76 on CentOS 5.4
Needed package to begin building at the first place: yum install gcc gcc-c++ m4 make automake libtool gettext openssl-devel
Source archives to be downloaded :
- http://mirrors.m0k.org/transmission/files/transmission-1.76.tar.bz2
- http://pkgconfig.freedesktop.org/releases/pkg-config-0.23.tar.gz
- http://curl.haxx.se/download/curl-7.19.7.tar.gz
- http://ftp.gnome.org/pub/gnome/sources/intltool/0.40/intltool-0.40.6.tar.gz
Installation: # PKG config tar czfv pkg-config-0.23.tar.gz cd pkg-config-0.23 ./configure make make install #intltool tar xzfv intltool-0.40.6.tar.gz cd intltool-0.40.6 ./configure make make install #CURL tar xzfv czrl-7.19.7.tar.gz cd curl-7.19.7 ./configure make make install #transmission export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig tar xjfv transmission-1.76.tar.bz2 cd transmission-1.76 ./configure --enable-daemon make make install Transmission is installed in /usr/local/bin
On Unix
Prerequisites
Ubuntu users: The packages you need are: build-essential automake autoconf libtool pkg-config libcurl4-openssl-dev intltool libxml2-dev libgtk2.0-dev libnotify-dev libglib2.0-dev. After you install those you can skip this section.
If this is your first time compiling on Unix, you'll need a few basic tools:
- gcc
- libtool
- gettext 0.14.1 or newer
- intltool 0.23 or newer
If you're planning to build from SVN:
- automake 1.9 or newer
- autoconf 2.54 or newer
Once you've got the basics out of the way, here are the libraries that Transmission needs to have in order to build:
- OpenSSL 0.9.8 or newer, preferably ssl or gnutls support.
- libcurl 7.16.3 or newer
- GTK+ 2.6 or newer (only needed by the GTK+ gui)
- libnotify 0.4.4 (optional, and only needed by the GTK+ gui)
- DBUS 0.70 (optional, and only needed by the GTK+ gui)
RPM users: you'll also need to install the corresponding -devel packages.
Building from a tarball
$ tar xvjf transmission-1.40.tar.bz2 $ cd transmission-1.40 $ ./configure -q && make -s $ su (if necessary for the next line) $ make install
Building from an SVN snapshot
First Time
$ svn co svn://svn.m0k.org/Transmission/trunk Transmission $ cd Transmission $ ./autogen.sh && make -s $ su (if necessary for the next line) $ make install
Updating
$ cd Transmission $ make clean $ svn up $ make -s $ su (if necessary for the next line) $ make install
On Windows
For Windows XP and above there are several choices:
Cygwin environment
With Cygwin http://cygwin.com/ installed, the CLI tools (transmission-remote, transmissioncli) and the daemon can be built easily.
Take a look at one procedure http://forum.transmissionbt.com/viewtopic.php?f=1&t=7612#p37238 ( here's a patch for version 1.71 : Building/transmission-1.71-Cygwin-build.diff), and a better patch which works with 1.73 and probably every future version: http://forum.transmissionbt.com/viewtopic.php?f=3&t=8353&p=39489#p39489.
Native Windows
With a MinGW http://mingw.org/ development environment, the Gtk and the Qt GUI applications can be built.
The procedure: wiki:BuildingTransmissionQtWindows
Switches
The transmission ./configure (or ./autogen.sh) script allows you to switch on/off certain parts. To use these, you'll either use --enable-* or --disable-*. eg. To disable the GTK client: --disable-gtk.
The switches that are available are:
- gtk = enables GTK+ client (default)
- daemon = enables transmission-daemon and *-remote client (default)
- cli = enables cli client (default. deprecated, consider using the daemon)
- libnotify = enables lib notify (default)
- nls = enables native language support (default)
- mac = enables Mac client (default, if possible)
- wx = enables wxWidgets client (unsupported)
- beos = enables beos client (unsupported)
Note: --disable-nls removes the dependancy on gettext and intltool. It's designed for, and should only be used on, embedded devices. If you do have GTK+ installed on your box, you must also specify --disable-gtk.
Comments
- How do you build a debug version? It could be a useful addition to configure's parameters.