Problems using portupgrade to recompile all ports

Scott I. Remick scott at sremick.net
Thu Jan 15 08:26:56 PST 2004


On Thu, 15 Jan 2004 16:02:44 +0000 (GMT), Jan Grant wrote:

> On Thu, 15 Jan 2004, Scott I. Remick wrote:
> 
>> So I'm upgrading my 5.1R desktop to 5.2R. Used cvsup, followed the
>> instructions in UPGRADING, did a custom kernel, etc etc. That part went
>> fine, no probs.
>>
>> I noticed some of my daemons (from ports) seemed a bit annoyed though upon
>> booting up 5.2. I tried using portupgrade -Rf on them individually, and
>> then all was well. I decided then that it'd be best to do everything (-Raf)
>> to play it safe. I've done this before.
>>
>> So it finally finished last night, but not really... about 132 ports were
>> failed/skipped. My problem is figuring out the most efficient way to deal
>> with it from here. LAST time I did a portupgrade -Raf I had a much smaller
>> number failed/skipped, and what I did was work out the dependency tree for
>> the remaining ones by hand using pkg_info -R and -r, figure out the order,
>> and do a portupgrade -f on each in the proper order. This was to avoid
>> rebuilding stuff already built on the first -Raf pass, and multiple times
>> over (since I was taking care of each remaining one individually). Seems to
>> me that if 50 of those 132 are X apps and I do a portupgrade -Rf on each,
>> I'll be rebuilding XFree86 50 times. Hence the need to work out the install
>> order by-hand based upon dependencies and only use -f. But I don't see that
>> as practical this time around with so many left to do.
>>
>> So... my ultimate question is: how do you pros handle situations like this?
>> Is there a trick I'm missing?
> 
> Do you know why the failure happened? The most frequent cause of this
> when I've encountered the problem is that a distfile could not be
> fetched. I tend to try to avoid that these days by prefetching the
> distfiles prior to a build (ie, while I'm around to sort out problems
> manually rather than overnight).

Various reasons. I could post the full list at the end if you'd like (I
saved it). Most are skipped (*) due to dependencies on the ones that failed
(!). For the failed ones, I got assorted errors: "unknown build error",
"install error", "checksum mismatch", "linker error", "new compiler error",
"missing header".

The ones marked ! failed isn't so large I couldn't investigate/fix each
individually, but I'm trying to figure out the best way to deal with the
full list of failed/skipped so that once I fix the reason for the failures,
I can JUST rebuild those in the failed/skipped list and in the proper
order, instead of having to rebuild my entire (400+) ports list again w/
-Raf, most of which compiled fine under 5.2.

Hopefully I'm making sense... :)



More information about the freebsd-questions mailing list