1179fa75eSJohn Baldwin.\" Copyright (c) 2010-2013 Hudson River Trading LLC 26f9cd2a9SJohn Baldwin.\" Written by: John H. Baldwin <jhb@FreeBSD.org> 36f9cd2a9SJohn Baldwin.\" All rights reserved. 46f9cd2a9SJohn Baldwin.\" 56f9cd2a9SJohn Baldwin.\" Redistribution and use in source and binary forms, with or without 66f9cd2a9SJohn Baldwin.\" modification, are permitted provided that the following conditions 76f9cd2a9SJohn Baldwin.\" are met: 86f9cd2a9SJohn Baldwin.\" 1. Redistributions of source code must retain the above copyright 96f9cd2a9SJohn Baldwin.\" notice, this list of conditions and the following disclaimer. 106f9cd2a9SJohn Baldwin.\" 2. Redistributions in binary form must reproduce the above copyright 116f9cd2a9SJohn Baldwin.\" notice, this list of conditions and the following disclaimer in the 126f9cd2a9SJohn Baldwin.\" documentation and/or other materials provided with the distribution. 136f9cd2a9SJohn Baldwin.\" 146f9cd2a9SJohn Baldwin.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 156f9cd2a9SJohn Baldwin.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 166f9cd2a9SJohn Baldwin.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 176f9cd2a9SJohn Baldwin.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 186f9cd2a9SJohn Baldwin.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 196f9cd2a9SJohn Baldwin.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 206f9cd2a9SJohn Baldwin.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 216f9cd2a9SJohn Baldwin.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 226f9cd2a9SJohn Baldwin.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 236f9cd2a9SJohn Baldwin.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 246f9cd2a9SJohn Baldwin.\" SUCH DAMAGE. 256f9cd2a9SJohn Baldwin.\" 266f9cd2a9SJohn Baldwin.\" $FreeBSD$ 276f9cd2a9SJohn Baldwin.\" 2874914641SBryan Drewery.Dd September 29, 2015 296f9cd2a9SJohn Baldwin.Dt ETCUPDATE 8 306f9cd2a9SJohn Baldwin.Os 316f9cd2a9SJohn Baldwin.Sh NAME 326f9cd2a9SJohn Baldwin.Nm etcupdate 336f9cd2a9SJohn Baldwin.Nd "manage updates to system files not updated by installworld" 346f9cd2a9SJohn Baldwin.Sh SYNOPSIS 356f9cd2a9SJohn Baldwin.Nm 3621d1f635SJohn Baldwin.Op Fl npBF 376f9cd2a9SJohn Baldwin.Op Fl d Ar workdir 386f9cd2a9SJohn Baldwin.Op Fl r | Fl s Ar source | Fl t Ar tarball 396f9cd2a9SJohn Baldwin.Op Fl A Ar patterns 406f9cd2a9SJohn Baldwin.Op Fl D Ar destdir 416f9cd2a9SJohn Baldwin.Op Fl I Ar patterns 426f9cd2a9SJohn Baldwin.Op Fl L Ar logfile 436f9cd2a9SJohn Baldwin.Op Fl M Ar options 446f9cd2a9SJohn Baldwin.Nm 456f9cd2a9SJohn Baldwin.Cm build 466f9cd2a9SJohn Baldwin.Op Fl B 476f9cd2a9SJohn Baldwin.Op Fl d Ar workdir 486f9cd2a9SJohn Baldwin.Op Fl s Ar source 496f9cd2a9SJohn Baldwin.Op Fl L Ar logfile 506f9cd2a9SJohn Baldwin.Op Fl M Ar options 516f9cd2a9SJohn Baldwin.Ar tarball 526f9cd2a9SJohn Baldwin.Nm 536f9cd2a9SJohn Baldwin.Cm diff 546f9cd2a9SJohn Baldwin.Op Fl d Ar workdir 556f9cd2a9SJohn Baldwin.Op Fl D Ar destdir 566f9cd2a9SJohn Baldwin.Op Fl I Ar patterns 576f9cd2a9SJohn Baldwin.Op Fl L Ar logfile 586f9cd2a9SJohn Baldwin.Nm 596f9cd2a9SJohn Baldwin.Cm extract 606f9cd2a9SJohn Baldwin.Op Fl B 616f9cd2a9SJohn Baldwin.Op Fl d Ar workdir 626f9cd2a9SJohn Baldwin.Op Fl s Ar source | Fl t Ar tarball 636f9cd2a9SJohn Baldwin.Op Fl L Ar logfile 646f9cd2a9SJohn Baldwin.Op Fl M Ar options 656f9cd2a9SJohn Baldwin.Nm 666f9cd2a9SJohn Baldwin.Cm resolve 6721d1f635SJohn Baldwin.Op Fl p 686f9cd2a9SJohn Baldwin.Op Fl d Ar workdir 696f9cd2a9SJohn Baldwin.Op Fl D Ar destdir 706f9cd2a9SJohn Baldwin.Op Fl L Ar logfile 716f9cd2a9SJohn Baldwin.Nm 726f9cd2a9SJohn Baldwin.Cm status 736f9cd2a9SJohn Baldwin.Op Fl d Ar workdir 746f9cd2a9SJohn Baldwin.Op Fl D Ar destdir 756f9cd2a9SJohn Baldwin.Sh DESCRIPTION 766f9cd2a9SJohn BaldwinThe 776f9cd2a9SJohn Baldwin.Nm 786f9cd2a9SJohn Baldwinutility is a tool for managing updates to files that are not updated as 796f9cd2a9SJohn Baldwinpart of 806f9cd2a9SJohn Baldwin.Sq make installworld 816f9cd2a9SJohn Baldwinsuch as files in 826f9cd2a9SJohn Baldwin.Pa /etc . 836f9cd2a9SJohn BaldwinIt manages updates by doing a three-way merge of changes made to these 846f9cd2a9SJohn Baldwinfiles against the local versions. 856f9cd2a9SJohn BaldwinIt is also designed to minimize the amount of user intervention with 866f9cd2a9SJohn Baldwinthe goal of simplifying upgrades for clusters of machines. 876f9cd2a9SJohn Baldwin.Pp 886f9cd2a9SJohn BaldwinTo perform a three-way merge, 896f9cd2a9SJohn Baldwin.Nm 906f9cd2a9SJohn Baldwinkeeps copies of the current and previous versions of files that it manages. 916f9cd2a9SJohn BaldwinThese copies are stored in two trees known as the 926f9cd2a9SJohn Baldwin.Dq current 936f9cd2a9SJohn Baldwinand 946f9cd2a9SJohn Baldwin.Dq previous 956f9cd2a9SJohn Baldwintrees. 966f9cd2a9SJohn BaldwinDuring a merge, 976f9cd2a9SJohn Baldwin.Nm 986f9cd2a9SJohn Baldwincompares the 996f9cd2a9SJohn Baldwin.Dq current 1006f9cd2a9SJohn Baldwinand 1016f9cd2a9SJohn Baldwin.Dq previous 1026f9cd2a9SJohn Baldwincopies of each file to determine which changes need to be merged into the 1036f9cd2a9SJohn Baldwinlocal version of each file. 1046f9cd2a9SJohn BaldwinIf a file can be updated without generating a conflict, 1056f9cd2a9SJohn Baldwin.Nm 1066f9cd2a9SJohn Baldwinwill update the file automatically. 1076f9cd2a9SJohn BaldwinIf the local changes to a file conflict with the changes made to a file in 1086f9cd2a9SJohn Baldwinthe source tree, 1096f9cd2a9SJohn Baldwinthen a merge conflict is generated. 1106f9cd2a9SJohn BaldwinThe conflict must be resolved after the merge has finished. 1116f9cd2a9SJohn BaldwinThe 1126f9cd2a9SJohn Baldwin.Nm 1136f9cd2a9SJohn Baldwinutility will not perform a new merge until all conflicts from an earlier 1146f9cd2a9SJohn Baldwinmerge are resolved. 1156f9cd2a9SJohn Baldwin.Sh MODES 1166f9cd2a9SJohn BaldwinThe 1176f9cd2a9SJohn Baldwin.Nm 1186f9cd2a9SJohn Baldwinutility supports several modes of operation. 1196f9cd2a9SJohn BaldwinThe mode is specified via an optional command argument. 1206f9cd2a9SJohn BaldwinIf present, the command must be the first argument on the command line. 1216f9cd2a9SJohn BaldwinIf a command is not specified, the default mode is used. 1226f9cd2a9SJohn Baldwin.Ss Default Mode 1236f9cd2a9SJohn BaldwinThe default mode merges changes from the source tree to the destination 1246f9cd2a9SJohn Baldwindirectory. 1256f9cd2a9SJohn BaldwinFirst, 1266f9cd2a9SJohn Baldwinit updates the 1276f9cd2a9SJohn Baldwin.Dq current 1286f9cd2a9SJohn Baldwinand 1296f9cd2a9SJohn Baldwin.Dq previous 1306f9cd2a9SJohn Baldwintrees. 1316f9cd2a9SJohn BaldwinNext, 1326f9cd2a9SJohn Baldwinit compares the two trees merging changes into the destination directory. 1336f9cd2a9SJohn BaldwinFinally, 1346f9cd2a9SJohn Baldwinit displays warnings for any conditions it could not handle automatically. 1356f9cd2a9SJohn Baldwin.Pp 1366f9cd2a9SJohn BaldwinIf the 1376f9cd2a9SJohn Baldwin.Fl r 1386f9cd2a9SJohn Baldwinoption is not specified, 1396f9cd2a9SJohn Baldwinthen the first step taken is to update the 1406f9cd2a9SJohn Baldwin.Dq current 1416f9cd2a9SJohn Baldwinand 1426f9cd2a9SJohn Baldwin.Dq previous 1436f9cd2a9SJohn Baldwintrees. 1446f9cd2a9SJohn BaldwinIf a 1456f9cd2a9SJohn Baldwin.Dq current 1466f9cd2a9SJohn Baldwintree already exists, 1476f9cd2a9SJohn Baldwinthen that tree is saved as the 1486f9cd2a9SJohn Baldwin.Dq previous 1496f9cd2a9SJohn Baldwintree. 1506f9cd2a9SJohn BaldwinAn older 1516f9cd2a9SJohn Baldwin.Dq previous 1526f9cd2a9SJohn Baldwintree is removed if it exists. 1536f9cd2a9SJohn BaldwinBy default the new 1546f9cd2a9SJohn Baldwin.Dq current 1556f9cd2a9SJohn Baldwintree is built from a source tree. 1566f9cd2a9SJohn BaldwinHowever, 1576f9cd2a9SJohn Baldwinif a tarball is specified via the 1586f9cd2a9SJohn Baldwin.Fl t 1596f9cd2a9SJohn Baldwinoption, 1606f9cd2a9SJohn Baldwinthen the tree is extracted from that tarball instead. 1616f9cd2a9SJohn Baldwin.Pp 1626f9cd2a9SJohn BaldwinNext, 1636f9cd2a9SJohn Baldwin.Nm 1646f9cd2a9SJohn Baldwincompares the files in the 1656f9cd2a9SJohn Baldwin.Dq current 1666f9cd2a9SJohn Baldwinand 1676f9cd2a9SJohn Baldwin.Dq previous 1686f9cd2a9SJohn Baldwintrees. 1696f9cd2a9SJohn BaldwinIf a file was removed from the 1706f9cd2a9SJohn Baldwin.Dq current 1716f9cd2a9SJohn Baldwintree, 1726f9cd2a9SJohn Baldwinthen it will be removed from the destination directory only if it 1736f9cd2a9SJohn Baldwindoes not have any local modifications. 1746f9cd2a9SJohn BaldwinIf a file was added to the 1756f9cd2a9SJohn Baldwin.Dq current 1766f9cd2a9SJohn Baldwintree, 1776f9cd2a9SJohn Baldwinthen it will be copied to the destination directory only if it 1786f9cd2a9SJohn Baldwinwould not clobber an existing file. 1796f9cd2a9SJohn BaldwinIf a file is changed in the 1806f9cd2a9SJohn Baldwin.Dq current 1816f9cd2a9SJohn Baldwintree, 1826f9cd2a9SJohn Baldwinthen 1836f9cd2a9SJohn Baldwin.Nm 1846f9cd2a9SJohn Baldwinwill attempt to merge the changes into the version of the file in the 1856f9cd2a9SJohn Baldwindestination directory. 1866f9cd2a9SJohn BaldwinIf the merge encounters conflicts, 1876f9cd2a9SJohn Baldwinthen a version of the file with conflict markers will be saved for 1886f9cd2a9SJohn Baldwinfuture resolution. 1896f9cd2a9SJohn BaldwinIf the merge does not encounter conflicts, 1906f9cd2a9SJohn Baldwinthen the merged version of the file will be saved in the destination 1916f9cd2a9SJohn Baldwindirectory. 1926f9cd2a9SJohn BaldwinIf 1936f9cd2a9SJohn Baldwin.Nm 1946f9cd2a9SJohn Baldwinis not able to safely merge in changes to a file other than a merge conflict, 1956f9cd2a9SJohn Baldwinit will generate a warning. 1966f9cd2a9SJohn Baldwin.Pp 1976f9cd2a9SJohn BaldwinFor each file that is updated a line will be output with a leading character 1986f9cd2a9SJohn Baldwinto indicate the action taken. 1996f9cd2a9SJohn BaldwinThe possible actions follow: 2006f9cd2a9SJohn Baldwin.Pp 2016f9cd2a9SJohn Baldwin.Bl -tag -width "A" -compact -offset indent 2026f9cd2a9SJohn Baldwin.It A 2036f9cd2a9SJohn BaldwinAdded 2046f9cd2a9SJohn Baldwin.It C 2056f9cd2a9SJohn BaldwinConflict 2066f9cd2a9SJohn Baldwin.It D 2076f9cd2a9SJohn BaldwinDeleted 2086f9cd2a9SJohn Baldwin.It M 2096f9cd2a9SJohn BaldwinMerged 2106f9cd2a9SJohn Baldwin.It U 2116f9cd2a9SJohn BaldwinUpdated 2126f9cd2a9SJohn Baldwin.El 2136f9cd2a9SJohn Baldwin.Pp 2146f9cd2a9SJohn BaldwinFinally, 2156f9cd2a9SJohn Baldwinif any warnings were encountered they are displayed after the merge has 2166f9cd2a9SJohn Baldwincompleted. 2176f9cd2a9SJohn Baldwin.Pp 2186f9cd2a9SJohn BaldwinNote that for certain files 2196f9cd2a9SJohn Baldwin.Nm 2206f9cd2a9SJohn Baldwinwill perform post-install actions any time that the file is updated. 2216f9cd2a9SJohn BaldwinSpecifically, 2226f9cd2a9SJohn Baldwin.Xr pwd_mkdb 8 2236f9cd2a9SJohn Baldwinis invoked if 2246f9cd2a9SJohn Baldwin.Pa /etc/master.passwd 2256f9cd2a9SJohn Baldwinis changed, 2266f9cd2a9SJohn Baldwin.Xr cap_mkdb 1 2276f9cd2a9SJohn Baldwinis invoked to update 2286f9cd2a9SJohn Baldwin.Pa /etc/login.conf.db 2296f9cd2a9SJohn Baldwinif 2306f9cd2a9SJohn Baldwin.Pa /etc/login.conf 2316f9cd2a9SJohn Baldwinis changed, 2326f9cd2a9SJohn Baldwin.Xr newaliases 1 2336f9cd2a9SJohn Baldwinis invoked if 2346f9cd2a9SJohn Baldwin.Pa /etc/mail/aliases 2356f9cd2a9SJohn Baldwinis changed, 23674914641SBryan Drewery.Xr services_mkdb 8 23774914641SBryan Dreweryis invoked if 23874914641SBryan Drewery.Pa /etc/services 23974914641SBryan Dreweryis changed, 24074914641SBryan Drewery.Xr tzsetup 8 24174914641SBryan Dreweryis invoked if 24274914641SBryan Drewery.Pa /etc/localtime 24374914641SBryan Dreweryis changed and if 24474914641SBryan Drewery.Fa /var/db/zoneinfo 24574914641SBryan Dreweryexists, 2466f9cd2a9SJohn Baldwinand 2476f9cd2a9SJohn Baldwin.Pa /etc/rc.d/motd 2486f9cd2a9SJohn Baldwinis invoked if 2496f9cd2a9SJohn Baldwin.Pa /etc/motd 2506f9cd2a9SJohn Baldwinis changed. 2516f9cd2a9SJohn BaldwinOne exception is that if 2526f9cd2a9SJohn Baldwin.Pa /etc/mail/aliases 2536f9cd2a9SJohn Baldwinis changed and the destination directory is not the default, 2546f9cd2a9SJohn Baldwinthen a warning will be issued instead. 2556f9cd2a9SJohn BaldwinThis is due to a limitation of the 2566f9cd2a9SJohn Baldwin.Xr newaliases 1 2576f9cd2a9SJohn Baldwincommand. 2586f9cd2a9SJohn BaldwinSimilarly, 2596f9cd2a9SJohn Baldwinif 2606f9cd2a9SJohn Baldwin.Pa /etc/motd 2616f9cd2a9SJohn Baldwinis changed and the destination directory is not the default, 2626f9cd2a9SJohn Baldwinthen 2636f9cd2a9SJohn Baldwin.Pa /etc/rc.d/motd 2646f9cd2a9SJohn Baldwinwill not be executed due to a limitation of that script. 2656f9cd2a9SJohn BaldwinIn this case no warning is issued as the result of 2666f9cd2a9SJohn Baldwin.Pa /etc/rc.d/motd 2676f9cd2a9SJohn Baldwinis merely cosmetic and will be corrected on the next reboot. 2686f9cd2a9SJohn Baldwin.Ss Build Mode 2696f9cd2a9SJohn BaldwinThe 2706f9cd2a9SJohn Baldwin.Cm build 2716f9cd2a9SJohn Baldwinmode is used to build a tarball that contains a snapshot of a 2726f9cd2a9SJohn Baldwin.Dq current 2736f9cd2a9SJohn Baldwintree. 2746f9cd2a9SJohn BaldwinThis tarball can be used by the default and extract modes. 2756f9cd2a9SJohn BaldwinUsing a tarball can allow 2766f9cd2a9SJohn Baldwin.Nm 2776f9cd2a9SJohn Baldwinto perform a merge without requiring a source tree that matches the 2786f9cd2a9SJohn Baldwincurrently installed world. 2796f9cd2a9SJohn BaldwinThe 2806f9cd2a9SJohn Baldwin.Fa tarball 2816f9cd2a9SJohn Baldwinargument specifies the name of the file to create. 2826f9cd2a9SJohn BaldwinThe file will be a 2836f9cd2a9SJohn Baldwin.Xr tar 5 2846f9cd2a9SJohn Baldwinfile compressed with 2856f9cd2a9SJohn Baldwin.Xr bzip2 1 . 2866f9cd2a9SJohn Baldwin.Ss Diff Mode 2876f9cd2a9SJohn BaldwinThe 2886f9cd2a9SJohn Baldwin.Cm diff 2896f9cd2a9SJohn Baldwinmode compares the versions of files in the destination directory to the 2906f9cd2a9SJohn Baldwin.Dq current 2916f9cd2a9SJohn Baldwintree and generates a unified format diff of the changes. 2926f9cd2a9SJohn BaldwinThis can be used to determine which files have been locally modified and how. 2936f9cd2a9SJohn BaldwinNote that 2946f9cd2a9SJohn Baldwin.Nm 2956f9cd2a9SJohn Baldwindoes not manage files that are not maintained in the source tree such as 2966f9cd2a9SJohn Baldwin.Pa /etc/fstab 2976f9cd2a9SJohn Baldwinand 2986f9cd2a9SJohn Baldwin.Pa /etc/rc.conf . 2996f9cd2a9SJohn Baldwin.Ss Extract Mode 3006f9cd2a9SJohn BaldwinThe 3016f9cd2a9SJohn Baldwin.Cm extract 3026f9cd2a9SJohn Baldwinmode generates a new 3036f9cd2a9SJohn Baldwin.Dq current 3046f9cd2a9SJohn Baldwintree. 3056f9cd2a9SJohn BaldwinUnlike the default mode, 3066f9cd2a9SJohn Baldwinit does not save any existing 3076f9cd2a9SJohn Baldwin.Dq current 3086f9cd2a9SJohn Baldwintree and does not modify any existing 3096f9cd2a9SJohn Baldwin.Dq previous 3106f9cd2a9SJohn Baldwintree. 3116f9cd2a9SJohn BaldwinThe new 3126f9cd2a9SJohn Baldwin.Dq current 3136f9cd2a9SJohn Baldwintree can either be built from a source tree or extracted from a tarball. 3146f9cd2a9SJohn Baldwin.Ss Resolve Mode 3156f9cd2a9SJohn BaldwinThe 3166f9cd2a9SJohn Baldwin.Cm resolve 3176f9cd2a9SJohn Baldwinmode is used to resolve any conflicts encountered during a merge. 3186f9cd2a9SJohn BaldwinIn this mode, 3196f9cd2a9SJohn Baldwin.Nm 3206f9cd2a9SJohn Baldwiniterates over any existing conflicts prompting the user for actions to take 3216f9cd2a9SJohn Baldwinon each conflicted file. 3226f9cd2a9SJohn BaldwinFor each file, the following actions are available: 3236f9cd2a9SJohn Baldwin.Pp 3246f9cd2a9SJohn Baldwin.Bl -tag -width "(tf) theirs-full" -compact 3256f9cd2a9SJohn Baldwin.It (p) postpone 3266f9cd2a9SJohn BaldwinIgnore this conflict for now. 3276f9cd2a9SJohn Baldwin.It (df) diff-full 3286f9cd2a9SJohn BaldwinShow all changes made to the merged file as a unified diff. 3296f9cd2a9SJohn Baldwin.It (e) edit 3306f9cd2a9SJohn BaldwinChange the merged file in an editor. 3316f9cd2a9SJohn Baldwin.It (r) resolved 3326f9cd2a9SJohn BaldwinInstall the merged version of the file into the destination directory. 3336f9cd2a9SJohn Baldwin.It (mf) mine-full 3346f9cd2a9SJohn BaldwinUse the version of the file in the destination directory and ignore any 3356f9cd2a9SJohn Baldwinchanges made to the file in the 3366f9cd2a9SJohn Baldwin.Dq current 3376f9cd2a9SJohn Baldwintree. 3386f9cd2a9SJohn Baldwin.It (tf) theirs-full 3396f9cd2a9SJohn BaldwinUse the version of the file from the 3406f9cd2a9SJohn Baldwin.Dq current 3416f9cd2a9SJohn Baldwintree and discard any local changes made to the file. 3426f9cd2a9SJohn Baldwin.It (h) help 3436f9cd2a9SJohn BaldwinDisplay the list of commands. 3446f9cd2a9SJohn Baldwin.El 3456f9cd2a9SJohn Baldwin.Ss Status Mode 3466f9cd2a9SJohn BaldwinThe 3476f9cd2a9SJohn Baldwin.Cm status 3486f9cd2a9SJohn Baldwinmode shows a summary of the results of the most recent merge. 3496f9cd2a9SJohn BaldwinFirst it lists any files for which there are unresolved conflicts. 3506f9cd2a9SJohn BaldwinNext it lists any warnings generated during the last merge. 3516f9cd2a9SJohn BaldwinIf the last merge did not generate any conflicts or warnings, 3526f9cd2a9SJohn Baldwinthen nothing will be output. 3536f9cd2a9SJohn Baldwin.Sh OPTIONS 3546f9cd2a9SJohn BaldwinThe following options are available. 3556f9cd2a9SJohn BaldwinNote that most options do not apply to all modes. 35637956492SJohn Baldwin.Bl -tag -width ".Fl A Ar patterns" 3576f9cd2a9SJohn Baldwin.It Fl A Ar patterns 3586f9cd2a9SJohn BaldwinAlways install the new version of any files that match any of the patterns 3596f9cd2a9SJohn Baldwinlisted in 3606f9cd2a9SJohn Baldwin.Ar patterns . 3616f9cd2a9SJohn BaldwinEach pattern is evaluated as an 3626f9cd2a9SJohn Baldwin.Xr sh 1 3636f9cd2a9SJohn Baldwinshell pattern. 3646f9cd2a9SJohn BaldwinThis option may be specified multiple times to specify multiple patterns. 3656f9cd2a9SJohn BaldwinMultiple space-separated patterns may also be specified in a single 3666f9cd2a9SJohn Baldwinoption. 3676f9cd2a9SJohn BaldwinNote that ignored files specified via the 3686f9cd2a9SJohn Baldwin.Ev IGNORE_FILES 3696f9cd2a9SJohn Baldwinvariable or the 3706f9cd2a9SJohn Baldwin.Fl I 3716f9cd2a9SJohn Baldwinoption will not be installed. 37237956492SJohn Baldwin.It Fl B 37337956492SJohn BaldwinDo not build generated files in a private object tree. 37437956492SJohn BaldwinInstead, 37537956492SJohn Baldwinreuse the generated files from a previously built object tree that matches 37637956492SJohn Baldwinthe source tree. 37737956492SJohn BaldwinThis can be useful to avoid gratuitous conflicts in 37837956492SJohn Baldwin.Xr sendmail 8 37937956492SJohn Baldwinconfiguration 38037956492SJohn Baldwinfiles when bootstrapping. 38137956492SJohn BaldwinIt can also be useful for building a tarball that matches a specific 38237956492SJohn Baldwinworld build. 3836f9cd2a9SJohn Baldwin.It Fl D Ar destdir 3846f9cd2a9SJohn BaldwinSpecify an alternate destination directory as the target of a merge. 3859efc0059SJoel DahlThis is analogous to the 3866f9cd2a9SJohn Baldwin.Dv DESTDIR 3876f9cd2a9SJohn Baldwinvariable used with 3886f9cd2a9SJohn Baldwin.Sq make installworld . 3896f9cd2a9SJohn BaldwinThe default destination directory is an empty string which results in 3906f9cd2a9SJohn Baldwinmerges updating 3916f9cd2a9SJohn Baldwin.Pa /etc 3926f9cd2a9SJohn Baldwinon the local machine. 39337956492SJohn Baldwin.It Fl d Ar workdir 39437956492SJohn BaldwinSpecify an alternate directory to use as the work directory. 39537956492SJohn BaldwinThe work directory is used to store the 39637956492SJohn Baldwin.Dq current 39737956492SJohn Baldwinand 39837956492SJohn Baldwin.Dq previous 39937956492SJohn Baldwintrees as well as unresolved conflicts. 40037956492SJohn BaldwinThe default work directory is 40137956492SJohn Baldwin.Pa <destdir>/var/db/etcupdate . 4026f9cd2a9SJohn Baldwin.It Fl F 4036f9cd2a9SJohn BaldwinIgnore changes in the FreeBSD ID string when comparing files in the 4046f9cd2a9SJohn Baldwindestination directory to files in either of the 4056f9cd2a9SJohn Baldwin.Dq current 4066f9cd2a9SJohn Baldwinor 4076f9cd2a9SJohn Baldwin.Dq previous 4086f9cd2a9SJohn Baldwintrees. 4096f9cd2a9SJohn BaldwinIn 4106f9cd2a9SJohn Baldwin.Cm diff 4116f9cd2a9SJohn Baldwinmode, 4126f9cd2a9SJohn Baldwinthis reduces noise due to FreeBSD ID string changes in the output. 4136f9cd2a9SJohn BaldwinDuring an update this can simplify handling for harmless conflicts caused 4146f9cd2a9SJohn Baldwinby FreeBSD ID string changes. 4156f9cd2a9SJohn Baldwin.Pp 4166f9cd2a9SJohn BaldwinSpecifically, 4176f9cd2a9SJohn Baldwinif a file in the destination directory is identical to the same file in the 4186f9cd2a9SJohn Baldwin.Dq previous 4196f9cd2a9SJohn Baldwintree modulo the FreeBSD ID string, 4206f9cd2a9SJohn Baldwinthen the file is treated as if it was unmodified and the 4216f9cd2a9SJohn Baldwin.Dq current 4226f9cd2a9SJohn Baldwinversion of the file will be installed. 4236f9cd2a9SJohn BaldwinSimilarly, 4246f9cd2a9SJohn Baldwinif a file in the destination directory is identical to the same file in the 4256f9cd2a9SJohn Baldwin.Dq current 4266f9cd2a9SJohn Baldwintree modulo the FreeBSD ID string, 4276f9cd2a9SJohn Baldwinthen the 4286f9cd2a9SJohn Baldwin.Dq current 4296f9cd2a9SJohn Baldwinversion of the file will be installed to update the ID string. 4306f9cd2a9SJohn BaldwinIf the 4316f9cd2a9SJohn Baldwin.Dq previous 4326f9cd2a9SJohn Baldwinand 4336f9cd2a9SJohn Baldwin.Dq current 4346f9cd2a9SJohn Baldwinversions of the file are identical, 4356f9cd2a9SJohn Baldwinthen 4366f9cd2a9SJohn Baldwin.Nm 4376f9cd2a9SJohn Baldwinwill not change the file in the destination directory. 4386f9cd2a9SJohn Baldwin.Pp 4396f9cd2a9SJohn BaldwinDue to limitations in the 4406f9cd2a9SJohn Baldwin.Xr diff 1 4416f9cd2a9SJohn Baldwincommand, 4426f9cd2a9SJohn Baldwinthis option may not have an effect if there are other changes in a file that 4436f9cd2a9SJohn Baldwinare close to the FreeBSD ID string. 4446f9cd2a9SJohn Baldwin.It Fl I Ar patterns 4456f9cd2a9SJohn BaldwinIgnore any files that match any of the patterns listed in 4466f9cd2a9SJohn Baldwin.Ar patterns . 4476f9cd2a9SJohn BaldwinNo warnings or other messages will be generated for those files during a 4486f9cd2a9SJohn Baldwinmerge. 4496f9cd2a9SJohn BaldwinEach pattern is evaluated as an 4506f9cd2a9SJohn Baldwin.Xr sh 1 4516f9cd2a9SJohn Baldwinshell pattern. 4526f9cd2a9SJohn BaldwinThis option may be specified multiple times to specify multiple patterns. 4536f9cd2a9SJohn BaldwinMultiple space-separated patterns may also be specified in a single 4546f9cd2a9SJohn Baldwinoption. 4556f9cd2a9SJohn Baldwin.It Fl L Ar logfile 4566f9cd2a9SJohn BaldwinSpecify an alternate path for the log file. 4576f9cd2a9SJohn BaldwinThe 4586f9cd2a9SJohn Baldwin.Nm 4596f9cd2a9SJohn Baldwinutility logs each command that it invokes along with the standard output 4606f9cd2a9SJohn Baldwinand standard error to this file. 4616f9cd2a9SJohn BaldwinBy default the log file is stored in a file named 4626f9cd2a9SJohn Baldwin.Pa log 4636f9cd2a9SJohn Baldwinin the work directory. 4646f9cd2a9SJohn Baldwin.It Fl M Ar options 4656f9cd2a9SJohn BaldwinPass 4666f9cd2a9SJohn Baldwin.Ar options 4676f9cd2a9SJohn Baldwinas additional parameters to 4686f9cd2a9SJohn Baldwin.Xr make 1 4696f9cd2a9SJohn Baldwinwhen building a 4706f9cd2a9SJohn Baldwin.Dq current 4716f9cd2a9SJohn Baldwintree. 4726f9cd2a9SJohn BaldwinThis can be used for to set the 4736f9cd2a9SJohn Baldwin.Dv TARGET 4746f9cd2a9SJohn Baldwinor 4756f9cd2a9SJohn Baldwin.Dv TARGET_ARCH 4766f9cd2a9SJohn Baldwinvariables for a cross-build. 4776f9cd2a9SJohn Baldwin.It Fl n 4786f9cd2a9SJohn BaldwinEnable 4796f9cd2a9SJohn Baldwin.Dq dry-run 4806f9cd2a9SJohn Baldwinmode. 4816f9cd2a9SJohn BaldwinDo not merge any changes to the destination directory. 4826f9cd2a9SJohn BaldwinInstead, 4836f9cd2a9SJohn Baldwinreport what actions would be taken during a merge. 4846f9cd2a9SJohn BaldwinNote that the existing 4856f9cd2a9SJohn Baldwin.Dq current 4866f9cd2a9SJohn Baldwinand 4876f9cd2a9SJohn Baldwin.Dq previous 4886f9cd2a9SJohn Baldwintrees will not be changed. 4896f9cd2a9SJohn BaldwinIf the 4906f9cd2a9SJohn Baldwin.Fl r 4916f9cd2a9SJohn Baldwinoption is not specified, 4926f9cd2a9SJohn Baldwinthen a temporary 4936f9cd2a9SJohn Baldwin.Dq current 4946f9cd2a9SJohn Baldwintree will be extracted to perform the comparison. 49521d1f635SJohn Baldwin.It Fl p 49621d1f635SJohn BaldwinEnable 49721d1f635SJohn Baldwin.Dq pre-world 49821d1f635SJohn Baldwinmode. 49921d1f635SJohn BaldwinOnly merge changes to files that are necessary to successfully run 50021d1f635SJohn Baldwin.Sq make installworld 50121d1f635SJohn Baldwinor 50221d1f635SJohn Baldwin.Sq make installkernel . 50321d1f635SJohn BaldwinWhen this flag is enabled, 50421d1f635SJohn Baldwinthe existing 50521d1f635SJohn Baldwin.Dq current 50621d1f635SJohn Baldwinand 50721d1f635SJohn Baldwin.Dq previous 50821d1f635SJohn Baldwintrees are left alone. 50921d1f635SJohn BaldwinInstead, 51021d1f635SJohn Baldwina temporary tree is populated with the necessary files. 51121d1f635SJohn BaldwinThis temporary tree is compared against the 51221d1f635SJohn Baldwin.Dq current 51321d1f635SJohn Baldwintree. 51421d1f635SJohn BaldwinThis allows a normal update to be run after 51521d1f635SJohn Baldwin.Sq make installworld 51621d1f635SJohn Baldwinhas completed. 51721d1f635SJohn BaldwinAny conflicts generated during a 51821d1f635SJohn Baldwin.Dq pre-world 51921d1f635SJohn Baldwinupdate should be resolved by a 52021d1f635SJohn Baldwin.Dq pre-world 52121d1f635SJohn Baldwin.Cm resolve . 5226f9cd2a9SJohn Baldwin.It Fl r 5236f9cd2a9SJohn BaldwinDo not update the 5246f9cd2a9SJohn Baldwin.Dq current 5256f9cd2a9SJohn Baldwinand 5266f9cd2a9SJohn Baldwin.Dq previous 5276f9cd2a9SJohn Baldwintrees during a merge. 5286f9cd2a9SJohn BaldwinThis can be used to 5296f9cd2a9SJohn Baldwin.Dq re-run 5306f9cd2a9SJohn Baldwina previous merge operation. 5316f9cd2a9SJohn Baldwin.It Fl s Ar source 5326f9cd2a9SJohn BaldwinSpecify an alternate source tree to use when building or extracting a 5336f9cd2a9SJohn Baldwin.Dq current 5346f9cd2a9SJohn Baldwintree. 5356f9cd2a9SJohn BaldwinThe default source tree is 5366f9cd2a9SJohn Baldwin.Pa /usr/src . 5376f9cd2a9SJohn Baldwin.It Fl t Ar tarball 5386f9cd2a9SJohn BaldwinExtract a new 5396f9cd2a9SJohn Baldwin.Dq current 5406f9cd2a9SJohn Baldwintree from a tarball previously generated by the 5416f9cd2a9SJohn Baldwin.Cm build 5426f9cd2a9SJohn Baldwincommand rather than building the tree from a source tree. 5436f9cd2a9SJohn Baldwin.El 5446f9cd2a9SJohn Baldwin.Sh CONFIG FILE 5456f9cd2a9SJohn BaldwinThe 5466f9cd2a9SJohn Baldwin.Nm 5476f9cd2a9SJohn Baldwinutility can also be configured by setting variables in an optional 5486f9cd2a9SJohn Baldwinconfiguration file named 5496f9cd2a9SJohn Baldwin.Pa /etc/etcupdate.conf . 5506f9cd2a9SJohn BaldwinNote that command line options override settings in the configuration file. 5516f9cd2a9SJohn BaldwinThe configuration file is executed by 5526f9cd2a9SJohn Baldwin.Xr sh 1 , 5536f9cd2a9SJohn Baldwinso it uses that syntax to set configuration variables. 5546f9cd2a9SJohn BaldwinThe following variables can be set: 5556f9cd2a9SJohn Baldwin.Bl -tag -width ".Ev ALWAYS_INSTALL" 5566f9cd2a9SJohn Baldwin.It Ev ALWAYS_INSTALL 5576f9cd2a9SJohn BaldwinAlways install files that match any of the patterns listed in this variable 5586f9cd2a9SJohn Baldwinsimilar to the 5596f9cd2a9SJohn Baldwin.Fl A 5606f9cd2a9SJohn Baldwinoption. 5616f9cd2a9SJohn Baldwin.It Ev DESTDIR 5626f9cd2a9SJohn BaldwinSpecify an alternate destination directory similar to the 5636f9cd2a9SJohn Baldwin.Fl D 5646f9cd2a9SJohn Baldwinoption. 5656f9cd2a9SJohn Baldwin.It Ev EDITOR 5666f9cd2a9SJohn BaldwinSpecify a program to edit merge conflicts. 5676f9cd2a9SJohn Baldwin.It Ev FREEBSD_ID 5686f9cd2a9SJohn BaldwinIgnore changes in the FreeBSD ID string similar to the 5696f9cd2a9SJohn Baldwin.Fl F 5706f9cd2a9SJohn Baldwinoption. 5716f9cd2a9SJohn BaldwinThis is enabled by setting the variable to a non-empty value. 5726f9cd2a9SJohn Baldwin.It Ev IGNORE_FILES 5736f9cd2a9SJohn BaldwinIgnore files that match any of the patterns listed in this variable 5746f9cd2a9SJohn Baldwinsimilar to the 5756f9cd2a9SJohn Baldwin.Fl I 5766f9cd2a9SJohn Baldwinoption. 5776f9cd2a9SJohn Baldwin.It Ev LOGFILE 5786f9cd2a9SJohn BaldwinSpecify an alternate path for the log file similar to the 5796f9cd2a9SJohn Baldwin.Fl L 5806f9cd2a9SJohn Baldwinoption. 5816f9cd2a9SJohn Baldwin.It Ev MAKE_OPTIONS 5826f9cd2a9SJohn BaldwinPass additional options to 5836f9cd2a9SJohn Baldwin.Xr make 1 5846f9cd2a9SJohn Baldwinwhen building a 5856f9cd2a9SJohn Baldwin.Dq current 5866f9cd2a9SJohn Baldwintree similar to the 5876f9cd2a9SJohn Baldwin.Fl M 5886f9cd2a9SJohn Baldwinoption. 5896f9cd2a9SJohn Baldwin.It Ev SRCDIR 5906f9cd2a9SJohn BaldwinSpecify an alternate source tree similar to the 5916f9cd2a9SJohn Baldwin.Fl s 5926f9cd2a9SJohn Baldwinoption. 5936f9cd2a9SJohn Baldwin.It Ev WORKDIR 5946f9cd2a9SJohn BaldwinSpecify an alternate work directory similar to the 5956f9cd2a9SJohn Baldwin.Fl d 5966f9cd2a9SJohn Baldwinoption. 5976f9cd2a9SJohn Baldwin.El 5986f9cd2a9SJohn Baldwin.Sh ENVIRONMENT 5996f9cd2a9SJohn BaldwinThe 6006f9cd2a9SJohn Baldwin.Nm 6016f9cd2a9SJohn Baldwinutility uses the program identified in the 6026f9cd2a9SJohn Baldwin.Ev EDITOR 6036f9cd2a9SJohn Baldwinenvironment variable to edit merge conflicts. 6046f9cd2a9SJohn BaldwinIf 6056f9cd2a9SJohn Baldwin.Ev EDITOR 6066f9cd2a9SJohn Baldwinis not set, 6076f9cd2a9SJohn Baldwin.Xr vi 1 6086f9cd2a9SJohn Baldwinis used as the default editor. 6096f9cd2a9SJohn Baldwin.Sh FILES 6106f9cd2a9SJohn Baldwin.Bl -tag -width ".Pa /var/db/etcupdate/log" -compact 6116f9cd2a9SJohn Baldwin.It Pa /etc/etcupdate.conf 6126f9cd2a9SJohn BaldwinOptional config file. 6136f9cd2a9SJohn Baldwin.It Pa /var/db/etcupdate 6146f9cd2a9SJohn BaldwinDefault work directory used to store trees and other data. 6156f9cd2a9SJohn Baldwin.It Pa /var/db/etcupdate/log 6166f9cd2a9SJohn BaldwinDefault log file. 6176f9cd2a9SJohn Baldwin.El 6186f9cd2a9SJohn Baldwin.Sh EXIT STATUS 6196f9cd2a9SJohn Baldwin.Ex -std 6206f9cd2a9SJohn Baldwin.Sh EXAMPLES 621079e563cSJohn BaldwinTo compare the files in 622079e563cSJohn Baldwin.Pa /etc 623079e563cSJohn Baldwinwith the stock versions: 6246f9cd2a9SJohn Baldwin.Pp 625079e563cSJohn Baldwin.Dl "etcupdate diff" 6266f9cd2a9SJohn Baldwin.Pp 6276f9cd2a9SJohn BaldwinTo merge changes after an upgrade via the buildworld and installworld process: 6286f9cd2a9SJohn Baldwin.Pp 6296f9cd2a9SJohn Baldwin.Dl "etcupdate" 6306f9cd2a9SJohn Baldwin.Pp 6316f9cd2a9SJohn BaldwinTo resolve any conflicts generated during a merge: 6326f9cd2a9SJohn Baldwin.Pp 6336f9cd2a9SJohn Baldwin.Dl "etcupdate resolve" 634079e563cSJohn Baldwin.Ss Bootstrapping 635079e563cSJohn BaldwinThe 636079e563cSJohn Baldwin.Nm 637079e563cSJohn Baldwinutility may need to be bootstrapped before it can be used. 638079e563cSJohn BaldwinThe 639079e563cSJohn Baldwin.Cm diff 640079e563cSJohn Baldwincommand will fail with an error about a missing reference tree if 641079e563cSJohn Baldwinbootstrapping is needed. 642079e563cSJohn Baldwin.Pp 643079e563cSJohn BaldwinBootstrapping 644079e563cSJohn Baldwin.Nm 645079e563cSJohn Baldwinrequires a source tree that matches the currently installed world. 646079e563cSJohn BaldwinThe easiest way to ensure this is to bootstrap 647079e563cSJohn Baldwin.Nm 648079e563cSJohn Baldwinbefore updating the source tree to start the next world upgrade cycle. 649079e563cSJohn BaldwinFirst, 650079e563cSJohn Baldwingenerate a reference tree: 651079e563cSJohn Baldwin.Pp 652079e563cSJohn Baldwin.Dl "etcupdate extract" 653079e563cSJohn Baldwin.Pp 654079e563cSJohn BaldwinSecond, 655079e563cSJohn Baldwinuse the 656079e563cSJohn Baldwin.Cm diff 657079e563cSJohn Baldwincommand to compare the reference tree to your current files in 658079e563cSJohn Baldwin.Pa /etc . 659079e563cSJohn BaldwinUndesired differences should be removed using an editor, 660079e563cSJohn Baldwin.Xr patch 1 , 661079e563cSJohn Baldwinor by copying files from the reference tree 662079e563cSJohn Baldwin.Po 663079e563cSJohn Baldwinlocated at 664079e563cSJohn Baldwin.Pa /var/db/etcupdate/current 665079e563cSJohn Baldwinby default 666079e563cSJohn Baldwin.Pc 667079e563cSJohn Baldwin. 668079e563cSJohn Baldwin.Pp 669079e563cSJohn BaldwinIf the tree at 670079e563cSJohn Baldwin.Pa /usr/src 671079e563cSJohn Baldwinis already newer than the currently installed world, 672079e563cSJohn Baldwina new tree matching the currently installed world can be checked out to 673079e563cSJohn Baldwina temporary location. 674079e563cSJohn BaldwinThe reference tree for 675079e563cSJohn Baldwin.Nm 676079e563cSJohn Baldwincan then be generated via: 677079e563cSJohn Baldwin.Pp 678079e563cSJohn Baldwin.Dl "etcupdate extract -s /path/to/tree" 679079e563cSJohn Baldwin.Pp 680079e563cSJohn BaldwinThe 681079e563cSJohn Baldwin.Cm diff 682079e563cSJohn Baldwincommand can be used as above to remove undesired differences. 683079e563cSJohn BaldwinAfterwards, 684079e563cSJohn Baldwinthe changes in the tree at 685079e563cSJohn Baldwin.Pa /usr/src 686079e563cSJohn Baldwincan be merged via a regular merge. 6876f9cd2a9SJohn Baldwin.Sh DIAGNOSTICS 6886f9cd2a9SJohn BaldwinThe following warning messages may be generated during a merge. 6896f9cd2a9SJohn BaldwinNote that several of these warnings cover obscure cases that should occur 6906f9cd2a9SJohn Baldwinrarely if at all in practice. 6916f9cd2a9SJohn BaldwinFor example, 6926f9cd2a9SJohn Baldwinif a file changes from a file to a directory in the 6936f9cd2a9SJohn Baldwin.Dq current 6946f9cd2a9SJohn Baldwintree 6956f9cd2a9SJohn Baldwinand the file was modified in the destination directory, 6966f9cd2a9SJohn Baldwinthen a warning will be triggered. 6976f9cd2a9SJohn BaldwinIn general, 6986f9cd2a9SJohn Baldwinwhen a warning references a pathname, 6996f9cd2a9SJohn Baldwinthe corresponding file in the destination directory is not changed by a 7006f9cd2a9SJohn Baldwinmerge operation. 7016f9cd2a9SJohn Baldwin.Bl -diag 7026f9cd2a9SJohn Baldwin.It "Directory mismatch: <path> (<type>)" 7036f9cd2a9SJohn BaldwinAn attempt was made to create a directory at 7046f9cd2a9SJohn Baldwin.Pa path 7056f9cd2a9SJohn Baldwinbut an existing file of type 7066f9cd2a9SJohn Baldwin.Dq type 7076f9cd2a9SJohn Baldwinalready exists for that path name. 7086f9cd2a9SJohn Baldwin.It "Modified link changed: <file> (<old> became <new>)" 7096f9cd2a9SJohn BaldwinThe target of a symbolic link named 7106f9cd2a9SJohn Baldwin.Pa file 7116f9cd2a9SJohn Baldwinwas changed from 7126f9cd2a9SJohn Baldwin.Dq old 7136f9cd2a9SJohn Baldwinto 7146f9cd2a9SJohn Baldwin.Dq new 7156f9cd2a9SJohn Baldwinin the 7166f9cd2a9SJohn Baldwin.Dq current 7176f9cd2a9SJohn Baldwintree. 7186f9cd2a9SJohn BaldwinThe symbolic link has been modified to point to a target that is neither 7196f9cd2a9SJohn Baldwin.Dq old 7206f9cd2a9SJohn Baldwinnor 7216f9cd2a9SJohn Baldwin.Dq new 7226f9cd2a9SJohn Baldwinin the destination directory. 7236f9cd2a9SJohn Baldwin.It "Modified mismatch: <file> (<new> vs <dest>)" 7246f9cd2a9SJohn BaldwinA file named 7256f9cd2a9SJohn Baldwin.Pa file 7266f9cd2a9SJohn Baldwinof type 7276f9cd2a9SJohn Baldwin.Dq new 7286f9cd2a9SJohn Baldwinwas modified in the 7296f9cd2a9SJohn Baldwin.Dq current 7306f9cd2a9SJohn Baldwintree, 7316f9cd2a9SJohn Baldwinbut the file exists as a different type 7326f9cd2a9SJohn Baldwin.Dq dest 7336f9cd2a9SJohn Baldwinin the destination directory. 7346f9cd2a9SJohn Baldwin.It "Modified <type> changed: <file> (<old> became <new>)" 7356f9cd2a9SJohn BaldwinA file named 7366f9cd2a9SJohn Baldwin.Pa file 7376f9cd2a9SJohn Baldwinchanged type from 7386f9cd2a9SJohn Baldwin.Dq old 7396f9cd2a9SJohn Baldwinin the 7406f9cd2a9SJohn Baldwin.Dq previous 7416f9cd2a9SJohn Baldwintree to type 7426f9cd2a9SJohn Baldwin.Dq new 7436f9cd2a9SJohn Baldwinin the 7446f9cd2a9SJohn Baldwin.Dq current 7456f9cd2a9SJohn Baldwintree. 7466f9cd2a9SJohn BaldwinThe file in the destination directory of type 7476f9cd2a9SJohn Baldwin.Dq type 7486f9cd2a9SJohn Baldwinhas been modified, 7496f9cd2a9SJohn Baldwinso it could not be merged automatically. 7506f9cd2a9SJohn Baldwin.It "Modified <type> remains: <file>" 7516f9cd2a9SJohn BaldwinThe file of type 7526f9cd2a9SJohn Baldwin.Dq type 7536f9cd2a9SJohn Baldwinnamed 7546f9cd2a9SJohn Baldwin.Pa file 7556f9cd2a9SJohn Baldwinhas been removed from the 7566f9cd2a9SJohn Baldwin.Dq current 7576f9cd2a9SJohn Baldwintree, 7586f9cd2a9SJohn Baldwinbut it has been locally modified. 7596f9cd2a9SJohn BaldwinThe modified version of the file remains in the destination directory. 7603c9ac704SEdward Tomasz Napierala.It "Needs update: /etc/localtime (required manual update via tzsetup(8))" 7613e920822SJohn BaldwinThe 7623e920822SJohn Baldwin.Fa /var/db/zoneinfo 7633e920822SJohn Baldwinfile does not exist, 7643e920822SJohn Baldwinso 7653e920822SJohn Baldwin.Nm 7663e920822SJohn Baldwinwas not able to refresh 7673e920822SJohn Baldwin.Fa /etc/localtime 7683e920822SJohn Baldwinfrom its source file in 7693e920822SJohn Baldwin.Fa /usr/share/zoneinfo . 7703e920822SJohn BaldwinRunning 7713c9ac704SEdward Tomasz Napierala.Xr tzsetup 8 7723e920822SJohn Baldwinwill both refresh 7733e920822SJohn Baldwin.Fa /etc/localtime 7743e920822SJohn Baldwinand generate 7753e920822SJohn Baldwin.Fa /var/db/zoneinfo 7763e920822SJohn Baldwinpermitting future updates to refresh 7773e920822SJohn Baldwin.Fa /etc/localtime 7783e920822SJohn Baldwinautomatically. 7796f9cd2a9SJohn Baldwin.It "Needs update: /etc/mail/aliases.db (required manual update via newaliases(1))" 7806f9cd2a9SJohn BaldwinThe file 7816f9cd2a9SJohn Baldwin.Pa /etc/mail/aliases 7826f9cd2a9SJohn Baldwinwas updated during a merge with a non-empty destination directory. 7836f9cd2a9SJohn BaldwinDue to a limitation of the 7846f9cd2a9SJohn Baldwin.Xr newaliases 1 7856f9cd2a9SJohn Baldwincommand, 7866f9cd2a9SJohn Baldwin.Nm 7876f9cd2a9SJohn Baldwinwas not able to automatically update the corresponding aliases database. 7886f9cd2a9SJohn Baldwin.It "New file mismatch: <file> (<new> vs <dest>)" 7896f9cd2a9SJohn BaldwinA new file named 7906f9cd2a9SJohn Baldwin.Pa file 7916f9cd2a9SJohn Baldwinof type 7926f9cd2a9SJohn Baldwin.Dq new 7936f9cd2a9SJohn Baldwinhas been added to the 7946f9cd2a9SJohn Baldwin.Dq current 7956f9cd2a9SJohn Baldwintree. 7966f9cd2a9SJohn BaldwinA file of that name already exists in the destination directory, 7976f9cd2a9SJohn Baldwinbut it is of a different type 7986f9cd2a9SJohn Baldwin.Dq dest . 7996f9cd2a9SJohn Baldwin.It "New link conflict: <file> (<new> vs <dest>)" 8006f9cd2a9SJohn BaldwinA symbolic link named 8016f9cd2a9SJohn Baldwin.Pa file 8026f9cd2a9SJohn Baldwinhas been added to the 8036f9cd2a9SJohn Baldwin.Dq current 8046f9cd2a9SJohn Baldwintree that links to 8056f9cd2a9SJohn Baldwin.Dq new . 8066f9cd2a9SJohn BaldwinA symbolic link of the same name already exists in the destination 8076f9cd2a9SJohn Baldwindirectory, 8086f9cd2a9SJohn Baldwinbut it links to a different target 8096f9cd2a9SJohn Baldwin.Dq dest . 8106f9cd2a9SJohn Baldwin.It "Non-empty directory remains: <file>" 8116f9cd2a9SJohn BaldwinThe directory 8126f9cd2a9SJohn Baldwin.Pa file 8136f9cd2a9SJohn Baldwinwas removed from the 8146f9cd2a9SJohn Baldwin.Dq current 8156f9cd2a9SJohn Baldwintree, 8166f9cd2a9SJohn Baldwinbut it contains additional files in the destination directory. 8176f9cd2a9SJohn BaldwinThese additional files as well as the directory remain. 8186f9cd2a9SJohn Baldwin.It "Remove mismatch: <file> (<old> became <new>)" 8196f9cd2a9SJohn BaldwinA file named 8206f9cd2a9SJohn Baldwin.Pa file 8216f9cd2a9SJohn Baldwinchanged from type 8226f9cd2a9SJohn Baldwin.Dq old 8236f9cd2a9SJohn Baldwinin the 8246f9cd2a9SJohn Baldwin.Dq previous 8256f9cd2a9SJohn Baldwintree to type 8266f9cd2a9SJohn Baldwin.Dq new 8276f9cd2a9SJohn Baldwinin the 8286f9cd2a9SJohn Baldwin.Dq current 8296f9cd2a9SJohn Baldwintree, 8306f9cd2a9SJohn Baldwinbut it has been removed in the destination directory. 8316f9cd2a9SJohn Baldwin.It "Removed file changed: <file>" 8326f9cd2a9SJohn BaldwinA file named 8336f9cd2a9SJohn Baldwin.Pa file 8346f9cd2a9SJohn Baldwinwas modified in the 8356f9cd2a9SJohn Baldwin.Dq current 8366f9cd2a9SJohn Baldwintree, 8376f9cd2a9SJohn Baldwinbut it has been removed in the destination directory. 8386f9cd2a9SJohn Baldwin.It "Removed link changed: <file> (<old> became <new>)" 8396f9cd2a9SJohn BaldwinThe target of a symbolic link named 8406f9cd2a9SJohn Baldwin.Pa file 8416f9cd2a9SJohn Baldwinwas changed from 8426f9cd2a9SJohn Baldwin.Dq old 8436f9cd2a9SJohn Baldwinto 8446f9cd2a9SJohn Baldwin.Dq new 8456f9cd2a9SJohn Baldwinin the 8466f9cd2a9SJohn Baldwin.Dq current 8476f9cd2a9SJohn Baldwintree, 8486f9cd2a9SJohn Baldwinbut it has been removed in the destination directory. 8496f9cd2a9SJohn Baldwin.El 8506f9cd2a9SJohn Baldwin.Sh SEE ALSO 8516f9cd2a9SJohn Baldwin.Xr cap_mkdb 1 , 8526f9cd2a9SJohn Baldwin.Xr diff 1 , 8536f9cd2a9SJohn Baldwin.Xr make 1 , 8546f9cd2a9SJohn Baldwin.Xr newaliases 1 , 8556f9cd2a9SJohn Baldwin.Xr sh 1 , 85674914641SBryan Drewery.Xr pwd_mkdb 8 , 85774914641SBryan Drewery.Xr services_mkdb 8 , 85874914641SBryan Drewery.Xr tzsetup 8 859cc59cb76SJoel Dahl.Sh HISTORY 860cc59cb76SJoel DahlThe 861cc59cb76SJoel Dahl.Nm 862cc59cb76SJoel Dahlutility first appeared in 863cc59cb76SJoel Dahl.Fx 10.0 . 8646f9cd2a9SJohn Baldwin.Sh AUTHORS 8656f9cd2a9SJohn BaldwinThe 8666f9cd2a9SJohn Baldwin.Nm 8676f9cd2a9SJohn Baldwinutility was written by 86801c2b8acSBaptiste Daroussin.An John Baldwin Aq Mt jhb@FreeBSD.org . 8696f9cd2a9SJohn Baldwin.Sh BUGS 8706f9cd2a9SJohn BaldwinRerunning a merge does not automatically delete conflicts left over from a 8716f9cd2a9SJohn Baldwinprevious merge. 8726f9cd2a9SJohn BaldwinAny conflicts must be resolved before the merge can be rerun. 873*7bb0da8dSBjoern HeidottingIt is not clear if this is a feature or a bug. 8746f9cd2a9SJohn Baldwin.Pp 8756f9cd2a9SJohn BaldwinThere is no way to easily automate conflict resolution for specific files. 8766f9cd2a9SJohn BaldwinFor example, one can imagine a syntax along the lines of 8776f9cd2a9SJohn Baldwin.Pp 8786f9cd2a9SJohn Baldwin.Dl "etcupdate resolve tf /some/file" 8796f9cd2a9SJohn Baldwin.Pp 8806f9cd2a9SJohn Baldwinto resolve a specific conflict in an automated fashion. 8816f9cd2a9SJohn Baldwin.Pp 8826f9cd2a9SJohn BaldwinIt might be nice to have something like a 8836f9cd2a9SJohn Baldwin.Sq revert 8846f9cd2a9SJohn Baldwincommand to replace a locally modified version of a file with the stock 8856f9cd2a9SJohn Baldwinversion of the file. 8866f9cd2a9SJohn BaldwinFor example: 8876f9cd2a9SJohn Baldwin.Pp 8886f9cd2a9SJohn Baldwin.Dl "etcupdate revert /etc/mail/freebsd.cf" 8896f9cd2a9SJohn Baldwin.Pp 8906f9cd2a9SJohn BaldwinBootstrapping 8916f9cd2a9SJohn Baldwin.Nm 8926f9cd2a9SJohn Baldwinoften results in gratuitous diffs in 8936f9cd2a9SJohn Baldwin.Pa /etc/mail/*.cf 8946f9cd2a9SJohn Baldwinthat cause conflicts in the first merge. 8956f9cd2a9SJohn BaldwinIf an object tree that matches the source tree is present when bootstrapping, 8966f9cd2a9SJohn Baldwinthen passing the 8976f9cd2a9SJohn Baldwin.Fl B 8986f9cd2a9SJohn Baldwinflag to the 8996f9cd2a9SJohn Baldwin.Cm extract 9006f9cd2a9SJohn Baldwincommand can work around this. 901