summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Kirchner2021-03-14 20:40:57 +0100
committerDaniel Kirchner2021-03-14 20:40:57 +0100
commit76376d738fce25dfc745267e2130bd4e937970d8 (patch)
tree966a5b99e35f6ce4c4f7c6f70512cfadcea43958
downloadaur-76376d738fce25dfc745267e2130bd4e937970d8.tar.gz
Initial commit.
-rw-r--r--.SRCINFO34
-rw-r--r--PKGBUILD61
-rw-r--r--transmission-cli.sysusers1
-rw-r--r--transmission-cli.tmpfiles1
-rw-r--r--transmission-qt-ssl.patch118
5 files changed, 215 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..c5638dc25336
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,34 @@
+pkgbase = transmission-qt-ssl-git
+ pkgdesc = Fast, easy, and free BitTorrent client (Qt GUI + SSL remote session patch)
+ pkgver = 3.00
+ pkgrel = 1
+ url = http://www.transmissionbt.com/
+ arch = x86_64
+ license = MIT
+ makedepends = gtk3
+ makedepends = intltool
+ makedepends = curl
+ makedepends = qt5-base
+ makedepends = libevent
+ makedepends = systemd
+ makedepends = qt5-tools
+ makedepends = git
+ makedepends = cmake
+ depends = curl
+ depends = qt5-base
+ depends = libevent
+ optdepends = transmission-cli: daemon and web support
+ provides = transmission-qt
+ conflicts = transmission-qt
+ conflicts = transmission-qt-git
+ source = git+https://github.com/transmission/transmission.git
+ source = transmission-cli.sysusers
+ source = transmission-cli.tmpfiles
+ source = transmission-qt-ssl.patch
+ sha256sums = SKIP
+ sha256sums = SKIP
+ sha256sums = SKIP
+ sha256sums = SKIP
+
+pkgname = transmission-qt-ssl-git
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..d8717cc3113a
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,61 @@
+# Maintainer : Daniel Kirchner <daniel@ekpyron.org>
+# Contributor : Christian Muehlhaeuser <muesli@gmail.com>
+
+pkgname=(transmission-qt-ssl-git)
+pkgver=3.00
+pkgrel=1
+arch=(x86_64)
+url="http://www.transmissionbt.com/"
+license=(MIT)
+pkgdesc='Fast, easy, and free BitTorrent client (Qt GUI + SSL remote session patch)'
+depends=(curl qt5-base libevent)
+optdepends=('transmission-cli: daemon and web support')
+makedepends=(gtk3 intltool curl qt5-base libevent systemd qt5-tools git cmake)
+source=(git+https://github.com/transmission/transmission.git
+ transmission-cli.sysusers
+ transmission-cli.tmpfiles
+ transmission-qt-ssl.patch)
+conflicts=('transmission-qt' 'transmission-qt-git')
+provides=('transmission-qt')
+sha256sums=('SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP')
+
+prepare() {
+ cd $srcdir/transmission
+ git submodule update --init
+
+ sed -i '/^Icon=/ s/$/-qt/' qt/transmission-qt.desktop
+ git apply $srcdir/transmission-qt-ssl.patch
+}
+
+build() {
+ cd $srcdir/transmission
+
+ mkdir -p build
+ cd build
+
+ cmake ../ \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIB_INSTALL_DIR=lib \
+ -DKDE_INSTALL_USE_QT_SYS_PATHS=ON \
+ -DCMAKE_CXX_FLAGS=-Wno-deprecated-declarations
+
+ cd qt
+ make
+}
+
+package() {
+ cd $srcdir/transmission/build/qt
+
+ make DESTDIR="$pkgdir/" install
+
+ cd ../..
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/transmission-qt/COPYING"
+ install -Dm644 qt/icons/transmission.png \
+ "$pkgdir/usr/share/pixmaps/transmission-qt.png"
+ install -Dm644 qt/transmission-qt.desktop \
+ "$pkgdir/usr/share/applications/transmission-qt.desktop"
+}
diff --git a/transmission-cli.sysusers b/transmission-cli.sysusers
new file mode 100644
index 000000000000..a972f6c73e04
--- /dev/null
+++ b/transmission-cli.sysusers
@@ -0,0 +1 @@
+u transmission 169 "Transmission BitTorrent Daemon" /var/lib/transmission
diff --git a/transmission-cli.tmpfiles b/transmission-cli.tmpfiles
new file mode 100644
index 000000000000..85d5a9238578
--- /dev/null
+++ b/transmission-cli.tmpfiles
@@ -0,0 +1 @@
+d /var/lib/transmission 0750 transmission transmission
diff --git a/transmission-qt-ssl.patch b/transmission-qt-ssl.patch
new file mode 100644
index 000000000000..95df768cf459
--- /dev/null
+++ b/transmission-qt-ssl.patch
@@ -0,0 +1,118 @@
+diff --git a/libtransmission/quark.c b/libtransmission/quark.c
+index a1cfd9b5c..c74756859 100644
+--- a/libtransmission/quark.c
++++ b/libtransmission/quark.c
+@@ -291,6 +291,7 @@ static struct tr_key_struct const my_static[] =
+ Q("remote-session-password"),
+ Q("remote-session-port"),
+ Q("remote-session-requres-authentication"),
++ Q("remote-session-use-ssl"),
+ Q("remote-session-username"),
+ Q("removed"),
+ Q("rename-partial-files"),
+diff --git a/libtransmission/quark.h b/libtransmission/quark.h
+index 823543f90..d8c0d8165 100644
+--- a/libtransmission/quark.h
++++ b/libtransmission/quark.h
+@@ -290,6 +290,7 @@ enum
+ TR_KEY_remote_session_password,
+ TR_KEY_remote_session_port,
+ TR_KEY_remote_session_requres_authentication,
++ TR_KEY_remote_session_use_ssl,
+ TR_KEY_remote_session_username,
+ TR_KEY_removed,
+ TR_KEY_rename_partial_files,
+diff --git a/qt/Prefs.cc b/qt/Prefs.cc
+index b364b19da..28c117e59 100644
+--- a/qt/Prefs.cc
++++ b/qt/Prefs.cc
+@@ -66,6 +66,7 @@ std::array<Prefs::PrefItem, Prefs::PREFS_COUNT> const Prefs::Items
+ { SESSION_REMOTE_HOST, TR_KEY_remote_session_host, QVariant::String },
+ { SESSION_REMOTE_PORT, TR_KEY_remote_session_port, QVariant::Int },
+ { SESSION_REMOTE_AUTH, TR_KEY_remote_session_requres_authentication, QVariant::Bool },
++ { SESSION_REMOTE_USE_SSL, TR_KEY_remote_session_use_ssl, QVariant::Bool },
+ { SESSION_REMOTE_USERNAME, TR_KEY_remote_session_username, QVariant::String },
+ { SESSION_REMOTE_PASSWORD, TR_KEY_remote_session_password, QVariant::String },
+ { COMPLETE_SOUND_COMMAND, TR_KEY_torrent_complete_sound_command, QVariant::String },
+@@ -385,13 +386,14 @@ void Prefs::initDefaults(tr_variant* d) const
+
+ auto const download_dir = std::string_view { tr_getDefaultDownloadDir() };
+
+- tr_variantDictReserve(d, 38);
++ tr_variantDictReserve(d, 39);
+ dictAdd(d, TR_KEY_blocklist_updates_enabled, true);
+ dictAdd(d, TR_KEY_compact_view, false);
+ dictAdd(d, TR_KEY_inhibit_desktop_hibernation, false);
+ dictAdd(d, TR_KEY_prompt_before_exit, true);
+ dictAdd(d, TR_KEY_remote_session_enabled, false);
+ dictAdd(d, TR_KEY_remote_session_requres_authentication, false);
++ dictAdd(d, TR_KEY_remote_session_use_ssl, false);
+ dictAdd(d, TR_KEY_show_backup_trackers, false);
+ dictAdd(d, TR_KEY_show_extra_peer_details, false);
+ dictAdd(d, TR_KEY_show_filterbar, true);
+diff --git a/qt/Prefs.h b/qt/Prefs.h
+index 090d91f65..b326bda6a 100644
+--- a/qt/Prefs.h
++++ b/qt/Prefs.h
+@@ -69,6 +69,7 @@ public:
+ SESSION_REMOTE_HOST,
+ SESSION_REMOTE_PORT,
+ SESSION_REMOTE_AUTH,
++ SESSION_REMOTE_USE_SSL,
+ SESSION_REMOTE_USERNAME,
+ SESSION_REMOTE_PASSWORD,
+ COMPLETE_SOUND_COMMAND,
+diff --git a/qt/Session.cc b/qt/Session.cc
+index 4151b8aea..c0ab7f1a9 100644
+--- a/qt/Session.cc
++++ b/qt/Session.cc
+@@ -342,7 +342,7 @@ void Session::start()
+ if (prefs_.get<bool>(Prefs::SESSION_IS_REMOTE))
+ {
+ QUrl url;
+- url.setScheme(QStringLiteral("http"));
++ url.setScheme(prefs_.get<bool>(Prefs::SESSION_REMOTE_USE_SSL) ? QStringLiteral("https") : QStringLiteral("http"));
+ url.setHost(prefs_.get<QString>(Prefs::SESSION_REMOTE_HOST));
+ url.setPort(prefs_.get<int>(Prefs::SESSION_REMOTE_PORT));
+ url.setPath(QStringLiteral("/transmission/rpc"));
+diff --git a/qt/SessionDialog.cc b/qt/SessionDialog.cc
+index 4b0931359..44b336b3c 100644
+--- a/qt/SessionDialog.cc
++++ b/qt/SessionDialog.cc
+@@ -20,6 +20,7 @@ void SessionDialog::accept()
+ prefs_.set(Prefs::SESSION_REMOTE_HOST, ui_.hostEdit->text());
+ prefs_.set(Prefs::SESSION_REMOTE_PORT, ui_.portSpin->value());
+ prefs_.set(Prefs::SESSION_REMOTE_AUTH, ui_.authCheck->isChecked());
++ prefs_.set(Prefs::SESSION_REMOTE_USE_SSL, ui_.sslCheck->isChecked());
+ prefs_.set(Prefs::SESSION_REMOTE_USERNAME, ui_.usernameEdit->text());
+ prefs_.set(Prefs::SESSION_REMOTE_PASSWORD, ui_.passwordEdit->text());
+ session_.restart();
+@@ -69,6 +70,10 @@ SessionDialog::SessionDialog(Session& session, Prefs& prefs, QWidget* parent) :
+ connect(ui_.authCheck, &QAbstractButton::toggled, this, &SessionDialog::resensitize);
+ remote_widgets_ << ui_.authCheck;
+
++ ui_.sslCheck->setChecked(prefs.get<bool>(Prefs::SESSION_REMOTE_USE_SSL));
++ connect(ui_.sslCheck, &QAbstractButton::toggled, this, &SessionDialog::resensitize);
++ remote_widgets_ << ui_.sslCheck;
++
+ ui_.usernameEdit->setText(prefs.get<QString>(Prefs::SESSION_REMOTE_USERNAME));
+ auth_widgets_ << ui_.usernameLabel << ui_.usernameEdit;
+
+diff --git a/qt/SessionDialog.ui b/qt/SessionDialog.ui
+index fc8949d9e..7e1fe4862 100644
+--- a/qt/SessionDialog.ui
++++ b/qt/SessionDialog.ui
+@@ -116,6 +116,13 @@
+ </property>
+ </widget>
+ </item>
++ <item row="7" column="0" colspan="2">
++ <widget class="QCheckBox" name="sslCheck">
++ <property name="text">
++ <string>Use &amp;SSL</string>
++ </property>
++ </widget>
++ </item>
+ </layout>
+ </item>
+ <item>