Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Aug 2018 14:23:53 +0000 (UTC)
From:      Danilo Egea Gondolfo <danilo@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r476644 - in head/security/s2n: . files
Message-ID:  <201808081423.w78ENrv0004777@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: danilo
Date: Wed Aug  8 14:23:53 2018
New Revision: 476644
URL: https://svnweb.freebsd.org/changeset/ports/476644

Log:
  - Update to 20180802
  - Use cmake
  - Remove ONLY_FOR_ARCHS (reported by greg@unrelenting.technology) [1]
  - Add TEST option and patch to disable tests
  - Fix build on i386
  
  PR:		230421 [1]

Added:
  head/security/s2n/files/patch-CMakeLists.txt   (contents, props changed)
  head/security/s2n/files/patch-cmake_modules_FindLibCrypto.cmake   (contents, props changed)
  head/security/s2n/files/patch-utils_s2n__random.c   (contents, props changed)
Deleted:
  head/security/s2n/files/Makefile.in
Modified:
  head/security/s2n/Makefile
  head/security/s2n/distinfo
  head/security/s2n/pkg-plist

Modified: head/security/s2n/Makefile
==============================================================================
--- head/security/s2n/Makefile	Wed Aug  8 13:53:09 2018	(r476643)
+++ head/security/s2n/Makefile	Wed Aug  8 14:23:53 2018	(r476644)
@@ -2,7 +2,7 @@
 # $FreeBSD$
 
 PORTNAME=	s2n
-PORTVERSION=	20170425
+PORTVERSION=	20180802
 CATEGORIES=	security
 
 MAINTAINER=	danilo@FreeBSD.org
@@ -10,21 +10,22 @@ COMMENT=	C99 implementation of the TLS/SSL protocols
 
 LICENSE=	APACHE20
 
-ONLY_FOR_ARCHS=	amd64
+USES=		cmake ssl
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	awslabs
-GH_TAGNAME=	02ade5e
+GH_TAGNAME=	15fa0de
 
-OPTIONS_DEFINE=	DOCS EXAMPLES
+OPTIONS_DEFINE=	DOCS EXAMPLES TEST
 
-USES=		gmake ssl
 USE_LDCONFIG=	yes
-NO_CONFIGURE=	yes
+CFLAGS+=	-D__USE_BSD=1
 
-SUB_FILES=	pkg-message Makefile
-ALL_TARGET=	bin
+SUB_FILES=	pkg-message
 
+TEST_CMAKE_BOOL=	BUILD_TESTING
+TEST_BUILD_DEPENDS=	gmake:devel/gmake
+
 post-patch:
 	@${REINPLACE_CMD} -e 's|CRYPTO_LDFLAGS |&+|' \
 		${WRKSRC}/tests/testlib/Makefile \
@@ -32,18 +33,15 @@ post-patch:
 	@${REINPLACE_CMD} -e 's|-ldl||g' ${WRKSRC}/tests/LD_PRELOAD/Makefile \
 		${WRKSRC}/tests/fuzz/LD_PRELOAD/Makefile
 
-do-install:
-	${INSTALL_LIB} ${WRKSRC}/lib/libs2n.so* ${STAGEDIR}${LOCALBASE}/lib
+post-build-TEST-on:
+	${GMAKE} PLATFORM=FreeBSD S2N_DONT_MLOCK=yes \
+		CRYPTO_LDFLAGS=-L${LOCALBASE}/lib -C ${WRKSRC}/tests
+
+post-install:
 	${LN} -s libs2n.so ${STAGEDIR}${LOCALBASE}/lib/libs2n.so.0
-	${INSTALL_DATA} ${WRKSRC}/api/s2n* ${STAGEDIR}${LOCALBASE}/include
 	@${MKDIR} ${STAGEDIR}${DOCSDIR}
 	${CP} -r ${WRKSRC}/docs/* ${STAGEDIR}${DOCSDIR}
 	@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
 	${INSTALL_DATA} ${WRKSRC}/bin/*.c ${STAGEDIR}${EXAMPLESDIR}
-	${INSTALL_DATA} ${WRKDIR}/Makefile ${STAGEDIR}${EXAMPLESDIR}
-
-tests: build
-	${GMAKE} PLATFORM=FreeBSD S2N_DONT_MLOCK=yes \
-		CRYPTO_LDFLAGS=-L${LOCALBASE}/lib -C ${WRKSRC}/tests
 
 .include <bsd.port.mk>

Modified: head/security/s2n/distinfo
==============================================================================
--- head/security/s2n/distinfo	Wed Aug  8 13:53:09 2018	(r476643)
+++ head/security/s2n/distinfo	Wed Aug  8 14:23:53 2018	(r476644)
@@ -1,3 +1,3 @@
-TIMESTAMP = 1494191538
-SHA256 (awslabs-s2n-20170425-02ade5e_GH0.tar.gz) = 4f89efda891d21db99ac2c446eae523cd41cae37bb4ccd0d690d36bf0d05faae
-SIZE (awslabs-s2n-20170425-02ade5e_GH0.tar.gz) = 748394
+TIMESTAMP = 1533600732
+SHA256 (awslabs-s2n-20180802-15fa0de_GH0.tar.gz) = 0b1a4322c264911650e25a802a84faf8ce4f36534c68c318487c3ae8ba4d09c5
+SIZE (awslabs-s2n-20180802-15fa0de_GH0.tar.gz) = 1342691

Added: head/security/s2n/files/patch-CMakeLists.txt
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/security/s2n/files/patch-CMakeLists.txt	Wed Aug  8 14:23:53 2018	(r476644)
@@ -0,0 +1,89 @@
+--- CMakeLists.txt.orig	2018-08-02 17:06:27 UTC
++++ CMakeLists.txt
+@@ -8,6 +8,8 @@ set(INSTALL_LIB_DIR lib CACHE PATH "Installaction dire
+ set(INSTALL_INCLUDE_DIR include CACHE PATH "installaction directory for header files")
+ set(INSTALL_CMAKE_DIR lib/cmake CACHE PATH "Installation directory for cmake files")
+ 
++option(BUILD_TESTING "Build tests" ON)
++
+ ##header files
+ file(GLOB API_HEADERS
+      "api/*.h"
+@@ -97,7 +99,7 @@ file(GLOB S2N_HEADERS
+     ${UTILS_SRC}
+  )
+ 
+-add_library(s2n ${S2N_HEADERS} ${S2N_SRC})
++add_library(s2n SHARED ${S2N_HEADERS} ${S2N_SRC})
+ set_target_properties(s2n PROPERTIES LINKER_LANGUAGE C)
+ 
+ set(CMAKE_C_FLAGS_DEBUGOPT "")
+@@ -127,39 +129,41 @@ target_include_directories(s2n PUBLIC $<BUILD_INTERFAC
+ target_include_directories(s2n PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/api> $<INSTALL_INTERFACE:include>)
+ target_include_directories(s2n PUBLIC $<TARGET_PROPERTY:LibCrypto::Crypto,INTERFACE_INCLUDE_DIRECTORIES>)
+ 
+-file(GLOB TESTLIB_SRC "tests/testlib/*.c")
+-file(GLOB TESTLIB_HEADERS "tests/testlib/*.h")
++if(BUILD_TESTING)
++	file(GLOB TESTLIB_SRC "tests/testlib/*.c")
++	file(GLOB TESTLIB_HEADERS "tests/testlib/*.h")
+ 
+-add_library(testss2n ${TESTLIB_HEADERS} ${TESTLIB_SRC})
+-target_include_directories(testss2n PRIVATE tests)
+-target_compile_options(testss2n PRIVATE -std=c99)
+-target_link_libraries(testss2n PUBLIC s2n)
++	add_library(testss2n ${TESTLIB_HEADERS} ${TESTLIB_SRC})
++	target_include_directories(testss2n PRIVATE tests)
++	target_compile_options(testss2n PRIVATE -std=c99)
++	target_link_libraries(testss2n PUBLIC s2n)
+ 
+-#run unit tests
+-file (GLOB TEST_LD_PRELOAD "tests/LD_PRELOAD/*.c")
+-add_library(allocator_overrides SHARED ${TEST_LD_PRELOAD})
++	#run unit tests
++	file (GLOB TEST_LD_PRELOAD "tests/LD_PRELOAD/*.c")
++	add_library(allocator_overrides SHARED ${TEST_LD_PRELOAD})
+ 
+-include(CTest)
+-enable_testing()
++	include(CTest)
++	enable_testing()
+ 
+-file(GLOB UNITTESTS_SRC "tests/unit/*.c")
+-    foreach(test_case ${UNITTESTS_SRC})
+-    string(REGEX REPLACE ".+\\/(.+)\\.c" "\\1" test_case_name ${test_case})
+-    add_executable(${test_case_name} ${test_case})
+-    target_link_libraries(${test_case_name} PRIVATE testss2n PRIVATE m pthread)
+-    target_include_directories(${test_case_name} PRIVATE api)
+-    target_include_directories(${test_case_name} PRIVATE ./)
+-    target_include_directories(${test_case_name} PRIVATE tests)
+-    target_compile_options(${test_case_name} PRIVATE -Wno-implicit-function-declaration -std=c99)
+-    add_test(NAME ${test_case_name} COMMAND $<TARGET_FILE:${test_case_name}> WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests/unit)
++	file(GLOB UNITTESTS_SRC "tests/unit/*.c")
++	foreach(test_case ${UNITTESTS_SRC})
++		string(REGEX REPLACE ".+\\/(.+)\\.c" "\\1" test_case_name ${test_case})
++		add_executable(${test_case_name} ${test_case})
++		target_link_libraries(${test_case_name} PRIVATE testss2n PRIVATE m pthread)
++		target_include_directories(${test_case_name} PRIVATE api)
++		target_include_directories(${test_case_name} PRIVATE ./)
++		target_include_directories(${test_case_name} PRIVATE tests)
++		target_compile_options(${test_case_name} PRIVATE -Wno-implicit-function-declaration -std=c99)
++		add_test(NAME ${test_case_name} COMMAND $<TARGET_FILE:${test_case_name}> WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests/unit)
+ 
+-    set_property(
+-    TEST
+-        ${test_case_name}
+-    PROPERTY
+-        ENVIRONMENT LD_PRELOAD=$<TARGET_FILE:allocator_overrides>)
++		set_property(
++			TEST
++			${test_case_name}
++			PROPERTY
++			ENVIRONMENT LD_PRELOAD=$<TARGET_FILE:allocator_overrides>)
+ 
+-endforeach(test_case)
++	endforeach(test_case)
++endif()
+ 
+ add_executable(s2nc "bin/s2nc.c" "bin/echo.c")
+ target_link_libraries(s2nc s2n)

Added: head/security/s2n/files/patch-cmake_modules_FindLibCrypto.cmake
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/security/s2n/files/patch-cmake_modules_FindLibCrypto.cmake	Wed Aug  8 14:23:53 2018	(r476644)
@@ -0,0 +1,11 @@
+--- cmake/modules/FindLibCrypto.cmake.orig	2018-06-25 03:06:06 UTC
++++ cmake/modules/FindLibCrypto.cmake
+@@ -28,7 +28,7 @@ find_path(LibCrypto_INCLUDE_DIR
+         )
+ 
+ find_library(LibCrypto_LIBRARY
+-        NAMES libcrypto.a libcrypto.so
++        NAMES libcrypto.so
+         HINTS ${LibCrypto_ROOT_DIR}/build/crypto
+         ${LibCrypto_ROOT_DIR}/build
+         ${LibCrypto_ROOT_DIR}

Added: head/security/s2n/files/patch-utils_s2n__random.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/security/s2n/files/patch-utils_s2n__random.c	Wed Aug  8 14:23:53 2018	(r476644)
@@ -0,0 +1,26 @@
+--- utils/s2n_random.c.orig	2018-08-07 15:09:08 UTC
++++ utils/s2n_random.c
+@@ -324,8 +324,13 @@ int s2n_get_rdrand_data(struct s2n_blob *out)
+     int space_remaining = 0;
+     struct s2n_stuffer stuffer = {{0}};
+     union {
+-        uint64_t u64;
++#if defined(__x86_64__)
++        uint64_t value;
+         uint8_t u8[8];
++#else
++        uint32_t value;
++        uint8_t u8[4];
++#endif
+     } output;
+ 
+     GUARD(s2n_stuffer_init(&stuffer, out));
+@@ -334,7 +339,7 @@ int s2n_get_rdrand_data(struct s2n_blob *out)
+         int success = 0;
+ 
+         for (int tries = 0; tries < 10; tries++) {
+-            __asm__ __volatile__(".byte 0x48;\n" ".byte 0x0f;\n" ".byte 0xc7;\n" ".byte 0xf0;\n" "adcl $0x00, %%ebx;\n":"=b"(success), "=a"(output.u64)
++            __asm__ __volatile__(".byte 0x48;\n" ".byte 0x0f;\n" ".byte 0xc7;\n" ".byte 0xf0;\n" "adcl $0x00, %%ebx;\n":"=b"(success), "=a"(output.value)
+                                  :"b"(0)
+                                  :"cc");
+ 

Modified: head/security/s2n/pkg-plist
==============================================================================
--- head/security/s2n/pkg-plist	Wed Aug  8 13:53:09 2018	(r476643)
+++ head/security/s2n/pkg-plist	Wed Aug  8 14:23:53 2018	(r476644)
@@ -1,15 +1,21 @@
 include/s2n.h
+lib/cmake/LibCrypto/LibCryptoConfig.cmake
+lib/cmake/s2n/s2nConfig.cmake
+lib/cmake/s2n/s2nTargets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/s2n/s2nTargets.cmake
 lib/libs2n.so
 lib/libs2n.so.0
 %%PORTDOCS%%%%DOCSDIR%%/BINDINGS.md
 %%PORTDOCS%%%%DOCSDIR%%/DEVELOPMENT-GUIDE.md
 %%PORTDOCS%%%%DOCSDIR%%/READING-LIST.md
 %%PORTDOCS%%%%DOCSDIR%%/USAGE-GUIDE.md
+%%PORTDOCS%%%%DOCSDIR%%/images/s2n-logo-final.pdf
+%%PORTDOCS%%%%DOCSDIR%%/images/s2n-logo-final.svg
+%%PORTDOCS%%%%DOCSDIR%%/images/s2n-logo-github.svg
 %%PORTDOCS%%%%DOCSDIR%%/images/s2n_lambda.png
 %%PORTDOCS%%%%DOCSDIR%%/images/s2n_logo_github.png
 %%PORTDOCS%%%%DOCSDIR%%/images/s2n_stuffer_layout.png
 %%PORTDOCS%%%%DOCSDIR%%/images/s2n_tls_layers.png
-%%PORTEXAMPLES%%%%EXAMPLESDIR%%/Makefile
 %%PORTEXAMPLES%%%%EXAMPLESDIR%%/echo.c
 %%PORTEXAMPLES%%%%EXAMPLESDIR%%/s2nc.c
 %%PORTEXAMPLES%%%%EXAMPLESDIR%%/s2nd.c



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