On Mon, Jan 23, 2012 at 2:13 PM, Maxim Khitrov <m...@mxcrypt.com> wrote: > On Mon, Jan 23, 2012 at 1:25 PM, Matthew Seaman > <m.sea...@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 _______________________________________________ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"