Browse Source

h2o: add package

H2O is a new generation HTTP server that provides quicker response to users
  with less CPU utilization when compared to older generation of web servers.
  Designed from ground-up, the server takes full advantage of HTTP/2 features
  including prioritized content serving and server push, promising outstanding
  experience to the visitors of your web site.

Signed-off-by: James Taylor <james@jtaylor.id.au>
lilik-openwrt-22.03
James Taylor 5 years ago
parent
commit
c9fa74bf43
4 changed files with 102 additions and 0 deletions
  1. +54
    -0
      libs/h2o/Makefile
  2. +22
    -0
      libs/h2o/patches/100-socket_disable_npn.patch
  3. +9
    -0
      libs/h2o/patches/200-libh2o-evloop_wslay-link.patch
  4. +17
    -0
      libs/h2o/patches/300-picotls-chacha-detect.patch

+ 54
- 0
libs/h2o/Makefile View File

@ -0,0 +1,54 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=h2o
PKG_VERSION:=2.2.6
PKG_RELEASE:=1
PKG_SOURCE_URL:=https://codeload.github.com/h2o/h2o/tar.gz/v${PKG_VERSION}?
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_HASH:=f8cbc1b530d85ff098f6efc2c3fdbc5e29baffb30614caac59d5c710f7bda201
PKG_MAINTAINER:=James Taylor <james@jtaylor.id.au
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
PKG_BUILD_DEPENDS:=ruby/host
PKG_BUILD_PARALLEL:=1
CMAKE_OPTIONS:= \
-DBUILD_SHARED_LIBS=ON \
-DWITH_MRUBY=OFF
CMAKE_INSTALL:=1
define Package/libh2o-evloop
SECTION:=libs
CATEGORY:=Libraries
TITLE:=H2O Library compiled with its own event loop
URL:=https://h2o.examp1e.net/
DEPENDS:=+libwslay +libopenssl +zlib +libyaml +ruby
endef
define Package/libh2o
SECTION:=libs
CATEGORY:=Libraries
TITLE:=H2O Library compiled with libuv
URL:=https://h2o.examp1e.net/
DEPENDS:=+libuv +libwslay +libopenssl +zlib +libyaml +ruby
endef
define Package/libh2o-evloop/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libh2o-evloop.so* $(1)/usr/lib/
endef
define Package/libh2o/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libh2o.so* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,libh2o-evloop))
$(eval $(call BuildPackage,libh2o))

+ 22
- 0
libs/h2o/patches/100-socket_disable_npn.patch View File

@ -0,0 +1,22 @@
--- a/include/h2o/socket.h
+++ b/include/h2o/socket.h
@@ -29,6 +29,7 @@
#include <stdint.h>
#include <sys/socket.h>
#include <openssl/ssl.h>
+#include <openssl/opensslconf.h>
#include "h2o/cache.h"
#include "h2o/memory.h"
#include "h2o/openssl_backport.h"
@@ -45,7 +44,11 @@
#if OPENSSL_VERSION_NUMBER >= 0x10002000L
#define H2O_USE_ALPN 1
+#ifndef OPENSSL_NO_NEXTPROTONEG
#define H2O_USE_NPN 1
+#else
+#define H2O_USE_NPN 0
+#endif
#elif OPENSSL_VERSION_NUMBER >= 0x10001000L
#define H2O_USE_ALPN 0
#define H2O_USE_NPN 1

+ 9
- 0
libs/h2o/patches/200-libh2o-evloop_wslay-link.patch View File

@ -0,0 +1,9 @@
--- a/libh2o-evloop.pc.in
+++ b/libh2o-evloop.pc.in
@@ -7,5 +7,5 @@
Description: An optimized HTTP/1.x & HTTP/2 library
URL: https://h2o.examp1e.net/
Version: @LIBRARY_VERSION_MAJOR@.@LIBRARY_VERSION_MINOR@.@LIBRARY_VERSION_PATCH@
-Libs: -L${libdir} -lh2o-evloop
+Libs: -L${libdir} -lh2o-evloop -lwslay
Cflags: -I${includedir}

+ 17
- 0
libs/h2o/patches/300-picotls-chacha-detect.patch View File

@ -0,0 +1,17 @@
--- a/deps/picotls/include/picotls/openssl.h
+++ b/deps/picotls/include/picotls/openssl.h
@@ -26,11 +26,14 @@
#include <openssl/evp.h>
#include <openssl/hmac.h>
#include <openssl/x509.h>
+#include <openssl/opensslconf.h>
#include "../picotls.h"
#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
+#if !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305)
#define PTLS_OPENSSL_HAVE_CHACHA20_POLY1305
#endif
+#endif
extern ptls_key_exchange_algorithm_t ptls_openssl_secp256r1;
extern ptls_key_exchange_algorithm_t *ptls_openssl_key_exchanges[];

Loading…
Cancel
Save