From 7d88ebc7759c773a39bb1d55a9b504b53b5b99f3 Mon Sep 17 00:00:00 2001
From: Joakim Bergman <jocke@gipset.se>
Date: Wed, 2 Nov 2022 17:21:50 +0100
Subject: [PATCH 2/2] net-p2p/deluge-cli: update to 2.1.1

fix service file issues:
- long options to make it easier to read
- remove deprecated -f/--fork option (it's now default and there is no
  way to explicitly negate the new option --do-not-daemonize)
- use *_confdir variable in command_args
- remove setproctitle dependency to allow stop/restart of service

fix build issues:
- replace slimit with rjsmin for javascript minification for web ui
- depend on py-libtorrent-rasterbar>=1.2 (required for deluge >= 2.1)
- make PY_PILLOW dependency optional for cli and required for ui
  (default include)
---
 net-p2p/deluge-cli/Makefile                   | 17 ++++++-----
 net-p2p/deluge-cli/distinfo                   |  6 ++--
 net-p2p/deluge-cli/files/deluge_web.in        |  7 ++++-
 net-p2p/deluge-cli/files/deluged.in           |  2 +-
 .../files/patch-deluge_argparserbase.py       | 11 -------
 .../patch-deluge_core_preferencesmanager.py   | 13 ---------
 .../files/patch-deluge_core_torrent.py        | 16 ----------
 .../files/patch-deluge_core_torrentmanager.py | 22 --------------
 .../files/patch-deluge_i18n_util.py           | 14 ---------
 net-p2p/deluge-cli/files/patch-deluge_log.py  | 29 -------------------
 net-p2p/deluge-cli/pkg-plist                  | 12 ++++++++
 net-p2p/deluge/Makefile                       |  5 ++--
 12 files changed, 34 insertions(+), 120 deletions(-)
 delete mode 100644 net-p2p/deluge-cli/files/patch-deluge_argparserbase.py
 delete mode 100644 net-p2p/deluge-cli/files/patch-deluge_core_preferencesmanager.py
 delete mode 100644 net-p2p/deluge-cli/files/patch-deluge_core_torrent.py
 delete mode 100644 net-p2p/deluge-cli/files/patch-deluge_core_torrentmanager.py
 delete mode 100644 net-p2p/deluge-cli/files/patch-deluge_i18n_util.py
 delete mode 100644 net-p2p/deluge-cli/files/patch-deluge_log.py

diff --git a/net-p2p/deluge-cli/Makefile b/net-p2p/deluge-cli/Makefile
index dcadacc8156c..d5f95c7e3e21 100644
--- a/net-p2p/deluge-cli/Makefile
+++ b/net-p2p/deluge-cli/Makefile
@@ -1,62 +1,63 @@
 PORTNAME=	deluge
-DISTVERSION=	2.0.3
-PORTREVISION=	4
+DISTVERSION=	2.1.1
+PORTREVISION=	0
 CATEGORIES=	net-p2p python
 MASTER_SITES=	CHEESESHOP
 PKGNAMESUFFIX=	-cli
 
 MAINTAINER=	rm@FreeBSD.org
 COMMENT=	CLI part of bittorrent client using Python and libtorrent-rasterbar
 WWW=		https://deluge-torrent.org/
 
 LICENSE=	GPLv3
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
 BUILD_DEPENDS=	intltool-merge:textproc/intltool \
 		${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel \
-		${PYTHON_PKGNAMEPREFIX}slimit>0:www/py-slimit
+		${PYTHON_PKGNAMEPREFIX}rjsmin>0:archivers/py-rjsmin@${PY_FLAVOR}
 RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}xdg>=0.18:devel/py-xdg@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}libtorrent-rasterbar>=0:net-p2p/py-libtorrent-rasterbar@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}libtorrent-rasterbar>=1.2:net-p2p/py-libtorrent-rasterbar@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}openssl>=0.8:security/py-openssl@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}chardet>=1.0.1:textproc/py-chardet@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}mako>=0.2.5:textproc/py-mako@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}service_identity>=0:security/py-service_identity@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}twisted>=0:devel/py-twisted@${PY_FLAVOR} \
-		${PY_PILLOW} \
 		${PYTHON_PKGNAMEPREFIX}rencode>0:converters/py-rencode@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}zope.interface>0:devel/py-zope.interface@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}distro>0:sysutils/py-distro@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}setproctitle>0:devel/py-setproctitle@${PY_FLAVOR}
+		${PYTHON_PKGNAMEPREFIX}distro>0:sysutils/py-distro@${PY_FLAVOR}
 
 USES=		cpe gettext python:3.5+
 USE_PYTHON=	autoplist distutils
 
 CPE_VENDOR=	deluge-torrent
 
 NO_ARCH=	yes
 
 USE_RC_SUBR=	deluged deluge_web
 SUB_LIST+=	PYTHON_CMD=${PYTHON_CMD}
 
-OPTIONS_DEFINE=	DOCS
+OPTIONS_DEFINE=	DOCS PILLOW
+OPTIONS_DEFAULT=	PILLOW
+PILLOW_DESC=Support for resizing tracker icons (pulls in many graphics libraries which may not be useful in a headless server).
+PILLOW_RUN_DEPENDS=${PY_PILLOW}
 
 PORTDOCS=	CHANGELOG.md README.md
 
 post-patch:
 	@${REINPLACE_CMD} -e "/'new_release_check':/s|True,|False,|g ; \
 		/'geoip_db_location':/s|/usr/share/GeoIP/GeoIP.dat|${LOCALBASE}/share/GeoIP/GeoIP.dat|g" \
 			${WRKSRC}/deluge/core/preferencesmanager.py
 	@${REINPLACE_CMD} -e "/'check_new_releases':/s|True,|False,|g ; \
 		/'show_new_releases':/s|True,|False,|g" \
 			${WRKSRC}/deluge/ui/gtk3/gtkui.py
 
 post-install:
 # install man pages
 .for man in deluge.1 deluge-console.1 deluge-gtk.1 deluge-web.1 deluged.1
 	${INSTALL_MAN} ${WRKSRC}/docs/man/${man} ${STAGEDIR}${MANPREFIX}/man/man1/
 .endfor
 
 post-install-DOCS-on:
 	@${MKDIR} ${STAGEDIR}${DOCSDIR}
 	${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR}
diff --git a/net-p2p/deluge-cli/distinfo b/net-p2p/deluge-cli/distinfo
index 8e76e4919863..7ddcbefad657 100644
--- a/net-p2p/deluge-cli/distinfo
+++ b/net-p2p/deluge-cli/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1576604768
-SHA256 (deluge-2.0.3.tar.gz) = bd26950f417de2a5b26827d989935a30e770f880c22cb59ca69f781cdc9a14c9
-SIZE (deluge-2.0.3.tar.gz) = 3428443
+TIMESTAMP = 1664091616
+SHA256 (deluge-2.1.1.tar.gz) = d6ea7e1f5bdd75f40cbd1d56f0c97cd1b5b74bc9e03783858c7daa81063dd4b9
+SIZE (deluge-2.1.1.tar.gz) = 5492681
diff --git a/net-p2p/deluge-cli/files/deluge_web.in b/net-p2p/deluge-cli/files/deluge_web.in
index 251e7b9b4cf2..8b2ef2742962 100644
--- a/net-p2p/deluge-cli/files/deluge_web.in
+++ b/net-p2p/deluge-cli/files/deluge_web.in
@@ -17,72 +17,77 @@
 # OPTIONAL:
 #
 # deluge_web_flags (str):	Set as needed
 #				See deluge-web(1) for more information
 #
 # deluge_web_confdir (path):	Set to /home/$deluge_web_user/.config/deluge
 #				by default
 #
 # deluge_web_loglevel (str):	Set to "error" by default
 #
 # deluge_web_logfile (path):	Set to /var/tmp/deluge_web.log by default
 
 . /etc/rc.subr
 
 name="deluge_web"
 rcvar=${name}_enable
 
 command=%%PREFIX%%/bin/deluge-web
 command_interpreter=%%PYTHON_CMD%%
 
+pidfile=/var/run/${name}/pid
+
 start_precmd=${name}_prestart
 stop_postcmd=${name}_poststop
 
 
 deluge_web_prestart()
 {
 	if [ "$deluge_web_user" = 'asjklasdfjklasdf' ]; then
 		err 1 "You must set deluge_web_user to a real, unprivileged user"
 	fi
 
 	if [ -z ${deluge_web_home} ]; then
 		err 1 "deluge_web_user does not have a valid home directory."
 	fi
 
 	if [ ! -d "/var/run/${name}" ]; then
 		if [ -e "/var/run/${name}" ]; then
 			unlink /var/run/${name}
 		fi
 		mkdir -p /var/run/${name}
 	fi
 
 	if [ ! -d "${deluge_web_home}/.python-eggs" ]; then
 		mkdir ${deluge_web_home}/.python-eggs
 		chown -R $deluge_web_user ${deluge_web_home}/.python-eggs
 	fi
 
 	chmod 0755 /var/run/${name}
 	chown -R $deluge_web_user /var/run/${name}
 	export PYTHON_EGG_CACHE="${deluge_web_home}/.python-eggs"
 }
 
 deluge_web_poststop()
 {
+	[ -e "$pidfile" ] && unlink $pidfile
+	[ -d "${pidfile%/pid}" ] && rmdir ${pidfile%/pid}
+
 	[ -e "$deluge_web_logfile" -a ! -s "$deluge_web_logfile" ] &&
 		unlink $deluge_web_logfile
 }
 
 load_rc_config $name
 
 : ${deluge_web_enable:="NO"}
 : ${deluge_web_user:="asjklasdfjklasdf"}
 
 deluge_web_home=$(pw user show ${deluge_web_user} | cut -d : -f 9)
 
 : ${deluge_web_confdir:="${deluge_web_home}/.config/deluge"}
 : ${deluge_web_loglevel:="error"}
 : ${deluge_web_logfile:="/var/tmp/${name}.log"}
 
 required_dirs="$deluge_web_confdir"
-command_args="-f -c $required_dirs -L $deluge_web_loglevel -l $deluge_web_logfile"
+command_args="--config=$deluge_web_confdir --loglevel=$deluge_web_loglevel --logfile=$deluge_web_logfile --pidfile=$pidfile"
 
 run_rc_command "$1"
diff --git a/net-p2p/deluge-cli/files/deluged.in b/net-p2p/deluge-cli/files/deluged.in
index 6b6745a204fc..d460e8c94924 100644
--- a/net-p2p/deluge-cli/files/deluged.in
+++ b/net-p2p/deluge-cli/files/deluged.in
@@ -57,23 +57,23 @@ deluged_prestart()
 }
 
 deluged_poststop()
 {
 	[ -e "$pidfile" ] && unlink $pidfile
 	[ -d "${pidfile%/pid}" ] && rmdir ${pidfile%/pid}
 
 	[ -e "$deluged_logfile" -a ! -s "$deluged_logfile" ] &&
 		unlink $deluged_logfile
 }
 
 load_rc_config $name
 
 : ${deluged_enable:="NO"}
 : ${deluged_user:="asjklasdfjklasdf"}
 : ${deluged_confdir:="/home/${deluged_user}/.config/deluge"}
 : ${deluged_loglevel:="error"}
 : ${deluged_logfile:="/var/tmp/${name}.log"}
 
 required_dirs="$deluged_confdir"
-command_args="-c $required_dirs -L $deluged_loglevel -l $deluged_logfile -P $pidfile"
+command_args="--config=$deluged_confdir --loglevel=$deluged_loglevel --logfile=$deluged_logfile --pidfile=$pidfile"
 
 run_rc_command "$1"
diff --git a/net-p2p/deluge-cli/files/patch-deluge_argparserbase.py b/net-p2p/deluge-cli/files/patch-deluge_argparserbase.py
deleted file mode 100644
index e8d524ff0329..000000000000
--- a/net-p2p/deluge-cli/files/patch-deluge_argparserbase.py
+++ /dev/null
@@ -1,11 +0,0 @@
-Vendor fix for https://dev.deluge-torrent.org/ticket/3278
-
-===================================================================
---- deluge/argparserbase.py	(revision d417c4b0f9fd0702ebf986546ab884d2a9517e4e)
-+++ deluge/argparserbase.py	(revision 1b4ac88ce72515bcf36684b942e3998900f13cea)
-@@ -326,5 +326,5 @@
-             # Write pid file before chuid
-             if options.pidfile:
--                with open(options.pidfile, 'wb') as _file:
-+                with open(options.pidfile, 'w') as _file:
-                     _file.write('%d\n' % os.getpid())
diff --git a/net-p2p/deluge-cli/files/patch-deluge_core_preferencesmanager.py b/net-p2p/deluge-cli/files/patch-deluge_core_preferencesmanager.py
deleted file mode 100644
index e833dd0896e7..000000000000
--- a/net-p2p/deluge-cli/files/patch-deluge_core_preferencesmanager.py
+++ /dev/null
@@ -1,13 +0,0 @@
-Fix for https://dev.deluge-torrent.org/ticket/3337
-
---- deluge/core/preferencesmanager.py.orig	2020-11-16 07:47:52 UTC
-+++ deluge/core/preferencesmanager.py
-@@ -231,7 +231,7 @@ class PreferencesManager(component.Component):
-         self.core.apply_session_settings(
-             {
-                 'listen_system_port_fallback': self.config['listen_use_sys_port'],
--                'listen_interfaces': ''.join(interfaces),
-+                'listen_interfaces': ','.join(interfaces),
-             }
-         )
- 
diff --git a/net-p2p/deluge-cli/files/patch-deluge_core_torrent.py b/net-p2p/deluge-cli/files/patch-deluge_core_torrent.py
deleted file mode 100644
index 4ac6f2e4d888..000000000000
--- a/net-p2p/deluge-cli/files/patch-deluge_core_torrent.py
+++ /dev/null
@@ -1,16 +0,0 @@
-Vendor fix for https://dev.deluge-torrent.org/ticket/3279
-
-===================================================================
---- deluge/core/torrent.py	(revision 8b62e50eb8bf81a177c4d62484a44b766c6f54a6)
-+++ deluge/core/torrent.py	(revision 4b29436cd5eabf9af271f3fa6250cd7c91cdbc9d)
-@@ -811,5 +811,9 @@
-                 continue
- 
--            client = decode_bytes(peer.client)
-+            try:
-+                client = decode_bytes(peer.client)
-+            except UnicodeDecodeError:
-+                # libtorrent on Py3 can raise UnicodeDecodeError for peer_info.client
-+                client = 'unknown'
- 
-             try:
diff --git a/net-p2p/deluge-cli/files/patch-deluge_core_torrentmanager.py b/net-p2p/deluge-cli/files/patch-deluge_core_torrentmanager.py
deleted file mode 100644
index 3e876b1c34c2..000000000000
--- a/net-p2p/deluge-cli/files/patch-deluge_core_torrentmanager.py
+++ /dev/null
@@ -1,22 +0,0 @@
-Vendor fix for https://dev.deluge-torrent.org/ticket/3298
-
-===================================================================
---- deluge/core/torrentmanager.py	(revision 8b62e50eb8bf81a177c4d62484a44b766c6f54a6)
-+++ deluge/core/torrentmanager.py	(revision 23b3f144fce3424ae874d54a659cb7b8dd624ade)
-@@ -26,5 +26,5 @@
- import deluge.component as component
- from deluge._libtorrent import lt
--from deluge.common import archive_files, decode_bytes, get_magnet_info, is_magnet
-+from deluge.common import PY2, archive_files, decode_bytes, get_magnet_info, is_magnet
- from deluge.configmanager import ConfigManager, get_config_dir
- from deluge.core.authmanager import AUTH_LEVEL_ADMIN
-@@ -810,5 +810,8 @@
-             try:
-                 with open(filepath, 'rb') as _file:
--                    state = pickle.load(_file)
-+                    if PY2:
-+                        state = pickle.load(_file)
-+                    else:
-+                        state = pickle.load(_file, encoding='utf8')
-             except (IOError, EOFError, pickle.UnpicklingError) as ex:
-                 message = 'Unable to load {}: {}'.format(filepath, ex)
diff --git a/net-p2p/deluge-cli/files/patch-deluge_i18n_util.py b/net-p2p/deluge-cli/files/patch-deluge_i18n_util.py
deleted file mode 100644
index 7fbb57ca5af3..000000000000
--- a/net-p2p/deluge-cli/files/patch-deluge_i18n_util.py
+++ /dev/null
@@ -1,14 +0,0 @@
-PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=256484
-https://dev.deluge-torrent.org/changeset/d6c96d629183e8bab
-
---- deluge/i18n/util.py.orig	2019-06-12 17:49:45 UTC
-+++ deluge/i18n/util.py
-@@ -114,7 +114,7 @@ def setup_translation():
-         # Workaround for Python 2 unicode gettext (keyword removed in Py3).
-         kwargs = {} if not deluge.common.PY2 else {'unicode': True}
- 
--        gettext.install(I18N_DOMAIN, translations_path, names='ngettext', **kwargs)
-+        gettext.install(I18N_DOMAIN, translations_path, names=['ngettext'], **kwargs)
-         builtins.__dict__['_n'] = builtins.__dict__['ngettext']
- 
-         libintl = None
diff --git a/net-p2p/deluge-cli/files/patch-deluge_log.py b/net-p2p/deluge-cli/files/patch-deluge_log.py
deleted file mode 100644
index c908439441da..000000000000
--- a/net-p2p/deluge-cli/files/patch-deluge_log.py
+++ /dev/null
@@ -1,29 +0,0 @@
-From 351664ec071daa04161577c6a1c949ed0f2c3206 Mon Sep 17 00:00:00 2001
-From: minus <minus@mnus.de>
-Date: Sun, 17 Nov 2019 09:36:23 +0100
-Subject: [Logging] Fix Python 3.8 compatibility
-
-Deluge's logger class extends Python's `logging.Logger`. Since Python
-3.8, it takes an additional argument `stacklevel`.
-The implementation in Deluge does not support that. Work around the
-problem by ignoring additional arguments.
----
- deluge/log.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/deluge/log.py b/deluge/log.py
-index 75e8308..0f9877f 100644
---- deluge/log.py
-+++ deluge/log.py
-@@ -86,7 +86,7 @@ class Logging(LoggingLoggerClass):
-     def exception(self, msg, *args, **kwargs):
-         yield LoggingLoggerClass.exception(self, msg, *args, **kwargs)
- 
--    def findCaller(self, stack_info=False):  # NOQA: N802
-+    def findCaller(self, *args, **kwargs):  # NOQA: N802
-         f = logging.currentframe().f_back
-         rv = '(unknown file)', 0, '(unknown function)'
-         while hasattr(f, 'f_code'):
--- 
-cgit v1.1
-
diff --git a/net-p2p/deluge-cli/pkg-plist b/net-p2p/deluge-cli/pkg-plist
index cefd75b480c2..8885a9b404b4 100644
--- a/net-p2p/deluge-cli/pkg-plist
+++ b/net-p2p/deluge-cli/pkg-plist
@@ -1,72 +1,84 @@
+%%PYTHON_SITELIBDIR%%/deluge/i18n/af/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/ar/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/ast/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/be/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/bg/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/bn/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/bs/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/ca/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/cs/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/cy/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/da/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/de/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/el/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/en_AU/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/en_CA/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/en_GB/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/eo/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/es/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/et/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/eu/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/fa/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/fi/LC_MESSAGES/deluge.mo
+%%PYTHON_SITELIBDIR%%/deluge/i18n/fo/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/fr/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/fy/LC_MESSAGES/deluge.mo
+%%PYTHON_SITELIBDIR%%/deluge/i18n/ga/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/gl/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/he/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/hi/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/hr/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/hu/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/id/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/is/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/it/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/iu/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/ja/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/ka/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/kk/LC_MESSAGES/deluge.mo
+%%PYTHON_SITELIBDIR%%/deluge/i18n/km/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/kn/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/ko/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/ku/LC_MESSAGES/deluge.mo
+%%PYTHON_SITELIBDIR%%/deluge/i18n/ky/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/la/LC_MESSAGES/deluge.mo
+%%PYTHON_SITELIBDIR%%/deluge/i18n/lb/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/lt/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/lv/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/mk/LC_MESSAGES/deluge.mo
+%%PYTHON_SITELIBDIR%%/deluge/i18n/ml/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/ms/LC_MESSAGES/deluge.mo
+%%PYTHON_SITELIBDIR%%/deluge/i18n/nap/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/nb/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/nds/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/nl/LC_MESSAGES/deluge.mo
+%%PYTHON_SITELIBDIR%%/deluge/i18n/nn/LC_MESSAGES/deluge.mo
+%%PYTHON_SITELIBDIR%%/deluge/i18n/oc/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/pl/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/pms/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/pt/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/pt_BR/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/ro/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/ru/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/si/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/sk/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/sl/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/sr/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/sv/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/ta/LC_MESSAGES/deluge.mo
+%%PYTHON_SITELIBDIR%%/deluge/i18n/te/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/th/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/tl/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/tlh/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/tr/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/uk/LC_MESSAGES/deluge.mo
+%%PYTHON_SITELIBDIR%%/deluge/i18n/ur/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/vi/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/zh_CN/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/zh_HK/LC_MESSAGES/deluge.mo
 %%PYTHON_SITELIBDIR%%/deluge/i18n/zh_TW/LC_MESSAGES/deluge.mo
 man/man1/deluge-console.1.gz
 man/man1/deluge-gtk.1.gz
 man/man1/deluge-web.1.gz
 man/man1/deluge.1.gz
 man/man1/deluged.1.gz
diff --git a/net-p2p/deluge/Makefile b/net-p2p/deluge/Makefile
index 15da125d2c12..b7a886070e78 100644
--- a/net-p2p/deluge/Makefile
+++ b/net-p2p/deluge/Makefile
@@ -1,21 +1,22 @@
 PORTNAME=	deluge
-PORTVERSION=	2.0.3
-PORTREVISION=	2
+PORTVERSION=	2.1.1
+PORTREVISION=	0
 PORTEPOCH=	2
 CATEGORIES=	net-p2p python
 
 MAINTAINER=	rm@FreeBSD.org
 COMMENT=	Bittorrent client using Python, GTK3, and libtorrent-rasterbar
 WWW=		https://deluge-torrent.org/
 
 LICENSE=	GPLv3
 
 RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}dbus>=0.83:devel/py-dbus@${PY_FLAVOR} \
 		${PYGAME} \
+		${PY_PILLOW} \
 		xdg-utils>=1.0.2:devel/xdg-utils \
 		deluge:net-p2p/deluge-cli
 
 USES=		gnome metaport python:3.5+
 USE_GNOME=	gtk30 librsvg2 pygobject3
 
 .include <bsd.port.mk>
-- 
2.37.3