From lapo@lapo.it  Thu Jan 30 16:09:46 2014
Return-Path: <lapo@lapo.it>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1])
	(using TLSv1 with cipher ADH-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by hub.freebsd.org (Postfix) with ESMTPS id EA99EF19
	for <FreeBSD-gnats-submit@freebsd.org>; Thu, 30 Jan 2014 16:09:45 +0000 (UTC)
Received: from relay.andxor.it (firewall.andxor.it [78.134.40.49])
	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by mx1.freebsd.org (Postfix) with ESMTPS id E9CAF1A31
	for <FreeBSD-gnats-submit@freebsd.org>; Thu, 30 Jan 2014 16:09:44 +0000 (UTC)
Received: (qmail 56639 invoked from network); 30 Jan 2014 16:09:33 -0000
Received: from lapo.andxor.it (192.168.2.22)
  by relay.andxor.it with SMTP; 30 Jan 2014 16:09:33 -0000
Received: by lapo.andxor.it (sSMTP sendmail emulation); Thu, 30 Jan 2014 17:09:33 +0100
Date: Thu, 30 Jan 2014 17:09:33 +0100
From: Lapo Luchini <lapo@lapo.it>
To: FreeBSD-gnats-submit@freebsd.org
Cc: madpilot@freebsd.org, Lapo Luchini <lapo@lapo.it>
Subject: [MAINTAINER] security/botan: deprecate (and update to 1.8.14)
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         186279
>Category:       ports
>Synopsis:       [MAINTAINER] security/botan: deprecate (and update to 1.8.14)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    madpilot
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jan 30 16:10:02 UTC 2014
>Closed-Date:    Sat Feb 01 13:59:59 UTC 2014
>Last-Modified:  Sat Feb  1 14:00:01 UTC 2014
>Originator:     Lapo Luchini
>Release:        FreeBSD 10.0-RELEASE amd64
>Organization:
>Environment:
System: FreeBSD lapo.andxor.it 10.0-RELEASE FreeBSD 10.0-RELEASE #0 r260789: Thu Jan 16 22:34:59 UTC
>Description:
- DEPRECATED in favor of security/botan110
- Update to 1.8.14
- Support staging

I'm not sure about EXPIRATION_DATE: two ports are still depending on this port, and people could be using for local projects too.

Generated with FreeBSD Port Tools 0.99_11 (mode: update, diff: ports)
>How-To-Repeat:
>Fix:

--- botan-1.8.14.patch begins here ---
diff -ruN /usr/ports/security/botan/Makefile ./Makefile
--- /usr/ports/security/botan/Makefile	2013-09-21 00:55:24.000000000 +0200
+++ ./Makefile	2014-01-30 17:06:04.850426739 +0100
@@ -2,7 +2,7 @@
 # $FreeBSD: security/botan/Makefile 327769 2013-09-20 22:55:24Z bapt $
 
 PORTNAME=	botan
-PORTVERSION=	1.8.13
+PORTVERSION=	1.8.14
 CATEGORIES=	security
 MASTER_SITES=	http://files.randombit.net/botan/v1.8/
 DISTNAME=	Botan-${PORTVERSION}
@@ -14,6 +14,8 @@
 LICENSE=	BSD
 LICENSE_FILE=	${WRKSRC}/doc/license.txt
 
+DEPRECATED=	Botan 1.8 have known bugs and is no longer supported upstream, migrate to security/botan110
+
 OPTIONS_DEFINE=		SSL GMP ECC
 OPTIONS_DEFAULT=	SSL GMP ECC
 ECC_DESC=	ECC support
@@ -22,8 +24,7 @@
 USE_PYTHON_BUILD=	yes
 HAS_CONFIGURE=	yes
 CONFIGURE_SCRIPT=	configure.py
-CONFIGURE_ARGS=	--prefix=${PREFIX} --with-tr1-implementation=boost \
-		--with-bzip2 --with-zlib
+CONFIGURE_ARGS=	--prefix=${PREFIX} --with-bzip2 --with-zlib
 USE_GMAKE=	yes
 MAKE_ARGS=	CXX="${CXX}" LIB_OPT="${CXXFLAGS}"
 USE_LDCONFIG=	yes
@@ -31,7 +32,6 @@
 
 PORTDOCS=	*
 
-NO_STAGE=	yes
 .include <bsd.port.options.mk>
 
 .if ${PORT_OPTIONS:MSSL}
@@ -63,7 +63,7 @@
 .endif
 
 post-install:
-	@(cd ${PREFIX}; ${FIND} -s include/botan -not -type d) >> ${TMPPLIST}
+	@(cd ${STAGEDIR}${PREFIX}; ${FIND} -s include/botan -not -type d) >> ${TMPPLIST}
 	@${ECHO_CMD} @dirrm include/botan >> ${TMPPLIST}
 
 .include <bsd.port.mk>
diff -ruN /usr/ports/security/botan/distinfo ./distinfo
--- /usr/ports/security/botan/distinfo	2014-01-22 16:30:13.000000000 +0100
+++ ./distinfo	2014-01-30 10:57:04.667950085 +0100
@@ -1,2 +1,2 @@
-SHA256 (Botan-1.8.13.tbz) = 5593ce257d753c305ecf6f4d16e2f516f647bd6494f823fe9766a816ac439dba
-SIZE (Botan-1.8.13.tbz) = 2811686
+SHA256 (Botan-1.8.14.tbz) = a67be92c38a221b4dff180e8721a763cb97a717cd93722b23900680bd4e49d7c
+SIZE (Botan-1.8.14.tbz) = 2397499
diff -ruN /usr/ports/security/botan/files/patch-configure.py ./files/patch-configure.py
--- /usr/ports/security/botan/files/patch-configure.py	2014-01-22 18:40:44.000000000 +0100
+++ ./files/patch-configure.py	1970-01-01 01:00:00.000000000 +0100
@@ -1,201 +0,0 @@
---- configure.py.orig	2011-10-24 19:51:31.000000000 +0000
-+++ configure.py	2011-10-24 19:52:25.000000000 +0000
-@@ -58,7 +58,7 @@
-         self.include_dir = os.path.join(self.build_dir, 'include')
-         self.full_include_dir = os.path.join(self.include_dir, 'botan')
- 
--        all_files = sum([mod.add for mod in modules], [])
-+        all_files = sum([list(mod.add) for mod in modules], [])
- 
-         self.headers = sorted(
-             [file for file in all_files if file.endswith('.h')])
-@@ -290,7 +290,7 @@
- 
-     for group in allowed_groups:
-         to_obj.__dict__[group] = []
--    for (key,val) in name_val_pairs.iteritems():
-+    for (key,val) in list(name_val_pairs.items()):
-         to_obj.__dict__[key] = val
- 
-     def lexed_tokens(): # Convert to an interator
-@@ -320,7 +320,7 @@
-                     raise LexerError('Group "%s" not terminated' % (group),
-                                      lexer.lineno)
- 
--        elif token in name_val_pairs.keys():
-+        elif token in list(name_val_pairs.keys()):
-             to_obj.__dict__[token] = lexer.get_token()
-         else: # No match -> error
-             raise LexerError('Bad token "%s"' % (token), lexer.lineno)
-@@ -329,7 +329,7 @@
- Convert a lex'ed map (from build-data files) from a list to a dict
- """
- def force_to_dict(l):
--    return dict(zip(l[::3],l[2::3]))
-+    return dict(list(zip(l[::3],l[2::3])))
- 
- """
- Represents the information about a particular module
-@@ -361,7 +361,7 @@
-             return os.path.join(os.path.split(self.lives_in)[0],
-                                 *filename.split(':'))
- 
--        self.add = map(add_dir_name, self.add)
-+        self.add = list(map(add_dir_name, self.add))
- 
-         self.mp_bits = int(self.mp_bits)
- 
-@@ -413,8 +413,8 @@
-             self.unaligned_ok = 0
- 
-     def all_submodels(self):
--        return sorted(zip(self.submodels, self.submodels) +
--                          self.submodel_aliases.items(),
-+        return sorted([(k,k) for k in self.submodels] +
-+                      [k for k in list(self.submodel_aliases.items())],
-                       key = lambda k: len(k[0]), reverse = True)
- 
-     def defines(self, target_submodel, with_endian):
-@@ -574,13 +574,26 @@
-                 for feat in self.target_features]
- 
- def canon_processor(archinfo, proc):
--    for ainfo in archinfo.values():
-+    # First, try to search for an exact match
-+    for ainfo in list(archinfo.values()):
-         if ainfo.basename == proc or proc in ainfo.aliases:
-             return (ainfo.basename, ainfo.basename)
--        else:
--            for (match,submodel) in ainfo.all_submodels():
--                if re.search(match, proc) != None:
--                    return (ainfo.basename, submodel)
-+
-+        for (match,submodel) in ainfo.all_submodels():
-+            if proc == submodel:
-+                return (ainfo.basename, submodel)
-+
-+    # Now, try searching via regex match
-+    for ainfo in list(archinfo.values()):
-+        for (match,submodel) in ainfo.all_submodels():
-+            if re.search(match, proc) != None:
-+                return (ainfo.basename, submodel)
-+
-+    logging.debug('Known CPU names: ' + ' '.join(
-+        sorted(sum([[ainfo.basename] + \
-+                    ainfo.aliases + \
-+                    [x for (x,_) in ainfo.all_submodels()]
-+                    for ainfo in list(archinfo.values())], []))))
- 
-     raise Exception('Unknown or unidentifiable processor "%s"' % (proc))
- 
-@@ -597,7 +610,7 @@
-     if full_proc == '':
-         full_proc = base_proc
- 
--    for ainfo in archinfo.values():
-+    for ainfo in list(archinfo.values()):
-         if ainfo.basename == base_proc or base_proc in ainfo.aliases:
-             for (match,submodel) in ainfo.all_submodels():
-                 if re.search(match, full_proc) != None:
-@@ -626,7 +639,7 @@
-     try:
-         template = PercentSignTemplate(slurp_file(template_file))
-         return template.substitute(variables)
--    except KeyError, e:
-+    except KeyError as e:
-         raise Exception('Unbound var %s in template %s' % (e, template_file))
- 
- """
-@@ -642,7 +655,7 @@
-     def link_to():
-         libs = set()
-         for module in modules:
--            for (osname,link_to) in module.libs.iteritems():
-+            for (osname,link_to) in list(module.libs.items()):
-                 if osname == 'all' or osname == osinfo.basename:
-                     libs.add(link_to)
-                 else:
-@@ -798,8 +811,7 @@
- 
-         'doc_files': makefile_list(build_config.doc_files()),
- 
--        'mod_list': '\n'.join(['%s (%s)' % (m.basename, m.realname)
--                               for m in sorted(modules)]),
-+        'mod_list': '\n'.join(sorted([m.basename for m in modules])),
-         }
- 
- """
-@@ -814,7 +826,7 @@
-     def cannot_use_because(mod, reason):
-         not_using_because.setdefault(reason, []).append(mod)
- 
--    for (modname, module) in modules.iteritems():
-+    for (modname, module) in list(modules.items()):
-         if modname in options.disabled_modules:
-             cannot_use_because(modname, 'disabled by user')
-         elif modname in options.enabled_modules:
-@@ -862,8 +874,7 @@
-     while dependency_failure:
-         dependency_failure = False
-         for modname in to_load:
--            for deplist in map(lambda s: s.split('|'),
--                               modules[modname].dependencies()):
-+            for deplist in [s.split('|') for s in modules[modname].dependencies()]:
- 
-                 dep_met = False
-                 for mod in deplist:
-@@ -1020,7 +1031,7 @@
-     # First delete the build tree, if existing
-     try:
-         shutil.rmtree(build_config.build_dir)
--    except OSError, e:
-+    except OSError as e:
-         logging.debug('Error while removing build dir: %s' % (e))
- 
-     for dirs in [build_config.checkobj_dir,
-@@ -1055,7 +1066,7 @@
-             sink = os.path.join(build_config.build_dir, sink)
-         templates_to_proc[source] = sink
- 
--    for (template, sink) in templates_to_proc.items():
-+    for (template, sink) in list(templates_to_proc.items()):
-         try:
-             f = open(sink, 'w')
-             f.write(process_template(template, template_vars))
-@@ -1128,7 +1139,7 @@
-     if options.os not in osinfo:
- 
-         def find_canonical_os_name(os):
--            for (name, info) in osinfo.items():
-+            for (name, info) in list(osinfo.items()):
-                 if os in info.aliases:
-                     return name
-             return os # not found
-@@ -1166,13 +1177,13 @@
-                 matching_version = '(4\.[01234]\.)|(3\.[34]\.)|(2\.95\.[0-4])'
- 
-                 gcc_version = ''.join(
--                    subprocess.Popen(['g++', '-v'],
-+                    str(subprocess.Popen(['g++', '-v'],
-                                      stdout=subprocess.PIPE,
--                                     stderr=subprocess.PIPE).communicate())
-+                                     stderr=subprocess.PIPE).communicate()))
- 
-                 if re.search(matching_version, gcc_version):
-                     options.dumb_gcc = True
--            except OSError, e:
-+            except OSError as e:
-                 logging.info('Could not execute GCC for version check')
- 
-         if options.dumb_gcc is True:
-@@ -1206,8 +1217,8 @@
- if __name__ == '__main__':
-     try:
-         main()
--    except Exception, e:
--        print >>sys.stderr, e
-+    except Exception as e:
-+        logging.error(str(e))
-         #import traceback
-         #traceback.print_exc(file=sys.stderr)
-         sys.exit(1)
diff -ruN /usr/ports/security/botan/files/patch-src_build_data_makefile_unix_shr.in ./files/patch-src_build_data_makefile_unix_shr.in
--- /usr/ports/security/botan/files/patch-src_build_data_makefile_unix_shr.in	2014-01-22 18:40:44.000000000 +0100
+++ ./files/patch-src_build_data_makefile_unix_shr.in	2014-01-30 11:02:26.038928417 +0100
@@ -1,17 +1,26 @@
---- src/build-data/makefile/unix_shr.in.orig	2009-09-10 02:29:34.000000000 +0200
-+++ src/build-data/makefile/unix_shr.in	2009-10-27 14:30:46.000000000 +0100
-@@ -25,8 +25,8 @@
- BINDIR        = $(DESTDIR)/bin
- LIBDIR        = $(DESTDIR)/%{libdir}
- HEADERDIR     = $(DESTDIR)/%{includedir}/botan
+--- src/build-data/makefile/unix_shr.in.orig	2012-07-18 21:59:04.000000000 +0200
++++ src/build-data/makefile/unix_shr.in	2014-01-30 11:02:22.250928231 +0100
+@@ -20,13 +20,13 @@ SO_VERSION    = %{so_version}
+ ##################################################
+ # Installation Settings                          #
+ ##################################################
+-DESTDIR       = %{prefix}
++PREFIX        = %{prefix}
+ 
+-BINDIR        = $(DESTDIR)/bin
+-LIBDIR        = $(DESTDIR)/%{libdir}
+-HEADERDIR     = $(DESTDIR)/%{includedir}/botan
 -DOCDIR        = $(DESTDIR)/%{docdir}/Botan-$(VERSION)
 -PKGCONF_DIR   = $(LIBDIR)/pkgconfig
-+DOCDIR        = $(DESTDIR)/%{docdir}/botan
-+PKGCONF_DIR   = $(DESTDIR)/libdata/pkgconfig
++BINDIR        = $(DESTDIR)$(PREFIX)/bin
++LIBDIR        = $(DESTDIR)$(PREFIX)/%{libdir}
++HEADERDIR     = $(DESTDIR)$(PREFIX)/%{includedir}/botan
++DOCDIR        = $(DESTDIR)$(PREFIX)/%{docdir}/botan
++PKGCONF_DIR   = $(DESTDIR)$(PREFIX)/libdata/pkgconfig
  
  CONFIG_SCRIPT = %{botan_config}
  PKGCONFIG     = %{botan_pkgconfig}
-@@ -67,8 +67,8 @@
+@@ -67,8 +67,8 @@ LIBRARIES     = $(STATIC_LIB) $(SHARED_L
  LIBNAME       = %{lib_prefix}libbotan
  STATIC_LIB    = $(LIBNAME).a
  
--- botan-1.8.14.patch ends here ---

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->madpilot 
Responsible-Changed-By: madpilot 
Responsible-Changed-When: Thu Jan 30 18:16:18 UTC 2014 
Responsible-Changed-Why:  
I'll take it. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=186279 

From: Guido Falsi <madpilot@FreeBSD.org>
To: bug-followup@FreeBSD.org, lapo@lapo.it
Cc:  
Subject: Re: ports/186279: [MAINTAINER] security/botan: deprecate (and update
 to 1.8.14)
Date: Fri, 31 Jan 2014 22:37:03 +0100

 This is a multi-part message in MIME format.
 --------------010307060406020207070602
 Content-Type: text/plain; charset=ISO-8859-1; format=flowed
 Content-Transfer-Encoding: 7bit
 
 Hi, I fixed a few issues in your submission and added a few details we 
 agreed on in chat:
 
 - Fix LICENSE
 - Add an expiration
 - USES=gmake
 - New LIB_DEPENDS format
 
 Van you approve this patch?
 
 Thanks.
 
 -- 
 Guido Falsi <madpilot@FreeBSD.org>
 
 --------------010307060406020207070602
 Content-Type: text/x-patch;
  name="botan.diff"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
  filename="botan.diff"
 
 Index: Makefile
 ===================================================================
 --- Makefile	(revision 341869)
 +++ Makefile	(working copy)
 @@ -2,7 +2,7 @@
  # $FreeBSD$
  
  PORTNAME=	botan
 -PORTVERSION=	1.8.13
 +PORTVERSION=	1.8.14
  CATEGORIES=	security
  MASTER_SITES=	http://files.randombit.net/botan/v1.8/
  DISTNAME=	Botan-${PORTVERSION}
 @@ -11,9 +11,12 @@
  MAINTAINER=	lapo@lapo.it
  COMMENT=	Portable, easy to use, and efficient C++ crypto library
  
 -LICENSE=	BSD
 +LICENSE=	BSD2CLAUSE
  LICENSE_FILE=	${WRKSRC}/doc/license.txt
  
 +DEPRECATED=	Botan 1.8 have known bugs and is no longer supported upstream, migrate to security/botan110
 +EXPIRATION_DATE=	2014-06-30
 +
  OPTIONS_DEFINE=		SSL GMP ECC
  OPTIONS_DEFAULT=	SSL GMP ECC
  ECC_DESC=	ECC support
 @@ -22,9 +25,8 @@
  USE_PYTHON_BUILD=	yes
  HAS_CONFIGURE=	yes
  CONFIGURE_SCRIPT=	configure.py
 -CONFIGURE_ARGS=	--prefix=${PREFIX} --with-tr1-implementation=boost \
 -		--with-bzip2 --with-zlib
 -USE_GMAKE=	yes
 +CONFIGURE_ARGS=	--prefix=${PREFIX} --with-bzip2 --with-zlib
 +USES=		gmake
  MAKE_ARGS=	CXX="${CXX}" LIB_OPT="${CXXFLAGS}"
  USE_LDCONFIG=	yes
  PLIST_FILES=	bin/botan-config lib/libbotan.a lib/libbotan.so lib/libbotan.so.0 libdata/pkgconfig/botan-1.8.pc
 @@ -31,7 +33,6 @@
  
  PORTDOCS=	*
  
 -NO_STAGE=	yes
  .include <bsd.port.options.mk>
  
  .if ${PORT_OPTIONS:MSSL}
 @@ -40,7 +41,7 @@
  .endif
  
  .if ${PORT_OPTIONS:MGMP}
 -LIB_DEPENDS+=	gmp.10:${PORTSDIR}/math/gmp
 +LIB_DEPENDS+=	libgmp.so:${PORTSDIR}/math/gmp
  CONFIGURE_ARGS+=--with-gnump
  MAKE_ARGS+=	LDFLAGS="-L${LOCALBASE}/lib"
  .endif
 @@ -63,7 +64,7 @@
  .endif
  
  post-install:
 -	@(cd ${PREFIX}; ${FIND} -s include/botan -not -type d) >> ${TMPPLIST}
 +	@(cd ${STAGEDIR}${PREFIX}; ${FIND} -s include/botan -not -type d) >> ${TMPPLIST}
  	@${ECHO_CMD} @dirrm include/botan >> ${TMPPLIST}
  
  .include <bsd.port.mk>
 Index: distinfo
 ===================================================================
 --- distinfo	(revision 341869)
 +++ distinfo	(working copy)
 @@ -1,2 +1,2 @@
 -SHA256 (Botan-1.8.13.tbz) = 5593ce257d753c305ecf6f4d16e2f516f647bd6494f823fe9766a816ac439dba
 -SIZE (Botan-1.8.13.tbz) = 2811686
 +SHA256 (Botan-1.8.14.tbz) = a67be92c38a221b4dff180e8721a763cb97a717cd93722b23900680bd4e49d7c
 +SIZE (Botan-1.8.14.tbz) = 2397499
 Index: files/patch-configure.py
 ===================================================================
 --- files/patch-configure.py	(revision 341869)
 +++ files/patch-configure.py	(working copy)
 @@ -1,201 +0,0 @@
 ---- configure.py.orig	2011-10-24 19:51:31.000000000 +0000
 -+++ configure.py	2011-10-24 19:52:25.000000000 +0000
 -@@ -58,7 +58,7 @@
 -         self.include_dir = os.path.join(self.build_dir, 'include')
 -         self.full_include_dir = os.path.join(self.include_dir, 'botan')
 - 
 --        all_files = sum([mod.add for mod in modules], [])
 -+        all_files = sum([list(mod.add) for mod in modules], [])
 - 
 -         self.headers = sorted(
 -             [file for file in all_files if file.endswith('.h')])
 -@@ -290,7 +290,7 @@
 - 
 -     for group in allowed_groups:
 -         to_obj.__dict__[group] = []
 --    for (key,val) in name_val_pairs.iteritems():
 -+    for (key,val) in list(name_val_pairs.items()):
 -         to_obj.__dict__[key] = val
 - 
 -     def lexed_tokens(): # Convert to an interator
 -@@ -320,7 +320,7 @@
 -                     raise LexerError('Group "%s" not terminated' % (group),
 -                                      lexer.lineno)
 - 
 --        elif token in name_val_pairs.keys():
 -+        elif token in list(name_val_pairs.keys()):
 -             to_obj.__dict__[token] = lexer.get_token()
 -         else: # No match -> error
 -             raise LexerError('Bad token "%s"' % (token), lexer.lineno)
 -@@ -329,7 +329,7 @@
 - Convert a lex'ed map (from build-data files) from a list to a dict
 - """
 - def force_to_dict(l):
 --    return dict(zip(l[::3],l[2::3]))
 -+    return dict(list(zip(l[::3],l[2::3])))
 - 
 - """
 - Represents the information about a particular module
 -@@ -361,7 +361,7 @@
 -             return os.path.join(os.path.split(self.lives_in)[0],
 -                                 *filename.split(':'))
 - 
 --        self.add = map(add_dir_name, self.add)
 -+        self.add = list(map(add_dir_name, self.add))
 - 
 -         self.mp_bits = int(self.mp_bits)
 - 
 -@@ -413,8 +413,8 @@
 -             self.unaligned_ok = 0
 - 
 -     def all_submodels(self):
 --        return sorted(zip(self.submodels, self.submodels) +
 --                          self.submodel_aliases.items(),
 -+        return sorted([(k,k) for k in self.submodels] +
 -+                      [k for k in list(self.submodel_aliases.items())],
 -                       key = lambda k: len(k[0]), reverse = True)
 - 
 -     def defines(self, target_submodel, with_endian):
 -@@ -574,13 +574,26 @@
 -                 for feat in self.target_features]
 - 
 - def canon_processor(archinfo, proc):
 --    for ainfo in archinfo.values():
 -+    # First, try to search for an exact match
 -+    for ainfo in list(archinfo.values()):
 -         if ainfo.basename == proc or proc in ainfo.aliases:
 -             return (ainfo.basename, ainfo.basename)
 --        else:
 --            for (match,submodel) in ainfo.all_submodels():
 --                if re.search(match, proc) != None:
 --                    return (ainfo.basename, submodel)
 -+
 -+        for (match,submodel) in ainfo.all_submodels():
 -+            if proc == submodel:
 -+                return (ainfo.basename, submodel)
 -+
 -+    # Now, try searching via regex match
 -+    for ainfo in list(archinfo.values()):
 -+        for (match,submodel) in ainfo.all_submodels():
 -+            if re.search(match, proc) != None:
 -+                return (ainfo.basename, submodel)
 -+
 -+    logging.debug('Known CPU names: ' + ' '.join(
 -+        sorted(sum([[ainfo.basename] + \
 -+                    ainfo.aliases + \
 -+                    [x for (x,_) in ainfo.all_submodels()]
 -+                    for ainfo in list(archinfo.values())], []))))
 - 
 -     raise Exception('Unknown or unidentifiable processor "%s"' % (proc))
 - 
 -@@ -597,7 +610,7 @@
 -     if full_proc == '':
 -         full_proc = base_proc
 - 
 --    for ainfo in archinfo.values():
 -+    for ainfo in list(archinfo.values()):
 -         if ainfo.basename == base_proc or base_proc in ainfo.aliases:
 -             for (match,submodel) in ainfo.all_submodels():
 -                 if re.search(match, full_proc) != None:
 -@@ -626,7 +639,7 @@
 -     try:
 -         template = PercentSignTemplate(slurp_file(template_file))
 -         return template.substitute(variables)
 --    except KeyError, e:
 -+    except KeyError as e:
 -         raise Exception('Unbound var %s in template %s' % (e, template_file))
 - 
 - """
 -@@ -642,7 +655,7 @@
 -     def link_to():
 -         libs = set()
 -         for module in modules:
 --            for (osname,link_to) in module.libs.iteritems():
 -+            for (osname,link_to) in list(module.libs.items()):
 -                 if osname == 'all' or osname == osinfo.basename:
 -                     libs.add(link_to)
 -                 else:
 -@@ -798,8 +811,7 @@
 - 
 -         'doc_files': makefile_list(build_config.doc_files()),
 - 
 --        'mod_list': '\n'.join(['%s (%s)' % (m.basename, m.realname)
 --                               for m in sorted(modules)]),
 -+        'mod_list': '\n'.join(sorted([m.basename for m in modules])),
 -         }
 - 
 - """
 -@@ -814,7 +826,7 @@
 -     def cannot_use_because(mod, reason):
 -         not_using_because.setdefault(reason, []).append(mod)
 - 
 --    for (modname, module) in modules.iteritems():
 -+    for (modname, module) in list(modules.items()):
 -         if modname in options.disabled_modules:
 -             cannot_use_because(modname, 'disabled by user')
 -         elif modname in options.enabled_modules:
 -@@ -862,8 +874,7 @@
 -     while dependency_failure:
 -         dependency_failure = False
 -         for modname in to_load:
 --            for deplist in map(lambda s: s.split('|'),
 --                               modules[modname].dependencies()):
 -+            for deplist in [s.split('|') for s in modules[modname].dependencies()]:
 - 
 -                 dep_met = False
 -                 for mod in deplist:
 -@@ -1020,7 +1031,7 @@
 -     # First delete the build tree, if existing
 -     try:
 -         shutil.rmtree(build_config.build_dir)
 --    except OSError, e:
 -+    except OSError as e:
 -         logging.debug('Error while removing build dir: %s' % (e))
 - 
 -     for dirs in [build_config.checkobj_dir,
 -@@ -1055,7 +1066,7 @@
 -             sink = os.path.join(build_config.build_dir, sink)
 -         templates_to_proc[source] = sink
 - 
 --    for (template, sink) in templates_to_proc.items():
 -+    for (template, sink) in list(templates_to_proc.items()):
 -         try:
 -             f = open(sink, 'w')
 -             f.write(process_template(template, template_vars))
 -@@ -1128,7 +1139,7 @@
 -     if options.os not in osinfo:
 - 
 -         def find_canonical_os_name(os):
 --            for (name, info) in osinfo.items():
 -+            for (name, info) in list(osinfo.items()):
 -                 if os in info.aliases:
 -                     return name
 -             return os # not found
 -@@ -1166,13 +1177,13 @@
 -                 matching_version = '(4\.[01234]\.)|(3\.[34]\.)|(2\.95\.[0-4])'
 - 
 -                 gcc_version = ''.join(
 --                    subprocess.Popen(['g++', '-v'],
 -+                    str(subprocess.Popen(['g++', '-v'],
 -                                      stdout=subprocess.PIPE,
 --                                     stderr=subprocess.PIPE).communicate())
 -+                                     stderr=subprocess.PIPE).communicate()))
 - 
 -                 if re.search(matching_version, gcc_version):
 -                     options.dumb_gcc = True
 --            except OSError, e:
 -+            except OSError as e:
 -                 logging.info('Could not execute GCC for version check')
 - 
 -         if options.dumb_gcc is True:
 -@@ -1206,8 +1217,8 @@
 - if __name__ == '__main__':
 -     try:
 -         main()
 --    except Exception, e:
 --        print >>sys.stderr, e
 -+    except Exception as e:
 -+        logging.error(str(e))
 -         #import traceback
 -         #traceback.print_exc(file=sys.stderr)
 -         sys.exit(1)
 Index: files/patch-src_build_data_makefile_unix_shr.in
 ===================================================================
 --- files/patch-src_build_data_makefile_unix_shr.in	(revision 341869)
 +++ files/patch-src_build_data_makefile_unix_shr.in	(working copy)
 @@ -1,13 +1,22 @@
 ---- src/build-data/makefile/unix_shr.in.orig	2009-09-10 02:29:34.000000000 +0200
 -+++ src/build-data/makefile/unix_shr.in	2009-10-27 14:30:46.000000000 +0100
 -@@ -25,8 +25,8 @@
 - BINDIR        = $(DESTDIR)/bin
 - LIBDIR        = $(DESTDIR)/%{libdir}
 - HEADERDIR     = $(DESTDIR)/%{includedir}/botan
 +--- src/build-data/makefile/unix_shr.in.orig	2012-07-18 21:59:04.000000000 +0200
 ++++ src/build-data/makefile/unix_shr.in	2014-01-30 21:16:16.957275654 +0100
 +@@ -20,13 +20,13 @@
 + ##################################################
 + # Installation Settings                          #
 + ##################################################
 +-DESTDIR       = %{prefix}
 ++PREFIX       = %{prefix}
 + 
 +-BINDIR        = $(DESTDIR)/bin
 +-LIBDIR        = $(DESTDIR)/%{libdir}
 +-HEADERDIR     = $(DESTDIR)/%{includedir}/botan
  -DOCDIR        = $(DESTDIR)/%{docdir}/Botan-$(VERSION)
  -PKGCONF_DIR   = $(LIBDIR)/pkgconfig
 -+DOCDIR        = $(DESTDIR)/%{docdir}/botan
 -+PKGCONF_DIR   = $(DESTDIR)/libdata/pkgconfig
 ++BINDIR        = $(DESTDIR)$(PREFIX)/bin
 ++LIBDIR        = $(DESTDIR)$(PREFIX)/%{libdir}
 ++HEADERDIR     = $(DESTDIR)$(PREFIX)/%{includedir}/botan
 ++DOCDIR        = $(DESTDIR)$(PREFIX)/%{docdir}/botan
 ++PKGCONF_DIR   = $(DESTDIR)$(PREFIX)/libdata/pkgconfig
   
   CONFIG_SCRIPT = %{botan_config}
   PKGCONFIG     = %{botan_pkgconfig}
 
 --------------010307060406020207070602--

From: Lapo Luchini <lapo@lapo.it>
To: Guido Falsi <madpilot@FreeBSD.org>, bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/186279: [MAINTAINER] security/botan: deprecate (and update
 to 1.8.14)
Date: Sat, 01 Feb 2014 12:02:44 +0100

 I approve.
State-Changed-From-To: open->closed 
State-Changed-By: madpilot 
State-Changed-When: Sat Feb 1 13:59:59 UTC 2014 
State-Changed-Why:  
Committed. Thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=186279 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/186279: commit references a PR
Date: Sat,  1 Feb 2014 13:56:28 +0000 (UTC)

 Author: madpilot
 Date: Sat Feb  1 13:56:20 2014
 New Revision: 342137
 URL: http://svnweb.freebsd.org/changeset/ports/342137
 QAT: https://qat.redports.org/buildarchive/r342137/
 
 Log:
   - Update to 1.8.14
   - Deprecate and set expiration date
   - Fix LICENSE
   - Convert to USES=gmake
   - Convert to staging
   - Use new LIB_DEPENDS format
   
   PR:		ports/186279
   Submitted by:	Lapo Luchini <lapo@lapo.it> (maintainer)
 
 Deleted:
   head/security/botan/files/patch-configure.py
 Modified:
   head/security/botan/Makefile
   head/security/botan/distinfo
   head/security/botan/files/patch-src_build_data_makefile_unix_shr.in
 
 Modified: head/security/botan/Makefile
 ==============================================================================
 --- head/security/botan/Makefile	Sat Feb  1 13:49:09 2014	(r342136)
 +++ head/security/botan/Makefile	Sat Feb  1 13:56:20 2014	(r342137)
 @@ -2,7 +2,7 @@
  # $FreeBSD$
  
  PORTNAME=	botan
 -PORTVERSION=	1.8.13
 +PORTVERSION=	1.8.14
  CATEGORIES=	security
  MASTER_SITES=	http://files.randombit.net/botan/v1.8/
  DISTNAME=	Botan-${PORTVERSION}
 @@ -11,9 +11,12 @@ EXTRACT_SUFX=	.tbz
  MAINTAINER=	lapo@lapo.it
  COMMENT=	Portable, easy to use, and efficient C++ crypto library
  
 -LICENSE=	BSD
 +LICENSE=	BSD2CLAUSE
  LICENSE_FILE=	${WRKSRC}/doc/license.txt
  
 +DEPRECATED=	Botan 1.8 have known bugs and is no longer supported upstream, migrate to security/botan110
 +EXPIRATION_DATE=	2014-06-30
 +
  OPTIONS_DEFINE=		SSL GMP ECC
  OPTIONS_DEFAULT=	SSL GMP ECC
  ECC_DESC=	ECC support
 @@ -22,16 +25,14 @@ USE_BZIP2=	yes
  USE_PYTHON_BUILD=	yes
  HAS_CONFIGURE=	yes
  CONFIGURE_SCRIPT=	configure.py
 -CONFIGURE_ARGS=	--prefix=${PREFIX} --with-tr1-implementation=boost \
 -		--with-bzip2 --with-zlib
 -USE_GMAKE=	yes
 +CONFIGURE_ARGS=	--prefix=${PREFIX} --with-bzip2 --with-zlib
 +USES=		gmake
  MAKE_ARGS=	CXX="${CXX}" LIB_OPT="${CXXFLAGS}"
  USE_LDCONFIG=	yes
  PLIST_FILES=	bin/botan-config lib/libbotan.a lib/libbotan.so lib/libbotan.so.0 libdata/pkgconfig/botan-1.8.pc
  
  PORTDOCS=	*
  
 -NO_STAGE=	yes
  .include <bsd.port.options.mk>
  
  .if ${PORT_OPTIONS:MSSL}
 @@ -40,7 +41,7 @@ CONFIGURE_ARGS+=--with-openssl
  .endif
  
  .if ${PORT_OPTIONS:MGMP}
 -LIB_DEPENDS+=	gmp.10:${PORTSDIR}/math/gmp
 +LIB_DEPENDS+=	libgmp.so:${PORTSDIR}/math/gmp
  CONFIGURE_ARGS+=--with-gnump
  MAKE_ARGS+=	LDFLAGS="-L${LOCALBASE}/lib"
  .endif
 @@ -63,7 +64,7 @@ post-patch:
  .endif
  
  post-install:
 -	@(cd ${PREFIX}; ${FIND} -s include/botan -not -type d) >> ${TMPPLIST}
 +	@(cd ${STAGEDIR}${PREFIX}; ${FIND} -s include/botan -not -type d) >> ${TMPPLIST}
  	@${ECHO_CMD} @dirrm include/botan >> ${TMPPLIST}
  
  .include <bsd.port.mk>
 
 Modified: head/security/botan/distinfo
 ==============================================================================
 --- head/security/botan/distinfo	Sat Feb  1 13:49:09 2014	(r342136)
 +++ head/security/botan/distinfo	Sat Feb  1 13:56:20 2014	(r342137)
 @@ -1,2 +1,2 @@
 -SHA256 (Botan-1.8.13.tbz) = 5593ce257d753c305ecf6f4d16e2f516f647bd6494f823fe9766a816ac439dba
 -SIZE (Botan-1.8.13.tbz) = 2811686
 +SHA256 (Botan-1.8.14.tbz) = a67be92c38a221b4dff180e8721a763cb97a717cd93722b23900680bd4e49d7c
 +SIZE (Botan-1.8.14.tbz) = 2397499
 
 Modified: head/security/botan/files/patch-src_build_data_makefile_unix_shr.in
 ==============================================================================
 --- head/security/botan/files/patch-src_build_data_makefile_unix_shr.in	Sat Feb  1 13:49:09 2014	(r342136)
 +++ head/security/botan/files/patch-src_build_data_makefile_unix_shr.in	Sat Feb  1 13:56:20 2014	(r342137)
 @@ -1,13 +1,22 @@
 ---- src/build-data/makefile/unix_shr.in.orig	2009-09-10 02:29:34.000000000 +0200
 -+++ src/build-data/makefile/unix_shr.in	2009-10-27 14:30:46.000000000 +0100
 -@@ -25,8 +25,8 @@
 - BINDIR        = $(DESTDIR)/bin
 - LIBDIR        = $(DESTDIR)/%{libdir}
 - HEADERDIR     = $(DESTDIR)/%{includedir}/botan
 +--- src/build-data/makefile/unix_shr.in.orig	2012-07-18 21:59:04.000000000 +0200
 ++++ src/build-data/makefile/unix_shr.in	2014-01-30 21:16:16.957275654 +0100
 +@@ -20,13 +20,13 @@
 + ##################################################
 + # Installation Settings                          #
 + ##################################################
 +-DESTDIR       = %{prefix}
 ++PREFIX       = %{prefix}
 + 
 +-BINDIR        = $(DESTDIR)/bin
 +-LIBDIR        = $(DESTDIR)/%{libdir}
 +-HEADERDIR     = $(DESTDIR)/%{includedir}/botan
  -DOCDIR        = $(DESTDIR)/%{docdir}/Botan-$(VERSION)
  -PKGCONF_DIR   = $(LIBDIR)/pkgconfig
 -+DOCDIR        = $(DESTDIR)/%{docdir}/botan
 -+PKGCONF_DIR   = $(DESTDIR)/libdata/pkgconfig
 ++BINDIR        = $(DESTDIR)$(PREFIX)/bin
 ++LIBDIR        = $(DESTDIR)$(PREFIX)/%{libdir}
 ++HEADERDIR     = $(DESTDIR)$(PREFIX)/%{includedir}/botan
 ++DOCDIR        = $(DESTDIR)$(PREFIX)/%{docdir}/botan
 ++PKGCONF_DIR   = $(DESTDIR)$(PREFIX)/libdata/pkgconfig
   
   CONFIG_SCRIPT = %{botan_config}
   PKGCONFIG     = %{botan_pkgconfig}
 _______________________________________________
 svn-ports-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-ports-all
 To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
 
>Unformatted:
