diff options
Diffstat (limited to 'meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc')
-rw-r--r-- | meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc new file mode 100644 index 0000000000..e6ae52a09f --- /dev/null +++ b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc @@ -0,0 +1,156 @@ +SUMMARY = "HTTP and reverse proxy server" + +DESCRIPTION = "Nginx is a web server and a reverse proxy server for \ +HTTP, SMTP, POP3 and IMAP protocols, with a strong focus on high \ +concurrency, performance and low memory usage." + +HOMEPAGE = "http://nginx.org/" +LICENSE = "BSD-2-Clause" + +SECTION = "net" + +DEPENDS = "libpcre zlib openssl" + +SRC_URI = " \ + http://nginx.org/download/nginx-${PV}.tar.gz \ + file://nginx-cross.patch \ + file://0001-Allow-the-overriding-of-the-endianness-via-the-confi.patch \ + file://nginx.conf \ + file://nginx.init \ + file://nginx-volatile.conf \ + file://nginx.service \ +" + +inherit siteinfo update-rc.d useradd systemd + +SYSTEMD_SERVICE_${PN} = "nginx.service" + +CFLAGS_append = " -fPIE -pie" +CXXFLAGS_append = " -fPIE -pie" + +NGINX_WWWDIR ?= "${localstatedir}/www/localhost" +NGINX_USER ?= "www" + +EXTRA_OECONF = "" +DISABLE_STATIC = "" + +PACKAGECONFIG[http2] = "--with-http_v2_module,," + +do_configure () { + if [ "${SITEINFO_BITS}" = "64" ]; then + PTRSIZE=8 + else + PTRSIZE=4 + fi + + echo $CFLAGS + echo $LDFLAGS + + # Add the LDFLAGS to the main nginx link to avoid issues with missing GNU_HASH + echo "MAIN_LINK=\"\${MAIN_LINK} ${LDFLAGS}\"" >> auto/cc/conf + + ./configure \ + --crossbuild=Linux:${TUNE_ARCH} \ + --with-endian=${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \ + --with-int=4 \ + --with-long=${PTRSIZE} \ + --with-long-long=8 \ + --with-ptr-size=${PTRSIZE} \ + --with-sig-atomic-t=${PTRSIZE} \ + --with-size-t=${PTRSIZE} \ + --with-off-t=${PTRSIZE} \ + --with-time-t=${PTRSIZE} \ + --with-sys-nerr=132 \ + --conf-path=${sysconfdir}/nginx/nginx.conf \ + --http-log-path=${localstatedir}/log/nginx/access.log \ + --error-log-path=${localstatedir}/log/nginx/error.log \ + --http-client-body-temp-path=/run/nginx/client_body_temp \ + --http-proxy-temp-path=/run/nginx/proxy_temp \ + --http-fastcgi-temp-path=/run/nginx/fastcgi_temp \ + --http-uwsgi-temp-path=/run/nginx/uwsgi_temp \ + --http-scgi-temp-path=/run/nginx/scgi_temp \ + --pid-path=/run/nginx/nginx.pid \ + --prefix=${prefix} \ + --with-http_ssl_module \ + --with-http_gzip_static_module \ + ${EXTRA_OECONF} ${PACKAGECONFIG_CONFARGS} +} + +do_install () { + oe_runmake 'DESTDIR=${D}' install + rm -fr ${D}${localstatedir}/run ${D}/run + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/tmpfiles.d + echo "d /run/${BPN} - - - -" \ + > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf + echo "d /${localstatedir}/log/${BPN} 0755 root root -" \ + >> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf + fi + install -d ${D}${sysconfdir}/${BPN} + ln -snf ${localstatedir}/run/${BPN} ${D}${sysconfdir}/${BPN}/run + install -d ${D}${NGINX_WWWDIR} + mv ${D}/usr/html ${D}${NGINX_WWWDIR}/ + chown ${NGINX_USER}:www-data -R ${D}${NGINX_WWWDIR} + + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/nginx.init ${D}${sysconfdir}/init.d/nginx + sed -i 's,/usr/sbin/,${sbindir}/,g' ${D}${sysconfdir}/init.d/nginx + sed -i 's,/etc/,${sysconfdir}/,g' ${D}${sysconfdir}/init.d/nginx + + install -d ${D}${sysconfdir}/nginx + install -m 0644 ${WORKDIR}/nginx.conf ${D}${sysconfdir}/nginx/nginx.conf + sed -i 's,/var/,${localstatedir}/,g' ${D}${sysconfdir}/nginx/nginx.conf + sed -i 's/^user.*/user ${NGINX_USER};/g' ${D}${sysconfdir}/nginx/nginx.conf + install -d ${D}${sysconfdir}/nginx/sites-enabled + + install -d ${D}${sysconfdir}/default/volatiles + install -m 0644 ${WORKDIR}/nginx-volatile.conf ${D}${sysconfdir}/default/volatiles/99_nginx + sed -i 's,/var/,${localstatedir}/,g' ${D}${sysconfdir}/default/volatiles/99_nginx + sed -i 's,@NGINX_USER@,${NGINX_USER},g' ${D}${sysconfdir}/default/volatiles/99_nginx + + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)};then + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/nginx.service ${D}${systemd_unitdir}/system/ + sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \ + -e 's,@LOCALSTATEDIR@,${localstatedir},g' \ + -e 's,@SBINDIR@,${sbindir},g' \ + ${D}${systemd_unitdir}/system/nginx.service + fi +} + +pkg_postinst_${PN} () { + if [ -z "$D" ]; then + if type systemd-tmpfiles >/dev/null; then + systemd-tmpfiles --create + elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then + ${sysconfdir}/init.d/populate-volatile.sh update + fi + fi +} + +FILES_${PN} += " \ + ${localstatedir}/ \ + ${systemd_unitdir}/system/nginx.service \ +" + +CONFFILES_${PN} = " \ + ${sysconfdir}/nginx/nginx.conf \ + ${sysconfdir}/nginx/fastcgi.conf \ + ${sysconfdir}/nginx/fastcgi_params \ + ${sysconfdir}/nginx/koi-utf \ + ${sysconfdir}/nginx/koi-win \ + ${sysconfdir}/nginx/mime.types \ + ${sysconfdir}/nginx/scgi_params \ + ${sysconfdir}/nginx/uwsgi_params \ + ${sysconfdir}/nginx/win-utf \ +" + +INITSCRIPT_NAME = "nginx" +INITSCRIPT_PARAMS = "defaults 92 20" + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = " \ + --system --no-create-home \ + --home ${NGINX_WWWDIR} \ + --groups www-data \ + --user-group ${NGINX_USER}" |