1*4882a593SmuzhiyunSUMMARY = "HTTP and reverse proxy server" 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunDESCRIPTION = "Nginx is a web server and a reverse proxy server for \ 4*4882a593SmuzhiyunHTTP, SMTP, POP3 and IMAP protocols, with a strong focus on high \ 5*4882a593Smuzhiyunconcurrency, performance and low memory usage." 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunHOMEPAGE = "http://nginx.org/" 8*4882a593SmuzhiyunLICENSE = "BSD-2-Clause" 9*4882a593Smuzhiyun 10*4882a593SmuzhiyunSECTION = "net" 11*4882a593Smuzhiyun 12*4882a593SmuzhiyunDEPENDS = "libpcre zlib" 13*4882a593Smuzhiyun 14*4882a593SmuzhiyunSRC_URI = " \ 15*4882a593Smuzhiyun http://nginx.org/download/nginx-${PV}.tar.gz \ 16*4882a593Smuzhiyun file://nginx-cross.patch \ 17*4882a593Smuzhiyun file://0001-Allow-the-overriding-of-the-endianness-via-the-confi.patch \ 18*4882a593Smuzhiyun file://nginx.conf \ 19*4882a593Smuzhiyun file://default_server.site \ 20*4882a593Smuzhiyun file://proxy_params \ 21*4882a593Smuzhiyun file://nginx.init \ 22*4882a593Smuzhiyun file://nginx-volatile.conf \ 23*4882a593Smuzhiyun file://nginx.service \ 24*4882a593Smuzhiyun file://nginx-fix-pidfile.patch \ 25*4882a593Smuzhiyun" 26*4882a593Smuzhiyun 27*4882a593Smuzhiyuninherit siteinfo update-rc.d useradd systemd 28*4882a593Smuzhiyun 29*4882a593SmuzhiyunSYSTEMD_SERVICE:${PN} = "nginx.service" 30*4882a593Smuzhiyun 31*4882a593SmuzhiyunCFLAGS:append = " -fPIE -pie" 32*4882a593SmuzhiyunCXXFLAGS:append = " -fPIE -pie" 33*4882a593Smuzhiyun 34*4882a593SmuzhiyunNGINX_WWWDIR ?= "${localstatedir}/www/localhost" 35*4882a593SmuzhiyunNGINX_USER ?= "www" 36*4882a593Smuzhiyun 37*4882a593SmuzhiyunEXTRA_OECONF = "" 38*4882a593SmuzhiyunDISABLE_STATIC = "" 39*4882a593Smuzhiyun 40*4882a593SmuzhiyunPACKAGECONFIG ??= "ssl" 41*4882a593Smuzhiyun 42*4882a593SmuzhiyunPACKAGECONFIG[gunzip] = "--with-http_gunzip_module,," 43*4882a593SmuzhiyunPACKAGECONFIG[http2] = "--with-http_v2_module,," 44*4882a593SmuzhiyunPACKAGECONFIG[ssl] = "--with-http_ssl_module,,openssl" 45*4882a593SmuzhiyunPACKAGECONFIG[http-auth-request] = "--with-http_auth_request_module,," 46*4882a593Smuzhiyun 47*4882a593Smuzhiyundo_configure () { 48*4882a593Smuzhiyun if [ "${SITEINFO_BITS}" = "64" ]; then 49*4882a593Smuzhiyun PTRSIZE=8 50*4882a593Smuzhiyun else 51*4882a593Smuzhiyun PTRSIZE=4 52*4882a593Smuzhiyun fi 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun echo $CFLAGS 55*4882a593Smuzhiyun echo $LDFLAGS 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun # Add the LDFLAGS to the main nginx link to avoid issues with missing GNU_HASH 58*4882a593Smuzhiyun echo "MAIN_LINK=\"\${MAIN_LINK} ${LDFLAGS}\"" >> auto/cc/conf 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun ./configure \ 61*4882a593Smuzhiyun --crossbuild=Linux:${TUNE_ARCH} \ 62*4882a593Smuzhiyun --with-endian=${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \ 63*4882a593Smuzhiyun --with-int=4 \ 64*4882a593Smuzhiyun --with-long=${PTRSIZE} \ 65*4882a593Smuzhiyun --with-long-long=8 \ 66*4882a593Smuzhiyun --with-ptr-size=${PTRSIZE} \ 67*4882a593Smuzhiyun --with-sig-atomic-t=${PTRSIZE} \ 68*4882a593Smuzhiyun --with-size-t=${PTRSIZE} \ 69*4882a593Smuzhiyun --with-off-t=8 \ 70*4882a593Smuzhiyun --with-time-t=${PTRSIZE} \ 71*4882a593Smuzhiyun --with-sys-nerr=132 \ 72*4882a593Smuzhiyun --conf-path=${sysconfdir}/nginx/nginx.conf \ 73*4882a593Smuzhiyun --http-log-path=${localstatedir}/log/nginx/access.log \ 74*4882a593Smuzhiyun --error-log-path=${localstatedir}/log/nginx/error.log \ 75*4882a593Smuzhiyun --http-client-body-temp-path=/run/nginx/client_body_temp \ 76*4882a593Smuzhiyun --http-proxy-temp-path=/run/nginx/proxy_temp \ 77*4882a593Smuzhiyun --http-fastcgi-temp-path=/run/nginx/fastcgi_temp \ 78*4882a593Smuzhiyun --http-uwsgi-temp-path=/run/nginx/uwsgi_temp \ 79*4882a593Smuzhiyun --http-scgi-temp-path=/run/nginx/scgi_temp \ 80*4882a593Smuzhiyun --pid-path=/run/nginx/nginx.pid \ 81*4882a593Smuzhiyun --prefix=${prefix} \ 82*4882a593Smuzhiyun --with-threads \ 83*4882a593Smuzhiyun --with-http_gzip_static_module \ 84*4882a593Smuzhiyun ${EXTRA_OECONF} ${PACKAGECONFIG_CONFARGS} 85*4882a593Smuzhiyun} 86*4882a593Smuzhiyun 87*4882a593Smuzhiyundo_install () { 88*4882a593Smuzhiyun oe_runmake 'DESTDIR=${D}' install 89*4882a593Smuzhiyun rm -fr ${D}${localstatedir}/run ${D}/run 90*4882a593Smuzhiyun if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then 91*4882a593Smuzhiyun install -d ${D}${sysconfdir}/tmpfiles.d 92*4882a593Smuzhiyun echo "d /run/${BPN} - - - -" \ 93*4882a593Smuzhiyun > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf 94*4882a593Smuzhiyun echo "d ${localstatedir}/log/${BPN} 0755 root root -" \ 95*4882a593Smuzhiyun >> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf 96*4882a593Smuzhiyun fi 97*4882a593Smuzhiyun install -d ${D}${sysconfdir}/${BPN} 98*4882a593Smuzhiyun ln -rs ${D}${localstatedir}/run/${BPN} ${D}${sysconfdir}/${BPN}/run 99*4882a593Smuzhiyun install -d ${D}${NGINX_WWWDIR} 100*4882a593Smuzhiyun mv ${D}${exec_prefix}/html ${D}${NGINX_WWWDIR}/ 101*4882a593Smuzhiyun chown ${NGINX_USER}:www-data -R ${D}${NGINX_WWWDIR} 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun install -d ${D}${sysconfdir}/init.d 104*4882a593Smuzhiyun install -m 0755 ${WORKDIR}/nginx.init ${D}${sysconfdir}/init.d/nginx 105*4882a593Smuzhiyun sed -i 's,/usr/sbin/,${sbindir}/,g' ${D}${sysconfdir}/init.d/nginx 106*4882a593Smuzhiyun sed -i 's,/etc/,${sysconfdir}/,g' ${D}${sysconfdir}/init.d/nginx 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun install -d ${D}${sysconfdir}/nginx 109*4882a593Smuzhiyun install -m 0644 ${WORKDIR}/nginx.conf ${D}${sysconfdir}/nginx/nginx.conf 110*4882a593Smuzhiyun sed -i 's,/etc/,${sysconfdir}/,g' ${D}${sysconfdir}/nginx/nginx.conf 111*4882a593Smuzhiyun sed -i 's,/var/,${localstatedir}/,g' ${D}${sysconfdir}/nginx/nginx.conf 112*4882a593Smuzhiyun sed -i 's/^user.*/user ${NGINX_USER};/g' ${D}${sysconfdir}/nginx/nginx.conf 113*4882a593Smuzhiyun install -Dm 0644 ${WORKDIR}/default_server.site ${D}${sysconfdir}/nginx/sites-available/default_server 114*4882a593Smuzhiyun sed -i 's,/var/,${localstatedir}/,g' ${D}${sysconfdir}/nginx/sites-available/default_server 115*4882a593Smuzhiyun install -d ${D}${sysconfdir}/nginx/sites-enabled 116*4882a593Smuzhiyun ln -s ../sites-available/default_server ${D}${sysconfdir}/nginx/sites-enabled/ 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun install -m 0644 ${WORKDIR}/proxy_params ${D}${sysconfdir}/nginx/proxy_params 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun install -d ${D}${sysconfdir}/default/volatiles 121*4882a593Smuzhiyun install -m 0644 ${WORKDIR}/nginx-volatile.conf ${D}${sysconfdir}/default/volatiles/99_nginx 122*4882a593Smuzhiyun sed -i 's,/var/,${localstatedir}/,g' ${D}${sysconfdir}/default/volatiles/99_nginx 123*4882a593Smuzhiyun sed -i 's,@NGINX_USER@,${NGINX_USER},g' ${D}${sysconfdir}/default/volatiles/99_nginx 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun # cleanup configuration folder 126*4882a593Smuzhiyun rm ${D}${sysconfdir}/nginx/*.default 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun # add additional configuration folders 129*4882a593Smuzhiyun install -d ${D}${sysconfdir}/nginx/modules-available 130*4882a593Smuzhiyun install -d ${D}${sysconfdir}/nginx/modules-enabled 131*4882a593Smuzhiyun install -d ${D}${sysconfdir}/nginx/server-conf.d 132*4882a593Smuzhiyun install -d ${D}${sysconfdir}/nginx/conf.d 133*4882a593Smuzhiyun 134*4882a593Smuzhiyun if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)};then 135*4882a593Smuzhiyun install -d ${D}${systemd_unitdir}/system 136*4882a593Smuzhiyun install -m 0644 ${WORKDIR}/nginx.service ${D}${systemd_unitdir}/system/ 137*4882a593Smuzhiyun sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \ 138*4882a593Smuzhiyun -e 's,@LOCALSTATEDIR@,${localstatedir},g' \ 139*4882a593Smuzhiyun -e 's,@SBINDIR@,${sbindir},g' \ 140*4882a593Smuzhiyun -e 's,@BASE_BINDIR@,${base_bindir},g' \ 141*4882a593Smuzhiyun ${D}${systemd_unitdir}/system/nginx.service 142*4882a593Smuzhiyun fi 143*4882a593Smuzhiyun 144*4882a593Smuzhiyun rm -rf ${D}${localstatedir}/log/ 145*4882a593Smuzhiyun} 146*4882a593Smuzhiyun 147*4882a593Smuzhiyunpkg_postinst:${PN} () { 148*4882a593Smuzhiyun if [ -z "$D" ]; then 149*4882a593Smuzhiyun if type systemd-tmpfiles >/dev/null; then 150*4882a593Smuzhiyun systemd-tmpfiles --create 151*4882a593Smuzhiyun elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then 152*4882a593Smuzhiyun ${sysconfdir}/init.d/populate-volatile.sh update 153*4882a593Smuzhiyun fi 154*4882a593Smuzhiyun fi 155*4882a593Smuzhiyun} 156*4882a593Smuzhiyun 157*4882a593SmuzhiyunFILES:${PN} += " \ 158*4882a593Smuzhiyun ${localstatedir}/ \ 159*4882a593Smuzhiyun ${systemd_unitdir}/system/nginx.service \ 160*4882a593Smuzhiyun" 161*4882a593Smuzhiyun 162*4882a593SmuzhiyunCONFFILES:${PN} = " \ 163*4882a593Smuzhiyun ${sysconfdir}/nginx/nginx.conf \ 164*4882a593Smuzhiyun ${sysconfdir}/nginx/fastcgi.conf \ 165*4882a593Smuzhiyun ${sysconfdir}/nginx/fastcgi_params \ 166*4882a593Smuzhiyun ${sysconfdir}/nginx/koi-utf \ 167*4882a593Smuzhiyun ${sysconfdir}/nginx/koi-win \ 168*4882a593Smuzhiyun ${sysconfdir}/nginx/mime.types \ 169*4882a593Smuzhiyun ${sysconfdir}/nginx/scgi_params \ 170*4882a593Smuzhiyun ${sysconfdir}/nginx/uwsgi_params \ 171*4882a593Smuzhiyun ${sysconfdir}/nginx/win-utf \ 172*4882a593Smuzhiyun" 173*4882a593Smuzhiyun 174*4882a593SmuzhiyunINITSCRIPT_NAME = "nginx" 175*4882a593SmuzhiyunINITSCRIPT_PARAMS = "defaults 92 20" 176*4882a593Smuzhiyun 177*4882a593SmuzhiyunUSERADD_PACKAGES = "${PN}" 178*4882a593SmuzhiyunUSERADD_PARAM:${PN} = " \ 179*4882a593Smuzhiyun --system --no-create-home \ 180*4882a593Smuzhiyun --home ${NGINX_WWWDIR} \ 181*4882a593Smuzhiyun --groups www-data \ 182*4882a593Smuzhiyun --user-group ${NGINX_USER}" 183