Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ENT-11440: Added nghttp2 as a vendored dependency we build as part of the hub package for apache http2 support #1489

Closed
wants to merge 11 commits into from
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
2 changes: 1 addition & 1 deletion deps-packaging/apache/cfbuild-apache.spec
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,13 @@ 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} \
--with-apr=%{prefix} \
--with-apr-util=%{prefix} \
--with-pcre=%{prefix}/bin/pcre2-config \
--with-mpm=prefork \
CPPFLAGS="$CPPFLAGS"

%build
Expand Down
1 change: 0 additions & 1 deletion deps-packaging/apache/debian/rules
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ build-stamp:
--with-apr=$(PREFIX) \
--with-apr-util=$(PREFIX) \
--with-pcre=$(PREFIX)/bin/pcre2-config \
--with-mpm=prefork \
CPPFLAGS="$(CPPFLAGS)"
make

Expand Down
15 changes: 10 additions & 5 deletions deps-packaging/apache/httpd.conf
Original file line number Diff line number Diff line change
Expand Up @@ -218,11 +218,16 @@ LogLevel warn

</IfModule>


LoadModule php_module modules/libphp.so
AddHandler php-script .php
AddType application/x-httpd-php-source php

# Use mod_http2
LoadModule http2_module modules/mod_http2.so
# Prefer http2 protocol
Protocols h2 h2c http/1.1

# Setup php to be handled by php-fpm. Required for use of mod_http2 due to threading issues in php.
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/cfengine/httpd/htdocs/public/$1
DirectoryIndex /index.php index.php

<Directory "/var/cfengine/httpd/htdocs/public">

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 ${RPM_BUILD_ROOT}%{prefix}/lib/libnghttp2.*a
rm -rf ${RPM_BUILD_ROOT}%{prefix}/share/doc/nghttp2/README.rst
rm -rf ${RPM_BUILD_ROOT}%{prefix}/share/man/man1/h2load.1
rm -rf ${RPM_BUILD_ROOT}%{prefix}/share/man/man1/nghttp*
rm -rf ${RPM_BUILD_ROOT}%{prefix}/share/nghttp2/fetch-ocsp-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/
13 changes: 8 additions & 5 deletions deps-packaging/php/cfbuild-php.spec
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ Version: %{version}
Release: 1
Source0: php-%{php_version}.tar.gz
Source1: php.ini
Source2: php-fpm.conf
Source3: www.conf
License: MIT
Group: Other
Url: http://example.com/
Expand Down Expand Up @@ -45,10 +47,7 @@ LDFLAGS=""
--enable-mbstring \
--enable-sockets \
--disable-mbregex \
--without-fpm-user \
--without-fpm-group \
--without-fpm-systemd \
--without-fpm-acl \
--enable-fpm \
--without-layout \
--without-sqlite3 \
--without-bz2 \
Expand Down Expand Up @@ -114,6 +113,9 @@ make
rm -rf ${RPM_BUILD_ROOT}
mkdir -p ${RPM_BUILD_ROOT}%{prefix}/httpd/conf
cp %{prefix}/httpd/conf/httpd.conf ${RPM_BUILD_ROOT}%{prefix}/httpd/conf
mkdir -p ${RPM_BUILD_ROOT}%{prefix}/httpd/php/etc/php-fpm.d
cp ${RPM_BUILD_ROOT}/../../SOURCES/php-fpm.conf ${RPM_BUILD_ROOT}%{prefix}/httpd/php/etc
cp ${RPM_BUILD_ROOT}/../../SOURCES/www.conf ${RPM_BUILD_ROOT}%{prefix}/httpd/php/etc/php-fpm.d

INSTALL_ROOT=${RPM_BUILD_ROOT} make install

Expand Down Expand Up @@ -168,7 +170,8 @@ CFEngine Build Automation -- php -- development files
%prefix/httpd/php/lib
%prefix/httpd/php/bin
%prefix/httpd/php/php
%prefix/httpd/php/lib/php.ini
%prefix/httpd/php/etc
%prefix/httpd/php/sbin

%dir %prefix/httpd/modules
%prefix/httpd/modules/libphp.so
Expand Down
3 changes: 3 additions & 0 deletions deps-packaging/php/debian/cfbuild-php.install
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,6 @@
/var/cfengine/httpd/php/php
/var/cfengine/httpd/modules/libphp.so
/var/cfengine/httpd/php/lib/php.ini
/var/cfengine/httpd/php/etc/php-fpm.conf
/var/cfengine/httpd/php/etc/php-fpm.d/www.conf
/var/cfengine/httpd/php/sbin/php-fpm
8 changes: 4 additions & 4 deletions deps-packaging/php/debian/rules
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,7 @@ build-stamp:
--enable-mbstring \
--enable-sockets \
--disable-mbregex \
--without-fpm-user \
--without-fpm-group \
--without-fpm-systemd \
--without-fpm-acl \
--enable-fpm \
--without-layout \
--without-sqlite3 \
--without-bz2 \
Expand Down Expand Up @@ -97,6 +94,9 @@ install: build

mkdir -p $(CURDIR)/debian/tmp$(PREFIX)/httpd/conf
cp $(PREFIX)/httpd/conf/httpd.conf $(CURDIR)/debian/tmp$(PREFIX)/httpd/conf/httpd.conf
mkdir -p $(CURDIR)/debian/tmp$(PREFIX)/httpd/php/etc/php-fpm.d
cp $(CURDIR)/php-fpm.conf $(CURDIR)/debian/tmp$(PREFIX)/httpd/php/etc/
cp $(CURDIR)/www.conf $(CURDIR)/debian/tmp$(PREFIX)/httpd/php/etc/php-fpm.d/

INSTALL_ROOT=$(CURDIR)/debian/tmp CPPFLAGS="-I$(PREFIX)/include" LD_LIBRARY_PATH="$(PREFIX)/lib" LD_RUN_PATH="$(PREFIX)/lib" $(MAKE) install

Expand Down
Loading