xref: /freebsd/usr.sbin/etcupdate/etcupdate.8 (revision afd67a1677999b0f9d82d29bfd7c767f665e76e8)
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.\"
26a39decd7SEd Maste.Dd July 15, 2024
276f9cd2a9SJohn Baldwin.Dt ETCUPDATE 8
286f9cd2a9SJohn Baldwin.Os
296f9cd2a9SJohn Baldwin.Sh NAME
306f9cd2a9SJohn Baldwin.Nm etcupdate
316f9cd2a9SJohn Baldwin.Nd "manage updates to system files not updated by installworld"
326f9cd2a9SJohn Baldwin.Sh SYNOPSIS
336f9cd2a9SJohn Baldwin.Nm
34febca0e6SJessica Clarke.Op Fl npBFN
356f9cd2a9SJohn Baldwin.Op Fl d Ar workdir
366f9cd2a9SJohn Baldwin.Op Fl r | Fl s Ar source | Fl t Ar tarball
376f9cd2a9SJohn Baldwin.Op Fl A Ar patterns
386f9cd2a9SJohn Baldwin.Op Fl D Ar destdir
396f9cd2a9SJohn Baldwin.Op Fl I Ar patterns
406f9cd2a9SJohn Baldwin.Op Fl L Ar logfile
416f9cd2a9SJohn Baldwin.Op Fl M Ar options
425513d7deSJessica Clarke.Op Fl m Ar make
436f9cd2a9SJohn Baldwin.Nm
446f9cd2a9SJohn Baldwin.Cm build
45febca0e6SJessica Clarke.Op Fl BN
466f9cd2a9SJohn Baldwin.Op Fl d Ar workdir
476f9cd2a9SJohn Baldwin.Op Fl s Ar source
486f9cd2a9SJohn Baldwin.Op Fl L Ar logfile
496f9cd2a9SJohn Baldwin.Op Fl M Ar options
505513d7deSJessica Clarke.Op Fl m Ar make
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
60febca0e6SJessica Clarke.Op Fl BN
616f9cd2a9SJohn Baldwin.Op Fl d Ar workdir
626f9cd2a9SJohn Baldwin.Op Fl s Ar source | Fl t Ar tarball
635eb9c93aSJohn Baldwin.Op Fl D Ar destdir
646f9cd2a9SJohn Baldwin.Op Fl L Ar logfile
656f9cd2a9SJohn Baldwin.Op Fl M Ar options
665513d7deSJessica Clarke.Op Fl m Ar make
676f9cd2a9SJohn Baldwin.Nm
686f9cd2a9SJohn Baldwin.Cm resolve
6921d1f635SJohn Baldwin.Op Fl p
706f9cd2a9SJohn Baldwin.Op Fl d Ar workdir
716f9cd2a9SJohn Baldwin.Op Fl D Ar destdir
726f9cd2a9SJohn Baldwin.Op Fl L Ar logfile
736f9cd2a9SJohn Baldwin.Nm
74ba30215aSJohn Baldwin.Cm revert
75ba30215aSJohn Baldwin.Op Fl d Ar workdir
76ba30215aSJohn Baldwin.Op Fl D Ar destdir
77ba30215aSJohn Baldwin.Op Fl L Ar logfile
78ba30215aSJohn Baldwin.Ar
79ba30215aSJohn Baldwin.Nm
806f9cd2a9SJohn Baldwin.Cm status
816f9cd2a9SJohn Baldwin.Op Fl d Ar workdir
826f9cd2a9SJohn Baldwin.Op Fl D Ar destdir
836f9cd2a9SJohn Baldwin.Sh DESCRIPTION
846f9cd2a9SJohn BaldwinThe
856f9cd2a9SJohn Baldwin.Nm
866f9cd2a9SJohn Baldwinutility is a tool for managing updates to files that are not updated as
876f9cd2a9SJohn Baldwinpart of
886f9cd2a9SJohn Baldwin.Sq make installworld
896f9cd2a9SJohn Baldwinsuch as files in
906f9cd2a9SJohn Baldwin.Pa /etc .
916f9cd2a9SJohn BaldwinIt manages updates by doing a three-way merge of changes made to these
926f9cd2a9SJohn Baldwinfiles against the local versions.
936f9cd2a9SJohn BaldwinIt is also designed to minimize the amount of user intervention with
946f9cd2a9SJohn Baldwinthe goal of simplifying upgrades for clusters of machines.
956f9cd2a9SJohn Baldwin.Pp
966f9cd2a9SJohn BaldwinTo perform a three-way merge,
976f9cd2a9SJohn Baldwin.Nm
986f9cd2a9SJohn Baldwinkeeps copies of the current and previous versions of files that it manages.
996f9cd2a9SJohn BaldwinThese copies are stored in two trees known as the
1006f9cd2a9SJohn Baldwin.Dq current
1016f9cd2a9SJohn Baldwinand
1026f9cd2a9SJohn Baldwin.Dq previous
1036f9cd2a9SJohn Baldwintrees.
1046f9cd2a9SJohn BaldwinDuring a merge,
1056f9cd2a9SJohn Baldwin.Nm
1066f9cd2a9SJohn Baldwincompares the
1076f9cd2a9SJohn Baldwin.Dq current
1086f9cd2a9SJohn Baldwinand
1096f9cd2a9SJohn Baldwin.Dq previous
1106f9cd2a9SJohn Baldwincopies of each file to determine which changes need to be merged into the
1116f9cd2a9SJohn Baldwinlocal version of each file.
1126f9cd2a9SJohn BaldwinIf a file can be updated without generating a conflict,
1136f9cd2a9SJohn Baldwin.Nm
1146f9cd2a9SJohn Baldwinwill update the file automatically.
1156f9cd2a9SJohn BaldwinIf the local changes to a file conflict with the changes made to a file in
1166f9cd2a9SJohn Baldwinthe source tree,
1176f9cd2a9SJohn Baldwinthen a merge conflict is generated.
1186f9cd2a9SJohn BaldwinThe conflict must be resolved after the merge has finished.
1196f9cd2a9SJohn BaldwinThe
1206f9cd2a9SJohn Baldwin.Nm
1216f9cd2a9SJohn Baldwinutility will not perform a new merge until all conflicts from an earlier
1226f9cd2a9SJohn Baldwinmerge are resolved.
1236f9cd2a9SJohn Baldwin.Sh MODES
1246f9cd2a9SJohn BaldwinThe
1256f9cd2a9SJohn Baldwin.Nm
1266f9cd2a9SJohn Baldwinutility supports several modes of operation.
1276f9cd2a9SJohn BaldwinThe mode is specified via an optional command argument.
1286f9cd2a9SJohn BaldwinIf present, the command must be the first argument on the command line.
1296f9cd2a9SJohn BaldwinIf a command is not specified, the default mode is used.
1306f9cd2a9SJohn Baldwin.Ss Default Mode
1316f9cd2a9SJohn BaldwinThe default mode merges changes from the source tree to the destination
1326f9cd2a9SJohn Baldwindirectory.
1336f9cd2a9SJohn BaldwinFirst,
1346f9cd2a9SJohn Baldwinit updates the
1356f9cd2a9SJohn Baldwin.Dq current
1366f9cd2a9SJohn Baldwinand
1376f9cd2a9SJohn Baldwin.Dq previous
1386f9cd2a9SJohn Baldwintrees.
1396f9cd2a9SJohn BaldwinNext,
1406f9cd2a9SJohn Baldwinit compares the two trees merging changes into the destination directory.
1416f9cd2a9SJohn BaldwinFinally,
1426f9cd2a9SJohn Baldwinit displays warnings for any conditions it could not handle automatically.
1436f9cd2a9SJohn Baldwin.Pp
1446f9cd2a9SJohn BaldwinIf the
1456f9cd2a9SJohn Baldwin.Fl r
1466f9cd2a9SJohn Baldwinoption is not specified,
1476f9cd2a9SJohn Baldwinthen the first step taken is to update the
1486f9cd2a9SJohn Baldwin.Dq current
1496f9cd2a9SJohn Baldwinand
1506f9cd2a9SJohn Baldwin.Dq previous
1516f9cd2a9SJohn Baldwintrees.
1526f9cd2a9SJohn BaldwinIf a
1536f9cd2a9SJohn Baldwin.Dq current
1546f9cd2a9SJohn Baldwintree already exists,
1556f9cd2a9SJohn Baldwinthen that tree is saved as the
1566f9cd2a9SJohn Baldwin.Dq previous
1576f9cd2a9SJohn Baldwintree.
1586f9cd2a9SJohn BaldwinAn older
1596f9cd2a9SJohn Baldwin.Dq previous
1606f9cd2a9SJohn Baldwintree is removed if it exists.
1616f9cd2a9SJohn BaldwinBy default the new
1626f9cd2a9SJohn Baldwin.Dq current
1636f9cd2a9SJohn Baldwintree is built from a source tree.
1646f9cd2a9SJohn BaldwinHowever,
1656f9cd2a9SJohn Baldwinif a tarball is specified via the
1666f9cd2a9SJohn Baldwin.Fl t
1676f9cd2a9SJohn Baldwinoption,
1686f9cd2a9SJohn Baldwinthen the tree is extracted from that tarball instead.
1696f9cd2a9SJohn Baldwin.Pp
1706f9cd2a9SJohn BaldwinNext,
1716f9cd2a9SJohn Baldwin.Nm
1726f9cd2a9SJohn Baldwincompares the files in the
1736f9cd2a9SJohn Baldwin.Dq current
1746f9cd2a9SJohn Baldwinand
1756f9cd2a9SJohn Baldwin.Dq previous
1766f9cd2a9SJohn Baldwintrees.
1776f9cd2a9SJohn BaldwinIf a file was removed from the
1786f9cd2a9SJohn Baldwin.Dq current
1796f9cd2a9SJohn Baldwintree,
1806f9cd2a9SJohn Baldwinthen it will be removed from the destination directory only if it
1816f9cd2a9SJohn Baldwindoes not have any local modifications.
1826f9cd2a9SJohn BaldwinIf a file was added to the
1836f9cd2a9SJohn Baldwin.Dq current
1846f9cd2a9SJohn Baldwintree,
1856f9cd2a9SJohn Baldwinthen it will be copied to the destination directory only if it
1866f9cd2a9SJohn Baldwinwould not clobber an existing file.
1876f9cd2a9SJohn BaldwinIf a file is changed in the
1886f9cd2a9SJohn Baldwin.Dq current
1896f9cd2a9SJohn Baldwintree,
1906f9cd2a9SJohn Baldwinthen
1916f9cd2a9SJohn Baldwin.Nm
1926f9cd2a9SJohn Baldwinwill attempt to merge the changes into the version of the file in the
1936f9cd2a9SJohn Baldwindestination directory.
1946f9cd2a9SJohn BaldwinIf the merge encounters conflicts,
1956f9cd2a9SJohn Baldwinthen a version of the file with conflict markers will be saved for
1966f9cd2a9SJohn Baldwinfuture resolution.
1976f9cd2a9SJohn BaldwinIf the merge does not encounter conflicts,
1986f9cd2a9SJohn Baldwinthen the merged version of the file will be saved in the destination
1996f9cd2a9SJohn Baldwindirectory.
2006f9cd2a9SJohn BaldwinIf
2016f9cd2a9SJohn Baldwin.Nm
2026f9cd2a9SJohn Baldwinis not able to safely merge in changes to a file other than a merge conflict,
2036f9cd2a9SJohn Baldwinit will generate a warning.
2046f9cd2a9SJohn Baldwin.Pp
2056f9cd2a9SJohn BaldwinFor each file that is updated a line will be output with a leading character
2066f9cd2a9SJohn Baldwinto indicate the action taken.
2076f9cd2a9SJohn BaldwinThe possible actions follow:
2086f9cd2a9SJohn Baldwin.Pp
2096f9cd2a9SJohn Baldwin.Bl -tag -width "A" -compact -offset indent
2106f9cd2a9SJohn Baldwin.It A
2116f9cd2a9SJohn BaldwinAdded
2126f9cd2a9SJohn Baldwin.It C
2136f9cd2a9SJohn BaldwinConflict
2146f9cd2a9SJohn Baldwin.It D
2156f9cd2a9SJohn BaldwinDeleted
2166f9cd2a9SJohn Baldwin.It M
2176f9cd2a9SJohn BaldwinMerged
2186f9cd2a9SJohn Baldwin.It U
2196f9cd2a9SJohn BaldwinUpdated
2206f9cd2a9SJohn Baldwin.El
2216f9cd2a9SJohn Baldwin.Pp
2226f9cd2a9SJohn BaldwinFinally,
2236f9cd2a9SJohn Baldwinif any warnings were encountered they are displayed after the merge has
2246f9cd2a9SJohn Baldwincompleted.
2256f9cd2a9SJohn Baldwin.Pp
2266f9cd2a9SJohn BaldwinNote that for certain files
2276f9cd2a9SJohn Baldwin.Nm
2286f9cd2a9SJohn Baldwinwill perform post-install actions any time that the file is updated.
2296f9cd2a9SJohn BaldwinSpecifically,
2306f9cd2a9SJohn Baldwin.Xr pwd_mkdb 8
2316f9cd2a9SJohn Baldwinis invoked if
2326f9cd2a9SJohn Baldwin.Pa /etc/master.passwd
2336f9cd2a9SJohn Baldwinis changed,
2346f9cd2a9SJohn Baldwin.Xr cap_mkdb 1
2356f9cd2a9SJohn Baldwinis invoked to update
2366f9cd2a9SJohn Baldwin.Pa /etc/login.conf.db
2376f9cd2a9SJohn Baldwinif
2386f9cd2a9SJohn Baldwin.Pa /etc/login.conf
2396f9cd2a9SJohn Baldwinis changed,
2406f9cd2a9SJohn Baldwin.Xr newaliases 1
2416f9cd2a9SJohn Baldwinis invoked if
2426f9cd2a9SJohn Baldwin.Pa /etc/mail/aliases
2436f9cd2a9SJohn Baldwinis changed,
24474914641SBryan Drewery.Xr services_mkdb 8
24574914641SBryan Dreweryis invoked if
24674914641SBryan Drewery.Pa /etc/services
24774914641SBryan Dreweryis changed,
24874914641SBryan Drewery.Xr tzsetup 8
24974914641SBryan Dreweryis invoked if
25074914641SBryan Drewery.Pa /etc/localtime
25174914641SBryan Dreweryis changed and if
25274914641SBryan Drewery.Fa /var/db/zoneinfo
25374914641SBryan Dreweryexists,
2546f9cd2a9SJohn Baldwinand
2556f9cd2a9SJohn Baldwin.Pa /etc/rc.d/motd
2566f9cd2a9SJohn Baldwinis invoked if
2576f9cd2a9SJohn Baldwin.Pa /etc/motd
2586f9cd2a9SJohn Baldwinis changed.
2596f9cd2a9SJohn BaldwinOne exception is that if
2606f9cd2a9SJohn Baldwin.Pa /etc/mail/aliases
2616f9cd2a9SJohn Baldwinis changed and the destination directory is not the default,
2626f9cd2a9SJohn Baldwinthen a warning will be issued instead.
2636f9cd2a9SJohn BaldwinThis is due to a limitation of the
2646f9cd2a9SJohn Baldwin.Xr newaliases 1
2656f9cd2a9SJohn Baldwincommand.
2666f9cd2a9SJohn BaldwinSimilarly,
2676f9cd2a9SJohn Baldwinif
2686f9cd2a9SJohn Baldwin.Pa /etc/motd
2696f9cd2a9SJohn Baldwinis changed and the destination directory is not the default,
2706f9cd2a9SJohn Baldwinthen
2716f9cd2a9SJohn Baldwin.Pa /etc/rc.d/motd
2726f9cd2a9SJohn Baldwinwill not be executed due to a limitation of that script.
2736f9cd2a9SJohn BaldwinIn this case no warning is issued as the result of
2746f9cd2a9SJohn Baldwin.Pa /etc/rc.d/motd
2756f9cd2a9SJohn Baldwinis merely cosmetic and will be corrected on the next reboot.
2766f9cd2a9SJohn Baldwin.Ss Build Mode
2776f9cd2a9SJohn BaldwinThe
2786f9cd2a9SJohn Baldwin.Cm build
2796f9cd2a9SJohn Baldwinmode is used to build a tarball that contains a snapshot of a
2806f9cd2a9SJohn Baldwin.Dq current
2816f9cd2a9SJohn Baldwintree.
2826f9cd2a9SJohn BaldwinThis tarball can be used by the default and extract modes.
2836f9cd2a9SJohn BaldwinUsing a tarball can allow
2846f9cd2a9SJohn Baldwin.Nm
2856f9cd2a9SJohn Baldwinto perform a merge without requiring a source tree that matches the
2866f9cd2a9SJohn Baldwincurrently installed world.
2876f9cd2a9SJohn BaldwinThe
2886f9cd2a9SJohn Baldwin.Fa tarball
2896f9cd2a9SJohn Baldwinargument specifies the name of the file to create.
2906f9cd2a9SJohn BaldwinThe file will be a
2916f9cd2a9SJohn Baldwin.Xr tar 5
2926f9cd2a9SJohn Baldwinfile compressed with
2936f9cd2a9SJohn Baldwin.Xr bzip2 1 .
2946f9cd2a9SJohn Baldwin.Ss Diff Mode
2956f9cd2a9SJohn BaldwinThe
2966f9cd2a9SJohn Baldwin.Cm diff
2976f9cd2a9SJohn Baldwinmode compares the versions of files in the destination directory to the
2986f9cd2a9SJohn Baldwin.Dq current
2996f9cd2a9SJohn Baldwintree and generates a unified format diff of the changes.
3006f9cd2a9SJohn BaldwinThis can be used to determine which files have been locally modified and how.
3016f9cd2a9SJohn BaldwinNote that
3026f9cd2a9SJohn Baldwin.Nm
3036f9cd2a9SJohn Baldwindoes not manage files that are not maintained in the source tree such as
3046f9cd2a9SJohn Baldwin.Pa /etc/fstab
3056f9cd2a9SJohn Baldwinand
3066f9cd2a9SJohn Baldwin.Pa /etc/rc.conf .
3076f9cd2a9SJohn Baldwin.Ss Extract Mode
3086f9cd2a9SJohn BaldwinThe
3096f9cd2a9SJohn Baldwin.Cm extract
3106f9cd2a9SJohn Baldwinmode generates a new
3116f9cd2a9SJohn Baldwin.Dq current
3126f9cd2a9SJohn Baldwintree.
3136f9cd2a9SJohn BaldwinUnlike the default mode,
3146f9cd2a9SJohn Baldwinit does not save any existing
3156f9cd2a9SJohn Baldwin.Dq current
3166f9cd2a9SJohn Baldwintree and does not modify any existing
3176f9cd2a9SJohn Baldwin.Dq previous
3186f9cd2a9SJohn Baldwintree.
3196f9cd2a9SJohn BaldwinThe new
3206f9cd2a9SJohn Baldwin.Dq current
3216f9cd2a9SJohn Baldwintree can either be built from a source tree or extracted from a tarball.
3226f9cd2a9SJohn Baldwin.Ss Resolve Mode
3236f9cd2a9SJohn BaldwinThe
3246f9cd2a9SJohn Baldwin.Cm resolve
3256f9cd2a9SJohn Baldwinmode is used to resolve any conflicts encountered during a merge.
3266f9cd2a9SJohn BaldwinIn this mode,
3276f9cd2a9SJohn Baldwin.Nm
3286f9cd2a9SJohn Baldwiniterates over any existing conflicts prompting the user for actions to take
3296f9cd2a9SJohn Baldwinon each conflicted file.
3306f9cd2a9SJohn BaldwinFor each file, the following actions are available:
3316f9cd2a9SJohn Baldwin.Pp
3326f9cd2a9SJohn Baldwin.Bl -tag -width "(tf) theirs-full" -compact
3336f9cd2a9SJohn Baldwin.It (p)  postpone
3346f9cd2a9SJohn BaldwinIgnore this conflict for now.
3356f9cd2a9SJohn Baldwin.It (df) diff-full
3366f9cd2a9SJohn BaldwinShow all changes made to the merged file as a unified diff.
3376f9cd2a9SJohn Baldwin.It (e)  edit
3386f9cd2a9SJohn BaldwinChange the merged file in an editor.
3396f9cd2a9SJohn Baldwin.It (r)  resolved
3406f9cd2a9SJohn BaldwinInstall the merged version of the file into the destination directory.
3416f9cd2a9SJohn Baldwin.It (mf) mine-full
3426f9cd2a9SJohn BaldwinUse the version of the file in the destination directory and ignore any
3436f9cd2a9SJohn Baldwinchanges made to the file in the
3446f9cd2a9SJohn Baldwin.Dq current
3456f9cd2a9SJohn Baldwintree.
3466f9cd2a9SJohn Baldwin.It (tf) theirs-full
3476f9cd2a9SJohn BaldwinUse the version of the file from the
3486f9cd2a9SJohn Baldwin.Dq current
3496f9cd2a9SJohn Baldwintree and discard any local changes made to the file.
3506f9cd2a9SJohn Baldwin.It (h)  help
3516f9cd2a9SJohn BaldwinDisplay the list of commands.
3526f9cd2a9SJohn Baldwin.El
353ba30215aSJohn Baldwin.Ss Revert Mode
354ba30215aSJohn BaldwinThe
355ba30215aSJohn Baldwin.Cm revert
356ba30215aSJohn Baldwinmode is used to restore the stock versions of files.
357ba30215aSJohn BaldwinIn this mode,
358ba30215aSJohn Baldwin.Nm
359ba30215aSJohn Baldwininstalls the stock version of requested files.
360ba30215aSJohn BaldwinThis mode cannot be used to restore directories, only individual files.
3616f9cd2a9SJohn Baldwin.Ss Status Mode
3626f9cd2a9SJohn BaldwinThe
3636f9cd2a9SJohn Baldwin.Cm status
3646f9cd2a9SJohn Baldwinmode shows a summary of the results of the most recent merge.
3656f9cd2a9SJohn BaldwinFirst it lists any files for which there are unresolved conflicts.
3666f9cd2a9SJohn BaldwinNext it lists any warnings generated during the last merge.
3676f9cd2a9SJohn BaldwinIf the last merge did not generate any conflicts or warnings,
3686f9cd2a9SJohn Baldwinthen nothing will be output.
3696f9cd2a9SJohn Baldwin.Sh OPTIONS
3706f9cd2a9SJohn BaldwinThe following options are available.
3716f9cd2a9SJohn BaldwinNote that most options do not apply to all modes.
37237956492SJohn Baldwin.Bl -tag -width ".Fl A Ar patterns"
3736f9cd2a9SJohn Baldwin.It Fl A Ar patterns
3746f9cd2a9SJohn BaldwinAlways install the new version of any files that match any of the patterns
3756f9cd2a9SJohn Baldwinlisted in
3766f9cd2a9SJohn Baldwin.Ar patterns .
3776f9cd2a9SJohn BaldwinEach pattern is evaluated as an
3786f9cd2a9SJohn Baldwin.Xr sh 1
3796f9cd2a9SJohn Baldwinshell pattern.
3806f9cd2a9SJohn BaldwinThis option may be specified multiple times to specify multiple patterns.
3816f9cd2a9SJohn BaldwinMultiple space-separated patterns may also be specified in a single
3826f9cd2a9SJohn Baldwinoption.
3836f9cd2a9SJohn BaldwinNote that ignored files specified via the
3846f9cd2a9SJohn Baldwin.Ev IGNORE_FILES
3856f9cd2a9SJohn Baldwinvariable or the
3866f9cd2a9SJohn Baldwin.Fl I
3876f9cd2a9SJohn Baldwinoption will not be installed.
38837956492SJohn Baldwin.It Fl B
38937956492SJohn BaldwinDo not build generated files in a private object tree.
39037956492SJohn BaldwinInstead,
39137956492SJohn Baldwinreuse the generated files from a previously built object tree that matches
39237956492SJohn Baldwinthe source tree.
39337956492SJohn BaldwinThis can be useful to avoid gratuitous conflicts in
39437956492SJohn Baldwin.Xr sendmail 8
39537956492SJohn Baldwinconfiguration
39637956492SJohn Baldwinfiles when bootstrapping.
39737956492SJohn BaldwinIt can also be useful for building a tarball that matches a specific
39837956492SJohn Baldwinworld build.
3996f9cd2a9SJohn Baldwin.It Fl D Ar destdir
4006f9cd2a9SJohn BaldwinSpecify an alternate destination directory as the target of a merge.
4019efc0059SJoel DahlThis is analogous to the
4026f9cd2a9SJohn Baldwin.Dv DESTDIR
4036f9cd2a9SJohn Baldwinvariable used with
4046f9cd2a9SJohn Baldwin.Sq make installworld .
4056f9cd2a9SJohn BaldwinThe default destination directory is an empty string which results in
4066f9cd2a9SJohn Baldwinmerges updating
4076f9cd2a9SJohn Baldwin.Pa /etc
4086f9cd2a9SJohn Baldwinon the local machine.
40937956492SJohn Baldwin.It Fl d Ar workdir
41037956492SJohn BaldwinSpecify an alternate directory to use as the work directory.
41137956492SJohn BaldwinThe work directory is used to store the
41237956492SJohn Baldwin.Dq current
41337956492SJohn Baldwinand
41437956492SJohn Baldwin.Dq previous
41537956492SJohn Baldwintrees as well as unresolved conflicts.
41637956492SJohn BaldwinThe default work directory is
41737956492SJohn Baldwin.Pa <destdir>/var/db/etcupdate .
4186f9cd2a9SJohn Baldwin.It Fl F
4196f9cd2a9SJohn BaldwinIgnore changes in the FreeBSD ID string when comparing files in the
4206f9cd2a9SJohn Baldwindestination directory to files in either of the
4216f9cd2a9SJohn Baldwin.Dq current
4226f9cd2a9SJohn Baldwinor
4236f9cd2a9SJohn Baldwin.Dq previous
4246f9cd2a9SJohn Baldwintrees.
4256f9cd2a9SJohn BaldwinIn
4266f9cd2a9SJohn Baldwin.Cm diff
4276f9cd2a9SJohn Baldwinmode,
4286f9cd2a9SJohn Baldwinthis reduces noise due to FreeBSD ID string changes in the output.
4296f9cd2a9SJohn BaldwinDuring an update this can simplify handling for harmless conflicts caused
4306f9cd2a9SJohn Baldwinby FreeBSD ID string changes.
4316f9cd2a9SJohn Baldwin.Pp
4326f9cd2a9SJohn BaldwinSpecifically,
4336f9cd2a9SJohn Baldwinif a file in the destination directory is identical to the same file in the
4346f9cd2a9SJohn Baldwin.Dq previous
4356f9cd2a9SJohn Baldwintree modulo the FreeBSD ID string,
4366f9cd2a9SJohn Baldwinthen the file is treated as if it was unmodified and the
4376f9cd2a9SJohn Baldwin.Dq current
4386f9cd2a9SJohn Baldwinversion of the file will be installed.
4396f9cd2a9SJohn BaldwinSimilarly,
4406f9cd2a9SJohn Baldwinif a file in the destination directory is identical to the same file in the
4416f9cd2a9SJohn Baldwin.Dq current
4426f9cd2a9SJohn Baldwintree modulo the FreeBSD ID string,
4436f9cd2a9SJohn Baldwinthen the
4446f9cd2a9SJohn Baldwin.Dq current
4456f9cd2a9SJohn Baldwinversion of the file will be installed to update the ID string.
4466f9cd2a9SJohn BaldwinIf the
4476f9cd2a9SJohn Baldwin.Dq previous
4486f9cd2a9SJohn Baldwinand
4496f9cd2a9SJohn Baldwin.Dq current
4506f9cd2a9SJohn Baldwinversions of the file are identical,
4516f9cd2a9SJohn Baldwinthen
4526f9cd2a9SJohn Baldwin.Nm
4536f9cd2a9SJohn Baldwinwill not change the file in the destination directory.
4546f9cd2a9SJohn Baldwin.Pp
4556f9cd2a9SJohn BaldwinDue to limitations in the
4566f9cd2a9SJohn Baldwin.Xr diff 1
4576f9cd2a9SJohn Baldwincommand,
4586f9cd2a9SJohn Baldwinthis option may not have an effect if there are other changes in a file that
4596f9cd2a9SJohn Baldwinare close to the FreeBSD ID string.
4606f9cd2a9SJohn Baldwin.It Fl I Ar patterns
4616f9cd2a9SJohn BaldwinIgnore any files that match any of the patterns listed in
4626f9cd2a9SJohn Baldwin.Ar patterns .
4636f9cd2a9SJohn BaldwinNo warnings or other messages will be generated for those files during a
4646f9cd2a9SJohn Baldwinmerge.
4656f9cd2a9SJohn BaldwinEach pattern is evaluated as an
4666f9cd2a9SJohn Baldwin.Xr sh 1
4676f9cd2a9SJohn Baldwinshell pattern.
4686f9cd2a9SJohn BaldwinThis option may be specified multiple times to specify multiple patterns.
4696f9cd2a9SJohn BaldwinMultiple space-separated patterns may also be specified in a single
4706f9cd2a9SJohn Baldwinoption.
4716f9cd2a9SJohn Baldwin.It Fl L Ar logfile
4726f9cd2a9SJohn BaldwinSpecify an alternate path for the log file.
4736f9cd2a9SJohn BaldwinThe
4746f9cd2a9SJohn Baldwin.Nm
4756f9cd2a9SJohn Baldwinutility logs each command that it invokes along with the standard output
4766f9cd2a9SJohn Baldwinand standard error to this file.
4776f9cd2a9SJohn BaldwinBy default the log file is stored in a file named
4786f9cd2a9SJohn Baldwin.Pa log
4796f9cd2a9SJohn Baldwinin the work directory.
4806f9cd2a9SJohn Baldwin.It Fl M Ar options
4816f9cd2a9SJohn BaldwinPass
4826f9cd2a9SJohn Baldwin.Ar options
4836f9cd2a9SJohn Baldwinas additional parameters to
4846f9cd2a9SJohn Baldwin.Xr make 1
4856f9cd2a9SJohn Baldwinwhen building a
4866f9cd2a9SJohn Baldwin.Dq current
4876f9cd2a9SJohn Baldwintree.
488*afd67a16SEd MasteThis can be used to set the
4896f9cd2a9SJohn Baldwin.Dv TARGET
4906f9cd2a9SJohn Baldwinor
4916f9cd2a9SJohn Baldwin.Dv TARGET_ARCH
4926f9cd2a9SJohn Baldwinvariables for a cross-build.
4935513d7deSJessica Clarke.It Fl m Ar make
4945513d7deSJessica ClarkeUse
4955513d7deSJessica Clarke.Ar make
4965513d7deSJessica Clarkeas the
4975513d7deSJessica Clarke.Xr make 1
4985513d7deSJessica Clarkebinary when building a
4995513d7deSJessica Clarke.Dq current
5005513d7deSJessica Clarketree.
5016f9cd2a9SJohn Baldwin.It Fl n
5026f9cd2a9SJohn BaldwinEnable
5036f9cd2a9SJohn Baldwin.Dq dry-run
5046f9cd2a9SJohn Baldwinmode.
5056f9cd2a9SJohn BaldwinDo not merge any changes to the destination directory.
5066f9cd2a9SJohn BaldwinInstead,
5076f9cd2a9SJohn Baldwinreport what actions would be taken during a merge.
5086f9cd2a9SJohn BaldwinNote that the existing
5096f9cd2a9SJohn Baldwin.Dq current
5106f9cd2a9SJohn Baldwinand
5116f9cd2a9SJohn Baldwin.Dq previous
5126f9cd2a9SJohn Baldwintrees will not be changed.
5136f9cd2a9SJohn BaldwinIf the
5146f9cd2a9SJohn Baldwin.Fl r
5156f9cd2a9SJohn Baldwinoption is not specified,
5166f9cd2a9SJohn Baldwinthen a temporary
5176f9cd2a9SJohn Baldwin.Dq current
5186f9cd2a9SJohn Baldwintree will be extracted to perform the comparison.
519febca0e6SJessica Clarke.It Fl N
520febca0e6SJessica ClarkePerform a
521febca0e6SJessica Clarke.Dv NO_ROOT
522febca0e6SJessica Clarkebuild when building a
523febca0e6SJessica Clarke.Dq current
524febca0e6SJessica Clarketree.
525febca0e6SJessica ClarkeThe resulting tree will include a corresponding
526febca0e6SJessica Clarke.Pa METALOG
527febca0e6SJessica Clarkefile at its root.
52821d1f635SJohn Baldwin.It Fl p
52921d1f635SJohn BaldwinEnable
53021d1f635SJohn Baldwin.Dq pre-world
53121d1f635SJohn Baldwinmode.
53221d1f635SJohn BaldwinOnly merge changes to files that are necessary to successfully run
53321d1f635SJohn Baldwin.Sq make installworld
53421d1f635SJohn Baldwinor
53521d1f635SJohn Baldwin.Sq make installkernel .
53621d1f635SJohn BaldwinWhen this flag is enabled,
53721d1f635SJohn Baldwinthe existing
53821d1f635SJohn Baldwin.Dq current
53921d1f635SJohn Baldwinand
54021d1f635SJohn Baldwin.Dq previous
54121d1f635SJohn Baldwintrees are left alone.
54221d1f635SJohn BaldwinInstead,
54321d1f635SJohn Baldwina temporary tree is populated with the necessary files.
54421d1f635SJohn BaldwinThis temporary tree is compared against the
54521d1f635SJohn Baldwin.Dq current
54621d1f635SJohn Baldwintree.
54721d1f635SJohn BaldwinThis allows a normal update to be run after
54821d1f635SJohn Baldwin.Sq make installworld
54921d1f635SJohn Baldwinhas completed.
55021d1f635SJohn BaldwinAny conflicts generated during a
55121d1f635SJohn Baldwin.Dq pre-world
55221d1f635SJohn Baldwinupdate should be resolved by a
55321d1f635SJohn Baldwin.Dq pre-world
55421d1f635SJohn Baldwin.Cm resolve .
5556f9cd2a9SJohn Baldwin.It Fl r
5566f9cd2a9SJohn BaldwinDo not update the
5576f9cd2a9SJohn Baldwin.Dq current
5586f9cd2a9SJohn Baldwinand
5596f9cd2a9SJohn Baldwin.Dq previous
5606f9cd2a9SJohn Baldwintrees during a merge.
5616f9cd2a9SJohn BaldwinThis can be used to
5626f9cd2a9SJohn Baldwin.Dq re-run
5636f9cd2a9SJohn Baldwina previous merge operation.
5646f9cd2a9SJohn Baldwin.It Fl s Ar source
5656f9cd2a9SJohn BaldwinSpecify an alternate source tree to use when building or extracting a
5666f9cd2a9SJohn Baldwin.Dq current
5676f9cd2a9SJohn Baldwintree.
5686f9cd2a9SJohn BaldwinThe default source tree is
5696f9cd2a9SJohn Baldwin.Pa /usr/src .
5706f9cd2a9SJohn Baldwin.It Fl t Ar tarball
5716f9cd2a9SJohn BaldwinExtract a new
5726f9cd2a9SJohn Baldwin.Dq current
5736f9cd2a9SJohn Baldwintree from a tarball previously generated by the
5746f9cd2a9SJohn Baldwin.Cm build
5756f9cd2a9SJohn Baldwincommand rather than building the tree from a source tree.
5766f9cd2a9SJohn Baldwin.El
5776f9cd2a9SJohn Baldwin.Sh CONFIG FILE
5786f9cd2a9SJohn BaldwinThe
5796f9cd2a9SJohn Baldwin.Nm
5806f9cd2a9SJohn Baldwinutility can also be configured by setting variables in an optional
5816f9cd2a9SJohn Baldwinconfiguration file named
5826f9cd2a9SJohn Baldwin.Pa /etc/etcupdate.conf .
5836f9cd2a9SJohn BaldwinNote that command line options override settings in the configuration file.
5846f9cd2a9SJohn BaldwinThe configuration file is executed by
5856f9cd2a9SJohn Baldwin.Xr sh 1 ,
5866f9cd2a9SJohn Baldwinso it uses that syntax to set configuration variables.
5876f9cd2a9SJohn BaldwinThe following variables can be set:
5886f9cd2a9SJohn Baldwin.Bl -tag -width ".Ev ALWAYS_INSTALL"
5896f9cd2a9SJohn Baldwin.It Ev ALWAYS_INSTALL
5906f9cd2a9SJohn BaldwinAlways install files that match any of the patterns listed in this variable
5916f9cd2a9SJohn Baldwinsimilar to the
5926f9cd2a9SJohn Baldwin.Fl A
5936f9cd2a9SJohn Baldwinoption.
5946f9cd2a9SJohn Baldwin.It Ev DESTDIR
5956f9cd2a9SJohn BaldwinSpecify an alternate destination directory similar to the
5966f9cd2a9SJohn Baldwin.Fl D
5976f9cd2a9SJohn Baldwinoption.
5986f9cd2a9SJohn Baldwin.It Ev EDITOR
5996f9cd2a9SJohn BaldwinSpecify a program to edit merge conflicts.
6006f9cd2a9SJohn Baldwin.It Ev FREEBSD_ID
6016f9cd2a9SJohn BaldwinIgnore changes in the FreeBSD ID string similar to the
6026f9cd2a9SJohn Baldwin.Fl F
6036f9cd2a9SJohn Baldwinoption.
6046f9cd2a9SJohn BaldwinThis is enabled by setting the variable to a non-empty value.
6056f9cd2a9SJohn Baldwin.It Ev IGNORE_FILES
6066f9cd2a9SJohn BaldwinIgnore files that match any of the patterns listed in this variable
6076f9cd2a9SJohn Baldwinsimilar to the
6086f9cd2a9SJohn Baldwin.Fl I
6096f9cd2a9SJohn Baldwinoption.
6106f9cd2a9SJohn Baldwin.It Ev LOGFILE
6116f9cd2a9SJohn BaldwinSpecify an alternate path for the log file similar to the
6126f9cd2a9SJohn Baldwin.Fl L
6136f9cd2a9SJohn Baldwinoption.
6145513d7deSJessica Clarke.It Ev MAKE_CMD
6155513d7deSJessica ClarkeSpecify the
6165513d7deSJessica Clarke.Xr make 1
6175513d7deSJessica Clarkebinary when building a
6185513d7deSJessica Clarke.Dq current
6195513d7deSJessica Clarketree similar to the
6205513d7deSJessica Clarke.Fl m
6215513d7deSJessica Clarkeoption.
6226f9cd2a9SJohn Baldwin.It Ev MAKE_OPTIONS
6236f9cd2a9SJohn BaldwinPass additional options to
6246f9cd2a9SJohn Baldwin.Xr make 1
6256f9cd2a9SJohn Baldwinwhen building a
6266f9cd2a9SJohn Baldwin.Dq current
6276f9cd2a9SJohn Baldwintree similar to the
6286f9cd2a9SJohn Baldwin.Fl M
6296f9cd2a9SJohn Baldwinoption.
6306f9cd2a9SJohn Baldwin.It Ev SRCDIR
6316f9cd2a9SJohn BaldwinSpecify an alternate source tree similar to the
6326f9cd2a9SJohn Baldwin.Fl s
6336f9cd2a9SJohn Baldwinoption.
6346f9cd2a9SJohn Baldwin.It Ev WORKDIR
6356f9cd2a9SJohn BaldwinSpecify an alternate work directory similar to the
6366f9cd2a9SJohn Baldwin.Fl d
6376f9cd2a9SJohn Baldwinoption.
6386f9cd2a9SJohn Baldwin.El
6396f9cd2a9SJohn Baldwin.Sh ENVIRONMENT
6406f9cd2a9SJohn BaldwinThe
6416f9cd2a9SJohn Baldwin.Nm
6426f9cd2a9SJohn Baldwinutility uses the program identified in the
6436f9cd2a9SJohn Baldwin.Ev EDITOR
6446f9cd2a9SJohn Baldwinenvironment variable to edit merge conflicts.
6456f9cd2a9SJohn BaldwinIf
6466f9cd2a9SJohn Baldwin.Ev EDITOR
6476f9cd2a9SJohn Baldwinis not set,
6486f9cd2a9SJohn Baldwin.Xr vi 1
6496f9cd2a9SJohn Baldwinis used as the default editor.
6506f9cd2a9SJohn Baldwin.Sh FILES
6516f9cd2a9SJohn Baldwin.Bl -tag -width ".Pa /var/db/etcupdate/log" -compact
6526f9cd2a9SJohn Baldwin.It Pa /etc/etcupdate.conf
6536f9cd2a9SJohn BaldwinOptional config file.
6546f9cd2a9SJohn Baldwin.It Pa /var/db/etcupdate
6556f9cd2a9SJohn BaldwinDefault work directory used to store trees and other data.
6566f9cd2a9SJohn Baldwin.It Pa /var/db/etcupdate/log
6576f9cd2a9SJohn BaldwinDefault log file.
6586f9cd2a9SJohn Baldwin.El
6596f9cd2a9SJohn Baldwin.Sh EXIT STATUS
6606f9cd2a9SJohn Baldwin.Ex -std
6616f9cd2a9SJohn Baldwin.Sh EXAMPLES
662079e563cSJohn BaldwinTo compare the files in
663079e563cSJohn Baldwin.Pa /etc
664079e563cSJohn Baldwinwith the stock versions:
6656f9cd2a9SJohn Baldwin.Pp
666079e563cSJohn Baldwin.Dl "etcupdate diff"
6676f9cd2a9SJohn Baldwin.Pp
6686f9cd2a9SJohn BaldwinTo merge changes after an upgrade via the buildworld and installworld process:
6696f9cd2a9SJohn Baldwin.Pp
6706f9cd2a9SJohn Baldwin.Dl "etcupdate"
6716f9cd2a9SJohn Baldwin.Pp
6726f9cd2a9SJohn BaldwinTo resolve any conflicts generated during a merge:
6736f9cd2a9SJohn Baldwin.Pp
6746f9cd2a9SJohn Baldwin.Dl "etcupdate resolve"
675079e563cSJohn Baldwin.Ss Bootstrapping
676079e563cSJohn BaldwinThe
677079e563cSJohn Baldwin.Nm
678079e563cSJohn Baldwinutility may need to be bootstrapped before it can be used.
679079e563cSJohn BaldwinThe
680079e563cSJohn Baldwin.Cm diff
681079e563cSJohn Baldwincommand will fail with an error about a missing reference tree if
682079e563cSJohn Baldwinbootstrapping is needed.
683079e563cSJohn Baldwin.Pp
684079e563cSJohn BaldwinBootstrapping
685079e563cSJohn Baldwin.Nm
686079e563cSJohn Baldwinrequires a source tree that matches the currently installed world.
687079e563cSJohn BaldwinThe easiest way to ensure this is to bootstrap
688079e563cSJohn Baldwin.Nm
689079e563cSJohn Baldwinbefore updating the source tree to start the next world upgrade cycle.
690079e563cSJohn BaldwinFirst,
691079e563cSJohn Baldwingenerate a reference tree:
692079e563cSJohn Baldwin.Pp
693079e563cSJohn Baldwin.Dl "etcupdate extract"
694079e563cSJohn Baldwin.Pp
695079e563cSJohn BaldwinSecond,
696079e563cSJohn Baldwinuse the
697079e563cSJohn Baldwin.Cm diff
698079e563cSJohn Baldwincommand to compare the reference tree to your current files in
699079e563cSJohn Baldwin.Pa /etc .
700079e563cSJohn BaldwinUndesired differences should be removed using an editor,
701079e563cSJohn Baldwin.Xr patch 1 ,
702079e563cSJohn Baldwinor by copying files from the reference tree
703079e563cSJohn Baldwin.Po
704079e563cSJohn Baldwinlocated at
705079e563cSJohn Baldwin.Pa /var/db/etcupdate/current
706079e563cSJohn Baldwinby default
707079e563cSJohn Baldwin.Pc
708079e563cSJohn Baldwin.
709079e563cSJohn Baldwin.Pp
710079e563cSJohn BaldwinIf the tree at
711079e563cSJohn Baldwin.Pa /usr/src
712079e563cSJohn Baldwinis already newer than the currently installed world,
713079e563cSJohn Baldwina new tree matching the currently installed world can be checked out to
714079e563cSJohn Baldwina temporary location.
715079e563cSJohn BaldwinThe reference tree for
716079e563cSJohn Baldwin.Nm
717079e563cSJohn Baldwincan then be generated via:
718079e563cSJohn Baldwin.Pp
719079e563cSJohn Baldwin.Dl "etcupdate extract -s /path/to/tree"
720079e563cSJohn Baldwin.Pp
721079e563cSJohn BaldwinThe
722079e563cSJohn Baldwin.Cm diff
723079e563cSJohn Baldwincommand can be used as above to remove undesired differences.
724079e563cSJohn BaldwinAfterwards,
725079e563cSJohn Baldwinthe changes in the tree at
726079e563cSJohn Baldwin.Pa /usr/src
727079e563cSJohn Baldwincan be merged via a regular merge.
7286f9cd2a9SJohn Baldwin.Sh DIAGNOSTICS
7296f9cd2a9SJohn BaldwinThe following warning messages may be generated during a merge.
7306f9cd2a9SJohn BaldwinNote that several of these warnings cover obscure cases that should occur
7316f9cd2a9SJohn Baldwinrarely if at all in practice.
7326f9cd2a9SJohn BaldwinFor example,
7336f9cd2a9SJohn Baldwinif a file changes from a file to a directory in the
7346f9cd2a9SJohn Baldwin.Dq current
7356f9cd2a9SJohn Baldwintree
7366f9cd2a9SJohn Baldwinand the file was modified in the destination directory,
7376f9cd2a9SJohn Baldwinthen a warning will be triggered.
7386f9cd2a9SJohn BaldwinIn general,
7396f9cd2a9SJohn Baldwinwhen a warning references a pathname,
7406f9cd2a9SJohn Baldwinthe corresponding file in the destination directory is not changed by a
7416f9cd2a9SJohn Baldwinmerge operation.
7426f9cd2a9SJohn Baldwin.Bl -diag
7436f9cd2a9SJohn Baldwin.It "Directory mismatch: <path> (<type>)"
7446f9cd2a9SJohn BaldwinAn attempt was made to create a directory at
7456f9cd2a9SJohn Baldwin.Pa path
7466f9cd2a9SJohn Baldwinbut an existing file of type
7476f9cd2a9SJohn Baldwin.Dq type
7486f9cd2a9SJohn Baldwinalready exists for that path name.
7496f9cd2a9SJohn Baldwin.It "Modified link changed: <file> (<old> became <new>)"
7506f9cd2a9SJohn BaldwinThe target of a symbolic link named
7516f9cd2a9SJohn Baldwin.Pa file
7526f9cd2a9SJohn Baldwinwas changed from
7536f9cd2a9SJohn Baldwin.Dq old
7546f9cd2a9SJohn Baldwinto
7556f9cd2a9SJohn Baldwin.Dq new
7566f9cd2a9SJohn Baldwinin the
7576f9cd2a9SJohn Baldwin.Dq current
7586f9cd2a9SJohn Baldwintree.
7596f9cd2a9SJohn BaldwinThe symbolic link has been modified to point to a target that is neither
7606f9cd2a9SJohn Baldwin.Dq old
7616f9cd2a9SJohn Baldwinnor
7626f9cd2a9SJohn Baldwin.Dq new
7636f9cd2a9SJohn Baldwinin the destination directory.
7646f9cd2a9SJohn Baldwin.It "Modified mismatch: <file> (<new> vs <dest>)"
7656f9cd2a9SJohn BaldwinA file named
7666f9cd2a9SJohn Baldwin.Pa file
7676f9cd2a9SJohn Baldwinof type
7686f9cd2a9SJohn Baldwin.Dq new
7696f9cd2a9SJohn Baldwinwas modified in the
7706f9cd2a9SJohn Baldwin.Dq current
7716f9cd2a9SJohn Baldwintree,
7726f9cd2a9SJohn Baldwinbut the file exists as a different type
7736f9cd2a9SJohn Baldwin.Dq dest
7746f9cd2a9SJohn Baldwinin the destination directory.
7756f9cd2a9SJohn Baldwin.It "Modified <type> changed: <file> (<old> became <new>)"
7766f9cd2a9SJohn BaldwinA file named
7776f9cd2a9SJohn Baldwin.Pa file
7786f9cd2a9SJohn Baldwinchanged type from
7796f9cd2a9SJohn Baldwin.Dq old
7806f9cd2a9SJohn Baldwinin the
7816f9cd2a9SJohn Baldwin.Dq previous
7826f9cd2a9SJohn Baldwintree to type
7836f9cd2a9SJohn Baldwin.Dq new
7846f9cd2a9SJohn Baldwinin the
7856f9cd2a9SJohn Baldwin.Dq current
7866f9cd2a9SJohn Baldwintree.
7876f9cd2a9SJohn BaldwinThe file in the destination directory of type
7886f9cd2a9SJohn Baldwin.Dq type
7896f9cd2a9SJohn Baldwinhas been modified,
7906f9cd2a9SJohn Baldwinso it could not be merged automatically.
7916f9cd2a9SJohn Baldwin.It "Modified <type> remains: <file>"
7926f9cd2a9SJohn BaldwinThe file of type
7936f9cd2a9SJohn Baldwin.Dq type
7946f9cd2a9SJohn Baldwinnamed
7956f9cd2a9SJohn Baldwin.Pa file
7966f9cd2a9SJohn Baldwinhas been removed from the
7976f9cd2a9SJohn Baldwin.Dq current
7986f9cd2a9SJohn Baldwintree,
7996f9cd2a9SJohn Baldwinbut it has been locally modified.
8006f9cd2a9SJohn BaldwinThe modified version of the file remains in the destination directory.
8013c9ac704SEdward Tomasz Napierala.It "Needs update: /etc/localtime (required manual update via tzsetup(8))"
8023e920822SJohn BaldwinThe
8033e920822SJohn Baldwin.Fa /var/db/zoneinfo
8043e920822SJohn Baldwinfile does not exist,
8053e920822SJohn Baldwinso
8063e920822SJohn Baldwin.Nm
8073e920822SJohn Baldwinwas not able to refresh
8083e920822SJohn Baldwin.Fa /etc/localtime
8093e920822SJohn Baldwinfrom its source file in
8103e920822SJohn Baldwin.Fa /usr/share/zoneinfo .
8113e920822SJohn BaldwinRunning
8123c9ac704SEdward Tomasz Napierala.Xr tzsetup 8
8133e920822SJohn Baldwinwill both refresh
8143e920822SJohn Baldwin.Fa /etc/localtime
8153e920822SJohn Baldwinand generate
8163e920822SJohn Baldwin.Fa /var/db/zoneinfo
8173e920822SJohn Baldwinpermitting future updates to refresh
8183e920822SJohn Baldwin.Fa /etc/localtime
8193e920822SJohn Baldwinautomatically.
8206f9cd2a9SJohn Baldwin.It "Needs update: /etc/mail/aliases.db (required manual update via newaliases(1))"
8216f9cd2a9SJohn BaldwinThe file
8226f9cd2a9SJohn Baldwin.Pa /etc/mail/aliases
8236f9cd2a9SJohn Baldwinwas updated during a merge with a non-empty destination directory.
8246f9cd2a9SJohn BaldwinDue to a limitation of the
8256f9cd2a9SJohn Baldwin.Xr newaliases 1
8266f9cd2a9SJohn Baldwincommand,
8276f9cd2a9SJohn Baldwin.Nm
8286f9cd2a9SJohn Baldwinwas not able to automatically update the corresponding aliases database.
8296f9cd2a9SJohn Baldwin.It "New file mismatch: <file> (<new> vs <dest>)"
8306f9cd2a9SJohn BaldwinA new file named
8316f9cd2a9SJohn Baldwin.Pa file
8326f9cd2a9SJohn Baldwinof type
8336f9cd2a9SJohn Baldwin.Dq new
8346f9cd2a9SJohn Baldwinhas been added to the
8356f9cd2a9SJohn Baldwin.Dq current
8366f9cd2a9SJohn Baldwintree.
8376f9cd2a9SJohn BaldwinA file of that name already exists in the destination directory,
8386f9cd2a9SJohn Baldwinbut it is of a different type
8396f9cd2a9SJohn Baldwin.Dq dest .
8406f9cd2a9SJohn Baldwin.It "New link conflict: <file> (<new> vs <dest>)"
8416f9cd2a9SJohn BaldwinA symbolic link named
8426f9cd2a9SJohn Baldwin.Pa file
8436f9cd2a9SJohn Baldwinhas been added to the
8446f9cd2a9SJohn Baldwin.Dq current
8456f9cd2a9SJohn Baldwintree that links to
8466f9cd2a9SJohn Baldwin.Dq new .
8476f9cd2a9SJohn BaldwinA symbolic link of the same name already exists in the destination
8486f9cd2a9SJohn Baldwindirectory,
8496f9cd2a9SJohn Baldwinbut it links to a different target
8506f9cd2a9SJohn Baldwin.Dq dest .
8516f9cd2a9SJohn Baldwin.It "Non-empty directory remains: <file>"
8526f9cd2a9SJohn BaldwinThe directory
8536f9cd2a9SJohn Baldwin.Pa file
8546f9cd2a9SJohn Baldwinwas removed from the
8556f9cd2a9SJohn Baldwin.Dq current
8566f9cd2a9SJohn Baldwintree,
8576f9cd2a9SJohn Baldwinbut it contains additional files in the destination directory.
8586f9cd2a9SJohn BaldwinThese additional files as well as the directory remain.
8596f9cd2a9SJohn Baldwin.It "Remove mismatch: <file> (<old> became <new>)"
8606f9cd2a9SJohn BaldwinA file named
8616f9cd2a9SJohn Baldwin.Pa file
8626f9cd2a9SJohn Baldwinchanged from type
8636f9cd2a9SJohn Baldwin.Dq old
8646f9cd2a9SJohn Baldwinin the
8656f9cd2a9SJohn Baldwin.Dq previous
8666f9cd2a9SJohn Baldwintree to type
8676f9cd2a9SJohn Baldwin.Dq new
8686f9cd2a9SJohn Baldwinin the
8696f9cd2a9SJohn Baldwin.Dq current
8706f9cd2a9SJohn Baldwintree,
8716f9cd2a9SJohn Baldwinbut it has been removed in the destination directory.
8726f9cd2a9SJohn Baldwin.It "Removed file changed: <file>"
8736f9cd2a9SJohn BaldwinA file named
8746f9cd2a9SJohn Baldwin.Pa file
8756f9cd2a9SJohn Baldwinwas modified in the
8766f9cd2a9SJohn Baldwin.Dq current
8776f9cd2a9SJohn Baldwintree,
8786f9cd2a9SJohn Baldwinbut it has been removed in the destination directory.
8796f9cd2a9SJohn Baldwin.It "Removed link changed: <file> (<old> became <new>)"
8806f9cd2a9SJohn BaldwinThe target of a symbolic link named
8816f9cd2a9SJohn Baldwin.Pa file
8826f9cd2a9SJohn Baldwinwas changed from
8836f9cd2a9SJohn Baldwin.Dq old
8846f9cd2a9SJohn Baldwinto
8856f9cd2a9SJohn Baldwin.Dq new
8866f9cd2a9SJohn Baldwinin the
8876f9cd2a9SJohn Baldwin.Dq current
8886f9cd2a9SJohn Baldwintree,
8896f9cd2a9SJohn Baldwinbut it has been removed in the destination directory.
8906f9cd2a9SJohn Baldwin.El
8916f9cd2a9SJohn Baldwin.Sh SEE ALSO
8926f9cd2a9SJohn Baldwin.Xr cap_mkdb 1 ,
8936f9cd2a9SJohn Baldwin.Xr diff 1 ,
8946f9cd2a9SJohn Baldwin.Xr make 1 ,
8956f9cd2a9SJohn Baldwin.Xr newaliases 1 ,
8966f9cd2a9SJohn Baldwin.Xr sh 1 ,
89774914641SBryan Drewery.Xr pwd_mkdb 8 ,
89874914641SBryan Drewery.Xr services_mkdb 8 ,
89974914641SBryan Drewery.Xr tzsetup 8
900cc59cb76SJoel Dahl.Sh HISTORY
901cc59cb76SJoel DahlThe
902cc59cb76SJoel Dahl.Nm
903cc59cb76SJoel Dahlutility first appeared in
904cc59cb76SJoel Dahl.Fx 10.0 .
9056f9cd2a9SJohn Baldwin.Sh AUTHORS
9066f9cd2a9SJohn BaldwinThe
9076f9cd2a9SJohn Baldwin.Nm
9086f9cd2a9SJohn Baldwinutility was written by
90901c2b8acSBaptiste Daroussin.An John Baldwin Aq Mt jhb@FreeBSD.org .
9106f9cd2a9SJohn Baldwin.Sh BUGS
9116f9cd2a9SJohn BaldwinRerunning a merge does not automatically delete conflicts left over from a
9126f9cd2a9SJohn Baldwinprevious merge.
9136f9cd2a9SJohn BaldwinAny conflicts must be resolved before the merge can be rerun.
9147bb0da8dSBjoern HeidottingIt is not clear if this is a feature or a bug.
9156f9cd2a9SJohn Baldwin.Pp
9166f9cd2a9SJohn BaldwinThere is no way to easily automate conflict resolution for specific files.
9176f9cd2a9SJohn BaldwinFor example, one can imagine a syntax along the lines of
9186f9cd2a9SJohn Baldwin.Pp
9196f9cd2a9SJohn Baldwin.Dl "etcupdate resolve tf /some/file"
9206f9cd2a9SJohn Baldwin.Pp
9216f9cd2a9SJohn Baldwinto resolve a specific conflict in an automated fashion.
9226f9cd2a9SJohn Baldwin.Pp
9236f9cd2a9SJohn BaldwinBootstrapping
9246f9cd2a9SJohn Baldwin.Nm
9256f9cd2a9SJohn Baldwinoften results in gratuitous diffs in
9266f9cd2a9SJohn Baldwin.Pa /etc/mail/*.cf
9276f9cd2a9SJohn Baldwinthat cause conflicts in the first merge.
9286f9cd2a9SJohn BaldwinIf an object tree that matches the source tree is present when bootstrapping,
9296f9cd2a9SJohn Baldwinthen passing the
9306f9cd2a9SJohn Baldwin.Fl B
9316f9cd2a9SJohn Baldwinflag to the
9326f9cd2a9SJohn Baldwin.Cm extract
9336f9cd2a9SJohn Baldwincommand can work around this.
934