diff --git a/trunk/PKGBUILD b/trunk/PKGBUILD index 0b5c660..a412a14 100644 --- a/trunk/PKGBUILD +++ b/trunk/PKGBUILD @@ -13,7 +13,7 @@ license=(GPL) makedepends=( cmake curl - dht +# dht glibmm-2.68 gtk4 gtkmm-4.0 @@ -21,7 +21,9 @@ makedepends=( libb64 libdeflate libevent + libpsl libnatpmp +# libutp miniupnpc ninja npm @@ -32,107 +34,101 @@ makedepends=( ) source=(https://github.com/transmission/transmission/releases/download/$pkgver/transmission-$pkgver.tar.xz transmission-cli.sysusers - transmission-cli.tmpfiles) + transmission-cli.tmpfiles + transmission-4.0.1-shared-lib.patch + transmission-4.0.1-components.patch) sha256sums=('8fc5aef23638c983406f6a3ee9918369e4cdc84e3228bd2fb3d01dd55cdad900' '641310fb0590d40e00bea1b5b9c843953ab78edf019109f276be9c6a7bdaf5b2' - '1266032bb07e47d6bcdc7dabd74df2557cc466c33bf983a5881316a4cc098451') + '1266032bb07e47d6bcdc7dabd74df2557cc466c33bf983a5881316a4cc098451' + 'bc3fdc1ee8d29081fe98741be23b5506809aa804ff386800f66b4d18ebbf77ba' + '88f9e8acc98cde6a0d2d445a78e25372ebd80c3d1084e54a6defe7b5e189aa10') + +prepare() { + cd $pkgbase-$pkgver + patch -Np1 -i ../transmission-4.0.1-shared-lib.patch + patch -Np1 -i ../transmission-4.0.1-components.patch +} + + build() { export CFLAGS+=" -ffat-lto-objects" - cd $pkgbase-$pkgver - cmake -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DENABLE_CLI=ON \ - -DENABLE_DAEMON=ON \ - -DENABLE_GTK=ON \ - -DENABLE_MAC=OFF \ - -DENABLE_QT=ON \ - -DREBUILD_WEB=ON \ - -DENABLE_TESTS=ON \ - -DENABLE_UTILS=ON \ - -DENABLE_UTP=ON \ - -DINSTALL_LIB=ON \ - -DUSE_SYSTEM_B64=ON \ - -DUSE_SYSTEM_DEFLATE=ON \ - -DUSE_SYSTEM_DHT=ON \ - -DUSE_SYSTEM_EVENT2=ON \ - -DUSE_SYSTEM_MINIUPNPC=ON \ - -DUSE_SYSTEM_NATPMP=ON \ - -DUSE_SYSTEM_PSL=ON \ - -DUSE_SYSTEM_UTP=OFF \ - -DWITH_CRYPTO=openssl \ - -S . -B build + cmake -B build -S $pkgbase-$pkgver -G Ninja \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DENABLE_CLI=ON \ + -DENABLE_DAEMON=ON \ + -DENABLE_GTK=ON \ + -DENABLE_MAC=OFF \ + -DENABLE_QT=ON \ + -DREBUILD_WEB=ON \ + -DENABLE_TESTS=ON \ + -DENABLE_UTILS=ON \ + -DENABLE_UTP=ON \ + -DINSTALL_LIB=ON \ + -DUSE_SYSTEM_B64=ON \ + -DUSE_SYSTEM_DEFLATE=ON \ + -DUSE_SYSTEM_DHT=OFF \ + -DUSE_SYSTEM_EVENT2=ON \ + -DUSE_SYSTEM_MINIUPNPC=ON \ + -DUSE_SYSTEM_NATPMP=ON \ + -DUSE_SYSTEM_PSL=ON \ + -DUSE_SYSTEM_UTP=OFF \ + -DWITH_CRYPTO=openssl +#TODO enabled USE_SYSTEM_DHT and USE_SYSTEM_UTP cmake --build build --config Release } check() { - cd $pkgbase-$pkgver - - cd build - ctest --output-on-failure -j "$(nproc)" -} - -_install_component() { - (cd $srcdir/$pkgbase-$pkgver/build; DESTDIR="$pkgdir" ninja $1/install) + ctest --test-dir build --output-on-failure -j "$(nproc)" } package_transmission-cli() { pkgdesc='Fast, easy, and free BitTorrent client (CLI tools, daemon and web client)' - depends=(curl libevent systemd libb64 miniupnpc libnatpmp libdeflate) - - cd $pkgbase-$pkgver + depends=(libtransmission) - for dir in daemon cli web utils; do - _install_component $dir - done + DESTDIR="$pkgdir" cmake --install build --component Unspecified - install -d "$pkgdir"/usr/share/transmission - cp -a build/web/public_html/ "$pkgdir"/usr/share/transmission - - install -Dm644 daemon/transmission-daemon.service \ + install -Dm644 $pkgbase-$pkgver/daemon/transmission-daemon.service \ "$pkgdir/usr/lib/systemd/system/transmission.service" - install -Dm644 COPYING "$pkgdir/usr/share/licenses/transmission-cli/COPYING" + install -dm 0755 "${pkgdir}"/usr/share/licenses + ln -s libtransmission "${pkgdir}"/usr/share/licenses/$pkgname - install -Dm644 "$srcdir/$pkgname.sysusers" \ - "$pkgdir/usr/lib/sysusers.d/transmission.conf" - install -Dm644 "$srcdir/$pkgname.tmpfiles" \ - "$pkgdir/usr/lib/tmpfiles.d/transmission.conf" + install -Dm644 $pkgname.sysusers "$pkgdir/usr/lib/sysusers.d/transmission.conf" + install -Dm644 $pkgname.tmpfiles "$pkgdir/usr/lib/tmpfiles.d/transmission.conf" } package_transmission-gtk() { pkgdesc='Fast, easy, and free BitTorrent client (GTK+ GUI)' - depends=(curl libevent gtk4 hicolor-icon-theme libb64 miniupnpc libnatpmp libdeflate gtkmm-4.0) + depends=(libtransmission gtk4 hicolor-icon-theme glibmm-2.68 gtkmm-4.0) optdepends=('libnotify: Desktop notification support' 'transmission-cli: daemon and web support') - cd $pkgbase-$pkgver + DESTDIR="$pkgdir" cmake --install build --component gtk - _install_component gtk - _install_component po - - install -Dm644 COPYING "$pkgdir/usr/share/licenses/transmission-gtk/COPYING" + install -dm 0755 "${pkgdir}"/usr/share/licenses + ln -s libtransmission "${pkgdir}"/usr/share/licenses/$pkgname } package_transmission-qt() { pkgdesc='Fast, easy, and free BitTorrent client (Qt GUI)' - depends=(curl qt6-base qt6-svg libevent libb64 miniupnpc libnatpmp libdeflate) + depends=(libtransmission qt6-base qt6-svg) optdepends=('transmission-cli: daemon and web support') - cd $pkgbase-$pkgver - - _install_component qt + DESTDIR="$pkgdir" cmake --install build --component qt - install -Dm644 COPYING "$pkgdir/usr/share/licenses/transmission-qt/COPYING" + install -dm 0755 "${pkgdir}"/usr/share/licenses + ln -s libtransmission "${pkgdir}"/usr/share/licenses/$pkgname } package_libtransmission() { pkgdesc='Fast, easy, and free BitTorrent client (shared library)' + depends=(curl libb64 libdeflate libevent libpsl libnatpmp miniupnpc systemd) - cd $pkgbase-$pkgver + DESTDIR="$pkgdir" cmake --install build --component lib - install -Dm644 build/libtransmission/libtransmission.a -t "$pkgdir"/usr/lib - install -Dm644 libtransmission/*.h -t "$pkgdir"/usr/include/transmission - install -Dm644 COPYING "$pkgdir/usr/share/licenses/libtransmission/COPYING" + install -Dm644 $pkgbase-$pkgver/COPYING \ + "$pkgdir/usr/share/licenses/$pkgname/COPYING" } diff --git a/trunk/transmission-4.0.1-components.patch b/trunk/transmission-4.0.1-components.patch new file mode 100644 index 0000000..d589261 --- /dev/null +++ b/trunk/transmission-4.0.1-components.patch @@ -0,0 +1,143 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f9a83a0..c0557e9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -795,10 +795,12 @@ if(INSTALL_DOC) + README.md + docs/rpc-spec.md + extras/send-email-when-torrent-done.sh +- DESTINATION ${CMAKE_INSTALL_DOCDIR}) ++ DESTINATION ${CMAKE_INSTALL_DOCDIR} ++ COMPONENT lib) + install( + DIRECTORY news +- DESTINATION ${CMAKE_INSTALL_DOCDIR}) ++ DESTINATION ${CMAKE_INSTALL_DOCDIR} ++ COMPONENT lib) + endif() + + if(MSVC AND ENABLE_DAEMON AND ENABLE_QT AND ENABLE_UTILS AND WITH_CRYPTO STREQUAL "openssl" AND INSTALL_WEB) +diff --git a/gtk/CMakeLists.txt b/gtk/CMakeLists.txt +index 0d2499f..3b43e81 100644 +--- a/gtk/CMakeLists.txt ++++ b/gtk/CMakeLists.txt +@@ -206,7 +206,8 @@ tr_win32_app_info(${TR_NAME}-gtk + + install( + TARGETS ${TR_NAME}-gtk +- DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ DESTINATION ${CMAKE_INSTALL_BINDIR} ++ COMPONENT gtk) + + set(PUBLIC_ICONS + hicolor_apps_scalable_transmission.svg +@@ -220,25 +221,30 @@ foreach(ICON ${PUBLIC_ICONS}) + install( + FILES icons/${ICON} + DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/${ICON_DIR}/ ++ COMPONENT lib + RENAME ${ICON_NAME}) + endforeach() + + if(INSTALL_DOC) + install( + FILES ${TR_NAME}-gtk.1 +- DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) ++ DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 ++ COMPONENT gtk) + endif() + + if(ENABLE_NLS) + install( + FILES ${DESKTOP_FILE} +- DESTINATION ${CMAKE_INSTALL_DATADIR}/applications) ++ DESTINATION ${CMAKE_INSTALL_DATADIR}/applications ++ COMPONENT gtk) + install( + FILES ${METAINFO_FILE} +- DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo) ++ DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo ++ COMPONENT gtk) + else() + install( + FILES transmission-gtk.desktop.in + DESTINATION ${CMAKE_INSTALL_DATADIR}/applications ++ COMPONENT gtk + RENAME ${TR_NAME}-gtk.desktop) + endif() +diff --git a/libtransmission/CMakeLists.txt b/libtransmission/CMakeLists.txt +index a119d89..aa8584d 100644 +--- a/libtransmission/CMakeLists.txt ++++ b/libtransmission/CMakeLists.txt +@@ -295,7 +295,8 @@ target_link_libraries(${TR_NAME} + if(INSTALL_LIB) + install( + TARGETS ${TR_NAME} +- DESTINATION ${CMAKE_INSTALL_LIBDIR}) ++ DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ COMPONENT lib) + install( + FILES + error-types.h +@@ -320,5 +321,6 @@ if(INSTALL_LIB) + web-utils.h + web.h + ${CMAKE_CURRENT_BINARY_DIR}/version.h +- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${TR_NAME}) ++ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${TR_NAME} ++ COMPONENT lib) + endif() +diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt +index 50dc0e1..d137af6 100644 +--- a/po/CMakeLists.txt ++++ b/po/CMakeLists.txt +@@ -110,6 +110,7 @@ foreach(LANG ${ENABLED_LINGUAS}) + install( + FILES ${msgfmt_OUTPUT_FILE} + DESTINATION ${CMAKE_INSTALL_LOCALEDIR}/${LANG}/LC_MESSAGES/ ++ COMPONENT gtk + RENAME ${GETTEXT_PACKAGE}.mo) + endforeach() + +diff --git a/qt/CMakeLists.txt b/qt/CMakeLists.txt +index 2aa42a6..71e5a3b 100644 +--- a/qt/CMakeLists.txt ++++ b/qt/CMakeLists.txt +@@ -235,22 +235,26 @@ tr_win32_app_info(${TR_NAME}-qt + + install( + TARGETS ${TR_NAME}-qt +- DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ DESTINATION ${CMAKE_INSTALL_BINDIR} ++ COMPONENT qt) + + if(INSTALL_DOC) + install( + FILES ${TR_NAME}-qt.1 +- DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) ++ DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 ++ COMPONENT qt) + endif() + + install( + FILES transmission-qt.desktop +- DESTINATION ${CMAKE_INSTALL_DATADIR}/applications) ++ DESTINATION ${CMAKE_INSTALL_DATADIR}/applications ++ COMPONENT qt) + + if(ENABLE_NLS) + install( + FILES ${QM_FILES} +- DESTINATION ${CMAKE_INSTALL_DATADIR}/${TR_NAME}/translations) ++ DESTINATION ${CMAKE_INSTALL_DATADIR}/${TR_NAME}/translations ++ COMPONENT qt) + endif() + + if(WIN32) +@@ -260,5 +264,6 @@ if(WIN32) + install( + FILES "${CMAKE_CURRENT_BINARY_DIR}/dist-qt.conf" + DESTINATION ${CMAKE_INSTALL_SYSCONFDIR} ++ COMPONENT qt + RENAME qt.conf) + endif() diff --git a/trunk/transmission-4.0.1-shared-lib.patch b/trunk/transmission-4.0.1-shared-lib.patch new file mode 100644 index 0000000..f6d0b67 --- /dev/null +++ b/trunk/transmission-4.0.1-shared-lib.patch @@ -0,0 +1,13 @@ +diff --git a/libtransmission/CMakeLists.txt b/libtransmission/CMakeLists.txt +index 3620805..a119d89 100644 +--- a/libtransmission/CMakeLists.txt ++++ b/libtransmission/CMakeLists.txt +@@ -10,7 +10,7 @@ endif() + + check_symbol_exists(SO_REUSEPORT "sys/types.h;sys/socket.h" HAVE_SO_REUSEPORT) + +-add_library(${TR_NAME} STATIC) ++add_library(${TR_NAME} SHARED) + + target_sources(${TR_NAME} + PRIVATE