diff --git a/meta-openembedded/meta-webserver/README b/meta-openembedded/meta-webserver/README
index 7b60630..4d2c710 100644
--- a/meta-openembedded/meta-webserver/README
+++ b/meta-openembedded/meta-webserver/README
@@ -13,14 +13,14 @@
 
 URI: git://github.com/openembedded/oe-core.git
 subdirectory: meta
-branch: master
+branch: thud
 revision: HEAD
 
 For some recipes, the meta-oe layer is required:
 
 URI: git://github.com/openembedded/meta-oe.git
 subdirectory: meta-oe
-branch: master
+branch: thud
 revision: HEAD
 
 
@@ -52,9 +52,9 @@
 -----------
 
 Send patches / pull requests to openembedded-devel@lists.openembedded.org
-with '[meta-webserver]' in the subject.
+with '[meta-webserver][thud]' in the subject.
 
-Layer maintainer: Derek Straka <derek@asterius.io>
+Thud Maintainer: Armin Kuster <akuster808@gmail.com>
 
 
 License
diff --git a/meta-openembedded/meta-webserver/conf/layer.conf b/meta-openembedded/meta-webserver/conf/layer.conf
index f205ef2..aaa3a95 100644
--- a/meta-openembedded/meta-webserver/conf/layer.conf
+++ b/meta-openembedded/meta-webserver/conf/layer.conf
@@ -17,7 +17,7 @@
 
 LAYERDEPENDS_webserver = "core openembedded-layer"
 
-LAYERSERIES_COMPAT_webserver = "sumo"
+LAYERSERIES_COMPAT_webserver = "thud"
 
 LICENSE_PATH += "${LAYERDIR}/licenses"
 
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.29.bb b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.34.bb
similarity index 84%
rename from meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.29.bb
rename to meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.34.bb
index 36f073c..4cc3845 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.29.bb
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.34.bb
@@ -10,13 +10,14 @@
 
 SRC_URI = "${APACHE_MIRROR}/httpd/httpd-${PV}.tar.bz2 \
            file://0001-configure-use-pkg-config-for-PCRE-detection.patch \
+           file://CVE-2018-11763.patch \
           "
 
 S = "${WORKDIR}/httpd-${PV}"
 
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a62b0c7623826ff99766ff13fb9007f8"
-SRC_URI[md5sum] = "0c599404ef6b69eee95bcd9fcd094407"
-SRC_URI[sha256sum] = "777753a5a25568a2a27428b2214980564bc1c38c1abf9ccc7630b639991f7f00"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d52d0fd0bc788f068e647116c01ddfcd"
+SRC_URI[md5sum] = "818adca52f3be187fe45d6822755be95"
+SRC_URI[sha256sum] = "fa53c95631febb08a9de41fd2864cfff815cf62d9306723ab0d4b8d7aa1638f0"
 
 EXTRA_OECONF = "--with-apr=${STAGING_BINDIR_CROSS}/apr-1-config \
                 --with-apr-util=${STAGING_BINDIR_CROSS}/apu-1-config \
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/files/0001-configure-use-pkg-config-for-PCRE-detection.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/0001-configure-use-pkg-config-for-PCRE-detection.patch
similarity index 91%
rename from meta-openembedded/meta-webserver/recipes-httpd/apache2/files/0001-configure-use-pkg-config-for-PCRE-detection.patch
rename to meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/0001-configure-use-pkg-config-for-PCRE-detection.patch
index 63096db..da38a8c 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/files/0001-configure-use-pkg-config-for-PCRE-detection.patch
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/0001-configure-use-pkg-config-for-PCRE-detection.patch
@@ -1,16 +1,18 @@
-From d8837756f2a48adcfe5d645c39cf163d96eac76c Mon Sep 17 00:00:00 2001
+From 419181e242892ded050f5a375a709b9588fb581d Mon Sep 17 00:00:00 2001
 From: Koen Kooi <koen.kooi@linaro.org>
 Date: Tue, 17 Jun 2014 09:10:57 +0200
 Subject: [PATCH] configure: use pkg-config for PCRE detection
 
+Upstream-Status: Pending
+
 Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
-Upstream-Status: pending
+
 ---
  configure.in | 27 +++++----------------------
  1 file changed, 5 insertions(+), 22 deletions(-)
 
 diff --git a/configure.in b/configure.in
-index 864d7c7..da4138e 100644
+index be7bd25..54dfd0d 100644
 --- a/configure.in
 +++ b/configure.in
 @@ -215,28 +215,11 @@ fi
@@ -47,6 +49,3 @@
  APACHE_SUBST(PCRE_LIBS)
  
  AC_MSG_NOTICE([])
--- 
-1.9.3
-
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/CVE-2018-11763.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/CVE-2018-11763.patch
new file mode 100644
index 0000000..a2c5b2e
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/CVE-2018-11763.patch
@@ -0,0 +1,512 @@
+From 484aba5048e3457dc1d15189f1910d007b1a4a76 Mon Sep 17 00:00:00 2001
+From: Jim Jagielski <jim@apache.org>
+Date: Wed, 12 Sep 2018 20:38:02 +0000
+Subject: [PATCH] Merge r1840010 from trunk:
+
+On the trunk:
+
+mod_http2: connection IO event handling reworked. Instead of reacting on
+     incoming bytes, the state machine now acts on incoming frames that are
+     affecting it. This reduces state transitions.
+
+
+Submitted by: icing
+Reviewed by: icing, ylavic, jim
+
+
+git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1840757 13f79535-47bb-0310-9956-ffa450edef68
+CVE: CVE-2018-11763
+Upstream-Status: Backport [https://github.com/apache/httpd/commit/484aba5048e3457dc1d15189f1910d007b1a4a76]
+
+Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
+---
+ modules/http2/h2_session.c | 238 +++++++++++++++++++++++--------------
+ modules/http2/h2_session.h |   7 +-
+ modules/http2/h2_version.h |   4 +-
+ 3 files changed, 158 insertions(+), 97 deletions(-)
+
+diff --git a/modules/http2/h2_session.c b/modules/http2/h2_session.c
+index 805d6774dc..a1b31d2b30 100644
+--- a/modules/http2/h2_session.c
++++ b/modules/http2/h2_session.c
+@@ -235,6 +235,7 @@ static int on_data_chunk_recv_cb(nghttp2_session *ngh2, uint8_t flags,
+     stream = h2_session_stream_get(session, stream_id);
+     if (stream) {
+         status = h2_stream_recv_DATA(stream, flags, data, len);
++        dispatch_event(session, H2_SESSION_EV_STREAM_CHANGE, 0, "stream data rcvd");
+     }
+     else {
+         ap_log_cerror(APLOG_MARK, APLOG_DEBUG, 0, session->c, APLOGNO(03064)
+@@ -317,9 +318,9 @@ static int on_header_cb(nghttp2_session *ngh2, const nghttp2_frame *frame,
+ }
+ 
+ /**
+- * nghttp2 session has received a complete frame. Most, it uses
+- * for processing of internal state. HEADER and DATA frames however
+- * we need to handle ourself.
++ * nghttp2 session has received a complete frame. Most are used by nghttp2
++ * for processing of internal state. Some, like HEADER and DATA frames,
++ * we need to act on.
+  */
+ static int on_frame_recv_cb(nghttp2_session *ng2s,
+                             const nghttp2_frame *frame,
+@@ -378,6 +379,9 @@ static int on_frame_recv_cb(nghttp2_session *ng2s,
+                           "h2_stream(%ld-%d): WINDOW_UPDATE incr=%d", 
+                           session->id, (int)frame->hd.stream_id,
+                           frame->window_update.window_size_increment);
++            if (nghttp2_session_want_write(session->ngh2)) {
++                dispatch_event(session, H2_SESSION_EV_FRAME_RCVD, 0, "window update");
++            }
+             break;
+         case NGHTTP2_RST_STREAM:
+             ap_log_cerror(APLOG_MARK, APLOG_DEBUG, 0, session->c, APLOGNO(03067)
+@@ -404,6 +408,12 @@ static int on_frame_recv_cb(nghttp2_session *ng2s,
+                                frame->goaway.error_code, NULL);
+             }
+             break;
++        case NGHTTP2_SETTINGS:
++            if (APLOGctrace2(session->c)) {
++                ap_log_cerror(APLOG_MARK, APLOG_TRACE2, 0, session->c,
++                              H2_SSSN_MSG(session, "SETTINGS, len=%ld"), (long)frame->hd.length);
++            }
++            break;
+         default:
+             if (APLOGctrace2(session->c)) {
+                 char buffer[256];
+@@ -415,7 +425,40 @@ static int on_frame_recv_cb(nghttp2_session *ng2s,
+             }
+             break;
+     }
+-    return (APR_SUCCESS == rv)? 0 : NGHTTP2_ERR_PROTO;
++    
++    if (session->state == H2_SESSION_ST_IDLE) {
++        /* We received a frame, but session is in state IDLE. That means the frame
++         * did not really progress any of the (possibly) open streams. It was a meta
++         * frame, e.g. SETTINGS/WINDOW_UPDATE/unknown/etc.
++         * Remember: IDLE means we cannot send because either there are no streams open or
++         * all open streams are blocked on exhausted WINDOWs for outgoing data.
++         * The more frames we receive that do not change this, the less interested we
++         * become in serving this connection. This is expressed in increasing "idle_delays".
++         * Eventually, the connection will timeout and we'll close it. */
++        session->idle_frames = H2MIN(session->idle_frames + 1, session->frames_received);
++            ap_log_cerror( APLOG_MARK, APLOG_TRACE2, 0, session->c,
++                          H2_SSSN_MSG(session, "session has %ld idle frames"), 
++                          (long)session->idle_frames);
++        if (session->idle_frames > 10) {
++            apr_size_t busy_frames = H2MAX(session->frames_received - session->idle_frames, 1);
++            int idle_ratio = (int)(session->idle_frames / busy_frames); 
++            if (idle_ratio > 100) {
++                session->idle_delay = apr_time_from_msec(H2MIN(1000, idle_ratio));
++            }
++            else if (idle_ratio > 10) {
++                session->idle_delay = apr_time_from_msec(10);
++            }
++            else if (idle_ratio > 1) {
++                session->idle_delay = apr_time_from_msec(1);
++            }
++            else {
++                session->idle_delay = 0;
++            }
++        }
++    }
++    
++    if (APR_SUCCESS != rv) return NGHTTP2_ERR_PROTO;
++    return 0;
+ }
+ 
+ static int h2_session_continue_data(h2_session *session) {
+@@ -1603,23 +1646,57 @@ static void update_child_status(h2_session *session, int status, const char *msg
+ 
+ static void transit(h2_session *session, const char *action, h2_session_state nstate)
+ {
++    apr_time_t timeout;
++    int ostate, loglvl;
++    const char *s;
++    
+     if (session->state != nstate) {
+-        int loglvl = APLOG_DEBUG;
+-        if ((session->state == H2_SESSION_ST_BUSY && nstate == H2_SESSION_ST_WAIT)
+-            || (session->state == H2_SESSION_ST_WAIT && nstate == H2_SESSION_ST_BUSY)){
++        ostate = session->state;
++        session->state = nstate;
++        
++        loglvl = APLOG_DEBUG;
++        if ((ostate == H2_SESSION_ST_BUSY && nstate == H2_SESSION_ST_WAIT)
++            || (ostate == H2_SESSION_ST_WAIT && nstate == H2_SESSION_ST_BUSY)){
+             loglvl = APLOG_TRACE1;
+         }
+         ap_log_cerror(APLOG_MARK, loglvl, 0, session->c, 
+                       H2_SSSN_LOG(APLOGNO(03078), session, 
+                       "transit [%s] -- %s --> [%s]"), 
+-                      h2_session_state_str(session->state), action, 
++                      h2_session_state_str(ostate), action, 
+                       h2_session_state_str(nstate));
+-        session->state = nstate;
++        
+         switch (session->state) {
+             case H2_SESSION_ST_IDLE:
+-                update_child_status(session, (session->open_streams == 0? 
+-                                              SERVER_BUSY_KEEPALIVE
+-                                              : SERVER_BUSY_READ), "idle");
++                if (!session->remote.emitted_count) {
++                    /* on fresh connections, with async mpm, do not return
++                     * to mpm for a second. This gives the first request a better
++                     * chance to arrive (und connection leaving IDLE state).
++                     * If we return to mpm right away, this connection has the
++                     * same chance of being cleaned up by the mpm as connections
++                     * that already served requests - not fair. */
++                    session->idle_sync_until = apr_time_now() + apr_time_from_sec(1);
++                    s = "timeout";
++                    timeout = H2MAX(session->s->timeout, session->s->keep_alive_timeout);
++                    update_child_status(session, SERVER_BUSY_READ, "idle");
++                    ap_log_cerror(APLOG_MARK, APLOG_TRACE1, 0, session->c, 
++                                  H2_SSSN_LOG("", session, "enter idle, timeout = %d sec"), 
++                                  (int)apr_time_sec(H2MAX(session->s->timeout, session->s->keep_alive_timeout)));
++                }
++                else if (session->open_streams) {
++                    s = "timeout";
++                    timeout = session->s->keep_alive_timeout;
++                    update_child_status(session, SERVER_BUSY_KEEPALIVE, "idle");
++                }
++                else {
++                    /* normal keepalive setup */
++                    s = "keepalive";
++                    timeout = session->s->keep_alive_timeout;
++                    update_child_status(session, SERVER_BUSY_KEEPALIVE, "idle");
++                }
++                session->idle_until = apr_time_now() + timeout; 
++                ap_log_cerror(APLOG_MARK, APLOG_TRACE1, 0, session->c, 
++                              H2_SSSN_LOG("", session, "enter idle, %s = %d sec"), 
++                              s, (int)apr_time_sec(timeout));
+                 break;
+             case H2_SESSION_ST_DONE:
+                 update_child_status(session, SERVER_CLOSING, "done");
+@@ -1726,8 +1803,6 @@ static void h2_session_ev_no_io(h2_session *session, int arg, const char *msg)
+                      * This means we only wait for WINDOW_UPDATE from the 
+                      * client and can block on READ. */
+                     transit(session, "no io (flow wait)", H2_SESSION_ST_IDLE);
+-                    session->idle_until = apr_time_now() + session->s->timeout;
+-                    session->keep_sync_until = session->idle_until;
+                     /* Make sure we have flushed all previously written output
+                      * so that the client will react. */
+                     if (h2_conn_io_flush(&session->io) != APR_SUCCESS) {
+@@ -1738,12 +1813,7 @@ static void h2_session_ev_no_io(h2_session *session, int arg, const char *msg)
+             }
+             else if (session->local.accepting) {
+                 /* When we have no streams, but accept new, switch to idle */
+-                apr_time_t now = apr_time_now();
+                 transit(session, "no io (keepalive)", H2_SESSION_ST_IDLE);
+-                session->idle_until = (session->remote.emitted_count? 
+-                                       session->s->keep_alive_timeout : 
+-                                       session->s->timeout) + now;
+-                session->keep_sync_until = now + apr_time_from_sec(1);
+             }
+             else {
+                 /* We are no longer accepting new streams and there are
+@@ -1758,12 +1828,25 @@ static void h2_session_ev_no_io(h2_session *session, int arg, const char *msg)
+     }
+ }
+ 
+-static void h2_session_ev_data_read(h2_session *session, int arg, const char *msg)
++static void h2_session_ev_frame_rcvd(h2_session *session, int arg, const char *msg)
++{
++    switch (session->state) {
++        case H2_SESSION_ST_IDLE:
++        case H2_SESSION_ST_WAIT:
++            transit(session, "frame received", H2_SESSION_ST_BUSY);
++            break;
++        default:
++            /* nop */
++            break;
++    }
++}
++
++static void h2_session_ev_stream_change(h2_session *session, int arg, const char *msg)
+ {
+     switch (session->state) {
+         case H2_SESSION_ST_IDLE:
+         case H2_SESSION_ST_WAIT:
+-            transit(session, "data read", H2_SESSION_ST_BUSY);
++            transit(session, "stream change", H2_SESSION_ST_BUSY);
+             break;
+         default:
+             /* nop */
+@@ -1803,16 +1886,6 @@ static void h2_session_ev_pre_close(h2_session *session, int arg, const char *ms
+ static void ev_stream_open(h2_session *session, h2_stream *stream)
+ {
+     h2_iq_append(session->in_process, stream->id);
+-    switch (session->state) {
+-        case H2_SESSION_ST_IDLE:
+-            if (session->open_streams == 1) {
+-                /* enter timeout, since we have a stream again */
+-                session->idle_until = (session->s->timeout + apr_time_now());
+-            }
+-            break;
+-        default:
+-            break;
+-    }
+ }
+ 
+ static void ev_stream_closed(h2_session *session, h2_stream *stream)
+@@ -1825,11 +1898,6 @@ static void ev_stream_closed(h2_session *session, h2_stream *stream)
+     }
+     switch (session->state) {
+         case H2_SESSION_ST_IDLE:
+-            if (session->open_streams == 0) {
+-                /* enter keepalive timeout, since we no longer have streams */
+-                session->idle_until = (session->s->keep_alive_timeout
+-                                       + apr_time_now());
+-            }
+             break;
+         default:
+             break;
+@@ -1887,6 +1955,7 @@ static void on_stream_state_enter(void *ctx, h2_stream *stream)
+         default:
+             break;
+     }
++    dispatch_event(session, H2_SESSION_EV_STREAM_CHANGE, 0, "stream state change");
+ }
+ 
+ static void on_stream_event(void *ctx, h2_stream *stream, 
+@@ -1945,8 +2014,8 @@ static void dispatch_event(h2_session *session, h2_session_event_t ev,
+         case H2_SESSION_EV_NO_IO:
+             h2_session_ev_no_io(session, arg, msg);
+             break;
+-        case H2_SESSION_EV_DATA_READ:
+-            h2_session_ev_data_read(session, arg, msg);
++        case H2_SESSION_EV_FRAME_RCVD:
++            h2_session_ev_frame_rcvd(session, arg, msg);
+             break;
+         case H2_SESSION_EV_NGH2_DONE:
+             h2_session_ev_ngh2_done(session, arg, msg);
+@@ -1957,6 +2026,9 @@ static void dispatch_event(h2_session *session, h2_session_event_t ev,
+         case H2_SESSION_EV_PRE_CLOSE:
+             h2_session_ev_pre_close(session, arg, msg);
+             break;
++        case H2_SESSION_EV_STREAM_CHANGE:
++            h2_session_ev_stream_change(session, arg, msg);
++            break;
+         default:
+             ap_log_cerror(APLOG_MARK, APLOG_TRACE1, 0, session->c,
+                           H2_SSSN_MSG(session, "unknown event %d"), ev);
+@@ -1990,13 +2062,15 @@ apr_status_t h2_session_process(h2_session *session, int async)
+     apr_status_t status = APR_SUCCESS;
+     conn_rec *c = session->c;
+     int rv, mpm_state, trace = APLOGctrace3(c);
+-
++    apr_time_t now;
++    
+     if (trace) {
+         ap_log_cerror( APLOG_MARK, APLOG_TRACE3, status, c,
+                       H2_SSSN_MSG(session, "process start, async=%d"), async);
+     }
+                   
+     while (session->state != H2_SESSION_ST_DONE) {
++        now = apr_time_now();
+         session->have_read = session->have_written = 0;
+ 
+         if (session->local.accepting 
+@@ -2034,39 +2108,42 @@ apr_status_t h2_session_process(h2_session *session, int async)
+                 break;
+                 
+             case H2_SESSION_ST_IDLE:
+-                /* We trust our connection into the default timeout/keepalive
+-                 * handling of the core filters/mpm iff:
+-                 * - keep_sync_until is not set
+-                 * - we have an async mpm
+-                 * - we have no open streams to process
+-                 * - we are not sitting on a Upgrade: request
+-                 * - we already have seen at least one request
+-                 */
+-                if (!session->keep_sync_until && async && !session->open_streams
+-                    && !session->r && session->remote.emitted_count) {
++                if (session->idle_until && (apr_time_now() + session->idle_delay) > session->idle_until) {
++                    ap_log_cerror( APLOG_MARK, APLOG_TRACE1, status, c,
++                                  H2_SSSN_MSG(session, "idle, timeout reached, closing"));
++                    if (session->idle_delay) {
++                        apr_table_setn(session->c->notes, "short-lingering-close", "1"); 
++                    }
++                    dispatch_event(session, H2_SESSION_EV_CONN_TIMEOUT, 0, "timeout");
++                    goto out;
++                }
++                
++                if (session->idle_delay) {
++                    /* we are less interested in spending time on this connection */
++                    ap_log_cerror( APLOG_MARK, APLOG_TRACE2, status, c,
++                                  H2_SSSN_MSG(session, "session is idle (%ld ms), idle wait %ld sec left"), 
++                                  (long)apr_time_as_msec(session->idle_delay),
++                                  (long)apr_time_sec(session->idle_until - now));
++                    apr_sleep(session->idle_delay);
++                    session->idle_delay = 0;
++                }
++
++                h2_conn_io_flush(&session->io);
++                if (async && !session->r && (now > session->idle_sync_until)) {
+                     if (trace) {
+                         ap_log_cerror(APLOG_MARK, APLOG_TRACE3, status, c,
+                                       H2_SSSN_MSG(session, 
+                                       "nonblock read, %d streams open"), 
+                                       session->open_streams);
+                     }
+-                    h2_conn_io_flush(&session->io);
+                     status = h2_session_read(session, 0);
+                     
+                     if (status == APR_SUCCESS) {
+                         session->have_read = 1;
+-                        dispatch_event(session, H2_SESSION_EV_DATA_READ, 0, NULL);
+                     }
+-                    else if (APR_STATUS_IS_EAGAIN(status) 
+-                        || APR_STATUS_IS_TIMEUP(status)) {
+-                        if (apr_time_now() > session->idle_until) {
+-                            dispatch_event(session, 
+-                                           H2_SESSION_EV_CONN_TIMEOUT, 0, NULL);
+-                        }
+-                        else {
+-                            status = APR_EAGAIN;
+-                            goto out;
+-                        }
++                    else if (APR_STATUS_IS_EAGAIN(status) || APR_STATUS_IS_TIMEUP(status)) {
++                        status = APR_EAGAIN;
++                        goto out;
+                     }
+                     else {
+                         ap_log_cerror(APLOG_MARK, APLOG_DEBUG, status, c,
+@@ -2078,7 +2155,6 @@ apr_status_t h2_session_process(h2_session *session, int async)
+                 }
+                 else {
+                     /* make certain, we send everything before we idle */
+-                    h2_conn_io_flush(&session->io);
+                     if (trace) {
+                         ap_log_cerror(APLOG_MARK, APLOG_TRACE3, status, c,
+                                       H2_SSSN_MSG(session, 
+@@ -2090,7 +2166,6 @@ apr_status_t h2_session_process(h2_session *session, int async)
+                      */
+                     status = h2_mplx_idle(session->mplx);
+                     if (status == APR_EAGAIN) {
+-                        dispatch_event(session, H2_SESSION_EV_DATA_READ, 0, NULL);
+                         break;
+                     }
+                     else if (status != APR_SUCCESS) {
+@@ -2101,33 +2176,11 @@ apr_status_t h2_session_process(h2_session *session, int async)
+                     status = h2_session_read(session, 1);
+                     if (status == APR_SUCCESS) {
+                         session->have_read = 1;
+-                        dispatch_event(session, H2_SESSION_EV_DATA_READ, 0, NULL);
+                     }
+                     else if (status == APR_EAGAIN) {
+                         /* nothing to read */
+                     }
+                     else if (APR_STATUS_IS_TIMEUP(status)) {
+-                        apr_time_t now = apr_time_now();
+-                        if (now > session->keep_sync_until) {
+-                            /* if we are on an async mpm, now is the time that
+-                             * we may dare to pass control to it. */
+-                            session->keep_sync_until = 0;
+-                        }
+-                        if (now > session->idle_until) {
+-                            if (trace) {
+-                                ap_log_cerror(APLOG_MARK, APLOG_TRACE3, status, c,
+-                                              H2_SSSN_MSG(session, 
+-                                              "keepalive timeout"));
+-                            }
+-                            dispatch_event(session, 
+-                                           H2_SESSION_EV_CONN_TIMEOUT, 0, "timeout");
+-                        }
+-                        else if (trace) {                        
+-                            ap_log_cerror(APLOG_MARK, APLOG_TRACE3, status, c,
+-                                          H2_SSSN_MSG(session, 
+-                                          "keepalive, %f sec left"),
+-                                          (session->idle_until - now) / 1000000.0f);
+-                        }
+                         /* continue reading handling */
+                     }
+                     else if (APR_STATUS_IS_ECONNABORTED(status)
+@@ -2145,6 +2198,18 @@ apr_status_t h2_session_process(h2_session *session, int async)
+                         dispatch_event(session, H2_SESSION_EV_CONN_ERROR, 0, "error");
+                     }
+                 }
++                if (nghttp2_session_want_write(session->ngh2)) {
++                    ap_update_child_status(session->c->sbh, SERVER_BUSY_WRITE, NULL);
++                    status = h2_session_send(session);
++                    if (status == APR_SUCCESS) {
++                        status = h2_conn_io_flush(&session->io);
++                    }
++                    if (status != APR_SUCCESS) {
++                        dispatch_event(session, H2_SESSION_EV_CONN_ERROR, 
++                                       H2_ERR_INTERNAL_ERROR, "writing");
++                        break;
++                    }
++                }
+                 break;
+                 
+             case H2_SESSION_ST_BUSY:
+@@ -2154,7 +2219,6 @@ apr_status_t h2_session_process(h2_session *session, int async)
+                     status = h2_session_read(session, 0);
+                     if (status == APR_SUCCESS) {
+                         session->have_read = 1;
+-                        dispatch_event(session, H2_SESSION_EV_DATA_READ, 0, NULL);
+                     }
+                     else if (status == APR_EAGAIN) {
+                         /* nothing to read */
+@@ -2218,7 +2282,7 @@ apr_status_t h2_session_process(h2_session *session, int async)
+                                              session->iowait);
+                 if (status == APR_SUCCESS) {
+                     session->wait_us = 0;
+-                    dispatch_event(session, H2_SESSION_EV_DATA_READ, 0, NULL);
++                        dispatch_event(session, H2_SESSION_EV_STREAM_CHANGE, 0, NULL);
+                 }
+                 else if (APR_STATUS_IS_TIMEUP(status)) {
+                     /* go back to checking all inputs again */
+diff --git a/modules/http2/h2_session.h b/modules/http2/h2_session.h
+index 486938b009..df2a862445 100644
+--- a/modules/http2/h2_session.h
++++ b/modules/http2/h2_session.h
+@@ -66,10 +66,11 @@ typedef enum {
+     H2_SESSION_EV_PROTO_ERROR,      /* protocol error */
+     H2_SESSION_EV_CONN_TIMEOUT,     /* connection timeout */
+     H2_SESSION_EV_NO_IO,            /* nothing has been read or written */
+-    H2_SESSION_EV_DATA_READ,        /* connection data has been read */
++    H2_SESSION_EV_FRAME_RCVD,       /* a frame has been received */
+     H2_SESSION_EV_NGH2_DONE,        /* nghttp2 wants neither read nor write anything */
+     H2_SESSION_EV_MPM_STOPPING,     /* the process is stopping */
+     H2_SESSION_EV_PRE_CLOSE,        /* connection will close after this */
++    H2_SESSION_EV_STREAM_CHANGE,    /* a stream (state/input/output) changed */
+ } h2_session_event_t;
+ 
+ typedef struct h2_session {
+@@ -118,7 +119,9 @@ typedef struct h2_session {
+     apr_size_t max_stream_mem;      /* max buffer memory for a single stream */
+     
+     apr_time_t idle_until;          /* Time we shut down due to sheer boredom */
+-    apr_time_t keep_sync_until;     /* Time we sync wait until passing to async mpm */
++    apr_time_t idle_sync_until;     /* Time we sync wait until keepalive handling kicks in */
++    apr_size_t idle_frames;         /* number of rcvd frames that kept session in idle state */
++    apr_interval_time_t idle_delay; /* Time we delay processing rcvd frames in idle state */
+     
+     apr_bucket_brigade *bbtmp;      /* brigade for keeping temporary data */
+     struct apr_thread_cond_t *iowait; /* our cond when trywaiting for data */
+diff --git a/modules/http2/h2_version.h b/modules/http2/h2_version.h
+index 5c53abd575..2ac718fc0f 100644
+--- a/modules/http2/h2_version.h
++++ b/modules/http2/h2_version.h
+@@ -27,7 +27,7 @@
+  * @macro
+  * Version number of the http2 module as c string
+  */
+-#define MOD_HTTP2_VERSION "1.10.20"
++#define MOD_HTTP2_VERSION "1.11.0"
+ 
+ /**
+  * @macro
+@@ -35,7 +35,7 @@
+  * release. This is a 24 bit number with 8 bits for major number, 8 bits
+  * for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203.
+  */
+-#define MOD_HTTP2_VERSION_NUM 0x010a14
++#define MOD_HTTP2_VERSION_NUM 0x010b00
+ 
+ 
+ #endif /* mod_h2_h2_version_h */
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/apache-configure_perlbin.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/apache-configure_perlbin.patch
index 92c53f3..a2bc6e0 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/apache-configure_perlbin.patch
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/apache-configure_perlbin.patch
@@ -1,14 +1,19 @@
-# Author: echo <fei.geng@windriver.com>
-# Date: April 28 2009
-# Summary:Fix perl install directory to /usr/bin
-#
-# Upstream-Status: Inappropriate [configuration]
+From 5412077c398dec74321388fe6e593a44c4c80de6 Mon Sep 17 00:00:00 2001
+From: echo <fei.geng@windriver.com>
+Date: Tue, 28 Apr 2009 03:11:06 +0000
+Subject: [PATCH] Fix perl install directory to /usr/bin
 
-Index: httpd-2.4.29/configure.in
-===================================================================
---- httpd-2.4.29.orig/configure.in
-+++ httpd-2.4.29/configure.in
-@@ -855,10 +855,7 @@ AC_DEFINE_UNQUOTED(SERVER_CONFIG_FILE, "
+Upstream-Status: Inappropriate [configuration]
+
+---
+ configure.in | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index d828512..be7bd25 100644
+--- a/configure.in
++++ b/configure.in
+@@ -855,10 +855,7 @@ AC_DEFINE_UNQUOTED(SERVER_CONFIG_FILE, "${rel_sysconfdir}/${progname}.conf",
  AC_DEFINE_UNQUOTED(AP_TYPES_CONFIG_FILE, "${rel_sysconfdir}/mime.types",
  	[Location of the MIME types config file, relative to the Apache root directory])
  
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/apache-ssl-ltmain-rpath.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/apache-ssl-ltmain-rpath.patch
deleted file mode 100644
index f13da91..0000000
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/apache-ssl-ltmain-rpath.patch
+++ /dev/null
@@ -1,81 +0,0 @@
- build/ltmain.sh | 32 +++++++++++++++++++++++++++-----
- 1 file changed, 27 insertions(+), 5 deletions(-)
-
-Index: httpd-2.4.29/build/ltmain.sh
-===================================================================
---- httpd-2.4.29.orig/build/ltmain.sh
-+++ httpd-2.4.29/build/ltmain.sh
-@@ -6969,7 +6969,7 @@ func_mode_link ()
- 	dir=$func_resolve_sysroot_result
- 	# We need an absolute path.
- 	case $dir in
--	[\\/]* | [A-Za-z]:[\\/]*) ;;
-+	=* | [\\/]* | [A-Za-z]:[\\/]*) ;;
- 	*)
- 	  absdir=`cd "$dir" && pwd`
- 	  test -z "$absdir" && \
-@@ -8167,7 +8167,7 @@ func_mode_link ()
- 	    $ECHO "*** $linklib is not portable!"
- 	  fi
- 	  if test lib = "$linkmode" &&
--	     test yes = "$hardcode_into_libs"; then
-+	     test "x$wrs_use_rpaths" = "xyes" && test "$hardcode_into_libs" = yes; then
- 	    # Hardcode the library path.
- 	    # Skip directories that are in the system default run-time
- 	    # search path.
-@@ -8434,7 +8434,7 @@ func_mode_link ()
- 
- 	if test lib = "$linkmode"; then
- 	  if test -n "$dependency_libs" &&
--	     { test yes != "$hardcode_into_libs" ||
-+              { test yes != "$hardcode_into_libs" || test "x$wrs_use_rpaths" != "xyes" ||
- 	       test yes = "$build_old_libs" ||
- 	       test yes = "$link_static"; }; then
- 	    # Extract -R from dependency_libs
-@@ -9086,7 +9086,8 @@ func_mode_link ()
- 	  *) func_append finalize_rpath " $libdir" ;;
- 	  esac
- 	done
--	if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then
-+        if test yes != "$hardcode_into_libs"  || test "x$wrs_use_rpaths" != "xyes" ||
-+           test yes = "$build_old_libs"; then
- 	  dependency_libs="$temp_xrpath $dependency_libs"
- 	fi
-       fi
-@@ -9534,7 +9535,7 @@ EOF
- 	case $archive_cmds in
- 	  *\$LD\ *) wl= ;;
-         esac
--	if test yes = "$hardcode_into_libs"; then
-+	if test yes = "$hardcode_into_libs" && test "x$wrs_use_rpaths" = "xyes"; then
- 	  # Hardcode the library paths
- 	  hardcode_libdirs=
- 	  dep_rpath=
-@@ -10272,6 +10273,27 @@ EOF
-       # Now hardcode the library paths
-       rpath=
-       hardcode_libdirs=
-+
-+      # short circuit putting rpaths in executables
-+      #
-+      if test "x$wrs_use_rpaths" != "xyes" ; then
-+        flag=
-+        for libdir in $compile_rpath; do
-+          case $(echo $libdir | ${SED} 's,/[/]*,/,g') in
-+            /usr/lib/* | /usr/lib32/* | /usr/lib64/* ) flag="$flag $libdir" ;;
-+          esac
-+        done
-+        compile_rpath="$flag"
-+
-+        flag=
-+        for libdir in $finalize_rpath; do
-+          case $(echo $libdir | ${SED} 's,/[/]*,/,g') in
-+            /usr/lib/* | /usr/lib32/* | /usr/lib64/* ) flag="$flag $libdir" ;;
-+          esac
-+        done
-+        finalize_rpath="$flag"
-+      fi
-+
-       for libdir in $compile_rpath $finalize_rpath; do
- 	if test -n "$hardcode_libdir_flag_spec"; then
- 	  if test -n "$hardcode_libdir_separator"; then
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/files/configure-allow-to-disable-selinux-support.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/configure-allow-to-disable-selinux-support.patch
similarity index 88%
rename from meta-openembedded/meta-webserver/recipes-httpd/apache2/files/configure-allow-to-disable-selinux-support.patch
rename to meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/configure-allow-to-disable-selinux-support.patch
index 5b5c297..a6ccfb6 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/files/configure-allow-to-disable-selinux-support.patch
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/configure-allow-to-disable-selinux-support.patch
@@ -1,4 +1,4 @@
-From d23dd33e373340f6fddf11904839d1a118824401 Mon Sep 17 00:00:00 2001
+From 166cbc02f72d13d5e7bf08ac2351c0f07e1ff4b9 Mon Sep 17 00:00:00 2001
 From: Wenzong Fan <wenzong.fan@windriver.com>
 Date: Mon, 1 Dec 2014 02:08:27 -0500
 Subject: [PATCH] apache2: allow to disable selinux support
@@ -6,12 +6,13 @@
 Upstream-Status: Pending
 
 Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
+
 ---
- configure.in |   14 ++++++++++----
+ configure.in | 14 ++++++++++----
  1 file changed, 10 insertions(+), 4 deletions(-)
 
 diff --git a/configure.in b/configure.in
-index df94ee5..8c3ab21 100644
+index 54dfd0d..377e062 100644
 --- a/configure.in
 +++ b/configure.in
 @@ -466,10 +466,16 @@ getloadavg
@@ -35,6 +36,3 @@
  
  AC_CACHE_CHECK([for gettid()], ac_cv_gettid,
  [AC_TRY_RUN(#define _GNU_SOURCE
--- 
-1.7.9.5
-
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-corelimit.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-corelimit.patch
index 18e4107..ae4ff0c 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-corelimit.patch
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-corelimit.patch
@@ -1,15 +1,25 @@
+From 55ebb07cc57854cbfb372c3a688365039b809bc8 Mon Sep 17 00:00:00 2001
+From: Paul Eggleton <paul.eggleton@linux.intel.com>
+Date: Tue, 17 Jul 2012 11:27:39 +0100
+Subject: [PATCH] apache2: add from OE-Classic, update to version 2.4.2 and fix
 
 Bump up the core size limit if CoreDumpDirectory is
 configured.
 
-Upstream-Status: Pending 
+Upstream-Status: Pending
 
 Note: upstreaming was discussed but there are competing desires;
 	there are portability oddities here too.
 
---- httpd-2.4.1/server/core.c.corelimit
-+++ httpd-2.4.1/server/core.c
-@@ -4433,6 +4433,25 @@ static int core_post_config(apr_pool_t *
+---
+ server/core.c | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
+
+diff --git a/server/core.c b/server/core.c
+index 4af0816..4fd2b9f 100644
+--- a/server/core.c
++++ b/server/core.c
+@@ -4940,6 +4940,25 @@ static int core_post_config(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *pte
      }
      apr_pool_cleanup_register(pconf, NULL, ap_mpm_end_gen_helper,
                                apr_pool_cleanup_null);
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-selinux.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-selinux.patch
index 873328d..015034c 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-selinux.patch
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-selinux.patch
@@ -1,3 +1,7 @@
+From 33c0f2d88ccfe02777f183eb785bb2b891aff168 Mon Sep 17 00:00:00 2001
+From: Paul Eggleton <paul.eggleton@linux.intel.com>
+Date: Tue, 17 Jul 2012 11:27:39 +0100
+Subject: [PATCH] Log the SELinux context at startup.
 
 Log the SELinux context at startup.
 
@@ -5,9 +9,16 @@
 
 Note: unlikely to be any interest in this upstream
 
---- httpd-2.4.1/configure.in.selinux
-+++ httpd-2.4.1/configure.in
-@@ -458,6 +458,11 @@ fopen64
+---
+ configure.in  |  5 +++++
+ server/core.c | 26 ++++++++++++++++++++++++++
+ 2 files changed, 31 insertions(+)
+
+diff --git a/configure.in b/configure.in
+index 761e836..d828512 100644
+--- a/configure.in
++++ b/configure.in
+@@ -483,6 +483,11 @@ getloadavg
  dnl confirm that a void pointer is large enough to store a long integer
  APACHE_CHECK_VOID_PTR_LEN
  
@@ -19,9 +30,11 @@
  AC_CACHE_CHECK([for gettid()], ac_cv_gettid,
  [AC_TRY_RUN(#define _GNU_SOURCE
  #include <unistd.h>
---- httpd-2.4.1/server/core.c.selinux
-+++ httpd-2.4.1/server/core.c
-@@ -58,6 +58,10 @@
+diff --git a/server/core.c b/server/core.c
+index 4fd2b9f..c61304a 100644
+--- a/server/core.c
++++ b/server/core.c
+@@ -59,6 +59,10 @@
  #include <unistd.h>
  #endif
  
@@ -32,7 +45,7 @@
  /* LimitRequestBody handling */
  #define AP_LIMIT_REQ_BODY_UNSET         ((apr_off_t) -1)
  #define AP_DEFAULT_LIMIT_REQ_BODY       ((apr_off_t) 0)
-@@ -4452,6 +4456,28 @@ static int core_post_config(apr_pool_t *
+@@ -4959,6 +4963,28 @@ static int core_post_config(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *pte
      }
  #endif
  
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.3-fix-race-issue-of-dir-install.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.3-fix-race-issue-of-dir-install.patch
new file mode 100644
index 0000000..2262e9f
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.3-fix-race-issue-of-dir-install.patch
@@ -0,0 +1,33 @@
+From 3b079a9df7582e305246fd805837d87a2c4ef534 Mon Sep 17 00:00:00 2001
+From: Zhenhua Luo <zhenhua.luo@freescale.com>
+Date: Fri, 25 Jan 2013 18:10:50 +0800
+Subject: [PATCH] apache2: fix the race issue of parallel installation
+
+Upstream-Status: Pending
+
+fix following race issue when do parallel install
+| mkdir: cannot create directory `/home/mypc/workspace/poky/build_p4080ds_release/tmp/work/ppce500mc-fsl_networking-linux/apache2/2.4.3-r1/image/usr/share/apache2': File exists
+...
+| mkdir: cannot create directory `/home/mypc/workspace/poky/build_p4080ds_release/tmp/work/ppce500mc-fsl_networking-linux/apache2/2.4.3-r1/image/usr/share/apache2': File exists
+| make[1]: *** [install-man] Error 1
+| make[1]: *** Waiting for unfinished jobs....
+
+Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
+
+---
+ build/mkdir.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build/mkdir.sh b/build/mkdir.sh
+index e2d5bb6..dde5ae0 100755
+--- a/build/mkdir.sh
++++ b/build/mkdir.sh
+@@ -39,7 +39,7 @@ for file in ${1+"$@"} ; do
+         esac
+         if test ! -d "$pathcomp"; then
+             echo "mkdir $pathcomp" 1>&2
+-            mkdir "$pathcomp" || errstatus=$?
++            mkdir -p "$pathcomp" || errstatus=$?
+         fi
+         pathcomp="$pathcomp/"
+     done
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.4-export.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.4-export.patch
index afbed8e..843226c 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.4-export.patch
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.4-export.patch
@@ -1,19 +1,27 @@
+From a5627edbcc88cd50caaa42ca051ac7ed3d870172 Mon Sep 17 00:00:00 2001
+From: Paul Eggleton <paul.eggleton@linux.intel.com>
+Date: Tue, 17 Jul 2012 11:27:39 +0100
+Subject: [PATCH] apache2: add from OE-Classic, update to version 2.4.2 and fix
 
 There is no need to "suck in" the apr/apr-util symbols when using
 a shared libapr{,util}, it just bloats the symbol table; so don't.
 
-Upstream-HEAD: needed
-Upstream-2.0: omit
 Upstream-Status: Pending
 
 Note: EXPORT_DIRS change is conditional on using shared apr
 
---- httpd-2.4.4/server/Makefile.in.export
-+++ httpd-2.4.4/server/Makefile.in
-@@ -57,9 +57,6 @@ export_files:
- 	( for dir in $(EXPORT_DIRS); do \
+---
+ server/Makefile.in | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/server/Makefile.in b/server/Makefile.in
+index cb11684..0d48924 100644
+--- a/server/Makefile.in
++++ b/server/Makefile.in
+@@ -60,9 +60,6 @@ export_files:
  	      ls $$dir/*.h ; \
  	  done; \
+ 	  echo "$(top_srcdir)/server/mpm_fdqueue.h"; \
 -	  for dir in $(EXPORT_DIRS_APR); do \
 -	      ls $$dir/ap[ru].h $$dir/ap[ru]_*.h 2>/dev/null; \
 -	  done; \
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/replace-lynx-to-curl-in-apachectl-script.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/replace-lynx-to-curl-in-apachectl-script.patch
index e4e01b2..020f1d7 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/replace-lynx-to-curl-in-apachectl-script.patch
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/replace-lynx-to-curl-in-apachectl-script.patch
@@ -1,4 +1,4 @@
-From 760ccbb2fb046621a2aeaecabb2b1ef9aa280cf1 Mon Sep 17 00:00:00 2001
+From 94a9e2241ea27e75babbfdeb38043b13049e23b0 Mon Sep 17 00:00:00 2001
 From: Yulong Pei <Yulong.pei@windriver.com>
 Date: Thu, 1 Sep 2011 01:03:14 +0800
 Subject: [PATCH] replace lynx to curl in apachectl script
@@ -6,14 +6,15 @@
 Upstream-Status: Inappropriate [configuration]
 
 Signed-off-by: Yulong Pei <Yulong.pei@windriver.com>
----
- support/apachectl.in |   14 ++++++++++----
- 1 files changed, 10 insertions(+), 4 deletions(-)
 
-Index: httpd-2.4.29/support/apachectl.in
-===================================================================
---- httpd-2.4.29.orig/support/apachectl.in
-+++ httpd-2.4.29/support/apachectl.in
+---
+ support/apachectl.in | 14 ++++++++++----
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/support/apachectl.in b/support/apachectl.in
+index 3281c2e..6ab4ba5 100644
+--- a/support/apachectl.in
++++ b/support/apachectl.in
 @@ -52,11 +52,11 @@ fi
  # a command that outputs a formatted text version of the HTML at the
  # url given on the command line.  Designed for lynx, however other
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/server-makefile.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/server-makefile.patch
index f1349cb..5476d4f 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/server-makefile.patch
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/server-makefile.patch
@@ -1,6 +1,18 @@
---- http-2.0.54/server/Makefile.in-old	2005-12-20 13:26:56.000000000 -0500
-+++ http-2.0.54/server/Makefile.in	2005-12-20 13:27:22.000000000 -0500
-@@ -27,7 +27,7 @@
+From aa02bbfd8f16871db5563a95fa94dd170964949f Mon Sep 17 00:00:00 2001
+From: Paul Eggleton <paul.eggleton@linux.intel.com>
+Date: Tue, 17 Jul 2012 11:27:39 +0100
+
+Upstream-Status: Inappropriate [embedded specific]
+
+---
+ server/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/server/Makefile.in b/server/Makefile.in
+index 1fa3344..cb11684 100644
+--- a/server/Makefile.in
++++ b/server/Makefile.in
+@@ -29,7 +29,7 @@ gen_test_char: $(gen_test_char_OBJECTS)
  	$(LINK) $(EXTRA_LDFLAGS) $(gen_test_char_OBJECTS) $(EXTRA_LIBS)
  
  test_char.h: gen_test_char
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.29.bb b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.34.bb
similarity index 91%
rename from meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.29.bb
rename to meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.34.bb
index f0298b9..a87e384 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.29.bb
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.34.bb
@@ -13,23 +13,26 @@
            file://httpd-2.4.1-selinux.patch \
            file://apache-configure_perlbin.patch \
            file://replace-lynx-to-curl-in-apachectl-script.patch \
-           file://apache-ssl-ltmain-rpath.patch \
            file://httpd-2.4.3-fix-race-issue-of-dir-install.patch \
            file://0001-configure-use-pkg-config-for-PCRE-detection.patch \
            file://configure-allow-to-disable-selinux-support.patch \
+           file://CVE-2018-11763.patch \
            file://init \
            file://apache2-volatile.conf \
            file://apache2.service \
            file://volatiles.04_apache2 \
           "
 
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a62b0c7623826ff99766ff13fb9007f8"
-SRC_URI[md5sum] = "0c599404ef6b69eee95bcd9fcd094407"
-SRC_URI[sha256sum] = "777753a5a25568a2a27428b2214980564bc1c38c1abf9ccc7630b639991f7f00"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d52d0fd0bc788f068e647116c01ddfcd"
+SRC_URI[md5sum] = "818adca52f3be187fe45d6822755be95"
+SRC_URI[sha256sum] = "fa53c95631febb08a9de41fd2864cfff815cf62d9306723ab0d4b8d7aa1638f0"
 
 S = "${WORKDIR}/httpd-${PV}"
 
-inherit autotools update-rc.d pkgconfig systemd
+inherit autotools update-rc.d pkgconfig systemd update-alternatives
+
+ALTERNATIVE_${PN}-doc = "htpasswd.1"
+ALTERNATIVE_LINK_NAME[htpasswd.1] = "${mandir}/man1/htpasswd.1"
 
 SYSTEMD_SERVICE_${PN} = "apache2.service"
 SYSTEMD_AUTO_ENABLE_${PN} = "disable"
@@ -56,11 +59,14 @@
     --libexecdir=${libdir}/${BPN}/modules \
     ap_cv_void_ptr_lt_long=no \
     --enable-mpms-shared \
-    ac_cv_have_threadsafe_pollset=no"
+    ac_cv_have_threadsafe_pollset=no \
+    --enable-layout=Debian \
+    --prefix=${base_prefix}/"
 
 PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
-PACKAGECONFIG[selinux] = "--enable-selinux --enable-layout=Debian --prefix=${base_prefix}/,--disable-selinux,libselinux,libselinux"
+PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux,libselinux"
 PACKAGECONFIG[openldap] = "--enable-ldap --enable-authnz-ldap,--disable-ldap --disable-authnz-ldap,openldap"
+PACKAGECONFIG[zlib] = "--enable-deflate --with-z=${STAGING_LIBDIR},,zlib,zlib"
 
 do_configure_prepend() {
         sed -i -e 's:$''{prefix}/usr/lib/cgi-bin:$''{libdir}/cgi-bin:g' ${S}/config.layout
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/files/httpd-2.4.3-fix-race-issue-of-dir-install.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/files/httpd-2.4.3-fix-race-issue-of-dir-install.patch
deleted file mode 100644
index b948753..0000000
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/files/httpd-2.4.3-fix-race-issue-of-dir-install.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Upstream-Status: Pending
-
-fix following race issue when do parallel install
-| mkdir: cannot create directory `/home/mypc/workspace/poky/build_p4080ds_release/tmp/work/ppce500mc-fsl_networking-linux/apache2/2.4.3-r1/image/usr/share/apache2': File exists
-...
-| mkdir: cannot create directory `/home/mypc/workspace/poky/build_p4080ds_release/tmp/work/ppce500mc-fsl_networking-linux/apache2/2.4.3-r1/image/usr/share/apache2': File exists
-| make[1]: *** [install-man] Error 1
-| make[1]: *** Waiting for unfinished jobs....
-
--Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
---- httpd-2.4.3/build/mkdir.sh.orig	2013-01-25 03:47:21.565255420 -0600
-+++ httpd-2.4.3/build/mkdir.sh	2013-01-25 03:46:17.833051230 -0600
-@@ -39,7 +39,7 @@
-         esac
-         if test ! -d "$pathcomp"; then
-             echo "mkdir $pathcomp" 1>&2
--            mkdir "$pathcomp" || errstatus=$?
-+            mkdir -p "$pathcomp" || errstatus=$?
-         fi
-         pathcomp="$pathcomp/"
-     done
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.7.bb b/meta-openembedded/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.7.bb
index 4c3ca55..d6c449b 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.7.bb
+++ b/meta-openembedded/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.7.bb
@@ -2,7 +2,7 @@
 HOMEPAGE = "http://www.hiawatha-webserver.org"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe"
-DEPENDS = "libxml2 libxslt"
+DEPENDS = "libxml2 libxslt virtual/crypt"
 
 SECTION = "net"
 
@@ -23,7 +23,7 @@
 EXTRA_OECMAKE = " -DENABLE_IPV6=OFF \
                   -DENABLE_CACHE=OFF \
                   -DENABLE_DEBUG=OFF \
-                  -DENABLE_SSL=OFF \
+                  -DENABLE_TLS=OFF \
                   -DENABLE_TOOLKIT=OFF \
                   -DENABLE_CHROOT=OFF \
                   -DENABLE_XSLT=ON \
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc
index e6ae52a..24c2ced 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc
+++ b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc
@@ -9,7 +9,7 @@
 
 SECTION = "net"
 
-DEPENDS = "libpcre zlib openssl"
+DEPENDS = "libpcre zlib"
 
 SRC_URI = " \
     http://nginx.org/download/nginx-${PV}.tar.gz \
@@ -34,7 +34,10 @@
 EXTRA_OECONF = ""
 DISABLE_STATIC = ""
 
+PACKAGECONFIG ??= "ssl"
+
 PACKAGECONFIG[http2] = "--with-http_v2_module,,"
+PACKAGECONFIG[ssl] = "--with-http_ssl_module,,openssl"
 
 do_configure () {
     if [ "${SITEINFO_BITS}" = "64" ]; then
@@ -71,7 +74,7 @@
     --http-scgi-temp-path=/run/nginx/scgi_temp \
     --pid-path=/run/nginx/nginx.pid \
     --prefix=${prefix} \
-    --with-http_ssl_module \
+    --with-threads \
     --with-http_gzip_static_module \
     ${EXTRA_OECONF} ${PACKAGECONFIG_CONFARGS}
 }
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.12.2.bb b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.12.2.bb
deleted file mode 100644
index 85ad29b..0000000
--- a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.12.2.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require nginx.inc
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=903753de5f86a1ee0341fd2f9491b282"
-
-SRC_URI[md5sum] = "4d2fc76211435f029271f1cf6d7eeae3"
-SRC_URI[sha256sum] = "305f379da1d5fb5aefa79e45c829852ca6983c7cd2a79328f8e084a324cf0416"
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.13.9.bb b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.13.9.bb
deleted file mode 100644
index 9234794..0000000
--- a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.13.9.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require nginx.inc
-
-# 1.12.x branch is the current stable branch, the recommended default
-# 1.13.x is the current mainline branches containing all new features
-DEFAULT_PREFERENCE = "-1"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3691402cc54ce09f800ca348634a2dfe"
-
-SRC_URI[md5sum] = "dcd482dd98d2022659212f183e8fe81b"
-SRC_URI[sha256sum] = "5faea18857516fe68d30be39c3032bd22ed9cf85e1a6fdf32e3721d96ff7fa42"
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.15.1.bb b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.15.1.bb
new file mode 100644
index 0000000..0f1ba8f
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.15.1.bb
@@ -0,0 +1,10 @@
+require nginx.inc
+
+# 1.14.x branch is the current stable branch, the recommended default
+# 1.15.x is the current mainline branches containing all new features
+DEFAULT_PREFERENCE = "-1"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3691402cc54ce09f800ca348634a2dfe"
+
+SRC_URI[md5sum] = "2dd5a265c54a76b699443931d80a61b9"
+SRC_URI[sha256sum] = "c7206858d7f832b8ef73a45c9b8f8e436bcb1ee88db2bc85b8e438ecec9d5460"
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.15.2.bb b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.15.2.bb
new file mode 100644
index 0000000..3694f5b
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.15.2.bb
@@ -0,0 +1,6 @@
+require nginx.inc
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3691402cc54ce09f800ca348634a2dfe"
+
+SRC_URI[md5sum] = "d063f746d3dc4298aed9c518f1684166"
+SRC_URI[sha256sum] = "eeba09aecfbe8277ac33a5a2486ec2d6731739f3c1c701b42a0c3784af67ad90"
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nostromo/nostromo_1.9.6.bb b/meta-openembedded/meta-webserver/recipes-httpd/nostromo/nostromo_1.9.6.bb
index 16f45ce..a6b1ff0 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/nostromo/nostromo_1.9.6.bb
+++ b/meta-openembedded/meta-webserver/recipes-httpd/nostromo/nostromo_1.9.6.bb
@@ -16,7 +16,7 @@
 
 TARGET_CC_ARCH += "${LDFLAGS}"
 
-DEPENDS = "openssl groff-native base-passwd"
+DEPENDS = "openssl groff-native base-passwd virtual/crypt"
 
 inherit update-rc.d
 
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb b/meta-openembedded/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb
index 37bd753..8632b97 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb
+++ b/meta-openembedded/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb
@@ -4,7 +4,7 @@
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://src/thttpd.c;beginline=1;endline=26;md5=0c5762c2c34dcbe9eb18815516502872"
 
-DEPENDS += "base-passwd"
+DEPENDS += "base-passwd virtual/crypt"
 
 SRC_URI = "https://github.com/blueness/${BPN}/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz \
            file://thttpd.service \
@@ -19,7 +19,11 @@
 
 S = "${WORKDIR}/sthttpd-${PV}"
 
-inherit autotools update-rc.d systemd
+inherit autotools update-rc.d systemd update-alternatives
+
+ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE_${PN}-doc = "htpasswd.1"
+ALTERNATIVE_LINK_NAME[htpasswd.1] = "${mandir}/man1/htpasswd.1"
 
 SRV_DIR ?= "${servicedir}/www"
 
diff --git a/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.7.9.bb b/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.8.3.bb
similarity index 82%
rename from meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.7.9.bb
rename to meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.8.3.bb
index 071572d..975f631 100644
--- a/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.7.9.bb
+++ b/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.8.3.bb
@@ -4,15 +4,15 @@
 LICENSE = "GPLv2 & LGPLv3 & MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     file://vendor/tecnickcom/tcpdf/LICENSE.TXT;md5=5c87b66a5358ebcc495b03e0afcd342c \
-                    file://js/jquery/MIT-LICENSE.txt;md5=e43aa437a6a1ba421653bd5034333bf9 \
+                    file://js/vendor/jquery/MIT-LICENSE.txt;md5=e43aa437a6a1ba421653bd5034333bf9 \
 "
 
 SRC_URI = "https://files.phpmyadmin.net/phpMyAdmin/${PV}/phpMyAdmin-${PV}-all-languages.tar.xz \
            file://apache.conf \
 "
 
-SRC_URI[md5sum] = "0a862e3fa52c8b9078e0441ee82be831"
-SRC_URI[sha256sum] = "f19b503f0afb0dd3389d4bb11dab3f438d36e85eef11a5c400c592fd5f539398"
+SRC_URI[md5sum] = "c8a603f4b78d1dbcefc191b8ae598c79"
+SRC_URI[sha256sum] = "95f2692094d31c2c323d4767023583ab112ad54fff9e3af372710fcb676151af"
 
 UPSTREAM_CHECK_URI = "https://www.phpmyadmin.net/downloads/"
 UPSTREAM_CHECK_REGEX = "phpMyAdmin-(?P<pver>\d+(\.\d+)+)-all-languages.tar.xz"
@@ -38,4 +38,4 @@
 FILES_${PN} = "${datadir}/${BPN} \
                ${sysconfdir}/apache2/conf.d"
 
-RDEPENDS_${PN} += "bash"
+RDEPENDS_${PN} += "bash php-cli"
diff --git a/meta-openembedded/meta-webserver/recipes-php/xdebug/xdebug_2.6.0.bb b/meta-openembedded/meta-webserver/recipes-php/xdebug/xdebug_2.6.1.bb
similarity index 80%
rename from meta-openembedded/meta-webserver/recipes-php/xdebug/xdebug_2.6.0.bb
rename to meta-openembedded/meta-webserver/recipes-php/xdebug/xdebug_2.6.1.bb
index 6516988..773dbf3 100644
--- a/meta-openembedded/meta-webserver/recipes-php/xdebug/xdebug_2.6.0.bb
+++ b/meta-openembedded/meta-webserver/recipes-php/xdebug/xdebug_2.6.1.bb
@@ -6,8 +6,10 @@
 
 SRC_URI = "http://xdebug.org/files/xdebug-${PV}.tgz"
 
-SRC_URI[md5sum] = "ed3545852e6f4a00fb8730362d0431ee"
-SRC_URI[sha256sum] = "b5264cc03bf68fcbb04b97229f96dca505d7b87ec2fb3bd4249896783d29cbdc"
+SRC_URI[md5sum] = "35cc0f2e8b7d40556a9ad9afd9c49aee"
+SRC_URI[sha256sum] = "dae691d6c052073b886e0c6e1306a707bca9fd18a1e3485384ef6c4aacf1bd77"
+
+UPSTREAM_CHECK_REGEX = "xdebug-(?P<pver>\d+(\.\d+)+)\.tgz"
 
 inherit autotools
 
diff --git a/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi/Fix_EOF_not_declared_issue.patch b/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi/Fix_EOF_not_declared_issue.patch
deleted file mode 100644
index 51ddeaa..0000000
--- a/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi/Fix_EOF_not_declared_issue.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Upstream-Status: Pending
-
-Fix EOF not declared issue, following is the error log.
-fcgio.cpp:70:72: error: 'EOF' was not declared in this scope
-              if (FCGX_PutStr(pbase(), plen, this->fcgx) != plen) return EOF;
-
-Signed-off-by: Yang Haibo <b40869@freescale.com>
---- fcgi-ori/libfcgi/fcgio.cpp 2014-07-28 18:01:00.000000000 +0800
-+++ fcgi-2.4.0/libfcgi/fcgio.cpp       2014-07-28 18:01:22.000000000 +0800
-@@ -22,6 +22,7 @@
- #define DLLAPI  __declspec(dllexport)
- #endif
-
-+#include <stdio.h>
- #include <limits.h>
- #include "fcgio.h"
-
diff --git a/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi/add_foreign_to_AM_INIT_AUTOMAKE.patch b/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi/add_foreign_to_AM_INIT_AUTOMAKE.patch
index eca694a..eec9dd7 100644
--- a/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi/add_foreign_to_AM_INIT_AUTOMAKE.patch
+++ b/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi/add_foreign_to_AM_INIT_AUTOMAKE.patch
@@ -10,8 +10,8 @@
  dnl     to configure the system for the local environment.
  
 -AC_INIT
--AM_INIT_AUTOMAKE(fcgi, 2.4.0)
-+AC_INIT([fcgi], [2.4.0])
+-AM_INIT_AUTOMAKE(fcgi, 2.4.1-SNAP-0910052249)
++AC_INIT([fcgi], [2.4.1-SNAP-0910052249])
 +AM_INIT_AUTOMAKE([foreign])
  
  AM_CONFIG_HEADER(fcgi_config.h)
diff --git a/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi_2.4.0.bb b/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi_2.4.0.bb
deleted file mode 100644
index 48c5944..0000000
--- a/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi_2.4.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "FastCGI is a protocol for interfacing interactive programs with a web server."
-HOMEPAGE = "http://www.fastcgi.com"
-LICENSE = "OML"
-LIC_FILES_CHKSUM = "file://LICENSE.TERMS;md5=e3aacac3a647af6e7e31f181cda0a06a"
-
-SRC_URI = "http://fossies.org/linux/www/old/${BP}.tar.gz \
-           file://Fix_EOF_not_declared_issue.patch \
-           file://add_foreign_to_AM_INIT_AUTOMAKE.patch \
-"
-SRC_URI[md5sum] = "d15060a813b91383a9f3c66faf84867e"
-SRC_URI[sha256sum] = "66fc45c6b36a21bf2fbbb68e90f780cc21a9da1fffbae75e76d2b4402d3f05b9"
-
-inherit autotools
-
-PARALLEL_MAKE = ""
diff --git a/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi_git.bb b/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi_git.bb
new file mode 100644
index 0000000..a17e70f
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi_git.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "FastCGI is a protocol for interfacing interactive programs with a web server."
+HOMEPAGE = "http://www.fastcgi.com"
+LICENSE = "OML"
+LIC_FILES_CHKSUM = "file://LICENSE.TERMS;md5=e3aacac3a647af6e7e31f181cda0a06a"
+
+SRCREV = "68100b5b8cb26f04b784778ed19ccef4fe389f57"
+PV = "2.4.1+git${SRCPV}"
+
+SRC_URI = "git://github.com/FastCGI-Archives/fcgi2.git;protocol=https \
+           file://add_foreign_to_AM_INIT_AUTOMAKE.patch \
+"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+PARALLEL_MAKE = ""
