mirror of
https://github.com/gentoo-mirror/guru.git
synced 2025-04-20 00:08:58 -04:00
dev-libs/lsquic: new package, add 3.2.0
Signed-off-by: Okamura Kazuya <gentoo-guru@danceylove.net>
This commit is contained in:
parent
689c3c9b54
commit
56e6e1b83e
57
dev-libs/lsquic/files/lsquic-disable-build-deps-libs.patch
Normal file
57
dev-libs/lsquic/files/lsquic-disable-build-deps-libs.patch
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 984f38f..4c7b181 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -268,7 +268,7 @@ ELSE()
|
||||||
|
MESSAGE(STATUS "zlib not found")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
-SET(LIBS lsquic ${BORINGSSL_LIB_ssl} ${BORINGSSL_LIB_crypto} ${ZLIB_LIB} ${LIBS})
|
||||||
|
+SET(LIBS lsquic ls-hpack ls-qpack ${BORINGSSL_LIB_ssl} ${BORINGSSL_LIB_crypto} ${ZLIB_LIB} ${LIBS})
|
||||||
|
|
||||||
|
IF (LSQUIC_BIN)
|
||||||
|
FIND_PATH(EVENT_INCLUDE_DIR NAMES event2/event.h)
|
||||||
|
diff --git a/src/liblsquic/CMakeLists.txt b/src/liblsquic/CMakeLists.txt
|
||||||
|
index fe6307e..be9a432 100644
|
||||||
|
--- a/src/liblsquic/CMakeLists.txt
|
||||||
|
+++ b/src/liblsquic/CMakeLists.txt
|
||||||
|
@@ -1,6 +1,5 @@
|
||||||
|
# Copyright (c) 2017 - 2022 LiteSpeed Technologies Inc. See LICENSE.
|
||||||
|
SET(lsquic_STAT_SRCS
|
||||||
|
- ls-qpack/lsqpack.c
|
||||||
|
lsquic_adaptive_cc.c
|
||||||
|
lsquic_alarmset.c
|
||||||
|
lsquic_arr.c
|
||||||
|
@@ -91,18 +90,13 @@ IF(NOT MSVC)
|
||||||
|
IF (HAS_NO_IMPLICIT_FALLTHROUGH)
|
||||||
|
SET(QPACK_FLAGS "${QPACK_FLAGS} -Wno-implicit-fallthrough")
|
||||||
|
ENDIF()
|
||||||
|
-set_source_files_properties(ls-qpack/lsqpack.c PROPERTIES COMPILE_FLAGS ${QPACK_FLAGS})
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
-include_directories(ls-qpack)
|
||||||
|
-
|
||||||
|
IF(PROJECT_NAME STREQUAL "openlitespeed")
|
||||||
|
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/spdy)
|
||||||
|
ELSE()
|
||||||
|
- INCLUDE_DIRECTORIES(../lshpack)
|
||||||
|
SET(lsquic_STAT_SRCS ${lsquic_STAT_SRCS}
|
||||||
|
lsquic_xxhash.c
|
||||||
|
- ../lshpack/lshpack.c
|
||||||
|
)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
|
||||||
|
index fab22d3..06c39b3 100644
|
||||||
|
--- a/tests/CMakeLists.txt
|
||||||
|
+++ b/tests/CMakeLists.txt
|
||||||
|
@@ -17,9 +17,6 @@ ELSE()
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
-include_directories(../src/liblsquic/ls-qpack)
|
||||||
|
-INCLUDE_DIRECTORIES(../src/lshpack)
|
||||||
|
-
|
||||||
|
SET(TESTS
|
||||||
|
ack
|
||||||
|
ackgen_gquic_be
|
152
dev-libs/lsquic/files/lsquic-link-boringssl-static-libs.patch
Normal file
152
dev-libs/lsquic/files/lsquic-link-boringssl-static-libs.patch
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 4c7b181..723a075 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -152,77 +152,6 @@ ELSE()
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
-IF (NOT DEFINED BORINGSSL_INCLUDE AND DEFINED BORINGSSL_DIR)
|
||||||
|
- FIND_PATH(BORINGSSL_INCLUDE NAMES openssl/ssl.h
|
||||||
|
- PATHS ${BORINGSSL_DIR}/include
|
||||||
|
- NO_DEFAULT_PATH)
|
||||||
|
-ENDIF()
|
||||||
|
-# This must be done before adding other include directories to take
|
||||||
|
-# precedence over header files from other SSL installs.
|
||||||
|
-
|
||||||
|
-IF (BORINGSSL_INCLUDE)
|
||||||
|
- MESSAGE(STATUS "BoringSSL include directory ${BORINGSSL_INCLUDE}")
|
||||||
|
- INCLUDE_DIRECTORIES(${BORINGSSL_INCLUDE})
|
||||||
|
-ELSE()
|
||||||
|
- MESSAGE(FATAL_ERROR "BoringSSL headers not found")
|
||||||
|
-ENDIF()
|
||||||
|
-
|
||||||
|
-IF (NOT DEFINED BORINGSSL_LIB AND DEFINED BORINGSSL_DIR)
|
||||||
|
- FOREACH(LIB_NAME ssl crypto)
|
||||||
|
- IF (CMAKE_SYSTEM_NAME STREQUAL Windows)
|
||||||
|
- FIND_LIBRARY(BORINGSSL_LIB_${LIB_NAME}
|
||||||
|
- NAMES ${LIB_NAME}
|
||||||
|
- PATHS ${BORINGSSL_DIR}/${LIB_NAME}
|
||||||
|
- PATH_SUFFIXES Debug Release MinSizeRel RelWithDebInfo
|
||||||
|
- NO_DEFAULT_PATH)
|
||||||
|
- ELSE()
|
||||||
|
- FIND_LIBRARY(BORINGSSL_LIB_${LIB_NAME}
|
||||||
|
- NAMES lib${LIB_NAME}${LIB_SUFFIX}
|
||||||
|
- PATHS ${BORINGSSL_DIR}/${LIB_NAME}
|
||||||
|
- NO_DEFAULT_PATH)
|
||||||
|
- ENDIF()
|
||||||
|
- IF(BORINGSSL_LIB_${LIB_NAME})
|
||||||
|
- MESSAGE(STATUS "Found ${LIB_NAME} library: ${BORINGSSL_LIB_${LIB_NAME}}")
|
||||||
|
- ELSE()
|
||||||
|
- MESSAGE(STATUS "${LIB_NAME} library not found")
|
||||||
|
- ENDIF()
|
||||||
|
- ENDFOREACH()
|
||||||
|
-
|
||||||
|
-ELSE()
|
||||||
|
-
|
||||||
|
-
|
||||||
|
- FOREACH(LIB_NAME ssl crypto)
|
||||||
|
- # If BORINGSSL_LIB is defined, try find each lib. Otherwise, user should define BORINGSSL_LIB_ssl,
|
||||||
|
- # BORINGSSL_LIB_crypto and so on explicitly. For example, including boringssl and lsquic both via
|
||||||
|
- # add_subdirectory:
|
||||||
|
- # add_subdirectory(third_party/boringssl)
|
||||||
|
- # set(BORINGSSL_LIB_ssl ssl)
|
||||||
|
- # set(BORINGSSL_LIB_crypto crypto)
|
||||||
|
- # add_subdirectory(third_party/lsquic)
|
||||||
|
- IF (DEFINED BORINGSSL_LIB)
|
||||||
|
- IF (CMAKE_SYSTEM_NAME STREQUAL Windows)
|
||||||
|
- FIND_LIBRARY(BORINGSSL_LIB_${LIB_NAME}
|
||||||
|
- NAMES ${LIB_NAME}
|
||||||
|
- PATHS ${BORINGSSL_LIB}
|
||||||
|
- PATH_SUFFIXES Debug Release MinSizeRel RelWithDebInfo
|
||||||
|
- NO_DEFAULT_PATH)
|
||||||
|
- ELSE()
|
||||||
|
- FIND_LIBRARY(BORINGSSL_LIB_${LIB_NAME}
|
||||||
|
- NAMES lib${LIB_NAME}${LIB_SUFFIX}
|
||||||
|
- PATHS ${BORINGSSL_LIB}
|
||||||
|
- PATH_SUFFIXES ${LIB_NAME}
|
||||||
|
- NO_DEFAULT_PATH)
|
||||||
|
- ENDIF()
|
||||||
|
- ENDIF()
|
||||||
|
- IF(BORINGSSL_LIB_${LIB_NAME})
|
||||||
|
- MESSAGE(STATUS "Found ${LIB_NAME} library: ${BORINGSSL_LIB_${LIB_NAME}}")
|
||||||
|
- ELSE()
|
||||||
|
- MESSAGE(FATAL_ERROR "BORINGSSL_LIB_${LIB_NAME} library not found")
|
||||||
|
- ENDIF()
|
||||||
|
- ENDFOREACH()
|
||||||
|
-
|
||||||
|
-ENDIF()
|
||||||
|
-
|
||||||
|
SET(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
|
INCLUDE_DIRECTORIES(include)
|
||||||
|
IF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||||
|
@@ -268,7 +197,7 @@ ELSE()
|
||||||
|
MESSAGE(STATUS "zlib not found")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
-SET(LIBS lsquic ls-hpack ls-qpack ${BORINGSSL_LIB_ssl} ${BORINGSSL_LIB_crypto} ${ZLIB_LIB} ${LIBS})
|
||||||
|
+SET(LIBS lsquic ls-hpack ls-qpack ssl crypto ${ZLIB_LIB} ${LIBS})
|
||||||
|
|
||||||
|
IF (LSQUIC_BIN)
|
||||||
|
FIND_PATH(EVENT_INCLUDE_DIR NAMES event2/event.h)
|
||||||
|
diff --git a/src/liblsquic/CMakeLists.txt b/src/liblsquic/CMakeLists.txt
|
||||||
|
index be9a432..0bc806d 100644
|
||||||
|
--- a/src/liblsquic/CMakeLists.txt
|
||||||
|
+++ b/src/liblsquic/CMakeLists.txt
|
||||||
|
@@ -1,4 +1,7 @@
|
||||||
|
# Copyright (c) 2017 - 2022 LiteSpeed Technologies Inc. See LICENSE.
|
||||||
|
+
|
||||||
|
+add_subdirectory(boringssl)
|
||||||
|
+
|
||||||
|
SET(lsquic_STAT_SRCS
|
||||||
|
lsquic_adaptive_cc.c
|
||||||
|
lsquic_alarmset.c
|
||||||
|
@@ -83,6 +86,8 @@ SET(lsquic_STAT_SRCS
|
||||||
|
lsquic_version.c
|
||||||
|
)
|
||||||
|
|
||||||
|
+include_directories(boringssl/include)
|
||||||
|
+
|
||||||
|
IF(NOT MSVC)
|
||||||
|
SET(QPACK_FLAGS "-Wno-uninitialized")
|
||||||
|
INCLUDE(CheckCCompilerFlag)
|
||||||
|
@@ -119,7 +124,7 @@ endif()
|
||||||
|
|
||||||
|
IF(LSQUIC_SHARED_LIB)
|
||||||
|
add_library(lsquic SHARED ${lsquic_STAT_SRCS})
|
||||||
|
- TARGET_LINK_LIBRARIES(lsquic PRIVATE ${BORINGSSL_LIB_ssl} ${BORINGSSL_LIB_crypto} ${ZLIB_LIB})
|
||||||
|
+ TARGET_LINK_LIBRARIES(lsquic PRIVATE ssl crypto ${ZLIB_LIB})
|
||||||
|
IF(MSVC)
|
||||||
|
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DLSQUIC_EXPORTS")
|
||||||
|
TARGET_LINK_LIBRARIES(lsquic PRIVATE ws2_32.lib)
|
||||||
|
diff --git a/src/liblsquic/boringssl/CMakeLists.txt b/src/liblsquic/boringssl/CMakeLists.txt
|
||||||
|
index aac5f0d..37cbfa3 100644
|
||||||
|
--- a/src/liblsquic/boringssl/CMakeLists.txt
|
||||||
|
+++ b/src/liblsquic/boringssl/CMakeLists.txt
|
||||||
|
@@ -3,6 +3,8 @@ cmake_minimum_required(VERSION 3.10)
|
||||||
|
# Defer enabling C and CXX languages.
|
||||||
|
project(BoringSSL NONE)
|
||||||
|
|
||||||
|
+set(BUILD_SHARED_LIBS OFF)
|
||||||
|
+
|
||||||
|
# Don't install BoringSSL to system directories by default; it has no stable
|
||||||
|
# ABI. Instead, default to an "install" directory under the source.
|
||||||
|
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||||
|
@@ -36,7 +38,7 @@ if(CMAKE_VERSION VERSION_LESS "3.14")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Wrap the CMake install function so we can disable it.
|
||||||
|
-set(INSTALL_ENABLED 1)
|
||||||
|
+set(INSTALL_ENABLED 0)
|
||||||
|
function(install_if_enabled)
|
||||||
|
if(INSTALL_ENABLED)
|
||||||
|
install(${ARGV})
|
||||||
|
@@ -139,7 +141,7 @@ set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||||
|
if(CMAKE_COMPILER_IS_GNUCXX OR CLANG)
|
||||||
|
# Note clang-cl is odd and sets both CLANG and MSVC. We base our configuration
|
||||||
|
# primarily on our normal Clang one.
|
||||||
|
- set(C_CXX_FLAGS "-Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings -Wvla -Wshadow -Wtype-limits")
|
||||||
|
+ set(C_CXX_FLAGS "-Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings -Wvla -Wshadow -Wtype-limits")
|
||||||
|
if(MSVC)
|
||||||
|
# clang-cl sets different default warnings than clang. It also treats -Wall
|
||||||
|
# as -Weverything, to match MSVC. Instead -W3 is the alias for -Wall.
|
54
dev-libs/lsquic/lsquic-3.2.0.ebuild
Normal file
54
dev-libs/lsquic/lsquic-3.2.0.ebuild
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit cmake git-r3
|
||||||
|
|
||||||
|
DESCRIPTION="LiteSpeed QUIC (LSQUIC) Library"
|
||||||
|
HOMEPAGE="https://github.com/litespeedtech/lsquic/"
|
||||||
|
|
||||||
|
# LSQUIC
|
||||||
|
EGIT_LSQUIC_REPO_URI="https://github.com/litespeedtech/lsquic/"
|
||||||
|
EGIT_LSQUIC_COMMIT="3bbf683f25ab84826951350c57ae226c88c54422"
|
||||||
|
EGIT_LSQUIC_CHECKOUT_DIR="${WORKDIR}/${P}/"
|
||||||
|
|
||||||
|
# BoringSSL
|
||||||
|
EGIT_BORINGSSL_REPO_URI="https://github.com/google/boringssl"
|
||||||
|
EGIT_BORINGSSL_BRANCH="fips-20230428"
|
||||||
|
EGIT_BORINGSSL_CHECKOUT_DIR="${WORKDIR}/${P}/src/liblsquic/boringssl"
|
||||||
|
|
||||||
|
EGIT_SUBMODULES=()
|
||||||
|
|
||||||
|
LICENSE="MIT"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64"
|
||||||
|
IUSE="bin static-libs test"
|
||||||
|
|
||||||
|
DEPEND="
|
||||||
|
dev-libs/ls-qpack:=[static-libs=]
|
||||||
|
dev-libs/ls-hpack:=[static-libs=]
|
||||||
|
"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/${PN}-disable-build-deps-libs.patch
|
||||||
|
"${FILESDIR}"/${PN}-link-boringssl-static-libs.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
# Checkout LSQUIC Sources
|
||||||
|
git-r3_fetch ${EGIT_LSQUIC_REPO_URI} ${EGIT_LSQUIC_COMMIT}
|
||||||
|
git-r3_checkout ${EGIT_LSQUIC_REPO_URI} ${EGIT_LSQUIC_CHECKOUT_DIR}
|
||||||
|
# Checkout BoringSSL Sources
|
||||||
|
git-r3_fetch ${EGIT_BORINGSSL_REPO_URI} ${EGIT_BORINGSSL_BRANCH}
|
||||||
|
git-r3_checkout ${EGIT_BORINGSSL_REPO_URI} ${EGIT_BORINGSSL_CHECKOUT_DIR}
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
local mycmakeargs=(
|
||||||
|
-DLSQUIC_SHARED_LIB=$(usex !static-libs)
|
||||||
|
-DLSQUIC_TESTS=$(usex test)
|
||||||
|
-DLSQUIC_BIN=$(usex bin)
|
||||||
|
)
|
||||||
|
cmake_src_configure
|
||||||
|
}
|
11
dev-libs/lsquic/metadata.xml
Normal file
11
dev-libs/lsquic/metadata.xml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<maintainer type="person">
|
||||||
|
<email>trakrailysurely@danceylove.net</email>
|
||||||
|
<name>Okamura Kazuya</name>
|
||||||
|
</maintainer>
|
||||||
|
<upstream>
|
||||||
|
<remote-id type="github">litespeedtech/lsquic</remote-id>
|
||||||
|
</upstream>
|
||||||
|
</pkgmetadata>
|
Loading…
x
Reference in New Issue
Block a user