1.\"- 2.\" Copyright 2003-2005 Colin Percival 3.\" All rights reserved 4.\" 5.\" Redistribution and use in source and binary forms, with or without 6.\" modification, are permitted providing that the following conditions 7.\" are met: 8.\" 1. Redistributions of source code must retain the above copyright 9.\" notice, this list of conditions and the following disclaimer. 10.\" 2. Redistributions in binary form must reproduce the above copyright 11.\" notice, this list of conditions and the following disclaimer in the 12.\" documentation and/or other materials provided with the distribution. 13.\" 14.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 15.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 18.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 22.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 23.\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 24.\" POSSIBILITY OF SUCH DAMAGE. 25.\" 26.Dd December 22, 2022 27.Dt BSPATCH 1 28.Os 29.Sh NAME 30.Nm bspatch 31.Nd apply a patch built with 32.Xr bsdiff 1 33.Sh SYNOPSIS 34.Nm 35.Ar oldfile newfile patchfile 36.Sh DESCRIPTION 37The 38.Nm 39utility 40generates 41.Ar newfile 42from 43.Ar oldfile 44and 45.Ar patchfile 46where 47.Ar patchfile 48is a binary patch built by 49.Xr bsdiff 1 . 50.Pp 51The 52.Nm 53utility 54uses memory equal to the size of 55.Ar oldfile 56plus the size of 57.Ar newfile , 58but can tolerate a very small working set without a dramatic loss 59of performance. 60.Sh SEE ALSO 61.Xr bsdiff 1 62.Sh AUTHORS 63.An Colin Percival Aq Mt cperciva@FreeBSD.org 64.Sh BUGS 65The 66.Nm 67utility does not verify that 68.Ar oldfile 69is the correct source file for 70.Ar patchfile . 71Attempting to apply a patch to the wrong file will usually produce 72garbage; consequently it is strongly recommended that users of 73.Nm 74verify that 75.Ar oldfile 76matches the source file from which 77.Ar patchfile 78was built, by comparing cryptographic hashes, for example. 79Users may also wish to verify after running 80.Nm 81that 82.Ar newfile 83matches the target file from which 84.Ar patchfile 85was built. 86