-----BEGIN PGP SIGNED MESSAGE----- Hash: RIPEMD160 Howdy, I've merged the following changes to bring mergemaster up to date with what's in HEAD to RELENG_[78]. Of particular interest for most people, especially those with long-lived installs will be r200425, and r200708; however a few of the other changes might also bring surprises. As usual I have tried to be very cautious with the defaults so as not to disrupt people's existing installations, but please heed the "usual" advice to back up /etc before running mergemaster. I also suggest the regular use of the -P option. If you have any questions or problems please speak up sooner rather than later, since I'd like to get any "issues" ironed out as far in advance of the 7.3-RELEASE as possible. FYI, I do not plan to merge these changes, or any other changes besides serious bug fixes to RELENG_6. Enjoy, Doug - -------- Original Message -------- Subject: svn commit: r202337 - stable/8/usr.sbin/mergemaster Date: Fri, 15 Jan 2010 03:28:47 +0000 (UTC) Author: dougb Date: Fri Jan 15 03:28:46 2010 New Revision: 202337 URL: http://svn.freebsd.org/changeset/base/202337 Log: MFC r200416: Simplify handling of MTREEFILE relative to DESTDIR Make the message about a missing MTREEFILE combined with -U more informative MFC r200425: Over time things that used to be files/directories/links can change to something else. So add code to detect when things don't match and give the user choices about how to fix it. If we're using -P and something in the above check needs to be moved we need to have the directory there for it, so create it at the beginning and delete empty versions of it at the end. The case where something used to be a file or link and now is supposed to be a directory (e.g., /etc/security) is especially dangerous, so make failure to install a necessary directory in $DESTDIR a fatal error. MFC r200700: In the places where find is used that the user may see the results, first pipe it to sort so that order of processing will be deterministic and like things will be grouped together. MFC r200701: Fix an indentation issue, no functional changes MFC r200708: Fix a problem with how mergemaster handles the hard links for /.cshrc and /.profile. The problem is that install(1) will unlink the old file before it installs the new one, which means that in the best case we have to compare the changes for the old file twice. So, change the logic to first test to see if the link exists, then install the file. Then if the link was there and we're using -i, just create the link in /root and be done with it. Otherwise display the message to the user and give them the option. Because we are now sorting things before doing the comparison we can know conclusively that the files in / should be the sources, and the files in /root will be the targets, so adjust the paths accordingly. While I'm here, split a too-long error message into two lines and just return at the end of handling these files instead of setting the variable that says "do nothing" and then returning at the end of the function anyway. MFC r201291: Add some patches contributed by jhb: 1. Don't prompt the user for "-U but no db" error if we're using -a 2. Add an option to delete stale rc.d files automatically if the user has DELETE_STALE_RC_FILES in their rc file. Lack of command line option for this is not an oversight. 3. Add []'s around the terminal $ for the $FreeBSD$ test for -F For one bug raised by jhb I did a more thorough solution: There were a lot of things that "snuck in" between the end of the test for -r and the start of the comparison. One of them is the creation of the mtree db, as pointed out by jhb. Fix this problem more thoroughly by moving the end of the test down to where it should/used to be, right before the comparison. As a result, indent the interloping code to match. MFC r201292: Document the DELETE_STALE_RC_FILES option introduced in r201291. This is an "rc file only" option by design. While I'm here, update the comments in the example rc file to indicate which command line options they relate to, and correct the defaults for a couple of options. MFC r201293: It's not necessary to include both Op and Fl for command line options included in the text, so use only the latter. Clarify that using -U doesn't make sense in combination with -a MFC r201323: If we are using -p it does not make any sense to even create the MTREENEW file since it will never be used. MFC r201765: Update copyright date Update delete_temproot() to include the error message if it fails, and clean up the places where it's called. If there are no files left in temproot when the comparison is done delete it without prompting. This should make "automated" runs of mergemaster without -a a little easier. Document the new behavior in the man page. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.14 (FreeBSD) iEYEAREDAAYFAktP4zQACgkQyIakK9Wy8PtwpACfaMOiHWQ6UQv5hlopxUOGyUpM r/sAoLoC1i0OJxSShiI0B5j6RbvI9pMh =O+S8 -----END PGP SIGNATURE-----