Skip to content

Commit

Permalink
Added nghttp2 as a vendored dependency we build as part of the hub pa…
Browse files Browse the repository at this point in the history
…ckage for apache http2 support

Ticket: ENT-11440
Changelog: title
  • Loading branch information
craigcomstock committed Aug 13, 2024
1 parent 7bcaba2 commit 1ba9944
Show file tree
Hide file tree
Showing 13 changed files with 152 additions and 1 deletion.
2 changes: 1 addition & 1 deletion build-scripts/compile-options
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ case "$ROLE" in
# HUB-ONLY dependencies
hub)
var_append DEPS "libcurl-hub"
var_append DEPS "libexpat apr apr-util apache git rsync"
var_append DEPS "nghttp2 libexpat apr apr-util apache git rsync"
var_append DEPS "postgresql php"
;;
# AGENT-ONLY dependencies
Expand Down
1 change: 1 addition & 0 deletions deps-packaging/apache/cfbuild-apache.spec
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ CPPFLAGS=-I%{buildprefix}/include
--prefix=%{prefix}/httpd \
--enable-so \
--enable-mods-shared="all ssl ldap authnz_ldap" \
--enable-http2 \
--with-z=%{prefix} \
--with-ssl=%{prefix} \
--with-ldap=%{prefix} \
Expand Down
8 changes: 8 additions & 0 deletions deps-packaging/apache/httpd.conf
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
# Required to log into mission portal
LoadModule authz_core_module modules/mod_authz_core.so

# Enable http2
LoadModule http2_module modules/mod_http2.so

# TRACE can be useful for debugging, but can be abused to perform Cross-Site
# Tracing (XST) attacheks in order to obtain access to user cooking via
Expand Down Expand Up @@ -178,6 +180,12 @@ LogLevel warn
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin


# Enable http2. As described in https://httpd.apache.org/docs/2.4/howto/http2.html
# there is no need to do an IfModule check here as the Protocols are free-form
# and not validated in any way.
Protocols h2 h2c http/1.1

<VirtualHost _default_:443>
DocumentRoot "/var/cfengine/httpd/htdocs/public"
Alias "/api" "/var/cfengine/httpd/htdocs/api"
Expand Down
67 changes: 67 additions & 0 deletions deps-packaging/nghttp2/cfbuild-nghttp2.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
%define nghttp2_version 1.62.1

Summary: CFEngine Build Automation -- nghttp2
Name: cfbuild-nghttp2
Version: %{version}
Release: 1
Source0: nghttp2-%{nghttp2_version}.tar.xz
License: MIT
Group: Other
Url: nghttp2.org
BuildRoot: %{_topdir}/BUILD/%{name}-%{version}-%{release}-buildroot

AutoReqProv: no

%define prefix %{buildprefix}
%prep
mkdir -p %{_builddir}
%setup -q -n nghttp2-%{nghttp2_version}

./configure --prefix=%{prefix}

%build

make

%install

rm -rf ${RPM_BUILD_ROOT}

make install DESTDIR=${RPM_BUILD_ROOT}

# Remove unused files
rm -rf %prefix/lib/libnghttp2.*a
rm -rf %prefix/share/doc/nghttp2/README.rst
rm -rf %prefix/share/man/man1/h2load.1
rm -rf %prefix/share/man/man1/nghttp*
rm -rf %prefix/share/nghttp2/fetch-oscp-response

%clean

rm -rf $RPM_BUILD_ROOT

%package devel
Summary: CFEngine Build Automation -- nghttp2 -- development files
Group: Other
AutoReqProv: no

%description
CFEngine Build Automation -- nghttp2

%description devel
CFEngine Build Automation -- nghttp2 -- development files

%files
%defattr(-,root,root)

%dir %prefix/lib
%prefix/lib/*.so*

%files devel
%defattr(-,root,root)

%prefix/include
%dir %prefix/lib
%prefix/lib/pkgconfig

%changelog
2 changes: 2 additions & 0 deletions deps-packaging/nghttp2/debian/cfbuild-nghttp2-devel.install
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/var/cfengine/include
/var/cfengine/lib/pkgconfig
1 change: 1 addition & 0 deletions deps-packaging/nghttp2/debian/cfbuild-nghttp2.install
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/var/cfengine/lib/*.so*
1 change: 1 addition & 0 deletions deps-packaging/nghttp2/debian/compat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
10
18 changes: 18 additions & 0 deletions deps-packaging/nghttp2/debian/control
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
Source: cfbuild-nghttp2
Section: libs
Priority: optional
Maintainer: CFEngine Packages <[email protected]>
Build-Depends: debhelper
Standard-Version: 3.8.4

Package: cfbuild-nghttp2
Section: libs
Architecture: any
Description: CFEngine Build Automation -- nghttp2
CFEngine Build Automation -- nghttp2

Package: cfbuild-nghttp2-devel
Section: libdevel
Architecture: any
Desciption: CFEngine Build Automation -- cfbuild-nghttp2-devel
CFEngine Build Automation -- cfbuild-nghttp2-devel
Empty file.
50 changes: 50 additions & 0 deletions deps-packaging/nghttp2/debian/rules
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#!/usr/bin/make -f
PREFIX=$(BUILDPREFIX)

clean:
dh_testdir
dh_testroot

dh_clean

build: build-stamp
build-stamp:
dh_testdir

./configure --prefix=$(PREFIX)

make

touch build-stamp

install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs

$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp

rm -rf $(CURDIR)/debian/tmp$(PREFIX)/lib/libnghttp2.*a
rm -rf $(CURDIR)/debian/tmp$(PREFIX)/share/doc/nghttp2/README.rst
rm -rf $(CURDIR)/debian/tmp$(PREFIX)/share/man/man1/h2load.1
rm -rf $(CURDIR)/debian/tmp$(PREFIX)/share/man/man1/nghttp*
rm -rf $(CURDIR)/debian/tmp$(PREFIX)/share/nghttp2

binary-indep: build install

binary-arch: build install
dh_testdir
dh_testroot
dh_install --sourcedir=debian/tmp
dh_link
dh_strip
dh_compress
dh_fixperms
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure
1 change: 1 addition & 0 deletions deps-packaging/nghttp2/distfiles
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2345d4dc136fda28ce243e0bb21f2e7e8ef6293d62c799abbf6f633a6887af72 nghttp2-1.62.1.tar.xz
1 change: 1 addition & 0 deletions deps-packaging/nghttp2/source
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
https://github.com/nghttp2/nghttp2/releases/download/v1.62.1/
1 change: 1 addition & 0 deletions deps-packaging/release-monitoring.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"libxml2":"1783",
"libyaml":"13522",
"lmdb":"6974",
"nghttp2":"8651",
"openldap":"2551",
"openssl":"2566",
"pcre2":"5832",
Expand Down

0 comments on commit 1ba9944

Please sign in to comment.