Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 May 2017 20:44:13 +0000 (UTC)
From:      "Carlos J. Puga Medina" <cpm@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r441335 - in head/security/py-certbot: . files
Message-ID:  <201705202044.v4KKiDtf009651@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: cpm
Date: Sat May 20 20:44:12 2017
New Revision: 441335
URL: https://svnweb.freebsd.org/changeset/ports/441335

Log:
  security/py-certbot: Fix configargparse 0.12.0 regression
  
  This is caused by the recent release of configargparse version 0.12.0.
  The variable ACTION_TYPES_THAT_DONT_NEED_A_VALUE was changed from a set
  to a tuple in that release.
  
  Traceback (most recent call last):
    File "/usr/local/bin/certbot", line 11, in <module>
      load_entry_point('certbot==0.13.0', 'console_scripts', 'certbot')()
    File "/usr/local/lib/python2.7/site-packages/certbot/main.py", line 738, in main
      args = cli.prepare_and_parse_args(plugins, cli_args)
    File "/usr/local/lib/python2.7/site-packages/certbot/cli.py", line 1072, in prepare_and_parse_args
      helpful.add_deprecated_argument("--agree-dev-preview", 0)
    File "/usr/local/lib/python2.7/site-packages/certbot/cli.py", line 726, in add_deprecated_argument
      self.parser.add_argument, argument_name, num_args)
    File "/usr/local/lib/python2.7/site-packages/certbot/util.py", line 440, in add_deprecated_argument
      configargparse.ACTION_TYPES_THAT_DONT_NEED_A_VALUE.add(ShowWarning)
  AttributeError: 'tuple' object has no attribute 'add'
  
  PR:		219306
  Reported by:	GKK <netbackup.gs@gmail.com>
  Approved by:	koobs (maintainer)
  Obtained from:	https://github.com/certbot/certbot/commit/42d07d756df0cf96c9d20b44e772858391d48384

Added:
  head/security/py-certbot/files/patch-certbot_tests_util__test.py   (contents, props changed)
  head/security/py-certbot/files/patch-certbot_util.py   (contents, props changed)
Modified:
  head/security/py-certbot/Makefile

Modified: head/security/py-certbot/Makefile
==============================================================================
--- head/security/py-certbot/Makefile	Sat May 20 20:36:42 2017	(r441334)
+++ head/security/py-certbot/Makefile	Sat May 20 20:44:12 2017	(r441335)
@@ -3,7 +3,7 @@
 
 PORTNAME=	certbot
 PORTVERSION=	0.13.0
-PORTREVISION=	1
+PORTREVISION=	2
 PORTEPOCH=	1
 CATEGORIES=	security python
 MASTER_SITES=	CHEESESHOP

Added: head/security/py-certbot/files/patch-certbot_tests_util__test.py
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/security/py-certbot/files/patch-certbot_tests_util__test.py	Sat May 20 20:44:12 2017	(r441335)
@@ -0,0 +1,40 @@
+From 42d07d756df0cf96c9d20b44e772858391d48384 Mon Sep 17 00:00:00 2001
+From: Ryan Pineo <ry@tsl.io>
+Date: Fri, 12 May 2017 15:45:54 -0400
+Subject: [PATCH] support version 0.12.0 of configargparse
+
+fixes #4648
+
+--- certbot/tests/util_test.py.orig	2017-05-16 07:27:15 UTC
++++ certbot/tests/util_test.py
+@@ -5,6 +5,7 @@ import os
+ import stat
+ import unittest
+ 
++import configargparse
+ import mock
+ import six
+ 
+@@ -333,6 +334,22 @@ class AddDeprecatedArgumentTest(unittest
+                 pass
+         self.assertTrue("--old-option" not in stdout.getvalue())
+ 
++    def test_when_configargparse(self):
++        '''In configargparse version < 0.12.0 ACTION_TYPES_THAT_DONT_NEED_A_VALUE is a set.'''
++        orig = configargparse.ACTION_TYPES_THAT_DONT_NEED_A_VALUE
++        configargparse.ACTION_TYPES_THAT_DONT_NEED_A_VALUE = set()
++        self._call("--old-option", 1)
++        self.assertEqual(len(configargparse.ACTION_TYPES_THAT_DONT_NEED_A_VALUE), 1)
++        configargparse.ACTION_TYPES_THAT_DONT_NEED_A_VALUE = orig
++
++    def test_when_configargparse_tuple(self):
++        '''In configargparse version >= 0.12.0 ACTION_TYPES_THAT_DONT_NEED_A_VALUE is a tuple.'''
++        orig = configargparse.ACTION_TYPES_THAT_DONT_NEED_A_VALUE
++        configargparse.ACTION_TYPES_THAT_DONT_NEED_A_VALUE = tuple()
++        self._call("--old-option", 1)
++        self.assertEqual(len(configargparse.ACTION_TYPES_THAT_DONT_NEED_A_VALUE), 1)
++        configargparse.ACTION_TYPES_THAT_DONT_NEED_A_VALUE = orig
++
+ 
+ class EnforceLeValidity(unittest.TestCase):
+     """Test enforce_le_validity."""

Added: head/security/py-certbot/files/patch-certbot_util.py
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/security/py-certbot/files/patch-certbot_util.py	Sat May 20 20:44:12 2017	(r441335)
@@ -0,0 +1,23 @@
+From 42d07d756df0cf96c9d20b44e772858391d48384 Mon Sep 17 00:00:00 2001
+From: Ryan Pineo <ry@tsl.io>
+Date: Fri, 12 May 2017 15:45:54 -0400
+Subject: [PATCH] support version 0.12.0 of configargparse
+
+fixes #4648
+
+--- certbot/util.py.orig	2017-05-16 07:21:46 UTC
++++ certbot/util.py
+@@ -437,7 +437,12 @@ def add_deprecated_argument(add_argument
+             sys.stderr.write(
+                 "Use of {0} is deprecated.\n".format(option_string))
+ 
+-    configargparse.ACTION_TYPES_THAT_DONT_NEED_A_VALUE.add(ShowWarning)
++    # In version 0.12.0 ACTION_TYPES_THAT_DONT_NEED_A_VALUE was changed from a set
++    # to a tuple.
++    if isinstance(configargparse.ACTION_TYPES_THAT_DONT_NEED_A_VALUE, set):
++        configargparse.ACTION_TYPES_THAT_DONT_NEED_A_VALUE.add(ShowWarning)
++    else:
++        configargparse.ACTION_TYPES_THAT_DONT_NEED_A_VALUE += (ShowWarning,)
+     add_argument(argument_name, action=ShowWarning,
+                  help=argparse.SUPPRESS, nargs=nargs)
+ 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201705202044.v4KKiDtf009651>