* Add Debian 12 installation instructions * Rename QT to Qt * Remove GTK4 packages #5858 bumped minimum required GTK4 past what Bookworm can offer. * Tr does not bring its own libsystemd-dev
6.3 KiB
Getting the Source
The source code for both official and nightly releases can be found on our download page.
On macOS
Software prerequisites:
- macOS 10.14.4 or newer
- Xcode 11.3.1 or newer
Building the project on Mac requires the source to be retrieved from GitHub. Pre-packaged source code will not compile.
git clone --recurse-submodules https://github.com/transmission/transmission Transmission
If building from source is too daunting for you, check out the nightly builds. (Note: These are untested snapshots. Use them with care.)
Building the native app with Xcode
Transmission has an Xcode project file for building in Xcode.
- Open Transmission.xcodeproj
- Run the Transmission scheme
Building the native app with CMake
Build the app:
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build -t transmission-mac
open ./build/macosx/Transmission.app
Building the GTK app with CMake
Install GTK and build the app:
brew install gtk4 gtkmm4
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_GTK=ON -DENABLE_MAC=OFF
cmake --build build -t transmission-gtk
./build/gtk/transmission-gtk
On Unix
Prerequisites
Debian 12 / Bookworm
On Debian, you can build transmission with a few dependencies on top of a base installation.
For building transmission-daemon you will need basic dependencies:
$ sudo apt install build-essential cmake git libcurl4-openssl-dev libssl-dev
These packages are not mandatory for a working binary. Transmission brings its own libraries if they aren't installed, except for libsystemd-dev.
$ sudo apt install libb64-dev libdeflate-dev libevent-dev libminiupnpc-dev libnatpmp-dev libpsl-dev libsystemd-dev
You likely want to install transmission as a native GUI application. There are two options, GTK and Qt.
GTK 3 client:
$ sudo apt install gettext libgtkmm-3.0-dev
Qt5 client:
$ sudo apt install libqt5svg5-dev qttools5-dev
Qt6 client:
$ sudo apt install qt6-svg-dev qt6-tools-dev
Then you can begin building.
Debian 11 / Bullseye
On Debian, you can build transmission with a few dependencies on top of a base installation.
For building transmission-daemon you will need basic dependencies
$ sudo apt install git build-essential cmake libcurl4-openssl-dev libssl-dev python3
You likely want to install transmission as a native GUI application. There are two options, GTK and Qt.
For GTK 3 client, two additional packages are required
$ sudo apt install libgtkmm-3.0-dev gettext
For Qt client, one additional package is needed on top of basic dependencies
$ sudo apt install qttools5-dev
Then you can begin building.
Ubuntu
On Ubuntu, you can install the required development tools for GTK with this command:
$ sudo apt-get install build-essential automake autoconf libtool pkg-config intltool libcurl4-openssl-dev libglib2.0-dev libevent-dev libminiupnpc-dev libgtk-3-dev libappindicator3-dev libssl-dev
Then you can begin building.
CentOS 5.4
The packages you need are:
- gcc
- gcc-c++
- m4
- make
- automake
- libtool
- gettext
- openssl-devel
Or simply run the following command:
$ yum install gcc gcc-c++ m4 make automake libtool gettext openssl-devel
However, Transmission needs other packages unavailable in yum:
Before building Transmission, you need to set the pkgconfig environment setting:
$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
Building Transmission from Git (first time)
$ git clone --recurse-submodules https://github.com/transmission/transmission Transmission
$ cd Transmission
# Use -DCMAKE_BUILD_TYPE=RelWithDebInfo to build optimized binary with debug information. (preferred)
# Use -DCMAKE_BUILD_TYPE=Release to build full optimized binary.
$ cmake -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo
$ cd build
$ cmake --build .
$ sudo cmake --install .
Building Transmission from Git (updating)
$ cd Transmission/build
$ cmake --build . -t clean
$ git submodule foreach --recursive git clean -xfd
$ git pull --rebase --prune
$ git submodule update --init --recursive
$ cmake --build .
$ sudo cmake --install .
On Windows
Prerequisites
You need the following installed:
- Visual Studio 2019 or greater (the Community Edition is sufficient)
- install the "Desktop Development with C++" workload
- install the ATL and MFC components (only needed by the Qt client)
- CMake (choose to add CMake to your path)
- Git for Windows
- Vcpkg
- Python
Install dependencies through vcpkg
Vcpkg will install x86 libraries by default. To install x64 add the --triplet=x64-windows flag at the end of the commands below.
Common dependencies:
vcpkg install curl zlib openssl
Additional dependencies for the Qt client:
vcpkg install qt5-tools qt5-winextras
Get Transmission source
git clone https://github.com/transmission/transmission
cd transmission
git submodule update --init --recursive
Configure CMake and build the project
To configure which components are built use the flags below.
Each option can be set to ON or OFF, values shown below are the defaults.
-DENABLE_DAEMON=ON- build transmission daemon-DENABLE_QT=AUTO- build the Qt client-DENABLE_UTILS=ON- build transmission-remote, transmission-create, transmission-edit and transmission-show cli tools-DENABLE_CLI=OFF- build the cli client
cmake -B build -DCMAKE_TOOLCHAIN_FILE="<path-to-vcpkg>\scripts\buildsystems\vcpkg.cmake" <flags-from-above> <other-cmake-configurations>
To build the project run:
cmake --build build