* [Buildroot] [PATCH 1/2] package/libtorrent-rasterbar: new package
@ 2018-09-11 8:50 Philipp Richter
2018-09-11 8:50 ` [Buildroot] [PATCH 2/2] package/qbittorrent: " Philipp Richter
2018-10-11 19:19 ` [Buildroot] [PATCH 1/2] package/libtorrent-rasterbar: " Thomas Petazzoni
0 siblings, 2 replies; 8+ messages in thread
From: Philipp Richter @ 2018-09-11 8:50 UTC (permalink / raw)
To: buildroot
libtorrent is a feature complete C++ bittorrent implementation
focusing on efficiency and scalability.
https://www.libtorrent.org/
Signed-off-by: Philipp Richter <richterphilipp.pops@gmail.com>
---
DEVELOPERS | 3 +
package/Config.in | 1 +
package/libtorrent-rasterbar/Config.in | 133 ++++++++++++++++++
.../libtorrent-rasterbar.hash | 3 +
.../libtorrent-rasterbar.mk | 95 +++++++++++++
5 files changed, 235 insertions(+)
create mode 100644 package/libtorrent-rasterbar/Config.in
create mode 100644 package/libtorrent-rasterbar/libtorrent-rasterbar.hash
create mode 100644 package/libtorrent-rasterbar/libtorrent-rasterbar.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index b05564dd44..5cf182e5fe 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1668,6 +1668,9 @@ F: package/psplash/
F: package/sispmctl/
F: package/zsh/
+N: Philipp Richter <richterphilipp.pops@gmail.com>
+F: package/libtorrent-rasterbar/
+
N: Philippe Proulx <eeppeliteloop@gmail.com>
F: package/lttng-babeltrace/
F: package/lttng-libust/
diff --git a/package/Config.in b/package/Config.in
index fb4d328846..d1b4147833 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1497,6 +1497,7 @@ menu "Networking"
source "package/libstrophe/Config.in"
source "package/libtirpc/Config.in"
source "package/libtorrent/Config.in"
+ source "package/libtorrent-rasterbar/Config.in"
source "package/libupnp/Config.in"
source "package/libupnp18/Config.in"
source "package/libupnpp/Config.in"
diff --git a/package/libtorrent-rasterbar/Config.in b/package/libtorrent-rasterbar/Config.in
new file mode 100644
index 0000000000..0ce9496b70
--- /dev/null
+++ b/package/libtorrent-rasterbar/Config.in
@@ -0,0 +1,133 @@
+comment "libtorrent-rasterbar needs a toolchain w/ C++"
+ depends on !BR2_INSTALL_LIBSTDCPP
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR
+ bool "libtorrent-rasterbar"
+ depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_HOST_PKGCONF
+ select BR2_PACKAGE_BOOST
+ select BR2_PACKAGE_BOOST_CHRONO
+ select BR2_PACKAGE_BOOST_SYSTEM
+ select BR2_PACKAGE_BOOST_RANDOM
+ help
+ libtorrent is a feature complete C++ bittorrent implementation
+ focusing on efficiency and scalability.
+
+ https://www.libtorrent.org/
+
+if BR2_PACKAGE_LIBTORRENT_RASTERBAR
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_LOGGING
+ bool "Logging alerts"
+ default y
+ help
+ Enable support for logging alerts,
+ like log_alert, torrent_log_alert and peer_log_alert.
+
+ Default: yes
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_DEBUG
+ bool "Debug"
+ help
+ Enable debug build.
+
+ Default: no
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_DHT
+ bool "DHT"
+ default y
+ help
+ Enable support for trackerless torrents.
+
+ Default: yes
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_ENCRYPTION
+ bool "Encryption"
+ default y
+ select BR2_PACKAGE_OPENSSL
+ help
+ Enable encryption support.
+ Encryption support is the encrypted peer connection
+ supported by clients such as uTorrent, Azureus and KTorrent.
+
+ Default: yes
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_EXPORT_ALL_SYMBOLS
+ bool "Export all symbols"
+ help
+ Export all symbols from libtorrent, including non-public ones.
+
+ Default: no
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_POOL_ALLOCATORS
+ bool "Pool allocators"
+ default y
+ help
+ Enable pool allocators for send buffers using boost::pool<>.
+
+ Default: yes
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_INVARIANT_CHECKS
+ bool "Invariant checks"
+ default y
+ depends on BR2_PACKAGE_LIBTORRENT_RASTERBAR_DEBUG
+ help
+ Enable invariant checks.
+
+ Default: yes
+
+comment "Invariant checks need debug build"
+ depends on !BR2_PACKAGE_LIBTORRENT_RASTERBAR_DEBUG
+
+if BR2_PACKAGE_LIBTORRENT_RASTERBAR_INVARIANT_CHECKS
+
+choice
+ prompt "Invariant checks type"
+ default BR2_PACKAGE_LIBTORRENT_RASTERBAR_INVARIANT_CHECKS_YES
+ help
+ Select the type of invariant checks to use.
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_INVARIANT_CHECKS_YES
+ bool "yes"
+ help
+ Standard invariant checks.
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_INVARIANT_CHECKS_FULL
+ bool "full"
+ help
+ Turn on extra expensive invariant checks.
+
+endchoice
+
+endif
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_DEPRECATED_FUNCTIONS
+ bool "Deprecated functions"
+ default y
+ help
+ Enable deprecated functions in the API.
+
+ Default: yes
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_DISK_STATS
+ bool "Disk stats"
+ help
+ Enable disk activity logging feature.
+
+ Default: no
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_EXAMPLES
+ bool "Examples"
+ help
+ Build example files.
+
+ Default: no
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_TESTS
+ bool "Tests"
+ help
+ Build test files.
+
+ Default: no
+
+endif
diff --git a/package/libtorrent-rasterbar/libtorrent-rasterbar.hash b/package/libtorrent-rasterbar/libtorrent-rasterbar.hash
new file mode 100644
index 0000000000..01ac303bae
--- /dev/null
+++ b/package/libtorrent-rasterbar/libtorrent-rasterbar.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 d57a0f5b159f58003c3031943463503f0d05ae3e428dd7c2383d1e35fb2c4e8c libtorrent-rasterbar-1.1.9.tar.gz
+sha256 f3a5dd1558cce616b12edad521427ec8976ce2bb0af33f7f359cfa648bf55ad8 COPYING
diff --git a/package/libtorrent-rasterbar/libtorrent-rasterbar.mk b/package/libtorrent-rasterbar/libtorrent-rasterbar.mk
new file mode 100644
index 0000000000..19f0a9304d
--- /dev/null
+++ b/package/libtorrent-rasterbar/libtorrent-rasterbar.mk
@@ -0,0 +1,95 @@
+################################################################################
+#
+# libtorrent-rasterbar
+#
+################################################################################
+
+LIBTORRENT_RASTERBAR_VERSION = 1.1.9
+LIBTORRENT_RASTERBAR_SITE = https://github.com/arvidn/libtorrent/releases/download/libtorrent-$(subst .,_,$(LIBTORRENT_RASTERBAR_VERSION))
+LIBTORRENT_RASTERBAR_LICENSE = BSD-2-Clause
+LIBTORRENT_RASTERBAR_LICENSE_FILES = COPYING
+LIBTORRENT_RASTERBAR_DEPENDENCIES = host-pkgconf boost $(if $(BR2_PACKAGE_LIBICONV),libiconv)
+LIBTORRENT_RASTERBAR_INSTALL_STAGING = YES
+LIBTORRENT_RASTERBAR_CONF_OPTS += --with-boost-libdir="$(STAGING_DIR)/usr/lib"
+LIBTORRENT_RASTERBAR_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11"
+
+ifeq ($(BR2_ENABLE_LOCALE)$(BR2_PACKAGE_LIBICONV),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --with-libiconv
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --without-libiconv
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_LOGGING),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-logging
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-logging
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_DEBUG),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-debug
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-debug
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_DHT),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-dht
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-dht
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_ENCRYPTION),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-encryption
+LIBTORRENT_RASTERBAR_DEPENDENCIES += openssl
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-encryption
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_EXPORT_ALL_SYMBOLS),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-export-all
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-export-all
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_POOL_ALLOCATORS),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-pool-allocators
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-pool-allocators
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_INVARIANT_CHECKS),y)
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_INVARIANT_CHECKS_YES),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-invariant-checks=yes
+else
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_INVARIANT_CHECKS_FULL),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-invariant-checks=full
+endif
+endif
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-invariant-checks
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_DEPRECATED_FUNCTIONS),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-deprecated-functions
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-deprecated-functions
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_DISK_STATS),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-disk-stats
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-disk-stats
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_EXAMPLES),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-examples
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-examples
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_TESTS),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-tests
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-tests
+endif
+
+$(eval $(autotools-package))
--
2.18.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH 2/2] package/qbittorrent: new package
2018-09-11 8:50 [Buildroot] [PATCH 1/2] package/libtorrent-rasterbar: new package Philipp Richter
@ 2018-09-11 8:50 ` Philipp Richter
2018-10-11 19:40 ` Thomas Petazzoni
2018-10-11 19:19 ` [Buildroot] [PATCH 1/2] package/libtorrent-rasterbar: " Thomas Petazzoni
1 sibling, 1 reply; 8+ messages in thread
From: Philipp Richter @ 2018-09-11 8:50 UTC (permalink / raw)
To: buildroot
The qBittorrent project aims to provide
an open-source software alternative to ?Torrent.
https://www.qbittorrent.org/
Signed-off-by: Philipp Richter <richterphilipp.pops@gmail.com>
---
DEVELOPERS | 1 +
package/Config.in | 1 +
.../0001-fix-webui-unreachable-issue.patch | 36 +++++++
package/qbittorrent/Config.in | 97 +++++++++++++++++++
package/qbittorrent/qbittorrent.hash | 6 ++
package/qbittorrent/qbittorrent.mk | 49 ++++++++++
6 files changed, 190 insertions(+)
create mode 100644 package/qbittorrent/0001-fix-webui-unreachable-issue.patch
create mode 100644 package/qbittorrent/Config.in
create mode 100644 package/qbittorrent/qbittorrent.hash
create mode 100644 package/qbittorrent/qbittorrent.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index 5cf182e5fe..03dfa9bf8c 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1670,6 +1670,7 @@ F: package/zsh/
N: Philipp Richter <richterphilipp.pops@gmail.com>
F: package/libtorrent-rasterbar/
+F: package/qbittorrent/
N: Philippe Proulx <eeppeliteloop@gmail.com>
F: package/lttng-babeltrace/
diff --git a/package/Config.in b/package/Config.in
index d1b4147833..cc7173cb4c 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1891,6 +1891,7 @@ endif
source "package/ptpd2/Config.in"
source "package/pure-ftpd/Config.in"
source "package/putty/Config.in"
+ source "package/qbittorrent/Config.in"
source "package/quagga/Config.in"
source "package/rabbitmq-server/Config.in"
source "package/radvd/Config.in"
diff --git a/package/qbittorrent/0001-fix-webui-unreachable-issue.patch b/package/qbittorrent/0001-fix-webui-unreachable-issue.patch
new file mode 100644
index 0000000000..e7e955d813
--- /dev/null
+++ b/package/qbittorrent/0001-fix-webui-unreachable-issue.patch
@@ -0,0 +1,36 @@
+Backported from: 5f175e113ab0eaeaea560f58b6a255932b194892
+
+From 262c3a75bd3a99de16eea2327213bcd32b727d36 Mon Sep 17 00:00:00 2001
+From: Chocobo1 <Chocobo1@users.noreply.github.com>
+Date: Sun, 19 Aug 2018 03:28:41 +0800
+Subject: [PATCH] Fix WebUI unreachable issue
+
+QVariant doesn't have constructor for plain char, by default it converts
+a plain char into an integer, hence the WebUI issue.
+Closes #9333.
+---
+ src/base/preferences.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/base/preferences.cpp b/src/base/preferences.cpp
+index 61c6a3d327..e82db5cb03 100644
+--- a/src/base/preferences.cpp
++++ b/src/base/preferences.cpp
+@@ -530,7 +530,7 @@ void Preferences::setWebUiAuthSubnetWhitelist(QStringList subnets)
+
+ QString Preferences::getServerDomains() const
+ {
+- return value("Preferences/WebUI/ServerDomains", '*').toString();
++ return value("Preferences/WebUI/ServerDomains", QChar('*')).toString();
+ }
+
+ void Preferences::setServerDomains(const QString &str)
+@@ -540,7 +540,7 @@ void Preferences::setServerDomains(const QString &str)
+
+ QString Preferences::getWebUiAddress() const
+ {
+- return value("Preferences/WebUI/Address", '*').toString().trimmed();
++ return value("Preferences/WebUI/Address", QChar('*')).toString().trimmed();
+ }
+
+ void Preferences::setWebUiAddress(const QString &addr)
diff --git a/package/qbittorrent/Config.in b/package/qbittorrent/Config.in
new file mode 100644
index 0000000000..fb33e49d02
--- /dev/null
+++ b/package/qbittorrent/Config.in
@@ -0,0 +1,97 @@
+comment "qbittorrent needs a toolchain w/ C++"
+ depends on !BR2_INSTALL_LIBSTDCPP
+
+config BR2_PACKAGE_QBITTORRENT
+ bool "qbittorrent"
+ depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_HOST_PKGCONF
+ select BR2_PACKAGE_BOOST
+ select BR2_PACKAGE_BOOST_SYSTEM
+ select BR2_PACKAGE_BOOST_THREAD
+ select BR2_PACKAGE_LIBTORRENT_RASTERBAR
+ select BR2_PACKAGE_QT5
+ select BR2_PACKAGE_QT5BASE
+ select BR2_PACKAGE_ZLIB
+ help
+ The qBittorrent project aims to provide
+ an open-source software alternative to ?Torrent.
+
+ https://www.qbittorrent.org/
+
+if BR2_PACKAGE_QBITTORRENT
+
+config BR2_PACKAGE_QBITTORRENT_GUI
+ bool "GUI"
+ select BR2_PACKAGE_HICOLOR_ICON_THEME
+ select BR2_PACKAGE_QT5BASE_WIDGETS
+ select BR2_PACKAGE_QT5SVG
+ help
+ Disable for headless running.
+ The target binary will be called qbittorrent-nox.
+
+if BR2_PACKAGE_QBITTORRENT_GUI
+
+config BR2_PACKAGE_QBITTORRENT_QTDBUS
+ bool "QtDBUS"
+ default y
+ select BR2_PACKAGE_QT5BASE_DBUS
+ help
+ Enable QtDBUS support.
+
+ Default: yes
+
+endif
+
+if !BR2_PACKAGE_QBITTORRENT_GUI
+
+comment "Systemd service needs systemd enabled"
+ depends on !BR2_PACKAGE_SYSTEMD
+
+config BR2_PACKAGE_QBITTORRENT_SYSTEMD
+ bool "Systemd service"
+ depends on BR2_PACKAGE_SYSTEMD
+ help
+ Install systemd service file.
+
+ Default: no
+
+endif
+
+comment "Stacktrace feature needs a glibc toolchain"
+ depends on !BR2_TOOLCHAIN_USES_GLIBC
+
+choice
+ prompt "Stacktrace"
+ default BR2_PACKAGE_QBITTORRENT_STACKTRACE_AUTO
+ depends on BR2_TOOLCHAIN_USES_GLIBC
+ help
+ Stacktrace feature.
+
+ Default: auto
+
+config BR2_PACKAGE_QBITTORRENT_STACKTRACE_AUTO
+ bool "auto"
+ help
+ Determine automatically.
+
+config BR2_PACKAGE_QBITTORRENT_STACKTRACE_ENABLE
+ bool "enable"
+ help
+ Enable stacktrace feature.
+
+config BR2_PACKAGE_QBITTORRENT_STACKTRACE_DISABLE
+ bool "disable"
+ help
+ Disable stacktrace feature.
+
+endchoice
+
+config BR2_PACKAGE_QBITTORRENT_WEBUI
+ bool "WebUI"
+ default y
+ help
+ Enable the WebUI.
+
+ Default: yes
+
+endif
diff --git a/package/qbittorrent/qbittorrent.hash b/package/qbittorrent/qbittorrent.hash
new file mode 100644
index 0000000000..f5cf78e7fc
--- /dev/null
+++ b/package/qbittorrent/qbittorrent.hash
@@ -0,0 +1,6 @@
+# Locally checked with PGP signature from https://downloads.sourceforge.net/sourceforge/qbittorrent/qbittorrent-4.1.2.tar.xz.asc
+sha256 e0165bd427820c64bce596ef952d80058ea8cd7294d3c84bc723d79cd9e2f9c7 qbittorrent-4.1.2.tar.xz
+
+# Locally calculated
+sha256 ed266afaf97e160adc8954a2ddc6d1aeb63bc537b9b8b65348581239052bee03 0001-fix-webui-unreachable-issue.patch
+sha256 fc68233a17d308ee633aefedbd761c7582ec48557539aca310b4162e54212fe5 COPYING
diff --git a/package/qbittorrent/qbittorrent.mk b/package/qbittorrent/qbittorrent.mk
new file mode 100644
index 0000000000..b90dd9ac84
--- /dev/null
+++ b/package/qbittorrent/qbittorrent.mk
@@ -0,0 +1,49 @@
+################################################################################
+#
+# qbittorrent
+#
+################################################################################
+
+QBITTORRENT_VERSION = 4.1.2
+QBITTORRENT_SOURCE = qbittorrent-$(QBITTORRENT_VERSION).tar.xz
+QBITTORRENT_SITE = https://downloads.sourceforge.net/sourceforge/qbittorrent
+QBITTORRENT_LICENSE = GPL-2.0
+QBITTORRENT_LICENSE_FILES = COPYING
+QBITTORRENT_DEPENDENCIES = host-pkgconf boost libtorrent-rasterbar qt5base zlib
+QBITTORRENT_CONF_OPTS += --with-boost-libdir="$(STAGING_DIR)/usr/lib"
+QBITTORRENT_INSTALL_TARGET_OPTS = INSTALL_ROOT="$(TARGET_DIR)" install
+
+ifeq ($(BR2_PACKAGE_QBITTORRENT_GUI),y)
+QBITTORRENT_CONF_OPTS += --enable-gui
+QBITTORRENT_DEPENDENCIES += hicolor-icon-theme qt5svg
+else
+QBITTORRENT_CONF_OPTS += --disable-gui
+endif
+
+ifeq ($(BR2_PACKAGE_QBITTORRENT_QTDBUS),y)
+QBITTORRENT_CONF_OPTS += --enable-qt-dbus
+else
+QBITTORRENT_CONF_OPTS += --disable-qt-dbus
+endif
+
+ifeq ($(BR2_PACKAGE_QBITTORRENT_SYSTEMD),y)
+QBITTORRENT_CONF_OPTS += --enable-systemd
+else
+QBITTORRENT_CONF_OPTS += --disable-systemd
+endif
+
+ifeq ($(BR2_PACKAGE_QBITTORRENT_STACKTRACE_ENABLE),y)
+QBITTORRENT_CONF_OPTS += --enable-stacktrace
+endif
+
+ifeq ($(BR2_PACKAGE_QBITTORRENT_STACKTRACE_DISABLE),y)
+QBITTORRENT_CONF_OPTS += --disable-stacktrace
+endif
+
+ifeq ($(BR2_PACKAGE_QBITTORRENT_WEBUI),y)
+QBITTORRENT_CONF_OPTS += --enable-webui
+else
+QBITTORRENT_CONF_OPTS += --disable-webui
+endif
+
+$(eval $(autotools-package))
--
2.18.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* [Buildroot] [PATCH 2/2] package/qbittorrent: new package
2018-09-11 8:50 ` [Buildroot] [PATCH 2/2] package/qbittorrent: " Philipp Richter
@ 2018-10-11 19:40 ` Thomas Petazzoni
0 siblings, 0 replies; 8+ messages in thread
From: Thomas Petazzoni @ 2018-10-11 19:40 UTC (permalink / raw)
To: buildroot
Hello Philipp,
Here as well, thanks for your submission. See below a number of
comments.
On Tue, 11 Sep 2018 10:50:24 +0200, Philipp Richter wrote:
> diff --git a/package/qbittorrent/0001-fix-webui-unreachable-issue.patch b/package/qbittorrent/0001-fix-webui-unreachable-issue.patch
> new file mode 100644
> index 0000000000..e7e955d813
> --- /dev/null
> +++ b/package/qbittorrent/0001-fix-webui-unreachable-issue.patch
> @@ -0,0 +1,36 @@
> +Backported from: 5f175e113ab0eaeaea560f58b6a255932b194892
This should go...
> +
> +From 262c3a75bd3a99de16eea2327213bcd32b727d36 Mon Sep 17 00:00:00 2001
> +From: Chocobo1 <Chocobo1@users.noreply.github.com>
> +Date: Sun, 19 Aug 2018 03:28:41 +0800
> +Subject: [PATCH] Fix WebUI unreachable issue
> +
> +QVariant doesn't have constructor for plain char, by default it converts
> +a plain char into an integer, hence the WebUI issue.
> +Closes #9333.
.... here.
And be followed by your Signed-off-by.
Two reasons:
- To keep the patch a valid git-formatted patch that can be applied
with 'git am', the Backport from: .. should not be added at the
beginning.
- We require contributors to sign-off on the patches they add to
Buildroot to keep track of who added what.
> diff --git a/package/qbittorrent/Config.in b/package/qbittorrent/Config.in
> new file mode 100644
> index 0000000000..fb33e49d02
> --- /dev/null
> +++ b/package/qbittorrent/Config.in
> @@ -0,0 +1,97 @@
> +comment "qbittorrent needs a toolchain w/ C++"
> + depends on !BR2_INSTALL_LIBSTDCPP
> +
> +config BR2_PACKAGE_QBITTORRENT
> + bool "qbittorrent"
> + depends on BR2_INSTALL_LIBSTDCPP
> + select BR2_PACKAGE_HOST_PKGCONF
As explained for libtorrent-rasterbar, this select is not needed.
> + select BR2_PACKAGE_BOOST
> + select BR2_PACKAGE_BOOST_SYSTEM
> + select BR2_PACKAGE_BOOST_THREAD
Is this package directly using Boost, or only indirectly because it's
using libtorrent-rasterbar ? It's rather odd for a program to use both
Boost and Qt.
> + select BR2_PACKAGE_LIBTORRENT_RASTERBAR
> + select BR2_PACKAGE_QT5
> + select BR2_PACKAGE_QT5BASE
> + select BR2_PACKAGE_ZLIB
As explained for libtorrent-rasterbar, you need to replicate all the
dependencies of the packages you select. So something like this:
depends on BR2_INSTALL_LIBSTDCPP # boost, libtorrent-rasterbar, qt5
depends on BR2_TOOLCHAIN_HAS_THREADS # boost, libtorrent-rasterbar
depends on BR2_USE_WCHAR # boost, libtorrent-rasterbar, qt5
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # qt5
depends on !BR2_STATIC_LIBS # qt5
depends on !BR2_PACKAGE_QT # qt5
and of course, add the corresponding Config.in comment.
> +if BR2_PACKAGE_QBITTORRENT
> +
> +config BR2_PACKAGE_QBITTORRENT_GUI
> + bool "GUI"
> + select BR2_PACKAGE_HICOLOR_ICON_THEME
> + select BR2_PACKAGE_QT5BASE_WIDGETS
You need to select BR2_PACKAGE_QT5BASE_GUI, otherwise
BR2_PACKAGE_QT5BASE_WIDGETS can't be selected. It did work for you,
because QT5SVG already selects QT5BASE_GUI, but it's better to be
explicit here.
> + select BR2_PACKAGE_QT5SVG
> + help
> + Disable for headless running.
> + The target binary will be called qbittorrent-nox.
> +
> +if BR2_PACKAGE_QBITTORRENT_GUI
> +
> +config BR2_PACKAGE_QBITTORRENT_QTDBUS
> + bool "QtDBUS"
Perhaps the option should be named "D-Bus support" ?
> + default y
> + select BR2_PACKAGE_QT5BASE_DBUS
> + help
> + Enable QtDBUS support.
> +
> + Default: yes
Drop those "Default: XYZ".
> +
> +endif
> +
> +if !BR2_PACKAGE_QBITTORRENT_GUI
> +
> +comment "Systemd service needs systemd enabled"
> + depends on !BR2_PACKAGE_SYSTEMD
> +
> +config BR2_PACKAGE_QBITTORRENT_SYSTEMD
> + bool "Systemd service"
> + depends on BR2_PACKAGE_SYSTEMD
> + help
> + Install systemd service file.
> +
> + Default: no
You don't need an option, just use BR2_INIT_SYSTEMD to decide whether
the systemd service should be installed or not.
> +
> +endif
> +
> +comment "Stacktrace feature needs a glibc toolchain"
> + depends on !BR2_TOOLCHAIN_USES_GLIBC
Just use "auto" when glibc is available, no need to make this
configurable.
> diff --git a/package/qbittorrent/qbittorrent.hash b/package/qbittorrent/qbittorrent.hash
> new file mode 100644
> index 0000000000..f5cf78e7fc
> --- /dev/null
> +++ b/package/qbittorrent/qbittorrent.hash
> @@ -0,0 +1,6 @@
> +# Locally checked with PGP signature from https://downloads.sourceforge.net/sourceforge/qbittorrent/qbittorrent-4.1.2.tar.xz.asc
> +sha256 e0165bd427820c64bce596ef952d80058ea8cd7294d3c84bc723d79cd9e2f9c7 qbittorrent-4.1.2.tar.xz
> +
> +# Locally calculated
> +sha256 ed266afaf97e160adc8954a2ddc6d1aeb63bc537b9b8b65348581239052bee03 0001-fix-webui-unreachable-issue.patch
No need to have hashes for patches that are part of the Buildroot tree.
> +sha256 fc68233a17d308ee633aefedbd761c7582ec48557539aca310b4162e54212fe5 COPYING
> diff --git a/package/qbittorrent/qbittorrent.mk b/package/qbittorrent/qbittorrent.mk
> new file mode 100644
> index 0000000000..b90dd9ac84
> --- /dev/null
> +++ b/package/qbittorrent/qbittorrent.mk
> @@ -0,0 +1,49 @@
> +################################################################################
> +#
> +# qbittorrent
> +#
> +################################################################################
> +
> +QBITTORRENT_VERSION = 4.1.2
> +QBITTORRENT_SOURCE = qbittorrent-$(QBITTORRENT_VERSION).tar.xz
> +QBITTORRENT_SITE = https://downloads.sourceforge.net/sourceforge/qbittorrent
> +QBITTORRENT_LICENSE = GPL-2.0
> +QBITTORRENT_LICENSE_FILES = COPYING
> +QBITTORRENT_DEPENDENCIES = host-pkgconf boost libtorrent-rasterbar qt5base zlib
> +QBITTORRENT_CONF_OPTS += --with-boost-libdir="$(STAGING_DIR)/usr/lib"
You can drop the double quotes.
Could you take into account those comments, and send an updated
version ?
Thanks a lot!
Thomas Petazzoni
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH 1/2] package/libtorrent-rasterbar: new package
2018-09-11 8:50 [Buildroot] [PATCH 1/2] package/libtorrent-rasterbar: new package Philipp Richter
2018-09-11 8:50 ` [Buildroot] [PATCH 2/2] package/qbittorrent: " Philipp Richter
@ 2018-10-11 19:19 ` Thomas Petazzoni
[not found] ` <CA+Vb7hrYyCfVAq=nk8a9GfGW10Fatw3WXZ5=wsJuVqba6MPnYg@mail.gmail.com>
1 sibling, 1 reply; 8+ messages in thread
From: Thomas Petazzoni @ 2018-10-11 19:19 UTC (permalink / raw)
To: buildroot
Hello Philipp,
Thanks for your submission, and sorry for the slow response. I have to
say that for a first contribution, it looks very good. Still, I have a
number of comments, see below.
On Tue, 11 Sep 2018 10:50:23 +0200, Philipp Richter wrote:
> diff --git a/package/libtorrent-rasterbar/Config.in b/package/libtorrent-rasterbar/Config.in
> new file mode 100644
> index 0000000000..0ce9496b70
> --- /dev/null
> +++ b/package/libtorrent-rasterbar/Config.in
> @@ -0,0 +1,133 @@
> +comment "libtorrent-rasterbar needs a toolchain w/ C++"
> + depends on !BR2_INSTALL_LIBSTDCPP
> +
> +config BR2_PACKAGE_LIBTORRENT_RASTERBAR
> + bool "libtorrent-rasterbar"
> + depends on BR2_INSTALL_LIBSTDCPP
> + select BR2_PACKAGE_HOST_PKGCONF
You don't need to select this option. Currently, we don't care about
selecting Config.in options for host packages, so for consistency, we
also shouldn't do it here.
In the future, we might add Config.in options for all host packages,
and if/when we do this, we'll add the necessary selects. But for the
time being, I'd rather not have any of them.
> + select BR2_PACKAGE_BOOST
> + select BR2_PACKAGE_BOOST_CHRONO
> + select BR2_PACKAGE_BOOST_SYSTEM
> + select BR2_PACKAGE_BOOST_RANDOM
Since you select boost, you must inherit all its dependencies, i.e:
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_USE_WCHAR
> +if BR2_PACKAGE_LIBTORRENT_RASTERBAR
> +
> +config BR2_PACKAGE_LIBTORRENT_RASTERBAR_LOGGING
> + bool "Logging alerts"
> + default y
> + help
> + Enable support for logging alerts,
> + like log_alert, torrent_log_alert and peer_log_alert.
> +
> + Default: yes
Drop those "Default: XYZ" from the help text, we don't have them
anywhere, and it's already pretty explicit from the Config.in text.
> +config BR2_PACKAGE_LIBTORRENT_RASTERBAR_DEBUG
> + bool "Debug"
> + help
> + Enable debug build.
> +
> + Default: no
What does --enable-debug/--disable-debug does? We have a global
BR2_ENABLE_DEBUG boolean that enables building with debugging symbols.
> +config BR2_PACKAGE_LIBTORRENT_RASTERBAR_DHT
> + bool "DHT"
> + default y
> + help
> + Enable support for trackerless torrents.
> +
> + Default: yes
> +
> +config BR2_PACKAGE_LIBTORRENT_RASTERBAR_ENCRYPTION
> + bool "Encryption"
> + default y
> + select BR2_PACKAGE_OPENSSL
> + help
> + Enable encryption support.
> + Encryption support is the encrypted peer connection
> + supported by clients such as uTorrent, Azureus and KTorrent.
> +
> + Default: yes
> +
> +config BR2_PACKAGE_LIBTORRENT_RASTERBAR_EXPORT_ALL_SYMBOLS
> + bool "Export all symbols"
> + help
> + Export all symbols from libtorrent, including non-public ones.
> +
> + Default: no
Do we really need an option for this ?
> +config BR2_PACKAGE_LIBTORRENT_RASTERBAR_POOL_ALLOCATORS
> + bool "Pool allocators"
> + default y
> + help
> + Enable pool allocators for send buffers using boost::pool<>.
> +
> + Default: yes
And this ?
> +config BR2_PACKAGE_LIBTORRENT_RASTERBAR_INVARIANT_CHECKS
> + bool "Invariant checks"
> + default y
> + depends on BR2_PACKAGE_LIBTORRENT_RASTERBAR_DEBUG
> + help
> + Enable invariant checks.
> +
> + Default: yes
This clearly seems like a developer-oriented option, I don't think we
should support it in Buildroot.
> +
> +comment "Invariant checks need debug build"
> + depends on !BR2_PACKAGE_LIBTORRENT_RASTERBAR_DEBUG
> +
> +if BR2_PACKAGE_LIBTORRENT_RASTERBAR_INVARIANT_CHECKS
> +
> +choice
> + prompt "Invariant checks type"
> + default BR2_PACKAGE_LIBTORRENT_RASTERBAR_INVARIANT_CHECKS_YES
> + help
> + Select the type of invariant checks to use.
> +
> +config BR2_PACKAGE_LIBTORRENT_RASTERBAR_INVARIANT_CHECKS_YES
> + bool "yes"
> + help
> + Standard invariant checks.
> +
> +config BR2_PACKAGE_LIBTORRENT_RASTERBAR_INVARIANT_CHECKS_FULL
> + bool "full"
> + help
> + Turn on extra expensive invariant checks.
> +
> +endchoice
... and therefore we can remove all of this.
> +
> +endif
> +
> +config BR2_PACKAGE_LIBTORRENT_RASTERBAR_DEPRECATED_FUNCTIONS
> + bool "Deprecated functions"
> + default y
> + help
> + Enable deprecated functions in the API.
> +
> + Default: yes
Ditto, why would we want this option ?
In general, it feels like you have taken every --enable/--disable of
the configure script, and added a Buildroot Config.in option for each
of them. I don't think we necessarily want to support each and every
configuration option of the upstream package.
> +
> +config BR2_PACKAGE_LIBTORRENT_RASTERBAR_DISK_STATS
> + bool "Disk stats"
> + help
> + Enable disk activity logging feature.
> +
> + Default: no
> +
> +config BR2_PACKAGE_LIBTORRENT_RASTERBAR_EXAMPLES
> + bool "Examples"
> + help
> + Build example files.
> +
> + Default: no
> +
> +config BR2_PACKAGE_LIBTORRENT_RASTERBAR_TESTS
> + bool "Tests"
> + help
> + Build test files.
> +
> + Default: no
We generally don't build tests in the context of Buildroot, so just
disable them unconditionally.
> diff --git a/package/libtorrent-rasterbar/libtorrent-rasterbar.mk b/package/libtorrent-rasterbar/libtorrent-rasterbar.mk
> new file mode 100644
> index 0000000000..19f0a9304d
> --- /dev/null
> +++ b/package/libtorrent-rasterbar/libtorrent-rasterbar.mk
> @@ -0,0 +1,95 @@
> +################################################################################
> +#
> +# libtorrent-rasterbar
> +#
> +################################################################################
> +
> +LIBTORRENT_RASTERBAR_VERSION = 1.1.9
> +LIBTORRENT_RASTERBAR_SITE = https://github.com/arvidn/libtorrent/releases/download/libtorrent-$(subst .,_,$(LIBTORRENT_RASTERBAR_VERSION))
> +LIBTORRENT_RASTERBAR_LICENSE = BSD-2-Clause
> +LIBTORRENT_RASTERBAR_LICENSE_FILES = COPYING
> +LIBTORRENT_RASTERBAR_DEPENDENCIES = host-pkgconf boost $(if $(BR2_PACKAGE_LIBICONV),libiconv)
I would move the $(if $(BR2_PACKAGE_LIBICONV),libiconv) part inside the
iconv condition.
> +LIBTORRENT_RASTERBAR_INSTALL_STAGING = YES
> +LIBTORRENT_RASTERBAR_CONF_OPTS += --with-boost-libdir="$(STAGING_DIR)/usr/lib"
You can drop the double quotes here.
> +LIBTORRENT_RASTERBAR_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11"
So, you need C++11, so your package should have a dependency on gcc >=
4.8.
> +ifeq ($(BR2_ENABLE_LOCALE)$(BR2_PACKAGE_LIBICONV),y)
> +LIBTORRENT_RASTERBAR_CONF_OPTS += --with-libiconv
This is where I'd prefer to see:
LIBTORRENT_RASTERBAR_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBICONV),libiconv)
Could you rework the package according to those comments?
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH 1/2] package/libtorrent-rasterbar: new package
@ 2018-11-23 18:14 Philipp Richter
2018-11-23 18:14 ` [Buildroot] [PATCH 2/2] package/qbittorrent: " Philipp Richter
0 siblings, 1 reply; 8+ messages in thread
From: Philipp Richter @ 2018-11-23 18:14 UTC (permalink / raw)
To: buildroot
libtorrent is a feature complete C++ bittorrent implementation
focusing on efficiency and scalability.
https://www.libtorrent.org/
Signed-off-by: Philipp Richter <richterphilipp.pops@gmail.com>
---
DEVELOPERS | 3 +++
package/Config.in | 1 +
package/libtorrent-rasterbar/Config.in | 21 +++++++++++++++++
.../libtorrent-rasterbar.hash | 3 +++
.../libtorrent-rasterbar.mk | 23 +++++++++++++++++++
5 files changed, 51 insertions(+)
create mode 100644 package/libtorrent-rasterbar/Config.in
create mode 100644 package/libtorrent-rasterbar/libtorrent-rasterbar.hash
create mode 100644 package/libtorrent-rasterbar/libtorrent-rasterbar.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index 53467da489..e2bca31f7b 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1698,6 +1698,9 @@ F: package/psplash/
F: package/sispmctl/
F: package/zsh/
+N: Philipp Richter <richterphilipp.pops@gmail.com>
+F: package/libtorrent-rasterbar/
+
N: Philippe Proulx <eeppeliteloop@gmail.com>
F: package/lttng-babeltrace/
F: package/lttng-libust/
diff --git a/package/Config.in b/package/Config.in
index b60e7700ad..fb32ace8e7 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1550,6 +1550,7 @@ menu "Networking"
source "package/libstrophe/Config.in"
source "package/libtirpc/Config.in"
source "package/libtorrent/Config.in"
+ source "package/libtorrent-rasterbar/Config.in"
source "package/libupnp/Config.in"
source "package/libupnp18/Config.in"
source "package/libupnpp/Config.in"
diff --git a/package/libtorrent-rasterbar/Config.in b/package/libtorrent-rasterbar/Config.in
new file mode 100644
index 0000000000..30f7726d4a
--- /dev/null
+++ b/package/libtorrent-rasterbar/Config.in
@@ -0,0 +1,21 @@
+comment "libtorrent-rasterbar needs a toolchain w/ C++, threads, wchar, gcc >= 4.8"
+ depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \
+ !BR2_HOST_GCC_AT_LEAST_4_8 || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR
+ bool "libtorrent-rasterbar"
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_HOST_GCC_AT_LEAST_4_8
+ depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ depends on BR2_USE_WCHAR
+ select BR2_PACKAGE_BOOST
+ select BR2_PACKAGE_BOOST_CHRONO
+ select BR2_PACKAGE_BOOST_SYSTEM
+ select BR2_PACKAGE_BOOST_RANDOM
+ select BR2_PACKAGE_OPENSSL
+ help
+ libtorrent is a feature complete C++ bittorrent implementation
+ focusing on efficiency and scalability.
+
+ https://www.libtorrent.org/
diff --git a/package/libtorrent-rasterbar/libtorrent-rasterbar.hash b/package/libtorrent-rasterbar/libtorrent-rasterbar.hash
new file mode 100644
index 0000000000..e38c0f4f1d
--- /dev/null
+++ b/package/libtorrent-rasterbar/libtorrent-rasterbar.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 7c23deba7fa279825642307587609d51c9935ac7606e0ef2f2d0ba10728b5847 libtorrent-rasterbar-1.1.11.tar.gz
+sha256 f3a5dd1558cce616b12edad521427ec8976ce2bb0af33f7f359cfa648bf55ad8 COPYING
diff --git a/package/libtorrent-rasterbar/libtorrent-rasterbar.mk b/package/libtorrent-rasterbar/libtorrent-rasterbar.mk
new file mode 100644
index 0000000000..ee65cc5146
--- /dev/null
+++ b/package/libtorrent-rasterbar/libtorrent-rasterbar.mk
@@ -0,0 +1,23 @@
+################################################################################
+#
+# libtorrent-rasterbar
+#
+################################################################################
+
+LIBTORRENT_RASTERBAR_VERSION = 1.1.11
+LIBTORRENT_RASTERBAR_SITE = https://github.com/arvidn/libtorrent/releases/download/libtorrent_$(subst .,_,$(LIBTORRENT_RASTERBAR_VERSION))
+LIBTORRENT_RASTERBAR_LICENSE = BSD-2-Clause
+LIBTORRENT_RASTERBAR_LICENSE_FILES = COPYING
+LIBTORRENT_RASTERBAR_DEPENDENCIES = host-pkgconf boost openssl
+LIBTORRENT_RASTERBAR_INSTALL_STAGING = YES
+LIBTORRENT_RASTERBAR_CONF_OPTS += --with-boost-libdir=$(STAGING_DIR)/usr/lib --disable-invariant-checks
+LIBTORRENT_RASTERBAR_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11"
+
+ifeq ($(BR2_ENABLE_LOCALE)$(BR2_PACKAGE_LIBICONV),y)
+LIBTORRENT_RASTERBAR_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBICONV),libiconv)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --with-libiconv
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --without-libiconv
+endif
+
+$(eval $(autotools-package))
--
2.19.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH 2/2] package/qbittorrent: new package
2018-11-23 18:14 Philipp Richter
@ 2018-11-23 18:14 ` Philipp Richter
2019-08-03 17:16 ` Arnout Vandecappelle
0 siblings, 1 reply; 8+ messages in thread
From: Philipp Richter @ 2018-11-23 18:14 UTC (permalink / raw)
To: buildroot
The qBittorrent project aims to provide
an open-source software alternative to ?Torrent.
https://www.qbittorrent.org/
Signed-off-by: Philipp Richter <richterphilipp.pops@gmail.com>
---
DEVELOPERS | 1 +
package/Config.in | 1 +
package/qbittorrent/Config.in | 63 ++++++++++++++++++++++++++++
package/qbittorrent/qbittorrent.hash | 5 +++
package/qbittorrent/qbittorrent.mk | 41 ++++++++++++++++++
5 files changed, 111 insertions(+)
create mode 100644 package/qbittorrent/Config.in
create mode 100644 package/qbittorrent/qbittorrent.hash
create mode 100644 package/qbittorrent/qbittorrent.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index e2bca31f7b..136d689d9d 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1700,6 +1700,7 @@ F: package/zsh/
N: Philipp Richter <richterphilipp.pops@gmail.com>
F: package/libtorrent-rasterbar/
+F: package/qbittorrent/
N: Philippe Proulx <eeppeliteloop@gmail.com>
F: package/lttng-babeltrace/
diff --git a/package/Config.in b/package/Config.in
index fb32ace8e7..50bfa65302 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1951,6 +1951,7 @@ endif
source "package/ptpd2/Config.in"
source "package/pure-ftpd/Config.in"
source "package/putty/Config.in"
+ source "package/qbittorrent/Config.in"
source "package/quagga/Config.in"
source "package/rabbitmq-server/Config.in"
source "package/radvd/Config.in"
diff --git a/package/qbittorrent/Config.in b/package/qbittorrent/Config.in
new file mode 100644
index 0000000000..c4bdf3a22e
--- /dev/null
+++ b/package/qbittorrent/Config.in
@@ -0,0 +1,63 @@
+comment "qbittorrent needs a toolchain w/ C++, threads, wchar, NPTL, dynamic library, gcc >= 4.8"
+ depends on !BR2_PACKAGE_QT
+ depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \
+ !BR2_HOST_GCC_AT_LEAST_4_8 || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || \
+ !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS
+
+config BR2_PACKAGE_QBITTORRENT
+ bool "qbittorrent"
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_HOST_GCC_AT_LEAST_4_8
+ depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
+ depends on BR2_USE_WCHAR
+ depends on !BR2_STATIC_LIBS
+ depends on !BR2_PACKAGE_QT
+ select BR2_PACKAGE_BOOST
+ select BR2_PACKAGE_BOOST_SYSTEM
+ select BR2_PACKAGE_BOOST_THREAD
+ select BR2_PACKAGE_LIBTORRENT_RASTERBAR
+ select BR2_PACKAGE_QT5
+ select BR2_PACKAGE_QT5BASE
+ select BR2_PACKAGE_ZLIB
+ help
+ The qBittorrent project aims to provide
+ an open-source software alternative to ?Torrent.
+
+ https://www.qbittorrent.org/
+
+if BR2_PACKAGE_QBITTORRENT
+
+config BR2_PACKAGE_QBITTORRENT_GUI
+ bool "GUI"
+ select BR2_PACKAGE_HICOLOR_ICON_THEME
+ select BR2_PACKAGE_QT5BASE_GUI
+ select BR2_PACKAGE_QT5BASE_WIDGETS
+ select BR2_PACKAGE_QT5SVG
+ help
+ Disable for headless mode.
+ The target binary will be called qbittorrent-nox.
+
+if BR2_PACKAGE_QBITTORRENT_GUI
+
+config BR2_PACKAGE_QBITTORRENT_QTDBUS
+ bool "D-Bus support"
+ default y
+ select BR2_PACKAGE_QT5BASE_DBUS
+ help
+ Enable D-Bus support.
+
+endif
+
+if !BR2_PACKAGE_QBITTORRENT_GUI
+
+config BR2_PACKAGE_QBITTORRENT_WEBUI
+ bool "WebUI"
+ default y
+ help
+ Enable the WebUI.
+
+endif
+
+endif
diff --git a/package/qbittorrent/qbittorrent.hash b/package/qbittorrent/qbittorrent.hash
new file mode 100644
index 0000000000..6cc24d2796
--- /dev/null
+++ b/package/qbittorrent/qbittorrent.hash
@@ -0,0 +1,5 @@
+# Locally checked with PGP signature from https://downloads.sourceforge.net/sourceforge/qbittorrent/qbittorrent-4.1.4.tar.xz.asc
+sha256 5f7b4c5ae891ce7fbab880ff322764a0d433fccf655164f6b98ef08f1ae52386 qbittorrent-4.1.4.tar.xz
+
+# Locally calculated
+sha256 fc68233a17d308ee633aefedbd761c7582ec48557539aca310b4162e54212fe5 COPYING
diff --git a/package/qbittorrent/qbittorrent.mk b/package/qbittorrent/qbittorrent.mk
new file mode 100644
index 0000000000..11523efdbb
--- /dev/null
+++ b/package/qbittorrent/qbittorrent.mk
@@ -0,0 +1,41 @@
+################################################################################
+#
+# qbittorrent
+#
+################################################################################
+
+QBITTORRENT_VERSION = 4.1.4
+QBITTORRENT_SOURCE = qbittorrent-$(QBITTORRENT_VERSION).tar.xz
+QBITTORRENT_SITE = https://downloads.sourceforge.net/sourceforge/qbittorrent
+QBITTORRENT_LICENSE = GPL-2.0
+QBITTORRENT_LICENSE_FILES = COPYING
+QBITTORRENT_DEPENDENCIES = host-pkgconf boost libtorrent-rasterbar qt5base zlib
+QBITTORRENT_CONF_OPTS += --with-boost-libdir=$(STAGING_DIR)/usr/lib
+QBITTORRENT_INSTALL_TARGET_OPTS = INSTALL_ROOT="$(TARGET_DIR)" install
+
+ifeq ($(BR2_PACKAGE_QBITTORRENT_GUI),y)
+QBITTORRENT_CONF_OPTS += --enable-gui
+QBITTORRENT_DEPENDENCIES += hicolor-icon-theme qt5svg
+else
+QBITTORRENT_CONF_OPTS += --disable-gui
+endif
+
+ifeq ($(BR2_PACKAGE_QBITTORRENT_QTDBUS),y)
+QBITTORRENT_CONF_OPTS += --enable-qt-dbus
+else
+QBITTORRENT_CONF_OPTS += --disable-qt-dbus
+endif
+
+ifeq ($(BR2_INIT_SYSTEMD),y)
+QBITTORRENT_CONF_OPTS += --enable-systemd
+else
+QBITTORRENT_CONF_OPTS += --disable-systemd
+endif
+
+ifeq ($(BR2_PACKAGE_QBITTORRENT_WEBUI),y)
+QBITTORRENT_CONF_OPTS += --enable-webui
+else
+QBITTORRENT_CONF_OPTS += --disable-webui
+endif
+
+$(eval $(autotools-package))
--
2.19.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH 2/2] package/qbittorrent: new package
2018-11-23 18:14 ` [Buildroot] [PATCH 2/2] package/qbittorrent: " Philipp Richter
@ 2019-08-03 17:16 ` Arnout Vandecappelle
0 siblings, 0 replies; 8+ messages in thread
From: Arnout Vandecappelle @ 2019-08-03 17:16 UTC (permalink / raw)
To: buildroot
Hi Philipp,
Sorry for the late reply. We have a very long patch backlog, and this one got a
bit forgotten...
There are still a few issues with it, could you fix up and resubmit?
On 23/11/2018 19:14, Philipp Richter wrote:
> The qBittorrent project aims to provide
> an open-source software alternative to ?Torrent.
>
> https://www.qbittorrent.org/
>
> Signed-off-by: Philipp Richter <richterphilipp.pops@gmail.com>
Please add a patch changelog below the --- line, and also add the version in
the subject using the -v2 option to git format-patch. See [1].
[1] https://buildroot.org/downloads/manual/manual.html#_patch_revision_changelog
[snip]
> diff --git a/package/qbittorrent/Config.in b/package/qbittorrent/Config.in
> new file mode 100644
> index 0000000000..c4bdf3a22e
> --- /dev/null
> +++ b/package/qbittorrent/Config.in
> @@ -0,0 +1,63 @@
> +comment "qbittorrent needs a toolchain w/ C++, threads, wchar, NPTL, dynamic library, gcc >= 4.8"
> + depends on !BR2_PACKAGE_QT
We no longer have qt4, so this is not needed.
> + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \
> + !BR2_HOST_GCC_AT_LEAST_4_8 || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || \
> + !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS> +
> +config BR2_PACKAGE_QBITTORRENT
> + bool "qbittorrent"
> + depends on BR2_INSTALL_LIBSTDCPP
> + depends on BR2_HOST_GCC_AT_LEAST_4_8
Why is this needed? Put a small comment here, and a more extensive explanation
in the commit message.
> + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
You should add a comment why. Typically this would be # C++11.
> + depends on BR2_TOOLCHAIN_HAS_THREADS
This is redundant, the NPTL below implies it.
> + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
I assume this comes from qt5. Add a comment for that:
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # qt5
> + depends on BR2_USE_WCHAR
> + depends on !BR2_STATIC_LIBS
> + depends on !BR2_PACKAGE_QT
> + select BR2_PACKAGE_BOOST
> + select BR2_PACKAGE_BOOST_SYSTEM
> + select BR2_PACKAGE_BOOST_THREAD
You didn't reply to Thomas's comment in v1 of the patch:
Is this package directly using Boost, or only indirectly because it's
using libtorrent-rasterbar ? It's rather odd for a program to use both
Boost and Qt.
I'll answer it myself, though: it *does* use Boost directly.
> + select BR2_PACKAGE_LIBTORRENT_RASTERBAR
> + select BR2_PACKAGE_QT5
> + select BR2_PACKAGE_QT5BASE
> + select BR2_PACKAGE_ZLIB
> + help
> + The qBittorrent project aims to provide
> + an open-source software alternative to ?Torrent.
> +
> + https://www.qbittorrent.org/
> +
> +if BR2_PACKAGE_QBITTORRENT
> +
> +config BR2_PACKAGE_QBITTORRENT_GUI
> + bool "GUI"
> + select BR2_PACKAGE_HICOLOR_ICON_THEME
> + select BR2_PACKAGE_QT5BASE_GUI
> + select BR2_PACKAGE_QT5BASE_WIDGETS
> + select BR2_PACKAGE_QT5SVG
> + help
> + Disable for headless mode.
> + The target binary will be called qbittorrent-nox.
> +
> +if BR2_PACKAGE_QBITTORRENT_GUI
> +
> +config BR2_PACKAGE_QBITTORRENT_QTDBUS
> + bool "D-Bus support"
> + default y
> + select BR2_PACKAGE_QT5BASE_DBUS
> + help
> + Enable D-Bus support.
> +
> +endif
> +
> +if !BR2_PACKAGE_QBITTORRENT_GUI
Why would you exclude the webUI if the GUI is selected? To me, it makes perfect
sense to have both available.
> +
> +config BR2_PACKAGE_QBITTORRENT_WEBUI
If neither webUI nor GUI are selected, does the package still do something
useful? If not, then you should add the following to the top-level qbittorrent
symbol:
select BR2_PACKAGE_QBITTORRENT_WEBUI if !BR2_PACKAGE_QBITTORRENT_GUI
This makes sure the webUI is unconditionally enabled when the GUI is not.
> + bool "WebUI"
> + default y
> + help
> + Enable the WebUI.
> +
> +endif
> +
> +endif
> diff --git a/package/qbittorrent/qbittorrent.hash b/package/qbittorrent/qbittorrent.hash
> new file mode 100644
> index 0000000000..6cc24d2796
> --- /dev/null
> +++ b/package/qbittorrent/qbittorrent.hash
> @@ -0,0 +1,5 @@
> +# Locally checked with PGP signature from https://downloads.sourceforge.net/sourceforge/qbittorrent/qbittorrent-4.1.4.tar.xz.asc
Excellent!
> +sha256 5f7b4c5ae891ce7fbab880ff322764a0d433fccf655164f6b98ef08f1ae52386 qbittorrent-4.1.4.tar.xz
> +
> +# Locally calculated
> +sha256 fc68233a17d308ee633aefedbd761c7582ec48557539aca310b4162e54212fe5 COPYING
> diff --git a/package/qbittorrent/qbittorrent.mk b/package/qbittorrent/qbittorrent.mk
> new file mode 100644
> index 0000000000..11523efdbb
> --- /dev/null
> +++ b/package/qbittorrent/qbittorrent.mk
> @@ -0,0 +1,41 @@
> +################################################################################
> +#
> +# qbittorrent
> +#
> +################################################################################
> +
> +QBITTORRENT_VERSION = 4.1.4
> +QBITTORRENT_SOURCE = qbittorrent-$(QBITTORRENT_VERSION).tar.xz
> +QBITTORRENT_SITE = https://downloads.sourceforge.net/sourceforge/qbittorrent
> +QBITTORRENT_LICENSE = GPL-2.0
All files have the 'or later' clause, so this is GPL-2.0+
> +QBITTORRENT_LICENSE_FILES = COPYING
> +QBITTORRENT_DEPENDENCIES = host-pkgconf boost libtorrent-rasterbar qt5base zlib
> +QBITTORRENT_CONF_OPTS += --with-boost-libdir=$(STAGING_DIR)/usr/lib
I think we should also set --with-qtsingleapplication=system
> +QBITTORRENT_INSTALL_TARGET_OPTS = INSTALL_ROOT="$(TARGET_DIR)" install
> +
> +ifeq ($(BR2_PACKAGE_QBITTORRENT_GUI),y)
> +QBITTORRENT_CONF_OPTS += --enable-gui
> +QBITTORRENT_DEPENDENCIES += hicolor-icon-theme qt5svg
> +else
> +QBITTORRENT_CONF_OPTS += --disable-gui
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QBITTORRENT_QTDBUS),y)
Actually, for this one, you could also do it automatically, i.e.
ifeq ($(BR2_PACKAGE_QT5BASE_DBUS),y)
and remove the BR2_PACKAGE_QBITTORRENT_QTDBUS option. But it's not so important.
> +QBITTORRENT_CONF_OPTS += --enable-qt-dbus
> +else
> +QBITTORRENT_CONF_OPTS += --disable-qt-dbus
> +endif
> +
> +ifeq ($(BR2_INIT_SYSTEMD),y)
> +QBITTORRENT_CONF_OPTS += --enable-systemd
> +else
> +QBITTORRENT_CONF_OPTS += --disable-systemd
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QBITTORRENT_WEBUI),y)
> +QBITTORRENT_CONF_OPTS += --enable-webui
> +else
> +QBITTORRENT_CONF_OPTS += --disable-webui
> +endif
> +
> +$(eval $(autotools-package))
Interesting... This package uses autoconf to generate a qmake configuration,
then qmake to generate a Makefile... I've never seen that.
Regards,
Arnout
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2019-08-03 17:16 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-09-11 8:50 [Buildroot] [PATCH 1/2] package/libtorrent-rasterbar: new package Philipp Richter
2018-09-11 8:50 ` [Buildroot] [PATCH 2/2] package/qbittorrent: " Philipp Richter
2018-10-11 19:40 ` Thomas Petazzoni
2018-10-11 19:19 ` [Buildroot] [PATCH 1/2] package/libtorrent-rasterbar: " Thomas Petazzoni
[not found] ` <CA+Vb7hrYyCfVAq=nk8a9GfGW10Fatw3WXZ5=wsJuVqba6MPnYg@mail.gmail.com>
2018-10-12 8:25 ` Philipp Richter
2018-10-13 15:32 ` Arnout Vandecappelle
-- strict thread matches above, loose matches on Subject: below --
2018-11-23 18:14 Philipp Richter
2018-11-23 18:14 ` [Buildroot] [PATCH 2/2] package/qbittorrent: " Philipp Richter
2019-08-03 17:16 ` Arnout Vandecappelle
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox