Skip site navigation (1)Skip section navigation (2)
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:   ports/186279: [MAINTAINER] security/botan: deprecate (and update to 1.8.14)
Message-ID:  <201401301610.s0UGA3Va064920@freefall.freebsd.org>
Resent-Message-ID: <201401301610.s0UGA3Va064920@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         186279
>Category:       ports
>Synopsis:       [MAINTAINER] security/botan: deprecate (and update to 1.8.14)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jan 30 16:10:02 UTC 2014
>Closed-Date:
>Last-Modified:
>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:
>Unformatted:



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