svn commit: r447922 - in head/security: . highwayhash highwayhash/files
Richard Gallamore
ultima at FreeBSD.org
Sun Aug 13 22:35:20 UTC 2017
Author: ultima
Date: Sun Aug 13 22:35:18 2017
New Revision: 447922
URL: https://svnweb.freebsd.org/changeset/ports/447922
Log:
Strong (well-distributed and unpredictable) hashes:
* Portable implementation of SipHash
* HighwayHash, a 5x faster SIMD hash with security claims
WWW: https://github.com/google/highwayhash
PR: 219232
Submitted by: Yuri Victorovich (maintainer)
Reviewed by: matthew (mentor)
Approved by: matthew (mentor)
Differential Revision: https://reviews.freebsd.org/D12002
Added:
head/security/highwayhash/
head/security/highwayhash/Makefile (contents, props changed)
head/security/highwayhash/distinfo (contents, props changed)
head/security/highwayhash/files/
head/security/highwayhash/files/patch-highwayhash_os__specific.cc (contents, props changed)
head/security/highwayhash/pkg-descr (contents, props changed)
head/security/highwayhash/pkg-plist (contents, props changed)
head/security/highwayhash/tags (contents, props changed)
Modified:
head/security/Makefile
Modified: head/security/Makefile
==============================================================================
--- head/security/Makefile Sun Aug 13 22:34:00 2017 (r447921)
+++ head/security/Makefile Sun Aug 13 22:35:18 2017 (r447922)
@@ -209,6 +209,7 @@
SUBDIR += hashcat
SUBDIR += hashcat-legacy
SUBDIR += heimdal
+ SUBDIR += highwayhash
SUBDIR += hitch
SUBDIR += hlfl
SUBDIR += hmap
Added: head/security/highwayhash/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/security/highwayhash/Makefile Sun Aug 13 22:35:18 2017 (r447922)
@@ -0,0 +1,37 @@
+# Created by: Yuri Victorovich <yuri at rawbw.com>
+# $FreeBSD$
+
+PORTNAME= highwayhash
+PORTVERSION= g20170512
+CATEGORIES= security
+
+MAINTAINER= yuri at rawbw.com
+COMMENT= Fast strong hash functions: SipHash/HighwayHash
+
+LICENSE= APACHE20
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+ONLY_FOR_ARCHS= amd64 arm64 powerpc powerpc64
+ONLY_FOR_ARCHS_REASON= Assembly is implemented only for specific architectures in highwayhash/tsc_timer.h
+
+USES= gmake
+USE_GITHUB= yes
+GH_ACCOUNT= google
+GH_TAGNAME= 2b666ae
+USE_LDCONFIG= yes
+
+post-patch:
+ # Install flags upstream issue: https://github.com/google/highwayhash/issues/58
+ @${REINPLACE_CMD} -e '\
+ s|LIBDIR|XLIBDIR|; \
+ s| -O3||; \
+ s|install -m0755 high|${INSTALL_DATA} high|; \
+ s|install -m0755 lib|${INSTALL_LIB} lib|' \
+ ${WRKSRC}/Makefile
+
+post-install:
+ # Symlink upstream issue: https://github.com/google/highwayhash/issues/57
+ ${RM} ${STAGEDIR}${PREFIX}/lib/libhighwayhash.so
+ ${LN} -s libhighwayhash.so.0 ${STAGEDIR}${PREFIX}/lib/libhighwayhash.so
+
+.include <bsd.port.mk>
Added: head/security/highwayhash/distinfo
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/security/highwayhash/distinfo Sun Aug 13 22:35:18 2017 (r447922)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1502493406
+SHA256 (google-highwayhash-g20170512-2b666ae_GH0.tar.gz) = 294320a52169a3365818b98c7ee8438583d9f627ec84e4b61f2cb94f86796a73
+SIZE (google-highwayhash-g20170512-2b666ae_GH0.tar.gz) = 139398
Added: head/security/highwayhash/files/patch-highwayhash_os__specific.cc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/security/highwayhash/files/patch-highwayhash_os__specific.cc Sun Aug 13 22:35:18 2017 (r447922)
@@ -0,0 +1,64 @@
+--- highwayhash/os_specific.cc.orig 2017-05-08 14:09:02 UTC
++++ highwayhash/os_specific.cc
+@@ -40,6 +40,16 @@
+ #define OS_LINUX 0
+ #endif
+
++#ifdef __FreeBSD__
++#define OS_FREEBSD 1
++#include <sched.h>
++#include <sys/time.h>
++#include <sys/param.h>
++#include <sys/cpuset.h>
++#else
++#define OS_FREEBSD 0
++#endif
++
+ #ifdef __MACH__
+ #define OS_MAC 1
+ #include <mach/mach.h>
+@@ -134,6 +144,10 @@ ThreadAffinity* GetThreadAffinity() {
+ const int err = cpuset_getaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID, pid,
+ sizeof(cpuset_t), &affinity->set);
+ CHECK(err == 0);
++#elif OS_FREEBSD
++ const pid_t pid = 0; // current thread
++ const int err = cpuset_getaffinity(CPU_LEVEL_WHICH, CPU_WHICH_TID, pid, sizeof(cpuset_t), &affinity->set);
++ CHECK(err == 0);
+ #endif
+ return affinity;
+ }
+@@ -165,6 +179,10 @@ void SetThreadAffinity(ThreadAffinity* a
+ const int err = cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID, pid,
+ sizeof(cpuset_t), &affinity->set);
+ CHECK(err == 0);
++#elif OS_FREEBSD
++ const pid_t pid = 0; // current thread
++ const int err = cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_TID, pid, sizeof(cpuset_t), &affinity->set);
++ CHECK(err == 0);
+ #else
+ #error "port"
+ #endif
+@@ -192,6 +210,12 @@ std::vector<int> AvailableCPUs() {
+ cpus.push_back(cpu);
+ }
+ }
++#elif OS_FREEBSD
++ for (size_t cpu = 0; cpu < sizeof(cpuset_t) * 8; ++cpu) {
++ if (CPU_ISSET(cpu, &affinity->set)) {
++ cpus.push_back(cpu);
++ }
++ }
+ #else
+ #error "port"
+ #endif
+@@ -208,6 +232,9 @@ void PinThreadToCPU(const int cpu) {
+ #elif OS_FREEBSD
+ CPU_ZERO(&affinity.set);
+ CPU_SET(cpu, &affinity.set);
++#elif OS_FREEBSD
++ CPU_ZERO(&affinity.set);
++ CPU_SET(cpu, &affinity.set);
+ #else
+ #error "port"
+ #endif
Added: head/security/highwayhash/pkg-descr
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/security/highwayhash/pkg-descr Sun Aug 13 22:35:18 2017 (r447922)
@@ -0,0 +1,5 @@
+Strong (well-distributed and unpredictable) hashes:
+* Portable implementation of SipHash
+* HighwayHash, a 5x faster SIMD hash with security claims
+
+WWW: https://github.com/google/highwayhash
Added: head/security/highwayhash/pkg-plist
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/security/highwayhash/pkg-plist Sun Aug 13 22:35:18 2017 (r447922)
@@ -0,0 +1,32 @@
+include/highwayhash/arch_specific.h
+include/highwayhash/c_bindings.h
+include/highwayhash/compiler_specific.h
+include/highwayhash/data_parallel.h
+include/highwayhash/endianess.h
+include/highwayhash/hh_avx2.h
+include/highwayhash/hh_buffer.h
+include/highwayhash/hh_portable.h
+include/highwayhash/hh_sse41.h
+include/highwayhash/hh_types.h
+include/highwayhash/highwayhash.h
+include/highwayhash/highwayhash_target.h
+include/highwayhash/highwayhash_test_target.h
+include/highwayhash/iaca.h
+include/highwayhash/instruction_sets.h
+include/highwayhash/load3.h
+include/highwayhash/nanobenchmark.h
+include/highwayhash/os_specific.h
+include/highwayhash/profiler.h
+include/highwayhash/robust_statistics.h
+include/highwayhash/scalar.h
+include/highwayhash/scalar_sip_tree_hash.h
+include/highwayhash/sip_hash.h
+include/highwayhash/sip_tree_hash.h
+include/highwayhash/state_helpers.h
+include/highwayhash/tsc_timer.h
+include/highwayhash/vector128.h
+include/highwayhash/vector256.h
+include/highwayhash/vector_test_target.h
+lib/libhighwayhash.a
+lib/libhighwayhash.so
+lib/libhighwayhash.so.0
Added: head/security/highwayhash/tags
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/security/highwayhash/tags Sun Aug 13 22:35:18 2017 (r447922)
@@ -0,0 +1,15 @@
+!_TAG_FILE_SORTED 2 /0=unsorted, 1=sorted, 2=foldcase/
+CATEGORIES /usr/home/ricky/FreeBSD/ports/security/highwayhash/Makefile /^CATEGORIES= security$/;" m language:Make
+COMMENT /usr/home/ricky/FreeBSD/ports/security/highwayhash/Makefile /^COMMENT= Fast strong hash functions: SipHash\/HighwayHash$/;" m language:Make
+GH_ACCOUNT /usr/home/ricky/FreeBSD/ports/security/highwayhash/Makefile /^GH_ACCOUNT= google$/;" m language:Make
+GH_TAGNAME /usr/home/ricky/FreeBSD/ports/security/highwayhash/Makefile /^GH_TAGNAME= 2b666ae$/;" m language:Make
+LICENSE /usr/home/ricky/FreeBSD/ports/security/highwayhash/Makefile /^LICENSE= APACHE20$/;" m language:Make
+LICENSE_FILE /usr/home/ricky/FreeBSD/ports/security/highwayhash/Makefile /^LICENSE_FILE= ${WRKSRC}\/LICENSE$/;" m language:Make
+MAINTAINER /usr/home/ricky/FreeBSD/ports/security/highwayhash/Makefile /^MAINTAINER= yuri at rawbw.com$/;" m language:Make
+ONLY_FOR_ARCHS /usr/home/ricky/FreeBSD/ports/security/highwayhash/Makefile /^ONLY_FOR_ARCHS= amd64 arm64 powerpc powerpc64$/;" m language:Make
+ONLY_FOR_ARCHS_REASON /usr/home/ricky/FreeBSD/ports/security/highwayhash/Makefile /^ONLY_FOR_ARCHS_REASON= Assembly is implemented only for specific architectures in highwayhash\/tsc_timer.h$/;" m language:Make
+PORTNAME /usr/home/ricky/FreeBSD/ports/security/highwayhash/Makefile /^PORTNAME= highwayhash$/;" m language:Make
+PORTVERSION /usr/home/ricky/FreeBSD/ports/security/highwayhash/Makefile /^PORTVERSION= g20170512$/;" m language:Make
+USES /usr/home/ricky/FreeBSD/ports/security/highwayhash/Makefile /^USES= gmake$/;" m language:Make
+USE_GITHUB /usr/home/ricky/FreeBSD/ports/security/highwayhash/Makefile /^USE_GITHUB= yes$/;" m language:Make
+USE_LDCONFIG /usr/home/ricky/FreeBSD/ports/security/highwayhash/Makefile /^USE_LDCONFIG= yes$/;" m language:Make
More information about the svn-ports-head
mailing list