commit: 35d4b669edb6a86c9288f043e579003cd353a314 Author: Aisha Tammy <gentoo <AT> aisha <DOT> cc> AuthorDate: Sat Sep 3 04:33:13 2022 +0000 Commit: Ronny Gutbrod <gentoo <AT> tastytea <DOT> de> CommitDate: Sat Sep 3 04:33:28 2022 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=35d4b669
net-libs/picotls: new package, add 0_pre20220721, 9999 Signed-off-by: Aisha Tammy <gentoo <AT> aisha.cc> net-libs/picotls/Manifest | 2 + .../files/picotls-0_pre20220721-disable-e2e.patch | 22 ++++++++ net-libs/picotls/metadata.xml | 11 ++++ net-libs/picotls/picotls-0_pre20220721.ebuild | 59 ++++++++++++++++++++++ net-libs/picotls/picotls-9999.ebuild | 59 ++++++++++++++++++++++ 5 files changed, 153 insertions(+) diff --git a/net-libs/picotls/Manifest b/net-libs/picotls/Manifest new file mode 100644 index 000000000..ff48e25db --- /dev/null +++ b/net-libs/picotls/Manifest @@ -0,0 +1,2 @@ +DIST picotls-0_pre20220721-test.tar.gz 1564 BLAKE2B 1241a705efbdfdc470f5673ead6abb19c61f09524591c1be582dc03a9cc2e20f71a864a1af9bd0f8c0466ee8c731f8c7c5fdada3ef39fb7efb26e54249a47f69 SHA512 96e4c937b22da29ff60ea693fed73209e43dc05c399b6e819279da60d481fe75d4064b854b2a13b67991f085a434d6e812f0bee65546282b0fc81d11a0a38fa5 +DIST picotls-0_pre20220721.tar.gz 589468 BLAKE2B f3c11599b8f943b58b41a040904091094a694ba402703e2e831ac5a7d2f7609ec842462df2de6ddafd0acf62ada63e4aa88eb51a6e4260783dc41885d607e3b0 SHA512 af476ae078d6122f5bcac75e921229808b850c2d0706b09ac7d9bea50998a61b20243c1b547f151a42a0ccabdca04aa00b6c918275cc2f8fcf15a3710d5c805c diff --git a/net-libs/picotls/files/picotls-0_pre20220721-disable-e2e.patch b/net-libs/picotls/files/picotls-0_pre20220721-disable-e2e.patch new file mode 100644 index 000000000..b8f6744f1 --- /dev/null +++ b/net-libs/picotls/files/picotls-0_pre20220721-disable-e2e.patch @@ -0,0 +1,22 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a309d7b..3160e89 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -31,7 +31,7 @@ IF (WITH_FUSION) + MESSAGE(STATUS "Enabling 'fusion' AES-GCM engine") + ENDIF () + +-SET(CMAKE_C_FLAGS "-std=c99 -Wall -O2 -g ${CC_WARNING_FLAGS} ${CMAKE_C_FLAGS}") ++SET(CMAKE_C_FLAGS "-std=c99 -Wall -g ${CC_WARNING_FLAGS} ${CMAKE_C_FLAGS}") + INCLUDE_DIRECTORIES( + deps/cifra/src/ext + deps/cifra/src +@@ -178,7 +178,7 @@ IF (NOT WITH_FUSION) + SET_TARGET_PROPERTIES(ptlsbench PROPERTIES EXCLUDE_FROM_ALL 1) + ENDIF () + +-ADD_CUSTOM_TARGET(check env BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} prove --exec '' -v ${CMAKE_CURRENT_BINARY_DIR}/*.t t/*.t WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${TEST_EXES} cli) ++ADD_CUSTOM_TARGET(check env BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} prove --exec '' -v ${CMAKE_CURRENT_BINARY_DIR}/*.t WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${TEST_EXES} cli) + + IF (CMAKE_SYSTEM_NAME STREQUAL "Linux") + SET(CMAKE_C_FLAGS "-D_GNU_SOURCE -pthread ${CMAKE_C_FLAGS}") diff --git a/net-libs/picotls/metadata.xml b/net-libs/picotls/metadata.xml new file mode 100644 index 000000000..5737fc3ce --- /dev/null +++ b/net-libs/picotls/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>gen...@aisha.cc</email> + <name>Aisha Tammy</name> + </maintainer> + <use> + <flag name="fusion">"fusion" AES-GCM engine, optimized for QUIC and other protocols that use short AEAD blocks</flag> + </use> +</pkgmetadata> diff --git a/net-libs/picotls/picotls-0_pre20220721.ebuild b/net-libs/picotls/picotls-0_pre20220721.ebuild new file mode 100644 index 000000000..93feeeea7 --- /dev/null +++ b/net-libs/picotls/picotls-0_pre20220721.ebuild @@ -0,0 +1,59 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="TLS 1.3 implementation in C" +HOMEPAGE="https://github.com/h2o/picotls" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/h2o/picotls" +else + PTLS_COMMIT="7970614ad049d194fe1691bdf0cc66c6930a3a2f" + PTLS_TEST_COMMIT="f390562fd4d6919807441721ec05b08f6d8c8d9c" + SRC_URI=" + https://github.com/h2o/picotls/archive/${PTLS_COMMIT}.tar.gz -> ${P}.tar.gz + https://github.com/h2o/picotest/archive/${PTLS_TEST_COMMIT}.tar.gz -> ${P}-test.tar.gz + " + KEYWORDS="~amd64" + S="${WORKDIR}/picotls-${PTLS_COMMIT}" +fi + +LICENSE="MIT" +SLOT="0" + +PTLS_FLAGS_X86_RAW=( avx2 aes pclmul ) +PTLS_FLAGS=( "${PTLS_FLAGS_X86_RAW[@]/#/cpu_flags_x86_}" ) +IUSE="fusion test ${PTLS_FLAGS[@]}" +REQUIRED_USE="fusion? ( ${PTLS_FLAGS[@]} )" +RESTRICT="!test? ( test )" + +DEPEND=" + app-arch/brotli +" +RDEPEND="${DEPEND}" + +PATCHES=( "${FILESDIR}/${PN}-0_pre20220721-disable-e2e.patch" ) + +src_prepare() { + if [[ -d "${WORKDIR}/picotest-${PTLS_TEST_COMMIT}" ]] ; then + rmdir "${S}/deps/picotest" || die + mv "${WORKDIR}/picotest-${PTLS_TEST_COMMIT}/" "${S}/deps/picotest" || die + fi + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DWITH_DTRACE=OFF + -DWITH_FUSION=$(usex fusion ON OFF) + ) + cmake_src_configure +} + +src_test() { + cmake_build check +} diff --git a/net-libs/picotls/picotls-9999.ebuild b/net-libs/picotls/picotls-9999.ebuild new file mode 100644 index 000000000..93feeeea7 --- /dev/null +++ b/net-libs/picotls/picotls-9999.ebuild @@ -0,0 +1,59 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="TLS 1.3 implementation in C" +HOMEPAGE="https://github.com/h2o/picotls" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/h2o/picotls" +else + PTLS_COMMIT="7970614ad049d194fe1691bdf0cc66c6930a3a2f" + PTLS_TEST_COMMIT="f390562fd4d6919807441721ec05b08f6d8c8d9c" + SRC_URI=" + https://github.com/h2o/picotls/archive/${PTLS_COMMIT}.tar.gz -> ${P}.tar.gz + https://github.com/h2o/picotest/archive/${PTLS_TEST_COMMIT}.tar.gz -> ${P}-test.tar.gz + " + KEYWORDS="~amd64" + S="${WORKDIR}/picotls-${PTLS_COMMIT}" +fi + +LICENSE="MIT" +SLOT="0" + +PTLS_FLAGS_X86_RAW=( avx2 aes pclmul ) +PTLS_FLAGS=( "${PTLS_FLAGS_X86_RAW[@]/#/cpu_flags_x86_}" ) +IUSE="fusion test ${PTLS_FLAGS[@]}" +REQUIRED_USE="fusion? ( ${PTLS_FLAGS[@]} )" +RESTRICT="!test? ( test )" + +DEPEND=" + app-arch/brotli +" +RDEPEND="${DEPEND}" + +PATCHES=( "${FILESDIR}/${PN}-0_pre20220721-disable-e2e.patch" ) + +src_prepare() { + if [[ -d "${WORKDIR}/picotest-${PTLS_TEST_COMMIT}" ]] ; then + rmdir "${S}/deps/picotest" || die + mv "${WORKDIR}/picotest-${PTLS_TEST_COMMIT}/" "${S}/deps/picotest" || die + fi + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DWITH_DTRACE=OFF + -DWITH_FUSION=$(usex fusion ON OFF) + ) + cmake_src_configure +} + +src_test() { + cmake_build check +}