summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Gianelloni <wolf31o2@gentoo.org>2008-06-02 20:55:59 +0000
committerChris Gianelloni <wolf31o2@gentoo.org>2008-06-02 20:55:59 +0000
commit803f062211e6f95049e6445d1103d096d6ce7c1a (patch)
tree68a12c53d007ad6c64f444b8228b00dd25e5bcfe /net-misc/cisco-vpnclient-3des
parentfix tests, bug #216478 (diff)
downloadhistorical-803f062211e6f95049e6445d1103d096d6ce7c1a.tar.gz
historical-803f062211e6f95049e6445d1103d096d6ce7c1a.tar.bz2
historical-803f062211e6f95049e6445d1103d096d6ce7c1a.zip
Version bump to 4.8.01.0640 for bug #202415. This ebuild has been re-worked to not use the Cisco driver_build.sh shell script and instead uses the Makefile provided to build the module.
Package-Manager: portage-2.1.5.3
Diffstat (limited to 'net-misc/cisco-vpnclient-3des')
-rw-r--r--net-misc/cisco-vpnclient-3des/ChangeLog8
-rw-r--r--net-misc/cisco-vpnclient-3des/Manifest16
-rw-r--r--net-misc/cisco-vpnclient-3des/cisco-vpnclient-3des-4.8.01.0640.ebuild109
-rw-r--r--net-misc/cisco-vpnclient-3des/files/4.8.01.0640-2.6.24.patch241
-rw-r--r--net-misc/cisco-vpnclient-3des/files/4.8.01.0640-amd64.patch116
5 files changed, 488 insertions, 2 deletions
diff --git a/net-misc/cisco-vpnclient-3des/ChangeLog b/net-misc/cisco-vpnclient-3des/ChangeLog
index 813907b6aa00..3043ccbf7505 100644
--- a/net-misc/cisco-vpnclient-3des/ChangeLog
+++ b/net-misc/cisco-vpnclient-3des/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for net-misc/cisco-vpnclient-3des
# Copyright 2000-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/cisco-vpnclient-3des/ChangeLog,v 1.57 2008/02/05 02:37:10 wolf31o2 Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-misc/cisco-vpnclient-3des/ChangeLog,v 1.58 2008/06/02 20:55:58 wolf31o2 Exp $
+
+ 02 Jun 2008; Chris Gianelloni <wolf31o2@gentoo.org>
+ +files/4.8.01.0640-2.6.24.patch, +files/4.8.01.0640-amd64.patch:
+ Version bump to 4.8.01.0640 for bug #202415. This ebuild has been
+ re-worked to not use the Cisco driver_build.sh shell script and instead
+ uses the Makefile provided to build the module.
05 Feb 2008; Chris Gianelloni <wolf31o2@gentoo.org> files/2.6.24.patch:
Fixing with the proper patch for 4.8.00 and closing bug #207536.
diff --git a/net-misc/cisco-vpnclient-3des/Manifest b/net-misc/cisco-vpnclient-3des/Manifest
index 18c2131b727f..53ce25224d67 100644
--- a/net-misc/cisco-vpnclient-3des/Manifest
+++ b/net-misc/cisco-vpnclient-3des/Manifest
@@ -1,3 +1,6 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
AUX 2.6.19.patch 3247 RMD160 c3b6dac23c6e297f4a4468a653407b769fb72742 SHA1 bb7d3efa9cfaa1aaf0dcf9811202d651b8aeabd0 SHA256 e6b221751bc87d914b55912304ba0a72536ebc6bd0e3476024b4eb554391e5e5
AUX 2.6.22.patch 12897 RMD160 ccb8a185ee36fd6423d58251ae472e711f91143c SHA1 04f6d02906c1fae852ecf5fb4c333bfdd1366349 SHA256 ce86c1391ade1118c84331224974278356663dda4612a443f067fc6b1bcc5633
AUX 2.6.24.patch 4651 RMD160 17d96cfd83859bb68d989f1ad0f477c9361b7725 SHA1 e25e886c9da1f8554ed02178c88f7d962e89117a SHA256 51b2178a65c26d9900012b7871d19f5e1179d162fd7293accc04d5b4905dbe3f
@@ -6,17 +9,28 @@ AUX 4.6.02.0030-supported_device.patch 807 RMD160 751eeac122d6c508ddd1f197b2e82e
AUX 4.6.03.0190-2.6.14.patch 584 RMD160 1571949fb116774a3784f1623809872559d14e06 SHA1 16a8913037eb7b664788ae67661750f336ba0520 SHA256 99b50667afb2fc20a1d12a568de9c63d9a0a4ab4497962fd48b9ef1dd0296a39
AUX 4.7.00.0640-2.6.14.patch 1122 RMD160 e6c7860c552548574987932029d0b8df1f4dd09b SHA1 04039e0f6715ab443805074c864c4120e76ca51b SHA256 5067e4f32875972b1b633cb15d9a635c3edcc3ea8f26b58e10b8e57b84803ec4
AUX 4.7.00.0640-2.6.22.patch 11658 RMD160 ee2fefab1a9dd10e62c13afb91b9656a754b4301 SHA1 aafd920f408b188ff0f8b65f362ab28186ba2b46 SHA256 2eec130f3f00d9eae019fd6236d4039a59197ec5626b8ac27f61205d72e11dba
+AUX 4.8.01.0640-2.6.24.patch 7352 RMD160 7c198f8ad7a52bc126ca280d86cc4bf2befdb1e1 SHA1 700020b695afb4279bd6ca89679802bf674f6e94 SHA256 45afb8f72caaff7c79e39c9854780504a4dcd09cb3ae5ccdf230fc318d1067fb
+AUX 4.8.01.0640-amd64.patch 4402 RMD160 02589b600bf1005ebf52900ae184a49994557b8e SHA1 225ea3e7eec243581032041fba192798b1e39147 SHA256 dc9853c106025ea506c6bba3d3f3d691971df06b971ce7b64ac30a6fb77582ac
AUX driver_build_CC.patch 547 RMD160 9de233256381d54c6168b0ce1bc5d84fe8048506 SHA1 352f32eac28165efd0de6f0b74694b62910df67f SHA256 4b32234c8a259cac99da8ec0aef0dff673558b1b198688b0fbcd5a712e54bfec
AUX vpnclient.rc 2318 RMD160 8d957f90366567ba755263dda232f1b26bbd5f67 SHA1 86ac5ddd34546796b4be4efe8a40bac628bac624 SHA256 a4ed3b575a7b5431895c2f01b68eede21adbf98555ff125bd3f131872a5cc792
DIST vpnclient-linux-4.6.02.0030-k9.tar.gz 1671443 RMD160 1024682f7e55737149587ab6601d279e6312d46d SHA1 2a0695a575aa9141dd703791619d386eed1c1d0d SHA256 b5129c738b754d2f3e59bff6af2861ddfd8b2c6a0ade69ca9404dee21f2c25fa
DIST vpnclient-linux-x86_64-4.6.03.0190-k9.tar.gz 1839683 RMD160 a4c099484bd85b4dcc2fa5584ce83a732f6ae847 SHA1 63bdb37e68ba91a0b91b355d40792aa962efa32f SHA256 5567d1254c395ddebf981deafa302b179393c1db2b2b0e5797aa2d10a94c7a2d
DIST vpnclient-linux-x86_64-4.7.00.0640-k9.tar.gz 2043002 RMD160 d237f79993536aa8604ad358d87281a767594d3e SHA1 224a6f6f72a1ad9b23767dcd437f1c15d3069a25 SHA256 7249cc6835db4b100d5551e1eeaacca18999c7af692e660e8e2787b60a074ff0
DIST vpnclient-linux-x86_64-4.8.00.0490-k9.tar.gz 2045213 RMD160 e38e5d937c9d47abb2484c052212cc02aaf84088 SHA1 d3fe2a0dd44c956ee66a51f0a7011b647e06dafb SHA256 cd9c3a73f9f818608b42edab534d7a75d6c5f01874eed012b05f9932a61f1287
+DIST vpnclient-linux-x86_64-4.8.01.0640-k9.tar.gz 2049006 RMD160 08f55f7a57082f9a99797f29e4b42772a9bf2af0 SHA1 e3085f14e446ad7eb7cf491b3e6818f29bc04630 SHA256 08d194a9ca5b77404c94f53da37d4e674f027e6eecd553ae6dccb3e90a976b0a
EBUILD cisco-vpnclient-3des-4.6.02.0030.ebuild 2681 RMD160 c42b35035a08c00ec10923fe78bcf20666e8c7a5 SHA1 5cc91857b835479753f7d51bdbf05a4249ff6a00 SHA256 23c0b6afdf4604ef1a033e7ca8fa0e876302d11b0c9884a3060e9a789d450984
EBUILD cisco-vpnclient-3des-4.6.03.0190-r1.ebuild 2243 RMD160 dfbadc8be22cab1cbab08100c7491f3add136138 SHA1 cf7b1b9d6e54f697f8a21ed73a9e9e5414794d07 SHA256 8d6a14215d5a7cc10ccc3ac22cfca55132c98d4fb9f3f1b85a50279811f4b290
EBUILD cisco-vpnclient-3des-4.7.00.0640-r1.ebuild 2283 RMD160 7f143807c2381553adf2e4caee52e21944036d17 SHA1 f895b1e7ae8d75abf6d3d2410a7c1660e80ae0ea SHA256 5939f8402b213c175f245b41cf740b81af570e13b9f91697b4613a31548e64ff
EBUILD cisco-vpnclient-3des-4.7.00.0640.ebuild 2273 RMD160 90af189a1bf8effd88cfaf6d3e07dc764ed1da13 SHA1 7f8d4bf416c37b94af8d98908debbd8c8bbd1f8c SHA256 1992d39efc92aa2df5e465ea1093ec62f5e9e9f43bee2bcb1d2d3060e56a7317
EBUILD cisco-vpnclient-3des-4.8.00.0490-r1.ebuild 2167 RMD160 2ab250b51e2083bb98f2605460fb2b8fb7ad6255 SHA1 0bd94f17df6823da2d47079b7234c79b699ee23d SHA256 1ad5c2f302f1667f8c988ccc20d1a4db90d94a7d8cd7570f474b2451b763d267
EBUILD cisco-vpnclient-3des-4.8.00.0490.ebuild 2131 RMD160 a4783083c30beaee1fb2df27abb01040b730a0f2 SHA1 e838f1025bdef27df1bd359f194896d9e63e5741 SHA256 e35aa6c68ec416cfaf0b4b7a2bac9227c17e078bb90e4285f7d7c19805c99148
-MISC ChangeLog 15065 RMD160 d57d9eed03eec6af0ddff30c16b9618342e425ad SHA1 34d1931e854377c609577750d26e48fe11904abf SHA256 89f2921dbe17ae2833706d351a0e222139ea66951b922e0829bc03200eb813d2
+EBUILD cisco-vpnclient-3des-4.8.01.0640.ebuild 2699 RMD160 42d20e8a2bdddae1212bcfa5d24f8208f89c7ba2 SHA1 d88d8e728456e0e496f23b10c9ebf843af8ccf42 SHA256 63baf1c59632cc74053e9ef0f2157adf44cf43fadaa84b4af3d0f94c351ae75c
+MISC ChangeLog 15379 RMD160 b18995628337154272b29da58077893b8668d722 SHA1 52773df5d70e9327c9d4808ce4a4fea2163d8a1f SHA256 b5644b08806841977ef11414cf495d64207f6dc8c0be82600e689aea3861a7cb
MISC metadata.xml 757 RMD160 60c81426ce38824eb2302520f55c204e6d35c4fe SHA1 170b258b21c5260d39f9b24151a85895c4557763 SHA256 51156c87787b5b5c034cf46843c2d09e15c6c889699ec6df47bf4760d116e01a
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.9 (GNU/Linux)
+
+iEYEARECAAYFAkhEXm4ACgkQkT4lNIS36YHn0gCffSAXXSK+9WOjK73y5q/N/wbY
+XT0AoJTY1uBeeU/FoGDb7NgC10P3VIxM
+=sXWy
+-----END PGP SIGNATURE-----
diff --git a/net-misc/cisco-vpnclient-3des/cisco-vpnclient-3des-4.8.01.0640.ebuild b/net-misc/cisco-vpnclient-3des/cisco-vpnclient-3des-4.8.01.0640.ebuild
new file mode 100644
index 000000000000..d36f4620440d
--- /dev/null
+++ b/net-misc/cisco-vpnclient-3des/cisco-vpnclient-3des-4.8.01.0640.ebuild
@@ -0,0 +1,109 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/cisco-vpnclient-3des/cisco-vpnclient-3des-4.8.01.0640.ebuild,v 1.1 2008/06/02 20:55:58 wolf31o2 Exp $
+
+inherit eutils linux-mod
+
+MY_PV=${PV}-k9
+TARBALL="vpnclient-linux-x86_64-${MY_PV}.tar.gz"
+
+DESCRIPTION="Cisco VPN Client (3DES)"
+HOMEPAGE="http://cco.cisco.com/en/US/products/sw/secursw/ps2308/index.html"
+#SRC_URI="vpnclient-linux-x86_64-${MY_PV}.tar.gz"
+SRC_URI="http://tuxx-home.at/vpn/Linux/${TARBALL}"
+
+LICENSE="cisco-vpn-client"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~x86"
+IUSE=""
+RESTRICT="strip"
+
+S=${WORKDIR}/vpnclient
+
+VPNDIR="/opt/cisco-vpnclient"
+CFGDIR="/etc/${VPNDIR}"
+OLDCFG="/etc/CiscoSystemsVPNClient"
+
+QA_TEXTRELS="${VPNDIR:1}/lib/libvpnapi.so"
+QA_EXECSTACK="${VPNDIR:1}/lib/libvpnapi.so
+ ${VPNDIR:1}/bin/vpnclient
+ ${VPNDIR:1}/bin/cvpnd
+ ${VPNDIR:1}/bin/cisco_cert_mgr
+ ${VPNDIR:1}/bin/ipseclog"
+
+MODULE_NAMES="cisco_ipsec(CiscoVPN)"
+BUILD_TARGETS="clean default"
+
+#pkg_nofetch() {
+# einfo "Please visit:"
+# einfo " ${HOMEPAGE}"
+# einfo "and download ${A} to ${DISTDIR}"
+#}
+
+src_unpack () {
+ unpack ${A}
+ cd "${S}"
+
+ epatch "${FILESDIR}"/${PV}-amd64.patch
+ epatch "${FILESDIR}"/${PV}-2.6.24.patch
+}
+
+src_install() {
+ linux-mod_src_install
+# newinitd ${FILESDIR}/vpnclient.rc vpnclient
+
+ # Binaries
+ binaries="vpnclient ipseclog cisco_cert_mgr"
+ exeinto /opt/cisco-vpnclient/bin
+ exeopts -m0111
+ doexe ${binaries}
+ exeopts -m4111
+ doexe cvpnd
+ # Libraries
+ insinto /opt/cisco-vpnclient/lib
+ doins libvpnapi.so
+ # Includes
+ insinto /opt/cisco-vpnclient/include
+ doins vpnapi.h
+
+ # Configuration files/profiles/etc
+ insinto ${CFGDIR}
+ doins vpnclient.ini
+ insinto ${CFGDIR}/Profiles
+ doins *.pcf
+ dodir ${CFGDIR}/Certificates
+
+ # Make sure we keep these, even if they're empty.
+ keepdir ${CFGDIR}/Certificates
+ keepdir ${CFGDIR}/Profiles
+
+ # Create some symlinks
+ dodir /usr/bin
+ for filename in ${binaries}
+ do
+ dosym ${VPNDIR}/bin/${filename} /usr/bin/${filename}
+ done
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+ if [ -e "${OLDCFG}" ]
+ then
+ elog "Found an old ${OLDCFG} configuration directory."
+ elog "Moving ${OLDCFG} files to ${CFGDIR}."
+ cp -pPR ${OLDCFG}/* ${CFGDIR} && rm -f ${OLDCFG}
+ fi
+ if [ -e "/etc/init.d/vpnclient" ]
+ then
+ elog "Removing /etc/init.d/vpnclient, which is no longer needed."
+ rm -f /etc/init.d/vpnclient
+ fi
+ runlevels=`rc-update show | grep vpnclient | cut -d\| -f2`
+ if [ -n "$runlevels" ]
+ then
+ elog "Removing 'vpnclient' from all runlevels."
+ rc-update del vpnclient
+ fi
+ elog "You will need to load the cisco_ipsec module before using the Cisco"
+ elog "VPN Client (vpnclient) application."
+}
diff --git a/net-misc/cisco-vpnclient-3des/files/4.8.01.0640-2.6.24.patch b/net-misc/cisco-vpnclient-3des/files/4.8.01.0640-2.6.24.patch
new file mode 100644
index 000000000000..15402881341e
--- /dev/null
+++ b/net-misc/cisco-vpnclient-3des/files/4.8.01.0640-2.6.24.patch
@@ -0,0 +1,241 @@
+diff -r 469eaa76099e GenDefs.h
+--- a/GenDefs.h Mon Apr 28 10:40:53 2008 +0200
++++ b/GenDefs.h Mon Apr 28 10:47:51 2008 +0200
+@@ -105,6 +105,12 @@ typedef int32 intptr_t;
+ #define _INTPTR_T_DEFINED
+ #endif
+
++/* uintptr_t has been defined in include/linux/types.h in 2.6.24.
++ * No need to define it here again (will only lead to compile errors)
++ *
++ * by Alexander Griesser <work@tuxx-home.at>, 2008-01-11
++ */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
+ #ifndef _UINTPTR_T_DEFINED
+ #if defined(_LP64)
+ #warning 64 bit
+@@ -113,6 +119,7 @@ typedef uint32 uintptr_t;
+ typedef uint32 uintptr_t;
+ #endif
+ #define _UINTPTR_T_DEFINED
++#endif
+ #endif
+
+
+diff -r 469eaa76099e Makefile
+--- a/Makefile Mon Apr 28 10:40:53 2008 +0200
++++ b/Makefile Mon Apr 28 10:47:51 2008 +0200
+@@ -12,7 +12,7 @@ SOURCE_OBJS := linuxcniapi.o frag.o IPSe
+ SOURCE_OBJS := linuxcniapi.o frag.o IPSecDrvOS_linux.o interceptor.o linuxkernelapi.o
+
+ ifeq ($(SUBARCH),x86_64)
+-CFLAGS += -mcmodel=kernel -mno-red-zone
++EXTRA_CFLAGS += -mcmodel=kernel -mno-red-zone
+ NO_SOURCE_OBJS := libdriver64.so
+ else
+ NO_SOURCE_OBJS := libdriver.so
+diff -r 469eaa76099e interceptor.c
+--- a/interceptor.c Mon Apr 28 10:40:53 2008 +0200
++++ b/interceptor.c Mon Apr 28 10:47:51 2008 +0200
+@@ -28,6 +28,10 @@
+ #include <linux/udp.h>
+ #include <net/protocol.h>
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
++#include <net/net_namespace.h>
++#endif
++
+ #include "linux_os.h"
+
+ #include "vpn_ioctl_linux.h"
+@@ -39,7 +43,7 @@
+
+ static uint8_t interceptor_eth_addr[] = { 0x00, 0x0b, 0xfc, 0xf8, 0x01, 0x8f };
+
+-// packet statistics
++// packet statistics
+ static unsigned long tx_packets;
+ static unsigned long tx_dropped;
+ static unsigned long tx_bytes;
+@@ -48,7 +52,13 @@ unsigned long rx_bytes;
+ unsigned long rx_bytes;
+
+ /*methods of the cipsec network device*/
+-static int interceptor_init(struct net_device *);
++static
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
++void
++#else
++int
++#endif
++interceptor_init(struct net_device *);
+ static struct net_device_stats *interceptor_stats(struct net_device *dev);
+ static int interceptor_ioctl(struct net_device *dev, struct ifreq *ifr,
+ int cmd);
+@@ -82,12 +92,12 @@ struct packet_type_funcs
+ {
+ struct packet_type *pt;
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14)
+- int (*orig_handler_func) (struct sk_buff *,
++ int (*orig_handler_func) (struct sk_buff *,
+ struct net_device *,
+ struct packet_type *,
+ struct net_device *);
+ #else
+- int (*orig_handler_func) (struct sk_buff *,
++ int (*orig_handler_func) (struct sk_buff *,
+ struct net_device *,
+ struct packet_type *);
+ #endif
+@@ -107,16 +117,30 @@ static char interceptor_name[] = LINUX_V
+
+ BINDING Bindings[MAX_INTERFACES];
+
++/* 2.6.24 handles net_devices a little bit different
++ *
++ * by Alexander Griesser <work@tuxx-home.at>, 2008-01-11
++ */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
++static struct net_device* interceptor_dev;
++#else
+ static struct net_device interceptor_dev = {
+ .name = interceptor_name,
+ .init = interceptor_init
+ };
++#endif
++
+ static struct notifier_block interceptor_notifier = {
+ .notifier_call = handle_netdev_event,
+ };
+
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
+-static int
++static
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
++void
++#else
++int
++#endif
+ #else
+ static int __init
+ #endif
+@@ -133,8 +157,9 @@ interceptor_init(struct net_device *dev)
+ dev->flags |= IFF_NOARP;
+ dev->flags &= ~(IFF_BROADCAST | IFF_MULTICAST);
+ kernel_memset(dev->broadcast, 0xFF, ETH_ALEN);
+-
+- return 0;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
++ return 0;
++#endif
+ }
+
+ static struct net_device_stats *
+@@ -270,7 +295,7 @@ add_netdev(struct net_device *dev)
+ Bindings[i].InjectReceive = original_ip_handler.orig_handler_func;
+ Bindings[i].pPT = original_ip_handler.pt;
+
+- rc = 0;
++ rc = 0;
+
+ exit_gracefully:
+ return rc;
+@@ -284,7 +309,7 @@ remove_netdev(struct net_device *dev)
+ b = getbindingbydev(dev);
+
+ if (b)
+- {
++ {
+ rc = 0;
+ dev->hard_start_xmit = b->InjectSend;
+ kernel_memset(b, 0, sizeof(BINDING));
+@@ -326,7 +351,7 @@ handle_vpnup(void)
+ }
+ /* find the handler for inbound IP packets by adding a dummy handler
+ * for that packet type into the kernel. Because the packet handlers
+- * are stored in a hash table, we'll be able to pull the original
++ * are stored in a hash table, we'll be able to pull the original
+ * ip packet handler out of the list that dummy_pt was inserted into.*/
+ kernel_memset(&dummy_pt, 0, sizeof(dummy_pt));
+ dummy_pt.type = htons(ETH_P_IP);
+@@ -363,7 +388,11 @@ handle_vpnup(void)
+ dp = NULL;
+ num_target_devices = 0;
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
+- for_each_netdev(dp)
++ for_each_netdev(
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
++ &init_net,
++#endif
++ dp)
+ #else
+ for (dp = dev_base; dp != NULL; dp = dp->next)
+ #endif
+@@ -494,7 +523,7 @@ getbindingbydev(struct net_device *dev)
+ getbindingbydev(struct net_device *dev)
+ {
+ int i;
+-
++
+ for (i=0; i <= MAX_INTERFACES; i++)
+ {
+ BINDING *b = &Bindings[i];
+@@ -522,13 +551,13 @@ build_ppp_fake_mac_frag(struct ethhdr *d
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14)
+ static int
+ recv_ip_packet_handler(struct sk_buff *skb,
+- struct net_device *dev,
++ struct net_device *dev,
+ struct packet_type *type,
+ struct net_device *orig_dev)
+ #else
+ static int
+ recv_ip_packet_handler(struct sk_buff *skb,
+- struct net_device *dev,
++ struct net_device *dev,
+ struct packet_type *type)
+ #endif
+ {
+@@ -932,15 +961,29 @@ interceptor_mod_init(void)
+
+ rc = CniPluginLoad(&pcDeviceName, &PCNICallbackTable);
+
++/* 2.6.24 needs to allocate each netdevice before registering it, otherwise
++ * the kernel BUG()s.
++ *
++ * by Alexander Griesser <work@tuxx-home.at>, 2008-01-11
++ */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
++ if(! (interceptor_dev = alloc_netdev(sizeof(struct net_device), interceptor_name, interceptor_init)))
++ return 0;
++#endif
++
+ if (CNI_IS_SUCCESS(rc))
+ {
+
+ CNICallbackTable = *PCNICallbackTable;
+ CniPluginDeviceCreated();
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
++ if ((status = register_netdev(interceptor_dev)) != 0)
++#else
+ if ((status = register_netdev(&interceptor_dev)) != 0)
++#endif
+ {
+ printk(KERN_INFO "%s: error %d registering device \"%s\".\n",
+- LINUX_VPN_IFNAME, status, interceptor_dev.name);
++ LINUX_VPN_IFNAME, status, interceptor_name);
+ CniPluginUnload();
+
+ }
+@@ -960,7 +1003,11 @@ interceptor_mod_cleanup(void)
+ cleanup_frag_queue();
+ CniPluginUnload();
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
++ unregister_netdev(interceptor_dev);
++#else
+ unregister_netdev(&interceptor_dev);
++#endif
+ unregister_netdevice_notifier(&interceptor_notifier);
+
+ return;
diff --git a/net-misc/cisco-vpnclient-3des/files/4.8.01.0640-amd64.patch b/net-misc/cisco-vpnclient-3des/files/4.8.01.0640-amd64.patch
new file mode 100644
index 000000000000..015dc7b37311
--- /dev/null
+++ b/net-misc/cisco-vpnclient-3des/files/4.8.01.0640-amd64.patch
@@ -0,0 +1,116 @@
+diff -u -x '*.ko*' -x '*.o*' vpnclient/frag.c vpnclient_modified/frag.c
+--- vpnclient/frag.c 2007-08-22 15:30:31.000000000 -0400
++++ vpnclient_modified/frag.c 2008-01-11 01:41:19.000000000 -0500
+@@ -22,7 +22,11 @@
+ #include "frag.h"
+
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
++#ifdef NET_SKBUFF_DATA_USES_OFFSET
++#define SKB_IPHDR(skb) ((struct iphdr*)(skb->head + skb->network_header))
++#else
+ #define SKB_IPHDR(skb) ((struct iphdr*)skb->network_header)
++#endif
+ #else
+ #define SKB_IPHDR(skb) skb->nh.iph
+ #endif
+diff -u -x '*.ko*' -x '*.o*' vpnclient/interceptor.c vpnclient_modified/interceptor.c
+--- vpnclient/interceptor.c 2007-08-22 15:30:31.000000000 -0400
++++ vpnclient_modified/interceptor.c 2008-01-11 02:04:01.000000000 -0500
+@@ -636,7 +636,11 @@
+ #endif
+ {
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
++ #ifdef NET_SKBUFF_DATA_USES_OFFSET
++ hard_header_len = skb->data - (skb->head + skb->mac_header);
++ #else
+ hard_header_len = skb->data - skb->mac_header;
++ #endif
+ #else
+ hard_header_len = skb->data - skb->mac.raw;
+ #endif
+@@ -657,7 +661,11 @@
+ {
+ case ETH_HLEN:
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
++ #ifdef NET_SKBUFF_DATA_USES_OFFSET
++ CniNewFragment(ETH_HLEN, skb->head + skb->mac_header, &MacHdr, CNI_USE_BUFFER);
++ #else
+ CniNewFragment(ETH_HLEN, skb->mac_header, &MacHdr, CNI_USE_BUFFER);
++ #endif
+ #else
+ CniNewFragment(ETH_HLEN, skb->mac.raw, &MacHdr, CNI_USE_BUFFER);
+ #endif
+@@ -667,7 +675,7 @@
+ MacHdr = build_ppp_fake_mac_frag(&ppp_dummy_buf);
+ break;
+ default:
+- printk(KERN_DEBUG "unknown mac header length (%d)\n", hard_header_len);
++ printk(KERN_DEBUG "unknown mac header length (%d) CniNewFragment\n", hard_header_len);
+ dev_kfree_skb(skb);
+ skb = NULL;
+ goto exit_gracefully;
+@@ -775,7 +783,12 @@
+ #endif //LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
+ reset_inject_status(&pBinding->send_stat);
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
+- hard_header_len = skb->network_header - skb->data;
++ #ifdef NET_SKBUFF_DATA_USES_OFFSET
++ hard_header_len =
++ (skb->head + skb->network_header) - skb->data;
++ #else
++ hard_header_len = skb->network_header - skb->data;
++ #endif
+ #else
+ hard_header_len = skb->nh.raw - skb->data;
+ #endif
+diff -u -x '*.ko*' -x '*.o*' vpnclient/linuxcniapi.c vpnclient_modified/linuxcniapi.c
+--- vpnclient/linuxcniapi.c 2007-08-22 15:30:31.000000000 -0400
++++ vpnclient_modified/linuxcniapi.c 2008-01-11 01:41:19.000000000 -0500
+@@ -338,8 +338,13 @@
+ skb->ip_summed = CHECKSUM_UNNECESSARY;
+
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
+- skb->network_header = (sk_buff_data_t) skb->data;
+- skb->mac_header = (sk_buff_data_t)pMac;
++ #ifdef NET_SKBUFF_DATA_USES_OFFSET
++ skb->network_header = (sk_buff_data_t) (skb->data - skb->head);
++ skb->mac_header = (sk_buff_data_t) (pMac - skb->head);
++ #else
++ skb->network_header = (sk_buff_data_t) skb->data;
++ skb->mac_header = (sk_buff_data_t)pMac;
++ #endif
+ #else
+ skb->nh.iph = (struct iphdr *) skb->data;
+ skb->mac.raw = pMac;
+@@ -478,8 +483,13 @@
+ skb->dev = pBinding->pDevice;
+
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
+- skb->mac_header = (sk_buff_data_t)pMac;
+- skb->network_header = (sk_buff_data_t)pIP;
++ #ifdef NET_SKBUFF_DATA_USES_OFFSET
++ skb->mac_header = (sk_buff_data_t)(pMac - skb->head);
++ skb->network_header = (sk_buff_data_t)(pIP - skb->head);
++ #else
++ skb->mac_header = (sk_buff_data_t)pMac;
++ skb->network_header = (sk_buff_data_t)pIP;
++ #endif
+ #else
+ skb->mac.raw = pMac;
+ skb->nh.raw = pIP;
+@@ -487,8 +497,13 @@
+
+ /*ip header length is in 32bit words */
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
+- skb->transport_header = (sk_buff_data_t)
+- (pIP + (((struct iphdr*)(skb->network_header))->ihl * 4));
++ #ifdef NET_SKBUFF_DATA_USES_OFFSET
++ skb->transport_header = (sk_buff_data_t)
++ ((pIP + (((struct iphdr*)(skb->head + skb->network_header))->ihl * 4)) - skb->head);
++ #else
++ skb->transport_header = (sk_buff_data_t)
++ (pIP + (((struct iphdr*)(skb->network_header))->ihl * 4));
++ #endif
+ #else
+ skb->h.raw = pIP + (skb->nh.iph->ihl * 4);
+ #endif