xref: /freebsd/usr.sbin/etcupdate/etcupdate.8 (revision 3e920822b72919723f11ff07b1454bd750c20673)
1*3e920822SJohn Baldwin.\" Copyright (c) 2010-2013 Advanced Computing Technologies 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.\"
28*3e920822SJohn Baldwin.Dd December 9, 2013
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,
2366f9cd2a9SJohn Baldwinand
2376f9cd2a9SJohn Baldwin.Pa /etc/rc.d/motd
2386f9cd2a9SJohn Baldwinis invoked if
2396f9cd2a9SJohn Baldwin.Pa /etc/motd
2406f9cd2a9SJohn Baldwinis changed.
2416f9cd2a9SJohn BaldwinOne exception is that if
2426f9cd2a9SJohn Baldwin.Pa /etc/mail/aliases
2436f9cd2a9SJohn Baldwinis changed and the destination directory is not the default,
2446f9cd2a9SJohn Baldwinthen a warning will be issued instead.
2456f9cd2a9SJohn BaldwinThis is due to a limitation of the
2466f9cd2a9SJohn Baldwin.Xr newaliases 1
2476f9cd2a9SJohn Baldwincommand.
2486f9cd2a9SJohn BaldwinSimilarly,
2496f9cd2a9SJohn Baldwinif
2506f9cd2a9SJohn Baldwin.Pa /etc/motd
2516f9cd2a9SJohn Baldwinis changed and the destination directory is not the default,
2526f9cd2a9SJohn Baldwinthen
2536f9cd2a9SJohn Baldwin.Pa /etc/rc.d/motd
2546f9cd2a9SJohn Baldwinwill not be executed due to a limitation of that script.
2556f9cd2a9SJohn BaldwinIn this case no warning is issued as the result of
2566f9cd2a9SJohn Baldwin.Pa /etc/rc.d/motd
2576f9cd2a9SJohn Baldwinis merely cosmetic and will be corrected on the next reboot.
2586f9cd2a9SJohn Baldwin.Ss Build Mode
2596f9cd2a9SJohn BaldwinThe
2606f9cd2a9SJohn Baldwin.Cm build
2616f9cd2a9SJohn Baldwinmode is used to build a tarball that contains a snapshot of a
2626f9cd2a9SJohn Baldwin.Dq current
2636f9cd2a9SJohn Baldwintree.
2646f9cd2a9SJohn BaldwinThis tarball can be used by the default and extract modes.
2656f9cd2a9SJohn BaldwinUsing a tarball can allow
2666f9cd2a9SJohn Baldwin.Nm
2676f9cd2a9SJohn Baldwinto perform a merge without requiring a source tree that matches the
2686f9cd2a9SJohn Baldwincurrently installed world.
2696f9cd2a9SJohn BaldwinThe
2706f9cd2a9SJohn Baldwin.Fa tarball
2716f9cd2a9SJohn Baldwinargument specifies the name of the file to create.
2726f9cd2a9SJohn BaldwinThe file will be a
2736f9cd2a9SJohn Baldwin.Xr tar 5
2746f9cd2a9SJohn Baldwinfile compressed with
2756f9cd2a9SJohn Baldwin.Xr bzip2 1 .
2766f9cd2a9SJohn Baldwin.Ss Diff Mode
2776f9cd2a9SJohn BaldwinThe
2786f9cd2a9SJohn Baldwin.Cm diff
2796f9cd2a9SJohn Baldwinmode compares the versions of files in the destination directory to the
2806f9cd2a9SJohn Baldwin.Dq current
2816f9cd2a9SJohn Baldwintree and generates a unified format diff of the changes.
2826f9cd2a9SJohn BaldwinThis can be used to determine which files have been locally modified and how.
2836f9cd2a9SJohn BaldwinNote that
2846f9cd2a9SJohn Baldwin.Nm
2856f9cd2a9SJohn Baldwindoes not manage files that are not maintained in the source tree such as
2866f9cd2a9SJohn Baldwin.Pa /etc/fstab
2876f9cd2a9SJohn Baldwinand
2886f9cd2a9SJohn Baldwin.Pa /etc/rc.conf .
2896f9cd2a9SJohn Baldwin.Ss Extract Mode
2906f9cd2a9SJohn BaldwinThe
2916f9cd2a9SJohn Baldwin.Cm extract
2926f9cd2a9SJohn Baldwinmode generates a new
2936f9cd2a9SJohn Baldwin.Dq current
2946f9cd2a9SJohn Baldwintree.
2956f9cd2a9SJohn BaldwinUnlike the default mode,
2966f9cd2a9SJohn Baldwinit does not save any existing
2976f9cd2a9SJohn Baldwin.Dq current
2986f9cd2a9SJohn Baldwintree and does not modify any existing
2996f9cd2a9SJohn Baldwin.Dq previous
3006f9cd2a9SJohn Baldwintree.
3016f9cd2a9SJohn BaldwinThe new
3026f9cd2a9SJohn Baldwin.Dq current
3036f9cd2a9SJohn Baldwintree can either be built from a source tree or extracted from a tarball.
3046f9cd2a9SJohn Baldwin.Ss Resolve Mode
3056f9cd2a9SJohn BaldwinThe
3066f9cd2a9SJohn Baldwin.Cm resolve
3076f9cd2a9SJohn Baldwinmode is used to resolve any conflicts encountered during a merge.
3086f9cd2a9SJohn BaldwinIn this mode,
3096f9cd2a9SJohn Baldwin.Nm
3106f9cd2a9SJohn Baldwiniterates over any existing conflicts prompting the user for actions to take
3116f9cd2a9SJohn Baldwinon each conflicted file.
3126f9cd2a9SJohn BaldwinFor each file, the following actions are available:
3136f9cd2a9SJohn Baldwin.Pp
3146f9cd2a9SJohn Baldwin.Bl -tag -width "(tf) theirs-full" -compact
3156f9cd2a9SJohn Baldwin.It (p)  postpone
3166f9cd2a9SJohn BaldwinIgnore this conflict for now.
3176f9cd2a9SJohn Baldwin.It (df) diff-full
3186f9cd2a9SJohn BaldwinShow all changes made to the merged file as a unified diff.
3196f9cd2a9SJohn Baldwin.It (e)  edit
3206f9cd2a9SJohn BaldwinChange the merged file in an editor.
3216f9cd2a9SJohn Baldwin.It (r)  resolved
3226f9cd2a9SJohn BaldwinInstall the merged version of the file into the destination directory.
3236f9cd2a9SJohn Baldwin.It (mf) mine-full
3246f9cd2a9SJohn BaldwinUse the version of the file in the destination directory and ignore any
3256f9cd2a9SJohn Baldwinchanges made to the file in the
3266f9cd2a9SJohn Baldwin.Dq current
3276f9cd2a9SJohn Baldwintree.
3286f9cd2a9SJohn Baldwin.It (tf) theirs-full
3296f9cd2a9SJohn BaldwinUse the version of the file from the
3306f9cd2a9SJohn Baldwin.Dq current
3316f9cd2a9SJohn Baldwintree and discard any local changes made to the file.
3326f9cd2a9SJohn Baldwin.It (h)  help
3336f9cd2a9SJohn BaldwinDisplay the list of commands.
3346f9cd2a9SJohn Baldwin.El
3356f9cd2a9SJohn Baldwin.Ss Status Mode
3366f9cd2a9SJohn BaldwinThe
3376f9cd2a9SJohn Baldwin.Cm status
3386f9cd2a9SJohn Baldwinmode shows a summary of the results of the most recent merge.
3396f9cd2a9SJohn BaldwinFirst it lists any files for which there are unresolved conflicts.
3406f9cd2a9SJohn BaldwinNext it lists any warnings generated during the last merge.
3416f9cd2a9SJohn BaldwinIf the last merge did not generate any conflicts or warnings,
3426f9cd2a9SJohn Baldwinthen nothing will be output.
3436f9cd2a9SJohn Baldwin.Sh OPTIONS
3446f9cd2a9SJohn BaldwinThe following options are available.
3456f9cd2a9SJohn BaldwinNote that most options do not apply to all modes.
34637956492SJohn Baldwin.Bl -tag -width ".Fl A Ar patterns"
3476f9cd2a9SJohn Baldwin.It Fl A Ar patterns
3486f9cd2a9SJohn BaldwinAlways install the new version of any files that match any of the patterns
3496f9cd2a9SJohn Baldwinlisted in
3506f9cd2a9SJohn Baldwin.Ar patterns .
3516f9cd2a9SJohn BaldwinEach pattern is evaluated as an
3526f9cd2a9SJohn Baldwin.Xr sh 1
3536f9cd2a9SJohn Baldwinshell pattern.
3546f9cd2a9SJohn BaldwinThis option may be specified multiple times to specify multiple patterns.
3556f9cd2a9SJohn BaldwinMultiple space-separated patterns may also be specified in a single
3566f9cd2a9SJohn Baldwinoption.
3576f9cd2a9SJohn BaldwinNote that ignored files specified via the
3586f9cd2a9SJohn Baldwin.Ev IGNORE_FILES
3596f9cd2a9SJohn Baldwinvariable or the
3606f9cd2a9SJohn Baldwin.Fl I
3616f9cd2a9SJohn Baldwinoption will not be installed.
36237956492SJohn Baldwin.It Fl B
36337956492SJohn BaldwinDo not build generated files in a private object tree.
36437956492SJohn BaldwinInstead,
36537956492SJohn Baldwinreuse the generated files from a previously built object tree that matches
36637956492SJohn Baldwinthe source tree.
36737956492SJohn BaldwinThis can be useful to avoid gratuitous conflicts in
36837956492SJohn Baldwin.Xr sendmail 8
36937956492SJohn Baldwinconfiguration
37037956492SJohn Baldwinfiles when bootstrapping.
37137956492SJohn BaldwinIt can also be useful for building a tarball that matches a specific
37237956492SJohn Baldwinworld build.
3736f9cd2a9SJohn Baldwin.It Fl D Ar destdir
3746f9cd2a9SJohn BaldwinSpecify an alternate destination directory as the target of a merge.
3759efc0059SJoel DahlThis is analogous to the
3766f9cd2a9SJohn Baldwin.Dv DESTDIR
3776f9cd2a9SJohn Baldwinvariable used with
3786f9cd2a9SJohn Baldwin.Sq make installworld .
3796f9cd2a9SJohn BaldwinThe default destination directory is an empty string which results in
3806f9cd2a9SJohn Baldwinmerges updating
3816f9cd2a9SJohn Baldwin.Pa /etc
3826f9cd2a9SJohn Baldwinon the local machine.
38337956492SJohn Baldwin.It Fl d Ar workdir
38437956492SJohn BaldwinSpecify an alternate directory to use as the work directory.
38537956492SJohn BaldwinThe work directory is used to store the
38637956492SJohn Baldwin.Dq current
38737956492SJohn Baldwinand
38837956492SJohn Baldwin.Dq previous
38937956492SJohn Baldwintrees as well as unresolved conflicts.
39037956492SJohn BaldwinThe default work directory is
39137956492SJohn Baldwin.Pa <destdir>/var/db/etcupdate .
3926f9cd2a9SJohn Baldwin.It Fl F
3936f9cd2a9SJohn BaldwinIgnore changes in the FreeBSD ID string when comparing files in the
3946f9cd2a9SJohn Baldwindestination directory to files in either of the
3956f9cd2a9SJohn Baldwin.Dq current
3966f9cd2a9SJohn Baldwinor
3976f9cd2a9SJohn Baldwin.Dq previous
3986f9cd2a9SJohn Baldwintrees.
3996f9cd2a9SJohn BaldwinIn
4006f9cd2a9SJohn Baldwin.Cm diff
4016f9cd2a9SJohn Baldwinmode,
4026f9cd2a9SJohn Baldwinthis reduces noise due to FreeBSD ID string changes in the output.
4036f9cd2a9SJohn BaldwinDuring an update this can simplify handling for harmless conflicts caused
4046f9cd2a9SJohn Baldwinby FreeBSD ID string changes.
4056f9cd2a9SJohn Baldwin.Pp
4066f9cd2a9SJohn BaldwinSpecifically,
4076f9cd2a9SJohn Baldwinif a file in the destination directory is identical to the same file in the
4086f9cd2a9SJohn Baldwin.Dq previous
4096f9cd2a9SJohn Baldwintree modulo the FreeBSD ID string,
4106f9cd2a9SJohn Baldwinthen the file is treated as if it was unmodified and the
4116f9cd2a9SJohn Baldwin.Dq current
4126f9cd2a9SJohn Baldwinversion of the file will be installed.
4136f9cd2a9SJohn BaldwinSimilarly,
4146f9cd2a9SJohn Baldwinif a file in the destination directory is identical to the same file in the
4156f9cd2a9SJohn Baldwin.Dq current
4166f9cd2a9SJohn Baldwintree modulo the FreeBSD ID string,
4176f9cd2a9SJohn Baldwinthen the
4186f9cd2a9SJohn Baldwin.Dq current
4196f9cd2a9SJohn Baldwinversion of the file will be installed to update the ID string.
4206f9cd2a9SJohn BaldwinIf the
4216f9cd2a9SJohn Baldwin.Dq previous
4226f9cd2a9SJohn Baldwinand
4236f9cd2a9SJohn Baldwin.Dq current
4246f9cd2a9SJohn Baldwinversions of the file are identical,
4256f9cd2a9SJohn Baldwinthen
4266f9cd2a9SJohn Baldwin.Nm
4276f9cd2a9SJohn Baldwinwill not change the file in the destination directory.
4286f9cd2a9SJohn Baldwin.Pp
4296f9cd2a9SJohn BaldwinDue to limitations in the
4306f9cd2a9SJohn Baldwin.Xr diff 1
4316f9cd2a9SJohn Baldwincommand,
4326f9cd2a9SJohn Baldwinthis option may not have an effect if there are other changes in a file that
4336f9cd2a9SJohn Baldwinare close to the FreeBSD ID string.
4346f9cd2a9SJohn Baldwin.It Fl I Ar patterns
4356f9cd2a9SJohn BaldwinIgnore any files that match any of the patterns listed in
4366f9cd2a9SJohn Baldwin.Ar patterns .
4376f9cd2a9SJohn BaldwinNo warnings or other messages will be generated for those files during a
4386f9cd2a9SJohn Baldwinmerge.
4396f9cd2a9SJohn BaldwinEach pattern is evaluated as an
4406f9cd2a9SJohn Baldwin.Xr sh 1
4416f9cd2a9SJohn Baldwinshell pattern.
4426f9cd2a9SJohn BaldwinThis option may be specified multiple times to specify multiple patterns.
4436f9cd2a9SJohn BaldwinMultiple space-separated patterns may also be specified in a single
4446f9cd2a9SJohn Baldwinoption.
4456f9cd2a9SJohn Baldwin.It Fl L Ar logfile
4466f9cd2a9SJohn BaldwinSpecify an alternate path for the log file.
4476f9cd2a9SJohn BaldwinThe
4486f9cd2a9SJohn Baldwin.Nm
4496f9cd2a9SJohn Baldwinutility logs each command that it invokes along with the standard output
4506f9cd2a9SJohn Baldwinand standard error to this file.
4516f9cd2a9SJohn BaldwinBy default the log file is stored in a file named
4526f9cd2a9SJohn Baldwin.Pa log
4536f9cd2a9SJohn Baldwinin the work directory.
4546f9cd2a9SJohn Baldwin.It Fl M Ar options
4556f9cd2a9SJohn BaldwinPass
4566f9cd2a9SJohn Baldwin.Ar options
4576f9cd2a9SJohn Baldwinas additional parameters to
4586f9cd2a9SJohn Baldwin.Xr make 1
4596f9cd2a9SJohn Baldwinwhen building a
4606f9cd2a9SJohn Baldwin.Dq current
4616f9cd2a9SJohn Baldwintree.
4626f9cd2a9SJohn BaldwinThis can be used for to set the
4636f9cd2a9SJohn Baldwin.Dv TARGET
4646f9cd2a9SJohn Baldwinor
4656f9cd2a9SJohn Baldwin.Dv TARGET_ARCH
4666f9cd2a9SJohn Baldwinvariables for a cross-build.
4676f9cd2a9SJohn Baldwin.It Fl n
4686f9cd2a9SJohn BaldwinEnable
4696f9cd2a9SJohn Baldwin.Dq dry-run
4706f9cd2a9SJohn Baldwinmode.
4716f9cd2a9SJohn BaldwinDo not merge any changes to the destination directory.
4726f9cd2a9SJohn BaldwinInstead,
4736f9cd2a9SJohn Baldwinreport what actions would be taken during a merge.
4746f9cd2a9SJohn BaldwinNote that the existing
4756f9cd2a9SJohn Baldwin.Dq current
4766f9cd2a9SJohn Baldwinand
4776f9cd2a9SJohn Baldwin.Dq previous
4786f9cd2a9SJohn Baldwintrees will not be changed.
4796f9cd2a9SJohn BaldwinIf the
4806f9cd2a9SJohn Baldwin.Fl r
4816f9cd2a9SJohn Baldwinoption is not specified,
4826f9cd2a9SJohn Baldwinthen a temporary
4836f9cd2a9SJohn Baldwin.Dq current
4846f9cd2a9SJohn Baldwintree will be extracted to perform the comparison.
48521d1f635SJohn Baldwin.It Fl p
48621d1f635SJohn BaldwinEnable
48721d1f635SJohn Baldwin.Dq pre-world
48821d1f635SJohn Baldwinmode.
48921d1f635SJohn BaldwinOnly merge changes to files that are necessary to successfully run
49021d1f635SJohn Baldwin.Sq make installworld
49121d1f635SJohn Baldwinor
49221d1f635SJohn Baldwin.Sq make installkernel .
49321d1f635SJohn BaldwinWhen this flag is enabled,
49421d1f635SJohn Baldwinthe existing
49521d1f635SJohn Baldwin.Dq current
49621d1f635SJohn Baldwinand
49721d1f635SJohn Baldwin.Dq previous
49821d1f635SJohn Baldwintrees are left alone.
49921d1f635SJohn BaldwinInstead,
50021d1f635SJohn Baldwina temporary tree is populated with the necessary files.
50121d1f635SJohn BaldwinThis temporary tree is compared against the
50221d1f635SJohn Baldwin.Dq current
50321d1f635SJohn Baldwintree.
50421d1f635SJohn BaldwinThis allows a normal update to be run after
50521d1f635SJohn Baldwin.Sq make installworld
50621d1f635SJohn Baldwinhas completed.
50721d1f635SJohn BaldwinAny conflicts generated during a
50821d1f635SJohn Baldwin.Dq pre-world
50921d1f635SJohn Baldwinupdate should be resolved by a
51021d1f635SJohn Baldwin.Dq pre-world
51121d1f635SJohn Baldwin.Cm resolve .
5126f9cd2a9SJohn Baldwin.It Fl r
5136f9cd2a9SJohn BaldwinDo not update the
5146f9cd2a9SJohn Baldwin.Dq current
5156f9cd2a9SJohn Baldwinand
5166f9cd2a9SJohn Baldwin.Dq previous
5176f9cd2a9SJohn Baldwintrees during a merge.
5186f9cd2a9SJohn BaldwinThis can be used to
5196f9cd2a9SJohn Baldwin.Dq re-run
5206f9cd2a9SJohn Baldwina previous merge operation.
5216f9cd2a9SJohn Baldwin.It Fl s Ar source
5226f9cd2a9SJohn BaldwinSpecify an alternate source tree to use when building or extracting a
5236f9cd2a9SJohn Baldwin.Dq current
5246f9cd2a9SJohn Baldwintree.
5256f9cd2a9SJohn BaldwinThe default source tree is
5266f9cd2a9SJohn Baldwin.Pa /usr/src .
5276f9cd2a9SJohn Baldwin.It Fl t Ar tarball
5286f9cd2a9SJohn BaldwinExtract a new
5296f9cd2a9SJohn Baldwin.Dq current
5306f9cd2a9SJohn Baldwintree from a tarball previously generated by the
5316f9cd2a9SJohn Baldwin.Cm build
5326f9cd2a9SJohn Baldwincommand rather than building the tree from a source tree.
5336f9cd2a9SJohn Baldwin.El
5346f9cd2a9SJohn Baldwin.Sh CONFIG FILE
5356f9cd2a9SJohn BaldwinThe
5366f9cd2a9SJohn Baldwin.Nm
5376f9cd2a9SJohn Baldwinutility can also be configured by setting variables in an optional
5386f9cd2a9SJohn Baldwinconfiguration file named
5396f9cd2a9SJohn Baldwin.Pa /etc/etcupdate.conf .
5406f9cd2a9SJohn BaldwinNote that command line options override settings in the configuration file.
5416f9cd2a9SJohn BaldwinThe configuration file is executed by
5426f9cd2a9SJohn Baldwin.Xr sh 1 ,
5436f9cd2a9SJohn Baldwinso it uses that syntax to set configuration variables.
5446f9cd2a9SJohn BaldwinThe following variables can be set:
5456f9cd2a9SJohn Baldwin.Bl -tag -width ".Ev ALWAYS_INSTALL"
5466f9cd2a9SJohn Baldwin.It Ev ALWAYS_INSTALL
5476f9cd2a9SJohn BaldwinAlways install files that match any of the patterns listed in this variable
5486f9cd2a9SJohn Baldwinsimilar to the
5496f9cd2a9SJohn Baldwin.Fl A
5506f9cd2a9SJohn Baldwinoption.
5516f9cd2a9SJohn Baldwin.It Ev DESTDIR
5526f9cd2a9SJohn BaldwinSpecify an alternate destination directory similar to the
5536f9cd2a9SJohn Baldwin.Fl D
5546f9cd2a9SJohn Baldwinoption.
5556f9cd2a9SJohn Baldwin.It Ev EDITOR
5566f9cd2a9SJohn BaldwinSpecify a program to edit merge conflicts.
5576f9cd2a9SJohn Baldwin.It Ev FREEBSD_ID
5586f9cd2a9SJohn BaldwinIgnore changes in the FreeBSD ID string similar to the
5596f9cd2a9SJohn Baldwin.Fl F
5606f9cd2a9SJohn Baldwinoption.
5616f9cd2a9SJohn BaldwinThis is enabled by setting the variable to a non-empty value.
5626f9cd2a9SJohn Baldwin.It Ev IGNORE_FILES
5636f9cd2a9SJohn BaldwinIgnore files that match any of the patterns listed in this variable
5646f9cd2a9SJohn Baldwinsimilar to the
5656f9cd2a9SJohn Baldwin.Fl I
5666f9cd2a9SJohn Baldwinoption.
5676f9cd2a9SJohn Baldwin.It Ev LOGFILE
5686f9cd2a9SJohn BaldwinSpecify an alternate path for the log file similar to the
5696f9cd2a9SJohn Baldwin.Fl L
5706f9cd2a9SJohn Baldwinoption.
5716f9cd2a9SJohn Baldwin.It Ev MAKE_OPTIONS
5726f9cd2a9SJohn BaldwinPass additional options to
5736f9cd2a9SJohn Baldwin.Xr make 1
5746f9cd2a9SJohn Baldwinwhen building a
5756f9cd2a9SJohn Baldwin.Dq current
5766f9cd2a9SJohn Baldwintree similar to the
5776f9cd2a9SJohn Baldwin.Fl M
5786f9cd2a9SJohn Baldwinoption.
5796f9cd2a9SJohn Baldwin.It Ev SRCDIR
5806f9cd2a9SJohn BaldwinSpecify an alternate source tree similar to the
5816f9cd2a9SJohn Baldwin.Fl s
5826f9cd2a9SJohn Baldwinoption.
5836f9cd2a9SJohn Baldwin.It Ev WORKDIR
5846f9cd2a9SJohn BaldwinSpecify an alternate work directory similar to the
5856f9cd2a9SJohn Baldwin.Fl d
5866f9cd2a9SJohn Baldwinoption.
5876f9cd2a9SJohn Baldwin.El
5886f9cd2a9SJohn Baldwin.Sh ENVIRONMENT
5896f9cd2a9SJohn BaldwinThe
5906f9cd2a9SJohn Baldwin.Nm
5916f9cd2a9SJohn Baldwinutility uses the program identified in the
5926f9cd2a9SJohn Baldwin.Ev EDITOR
5936f9cd2a9SJohn Baldwinenvironment variable to edit merge conflicts.
5946f9cd2a9SJohn BaldwinIf
5956f9cd2a9SJohn Baldwin.Ev EDITOR
5966f9cd2a9SJohn Baldwinis not set,
5976f9cd2a9SJohn Baldwin.Xr vi 1
5986f9cd2a9SJohn Baldwinis used as the default editor.
5996f9cd2a9SJohn Baldwin.Sh FILES
6006f9cd2a9SJohn Baldwin.Bl -tag -width ".Pa /var/db/etcupdate/log" -compact
6016f9cd2a9SJohn Baldwin.It Pa /etc/etcupdate.conf
6026f9cd2a9SJohn BaldwinOptional config file.
6036f9cd2a9SJohn Baldwin.It Pa /var/db/etcupdate
6046f9cd2a9SJohn BaldwinDefault work directory used to store trees and other data.
6056f9cd2a9SJohn Baldwin.It Pa /var/db/etcupdate/log
6066f9cd2a9SJohn BaldwinDefault log file.
6076f9cd2a9SJohn Baldwin.El
6086f9cd2a9SJohn Baldwin.Sh EXIT STATUS
6096f9cd2a9SJohn Baldwin.Ex -std
6106f9cd2a9SJohn Baldwin.Sh EXAMPLES
6116f9cd2a9SJohn BaldwinIf the source tree matches the currently installed world,
6126f9cd2a9SJohn Baldwinthen the following can be used to bootstrap
6136f9cd2a9SJohn Baldwin.Nm
6146f9cd2a9SJohn Baldwinso that it can be used for future upgrades:
6156f9cd2a9SJohn Baldwin.Pp
6166f9cd2a9SJohn Baldwin.Dl "etcupdate extract"
6176f9cd2a9SJohn Baldwin.Pp
6186f9cd2a9SJohn BaldwinTo merge changes after an upgrade via the buildworld and installworld process:
6196f9cd2a9SJohn Baldwin.Pp
6206f9cd2a9SJohn Baldwin.Dl "etcupdate"
6216f9cd2a9SJohn Baldwin.Pp
6226f9cd2a9SJohn BaldwinTo resolve any conflicts generated during a merge:
6236f9cd2a9SJohn Baldwin.Pp
6246f9cd2a9SJohn Baldwin.Dl "etcupdate resolve"
6256f9cd2a9SJohn Baldwin.Sh DIAGNOSTICS
6266f9cd2a9SJohn BaldwinThe following warning messages may be generated during a merge.
6276f9cd2a9SJohn BaldwinNote that several of these warnings cover obscure cases that should occur
6286f9cd2a9SJohn Baldwinrarely if at all in practice.
6296f9cd2a9SJohn BaldwinFor example,
6306f9cd2a9SJohn Baldwinif a file changes from a file to a directory in the
6316f9cd2a9SJohn Baldwin.Dq current
6326f9cd2a9SJohn Baldwintree
6336f9cd2a9SJohn Baldwinand the file was modified in the destination directory,
6346f9cd2a9SJohn Baldwinthen a warning will be triggered.
6356f9cd2a9SJohn BaldwinIn general,
6366f9cd2a9SJohn Baldwinwhen a warning references a pathname,
6376f9cd2a9SJohn Baldwinthe corresponding file in the destination directory is not changed by a
6386f9cd2a9SJohn Baldwinmerge operation.
6396f9cd2a9SJohn Baldwin.Bl -diag
6406f9cd2a9SJohn Baldwin.It "Directory mismatch: <path> (<type>)"
6416f9cd2a9SJohn BaldwinAn attempt was made to create a directory at
6426f9cd2a9SJohn Baldwin.Pa path
6436f9cd2a9SJohn Baldwinbut an existing file of type
6446f9cd2a9SJohn Baldwin.Dq type
6456f9cd2a9SJohn Baldwinalready exists for that path name.
6466f9cd2a9SJohn Baldwin.It "Modified link changed: <file> (<old> became <new>)"
6476f9cd2a9SJohn BaldwinThe target of a symbolic link named
6486f9cd2a9SJohn Baldwin.Pa file
6496f9cd2a9SJohn Baldwinwas changed from
6506f9cd2a9SJohn Baldwin.Dq old
6516f9cd2a9SJohn Baldwinto
6526f9cd2a9SJohn Baldwin.Dq new
6536f9cd2a9SJohn Baldwinin the
6546f9cd2a9SJohn Baldwin.Dq current
6556f9cd2a9SJohn Baldwintree.
6566f9cd2a9SJohn BaldwinThe symbolic link has been modified to point to a target that is neither
6576f9cd2a9SJohn Baldwin.Dq old
6586f9cd2a9SJohn Baldwinnor
6596f9cd2a9SJohn Baldwin.Dq new
6606f9cd2a9SJohn Baldwinin the destination directory.
6616f9cd2a9SJohn Baldwin.It "Modified mismatch: <file> (<new> vs <dest>)"
6626f9cd2a9SJohn BaldwinA file named
6636f9cd2a9SJohn Baldwin.Pa file
6646f9cd2a9SJohn Baldwinof type
6656f9cd2a9SJohn Baldwin.Dq new
6666f9cd2a9SJohn Baldwinwas modified in the
6676f9cd2a9SJohn Baldwin.Dq current
6686f9cd2a9SJohn Baldwintree,
6696f9cd2a9SJohn Baldwinbut the file exists as a different type
6706f9cd2a9SJohn Baldwin.Dq dest
6716f9cd2a9SJohn Baldwinin the destination directory.
6726f9cd2a9SJohn Baldwin.It "Modified <type> changed: <file> (<old> became <new>)"
6736f9cd2a9SJohn BaldwinA file named
6746f9cd2a9SJohn Baldwin.Pa file
6756f9cd2a9SJohn Baldwinchanged type from
6766f9cd2a9SJohn Baldwin.Dq old
6776f9cd2a9SJohn Baldwinin the
6786f9cd2a9SJohn Baldwin.Dq previous
6796f9cd2a9SJohn Baldwintree to type
6806f9cd2a9SJohn Baldwin.Dq new
6816f9cd2a9SJohn Baldwinin the
6826f9cd2a9SJohn Baldwin.Dq current
6836f9cd2a9SJohn Baldwintree.
6846f9cd2a9SJohn BaldwinThe file in the destination directory of type
6856f9cd2a9SJohn Baldwin.Dq type
6866f9cd2a9SJohn Baldwinhas been modified,
6876f9cd2a9SJohn Baldwinso it could not be merged automatically.
6886f9cd2a9SJohn Baldwin.It "Modified <type> remains: <file>"
6896f9cd2a9SJohn BaldwinThe file of type
6906f9cd2a9SJohn Baldwin.Dq type
6916f9cd2a9SJohn Baldwinnamed
6926f9cd2a9SJohn Baldwin.Pa file
6936f9cd2a9SJohn Baldwinhas been removed from the
6946f9cd2a9SJohn Baldwin.Dq current
6956f9cd2a9SJohn Baldwintree,
6966f9cd2a9SJohn Baldwinbut it has been locally modified.
6976f9cd2a9SJohn BaldwinThe modified version of the file remains in the destination directory.
698*3e920822SJohn Baldwin.It "Needs update: /etc/localtime (required manual update via tzsetup(1))"
699*3e920822SJohn BaldwinThe
700*3e920822SJohn Baldwin.Fa /var/db/zoneinfo
701*3e920822SJohn Baldwinfile does not exist,
702*3e920822SJohn Baldwinso
703*3e920822SJohn Baldwin.Nm
704*3e920822SJohn Baldwinwas not able to refresh
705*3e920822SJohn Baldwin.Fa /etc/localtime
706*3e920822SJohn Baldwinfrom its source file in
707*3e920822SJohn Baldwin.Fa /usr/share/zoneinfo .
708*3e920822SJohn BaldwinRunning
709*3e920822SJohn Baldwin.Xr tzsetup 1
710*3e920822SJohn Baldwinwill both refresh
711*3e920822SJohn Baldwin.Fa /etc/localtime
712*3e920822SJohn Baldwinand generate
713*3e920822SJohn Baldwin.Fa /var/db/zoneinfo
714*3e920822SJohn Baldwinpermitting future updates to refresh
715*3e920822SJohn Baldwin.Fa /etc/localtime
716*3e920822SJohn Baldwinautomatically.
7176f9cd2a9SJohn Baldwin.It "Needs update: /etc/mail/aliases.db (required manual update via newaliases(1))"
7186f9cd2a9SJohn BaldwinThe file
7196f9cd2a9SJohn Baldwin.Pa /etc/mail/aliases
7206f9cd2a9SJohn Baldwinwas updated during a merge with a non-empty destination directory.
7216f9cd2a9SJohn BaldwinDue to a limitation of the
7226f9cd2a9SJohn Baldwin.Xr newaliases 1
7236f9cd2a9SJohn Baldwincommand,
7246f9cd2a9SJohn Baldwin.Nm
7256f9cd2a9SJohn Baldwinwas not able to automatically update the corresponding aliases database.
7266f9cd2a9SJohn Baldwin.It "New file mismatch: <file> (<new> vs <dest>)"
7276f9cd2a9SJohn BaldwinA new file named
7286f9cd2a9SJohn Baldwin.Pa file
7296f9cd2a9SJohn Baldwinof type
7306f9cd2a9SJohn Baldwin.Dq new
7316f9cd2a9SJohn Baldwinhas been added to the
7326f9cd2a9SJohn Baldwin.Dq current
7336f9cd2a9SJohn Baldwintree.
7346f9cd2a9SJohn BaldwinA file of that name already exists in the destination directory,
7356f9cd2a9SJohn Baldwinbut it is of a different type
7366f9cd2a9SJohn Baldwin.Dq dest .
7376f9cd2a9SJohn Baldwin.It "New link conflict: <file> (<new> vs <dest>)"
7386f9cd2a9SJohn BaldwinA symbolic link named
7396f9cd2a9SJohn Baldwin.Pa file
7406f9cd2a9SJohn Baldwinhas been added to the
7416f9cd2a9SJohn Baldwin.Dq current
7426f9cd2a9SJohn Baldwintree that links to
7436f9cd2a9SJohn Baldwin.Dq new .
7446f9cd2a9SJohn BaldwinA symbolic link of the same name already exists in the destination
7456f9cd2a9SJohn Baldwindirectory,
7466f9cd2a9SJohn Baldwinbut it links to a different target
7476f9cd2a9SJohn Baldwin.Dq dest .
7486f9cd2a9SJohn Baldwin.It "Non-empty directory remains: <file>"
7496f9cd2a9SJohn BaldwinThe directory
7506f9cd2a9SJohn Baldwin.Pa file
7516f9cd2a9SJohn Baldwinwas removed from the
7526f9cd2a9SJohn Baldwin.Dq current
7536f9cd2a9SJohn Baldwintree,
7546f9cd2a9SJohn Baldwinbut it contains additional files in the destination directory.
7556f9cd2a9SJohn BaldwinThese additional files as well as the directory remain.
7566f9cd2a9SJohn Baldwin.It "Remove mismatch: <file> (<old> became <new>)"
7576f9cd2a9SJohn BaldwinA file named
7586f9cd2a9SJohn Baldwin.Pa file
7596f9cd2a9SJohn Baldwinchanged from type
7606f9cd2a9SJohn Baldwin.Dq old
7616f9cd2a9SJohn Baldwinin the
7626f9cd2a9SJohn Baldwin.Dq previous
7636f9cd2a9SJohn Baldwintree to type
7646f9cd2a9SJohn Baldwin.Dq new
7656f9cd2a9SJohn Baldwinin the
7666f9cd2a9SJohn Baldwin.Dq current
7676f9cd2a9SJohn Baldwintree,
7686f9cd2a9SJohn Baldwinbut it has been removed in the destination directory.
7696f9cd2a9SJohn Baldwin.It "Removed file changed: <file>"
7706f9cd2a9SJohn BaldwinA file named
7716f9cd2a9SJohn Baldwin.Pa file
7726f9cd2a9SJohn Baldwinwas modified in the
7736f9cd2a9SJohn Baldwin.Dq current
7746f9cd2a9SJohn Baldwintree,
7756f9cd2a9SJohn Baldwinbut it has been removed in the destination directory.
7766f9cd2a9SJohn Baldwin.It "Removed link changed: <file> (<old> became <new>)"
7776f9cd2a9SJohn BaldwinThe target of a symbolic link named
7786f9cd2a9SJohn Baldwin.Pa file
7796f9cd2a9SJohn Baldwinwas changed from
7806f9cd2a9SJohn Baldwin.Dq old
7816f9cd2a9SJohn Baldwinto
7826f9cd2a9SJohn Baldwin.Dq new
7836f9cd2a9SJohn Baldwinin the
7846f9cd2a9SJohn Baldwin.Dq current
7856f9cd2a9SJohn Baldwintree,
7866f9cd2a9SJohn Baldwinbut it has been removed in the destination directory.
7876f9cd2a9SJohn Baldwin.El
7886f9cd2a9SJohn Baldwin.Sh SEE ALSO
7896f9cd2a9SJohn Baldwin.Xr cap_mkdb 1 ,
7906f9cd2a9SJohn Baldwin.Xr diff 1 ,
7916f9cd2a9SJohn Baldwin.Xr make 1 ,
7926f9cd2a9SJohn Baldwin.Xr newaliases 1 ,
7936f9cd2a9SJohn Baldwin.Xr sh 1 ,
7946f9cd2a9SJohn Baldwin.Xr pwd_mkdb 8
795cc59cb76SJoel Dahl.Sh HISTORY
796cc59cb76SJoel DahlThe
797cc59cb76SJoel Dahl.Nm
798cc59cb76SJoel Dahlutility first appeared in
799cc59cb76SJoel Dahl.Fx 10.0 .
8006f9cd2a9SJohn Baldwin.Sh AUTHORS
8016f9cd2a9SJohn BaldwinThe
8026f9cd2a9SJohn Baldwin.Nm
8036f9cd2a9SJohn Baldwinutility was written by
8046f9cd2a9SJohn Baldwin.An John Baldwin Aq jhb@FreeBSD.org .
8056f9cd2a9SJohn Baldwin.Sh BUGS
8066f9cd2a9SJohn BaldwinRerunning a merge does not automatically delete conflicts left over from a
8076f9cd2a9SJohn Baldwinprevious merge.
8086f9cd2a9SJohn BaldwinAny conflicts must be resolved before the merge can be rerun.
8096f9cd2a9SJohn BaldwinIt it is not clear if this is a feature or a bug.
8106f9cd2a9SJohn Baldwin.Pp
8116f9cd2a9SJohn BaldwinThere is no way to easily automate conflict resolution for specific files.
8126f9cd2a9SJohn BaldwinFor example, one can imagine a syntax along the lines of
8136f9cd2a9SJohn Baldwin.Pp
8146f9cd2a9SJohn Baldwin.Dl "etcupdate resolve tf /some/file"
8156f9cd2a9SJohn Baldwin.Pp
8166f9cd2a9SJohn Baldwinto resolve a specific conflict in an automated fashion.
8176f9cd2a9SJohn Baldwin.Pp
8186f9cd2a9SJohn BaldwinIt might be nice to have something like a
8196f9cd2a9SJohn Baldwin.Sq revert
8206f9cd2a9SJohn Baldwincommand to replace a locally modified version of a file with the stock
8216f9cd2a9SJohn Baldwinversion of the file.
8226f9cd2a9SJohn BaldwinFor example:
8236f9cd2a9SJohn Baldwin.Pp
8246f9cd2a9SJohn Baldwin.Dl "etcupdate revert /etc/mail/freebsd.cf"
8256f9cd2a9SJohn Baldwin.Pp
8266f9cd2a9SJohn BaldwinBootstrapping
8276f9cd2a9SJohn Baldwin.Nm
8286f9cd2a9SJohn Baldwinoften results in gratuitous diffs in
8296f9cd2a9SJohn Baldwin.Pa /etc/mail/*.cf
8306f9cd2a9SJohn Baldwinthat cause conflicts in the first merge.
8316f9cd2a9SJohn BaldwinIf an object tree that matches the source tree is present when bootstrapping,
8326f9cd2a9SJohn Baldwinthen passing the
8336f9cd2a9SJohn Baldwin.Fl B
8346f9cd2a9SJohn Baldwinflag to the
8356f9cd2a9SJohn Baldwin.Cm extract
8366f9cd2a9SJohn Baldwincommand can work around this.
837