You are not logged in.
Pages: 1
I am trying to get nginx recompiled. The arch package does not include webdav (--with-http_dav_module) and I use it on my site.
With abs I copied and modified the PKGBUILD file to add the --with-http_dav_module flag to the ./configure statement. The problem is that when I run makepkg, I am told that pcre cannot be found. I know it is installed, but can't seem to figure out how to get the PKGBUILD to include /usr/lib as a search path for pcre. How do I get this to compile?
Thanks.
Last edited by taligent (2009-09-30 08:21:49)
Offline
Post your PKGBUILD for us might help...?
Are you familiar with our Forum Rules, and How To Ask Questions The Smart Way?
BlueHackers // fscanary // resticctl
Offline
Here it is it comes straight out of abs. The only exception is the addition of --with-http_dav_module:
# $Id: PKGBUILD 2308 2009-09-14 20:47:36Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Miroslaw Szot <mss@czlug.icis.pcz.pl>
_doc_root=/srv/http/nginx
_server_root=/etc/nginx
_conf_path=${_server_root}/conf
_tmp_path=/var/spool/nginx
_log_path=/var/log/nginx
_user=http
_group=http
pkgname=nginx
pkgver=0.7.62
pkgrel=1
pkgdesc="lightweight HTTP server and IMAP/POP3 proxy server"
arch=('i686' 'x86_64')
depends=('pcre' 'zlib' 'openssl')
url="http://nginx.net/"
license=('custom')
backup=("${_conf_path#/}/nginx.conf" \
"${_conf_path#/}/koi-win" \
"${_conf_path#/}/koi-utf" \
"${_conf_path#/}/win-utf" \
"${_conf_path#/}/mime.types" \
"${_conf_path#/}/fastcgi_params" \
"etc/logrotate.d/nginx")
source=(http://sysoev.ru/nginx/nginx-${pkgver}.tar.gz \
nginx)
md5sums=('ab22f1b7f098a90d803a3abb94d23f7e'
'0eb8611bf5bc1192ee7ee606fce772e2')
build() {
local _src_dir=$startdir/src/nginx-${pkgver}
local _build_dir=$_src_dir/objs
cd $_src_dir
./configure \
--prefix=${_server_root} \
--sbin-path=/usr/sbin/nginx \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--http-client-body-temp-path=${_tmp_path}/client_body_temp \
--http-proxy-temp-path=${_tmp_path}/proxy_temp \
--http-fastcgi-temp-path=${_tmp_path}/fastcgi_temp \
--http-log-path=${_log_path}/access.log \
--error-log-path=${_log_path}/error.log \
--user=${_user} --group=${_group} \
--with-imap --with-imap_ssl_module --with-http_ssl_module \
--with-http_stub_status_module --with-http_dav_module
make || return 1
make DESTDIR=$startdir/pkg install || return 1
install -d $startdir/pkg/etc/logrotate.d/
cat <<- EOF > $startdir/pkg/etc/logrotate.d/nginx
$_log_path/*log {
create 640 http log
compress
postrotate
/bin/kill -HUP `cat /var/run/nginx.pid 2>/dev/null` 2> /dev/null || true
endscript
}
EOF
sed -i -e "s/\<user\s\+\w\+;/user $_user;/g" $startdir/pkg/$_conf_path/nginx.conf
install -d $startdir/pkg/$_tmp_path
# move default document root outside server root
install -d $startdir/pkg/$_doc_root
mv $startdir/pkg/$_server_root/html/* $startdir/pkg/$_doc_root/
rm -rf $startdir/pkg/$_server_root/html
rm -f $startdir/pkg/$_doc_root/index.html
# let's create links for relative paths in config file
ln -s $_log_path ${startdir}/pkg/$_server_root/logs && \
ln -s $_doc_root ${startdir}/pkg/$_server_root/html || return 1
install -D -m755 $startdir/src/nginx $startdir/pkg/etc/rc.d/nginx && \
install -D -m644 LICENSE $startdir/pkg/usr/share/licenses/nginx/LICENSE && \
mkdir -p $pkgdir/etc/conf.d && \
echo "NGINX_CONFIG=/etc/nginx/conf/nginx.conf" >$pkgdir/etc/conf.d/nginx
}
Offline
Builds fine here.
Offline
That's the problem. I get the following error listing when running makepkg:
checking for OS
+ Linux 2.6.24-23-xen x86_64
checking for C compiler ... found
+ using GNU C compiler
checking for gcc variadic macros ... not found
checking for C99 variadic macros ... not found
checking for unistd.h ... found
checking for inttypes.h ... found
checking for limits.h ... found
checking for sys/filio.h ... not found
checking for sys/param.h ... found
checking for sys/mount.h ... found
checking for sys/statvfs.h ... found
checking for crypt.h ... found
checking for Linux specific features
checking for epoll ... not found
checking for sendfile() ... not found
checking for sendfile64() ... not found
checking for sys/prctl.h ... found
checking for prctl(PR_SET_DUMPABLE) ... not found
checking for sched_setaffinity() ... not found
checking for crypt_r() ... not found
checking for sys/vfs.h ... found
checking for poll() ... not found
checking for /dev/poll ... not found
checking for kqueue ... not found
checking for crypt() ... not found
checking for crypt() in libcrypt ... not found
checking for O_DIRECT ... not found
checking for F_NOCACHE ... not found
checking for directio() ... not found
checking for statfs() ... not found
checking for statvfs() ... not found
checking for dlopen() ... not found
checking for dlopen() in libdl ... not found
checking for sched_yield() ... not found
checking for sched_yield() in librt ... not found
checking for PCRE library ... not found
checking for PCRE library in /usr/local/ ... not found
checking for PCRE library in /usr/include/pcre/ ... not found
checking for PCRE library in /usr/pkg/ ... not found
checking for PCRE library in /opt/local/ ... not found
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.
make: *** No rule to make target `build', needed by `default'. Stop.
I am not up on how fakeroot works, but it feels like pacman is not picking up my environment and as a result fails to find pcre which is definitely installed. Of course it is failing to find anything else as well. Any ideas?
Offline
Found the problem. I had edited makepkg.conf the other day and set march-inative. Dang. Anyway, modifying that fixed everything.
Now if we can just get Arch to compile nginx with dav support so I don't have to recompile every time nginx is updated...
Offline
Pages: 1