public inbox for ipfire-scm@lists.ipfire.org
 help / color / mirror / Atom feed
* [git.ipfire.org] IPFire 2.x development tree branch, next, updated. 4b0d8ba79ac3bb2e21a48679cc1ca01ec2f1e65d
@ 2021-05-14 12:30 Michael Tremer
  0 siblings, 0 replies; only message in thread
From: Michael Tremer @ 2021-05-14 12:30 UTC (permalink / raw)
  To: ipfire-scm

[-- Attachment #1: Type: text/plain, Size: 49755 bytes --]

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "IPFire 2.x development tree".

The branch, next has been updated
       via  4b0d8ba79ac3bb2e21a48679cc1ca01ec2f1e65d (commit)
       via  96c86cf62109b048bcfac051027b9ad0ef705943 (commit)
       via  35032d1db12f29dd9fac8b87e9c1bbc02f253d9b (commit)
       via  d55a968a7221cc5ea987579caa0b354cf28d18d5 (commit)
       via  64f7cb5b95f843515a29047593e441ed9fe2802e (commit)
       via  3a61ae73fa179adb24f9feeb8ee486c1900609bf (commit)
       via  a276dfba7a4228aef22af1c669bec8012715f4a4 (commit)
       via  a15db22f3b3bc3e9baca34ef7ba9244f5729b4c9 (commit)
       via  632f2d44a25601e9ab1a86590ce61ffc9ded6918 (commit)
       via  9121ebf62116f4e62c5d158ea844f9858fb4e26c (commit)
      from  bf882cc8085caa99aedb2c6b46eb6d567063dd09 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 4b0d8ba79ac3bb2e21a48679cc1ca01ec2f1e65d
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Fri May 14 11:54:50 2021 +0000

    core157: Ship unbound-dhcp-leases-bridge
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 96c86cf62109b048bcfac051027b9ad0ef705943
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Fri May 14 12:53:11 2021 +0100

    unbound-dhcp-leases-bridge: Migrate to Python 3
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 35032d1db12f29dd9fac8b87e9c1bbc02f253d9b
Author: Adolf Belka <adolf.belka(a)ipfire.org>
Date:   Fri May 14 12:30:17 2021 +0200

    python-ipaddress: Remove this python2 module
    
    - python-ipaddress is the python2 backport of the python3 built in
       ipaddress module. Therefore python-ipaddress is not needed with the
       move to try and remove python2
    - Remove the lfs and rootfiles and adjust make.sh
    
    Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit d55a968a7221cc5ea987579caa0b354cf28d18d5
Author: Adolf Belka <adolf.belka(a)ipfire.org>
Date:   Thu May 13 22:44:30 2021 +0200

    python3-inotify: Update to 0.2.10 and convert to python3
    
    - Update from 0.2.7 to 0.2.10
    - Convert from python-inotify to python3-inotify
       make.sh, lfs & rootfiles
    - Update rootfiles
    - Changelog
      0.2.8: - We now just *skip* the event if not known
        - Implement InotifyTree and InotifyTrees as sub-classes of new BaseTree
          class
        - Made InotifyTree and InotifyTrees sub-classes of new base class
          BaseTree
        - Recursively watch a list of paths/trees
      0.2.9: - Added getter for Inotify object from tree objects
        - Added note to docs about race-conditions. Added small change for
          redundant adds.
        - Slightly reorganized documentation. Updated example.
        - Merge pull request #35 from dsoprea/dustin. Added extensive unit-test
          coverage. Closes all bug requests.
        - Added large amount of unit-test coverage.
           - Now handle rename-specific events.
           - Can now also ignore issues with new directories not existing if
             you're created *and* deleted or renamed a folder since the last
             time events were read.
           - Adjusted requirements for simplicity.
           - Added Python 3 compatibility.
           - Fixed Unicode support.
           - Can now provide `filter_predicate` to event_gen() to allow custom
             loop termination based on events.
           - We'll now terminate the loop when certain events are encountered.
             These events are passed into event_gen() as `terminal_events`. By
             default these are the IN_Q_OVERFLOW and IN_UNMOUNT types.
           - Fixes #28
           - Fixes #23
           - Fixes #22
           - Fixes #19
           - Fixes #16
           - Fixes #15
           - Fixes #5
        - Check presence of both glibc errno and musl libc err
        - Support for musl libc (Alpine Linux)
        - Merge pull request #27 from jessesuen/master. Support for musl libc
          (Alpine Linux)
        - Check presence of both glibc errno and musl libc err
        - Merge pull request #26 from hathcock/hathcock/issue-25. resolves #25,
          list of binary paths can't be logged with existing call
           - Support for musl libc (Alpine Linux)
           - Resolves #25, list of binary paths can't be logged with existing
             call
      0.2.10: - Merge pull request #34 from davidparsson/
                feature/support-moved-directories
          - Support MOVED_FROM and MOVED_TO in BaseTree
        - events: Now log event types from epoll vs data stream.
        - This release implicitly fixed the botched binary package released
          in 0.2.9
    
    Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
    Reviewed-by: Peter Müller <peter.mueller(a)ipfire.org>
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 64f7cb5b95f843515a29047593e441ed9fe2802e
Author: Adolf Belka <adolf.belka(a)ipfire.org>
Date:   Thu May 13 18:47:08 2021 +0200

    python3-dateutil: Removal of python3-six as a dependency
    
    - python3-dateutil is installed as a python3 module.
    - It had python3-six defined as a dependency. Python3-six is a module that
       allows a project to be capable of neing run under python2 or under
       python3
    - With the planned removal of python2 there is no need to have
       python3-dateutil capable of working with python2.
    - python3-six addon is being removed as there is no need for any python3
       module in IPFire to also be capable o0f running under python2
    
    Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
    Reviewed-by: Peter Müller <peter.mueller(a)ipfire.org>
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 3a61ae73fa179adb24f9feeb8ee486c1900609bf
Author: Adolf Belka <adolf.belka(a)ipfire.org>
Date:   Thu May 13 18:47:07 2021 +0200

    python-six: Removal of python2 & 3 addon versions of six
    
    - six is a python compatibility module to enable modules to run on
       both python2 and python3. The code from six has to be copied into
       any other module/project that is intending to use it.
    - With the planned removal of python2 then neither version of this
       compatibility module is needed.
    - Removal of the lfs and rootfiles. Although python-six is an addon
       its rootfile was installed into the common folder rather than the
       packages folder.
    - Removal of the python-six and python3-six entries in make.sh
    
    Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
    Reviewed-by: Peter Müller <peter.mueller(a)ipfire.org>
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit a276dfba7a4228aef22af1c669bec8012715f4a4
Author: Leo-Andres Hofmann <hofmann(a)leo-andres.de>
Date:   Thu May 13 11:27:04 2021 +0200

    getrrdimage.cgi: Allow more non-word characters in the URL
    
    As discussed in bug #12615
    
    Signed-off-by: Leo-Andres Hofmann <hofmann(a)leo-andres.de>
    Reviewed-by: Adolf Belka <adolf.belka(a)ipfire.org>
    Reviewed-by: Peter Müller <peter.mueller(a)ipfire.org>
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit a15db22f3b3bc3e9baca34ef7ba9244f5729b4c9
Author: Adolf Belka <adolf.belka(a)ipfire.org>
Date:   Thu May 13 13:43:31 2021 +0200

    make.sh: Removal of four python2 modules
    
    - Removal of python-clientform, python-feedparser, python-mechanize
       and python-rssdler addons - lfs and rootfiles
    - python-clientform was made obsolete in 2008 and its functions taken
       over by python-mechanize
    - python-rssdler is an RSS feed downloader to facilitate downloading of
       podcasts, videocasts and torrents. Current IPFire version is 0.4.0a
       from 2008. The most recent version available is 0.4.2 from 2009. No
       further development is being done with this module. An RSS feed
       downloader is not appropriate for use in a firewall system, even
       less so when it is 12 years old.
    - python-feedparser and python-mechanize are both dependencies for
       python-rssdler. They are not dependencies for any other addon.
    - Full clean build with these four modules fully removed gave no problems.
    
    Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
    Reviewed-by: Peter Müller <peter.mueller(a)ipfire.org>
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 632f2d44a25601e9ab1a86590ce61ffc9ded6918
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Thu May 13 08:40:01 2021 +0000

    core157: Ship ddns
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 9121ebf62116f4e62c5d158ea844f9858fb4e26c
Author: Stefan Schantl <stefan.schantl(a)ipfire.org>
Date:   Wed May 12 20:06:43 2021 +0200

    ddns: Add upstream patch to fix argparse list-token-providers command.
    
    Fixes #12607.
    
    Signed-off-by: Stefan Schantl <stefan.schantl(a)ipfire.org>
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

-----------------------------------------------------------------------

Summary of changes:
 config/rootfiles/common/python-inotify             | 20 ------
 config/rootfiles/common/python-ipaddress           |  8 ---
 config/rootfiles/common/python-six                 |  9 ---
 config/rootfiles/common/python3-inotify            | 17 +++++
 .../{oldcore/104 => core/157}/filelists/ddns       |  0
 config/rootfiles/core/157/filelists/files          |  1 +
 config/rootfiles/packages/python-clientform        |  1 -
 config/rootfiles/packages/python-feedparser        |  3 -
 config/rootfiles/packages/python-mechanize         |  1 -
 config/rootfiles/packages/python-rssdler           |  5 --
 config/rootfiles/packages/python3-six              |  6 --
 config/unbound/unbound-dhcp-leases-bridge          |  8 +--
 html/cgi-bin/getrrdimage.cgi                       |  2 +-
 lfs/ddns                                           |  1 +
 lfs/python-clientform                              | 82 ---------------------
 lfs/python-feedparser                              | 82 ---------------------
 lfs/python-ipaddress                               | 75 -------------------
 lfs/python-mechanize                               | 82 ---------------------
 lfs/python-rssdler                                 | 82 ---------------------
 lfs/python-six                                     | 82 ---------------------
 lfs/python3-dateutil                               |  4 +-
 lfs/{python-inotify => python3-inotify}            |  6 +-
 lfs/python3-six                                    | 83 ----------------------
 make.sh                                            |  9 +--
 ...dns-013-fix-argparse-list-token-providers.patch | 23 ++++++
 25 files changed, 53 insertions(+), 639 deletions(-)
 delete mode 100644 config/rootfiles/common/python-inotify
 delete mode 100644 config/rootfiles/common/python-ipaddress
 delete mode 100644 config/rootfiles/common/python-six
 create mode 100644 config/rootfiles/common/python3-inotify
 copy config/rootfiles/{oldcore/104 => core/157}/filelists/ddns (100%)
 delete mode 100644 config/rootfiles/packages/python-clientform
 delete mode 100644 config/rootfiles/packages/python-feedparser
 delete mode 100644 config/rootfiles/packages/python-mechanize
 delete mode 100644 config/rootfiles/packages/python-rssdler
 delete mode 100644 config/rootfiles/packages/python3-six
 delete mode 100644 lfs/python-clientform
 delete mode 100644 lfs/python-feedparser
 delete mode 100644 lfs/python-ipaddress
 delete mode 100644 lfs/python-mechanize
 delete mode 100644 lfs/python-rssdler
 delete mode 100644 lfs/python-six
 rename lfs/{python-inotify => python3-inotify} (96%)
 delete mode 100644 lfs/python3-six
 create mode 100644 src/patches/ddns-013-fix-argparse-list-token-providers.patch

Difference in files:
diff --git a/config/rootfiles/common/python-inotify b/config/rootfiles/common/python-inotify
deleted file mode 100644
index 5fc062a57..000000000
--- a/config/rootfiles/common/python-inotify
+++ /dev/null
@@ -1,20 +0,0 @@
-#usr/lib/python2.7/site-packages/inotify
-#usr/lib/python2.7/site-packages/inotify-0.2.7-py2.7.egg-info
-#usr/lib/python2.7/site-packages/inotify-0.2.7-py2.7.egg-info/PKG-INFO
-#usr/lib/python2.7/site-packages/inotify-0.2.7-py2.7.egg-info/SOURCES.txt
-#usr/lib/python2.7/site-packages/inotify-0.2.7-py2.7.egg-info/dependency_links.txt
-#usr/lib/python2.7/site-packages/inotify-0.2.7-py2.7.egg-info/not-zip-safe
-#usr/lib/python2.7/site-packages/inotify-0.2.7-py2.7.egg-info/top_level.txt
-usr/lib/python2.7/site-packages/inotify/__init__.py
-usr/lib/python2.7/site-packages/inotify/__init__.pyc
-usr/lib/python2.7/site-packages/inotify/adapters.py
-usr/lib/python2.7/site-packages/inotify/adapters.pyc
-usr/lib/python2.7/site-packages/inotify/calls.py
-usr/lib/python2.7/site-packages/inotify/calls.pyc
-usr/lib/python2.7/site-packages/inotify/constants.py
-usr/lib/python2.7/site-packages/inotify/constants.pyc
-usr/lib/python2.7/site-packages/inotify/library.py
-usr/lib/python2.7/site-packages/inotify/library.pyc
-#usr/lib/python2.7/site-packages/inotify/resources
-#usr/lib/python2.7/site-packages/inotify/resources/README.rst
-#usr/lib/python2.7/site-packages/inotify/resources/requirements.txt
diff --git a/config/rootfiles/common/python-ipaddress b/config/rootfiles/common/python-ipaddress
deleted file mode 100644
index a81a5e679..000000000
--- a/config/rootfiles/common/python-ipaddress
+++ /dev/null
@@ -1,8 +0,0 @@
-usr/lib/python2.7/site-packages/ipaddress.py
-usr/lib/python2.7/site-packages/ipaddress.pyc
-#usr/lib/python2.7/site-packages/py2_ipaddress-3.4.1-py2.7.egg-info
-#usr/lib/python2.7/site-packages/py2_ipaddress-3.4.1-py2.7.egg-info/PKG-INFO
-#usr/lib/python2.7/site-packages/py2_ipaddress-3.4.1-py2.7.egg-info/SOURCES.txt
-#usr/lib/python2.7/site-packages/py2_ipaddress-3.4.1-py2.7.egg-info/dependency_links.txt
-#usr/lib/python2.7/site-packages/py2_ipaddress-3.4.1-py2.7.egg-info/top_level.txt
-#usr/lib/python2.7/site-packages/py2_ipaddress-3.4.1-py2.7.egg-info/zip-safe
diff --git a/config/rootfiles/common/python-six b/config/rootfiles/common/python-six
deleted file mode 100644
index 9520c38ae..000000000
--- a/config/rootfiles/common/python-six
+++ /dev/null
@@ -1,9 +0,0 @@
-#usr/lib/python2.7/site-packages/six-1.10.0-py2.7.egg
-#usr/lib/python2.7/site-packages/six-1.10.0-py2.7.egg/EGG-INFO
-#usr/lib/python2.7/site-packages/six-1.10.0-py2.7.egg/EGG-INFO/PKG-INFO
-#usr/lib/python2.7/site-packages/six-1.10.0-py2.7.egg/EGG-INFO/SOURCES.txt
-#usr/lib/python2.7/site-packages/six-1.10.0-py2.7.egg/EGG-INFO/dependency_links.txt
-#usr/lib/python2.7/site-packages/six-1.10.0-py2.7.egg/EGG-INFO/not-zip-safe
-#usr/lib/python2.7/site-packages/six-1.10.0-py2.7.egg/EGG-INFO/top_level.txt
-#usr/lib/python2.7/site-packages/six-1.10.0-py2.7.egg/six.py
-#usr/lib/python2.7/site-packages/six-1.10.0-py2.7.egg/six.pyc
diff --git a/config/rootfiles/common/python3-inotify b/config/rootfiles/common/python3-inotify
new file mode 100644
index 000000000..b1fae54aa
--- /dev/null
+++ b/config/rootfiles/common/python3-inotify
@@ -0,0 +1,17 @@
+#usr/lib/python3.8/site-packages/inotify
+#usr/lib/python3.8/site-packages/inotify-0.2.10-py3.8.egg-info
+#usr/lib/python3.8/site-packages/inotify-0.2.10-py3.8.egg-info/PKG-INFO
+#usr/lib/python3.8/site-packages/inotify-0.2.10-py3.8.egg-info/SOURCES.txt
+#usr/lib/python3.8/site-packages/inotify-0.2.10-py3.8.egg-info/dependency_links.txt
+#usr/lib/python3.8/site-packages/inotify-0.2.10-py3.8.egg-info/not-zip-safe
+#usr/lib/python3.8/site-packages/inotify-0.2.10-py3.8.egg-info/requires.txt
+#usr/lib/python3.8/site-packages/inotify-0.2.10-py3.8.egg-info/top_level.txt
+usr/lib/python3.8/site-packages/inotify/__init__.py
+usr/lib/python3.8/site-packages/inotify/adapters.py
+usr/lib/python3.8/site-packages/inotify/calls.py
+usr/lib/python3.8/site-packages/inotify/constants.py
+usr/lib/python3.8/site-packages/inotify/library.py
+#usr/lib/python3.8/site-packages/inotify/resources
+#usr/lib/python3.8/site-packages/inotify/resources/README.rst
+#usr/lib/python3.8/site-packages/inotify/resources/requirements.txt
+usr/lib/python3.8/site-packages/inotify/test_support.py
diff --git a/config/rootfiles/core/157/filelists/ddns b/config/rootfiles/core/157/filelists/ddns
new file mode 120000
index 000000000..739516420
--- /dev/null
+++ b/config/rootfiles/core/157/filelists/ddns
@@ -0,0 +1 @@
+../../../common/ddns
\ No newline at end of file
diff --git a/config/rootfiles/core/157/filelists/files b/config/rootfiles/core/157/filelists/files
index 2bad4ad52..5b946c932 100644
--- a/config/rootfiles/core/157/filelists/files
+++ b/config/rootfiles/core/157/filelists/files
@@ -2,4 +2,5 @@ srv/web/ipfire/cgi-bin/getrrdimage.cgi
 srv/web/ipfire/cgi-bin/iptables.cgi
 srv/web/ipfire/html/themes/ipfire/include/css/style.css
 usr/local/bin/getipstat
+usr/sbin/unbound-dhcp-leases-bridge
 var/ipfire/network-functions.pl
diff --git a/config/rootfiles/packages/python-clientform b/config/rootfiles/packages/python-clientform
deleted file mode 100644
index 85a0d03ea..000000000
--- a/config/rootfiles/packages/python-clientform
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/python2.7/site-packages/ClientForm-0.2.9-py2.7.egg
diff --git a/config/rootfiles/packages/python-feedparser b/config/rootfiles/packages/python-feedparser
deleted file mode 100644
index 88dbf1fc3..000000000
--- a/config/rootfiles/packages/python-feedparser
+++ /dev/null
@@ -1,3 +0,0 @@
-#usr/lib/python2.7/site-packages/feedparser-4.1-py2.7.egg-info
-#usr/lib/python2.7/site-packages/feedparser.py
-usr/lib/python2.7/site-packages/feedparser.pyc
diff --git a/config/rootfiles/packages/python-mechanize b/config/rootfiles/packages/python-mechanize
deleted file mode 100644
index 5b5bf6a47..000000000
--- a/config/rootfiles/packages/python-mechanize
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/python2.7/site-packages/mechanize-0.1.8-py2.7.egg
diff --git a/config/rootfiles/packages/python-rssdler b/config/rootfiles/packages/python-rssdler
deleted file mode 100644
index e5e3e3bdc..000000000
--- a/config/rootfiles/packages/python-rssdler
+++ /dev/null
@@ -1,5 +0,0 @@
-usr/bin/rssdler
-#usr/lib/python2.7/site-packages/drv_libxml2.pyc
-#usr/lib/python2.7/site-packages/rssdler-0.4.0-py2.7.egg-info
-usr/lib/python2.7/site-packages/rssdler.py
-#usr/lib/python2.7/site-packages/rssdler.pyc
diff --git a/config/rootfiles/packages/python3-six b/config/rootfiles/packages/python3-six
deleted file mode 100644
index 0801d36da..000000000
--- a/config/rootfiles/packages/python3-six
+++ /dev/null
@@ -1,6 +0,0 @@
-#usr/lib/python3.8/site-packages/six-1.14.0-py3.8.egg-info
-#usr/lib/python3.8/site-packages/six-1.14.0-py3.8.egg-info/PKG-INFO
-#usr/lib/python3.8/site-packages/six-1.14.0-py3.8.egg-info/SOURCES.txt
-#usr/lib/python3.8/site-packages/six-1.14.0-py3.8.egg-info/dependency_links.txt
-#usr/lib/python3.8/site-packages/six-1.14.0-py3.8.egg-info/top_level.txt
-usr/lib/python3.8/site-packages/six.py
diff --git a/config/unbound/unbound-dhcp-leases-bridge b/config/unbound/unbound-dhcp-leases-bridge
index e3da4860b..2d8ef1387 100644
--- a/config/unbound/unbound-dhcp-leases-bridge
+++ b/config/unbound/unbound-dhcp-leases-bridge
@@ -178,8 +178,8 @@ class UnboundDHCPLeasesBridge(object):
 
 		# Dump everything in the logs
 		log.debug("Static hosts:")
-		for hostname, addresses in hosts.items():
-			log.debug("  %-20s : %s" % (hostname, ", ".join(addresses)))
+		for name in hosts:
+			log.debug("  %-20s : %s" % (name, ", ".join(hosts[name])))
 
 		return hosts
 
@@ -402,9 +402,9 @@ class Lease(object):
 
 		address = ipaddress.ip_address(self.ipaddr)
 
-		for subnet, domain in subnets.items():
+		for subnet in subnets:
 			if address in subnet:
-				return domain
+				return subnets[subnet]
 
 		# Fall back to localdomain if no match could be found
 		return "localdomain"
diff --git a/html/cgi-bin/getrrdimage.cgi b/html/cgi-bin/getrrdimage.cgi
index 34ee4bf7a..c08247c57 100644
--- a/html/cgi-bin/getrrdimage.cgi
+++ b/html/cgi-bin/getrrdimage.cgi
@@ -50,7 +50,7 @@ my $graph = $query{'graph'};
 my $range = lc $query{'range'}; # lower case
 
 # Check parameters
-unless(($origin =~ /^\w+?\.cgi$/) && ($graph =~ /^[\w-]+?$/) && ($range ~~ @Graphs::time_ranges)) {
+unless(($origin =~ /^\w+?\.cgi$/) && ($graph =~ /^[\w\-.,; ]+?$/) && ($range ~~ @Graphs::time_ranges)) {
 	# Send HTTP headers
 	_start_png_output();
 	
diff --git a/lfs/ddns b/lfs/ddns
index 98b374ed1..538cf7256 100644
--- a/lfs/ddns
+++ b/lfs/ddns
@@ -77,6 +77,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/ddns-013-duckdns-new-api.patch
 	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/ddns-013-add-option-to-list-token-provider.patch
 	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/ddns-013-proper-encode-string.patch
+	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/ddns-013-fix-argparse-list-token-providers.patch
 
 	cd $(DIR_APP) && [ -x "configure" ] || sh ./autogen.sh
 	cd $(DIR_APP) && ./configure \
diff --git a/lfs/python-clientform b/lfs/python-clientform
deleted file mode 100644
index 29804a969..000000000
--- a/lfs/python-clientform
+++ /dev/null
@@ -1,82 +0,0 @@
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2018  IPFire Team  <info(a)ipfire.org>                     #
-#                                                                             #
-# This program is free software: you can redistribute it and/or modify        #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation, either version 3 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# This program is distributed in the hope that it will be useful,             #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
-# GNU General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
-#                                                                             #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER        = 0.2.9
-
-THISAPP    = ClientForm-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
-TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = python-clientform
-PAK_VER    = 2
-
-DEPS       =
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 21e68d52cc5939ab3345b97e09f0a25a
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-dist: 
-	@$(PAK)
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
-	@$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
-	@$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
-	@$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-	@$(PREBUILD)
-	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-	cd $(DIR_APP) && python setup.py install
-	@rm -rf $(DIR_APP)
-	@$(POSTBUILD)
diff --git a/lfs/python-feedparser b/lfs/python-feedparser
deleted file mode 100644
index e89018d0a..000000000
--- a/lfs/python-feedparser
+++ /dev/null
@@ -1,82 +0,0 @@
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2018  IPFire Team  <info(a)ipfire.org>                     #
-#                                                                             #
-# This program is free software: you can redistribute it and/or modify        #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation, either version 3 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# This program is distributed in the hope that it will be useful,             #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
-# GNU General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
-#                                                                             #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER        = 4.1
-
-THISAPP    = feedparser-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
-TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = python-feedparser
-PAK_VER    = 2
-
-DEPS       = python-mechanize
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = a8fcb5fd0868e34271fc182d6ae03801
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-dist: 
-	@$(PAK)
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
-	@$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
-	@$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
-	@$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-	@$(PREBUILD)
-	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-	cd $(DIR_APP) && python setup.py install
-	@rm -rf $(DIR_APP)
-	@$(POSTBUILD)
diff --git a/lfs/python-ipaddress b/lfs/python-ipaddress
deleted file mode 100644
index 27e42b431..000000000
--- a/lfs/python-ipaddress
+++ /dev/null
@@ -1,75 +0,0 @@
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2018  IPFire Team  <info(a)ipfire.org>                     #
-#                                                                             #
-# This program is free software: you can redistribute it and/or modify        #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation, either version 3 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# This program is distributed in the hope that it will be useful,             #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
-# GNU General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
-#                                                                             #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER        = 3.4.1
-
-THISAPP    = py2-ipaddress-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
-TARGET     = $(DIR_INFO)/$(THISAPP)
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 47734313c841068e3d5386d048d01c3d
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
-	@$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
-	@$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
-	@$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-	@$(PREBUILD)
-	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-	cd $(DIR_APP) && python setup.py install --root=/
-	@rm -rf $(DIR_APP)
-	@$(POSTBUILD)
diff --git a/lfs/python-mechanize b/lfs/python-mechanize
deleted file mode 100644
index 8a879bc1c..000000000
--- a/lfs/python-mechanize
+++ /dev/null
@@ -1,82 +0,0 @@
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2018  IPFire Team  <info(a)ipfire.org>                     #
-#                                                                             #
-# This program is free software: you can redistribute it and/or modify        #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation, either version 3 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# This program is distributed in the hope that it will be useful,             #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
-# GNU General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
-#                                                                             #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER        = 0.1.8
-
-THISAPP    = mechanize-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
-TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = python-mechanize
-PAK_VER    = 2
-
-DEPS       = python-clientform
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 0a9edfcbb3b631fc75451909af78cf7a
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-dist: 
-	@$(PAK)
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
-	@$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
-	@$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
-	@$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-	@$(PREBUILD)
-	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-	cd $(DIR_APP) && python setup.py install
-	@rm -rf $(DIR_APP)
-	@$(POSTBUILD)
diff --git a/lfs/python-rssdler b/lfs/python-rssdler
deleted file mode 100644
index 2b73a2774..000000000
--- a/lfs/python-rssdler
+++ /dev/null
@@ -1,82 +0,0 @@
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2018  IPFire Team  <info(a)ipfire.org>                     #
-#                                                                             #
-# This program is free software: you can redistribute it and/or modify        #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation, either version 3 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# This program is distributed in the hope that it will be useful,             #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
-# GNU General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
-#                                                                             #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER        = 0.4.0a
-
-THISAPP    = rssdler-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/rssdler040
-TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = python-rssdler
-PAK_VER    = 2
-
-DEPS       = python-feedparser python-mechanize
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 367fa2770a689b0d64003f8c94213a80
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-dist: 
-	@$(PAK)
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
-	@$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
-	@$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
-	@$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-	@$(PREBUILD)
-	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-	cd $(DIR_APP) && python setup.py install
-	@rm -rf $(DIR_APP)
-	@$(POSTBUILD)
diff --git a/lfs/python-six b/lfs/python-six
deleted file mode 100644
index 3383e6d0d..000000000
--- a/lfs/python-six
+++ /dev/null
@@ -1,82 +0,0 @@
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2018  IPFire Team  <info(a)ipfire.org>                     #
-#                                                                             #
-# This program is free software: you can redistribute it and/or modify        #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation, either version 3 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# This program is distributed in the hope that it will be useful,             #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
-# GNU General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
-#                                                                             #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER        = 1.10.0
-
-THISAPP    = six-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
-TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = python-six
-PAK_VER    = 1
-
-DEPS       =
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 34eed507548117b2ab523ab14b2f8b55
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-dist: 
-	@$(PAK)
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
-	@$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
-	@$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
-	@$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-	@$(PREBUILD)
-	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-	cd $(DIR_APP) && python setup.py install
-	@rm -rf $(DIR_APP)
-	@$(POSTBUILD)
diff --git a/lfs/python3-dateutil b/lfs/python3-dateutil
index 1d70ac1c2..04bc39cf1 100644
--- a/lfs/python3-dateutil
+++ b/lfs/python3-dateutil
@@ -32,9 +32,9 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = python3-dateutil
-PAK_VER    = 3
+PAK_VER    = 4
 
-DEPS       = python3-six
+DEPS       = 
 
 ###############################################################################
 # Top-level Rules
diff --git a/lfs/python-inotify b/lfs/python3-inotify
similarity index 96%
rename from lfs/python-inotify
rename to lfs/python3-inotify
index 93775c595..a1f9e45ef 100644
--- a/lfs/python-inotify
+++ b/lfs/python3-inotify
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 0.2.7
+VER        = 0.2.10
 
 THISAPP    = inotify-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = ced4c0469f9fd64170d9d907e4aec208
+$(DL_FILE)_MD5 = 33c7ee4a7cde60036a2d2a1a55c7c7c8
 
 install : $(TARGET)
 
@@ -70,6 +70,6 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 	@$(PREBUILD)
 	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-	cd $(DIR_APP) && python setup.py install --root=/
+	cd $(DIR_APP) && python3 setup.py install --root=/
 	@rm -rf $(DIR_APP)
 	@$(POSTBUILD)
diff --git a/lfs/python3-six b/lfs/python3-six
deleted file mode 100644
index 9d467f273..000000000
--- a/lfs/python3-six
+++ /dev/null
@@ -1,83 +0,0 @@
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2020  IPFire Team  <info(a)ipfire.org>                     #
-#                                                                             #
-# This program is free software: you can redistribute it and/or modify        #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation, either version 3 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# This program is distributed in the hope that it will be useful,             #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
-# GNU General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
-#                                                                             #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER        = 1.14.0
-
-THISAPP    = six-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
-TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = python3-six
-PAK_VER    = 3
-
-DEPS       =
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 21674588a57e649d1a6d977ec3122140
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-dist: 
-	@$(PAK)
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
-	@$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
-	@$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
-	@$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-	@$(PREBUILD)
-	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-	cd $(DIR_APP) && python3 setup.py build
-	cd $(DIR_APP) && python3 setup.py install --root=/
-	@rm -rf $(DIR_APP)
-	@$(POSTBUILD)
diff --git a/make.sh b/make.sh
index 25616cc4e..b98f8a34b 100755
--- a/make.sh
+++ b/make.sh
@@ -1345,14 +1345,9 @@ buildipfire() {
   lfsmake2 Crypt-PasswdMD5
   lfsmake2 Net-Telnet
   lfsmake2 python-setuptools
-  lfsmake2 python-clientform
-  lfsmake2 python-mechanize
-  lfsmake2 python-feedparser
-  lfsmake2 python-rssdler
-  lfsmake2 python-inotify
+  lfsmake2 python3-inotify
   lfsmake2 python-docutils
   lfsmake2 python-daemon
-  lfsmake2 python-ipaddress
   lfsmake2 glib
   lfsmake2 ntp
   lfsmake2 openssh
@@ -1458,7 +1453,6 @@ buildipfire() {
   lfsmake2 igmpproxy
   lfsmake2 fbset
   lfsmake2 opus
-  lfsmake2 python-six
   lfsmake2 python-pyparsing
   lfsmake2 spice-protocol
   lfsmake2 spice
@@ -1547,7 +1541,6 @@ buildipfire() {
   lfsmake2 python-distutils-extra
   lfsmake2 ddns
   lfsmake2 python3-setuptools-scm
-  lfsmake2 python3-six
   lfsmake2 python3-dateutil
   lfsmake2 python3-jmespath
   lfsmake2 python3-colorama
diff --git a/src/patches/ddns-013-fix-argparse-list-token-providers.patch b/src/patches/ddns-013-fix-argparse-list-token-providers.patch
new file mode 100644
index 000000000..065dbb666
--- /dev/null
+++ b/src/patches/ddns-013-fix-argparse-list-token-providers.patch
@@ -0,0 +1,23 @@
+commit 5e075681008174839a47cae698ae459c0ea3a30a
+Author: Stefan Schantl <stefan.schantl(a)ipfire.org>
+Date:   Wed May 12 19:59:01 2021 +0200
+
+    Fix argsparse string for listing token providers.
+    
+    Signed-off-by: Stefan Schantl <stefan.schantl(a)ipfire.org>
+
+diff --git a/ddns.in b/ddns.in
+index 538e4b0..20edd28 100755
+--- a/ddns.in
++++ b/ddns.in
+@@ -49,8 +49,8 @@ def main():
+ 	p_list_providers = subparsers.add_parser("list-providers",
+ 		help=_("List all available providers"))
+ 
+-	# list-token-provider
+-	p_list_token_provider = subparsers.add_parser("list-token-provider",
++	# list-token-providers
++	p_list_token_provider = subparsers.add_parser("list-token-providers",
+ 		help=_("List all providers which supports authentication via token"))
+ 
+ 	# update


hooks/post-receive
--
IPFire 2.x development tree

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-05-14 12:30 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-14 12:30 [git.ipfire.org] IPFire 2.x development tree branch, next, updated. 4b0d8ba79ac3bb2e21a48679cc1ca01ec2f1e65d Michael Tremer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox