Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 May 2013 16:09:19 +0200 (CEST)
From:      Lapo Luchini <lapo@lapo.it>
To:        FreeBSD-gnats-submit@freebsd.org
Cc:        Lapo Luchini <lapo@lapo.it>, Guido Falso <madpilot@freebsd.org>
Subject:   ports/178812: [MAINTAINER] security/botan110: new port (version 1.10.5)
Message-ID:  <201305211409.r4LE9Jai093158@lapo.andxor.it>
Resent-Message-ID: <201305211420.r4LEK1UT023150@freefall.freebsd.org>

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

>Number:         178812
>Category:       ports
>Synopsis:       [MAINTAINER] security/botan110: new port (version 1.10.5)
>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:   Tue May 21 14:20:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     Lapo Luchini
>Release:        FreeBSD 8.3-RELEASE-p3 amd64
>Organization:
>Environment:
System: FreeBSD lapo.andxor.it 8.3-RELEASE-p3 FreeBSD 8.3-RELEASE-p3 #0: Tue Jun 12 00:39:29 UTC 2012
>Description:

I'd like to have a new security/botan110 port (svn cp security/botan security/botan110 + this patch).
This way dependent ports can test and upgrade when they're ready.
I will shortly provide an update to ports/178316 to use this new port.

This patch is also (tested and) available on RedPorts as:
https://redports.org/browser/lapo/security/botan110?rev=12349

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

--- botan110-1.10.5.patch begins here ---
diff -ruN /usr/ports/security/botan/Makefile ./Makefile
--- /usr/ports/security/botan/Makefile	2013-03-29 20:33:41.000000000 +0100
+++ ./Makefile	2013-05-21 14:57:13.769014185 +0200
@@ -1,10 +1,10 @@
 # Created by: Ying-Chieh Liao <ijliao@FreeBSD.org>
 # $FreeBSD: security/botan/Makefile 315566 2013-03-29 19:33:41Z cs $
 
-PORTNAME=	botan
-PORTVERSION=	1.8.13
+PORTNAME=	botan110
+PORTVERSION=	1.10.5
 CATEGORIES=	security
-MASTER_SITES=	http://files.randombit.net/botan/v1.8/
+MASTER_SITES=	http://files.randombit.net/botan/v1.10/
 DISTNAME=	Botan-${PORTVERSION}
 EXTRACT_SUFX=	.tbz
 
@@ -27,7 +27,8 @@
 USE_GMAKE=	yes
 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
+PLIST_FILES=	bin/botan-config-1.10 lib/libbotan-1.10.a lib/libbotan-1.10.so lib/libbotan-1.10.so.0 \
+		lib/libbotan-1.10.so.0.5 libdata/pkgconfig/botan-1.10.pc
 
 PORTDOCS=	*
 
@@ -39,7 +40,7 @@
 .endif
 
 .if ${PORT_OPTIONS:MGMP}
-LIB_DEPENDS+=	gmp.10:${PORTSDIR}/math/gmp
+LIB_DEPENDS+=	gmp:${PORTSDIR}/math/gmp
 CONFIGURE_ARGS+=--with-gnump
 MAKE_ARGS+=	LDFLAGS="-L${LOCALBASE}/lib"
 .endif
@@ -56,13 +57,13 @@
 	${REINPLACE_CMD} -e "s|#!/usr/bin/env python|#!${PYTHON_CMD}|" \
 			${WRKSRC}/configure.py
 .if ${PORT_OPTIONS:MDOCS}
-	${REINPLACE_CMD} -e '/$$(MKDIR_INSTALL) $$(DOCDIR)/d' \
-			-e '/$$(INSTALL_CMD_DATA) $$$$i $$(DOCDIR); /d' \
+	${REINPLACE_CMD} -e '/DOCDIR/d' \
 			${WRKSRC}/src/build-data/makefile/unix_shr.in
 .endif
 
 post-install:
-	@(cd ${PREFIX}; ${FIND} -s include/botan -not -type d) >> ${TMPPLIST}
-	@${ECHO_CMD} @dirrm include/botan >> ${TMPPLIST}
+	@(cd ${PREFIX}; ${FIND} -s include/botan-1.10 -not -type d) >> ${TMPPLIST}
+	@${ECHO_CMD} @dirrm include/botan-1.10/botan >> ${TMPPLIST}
+	@${ECHO_CMD} @dirrm include/botan-1.10 >> ${TMPPLIST}
 
 .include <bsd.port.mk>
diff -ruN /usr/ports/security/botan/distinfo ./distinfo
--- /usr/ports/security/botan/distinfo	2012-07-14 16:29:18.000000000 +0200
+++ ./distinfo	2013-04-23 15:32:21.292830916 +0200
@@ -1,2 +1,2 @@
-SHA256 (Botan-1.8.13.tbz) = 5593ce257d753c305ecf6f4d16e2f516f647bd6494f823fe9766a816ac439dba
-SIZE (Botan-1.8.13.tbz) = 2811686
+SHA256 (Botan-1.10.5.tbz) = 2934c00533847dc93c485081d3ce6aae4a110151a69b587b895241159da77cf3
+SIZE (Botan-1.10.5.tbz) = 2214817
diff -ruN /usr/ports/security/botan/files/patch-configure.py ./files/patch-configure.py
--- /usr/ports/security/botan/files/patch-configure.py	2012-07-14 16:29:18.000000000 +0200
+++ ./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	2012-07-14 16:29:18.000000000 +0200
+++ ./files/patch-src_build_data_makefile_unix_shr.in	2011-09-22 12:16:09.194374951 +0200
@@ -1,24 +1,11 @@
---- 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
+--- src/build-data/makefile/unix_shr.in.orig	2011-09-02 19:36:47.671575619 +0000
++++ src/build-data/makefile/unix_shr.in	2011-09-02 19:37:32.341486166 +0000
+@@ -20,7 +20,7 @@
  LIBDIR        = $(DESTDIR)/%{libdir}
- HEADERDIR     = $(DESTDIR)/%{includedir}/botan
--DOCDIR        = $(DESTDIR)/%{docdir}/Botan-$(VERSION)
+ HEADERDIR     = $(DESTDIR)/%{includedir}/botan-$(SERIES)/botan
+ DOCDIR        = $(DESTDIR)/%{docdir}/botan-$(VERSION)
 -PKGCONF_DIR   = $(LIBDIR)/pkgconfig
-+DOCDIR        = $(DESTDIR)/%{docdir}/botan
 +PKGCONF_DIR   = $(DESTDIR)/libdata/pkgconfig
  
  CONFIG_SCRIPT = %{botan_config}
  PKGCONFIG     = %{botan_pkgconfig}
-@@ -67,8 +67,8 @@
- LIBNAME       = %{lib_prefix}libbotan
- STATIC_LIB    = $(LIBNAME).a
- 
--SHARED_LIB    = $(LIBNAME)-$(SO_VERSION).%{so_suffix}
--SONAME        = $(LIBNAME)-$(SO_VERSION).%{so_suffix}
-+SHARED_LIB    = $(LIBNAME).%{so_suffix}.0
-+SONAME        = $(LIBNAME).%{so_suffix}.0
- 
- SYMLINK       = libbotan.%{so_suffix}
- 
--- botan110-1.10.5.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?201305211409.r4LE9Jai093158>