Date: Tue, 24 Jan 2012 08:39:26 -0500 From: Maxim Khitrov <max@mxcrypt.com> To: freebsd-questions@freebsd.org Subject: Re: Applying local patches after updating FreeBSD source Message-ID: <CAJcQMWfR3mjDNa1B8mn1wJJEdktzCQ3pvqXwPduiSQFHd8sviQ@mail.gmail.com> In-Reply-To: <CAJcQMWdskC0kMw28Q%2BYTL8TJSOWOt5iwTFQviH-xPXbo2g-WBQ@mail.gmail.com> References: <CAJcQMWeYb8joYx7tPCcCqDEhXAKmzucNpHjO5YNrAxTN_jze3w@mail.gmail.com> <4F1DA620.4040207@infracaninophile.co.uk> <CAJcQMWdskC0kMw28Q%2BYTL8TJSOWOt5iwTFQviH-xPXbo2g-WBQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jan 23, 2012 at 2:13 PM, Maxim Khitrov <max@mxcrypt.com> wrote: > On Mon, Jan 23, 2012 at 1:25 PM, Matthew Seaman > <m.seaman@infracaninophile.co.uk> wrote: >> On 23/01/2012 18:03, Maxim Khitrov wrote: >>> Hi all, >>> >>> When I need to apply a custom patch to a port, I can set EXTRA_PATCHES >>> make variable in /usr/local/etc/ports.conf (when using portconf), and >>> the patch will be automatically applied whenever that port is built. >>> Is there equivalent functionality for building FreeBSD world and >>> kernel? >>> >>> When I run 'make update' in /usr/src, csup overwrites all local >>> changes. There is a LOCAL_PATCHES variable, but it seems to apply only >>> to 'make release'. >>> >>> If possible, I would like to avoid writing custom scripts for updating >>> and building world, because at some point I will forget to use the >>> script and build everything without the patches. How can I preserve >>> the current behavior of running 'make update && make buildworld >>> buildkernel' while automatically applying custom patches in between? >> >> Check the system sources out of svn? >> >> This way, you can apply your patches and the result is automatically >> merged when you update the sources by 'svn up' -- unless there has been >> a conflicting commit to the same file, when you may be required to >> intervene manually. > > I don't have subversion installed on any of my servers and that's a > dependency that I would prefer to do without. > > Are there any changes I could make to /etc/make.conf that would allow > me to execute an arbitrary command after the 'update' task is > finished? > > - Max For anyone else that might be interested in doing this, the solution is to create a shell script that is executed instead of csup when running 'make update'. The script to execute is specified in /etc/make.conf: SUP=/root/bin/csup-src I'm pretty sure that this is safe to do. Just in case, the script checks the current working directory to make sure that patches are only applied when updating /usr/src. You could also perform this check in make.conf. The script template is below. Feel free to adapt it for your own needs. ---- #!/bin/sh /usr/bin/csup "$@" || exit test "`pwd`" = '/usr/obj/usr/src' || exit 0 cd /usr/src echo '--------------------------------------------------------------' echo '>>> Applying local patches' echo '--------------------------------------------------------------' # <your code here> ---- - Max
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJcQMWfR3mjDNa1B8mn1wJJEdktzCQ3pvqXwPduiSQFHd8sviQ>