Skip to content
Snippets Groups Projects
PKGBUILD 4.96 KiB
Newer Older
  • Learn to ignore specific revisions
  • T.J. Townsend's avatar
    T.J. Townsend committed
    # Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
    # Maintainer: T.J. Townsend <blakkheim@archlinux.org>
    # Maintainer: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
    # Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
    
    Bartłomiej Piotrowski's avatar
    Bartłomiej Piotrowski committed
    # Contributor: Sébastien Luttringer
    
    # Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
    # Contributor: Miroslaw Szot <mss@czlug.icis.pcz.pl>
    # Contributor: Daniel Micay <danielmicay@gmail.com>
    
    
    Bartłomiej Piotrowski's avatar
    Bartłomiej Piotrowski committed
    pkgbase=nginx
    pkgname=(nginx nginx-src)
    
    T.J. Townsend's avatar
    T.J. Townsend committed
    pkgver=1.26.0
    
    arch=(x86_64)
    
    url='https://nginx.org'
    
    license=(custom)
    
    makedepends=(mercurial pcre2 zlib openssl geoip mailcap libxcrypt)
    
    checkdepends=(perl perl-gd perl-io-socket-ssl perl-fcgi perl-cache-memcached
    
    Levente Polyak's avatar
    Levente Polyak committed
                  memcached ffmpeg)
    
    backup=(etc/nginx/fastcgi.conf
            etc/nginx/fastcgi_params
            etc/nginx/koi-win
            etc/nginx/koi-utf
            etc/nginx/nginx.conf
            etc/nginx/scgi_params
            etc/nginx/uwsgi_params
            etc/nginx/win-utf
            etc/logrotate.d/nginx)
    
    source=($url/download/nginx-$pkgver.tar.gz{,.asc}
    
    T.J. Townsend's avatar
    T.J. Townsend committed
            hg+https://hg.nginx.org/nginx-tests
    
    T.J. Townsend's avatar
    T.J. Townsend committed
            logrotate)
    
    T.J. Townsend's avatar
    T.J. Townsend committed
    # https://nginx.org/en/pgp_keys.html
    
    T.J. Townsend's avatar
    T.J. Townsend committed
    validpgpkeys=('B0F4253373F8F6F510D42178520A9993A1C052F8'  # Maxim Dounin <mdounin@mdounin.ru>
                  '43387825DDB1BB97EC36BA5D007C8D7C15D87369'  # Roman Arutyunyan <r.arutyunyan@f5.com>
                  'D6786CE303D9A9022998DC6CC8464D549AF75C0A'  # Sergey Kandaurov <s.kandaurov@f5.com>
    
    Giancarlo Razzolini's avatar
    Giancarlo Razzolini committed
                  '13C82A63B603576156E30A4EA0EA981B66B0D967') # Konstantin Pavlov <thresh@nginx.com>
    
    T.J. Townsend's avatar
    T.J. Townsend committed
    sha512sums=('1f604a4a29f1b74eb56de7f1d8b0e5610fa055280b4ad2d3550c56926460de24da81b17485cffb358d8814061d4a9db1e0e5079af7921f1dc329e283e2775791'
    
    Felix Yan's avatar
    Felix Yan committed
                'SKIP'
                'SKIP'
    
                'ca7d8666177d31b6c4924e9ab44ddf3d5b596b51da04d38da002830b03bd176d49354bbdd2a496617d57f44111ad59833296af87d03ffe3fca6b99327a7b4c3c'
    
    T.J. Townsend's avatar
    T.J. Townsend committed
                '2f4dfcfa711b8bcbc5918ba635f5e430ef7132e66276261ade62bb1cba016967432c8dce7f84352cb8b07dc7c6b18f09177aa3eb92c8e358b2a106c8ca142fe9')
    
      --with-compat
    
    Bartłomiej Piotrowski's avatar
    Bartłomiej Piotrowski committed
      --with-debug
    
      --with-file-aio
      --with-http_addition_module
      --with-http_auth_request_module
      --with-http_dav_module
      --with-http_degradation_module
      --with-http_flv_module
      --with-http_geoip_module
      --with-http_gunzip_module
      --with-http_gzip_static_module
      --with-http_mp4_module
    
      --with-http_random_index_module
    
      --with-http_realip_module
      --with-http_secure_link_module
    
      --with-http_ssl_module
      --with-http_stub_status_module
      --with-http_sub_module
    
      --with-http_v2_module
    
      --with-http_v3_module
    
      --with-mail
      --with-mail_ssl_module
    
      --with-pcre-jit
    
      --with-stream
    
      --with-stream_geoip_module
      --with-stream_realip_module
    
      --with-stream_ssl_module
    
      --with-stream_ssl_preread_module
    
      --with-threads
    
    Bartłomiej Piotrowski's avatar
    Bartłomiej Piotrowski committed
    prepare() {
      cp -r $pkgbase-$pkgver{,-src}
    }
    
    
    Bartłomiej Piotrowski's avatar
    Bartłomiej Piotrowski committed
      cd $pkgbase-$pkgver
    
      ./configure \
        --prefix=/etc/nginx \
        --conf-path=/etc/nginx/nginx.conf \
        --sbin-path=/usr/bin/nginx \
        --pid-path=/run/nginx.pid \
        --lock-path=/run/lock/nginx.lock \
        --user=http \
        --group=http \
        --http-log-path=/var/log/nginx/access.log \
        --error-log-path=stderr \
        --http-client-body-temp-path=/var/lib/nginx/client-body \
        --http-proxy-temp-path=/var/lib/nginx/proxy \
        --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
        --http-scgi-temp-path=/var/lib/nginx/scgi \
        --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \
    
        --with-cc-opt="$CFLAGS $CPPFLAGS" \
        --with-ld-opt="$LDFLAGS" \
    
        "${_common_flags[@]}" \
        "${_stable_flags[@]}"
    
    check() {
      cd nginx-tests
    
    Bartłomiej Piotrowski's avatar
    Bartłomiej Piotrowski committed
      TEST_NGINX_BINARY="$srcdir/$pkgbase-$pkgver/objs/nginx" prove .
    
    Bartłomiej Piotrowski's avatar
    Bartłomiej Piotrowski committed
    package_nginx() {
    
      pkgdesc='Lightweight HTTP server and IMAP/POP3 proxy server'
      depends=(pcre2 zlib openssl geoip mailcap libxcrypt)
    
    
    Bartłomiej Piotrowski's avatar
    Bartłomiej Piotrowski committed
      cd $pkgbase-$pkgver
    
    Giancarlo Razzolini's avatar
    Giancarlo Razzolini committed
      sed -e 's|\<user\s\+\w\+;|user http;|g' \
    
        -e '44s|html|/usr/share/nginx/html|' \
        -e '54s|html|/usr/share/nginx/html|' \
        -i "$pkgdir"/etc/nginx/nginx.conf
    
      rm "$pkgdir"/etc/nginx/*.default
    
      rm "$pkgdir"/etc/nginx/mime.types  # in mailcap
    
    
      install -d "$pkgdir"/var/lib/nginx
      install -dm700 "$pkgdir"/var/lib/nginx/proxy
    
    
      chmod 755 "$pkgdir"/var/log/nginx
    
      chown root:root "$pkgdir"/var/log/nginx
    
    
      install -d "$pkgdir"/usr/share/nginx
      mv "$pkgdir"/etc/nginx/html/ "$pkgdir"/usr/share/nginx
    
      install -Dm644 ../logrotate "$pkgdir"/etc/logrotate.d/nginx
    
      install -Dm644 ../nginx.service "$pkgdir"/usr/lib/systemd/system/nginx.service
    
      install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgbase/LICENSE
    
      install -Dm0644 objs/nginx.8 "$pkgdir"/usr/share/man/man8/nginx.8
    
    Giancarlo Razzolini's avatar
    Giancarlo Razzolini committed
      for i in ftdetect ftplugin indent syntax; do
    
        install -Dm644 contrib/vim/$i/nginx.vim \
          "$pkgdir/usr/share/vim/vimfiles/$i/nginx.vim"
    
    Bartłomiej Piotrowski's avatar
    Bartłomiej Piotrowski committed
    
    package_nginx-src() {
    
      pkgdesc="Source code of nginx $pkgver, useful for building modules"
    
    Bartłomiej Piotrowski's avatar
    Bartłomiej Piotrowski committed
      install -d "$pkgdir/usr/src"
      cp -r $pkgbase-$pkgver-src "$pkgdir/usr/src/nginx"
    }