Upgrading just a few binaries from _9 to CURRENT (risky maybe)

A.. Be sure to have backups and have tested that they work...
B... I neglected to read UPDATING from (somewhere (svnweb?)) and should have...
...sometimes it mentions breakages in advance.

Code:
*default host=cvsup4.FreeBSD.org
*default base=/usr
*default prefix=/usr
*default release=cvs tag=.
*default delete use-rel-suffix

src-all
Assume we are running STABLE_9 (RELENG_9) and want the latest CURRENT date, dd, df, pwd...
With the above supfile.BIN_CURRENT in /usr/ports
( I've done this today, but something more, say, /sbin may incur system breakage...)
Code:
cd /usr/ports
csup -g -L 2 -i src/bin supfile.BIN_CURRENT
# completes?
cd /usr/src/bin/date
make depend
make install
cd /usr/src/bin/dd
make depend
make install
# etc...

A slight chance this may be useful. (I restored ls from backup after this procedure
today because it broke color completion, explicity; maybe a kernel option or HINTS or something... ).
OTOH I noticed no change in the mentioned binaries' results. The man pages maybe are more recent
as a result maybe.
 
Why would anyone do this? As far as I know it's not guaranteed that 10-CURRENT binaries will work on earlier kernels because some of them may depend on kernel data structures that can be very different between major versions of FreeBSD. The only guarantee is that 9.x or 9-STABLE binaries will work on 10-CURRENT kernel (this guarantee may be further limited to binaries that are needed for installworld and updating /etc/), otherwise it wouldn't be possible to boot with freshly compiled and installed 10-CURRENT kernel while the world is still at 9.x or 9-STABLE when you do a source based upgrade.
 
I did it in this case to update setfacl, which now should work as expected ( a bug fix) and has a manpage of Sept 2 2012 (with examples!) (... not that I'd use it soon...). I've done something similar [but using v9 sources] , but on a wider scale, when updating from v6 to v9 directly [1] , and the upgrade could not complete due to missing binaries/directories.
[1] and/or cloning one v9 to another v9 piecemeal with rsync during which some parts did not copy right or were mistakenly skipped... (a third time, some binary just quit working suddenly and I reinstalled it. That case also used the v9 sources though, so this case one would not do very often if at all. )
I put the howto up mainly as a template for persons maybe saving the syntax for
reference or during a search of the forums... You are correct that there is no guarantee, that is why a tested backup procedure should be in place before any similar partial
upgrade is done.
 
Back
Top