+++ /dev/null
-From 010a9f2bbdaa97024933be04eff1a48ff1f9b657 Mon Sep 17 00:00:00 2001
-From: Andrew Cagney <cagney@gnu.org>
-Date: Thu, 25 Oct 2018 21:00:59 -0400
-Subject: [PATCH] building: move kernel (klips) rules to mk/kernel.mk
-
----
- Makefile | 448 +-----------------------------------------------
- mk/kernel.mk | 468 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 474 insertions(+), 442 deletions(-)
- create mode 100644 mk/kernel.mk
-
-diff --git a/Makefile b/Makefile
-index b706defd0f..0b070966e6 100644
---- a/Makefile
-+++ b/Makefile
-@@ -97,119 +97,14 @@ KERNELREL=$(shell ${KVSHORTUTIL} ${KERNELSRC}/Makefile)
-
- # directories visited by all recursion
-
--# declaration for make's benefit
--.PHONY: def insert kpatch patches _patches _patches2.4 \
-- klipsdefaults programs man install \
-- precheck verset confcheck kernel \
-- module module24 module26 kinstall minstall minstall24 minstall26 \
-- moduleclean mod24clean module24clean mod26clean module26clean \
-- backup unpatch uninstall \
-- check \
--
--kpatch: unapplypatch applypatch klipsdefaults
--npatch: unapplynpatch applynpatch
--sarefpatch: unapplysarefpatch applysarefpatch
--
--unapplypatch:
-- @echo "info: making unapplypatch in `pwd` and KERNELSRC=\"${KERNELSRC}\";"
-- -@if [ -f ${KERNELSRC}/libreswan.patch ]; then \
-- echo Undoing previous patches; \
-- cat ${KERNELSRC}/libreswan.patch | (cd ${KERNELSRC} && patch -p1 -R --force -E -z .preipsec --reverse --ignore-whitespace ); \
-- fi
--
--applypatch:
-- @echo "info: Now performing forward patches in `pwd`";
-- ${MAKE} kernelpatch${KERNELREL} | tee ${KERNELSRC}/libreswan.patch | (cd ${KERNELSRC} && patch -p1 -b -z .preipsec --forward --ignore-whitespace )
--
--unapplynpatch:
-- @echo "info: making unapplynpatch (note the second N) in `pwd`";
-- -@if [ -f ${KERNELSRC}/natt.patch ]; then \
-- echo Undoing previous NAT patches; \
-- cat ${KERNELSRC}/natt.patch | (cd ${KERNELSRC} && patch -p1 -R --force -E -z .preipsec --reverse --ignore-whitespace ); \
-- fi
--
--applynpatch:
-- @echo "info: Now performing forward NAT patches in `pwd`";
-- ${MAKE} nattpatch${KERNELREL} | tee ${KERNELSRC}/natt.patch | (cd ${KERNELSRC} && patch -p1 -b -z .preipsec --forward --ignore-whitespace )
--
--unapplysarefpatch:
-- @echo "info: making unapplysarefpatch in `pwd`";
-- -@if [ -f ${KERNELSRC}/saref.patch ]; then \
-- echo Undoing previous saref patches; \
-- cat ${KERNELSRC}/saref.patch | (cd ${KERNELSRC} && patch -p1 -R --force -E -z .preng --reverse --ignore-whitespace ); \
-- fi
--
--applysarefpatch:
-- @echo "info: Now performing SAref patches in `pwd`";
-- ${MAKE} sarefpatch${KERNELREL} | tee ${KERNELSRC}/klipsng.patch | (cd ${KERNELSRC} && patch -p1 -b -z .preng --forward --ignore-whitespace )
--
--# patch kernel
--PATCHER=packaging/utils/patcher
--
--_patches:
-- echo "===============" >>out.kpatch
-- echo "`date` `cd $(KERNELSRC) ; pwd`" >>out.kpatch
-- $(MAKE) __patches$(KERNELREL) >>out.kpatch
--
--# Linux-2.4.0 version
--__patches2.4:
-- @$(PATCHER) -v -c $(KERNELSRC) Documentation/Configure.help \
-- 'CONFIG_KLIPS' $(PATCHES)/Documentation/Configure.help.fs2_2.patch
-- @$(PATCHER) -v $(KERNELSRC) net/Config.in \
-- 'CONFIG_KLIPS' $(PATCHES)/net/Config.in.fs2_4.patch
-- @$(PATCHER) -v $(KERNELSRC) net/Makefile \
-- 'CONFIG_KLIPS' $(PATCHES)/net/Makefile.fs2_4.patch
-- @$(PATCHER) -v $(KERNELSRC) net/ipv4/af_inet.c \
-- 'CONFIG_KLIPS' $(PATCHES)/net/ipv4/af_inet.c.fs2_4.patch
-- @$(PATCHER) -v $(KERNELSRC) net/ipv4/udp.c \
-- 'CONFIG_KLIPS' $(PATCHES)/net/ipv4/udp.c.fs2_4.patch
-- @$(PATCHER) -v $(KERNELSRC) include/net/sock.h \
-- 'CONFIG_KLIPS' $(PATCHES)/include/net/sock.h.fs2_4.patch
--# Removed patches, will unpatch automatically.
-- @$(PATCHER) -v $(KERNELSRC) include/linux/proc_fs.h
-- @$(PATCHER) -v $(KERNELSRC) net/core/dev.c
-- @$(PATCHER) -v $(KERNELSRC) net/ipv4/protocol.c
-- @$(PATCHER) -v $(KERNELSRC) drivers/net/Space.c
-- @$(PATCHER) -v $(KERNELSRC) include/linux/netlink.h
-- @$(PATCHER) -v $(KERNELSRC) net/netlink/af_netlink.c
-- @$(PATCHER) -v $(KERNELSRC) net/netlink/netlink_dev.c
-- @$(PATCHER) -v $(KERNELSRC) drivers/isdn/isdn_net.c
--
--klipsdefaults:
-- @KERNELDEFCONFIG=$(KERNELSRC)/arch/$(ARCH)/defconfig ; \
-- KERNELCONFIG=$(KCFILE) ; \
-- if ! egrep -q 'CONFIG_KLIPS' $$KERNELDEFCONFIG ; \
-- then \
-- set -x ; \
-- cp -a $$KERNELDEFCONFIG $$KERNELDEFCONFIG.orig ; \
-- chmod u+w $$KERNELDEFCONFIG ; \
-- cat $$KERNELDEFCONFIG $(KERNELKLIPS)/defconfig \
-- >$$KERNELDEFCONFIG.tmp ; \
-- rm -f $$KERNELDEFCONFIG ; \
-- cp -a $$KERNELDEFCONFIG.tmp $$KERNELDEFCONFIG ; \
-- rm -f $$KERNELDEFCONFIG.tmp ; \
-- fi ; \
-- if ! egrep -q 'CONFIG_KLIPS' $$KERNELCONFIG ; \
-- then \
-- set -x ; \
-- cp -a $$KERNELCONFIG $$KERNELCONFIG.orig ; \
-- chmod u+w $$KERNELCONFIG ; \
-- cat $$KERNELCONFIG $(KERNELKLIPS)/defconfig \
-- >$$KERNELCONFIG.tmp ; \
-- rm -f $$KERNELCONFIG ; \
-- cp -a $$KERNELCONFIG.tmp $$KERNELCONFIG ; \
-- rm -f $$KERNELCONFIG.tmp ; \
-- fi
--
--
--
- # programs
-
- ABSOBJDIR:=$(shell mkdir -p ${OBJDIR}; cd ${OBJDIR} && pwd)
- OBJDIRTOP=${ABSOBJDIR}
-
- # Recursive clean dealt with elsewhere.
--local-clean-base: moduleclean
-+.PHONY: local-clean-base
-+local-clean-base:
- $(foreach file,$(RPMTMPDIR) $(RPMDEST) out.*build out.*install, \
- rm -rf $(file) ; ) # but leave out.kpatch
-
-@@ -219,339 +114,13 @@ local-clean-base: moduleclean
- # $(OBJDIR), "distclean" does not depend on it. If it did, "make
- # distclean" would have the quirky behaviour of first creating
- # $(OBJDIR) only to then delete it.
--distclean: moduleclean module24clean module26clean clean-kvm-keys
-+.PHONY: distclean
-+distclean: clean-kvm-keys
- rm -f $(RPMTMPDIR) $(RPMDEST) out.*
- rm -rf testing/pluto/*/OUTPUT*
- rm -rf OBJ.* $(OBJDIR)
- rm -rf BACKUP
-
--# proxies for major kernel make operations
--
--# do-everything entries
--KINSERT_PRE=precheck verset insert
--PRE=precheck verset kpatch
--POST=confcheck programs kernel install
--MPOST=confcheck programs module install
--
--# preliminaries
--precheck:
-- @if test ! -d $(KERNELSRC) -a ! -L $(KERNELSRC) ; \
-- then \
-- echo '*** cannot find directory "$(KERNELSRC)"!!' ; \
-- echo '*** may be necessary to add symlink to kernel source' ; \
-- exit 1 ; \
-- fi
-- @if ! cd $(KERNELSRC) ; \
-- then \
-- echo '*** cannot "cd $(KERNELSRC)"!!' ; \
-- echo '*** may be necessary to add symlink to kernel source' ; \
-- exit 1 ; \
-- fi
-- @if test ! -f $(KCFILE) ; \
-- then \
-- echo '*** cannot find "$(KCFILE)"!!' ; \
-- echo '*** perhaps kernel has never been configured?' ; \
-- echo '*** please do that first; the results are necessary.' ; \
-- exit 1 ; \
-- fi
-- @if test ! -f $(VERFILE) ; \
-- then \
-- echo '*** cannot find "$(VERFILE)"!!' ; \
-- echo '*** perhaps kernel has never been compiled?' ; \
-- echo '*** please do that first; the results are necessary.' ; \
-- exit 1 ; \
-- fi
--
--# configuring (exit statuses disregarded, something fishy here sometimes)
--xcf:
-- -cd $(KERNELSRC) ; $(MAKE) $(KERNMAKEOPTS) xconfig
--mcf:
-- -cd $(KERNELSRC) ; $(MAKE) $(KERNMAKEOPTS) menuconfig
--pcf:
-- -cd $(KERNELSRC) ; $(MAKE) $(KERNMAKEOPTS) config
--
--ocf:
-- -cd $(KERNELSRC) ; $(MAKE) $(KERNMAKEOPTS) oldconfig
--
--rcf:
-- cd $(KERNELSRC) ; $(MAKE) $(KERNMAKEOPTS) ${NONINTCONFIG} </dev/null
-- cd $(KERNELSRC) ; $(MAKE) $(KERNMAKEOPTS) dep >/dev/null
--
--kclean:
-- -cd $(KERNELSRC) ; $(MAKE) $(KERNMAKEOPTS) clean
--
--confcheck:
-- @if test ! -f $(KCFILE) ; \
-- then echo '*** no kernel configuration file written!!' ; exit 1 ; \
-- fi
-- @if ! egrep -q '^CONFIG_KLIPS=[my]' $(KCFILE) ; \
-- then echo '*** IPsec not in kernel config ($(KCFILE))!!' ; exit 1 ; \
-- fi
-- @if ! egrep -q 'CONFIG_KLIPS[ ]+1' $(ACFILE) && \
-- ! egrep -q 'CONFIG_KLIPS_MODULE[ ]+1' $(ACFILE) ; \
-- then echo '*** IPsec in kernel config ($(KCFILE)),' ; \
-- echo '*** but not in config header file ($(ACFILE))!!' ; \
-- exit 1 ; \
-- fi
-- @if egrep -q '^CONFIG_KLIPS=m' $(KCFILE) && \
-- ! egrep -q '^CONFIG_MODULES=y' $(KCFILE) ; \
-- then echo '*** IPsec configured as module in kernel with no module support!!' ; exit 1 ; \
-- fi
-- @if ! egrep -q 'CONFIG_KLIPS_AH[ ]+1' $(ACFILE) && \
-- ! egrep -q 'CONFIG_KLIPS_ESP[ ]+1' $(ACFILE) ; \
-- then echo '*** IPsec configuration must include AH or ESP!!' ; exit 1 ; \
-- fi
--
--# kernel building, with error checks
--kernel:
-- rm -f out.kbuild out.kinstall
-- # undocumented kernel folklore: clean BEFORE dep.
-- # we run make dep separately, because there is no point in running ERRCHECK
-- # on the make dep output.
-- # see LKML thread "clean before or after dep?"
-- ( cd $(KERNELSRC) ; $(MAKE) $(KERNMAKEOPTS) $(KERNCLEAN) $(KERNDEP) )
-- ( cd $(KERNELSRC) ; $(MAKE) $(KERNMAKEOPTS) $(KERNEL) ) 2>&1 | tee out.kbuild
-- @if egrep -q '^CONFIG_MODULES=y' $(KCFILE) ; \
-- then set -x ; \
-- ( cd $(KERNELSRC) ; \
-- $(MAKE) $(KERNMAKEOPTS) modules 2>&1 ) | tee -a out.kbuild ; \
-- fi
-- ${ERRCHECK} out.kbuild
--
--# module-only building, with error checks
--ifneq ($(strip $(MOD24BUILDDIR)),)
--${MOD24BUILDDIR}/Makefile : ${LIBRESWANSRCDIR}/packaging/makefiles/module24.make
-- mkdir -p ${MOD24BUILDDIR}
-- cp ${LIBRESWANSRCDIR}/packaging/makefiles/module24.make ${MOD24BUILDDIR}/Makefile
--
--module:
-- @if [ -f ${KERNELSRC}/README.libreswan-2 ] ; then \
-- echo "WARNING: Kernel source ${KERNELSRC} has already been patched with libreswan-2, out of tree build might fail!"; \
-- fi;
-- @if [ -f ${KERNELSRC}/README.openswan ] ; then \
-- echo "WARNING: Kernel source ${KERNELSRC} has already been patched with openswan, out of tree build might fail!"; \
-- fi;
-- @if [ -f ${KERNELSRC}/README.openswan-2 ] ; then \
-- echo "WARNING: Kernel source ${KERNELSRC} has already been patched with openswan-2, out of tree build might fail!"; \
-- fi;
-- @if [ -f ${KERNELSRC}/README.freeswan ] ; then \
-- echo "ERROR: Kernel source ${KERNELSRC} has already been patched with freeswan, out of tree build will fail!"; \
-- fi;
-- @if [ -f ${KERNELSRC}/Rules.make ] ; then \
-- echo "Building module for a 2.4 kernel"; ${MAKE} module24 ; \
-- else echo "Building module for a 2.6 kernel"; ${MAKE} module26; \
-- fi;
--
--modclean moduleclean:
-- @if [ -f ${KERNELSRC}/Rules.make ] ; then \
-- echo "Cleaning module for a 2.4 kernel"; ${MAKE} module24clean ; \
-- else echo "Cleaning module for a 2.6 kernel"; ${MAKE} module26clean; \
-- fi;
--
--module24:
-- @if [ ! -f ${KERNELSRC}/Rules.make ] ; then \
-- echo "Warning: Building for a 2.4 kernel in what looks like a 2.6 tree"; \
-- fi ; \
-- ${MAKE} ${MOD24BUILDDIR}/Makefile
-- ${MAKE} -C ${MOD24BUILDDIR} LIBRESWANSRCDIR=${LIBRESWANSRCDIR} ARCH=${ARCH} V=${V} ${MODULE_FLAGS} MODULE_DEF_INCLUDE=${MODULE_DEF_INCLUDE} TOPDIR=${KERNELSRC} -f Makefile ipsec.o
-- @echo
-- @echo '========================================================='
-- @echo
-- @echo 'KLIPS24 module built successfully. '
-- @echo ipsec.o is in ${MOD24BUILDDIR}
-- @echo
-- @(cd ${MOD24BUILDDIR}; ls -l ipsec.o)
-- @(cd ${MOD24BUILDDIR}; size ipsec.o)
-- @echo
-- @echo 'use make minstall as root to install it'
-- @echo
-- @echo '========================================================='
-- @echo
--
--mod24clean module24clean:
-- rm -rf ${MOD24BUILDDIR}
--
--#autoodetect 2.4 and 2.6
--module_install minstall install-module:
-- @if [ -f $(KERNELSRC)/Rules.make ] ; then \
-- $(MAKE) minstall24 ; \
-- else \
-- $(MAKE) minstall26 ; \
-- fi;
--
--# Extract the value of MODLIB from the output of $(MAKE). Also hide
--# the sup-process $(MAKE) so that GNU Make doesn't always invoke the
--# target ("make -n" ignored).
--#
--# If $(MAKE) directly appears in a target (for instance in minstall26)
--# then GNU Make will assume that it is a recursive make invocation and
--# invoke the target regardless of -n.
--#
--# XXX: minstall24 should also use this.
--
--osmodlib-from-make = \
-- OSMODLIB=$$($(MAKE) $(1) 2>/dev/null | sed -n -e 's/^MODLIB[ :=]*\([^;]*\).*/\1/p' | head -1) ; \
-- test -z "$$OSMODLIB" || echo "OSMODLIB=$$OSMODLIB ($(MAKE) $(1))"
--
--# module-only install, with error checks
--minstall24:
-- ( OSMODLIB=`${MAKE} -C $(KERNELSRC) -p dummy | ( sed -n -e '/^MODLIB/p' -e '/^MODLIB/q' ; cat > /dev/null ) | sed -e 's/^MODLIB[ :=]*\([^;]*\).*/\1/'` ; \
-- if [ -z "$$OSMODLIB" ] ; then \
-- OSMODLIB=`${MAKE} -C $(KERNELSRC) -n -p modules_install | ( sed -n -e '/^MODLIB/p' -e '/^MODLIB/q' ; cat > /dev/null ) | sed -e 's/^MODLIB[ :=]*\([^;]*\).*/\1/'` ; \
-- fi ; \
-- if [ -z "$$OSMODLIB" ] ; then \
-- echo "No known place to install module. Aborting." ; \
-- exit 93 ; \
-- fi ; \
-- set -x ; \
-- mkdir -p $$OSMODLIB/kernel/$(OSMOD_DESTDIR) ; \
-- cp $(MOD24BUILDDIR)/ipsec.o $$OSMODLIB/kernel/$(OSMOD_DESTDIR) ; \
-- if [ -f /sbin/depmod ] ; then /sbin/depmod -a ; fi; \
-- if [ -n "$(OSMOD_DESTDIR)" ] ; then \
-- mkdir -p $$OSMODLIB/kernel/$(OSMOD_DESTDIR) ; \
-- if [ -f $$OSMODLIB/kernel/ipsec.o -a -f $$OSMODLIB/kernel/$(OSMOD_DESTDIR)/ipsec.o ] ; then \
-- echo "WARNING: two ipsec.o modules found in $$OSMODLIB/kernel:" ; \
-- ls -l $$OSMODLIB/kernel/ipsec.o $$OSMODLIB/kernel/$(OSMOD_DESTDIR)/ipsec.o ; \
-- exit 1; \
-- fi ; \
-- fi ; \
-- set -x ) ;
--
--
--else
--module:
-- echo 'Building in place is no longer supported. Please set MOD24BUILDDIR='
-- exit 1
--
--endif
--
--# module-only building, with error checks
--ifneq ($(strip $(MODBUILDDIR)),)
--${MODBUILDDIR}/Makefile : ${LIBRESWANSRCDIR}/packaging/makefiles/module.make
-- mkdir -p ${MODBUILDDIR}
-- echo ln -s -f ${LIBRESWANSRCDIR}/linux/net/ipsec/des/*.S ${MODBUILDDIR}
-- (rm -f ${MODBUILDDIR}/des; mkdir -p ${MODBUILDDIR}/des && cd ${MODBUILDDIR}/des && ln -s -f ${LIBRESWANSRCDIR}/linux/net/ipsec/des/* . && ln -s -f Makefile.fs2_6 Makefile)
-- (rm -f ${MODBUILDDIR}/aes; mkdir -p ${MODBUILDDIR}/aes && cd ${MODBUILDDIR}/aes && ln -s -f ${LIBRESWANSRCDIR}/linux/net/ipsec/aes/* . && ln -s -f Makefile.fs2_6 Makefile)
-- mkdir -p ${MODBUILDDIR}/aes
-- cp ${LIBRESWANSRCDIR}/packaging/makefiles/module.make ${MODBUILDDIR}/Makefile
-- ln -s -f ${LIBRESWANSRCDIR}/linux/net/ipsec/match*.S ${MODBUILDDIR}
--
--module26:
-- @if [ -f ${KERNELSRC}/Rules.make ] ; then \ echo "Warning: Building for a 2.6+ kernel in what looks like a 2.4 tree"; \
-- fi ; \
-- ${MAKE} ${MODBUILDDIR}/Makefile
-- ${MAKE} -C ${KERNELSRC} ${KERNELBUILDMFLAGS} BUILDDIR=${MODBUILDDIR} SUBDIRS=${MODBUILDDIR} INITSYSTEM=$(INITSYSTEM) MODULE_DEF_INCLUDE=${MODULE_DEF_INCLUDE} MODULE_DEFCONFIG=${MODULE_DEFCONFIG} MODULE_EXTRA_INCLUDE=${MODULE_EXTRA_INCLUDE} ARCH=${ARCH} V=${V} modules
-- @echo
-- @echo '========================================================='
-- @echo
-- @echo 'KLIPS module built successfully. '
-- @echo ipsec.ko is in ${MODBUILDDIR}
-- @echo
-- @(cd ${MODBUILDDIR}; ls -l ipsec.ko)
-- @(cd ${MODBUILDDIR}; size ipsec.ko)
-- @echo
-- @echo 'use make minstall as root to install it'
-- @echo
-- @echo '========================================================='
-- @echo
--
--mod26clean module26clean:
-- rm -rf ${MODBUILDDIR}
--
--# module-only install, with error checks
--minstall26:
-- $(call osmodlib-from-make,-C $(KERNELSRC) -p help) ; \
-- if [ -z "$$OSMODLIB" ] ; then \
-- $(call osmodlib-from-make,-C $(KERNELSRC) -n -p modules_install) ; \
-- fi ; \
-- if [ -z "$$OSMODLIB" ] ; then \
-- echo "No known place to install module. Aborting." ; \
-- exit 93 ; \
-- fi ; \
-- set -x ; \
-- mkdir -p $$OSMODLIB/kernel/$(OSMOD_DESTDIR) ; \
-- cp $(MODBUILDDIR)/ipsec.ko $$OSMODLIB/kernel/$(OSMOD_DESTDIR) ; \
-- if [ -f /sbin/depmod ] ; then \
-- /sbin/depmod -a ; \
-- fi ; \
-- if [ -n "$(OSMOD_DESTDIR)" ] ; then \
-- mkdir -p $$OSMODLIB/kernel/$(OSMOD_DESTDIR) ; \
-- if [ -f $$OSMODLIB/kernel/ipsec.ko -a -f $$OSMODLIB/kernel/$(OSMOD_DESTDIR)/ipsec.ko ] ; then \
-- echo "WARNING: two ipsec.ko modules found in $$OSMODLIB/kernel:" ; \
-- ls -l $$OSMODLIB/kernel/ipsec.ko $$OSMODLIB/kernel/$(OSMOD_DESTDIR)/ipsec.ko ; \
-- exit 1; \
-- fi ; \
-- fi
--
--
--else
--module26:
-- echo 'Building in place is no longer supported. Please set MODBUILDDIR='
-- exit 1
--
--endif
--
--# kernel install, with error checks
--kinstall:
-- rm -f out.kinstall
-- >out.kinstall
-- # undocumented kernel folklore: modules_install must precede install (observed on RHL8.0)
-- @if egrep -q '^CONFIG_MODULES=y' $(KCFILE) ; \
-- then set -x ; \
-- ( cd $(KERNELSRC) ; \
-- $(MAKE) $(KERNMAKEOPTS) modules_install 2>&1 ) | tee -a out.kinstall ; \
-- fi
-- ( cd $(KERNELSRC) ; $(MAKE) $(KERNMAKEOPTS) install ) 2>&1 | tee -a out.kinstall
-- ${ERRCHECK} out.kinstall
--
--kernelpatch3 kernelpatch3.5 kernelpatch2.6 kernelpatch:
-- packaging/utils/kernelpatch 2.6
--
--kernelpatch2.4:
-- packaging/utils/kernelpatch 2.4
--
--nattpatch:
-- if [ -f ${KERNELSRC}/Makefile ]; then \
-- ${MAKE} nattpatch${KERNELREL}; \
-- else echo "Cannot determine Linux kernel version. Perhaps you need to set KERNELSRC? (eg: export KERNELSRC=/usr/src/linux-`uname -r`/)"; exit 1; \
-- fi;
--
--sarefpatch2.6:
-- #cat patches/kernel/2.6.38/0001-SAREF-add-support-for-SA-selection-through-sendmsg.patch
-- #packaging/utils/sarefpatch 2.6
-- echo ""
--
--nattpatch2.6:
-- packaging/utils/nattpatch 2.6
--
--nattpatch2.4:
-- packaging/utils/nattpatch 2.4
--
--nattupdate:
-- (cd UMLPOOL && diff -u plain26/net/ipv4/udp.c.orig plain26/net/ipv4/udp.c; exit 0) >nat-t/net/ipv4/udp.c.os2_6.patch
--
--# take all the patches out of the kernel
--# (Note, a couple of files are modified by non-patch means; they are
--# included in "make backup".)
--unpatch:
-- @echo \"make unpatch\" is obsolete. See make unapplypatch.
-- exit 1
--
--_unpatch:
-- for f in `find $(KERNELSRC)/. -name '*.preipsec' -print` ; \
-- do \
-- echo "restoring $$f:" ; \
-- dir=`dirname $$f` ; \
-- core=`basename $$f .preipsec` ; \
-- cd $$dir ; \
-- mv -f $$core.preipsec $$core ; \
-- rm -f $$core.wipsec $$core.ipsecmd5 ; \
-- done
--
--# at the moment there is no difference between snapshot and release build
--snapready: buildready
--relready: buildready
--ready: devready
-
- # set up for build
- buildready:
-@@ -604,13 +173,6 @@ deb:
- #debuild -S -sa
- @echo "to build optional KLIPS kernel module, run make deb-klips"
-
--deb-klips:
-- sudo module-assistant prepare -u .
-- sudo dpkg -i ../libreswan-modules-source_`make -s showdebversion`_all.deb
-- sudo module-assistant -u . prepare
-- sudo module-assistant -u . build libreswan
--
--
- release:
- packaging/utils/makerelease
-
-@@ -654,3 +216,5 @@ install-fipshmac:
- include ${LIBRESWANSRCDIR}/mk/docker-targets.mk
- include ${LIBRESWANSRCDIR}/mk/kvm-targets.mk
- include ${LIBRESWANSRCDIR}/mk/web-targets.mk
-+include ${LIBRESWANSRCDIR}/mk/kernel.mk
-+
-diff --git a/mk/kernel.mk b/mk/kernel.mk
-new file mode 100644
-index 0000000000..187167d440
---- /dev/null
-+++ b/mk/kernel.mk
-@@ -0,0 +1,468 @@
-+# Libreswan master makefile
-+#
-+# Copyright (C) 1998-2002 Henry Spencer.
-+# Copyright (C) 2003-2004 Xelerance Corporation
-+# Copyright (C) 2017, Richard Guy Briggs <rgb@tricolour.ca>
-+# Copyright (C) 2015-2018 Andrew Cagney
-+#
-+# This program is free software; you can redistribute it and/or modify it
-+# under the terms of the GNU General Public License as published by the
-+# Free Software Foundation; either version 2 of the License, or (at your
-+# option) any later version. See <https://www.gnu.org/licenses/gpl2.txt>.
-+#
-+# This program is distributed in the hope that it will be useful, but
-+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-+# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+# for more details.
-+#
-+
-+PATCHES=linux
-+# where KLIPS goes in the kernel
-+# note, some of the patches know the last part of this path
-+KERNELKLIPS=$(KERNELSRC)/net/ipsec
-+KERNELCRYPTODES=$(KERNELSRC)/crypto/ciphers/des
-+KERNELLIBFREESWAN=$(KERNELSRC)/lib/libfreeswan
-+KERNELLIBZLIB=$(KERNELSRC)/lib/zlib
-+KERNELINCLUDE=$(KERNELSRC)/include
-+
-+MAKEUTILS=packaging/utils
-+ERRCHECK=${MAKEUTILS}/errcheck
-+KVUTIL=${MAKEUTILS}/kernelversion
-+KVSHORTUTIL=${MAKEUTILS}/kernelversion-short
-+
-+# kernel details
-+# what variant of our patches should we use, and where is it
-+KERNELREL=$(shell ${KVSHORTUTIL} ${KERNELSRC}/Makefile)
-+
-+# directories visited by all recursion
-+
-+# declaration for make's benefit
-+.PHONY: def insert kpatch patches _patches _patches2.4 \
-+ klipsdefaults programs man install \
-+ precheck verset confcheck kernel \
-+ module module24 module26 kinstall minstall minstall24 minstall26 \
-+ moduleclean mod24clean module24clean mod26clean module26clean \
-+ backup unpatch uninstall \
-+ check \
-+
-+kpatch: unapplypatch applypatch klipsdefaults
-+npatch: unapplynpatch applynpatch
-+sarefpatch: unapplysarefpatch applysarefpatch
-+
-+unapplypatch:
-+ @echo "info: making unapplypatch in `pwd` and KERNELSRC=\"${KERNELSRC}\";"
-+ -@if [ -f ${KERNELSRC}/libreswan.patch ]; then \
-+ echo Undoing previous patches; \
-+ cat ${KERNELSRC}/libreswan.patch | (cd ${KERNELSRC} && patch -p1 -R --force -E -z .preipsec --reverse --ignore-whitespace ); \
-+ fi
-+
-+applypatch:
-+ @echo "info: Now performing forward patches in `pwd`";
-+ ${MAKE} kernelpatch${KERNELREL} | tee ${KERNELSRC}/libreswan.patch | (cd ${KERNELSRC} && patch -p1 -b -z .preipsec --forward --ignore-whitespace )
-+
-+unapplynpatch:
-+ @echo "info: making unapplynpatch (note the second N) in `pwd`";
-+ -@if [ -f ${KERNELSRC}/natt.patch ]; then \
-+ echo Undoing previous NAT patches; \
-+ cat ${KERNELSRC}/natt.patch | (cd ${KERNELSRC} && patch -p1 -R --force -E -z .preipsec --reverse --ignore-whitespace ); \
-+ fi
-+
-+applynpatch:
-+ @echo "info: Now performing forward NAT patches in `pwd`";
-+ ${MAKE} nattpatch${KERNELREL} | tee ${KERNELSRC}/natt.patch | (cd ${KERNELSRC} && patch -p1 -b -z .preipsec --forward --ignore-whitespace )
-+
-+unapplysarefpatch:
-+ @echo "info: making unapplysarefpatch in `pwd`";
-+ -@if [ -f ${KERNELSRC}/saref.patch ]; then \
-+ echo Undoing previous saref patches; \
-+ cat ${KERNELSRC}/saref.patch | (cd ${KERNELSRC} && patch -p1 -R --force -E -z .preng --reverse --ignore-whitespace ); \
-+ fi
-+
-+applysarefpatch:
-+ @echo "info: Now performing SAref patches in `pwd`";
-+ ${MAKE} sarefpatch${KERNELREL} | tee ${KERNELSRC}/klipsng.patch | (cd ${KERNELSRC} && patch -p1 -b -z .preng --forward --ignore-whitespace )
-+
-+# patch kernel
-+PATCHER=packaging/utils/patcher
-+
-+_patches:
-+ echo "===============" >>out.kpatch
-+ echo "`date` `cd $(KERNELSRC) ; pwd`" >>out.kpatch
-+ $(MAKE) __patches$(KERNELREL) >>out.kpatch
-+
-+# Linux-2.4.0 version
-+__patches2.4:
-+ @$(PATCHER) -v -c $(KERNELSRC) Documentation/Configure.help \
-+ 'CONFIG_KLIPS' $(PATCHES)/Documentation/Configure.help.fs2_2.patch
-+ @$(PATCHER) -v $(KERNELSRC) net/Config.in \
-+ 'CONFIG_KLIPS' $(PATCHES)/net/Config.in.fs2_4.patch
-+ @$(PATCHER) -v $(KERNELSRC) net/Makefile \
-+ 'CONFIG_KLIPS' $(PATCHES)/net/Makefile.fs2_4.patch
-+ @$(PATCHER) -v $(KERNELSRC) net/ipv4/af_inet.c \
-+ 'CONFIG_KLIPS' $(PATCHES)/net/ipv4/af_inet.c.fs2_4.patch
-+ @$(PATCHER) -v $(KERNELSRC) net/ipv4/udp.c \
-+ 'CONFIG_KLIPS' $(PATCHES)/net/ipv4/udp.c.fs2_4.patch
-+ @$(PATCHER) -v $(KERNELSRC) include/net/sock.h \
-+ 'CONFIG_KLIPS' $(PATCHES)/include/net/sock.h.fs2_4.patch
-+# Removed patches, will unpatch automatically.
-+ @$(PATCHER) -v $(KERNELSRC) include/linux/proc_fs.h
-+ @$(PATCHER) -v $(KERNELSRC) net/core/dev.c
-+ @$(PATCHER) -v $(KERNELSRC) net/ipv4/protocol.c
-+ @$(PATCHER) -v $(KERNELSRC) drivers/net/Space.c
-+ @$(PATCHER) -v $(KERNELSRC) include/linux/netlink.h
-+ @$(PATCHER) -v $(KERNELSRC) net/netlink/af_netlink.c
-+ @$(PATCHER) -v $(KERNELSRC) net/netlink/netlink_dev.c
-+ @$(PATCHER) -v $(KERNELSRC) drivers/isdn/isdn_net.c
-+
-+klipsdefaults:
-+ @KERNELDEFCONFIG=$(KERNELSRC)/arch/$(ARCH)/defconfig ; \
-+ KERNELCONFIG=$(KCFILE) ; \
-+ if ! egrep -q 'CONFIG_KLIPS' $$KERNELDEFCONFIG ; \
-+ then \
-+ set -x ; \
-+ cp -a $$KERNELDEFCONFIG $$KERNELDEFCONFIG.orig ; \
-+ chmod u+w $$KERNELDEFCONFIG ; \
-+ cat $$KERNELDEFCONFIG $(KERNELKLIPS)/defconfig \
-+ >$$KERNELDEFCONFIG.tmp ; \
-+ rm -f $$KERNELDEFCONFIG ; \
-+ cp -a $$KERNELDEFCONFIG.tmp $$KERNELDEFCONFIG ; \
-+ rm -f $$KERNELDEFCONFIG.tmp ; \
-+ fi ; \
-+ if ! egrep -q 'CONFIG_KLIPS' $$KERNELCONFIG ; \
-+ then \
-+ set -x ; \
-+ cp -a $$KERNELCONFIG $$KERNELCONFIG.orig ; \
-+ chmod u+w $$KERNELCONFIG ; \
-+ cat $$KERNELCONFIG $(KERNELKLIPS)/defconfig \
-+ >$$KERNELCONFIG.tmp ; \
-+ rm -f $$KERNELCONFIG ; \
-+ cp -a $$KERNELCONFIG.tmp $$KERNELCONFIG ; \
-+ rm -f $$KERNELCONFIG.tmp ; \
-+ fi
-+
-+
-+local-clean-base: moduleclean
-+distclean: moduleclean module24clean module26clean clean-kvm-keys
-+
-+# proxies for major kernel make operations
-+
-+# do-everything entries
-+KINSERT_PRE=precheck verset insert
-+PRE=precheck verset kpatch
-+POST=confcheck programs kernel install
-+MPOST=confcheck programs module install
-+
-+# preliminaries
-+precheck:
-+ @if test ! -d $(KERNELSRC) -a ! -L $(KERNELSRC) ; \
-+ then \
-+ echo '*** cannot find directory "$(KERNELSRC)"!!' ; \
-+ echo '*** may be necessary to add symlink to kernel source' ; \
-+ exit 1 ; \
-+ fi
-+ @if ! cd $(KERNELSRC) ; \
-+ then \
-+ echo '*** cannot "cd $(KERNELSRC)"!!' ; \
-+ echo '*** may be necessary to add symlink to kernel source' ; \
-+ exit 1 ; \
-+ fi
-+ @if test ! -f $(KCFILE) ; \
-+ then \
-+ echo '*** cannot find "$(KCFILE)"!!' ; \
-+ echo '*** perhaps kernel has never been configured?' ; \
-+ echo '*** please do that first; the results are necessary.' ; \
-+ exit 1 ; \
-+ fi
-+ @if test ! -f $(VERFILE) ; \
-+ then \
-+ echo '*** cannot find "$(VERFILE)"!!' ; \
-+ echo '*** perhaps kernel has never been compiled?' ; \
-+ echo '*** please do that first; the results are necessary.' ; \
-+ exit 1 ; \
-+ fi
-+
-+# configuring (exit statuses disregarded, something fishy here sometimes)
-+xcf:
-+ -cd $(KERNELSRC) ; $(MAKE) $(KERNMAKEOPTS) xconfig
-+mcf:
-+ -cd $(KERNELSRC) ; $(MAKE) $(KERNMAKEOPTS) menuconfig
-+pcf:
-+ -cd $(KERNELSRC) ; $(MAKE) $(KERNMAKEOPTS) config
-+
-+ocf:
-+ -cd $(KERNELSRC) ; $(MAKE) $(KERNMAKEOPTS) oldconfig
-+
-+rcf:
-+ cd $(KERNELSRC) ; $(MAKE) $(KERNMAKEOPTS) ${NONINTCONFIG} </dev/null
-+ cd $(KERNELSRC) ; $(MAKE) $(KERNMAKEOPTS) dep >/dev/null
-+
-+kclean:
-+ -cd $(KERNELSRC) ; $(MAKE) $(KERNMAKEOPTS) clean
-+
-+confcheck:
-+ @if test ! -f $(KCFILE) ; \
-+ then echo '*** no kernel configuration file written!!' ; exit 1 ; \
-+ fi
-+ @if ! egrep -q '^CONFIG_KLIPS=[my]' $(KCFILE) ; \
-+ then echo '*** IPsec not in kernel config ($(KCFILE))!!' ; exit 1 ; \
-+ fi
-+ @if ! egrep -q 'CONFIG_KLIPS[ ]+1' $(ACFILE) && \
-+ ! egrep -q 'CONFIG_KLIPS_MODULE[ ]+1' $(ACFILE) ; \
-+ then echo '*** IPsec in kernel config ($(KCFILE)),' ; \
-+ echo '*** but not in config header file ($(ACFILE))!!' ; \
-+ exit 1 ; \
-+ fi
-+ @if egrep -q '^CONFIG_KLIPS=m' $(KCFILE) && \
-+ ! egrep -q '^CONFIG_MODULES=y' $(KCFILE) ; \
-+ then echo '*** IPsec configured as module in kernel with no module support!!' ; exit 1 ; \
-+ fi
-+ @if ! egrep -q 'CONFIG_KLIPS_AH[ ]+1' $(ACFILE) && \
-+ ! egrep -q 'CONFIG_KLIPS_ESP[ ]+1' $(ACFILE) ; \
-+ then echo '*** IPsec configuration must include AH or ESP!!' ; exit 1 ; \
-+ fi
-+
-+# kernel building, with error checks
-+kernel:
-+ rm -f out.kbuild out.kinstall
-+ # undocumented kernel folklore: clean BEFORE dep.
-+ # we run make dep separately, because there is no point in running ERRCHECK
-+ # on the make dep output.
-+ # see LKML thread "clean before or after dep?"
-+ ( cd $(KERNELSRC) ; $(MAKE) $(KERNMAKEOPTS) $(KERNCLEAN) $(KERNDEP) )
-+ ( cd $(KERNELSRC) ; $(MAKE) $(KERNMAKEOPTS) $(KERNEL) ) 2>&1 | tee out.kbuild
-+ @if egrep -q '^CONFIG_MODULES=y' $(KCFILE) ; \
-+ then set -x ; \
-+ ( cd $(KERNELSRC) ; \
-+ $(MAKE) $(KERNMAKEOPTS) modules 2>&1 ) | tee -a out.kbuild ; \
-+ fi
-+ ${ERRCHECK} out.kbuild
-+
-+# module-only building, with error checks
-+ifneq ($(strip $(MOD24BUILDDIR)),)
-+${MOD24BUILDDIR}/Makefile : ${LIBRESWANSRCDIR}/packaging/makefiles/module24.make
-+ mkdir -p ${MOD24BUILDDIR}
-+ cp ${LIBRESWANSRCDIR}/packaging/makefiles/module24.make ${MOD24BUILDDIR}/Makefile
-+
-+module:
-+ @if [ -f ${KERNELSRC}/README.libreswan-2 ] ; then \
-+ echo "WARNING: Kernel source ${KERNELSRC} has already been patched with libreswan-2, out of tree build might fail!"; \
-+ fi;
-+ @if [ -f ${KERNELSRC}/README.openswan ] ; then \
-+ echo "WARNING: Kernel source ${KERNELSRC} has already been patched with openswan, out of tree build might fail!"; \
-+ fi;
-+ @if [ -f ${KERNELSRC}/README.openswan-2 ] ; then \
-+ echo "WARNING: Kernel source ${KERNELSRC} has already been patched with openswan-2, out of tree build might fail!"; \
-+ fi;
-+ @if [ -f ${KERNELSRC}/README.freeswan ] ; then \
-+ echo "ERROR: Kernel source ${KERNELSRC} has already been patched with freeswan, out of tree build will fail!"; \
-+ fi;
-+ @if [ -f ${KERNELSRC}/Rules.make ] ; then \
-+ echo "Building module for a 2.4 kernel"; ${MAKE} module24 ; \
-+ else echo "Building module for a 2.6 kernel"; ${MAKE} module26; \
-+ fi;
-+
-+modclean moduleclean:
-+ @if [ -f ${KERNELSRC}/Rules.make ] ; then \
-+ echo "Cleaning module for a 2.4 kernel"; ${MAKE} module24clean ; \
-+ else echo "Cleaning module for a 2.6 kernel"; ${MAKE} module26clean; \
-+ fi;
-+
-+module24:
-+ @if [ ! -f ${KERNELSRC}/Rules.make ] ; then \
-+ echo "Warning: Building for a 2.4 kernel in what looks like a 2.6 tree"; \
-+ fi ; \
-+ ${MAKE} ${MOD24BUILDDIR}/Makefile
-+ ${MAKE} -C ${MOD24BUILDDIR} LIBRESWANSRCDIR=${LIBRESWANSRCDIR} ARCH=${ARCH} V=${V} ${MODULE_FLAGS} MODULE_DEF_INCLUDE=${MODULE_DEF_INCLUDE} TOPDIR=${KERNELSRC} -f Makefile ipsec.o
-+ @echo
-+ @echo '========================================================='
-+ @echo
-+ @echo 'KLIPS24 module built successfully. '
-+ @echo ipsec.o is in ${MOD24BUILDDIR}
-+ @echo
-+ @(cd ${MOD24BUILDDIR}; ls -l ipsec.o)
-+ @(cd ${MOD24BUILDDIR}; size ipsec.o)
-+ @echo
-+ @echo 'use make minstall as root to install it'
-+ @echo
-+ @echo '========================================================='
-+ @echo
-+
-+mod24clean module24clean:
-+ rm -rf ${MOD24BUILDDIR}
-+
-+#autoodetect 2.4 and 2.6
-+module_install minstall install-module:
-+ @if [ -f $(KERNELSRC)/Rules.make ] ; then \
-+ $(MAKE) minstall24 ; \
-+ else \
-+ $(MAKE) minstall26 ; \
-+ fi;
-+
-+# Extract the value of MODLIB from the output of $(MAKE). Also hide
-+# the sup-process $(MAKE) so that GNU Make doesn't always invoke the
-+# target ("make -n" ignored).
-+#
-+# If $(MAKE) directly appears in a target (for instance in minstall26)
-+# then GNU Make will assume that it is a recursive make invocation and
-+# invoke the target regardless of -n.
-+#
-+# XXX: minstall24 should also use this.
-+
-+osmodlib-from-make = \
-+ OSMODLIB=$$($(MAKE) $(1) 2>/dev/null | sed -n -e 's/^MODLIB[ :=]*\([^;]*\).*/\1/p' | head -1) ; \
-+ test -z "$$OSMODLIB" || echo "OSMODLIB=$$OSMODLIB ($(MAKE) $(1))"
-+
-+# module-only install, with error checks
-+minstall24:
-+ ( OSMODLIB=`${MAKE} -C $(KERNELSRC) -p dummy | ( sed -n -e '/^MODLIB/p' -e '/^MODLIB/q' ; cat > /dev/null ) | sed -e 's/^MODLIB[ :=]*\([^;]*\).*/\1/'` ; \
-+ if [ -z "$$OSMODLIB" ] ; then \
-+ OSMODLIB=`${MAKE} -C $(KERNELSRC) -n -p modules_install | ( sed -n -e '/^MODLIB/p' -e '/^MODLIB/q' ; cat > /dev/null ) | sed -e 's/^MODLIB[ :=]*\([^;]*\).*/\1/'` ; \
-+ fi ; \
-+ if [ -z "$$OSMODLIB" ] ; then \
-+ echo "No known place to install module. Aborting." ; \
-+ exit 93 ; \
-+ fi ; \
-+ set -x ; \
-+ mkdir -p $$OSMODLIB/kernel/$(OSMOD_DESTDIR) ; \
-+ cp $(MOD24BUILDDIR)/ipsec.o $$OSMODLIB/kernel/$(OSMOD_DESTDIR) ; \
-+ if [ -f /sbin/depmod ] ; then /sbin/depmod -a ; fi; \
-+ if [ -n "$(OSMOD_DESTDIR)" ] ; then \
-+ mkdir -p $$OSMODLIB/kernel/$(OSMOD_DESTDIR) ; \
-+ if [ -f $$OSMODLIB/kernel/ipsec.o -a -f $$OSMODLIB/kernel/$(OSMOD_DESTDIR)/ipsec.o ] ; then \
-+ echo "WARNING: two ipsec.o modules found in $$OSMODLIB/kernel:" ; \
-+ ls -l $$OSMODLIB/kernel/ipsec.o $$OSMODLIB/kernel/$(OSMOD_DESTDIR)/ipsec.o ; \
-+ exit 1; \
-+ fi ; \
-+ fi ; \
-+ set -x ) ;
-+
-+
-+else
-+module:
-+ echo 'Building in place is no longer supported. Please set MOD24BUILDDIR='
-+ exit 1
-+
-+endif
-+
-+# module-only building, with error checks
-+ifneq ($(strip $(MODBUILDDIR)),)
-+${MODBUILDDIR}/Makefile : ${LIBRESWANSRCDIR}/packaging/makefiles/module.make
-+ mkdir -p ${MODBUILDDIR}
-+ echo ln -s -f ${LIBRESWANSRCDIR}/linux/net/ipsec/des/*.S ${MODBUILDDIR}
-+ (rm -f ${MODBUILDDIR}/des; mkdir -p ${MODBUILDDIR}/des && cd ${MODBUILDDIR}/des && ln -s -f ${LIBRESWANSRCDIR}/linux/net/ipsec/des/* . && ln -s -f Makefile.fs2_6 Makefile)
-+ (rm -f ${MODBUILDDIR}/aes; mkdir -p ${MODBUILDDIR}/aes && cd ${MODBUILDDIR}/aes && ln -s -f ${LIBRESWANSRCDIR}/linux/net/ipsec/aes/* . && ln -s -f Makefile.fs2_6 Makefile)
-+ mkdir -p ${MODBUILDDIR}/aes
-+ cp ${LIBRESWANSRCDIR}/packaging/makefiles/module.make ${MODBUILDDIR}/Makefile
-+ ln -s -f ${LIBRESWANSRCDIR}/linux/net/ipsec/match*.S ${MODBUILDDIR}
-+
-+module26:
-+ @if [ -f ${KERNELSRC}/Rules.make ] ; then \ echo "Warning: Building for a 2.6+ kernel in what looks like a 2.4 tree"; \
-+ fi ; \
-+ ${MAKE} ${MODBUILDDIR}/Makefile
-+ ${MAKE} -C ${KERNELSRC} ${KERNELBUILDMFLAGS} BUILDDIR=${MODBUILDDIR} SUBDIRS=${MODBUILDDIR} INITSYSTEM=$(INITSYSTEM) MODULE_DEF_INCLUDE=${MODULE_DEF_INCLUDE} MODULE_DEFCONFIG=${MODULE_DEFCONFIG} MODULE_EXTRA_INCLUDE=${MODULE_EXTRA_INCLUDE} ARCH=${ARCH} V=${V} modules
-+ @echo
-+ @echo '========================================================='
-+ @echo
-+ @echo 'KLIPS module built successfully. '
-+ @echo ipsec.ko is in ${MODBUILDDIR}
-+ @echo
-+ @(cd ${MODBUILDDIR}; ls -l ipsec.ko)
-+ @(cd ${MODBUILDDIR}; size ipsec.ko)
-+ @echo
-+ @echo 'use make minstall as root to install it'
-+ @echo
-+ @echo '========================================================='
-+ @echo
-+
-+mod26clean module26clean:
-+ rm -rf ${MODBUILDDIR}
-+
-+# module-only install, with error checks
-+minstall26:
-+ $(call osmodlib-from-make,-C $(KERNELSRC) -p help) ; \
-+ if [ -z "$$OSMODLIB" ] ; then \
-+ $(call osmodlib-from-make,-C $(KERNELSRC) -n -p modules_install) ; \
-+ fi ; \
-+ if [ -z "$$OSMODLIB" ] ; then \
-+ echo "No known place to install module. Aborting." ; \
-+ exit 93 ; \
-+ fi ; \
-+ set -x ; \
-+ mkdir -p $$OSMODLIB/kernel/$(OSMOD_DESTDIR) ; \
-+ cp $(MODBUILDDIR)/ipsec.ko $$OSMODLIB/kernel/$(OSMOD_DESTDIR) ; \
-+ if [ -f /sbin/depmod ] ; then \
-+ /sbin/depmod -a ; \
-+ fi ; \
-+ if [ -n "$(OSMOD_DESTDIR)" ] ; then \
-+ mkdir -p $$OSMODLIB/kernel/$(OSMOD_DESTDIR) ; \
-+ if [ -f $$OSMODLIB/kernel/ipsec.ko -a -f $$OSMODLIB/kernel/$(OSMOD_DESTDIR)/ipsec.ko ] ; then \
-+ echo "WARNING: two ipsec.ko modules found in $$OSMODLIB/kernel:" ; \
-+ ls -l $$OSMODLIB/kernel/ipsec.ko $$OSMODLIB/kernel/$(OSMOD_DESTDIR)/ipsec.ko ; \
-+ exit 1; \
-+ fi ; \
-+ fi
-+
-+
-+else
-+module26:
-+ echo 'Building in place is no longer supported. Please set MODBUILDDIR='
-+ exit 1
-+
-+endif
-+
-+# kernel install, with error checks
-+kinstall:
-+ rm -f out.kinstall
-+ >out.kinstall
-+ # undocumented kernel folklore: modules_install must precede install (observed on RHL8.0)
-+ @if egrep -q '^CONFIG_MODULES=y' $(KCFILE) ; \
-+ then set -x ; \
-+ ( cd $(KERNELSRC) ; \
-+ $(MAKE) $(KERNMAKEOPTS) modules_install 2>&1 ) | tee -a out.kinstall ; \
-+ fi
-+ ( cd $(KERNELSRC) ; $(MAKE) $(KERNMAKEOPTS) install ) 2>&1 | tee -a out.kinstall
-+ ${ERRCHECK} out.kinstall
-+
-+kernelpatch3 kernelpatch3.5 kernelpatch2.6 kernelpatch:
-+ packaging/utils/kernelpatch 2.6
-+
-+kernelpatch2.4:
-+ packaging/utils/kernelpatch 2.4
-+
-+nattpatch:
-+ if [ -f ${KERNELSRC}/Makefile ]; then \
-+ ${MAKE} nattpatch${KERNELREL}; \
-+ else echo "Cannot determine Linux kernel version. Perhaps you need to set KERNELSRC? (eg: export KERNELSRC=/usr/src/linux-`uname -r`/)"; exit 1; \
-+ fi;
-+
-+sarefpatch2.6:
-+ #cat patches/kernel/2.6.38/0001-SAREF-add-support-for-SA-selection-through-sendmsg.patch
-+ #packaging/utils/sarefpatch 2.6
-+ echo ""
-+
-+nattpatch2.6:
-+ packaging/utils/nattpatch 2.6
-+
-+nattpatch2.4:
-+ packaging/utils/nattpatch 2.4
-+
-+nattupdate:
-+ (cd UMLPOOL && diff -u plain26/net/ipv4/udp.c.orig plain26/net/ipv4/udp.c; exit 0) >nat-t/net/ipv4/udp.c.os2_6.patch
-+
-+# take all the patches out of the kernel
-+# (Note, a couple of files are modified by non-patch means; they are
-+# included in "make backup".)
-+unpatch:
-+ @echo \"make unpatch\" is obsolete. See make unapplypatch.
-+ exit 1
-+
-+_unpatch:
-+ for f in `find $(KERNELSRC)/. -name '*.preipsec' -print` ; \
-+ do \
-+ echo "restoring $$f:" ; \
-+ dir=`dirname $$f` ; \
-+ core=`basename $$f .preipsec` ; \
-+ cd $$dir ; \
-+ mv -f $$core.preipsec $$core ; \
-+ rm -f $$core.wipsec $$core.ipsecmd5 ; \
-+ done