I recently upgraded a working FreeBSD 4.10 toaster (3.47) to FreeBSD 5.3 with hopes of also upgrading to 4.03. I followed the directions from
http://www.freebsd.org/releases/5.3R/migration-guide.html for the OS upgrade.
All went smoothly, it seems.
Trying to use portupgrade for Proftpd, however, I get the error stop:
config.status: executing default commands===> Building for proftpd-1.2.10_1echo \#define BUILD_STAMP \"`date`\" >include/buildstamp.hcd lib/ && gmake lib/usr/libexec/ld-elf.so.1: /usr/local/lib/libintl.so.6: Undefined symbol "stpcpy"/usr/libexec/ld-elf.so.1: /usr/local/lib/libintl.so.6: Undefined symbol "stpcpy"*** Error code 1Stop in /usr/ports/ftp/proftpd.** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portinstall36643.0 make** Fix the problem and try again.** Listing the failed packages (*:skipped / !:failed) ! ftp/proftpd (unknown build error)---> Packages processed: 0 done, 0 ignored, 0 skipped and 1 failed
Searching google didn't help much. Someone there said to force upgrade
gettext to make it see the new 5.3 files. I did that and still get the same errors with certain ports.
I have
COMPAT4X = yes in my make.conf file. And I'm using the GENERIC Kernel which has
options COMPAT_FREEBSD4 # Compatible with FreeBSD4 before I made/installed the world.
This happens when the toaster script is trying to upgrade my vpopmail (toaster_setup.pl -s vpopmail):
===> Building for vpopmail-5.4.6_1gmake all-recursive/usr/libexec/ld-elf.so.1: /usr/local/lib/libintl.so.6: Undefined symbol "stpcpy"/usr/libexec/ld-elf.so.1: /usr/local/lib/libintl.so.6: Undefined symbol "stpcpy"*** Error code 1
There's even a sentence at the bottom of that Migration guide:
Running FreeBSD 4.X binaries requires a set of compatability libraries. These are available by installing the misc/compat4x package/port.
This doesn't work either.
Any helpful thoughts?
Thanks!
have you done portupgrade -fa ?
(force recompile of all ports)
and did it succeed?
Thanks for your time.
Yes, I've tried that. Most of the ports upgraded. Some, however, didn't. All of the P5-* seemed to work.
It's very annoying.
[ozric:/usr/local/lib]# ls -l *libint*
-rw-r--r-- 1 root wheel 51K Jan 22 21:18 libintl.a
lrwxr-xr-x 1 root wheel 12B Jan 22 21:18 libintl.so@ -> libintl.so.6
-r--r--r-- 1 root wheel 40K Jan 22 21:18 libintl.so.6
I'm sure it was libintl.so.5 before the upgrade. (I checked another machine @ 4.7). Some of the ports are still pointing to the old *.so.5, it seems.
On one of my google searches, someone said their copy of libintl.so on 4.7 has an internal stpcpy(?) So I ran the command on my machine.
I'm not sure what it tells me:
[ozric:/usr/local/lib]# nm /usr/local/lib/libintl.so.6 | grep stpcpy
U stpcpy
OK, after doing some more searching, I had some ideas.
Instead of just forcing a gettext build (portupgrade -f gettext), I did a Recursive upgrade (-fR) on gettext.
-R --upward-recursive Act on all those packages required by the given packages as well.
Which were:
libiconv-1.9.2_1
libtool-1.5.10
That still didn't solve the problem. So I went back and noticed another required port for ProFTPD, gmake.
I forced gmake and viola I was able to finish toaster_setup.pl -s vpopmail successfully, as well as ProFTPD.
Now I can move on.