diff options
author | Daniel Kirchner | 2021-03-14 20:40:57 +0100 |
---|---|---|
committer | Daniel Kirchner | 2021-03-14 20:40:57 +0100 |
commit | 76376d738fce25dfc745267e2130bd4e937970d8 (patch) | |
tree | 966a5b99e35f6ce4c4f7c6f70512cfadcea43958 | |
download | aur-76376d738fce25dfc745267e2130bd4e937970d8.tar.gz |
Initial commit.
-rw-r--r-- | .SRCINFO | 34 | ||||
-rw-r--r-- | PKGBUILD | 61 | ||||
-rw-r--r-- | transmission-cli.sysusers | 1 | ||||
-rw-r--r-- | transmission-cli.tmpfiles | 1 | ||||
-rw-r--r-- | transmission-qt-ssl.patch | 118 |
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 &SSL</string> ++ </property> ++ </widget> ++ </item> + </layout> + </item> + <item> |