Trouble Updating FreeBSD

I was trying to update a FreeBSD 5.3-BETA7 machine using the latest 5.3 sources. I ran a fresh cvsup immediately prior to each update attempt, and I tried to update with and without running the currently undocumented “make cleanworld” command to clean out /usr/obj before updating. But I ran into some trouble.

After four tries, each attempt stopped with error code 1 with the same exact error text:

WARNING: offset .1.1.1.2.1 invalid
WARNING: type .1.1.1.2.1 invalid
WARNING: offset log invalid
WARNING: type log invalid
WARNING: offset @MFC: Christos Zoulas’s FILE 3.33 invalid
WARNING: type @MFC: Christos Zoulas’s FILE 3.33 invalid
WARNING: offset @ invalid
WARNING: type @ invalid
WARNING: offset text invalid
WARNING: type text invalid
WARNING: offset @@ invalid
WARNING: type @@ invalid
mkmagic: could not find any magic files!
*** Error code 1.
Stop in /usr/src/lib/libmagic.
*** Error code 1.
Stop in /usr/src/lib.
*** Error code 1.
Stop in /usr/src.
*** Error code 1.
Stop in /usr/src.
*** Error code 1.
Stop in /usr/src.
*** Error code 1.
Stop in /usr/src.

I searched everywhere for more information regarding the error “WARNING: type @MFC: Christos Zoulas’s FILE 3.33 invalid”, but I found only two forum posts in languages I could not understand. I then searched on “mkmagic: could not find any magic files!” and was lucky enough to find this DevShed post:
http://forums.devshed.com/t211257/s.html

The steps that fixed the problem for me were:
1. Change your tag from RELENG_5 to RELENG_5_3
2. Delete the contents of /usr/src and /usr/obj
3. cvsup again
4. Try make buildworld.

I got through step 3 without trouble, but got an error on “make buildworld”. I realized that, because I had cleared out /usr/src/, I needed to run “make make” first, and then, finally, “make buildworld” ran without a problem.

I then ran “make buildkernel” and “make installkernel”, rebooted into single-user mode, mounted my slices, ran fsck (using “fsck -vf -F /dev/” for each slice that complained about needing manual attention), and ran “mergemaster -p”. Then, I ran into another showstopper when I tried to run “make installworld”:
ERROR: Required proxy user is missing, see /usr/src/UPDATING

I then grepped /usr/src/UPDATING for “proxy” and found not a single entry. Since everyone seems to bludgeon people that have not read /usr/src/UPDATING, it would be nice if the information it contained were accurate, or at least pertained to the information returned by error messages.

Regardless, after reading many newsgroup threads (most of which were complaints similar to my point above), I saw that the error message itself was saying simply that this build required the existence of a user called “proxy”, and since I didn’t have one, I needed to create one. So I did, and “make installworld” progressed nicely afterward, and after another “mergemaster” and a reboot, my system was completely up-to-date.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s