Paul Wouters
2006-Sep-26 15:04 UTC
[Fedora-xen] %{_libdir} wrong on x86_64 xenU on FC5 from xenguest-install.py
On Tue, 26 Sep 2006, Paul Wouters wrote: An update on this. It is not apache specific. It seems the stock FC5 xenguest-install.py on x86_64, despite running the proper 64bit kernel/userland, is somehow using /usr/lib as %{_libdir}. This is odd, as it is a virgin xenguest install from a x86_86 xen0, where the xen0 properly expands %{_libdir} to /usr/lib64, but the installed xenU does not. I''ve changed the bugzilla item to the xen component. Paul> Date: Tue, 26 Sep 2006 08:11:15 +0200 (CEST) > From: Paul Wouters <paul@xelerance.com> > Cc: fedora-devel-list@redhat.com > To: Discussion related to Fedora Extras <fedora-extras-list@redhat.com> > Subject: multiple apache module packages fail on %{_libdir} on x86_64 on FC5 > > > ( filed as https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=208059 but posting > here anyway, as it might cause faulty builds for extras apache modules as well) > > (someone prob needs to approve the fedora-devel-list CC:, if it doesnt'' auto bounce) > > I was in the process of making a new apache module (mod_auth_radius). A problem I > ran into was that despite using %{_libdir}, the module would install in > /usr/lib/httpd/modules instead of /usr/lib64/httpd/modules. This is on an FC5 > xenu build with xenguest-install.py on a P4 with an x86_64 kernel. > > I checked what I could have done wrong by testing two random other modules from > extras, mod_cband and mod_security. They turned out to suffer from the same > problem, they also install in the wrong directory. > > So I decided to look at a core module, and picked mod_auth_mysql, which turns > out to not even build on x86_64, with a failure to link against libmysqlclient, > which is indeed a missing Require (which I bugzilla''ed), but after installing > both mysqlclient10 and mysqlclient14, it still couldnt''t find the proper > library. > > So I picked mod_auth_pgsql. That compiled fine, but I already had it installed > from binary. I peeked: > > # rpm -ql mod_auth_pgsql > /etc/httpd/conf.d/auth_pgsql.conf > /usr/lib64/httpd/modules/mod_auth_pgsql.so > /usr/share/doc/mod_auth_pgsql-2.0.3 > /usr/share/doc/mod_auth_pgsql-2.0.3/INSTALL > /usr/share/doc/mod_auth_pgsql-2.0.3/README > /var/www/manual/mod/mod_auth_pgsql.html > > Then I checked my freshly build package: > > # rpm -qlp /usr/src/redhat/RPMS/x86_64/mod_auth_pgsql-2.0.3-2.3.x86_64.rpm > /usr/doc/mod_auth_pgsql-2.0.3 > /usr/doc/mod_auth_pgsql-2.0.3/INSTALL > /usr/doc/mod_auth_pgsql-2.0.3/README > /usr/etc/httpd/conf.d/auth_pgsql.conf > /usr/lib/httpd/modules/mod_auth_pgsql.so > /var/www/manual/mod/mod_auth_pgsql.html > > > This leads me to believe that the current apxs in httpd-devel is subtly > broken. Note this is a freshly installed FC5 with updates. > > Part of my spec file (which matches other mod_* packages) > > %build > /usr/sbin/apxs -Wc,"%{optflags}" -c mod_auth_radius-2.0.c > > %install > rm -rf %{buildroot} > mkdir -p %{buildroot}%{_libdir}/httpd/modules/ > mkdir -p %{buildroot}/%{_sysconfdir}/httpd/conf.d/ > install -p .libs/mod_auth_radius-2.0.so %{buildroot}/%{_libdir}/httpd/modules/ > install -m644 %{SOURCE1} %{buildroot}/%{_sysconfdir}/httpd/conf.d/ > > relevant bits of output: > > + cd /usr/src/redhat/BUILD > + cd mod_auth_radius-1.5.7 > + /usr/sbin/apxs ''-Wc,-O2 -g'' -c mod_auth_radius-2.0.c > /usr/lib64/apr-1/build/libtool --silent --mode=compile gcc -prefer-pic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -pthread -I/usr/include/httpd -I/usr/include/apr-1 -I/usr/include/apr-1 -O2 -g -c -o mod_auth_radius-2.0.lo mod_auth_radius-2.0.c && touch mod_auth_radius-2.0.slo > > /usr/lib64/apr-1/build/libtool --silent --mode=link gcc -o mod_auth_radius-2.0.la -rpath /usr/lib64/httpd/modules -module -avoid-version mod_auth_radius-2.0.lo > + exit 0 > Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.599 > + umask 022 > + cd /usr/src/redhat/BUILD > + cd mod_auth_radius-1.5.7 > + rm -rf /var/tmp/mod_auth_radius-1.5.7-1-root- > + mkdir -p /var/tmp/mod_auth_radius-1.5.7-1-root-/usr/lib/httpd/modules/ > + mkdir -p /var/tmp/mod_auth_radius-1.5.7-1-root-//usr/etc/httpd/conf.d/ > + install -p .libs/mod_auth_radius-2.0.so /var/tmp/mod_auth_radius-1.5.7-1-root-//usr/lib/httpd/modules/ > + install -m644 /usr/src/redhat/SOURCES/mod_auth_radius.conf /var/tmp/mod_auth_radius-1.5.7-1-root-//usr/etc/httpd/conf.d/ > + exit 0 > > As can be seen, apxs seems to reference /usr/lib64/httpd/modules while building, but /var/tmp/mod_auth_radius-1.5.7-1-root-//usr/lib/httpd/modules/ when installing. > > Paul > >-- Building and integrating Virtual Private Networks with Openswan: http://www.amazon.com/gp/product/1904811256/104-3099591-2946327?n=283155