Build Frustrations

Dan Mahoney, System Admin danm at prime.gushi.org
Mon Nov 19 17:02:04 PST 2007


All,

I'm of the realization that FreeBSD is a volunteer project, but there's a 
recent issue I've hit, and I've contacted nearly EVERYONE I can think of 
about it to try and fix, and the response I've gotten has been a deafening 
silence.

I'm having trouble building apache2.2.6, it relates I feel to an 
inconsitent libexpat library under FreeBSD, COMBINED with a badly made and 
inconsistent apr port, and some libiconv incompatibilities.  I've emailed 
ports maintainers, APR developers, the general apache mailing list, and 
gotten nothing.

I'm posting this to the straight-off questions list because I feel my 
other attempts have failed.  Can someone "sanity check" me?  I'm well 
aware of how to "ask intelligent questions", to document what I have and 
have not done, of explaining WHY I have or have not done those things.

I'm going to send it here, in the hopes maybe someone else has encountered 
this or might spot something I'm missing.  If ANYONE can shed some light 
here, I'd appreciate it and am willing to compensate in some small way, if 
I can.

Here's what I sent to the maintainers of the above two ports:

Subject: apr versus apr-db42, as well as some other issues:

Hello,

First and foremost: I assume you're both reasonably busy professionals. 
That said, I believe there's either a bug in the core operating system 
here, or a bug in the way some of the critical ports are built, and I 
cannot figure it out alone.  It is enough of a problem that it has 
confused at least one apache committer.  That said, if you'd like to be 
compensated in some small way for your time, please point me to your 
amazon wishlists, paypal accounts, et cetera, and I'll try to do the 
right thing.

I am mailing you because you are the maintainers of the apache-2.2.6 and 
apr ports.  If there are other people I should be mailing, please let me 
know.

This is a post about building apache2.2 from scratch, not from ports -- 
however it raises several issues with port-installed tools that lead me to 
believe they may still be at fault.  I apologize in advance for the length 
of this post, but having all the data is sometimes important.  I believe 
it's reproducable but I don't have the spare machines to try on.

First, the basics:

1) Is it possible to get some documentation in either the short or long 
description as to what the difference between apr and apr-db42 is?

2) Also, is it at all possible to get some kind of documentation for the 
apr-svn port (if it still exists).

3) My big problem:

(I'm going to post everything from here down to the apache-users mailing 
list, as well).

I just tried to build apache 2.2.6 from scratch.

I, for various reasons of wanting to keep apache separate from other 
things, for example, to virtualize my apache users, prefer everything in a 
single dir -- so the ports route isn't for me.

Because apr-db42 had been installed as part of a subversion requirement 
(not sure why), it caused my apache build to look in nonexistent places 
for libraries.

%apr-1-config --apr-libtool
/usr/local/build-1/libtool

(the above path doesn't even exist)

To fix this (and not break the svn port), I resorted to using 
--with-included-apr.  The build THEN failed, claiming it could not find 
the installed expat libraries, in an error exactly like what this 
gentleman had:

http://www.zulustips.com/2007/10/06/problems-compiling-apache-226-on-freebsd-62.html#more-54

And in fact, this apache developer had the same issue:

http://www.mail-archive.com/dev@apr.apache.org/msg18793.html

(search the page for "wtf")

Like them, I had an installed expat, and had it listed in ldconfig -r (I 
also note there's a libexpat in /usr/src but don't know what it's there 
for).

(I did not copy my errors because I thought I had found a solution, but 
it's the same error, I assure you).

After that,

I tried resorting to building apache with --with-expat=builtin

I then got THIS error:

/home/danm/httpd-2.2.6/srclib/apr/libtool --silent --mode=link gcc -g -O2 
-o htpasswd  htpasswd.lo   -lm 
/home/danm/httpd-2.2.6/srclib/pcre/libpcre.la 
/home/danm/httpd-2.2.6/srclib/apr-util/libaprutil-1.la 
/home/danm/httpd-2.2.6/srclib/apr-util/xml/expat/lib/libexpat.la 
/home/danm/httpd-2.2.6/srclib/apr/libapr-1.la -lcrypt -lpthread
/home/danm/httpd-2.2.6/srclib/apr-util/.libs/libaprutil-1.so: undefined 
reference to `libiconv_open'
/home/danm/httpd-2.2.6/srclib/apr-util/.libs/libaprutil-1.so: undefined 
reference to `libiconv_close'
/home/danm/httpd-2.2.6/srclib/apr-util/.libs/libaprutil-1.so: undefined 
reference to `libiconv'
*** Error code 1

Stop in /home5/danm/httpd-2.2.6/support.
*** Error code 1

Stop in /home5/danm/httpd-2.2.6/support.
*** Error code 1

Stop in /home5/danm/httpd-2.2.6.
prime#

So that's it.  I don't know how to fix this one -- and if it's upgrading 
my libiconv will fix it (but will require me to upgrade every program -- 
both binary and port) that depends on it, I'm willing, but pkg_info -f -g 
libiconv-1.9.2_2 reports no mismatched checksums (which implies to me that 
the libraries should have the functions that the header files are there).

If you need more info, please let me know.

I had to do the upgrade-everything dance a few weeks ago because something 
broke libintl -- I for a few moments blamed it that problem, but other 
people, on other production systems are having these issues.  I'm not 
about to do it again just to get a newer libiconv when I don't think 
that's the problem.

pkg_info -f -g apr-db42-1.2.7_1

[snip]

Mismatched Checksums:
pkg_info: /usr/local/build-1/apr_rules.mk doesn't exist
pkg_info: /usr/local/build-1/libtool doesn't exist
pkg_info: /usr/local/build-1/make_exports.awk doesn't exist
pkg_info: /usr/local/build-1/make_var_export.awk doesn't exist
pkg_info: /usr/local/build-1/mkdir.sh doesn't exist

If this is a bug in apache, please let me know and I'll file major bug 
reports there.  If on the other hand, the behavior documented by the ports 
installing files that report wrong locations, ldconfig reporting libraries 
that cannot be found, and the like, please let me know and I'll open (one 
or several) FreeBSD bugs.  It's clear from the searching I've been doing 
for several hours now that I'm not the only person having these issues.

Also, my uptime is nearly a year, which makes me a little old:

Uname: FreeBSD prime.gushi.org 6.2-PRERELEASE FreeBSD 6.2-PRERELEASE

But I'm loathe to fully cvsup, buildworld, and reboot on a production 
system unless we're sure it will do something (and I'm not at all sure it 
will).

If anyone has any ideas, please let me know.

Thanks,

Dan Mahoney
(With a Migraine)

--

<Zaren> Christ almighty...  my EYES!  They're melting!

-Zaren, Efnet #macintosh, in response to:

www.geocities.com/CollegePark/Classroom/1944
The WEBSITE DESIGN class that gave my fiancee a D.

--------Dan Mahoney--------
Techie,  Sysadmin,  WebGeek
Gushi on efnet/undernet IRC
ICQ: 13735144   AIM: LarpGM
Site:  http://www.gushi.org
---------------------------



More information about the freebsd-questions mailing list