# Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ inherit eutils ssl-cert toolchain-funcs perl-module DESCRIPTION="Robust, small and high performance http and reverse proxy server" HOMEPAGE="http://nginx.net/" SRC_URI="http://sysoev.ru/nginx/${P}.tar.gz pamauth? ( http://web.iti.upv.es/~sto/nginx/ngx_http_auth_pam_module-1.1.tar.gz )" LICENSE="BSD" SLOT="0" KEYWORDS="~amd64 ~ppc ~x86 ~x86-fbsd" IUSE="addition aio debug fastcgi flv imap ipv6 pamauth passenger pcre perl pop random-index securelink ssl status sub vim-syntax webdav zlib" DEPEND="dev-lang/perl dev-libs/openssl pcre? ( >=dev-libs/libpcre-4.2 ) zlib? ( sys-libs/zlib ) perl? ( >=dev-lang/perl-5.8 ) pamauth? ( sys-libs/pam ) vim-syntax? ( app-vim/nginx-syntax )" pkg_setup() { ebegin "Creating nginx user and group" enewgroup ${PN} enewuser ${PN} -1 -1 -1 ${PN} eend ${?} } src_unpack() { unpack ${A} sed -i 's/ make/ \\$(MAKE)/' "${S}"/auto/lib/perl/make || die } src_compile() { local myconf # threads support is broken atm. # # if use threads; then # einfo # ewarn "threads support is experimental at the moment" # ewarn "do not use it on production systems - you've been warned" # einfo # myconf="${myconf} --with-threads" # fi use addition && myconf="${myconf} --with-http_addition_module" # --- works only with kernel > 2.6.22 use aio && myconf="${myconf} --with-file-aio" use ipv6 && myconf="${myconf} --with-ipv6" use fastcgi || myconf="${myconf} --without-http_fastcgi_module" use fastcgi && myconf="${myconf} --with-http_realip_module" use flv && myconf="${myconf} --with-http_flv_module" use zlib || myconf="${myconf} --without-http_gzip_module" use pcre || { myconf="${myconf} --without-pcre --without-http_rewrite_module" } use debug && myconf="${myconf} --with-debug" use ssl && myconf="${myconf} --with-http_ssl_module" use perl && myconf="${myconf} --with-http_perl_module" use pamauth && myconf="${myconf} --add-module=../ngx_http_auth_pam_module-1.1" use status && myconf="${myconf} --with-http_stub_status_module" use webdav && myconf="${myconf} --with-http_dav_module" use sub && myconf="${myconf} --with-http_sub_module" use realip && myconf="${myconf} --with-http_realip_module" use static-gzip && myconf="${myconf} --with-http_gzip_static_module" use random-index && myconf="${myconf} --with-http_random_index_module" use securelink && myconf="${myconf} --with-http_secure_link_module" use passenger && myconf="${myconf} --add-module=`passenger-config --root`/ext/nginx" if use smtp || use pop || use imap; then myconf="${myconf} --with-mail" use ssl && myconf="${myconf} --with-mail_ssl_module" fi use imap || myconf="${myconf} --without-mail_imap_module" use pop || myconf="${myconf} --without-mail_pop3_module" use smtp || myconf="${myconf} --without-mail_smtp_module" tc-export CC ./configure \ --prefix=/usr \ --with-cc-opt="-I${ROOT}/usr/include" \ --with-ld-opt="-L${ROOT}/usr/lib" \ --conf-path=/etc/${PN}/${PN}.conf \ --http-log-path=/var/log/${PN}/access_log \ --error-log-path=/var/log/${PN}/error_log \ --pid-path=/var/run/${PN}.pid \ --http-client-body-temp-path=/var/tmp/${PN}/client \ --http-proxy-temp-path=/var/tmp/${PN}/proxy \ --http-fastcgi-temp-path=/var/tmp/${PN}/fastcgi \ --with-md5-asm --with-md5=/usr/include \ --with-sha1-asm --with-sha1=/usr/include \ ${myconf} || die "configure failed" emake LINK="${CC} ${LDFLAGS}" OTHERLDFLAGS="${LDFLAGS}" || die "failed to compile" } src_install() { keepdir /var/{log,cache}/${PN} /var/tmp/${PN}/{client,proxy,fastcgi} dosbin objs/nginx newinitd "${FILESDIR}"/nginx-r1 nginx || die cp "${FILESDIR}"/nginx.conf-r4 conf/nginx.conf dodir /etc/${PN} insinto /etc/${PN} doins conf/* dodoc CHANGES{,.ru} README # logrotate insinto /etc/logrotate.d newins "${FILESDIR}"/nginx.logrotate nginx || die use perl && { cd "${S}"/objs/src/http/modules/perl/ einstall DESTDIR="${D}" INSTALLDIRS=vendor || die "failed to install perl stuff" fixlocalpod } } pkg_postinst() { use ssl && { if [ ! -f "${ROOT}"/etc/ssl/${PN}/${PN}.key ]; then install_cert /etc/ssl/${PN}/${PN} chown ${PN}:${PN} "${ROOT}"/etc/ssl/${PN}/${PN}.{crt,csr,key,pem} fi } }