add samba client

git-svn-id: https://svn.disconnected-by-peer.at/svn/linamh/trunk/linamh@1718 6952d904-891a-0410-993b-d76249ca496b
This commit is contained in:
geos_one 2009-12-21 18:36:54 +00:00
parent 347f4ca131
commit 05ad5cc496
29 changed files with 2506 additions and 0 deletions

View File

@ -1,4 +1,6 @@
DIST libopensync-plugin-evolution2-0.38.tar.bz2 38701 RMD160 1a64871a210918a63557c95b2c5fabc6f0aebdc5 SHA1 07d1f03ab7d85f752d9bb6be0986a5d9ccbbe061 SHA256 4c15996532e1f857f054639c6acecaa33d85e6efa71a5d12d3567c3492806bd8
DIST libopensync-plugin-evolution2-0.39.tar.bz2 56343 RMD160 06a593c1a2d4def6a2802787a6e36a2ee1a571c8 SHA1 dd95896a9083b108b7da78edce036356363c66ff SHA256 adcfd43850604b0437c408fa588123700f43528438a86f275922f56c74d855aa
EBUILD libopensync-plugin-evolution2-0.38.ebuild 589 RMD160 6fbcce734042684528caf9d3860ae266a48a12b2 SHA1 fe0e48002b6fa11f48a01a725a84ab64738966b0 SHA256 d14243d445b7900664a69b48fd69fe8a73e3d14721caf3753af8465f652d12e3
EBUILD libopensync-plugin-evolution2-0.39.ebuild 589 RMD160 6fbcce734042684528caf9d3860ae266a48a12b2 SHA1 fe0e48002b6fa11f48a01a725a84ab64738966b0 SHA256 d14243d445b7900664a69b48fd69fe8a73e3d14721caf3753af8465f652d12e3
MISC ChangeLog 1869 RMD160 171424486ff149cb04ceebbee56ec8927b0ceb18 SHA1 eaed87a9ba843b7aba0fc6176d7d7b4ccaa1aecc SHA256 5d9e3412eef081cca9f0ceb598e25997bfec4f35b935bac008d023fccbf91bc0
MISC metadata.xml 304 RMD160 1da32fded95735800bc96b0ff4c0a3af4691a724 SHA1 b96c72c417192c099990a616b12a1d2f55a06064 SHA256 7fa8df0f64197f3f6c018ed0d6c4cc4da014fbcc9af2da9b633f71657470236a

View File

@ -0,0 +1,18 @@
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-pda/libopensync-plugin-evolution2/libopensync-plugin-evolution2-0.36.ebuild,v 1.1 2008/01/27 17:42:03 peper Exp $
inherit cmake-utils
DESCRIPTION="OpenSync Evolution 2 Plugin"
HOMEPAGE="http://www.opensync.org/"
SRC_URI="http://www.opensync.org/download/releases/${PV}/${P}.tar.bz2"
KEYWORDS="~amd64 ~ppc ~x86"
SLOT="0"
LICENSE="LGPL-2.1"
IUSE=""
DEPEND=">=app-pda/libopensync-${PV}
gnome-extra/evolution-data-server"
RDEPEND="${DEPEND}"

View File

@ -1,5 +1,7 @@
AUX libopensync-0.22-fbsd.patch 981 RMD160 32336ef24c3f7c093db6fe550061cba3a2d9baad SHA1 4408b9c05a649e0be8a96505dcaefd4ce52df2f5 SHA256 49089d7e784a5c0f7f2566880db6d266162c1661e35308d6077ea68a23ba78a6
DIST libopensync-0.38.tar.bz2 1029341 RMD160 1d0d0bc5c66b919a42cc27fab8aaeea46e86bc0e SHA1 b07f26276b12d319d3b9b3af85ba1ce099777bb4 SHA256 a3176ddeeb50e327de32c91ca8419657f9496badbe74531f40c32e5bcba7fdb6
DIST libopensync-0.39.tar.bz2 1146955 RMD160 2124c2d65d75811f021437383f3385df9c954328 SHA1 3d97732675aa874da49cca0f8d6de6f004f2a416 SHA256 078f5d1d29774a190679e7e65e587f34cd8b001f07ea8745f31eba3f07edc430
EBUILD libopensync-0.38.ebuild 2046 RMD160 f4d143fd4c60b1a09b40a90844512fc2f4ce41d0 SHA1 5cc9527200114acfea87ac109e5f8e068340ca0b SHA256 49ae5ca6a7d40810496af090dbb7b46452881a0636f39ffe5b01822de09d6902
EBUILD libopensync-0.39.ebuild 2046 RMD160 f4d143fd4c60b1a09b40a90844512fc2f4ce41d0 SHA1 5cc9527200114acfea87ac109e5f8e068340ca0b SHA256 49ae5ca6a7d40810496af090dbb7b46452881a0636f39ffe5b01822de09d6902
MISC ChangeLog 3747 RMD160 f62719e1117dcbe8499ff1824153660b95edcf5a SHA1 f690f9247cf63c2ca7d8f844fc28f7857db6aeda SHA256 97f793dda698f84d294534e5ef8cbff2b374e6bb49c3a497e1668a42fb7aff38
MISC metadata.xml 304 RMD160 1da32fded95735800bc96b0ff4c0a3af4691a724 SHA1 b96c72c417192c099990a616b12a1d2f55a06064 SHA256 7fa8df0f64197f3f6c018ed0d6c4cc4da014fbcc9af2da9b633f71657470236a

View File

@ -0,0 +1,72 @@
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-pda/libopensync/libopensync-0.36.ebuild,v 1.2 2008/04/20 17:07:42 flameeyes Exp $
inherit cmake-utils eutils
DESCRIPTION="OpenSync synchronisation framework library"
HOMEPAGE="http://www.opensync.org/"
SRC_URI="http://www.opensync.org/download/releases/${PV}/${P}.tar.bz2"
KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
SLOT="0"
LICENSE="LGPL-2.1"
IUSE="debug doc python"
# Tests don't pass
#>=dev-libs/check-0.9.2
#mycmakeargs="${mycmakeargs} -DOPENSYNC_UNITTESTS=ON"
RESTRICT="test"
RDEPEND=">=dev-db/sqlite-3
>=dev-libs/glib-2
dev-libs/libxml2
python? ( >=dev-lang/python-2.2 )"
DEPEND="${RDEPEND}
python? ( >=dev-lang/swig-1.3.17 )
>=dev-util/cmake-2.4.7
>=dev-util/pkgconfig-0.9.0
doc? ( app-doc/doxygen )"
src_compile() {
local mycmakeargs
mycmakeargs="${mycmakeargs} -DCMAKE_SKIP_RPATH=ON"
mycmakeargs="${mycmakeargs} -DOPENSYNC_TRACE=$(use debug && echo ON || echo OFF)"
mycmakeargs="${mycmakeargs} -DOPENSYNC_DEBUG_MODULES=$(use debug && echo ON || echo OFF)"
mycmakeargs="${mycmakeargs} -DOPENSYNC_PYTHONBINDINGS=$(use python && echo ON || echo OFF)"
mycmakeargs="${mycmakeargs} -DBUILD_DOCUMENTATION=$(use doc && echo ON || echo OFF)"
cmake-utils_src_compile
if use doc ; then
cd "${WORKDIR}/${PN}_build"
doxygen Doxyfile || die "Failed to generate docs."
fi
}
src_test() {
echo ">>> Test phase [test]: ${CATEGORY}/${PF}"
pushd "${WORKDIR}/${PN}_build" > /dev/null
if ! LD_LIBRARY_PATH="${WORKDIR}/${PN}_build/opensync/" emake -j1 test ; then
die "Make test failed. See above for details."
fi
popd > /dev/null
}
src_install() {
cmake-utils_src_install
if use doc ; then
cd "${WORKDIR}/${PN}_build"
dohtml docs/html/* || die "Failed to install docs."
fi
}
pkg_postinst() {
elog "Building with 'debug' useflag is highly encouraged"
elog "and requiered for bug reports."
elog "Also see http://www.opensync.org/wiki/tracing"
}

View File

@ -0,0 +1,9 @@
AUX samba-3.4.2-add-zlib-linking.patch 514 RMD160 cf753a11cbc46beb363d060f1326c217de4ea127 SHA1 a541097311deb8ce1ad128ef28198f74f06b667a SHA256 671b675a98afa12aa5e44934891de2d51be55e20595e119e047b11ed3e7038e4
AUX samba-3.4.2-fix-samba4-automake.patch 1301 RMD160 b72df0fbfff15ce5b9f4f5b89860432ac73442c0 SHA1 7e6bd8a7320472e8b03012f06634c534091cac0a SHA256 8254a2219651afb7884c4dd1297a94ed0f376fe26805058bd7a5d12edf236718
AUX samba-3.4.2-insert-AC_LD_VERSIONSCRIPT.patch 731 RMD160 648d6f3b78398490ba5da6716ec7e52b41ee236e SHA1 425aa9fa18c9431df4d57768345c80dabc1be5c2 SHA256 7b5ec60126e84957b410c7b0472cc01115c42f213c88b300d1516c616f39de02
AUX samba-3.4.2-lib.tevent.python.mk 177 RMD160 3ed0264790f5ce15106528cd485c83611f6ebeb5 SHA1 ab048fb7ba236621d82cc305ce85d129d38d32a8 SHA256 3eab52d42a0cbc070d011a131f9a56f4b3da10b2791fec514948fd8d2d013153
AUX samba-3.4.2-missing_includes.patch 293 RMD160 e32b75ddc4a35f20173db731681eaef837acbc06 SHA1 c8a2b17dca84ca94eef39870d4af018d5e75c76a SHA256 75e6913172a06af3776372ddcc46e734eb960597aa84856ff8c0c2f885b5f260
AUX samba-3.4.2-upgrade-tevent-version.patch 288 RMD160 3eb9bbd781d4a92e844ff36824b75f6345c11a97 SHA1 6eec152408b8c18459a7d9413134bc37a6d52b63 SHA256 9171d875322387e7b4f4905067d9310da8e82e9c17cc7d0f0df7d163cffbf414
AUX samba-3.4.3-cifs_upcall_c.patch 1630 RMD160 3ae405c1875963e720c7ea6c555877b8d89ee986 SHA1 fb1d0ef094faa7c16b0f4a5fe529f3f3ce0a0018 SHA256 0ce57dc8a766a7d765e1d4124042f72328ad3359931c536c7d348a658e1c8043
DIST samba-3.4.3.tar.gz 34989194 RMD160 5175848b36df04e52bc9ba17302bc3042d493383 SHA1 cad244c5334e6a2b46172910944a899a82f3ef4a SHA256 20bedee9dc72b3081b36f760cfbbcb47a6c8817cffab7dc46131b109585aceff
EBUILD samba-client-3.4.3.ebuild 6955 RMD160 a063f8cd565e36484b9c64b8e4c3b1363ec1d8d8 SHA1 2a760d113e2cd37198ddc53e3c16d53f9387dff8 SHA256 afda543f2cd4182c63a2fb6ef395224472dfb3fd0eb217ba378bc9b7b420a171

View File

@ -0,0 +1,11 @@
--- source3/Makefile.in.orig 2009-09-30 14:17:40.000000000 +0200
+++ source3/Makefile.in 2009-10-07 10:11:56.090719799 +0200
@@ -1470,7 +1470,7 @@
@$(CC) -o $@ $(CIFS_UPCALL_OBJ) $(DYNEXP) $(LDFLAGS) \
$(LIBSMBCLIENT_OBJ1) $(LIBS) -lkeyutils $(KRB5LIBS) \
$(LDAP_LIBS) $(LIBTALLOC_LIBS) $(LIBWBCLIENT_LIBS) \
- $(LIBTDB_LIBS) $(NSCD_LIBS)
+ $(LIBTDB_LIBS) $(NSCD_LIBS) $(ZLIB_LIBS)
bin/testparm@EXEEXT@: $(BINARY_PREREQS) $(TESTPARM_OBJ) @BUILD_POPT@ @LIBTALLOC_TARGET@ @LIBTDB_TARGET@
@echo Linking $@

View File

@ -0,0 +1,36 @@
--- source4/build/m4/public.m4.org 2009-09-30 14:17:40.000000000 +0200
+++ source4/build/m4/public.m4 2009-10-07 08:42:10.000000000 +0200
@@ -86,10 +86,10 @@
if $PKG_CONFIG --atleast-pkgconfig-version $SAMBA_PKG_CONFIG_MIN_VERSION; then
AC_MSG_CHECKING(for $2)
- if $PKG_CONFIG --exists '$2' ; then
+ if $PKG_CONFIG --exists "$2" ; then
AC_MSG_RESULT(yes)
- $1_CFLAGS="`$PKG_CONFIG --cflags '$2'`"
+ $1_CFLAGS="`$PKG_CONFIG --cflags \"$2\"`"
OLD_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $$1_CFLAGS"
AC_MSG_CHECKING([that the C compiler can use the $1_CFLAGS])
@@ -101,15 +101,15 @@
CFLAGS="$OLD_CFLAGS"
SMB_EXT_LIB($1,
- [`$PKG_CONFIG --libs-only-l '$2'`],
- [`$PKG_CONFIG --cflags-only-other '$2'`],
- [`$PKG_CONFIG --cflags-only-I '$2'`],
- [`$PKG_CONFIG --libs-only-other '$2'` `$PKG_CONFIG --libs-only-L '$2'`])
+ [`$PKG_CONFIG --libs-only-l "$2"`],
+ [`$PKG_CONFIG --cflags-only-other "$2"`],
+ [`$PKG_CONFIG --cflags-only-I "$2"`],
+ [`$PKG_CONFIG --libs-only-other "$2"` `$PKG_CONFIG --libs-only-L "$2"`])
ac_cv_$1_found=yes
else
AC_MSG_RESULT(no)
- $PKG_CONFIG --errors-to-stdout --print-errors '$2'
+ $PKG_CONFIG --errors-to-stdout --print-errors "$2"
ac_cv_$1_found=no
fi
else

View File

@ -0,0 +1,25 @@
--- lib/replace/libreplace_ld.m4.orig 2009-09-30 14:17:40.000000000 +0200
+++ lib/replace/libreplace_ld.m4 2009-10-07 02:07:26.000000000 +0200
@@ -249,6 +249,22 @@
esac
])
+AC_DEFUN([AC_LD_VERSIONSCRIPT],
+[
+ AC_SUBST(VERSIONSCRIPT)
+ VERSIONSCRIPT=""
+ case "$host_os" in
+ *linux*|*gnu*)
+ VERSIONSCRIPT="-Wl,--version-script"
+ ;;
+ *solaris*)
+ if test "${GCC}" = "yes"; then
+ VERSIONSCRIPT="-Wl,--version-script"
+ fi
+ ;;
+ esac
+])
+
AC_DEFUN([AC_LIBREPLACE_MDLD],
[
AC_REQUIRE([AC_LIBREPLACE_LD_SHLIB_LINKER])

View File

@ -0,0 +1,6 @@
[PYTHON::pytevent]
LIBRARY_REALNAME = tevent.$(SHLIBEXT)
PRIVATE_DEPENDENCIES = LIBTEVENT PYTALLOC LIBSAMBA-UTIL LIBREPLACE
pytevent_OBJ_FILES = $(libteventsrcdir)/pytevent.o

View File

@ -0,0 +1,10 @@
--- source3/client/mtab.c.orig 2009-03-23 09:33:48.339895132 +0100
+++ source3/client/mtab.c 2009-03-23 09:33:58.159797512 +0100
@@ -32,6 +32,7 @@
#include <errno.h>
#include <stdio.h>
#include <sys/time.h>
+#include <sys/stat.h>
#include <time.h>
#include <fcntl.h>
#include <mntent.h>

View File

@ -0,0 +1,8 @@
--- source4/min_versions.m4.orig 2009-09-30 14:17:40.000000000 +0200
+++ source4/min_versions.m4 2009-10-07 10:01:14.478984106 +0200
@@ -3,4 +3,4 @@
TDB_MIN_VERSION=1.1.3
TALLOC_MIN_VERSION=1.3.0
LDB_REQUIRED_VERSION=0.9.3
-TEVENT_REQUIRED_VERSION=0.9.6
+TEVENT_REQUIRED_VERSION=0.9.8

View File

@ -0,0 +1,55 @@
--- source3/client/cifs.upcall.c.orig 2009-10-29 08:47:16.000000000 +0100
+++ source3/client/cifs.upcall.c 2009-11-03 10:52:37.000000000 +0100
@@ -31,6 +31,9 @@
#include "cifs_spnego.h"
+// defined in heimdal appl/dceutils/k5dce.h
+#define KRB5_TC_OPENCLOSE 0x00000001
+
#define CIFS_DEFAULT_KRB5_DIR "/tmp"
#define CIFS_DEFAULT_KRB5_PREFIX "krb5cc_"
@@ -45,14 +48,24 @@
} sectype_t;
static inline int
-k5_data_equal(krb5_data d1, krb5_data d2, unsigned int length)
+k5_realm_equal(Realm d1, Realm d2)
+{
+ int len1 = length_Realm(&d1);
+ int len2 = length_Realm(&d2);
+
+ return (len1 == len2 &&
+ memcmp(d1, d2, len1) == 0);
+}
+
+static inline int
+k5_name_equal(PrincipalName d1, krb5_data d2, unsigned int length)
{
if (!length)
- length = d1.length;
+ length = d1.name_string.len;
- return (d1.length == length &&
- d1.length == d2.length &&
- memcmp(d1.data, d2.data, length) == 0);
+ return (d1.name_string.len == length &&
+ d1.name_string.len == d2.length &&
+ memcmp(d1.name_string.val, d2.data, length) == 0);
}
@@ -94,9 +107,9 @@
}
while (!credtime && !krb5_cc_next_cred(context, ccache, &cur, &creds)) {
- if (k5_data_equal(creds.server->realm, principal->realm, 0) &&
- k5_data_equal(creds.server->data[0], tgt, tgt.length) &&
- k5_data_equal(creds.server->data[1], principal->realm, 0) &&
+
+ if (k5_realm_equal(creds.server->realm, principal->realm) &&
+ k5_name_equal(creds.server->name, tgt, tgt.length) &&
creds.times.endtime > time(NULL))
credtime = creds.times.endtime;
krb5_free_cred_contents(context, &creds);

View File

@ -0,0 +1,205 @@
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-fs/samba-client/samba-client-3.4.3.ebuild,v 1.2 2009/11/08 03:34:46 josejx Exp $
EAPI="2"
inherit pam confutils versionator multilib eutils toolchain-funcs autotools
MY_P="samba-${PV}"
DESCRIPTION="Client bits of the samba network filesystem"
HOMEPAGE="http://www.samba.org/"
SRC_URI="mirror://samba/${MY_P}.tar.gz"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~hppa ~ppc ~ppc64 ~x86"
IUSE="samba4 ads aio avahi caps cluster cups debug ldap minimal syslog winbind zeroconf"
DEPEND="!<net-fs/samba-3.3
!net-fs/mount-cifs
ads? ( virtual/krb5 sys-fs/e2fsprogs
net-fs/samba-libs[ads] sys-apps/keyutils )
!minimal? (
dev-libs/popt
dev-libs/iniparser
virtual/libiconv
zeroconf? ( || ( net-dns/avahi[mdnsresponder-compat] net-misc/mDNSResponder ) )
caps? ( sys-libs/libcap )
cups? ( net-print/cups )
debug? ( dev-libs/dmalloc )
ldap? ( net-nds/openldap )
syslog? ( virtual/logger )
sys-libs/tdb
sys-libs/talloc
~net-fs/samba-libs-${PV}[caps?,cups?,ldap?,syslog?,winbind?,ads?,samba4?,netapi] )"
RDEPEND="${DEPEND}"
S="${WORKDIR}/${MY_P}/source3"
# TODO:
# - enable iPrint on Prefix/OSX and Darwin?
# - selftest-prefix? selftest?
RESTRICT="test"
CONFDIR="${FILESDIR}/$(get_version_component_range 1-2)"
BINPROGS="bin/smbclient bin/net bin/smbget bin/smbtree bin/nmblookup bin/smbpasswd bin/rpcclient bin/smbcacls bin/smbcquotas bin/ntlm_auth"
pkg_setup() {
confutils_use_depend_all samba4 ads
confutils_use_depend_all ads ldap
}
src_prepare() {
cd ".."
epatch \
"${FILESDIR}/samba-3.4.2-missing_includes.patch" \
"${FILESDIR}/samba-3.4.2-fix-samba4-automake.patch" \
"${FILESDIR}/samba-3.4.2-insert-AC_LD_VERSIONSCRIPT.patch" \
"${FILESDIR}/samba-3.4.3-cifs_upcall_c.patch"
# "${FILESDIR}/samba-3.4.2-upgrade-tevent-version.patch" \
cp "${FILESDIR}/samba-3.4.2-lib.tevent.python.mk" "lib/tevent/python.mk"
cd "source3"
eautoconf -Ilibreplace -Im4 -I../m4 -I../lib/replace -I../source4
}
src_configure() {
local myconf
# compile franky samba4 hybrid
# http://wiki.samba.org/index.php/Franky
if use samba4 ; then
myconf="${myconf} --enable-merged-build --enable-developer"
if has_version app-crypt/heimdal ; then
myconf="${myconf} --with-krb5=/usr/"
elif has_version app-crypt/mit-krb5 ; then
die "MIT Kerberos not supported by samba 4, use heimdal"
else
die "No supported kerberos provider detected"
fi
fi
# Filter out -fPIE
[[ ${CHOST} == *-*bsd* ]] && myconf="${myconf} --disable-pie"
use hppa && myconf="${myconf} --disable-pie"
# Upstream refuses to make this configurable
export ac_cv_header_sys_capability_h=no
if ! use minimal ; then
use caps && export ac_cv_header_sys_capability_h=yes
fi
if ! use minimal || use ads; then
# Notes:
# - FAM is a plugin for the server
# - DNS-SD is only used in client/server code
# - AFS is a pw-auth-method and only used in client/server code
# - AFSACL is a server module
# - automount is only needed in conjunction with NIS and we don't have that
# anymore
# - quota-support is only needed in server-code
# - acl-support is only used in server-code
# - --without-dce-dfs and --without-nisplus-home can't be passed to configure but are disabled by default
# - current DNS/SD support in the client is via the mdnsresponder-compat api in avahi
econf ${myconf} \
--sysconfdir=/etc/samba \
--localstatedir=/var \
$(use_enable debug developer) \
--enable-largefile \
--enable-socket-wrapper \
--enable-nss-wrapper \
--disable-swat \
$(use_enable debug dmalloc) \
$(use minimal && echo "--disable-cups" || echo "$(use_enable cups)") \
--disable-iprint \
--disable-fam \
--enable-shared-libs \
$(use minimal && echo "--disable-dnssd" || echo "$(use_enable avahi dnssd)") \
--disable-avahi \
--with-fhs \
--with-privatedir=/var/lib/samba/private \
--with-rootsbindir=/var/cache/samba \
--with-lockdir=/var/cache/samba \
--with-swatdir=/usr/share/doc/${PF}/swat \
--with-configdir=/etc/samba \
--with-logfilebase=/var/log/samba \
--with-pammodulesdir=$(getpam_mod_dir) \
--without-afs \
--without-fake-kaserver \
--without-vfs-afsacl \
$(use minimal && echo "--without-ldap" || echo "$(use_with ldap)") \
$(use minimal && echo "--without-ads" || echo "$(use_with ads)") \
$(use minimal && echo "--without-krb5" || echo "$(use_with ads krb5 /usr)") \
$(use minimal && echo "--without-dnsupdate" || echo "$(use_with ads dnsupdate)") \
--without-automount \
--without-cifsmount \
--without-cifsupcall \
--without-pam \
--without-pam_smbpass \
$(use minimal && echo "--without-syslog" || echo "$(use_with syslog)") \
--without-quotas \
--without-sys-quotas \
--without-utmp \
--without-lib{talloc,tdb,netapi,smbclient,smbsharemodes} \
--without-libaddns \
$(use minimal && echo "--without-ctdb" || echo "$(use_with cluster ctdb /usr)") \
$(use minimal && echo "--without-cluster" || echo "$(use_with cluster cluster-support)") \
--without-acl-support \
$(use minimal && echo "--without-aio-support" || echo "$(use_with aio aio-support)") \
--with-sendfile-support \
$(use minimal && echo "--without-winbind" || echo "$(use_with winbind)") \
--without-included-popt \
--without-included-iniparser
fi
}
src_compile() {
mkdir bin
$(tc-getCC) ${CFLAGS} ${LDFLAGS} -o bin/mount.cifs client/{mount.cifs,mtab}.c || die "building mount.cifs failed"
$(tc-getCC) ${CFLAGS} ${LDFLAGS} -o bin/umount.cifs client/{umount.cifs,mtab}.c || die "building umount.cifs failed"
if use ads ; then
emake bin/cifs.upcall || die "emake cifs.upcall failed"
fi
if ! use minimal ; then
emake ${BINPROGS} || die "emake binprogs failed"
if use cups ; then
emake bin/smbspool || die "emake smbspool failed"
fi
fi
}
src_install() {
into /
dosbin bin/mount.cifs bin/umount.cifs || die "u/mount.cifs not around"
doman ../docs/manpages/{u,}mount.cifs.8 || die "can't create man pages"
dohtml ../docs/htmldocs/manpages/{u,}mount.cifs.8.html || die "dohtml failed"
into /usr
if use ads ; then
dosbin bin/cifs.upcall || die "cifs.upcall not around"
doman ../docs/manpages/cifs.upcall.8 || die "doman failed"
dohtml ../docs/htmldocs/manpages/cifs.upcall.8.html || die "doman failed"
fi
if ! use minimal ; then
dobin ${BINPROGS} || die "not all bins around"
for prog in ${BINPROGS} ; do
doman ../docs/manpages/${prog/bin\/}* || die "doman failed"
dohtml ../docs/htmldocs/manpages/${prog/bin\/}*.html || die "dohtml failed"
done
if use cups ; then
dobin bin/smbspool || die "smbspool not around"
doman ../docs/manpages/smbspool.8 || die "doman failed"
dohtml ../docs/htmldocs/manpages/smbspool.8.html || die "dohtml failed"
dosym /usr/bin/smbspool $(cups-config --serverbin)/backend/smb
fi
fi
}

View File

@ -0,0 +1,420 @@
# ChangeLog for net-misc/cisco-vpnclient-3des
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/net-misc/cisco-vpnclient-3des/ChangeLog,v 1.66 2009/08/23 01:53:14 darkside Exp $
25 Sep 2009; Andrea Postiglione <andrea.postiglione@gmail.com>
-files/override-local-lan-access.diff,
-files/vpnclient-linux-2.6.31.patch,
-files/vpnclient-linux-4.8.02-64bit.patch,
version bump 4.8.02 and patch for newer netdev-ops
23 Aug 2009; Jeremy Olexa <darkside@gentoo.org> -files/2.6.19.patch,
-files/4.7.00.0640-2.6.14.patch,
-cisco-vpnclient-3des-4.6.03.0190-r1.ebuild,
-files/4.6.02.0030-supported_device.patch,
-files/4.6.02.0030-2.6.14.patch, -files/4.6.03.0190-2.6.14.patch,
-files/4.7.00.0640-2.6.22.patch,
-cisco-vpnclient-3des-4.7.00.0640-r1.ebuild, -files/driver_build_CC.patch:
cleanup, remove old ebuild and old patches
07 Jul 2009; Diego E. Pettenò <flameeyes@gentoo.org>
cisco-vpnclient-3des-4.8.01.0640.ebuild:
Use elog for fetch error.
28 Jul 2008; Chris Gianelloni <wolf31o2@gentoo.org> metadata.xml:
Change to maintainer-needed.
02 Jun 2008; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.6.03.0190-r1.ebuild,
cisco-vpnclient-3des-4.7.00.0640-r1.ebuild,
cisco-vpnclient-3des-4.8.00.0490-r1.ebuild:
QA Cleanup: Fix quoting.
02 Jun 2008; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.8.01.0640.ebuild:
Removing unused TARBALL variable.
02 Jun 2008; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.8.01.0640.ebuild:
Fix a bug in the move code in pkg_postinst.
02 Jun 2008; Chris Gianelloni <wolf31o2@gentoo.org>
-cisco-vpnclient-3des-4.6.02.0030.ebuild,
-cisco-vpnclient-3des-4.7.00.0640.ebuild,
cisco-vpnclient-3des-4.7.00.0640-r1.ebuild,
-cisco-vpnclient-3des-4.8.00.0490.ebuild:
Removing older ebuilds and marking 4.7.00.0640-r1 stable for the 4.7
series, since there've been no bug reports and it works fine for me.
02 Jun 2008; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.8.01.0640.ebuild:
Add back the RESTRICT=fetch code and adding RESTRICT=mirror.
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.
02 Feb 2008; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.8.00.0490-r1.ebuild:
Stable on amd64/x86 for 2.6.24 compatibility.
*cisco-vpnclient-3des-4.8.00.0490-r1 (02 Feb 2008)
02 Feb 2008; Chris Gianelloni <wolf31o2@gentoo.org> +files/2.6.24.patch,
+cisco-vpnclient-3des-4.8.00.0490-r1.ebuild:
Added a patch for 2.6.24 support. Closing bug #207536.
07 Sep 2007; Chris Gianelloni <wolf31o2@gentoo.org>
+files/4.7.00.0640-2.6.22.patch,
cisco-vpnclient-3des-4.7.00.0640-r1.ebuild:
Added a patch from Antti Mäkelä <zarhan@cs.tut.fi> for 2.6.22 support.
Closing bug #191572.
*cisco-vpnclient-3des-4.7.00.0640-r1 (04 Sep 2007)
04 Sep 2007; Chris Gianelloni <wolf31o2@gentoo.org>
+cisco-vpnclient-3des-4.7.00.0640-r1.ebuild:
Added a new revision of the 4.7 ebuild to update to the latest patch for
2.6.22 support for bug #183713.
28 Aug 2007; Chris Gianelloni <wolf31o2@gentoo.org> +files/2.6.22.patch,
cisco-vpnclient-3des-4.8.00.0490.ebuild:
Added a 2.6.22 patch from bug #183713 and closing the bug.
14 May 2007; Thilo Bangert <bangert@gentoo.org> metadata.xml:
add <herd>no-herd</herd>
28 Apr 2007; Sven Wegener <swegener@gentoo.org>
cisco-vpnclient-3des-4.6.02.0030.ebuild,
cisco-vpnclient-3des-4.6.03.0190-r1.ebuild,
cisco-vpnclient-3des-4.7.00.0640.ebuild,
cisco-vpnclient-3des-4.8.00.0490.ebuild:
Fix *initd, *confd and *envd calls (#17388, #174266)
07 Mar 2007; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.6.02.0030.ebuild,
cisco-vpnclient-3des-4.6.03.0190-r1.ebuild,
cisco-vpnclient-3des-4.7.00.0640.ebuild:
Change all instances of [ to [[.
06 Feb 2007; Chris Gianelloni <wolf31o2@gentoo.org>
-files/4.6.00.0045-2.6.14.patch, -files/4.0.1a-linux26-gentoo.patch,
-files/4.6.00.0045-supported_device.patch, -files/4.0.5-2.6.14.patch,
-files/atheros.patch, -files/register_netdevice.patch,
-cisco-vpnclient-3des-4.0.1a-r1.ebuild,
-cisco-vpnclient-3des-4.0.3b-r4.ebuild,
-cisco-vpnclient-3des-4.0.5-r1.ebuild,
-cisco-vpnclient-3des-4.6.00.0045-r1.ebuild:
As painful as this is for me, I'm removing older versions of this ebuild.
This is due to my lack of access to the distfiles for the older ebuilds, and
bug #164344. If you use these older ebuilds and want to see them back in
portage, you'll need to contact me directly so we can work out arrangements
to make that possible. I apologize for any inconvenience this may cause.
12 Dec 2006; Chris Gianelloni <wolf31o2@gentoo.org> files/vpnclient.rc:
Changed exit 1 to eend 1 for bug #157596.
12 Dec 2006; Chris Gianelloni <wolf31o2@gentoo.org> +files/2.6.19.patch,
cisco-vpnclient-3des-4.7.00.0640.ebuild,
cisco-vpnclient-3des-4.8.00.0490.ebuild:
Added 2.6.19 patch and closing bug #155837.
04 Dec 2006; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.0.1a-r1.ebuild,
cisco-vpnclient-3des-4.0.3b-r4.ebuild,
cisco-vpnclient-3des-4.0.5-r1.ebuild,
cisco-vpnclient-3des-4.6.00.0045-r1.ebuild,
cisco-vpnclient-3des-4.6.02.0030.ebuild,
cisco-vpnclient-3des-4.6.03.0190-r1.ebuild,
cisco-vpnclient-3des-4.7.00.0640.ebuild,
cisco-vpnclient-3des-4.8.00.0490.ebuild:
Added QA_* variables for bug #131633 and removed RESTRICT=stricter. If you
have any problems with this, please reply to that bug report.
04 Oct 2006; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.6.03.0190-r1.ebuild,
cisco-vpnclient-3des-4.7.00.0640.ebuild,
cisco-vpnclient-3des-4.8.00.0490.ebuild:
We were installing too much to the modules directories. Thanks to Michael
Sterret <Mr_Bones_@gentoo.org> for pointing it out.
14 Sep 2006; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.0.1a-r1.ebuild,
cisco-vpnclient-3des-4.0.3b-r4.ebuild,
cisco-vpnclient-3des-4.0.5-r1.ebuild,
cisco-vpnclient-3des-4.6.00.0045-r1.ebuild,
cisco-vpnclient-3des-4.6.02.0030.ebuild,
cisco-vpnclient-3des-4.6.03.0190-r1.ebuild,
cisco-vpnclient-3des-4.7.00.0640.ebuild,
cisco-vpnclient-3des-4.8.00.0490.ebuild:
Added stricter to RESTRICT and closing bug #143047.
19 Jul 2006; Chris Gianelloni <wolf31o2@gentoo.org> files/vpnclient.rc:
Moved check for the vpnclient executable and added a sleep 1. Closing bug
#141065.
30 May 2006; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.0.1a-r1.ebuild,
cisco-vpnclient-3des-4.0.3b-r4.ebuild,
cisco-vpnclient-3des-4.0.5-r1.ebuild,
cisco-vpnclient-3des-4.6.00.0045-r1.ebuild,
cisco-vpnclient-3des-4.6.02.0030.ebuild,
cisco-vpnclient-3des-4.6.03.0190-r1.ebuild,
cisco-vpnclient-3des-4.7.00.0640.ebuild,
cisco-vpnclient-3des-4.8.00.0490.ebuild:
Updated to use linux-mod eclass. Patch provided by Mike Auty
<ikelos@gentoo.org>. Closing bug #130523.
11 Apr 2006; Chris Gianelloni <wolf31o2@gentoo.org>
+files/4.6.00.0045-2.6.14.patch, +files/4.6.02.0030-2.6.14.patch,
cisco-vpnclient-3des-4.6.00.0045-r1.ebuild,
cisco-vpnclient-3des-4.6.02.0030.ebuild:
Copied patch from 4.7.00 to 4.6.* ebuilds and closing bug #128045.
24 Mar 2006; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.0.1a-r1.ebuild,
cisco-vpnclient-3des-4.0.3b-r4.ebuild,
cisco-vpnclient-3des-4.0.5-r1.ebuild,
cisco-vpnclient-3des-4.6.00.0045-r1.ebuild,
cisco-vpnclient-3des-4.6.02.0030.ebuild,
cisco-vpnclient-3des-4.6.03.0190-r1.ebuild,
cisco-vpnclient-3des-4.7.00.0640.ebuild,
cisco-vpnclient-3des-4.8.00.0490.ebuild:
Fixed a build error where we were not finding the proper kernel directory to
compile against. Thanks to Anno v. Heimburg <anno@vonheimburg.de> for the
patch. Closing bug #119057.
*cisco-vpnclient-3des-4.0.5-r1 (24 Mar 2006)
24 Mar 2006; Chris Gianelloni <wolf31o2@gentoo.org>
+files/4.0.5-2.6.14.patch, -cisco-vpnclient-3des-4.0.5.ebuild,
+cisco-vpnclient-3des-4.0.5-r1.ebuild:
Added patch from 4.6.03.0190 to 4.0.5 and closing bug #120127.
*cisco-vpnclient-3des-4.8.00.0490 (10 Feb 2006)
10 Feb 2006; Chris Gianelloni <wolf31o2@gentoo.org>
+cisco-vpnclient-3des-4.8.00.0490.ebuild:
Version bump to 4.8.00.0490 and closing bug #120534.
20 Dec 2005; Chris Gianelloni <wolf31o2@gentoo.org>
-cisco-vpnclient-3des-4.6.03.0190.ebuild,
cisco-vpnclient-3des-4.6.03.0190-r1.ebuild,
cisco-vpnclient-3des-4.7.00.0640.ebuild:
Removing problem version, marking stable on amd64/x86 and making sure -* is
in KEYWORDS on all versions.
*cisco-vpnclient-3des-4.7.00.0640 (28 Nov 2005)
28 Nov 2005; Chris Gianelloni <wolf31o2@gentoo.org>
+files/4.7.00.0640-2.6.14.patch, +cisco-vpnclient-3des-4.7.00.0640.ebuild:
Version bumped to latest upstream version and closing bug #110613.
20 Nov 2005; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.0.1a-r1.ebuild,
cisco-vpnclient-3des-4.0.3b-r4.ebuild, cisco-vpnclient-3des-4.0.5.ebuild,
cisco-vpnclient-3des-4.6.00.0045-r1.ebuild,
cisco-vpnclient-3des-4.6.02.0030.ebuild,
cisco-vpnclient-3des-4.6.03.0190.ebuild,
cisco-vpnclient-3des-4.6.03.0190-r1.ebuild:
0->KV for bug #112817.
15 Nov 2005; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.6.03.0190-r1.ebuild:
KV_MINOR->KV_PATCH
14 Nov 2005; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.0.1a-r1.ebuild,
cisco-vpnclient-3des-4.0.3b-r4.ebuild, cisco-vpnclient-3des-4.0.5.ebuild,
cisco-vpnclient-3des-4.6.00.0045-r1.ebuild,
cisco-vpnclient-3des-4.6.02.0030.ebuild,
cisco-vpnclient-3des-4.6.03.0190.ebuild,
cisco-vpnclient-3des-4.6.03.0190-r1.ebuild:
Fixing my overzealous sed call earlier.
14 Nov 2005; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.6.03.0190-r1.ebuild:
Changed conditions to match all kernels from 2.6.14 up.
14 Nov 2005; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.0.1a-r1.ebuild,
cisco-vpnclient-3des-4.0.3b-r4.ebuild, cisco-vpnclient-3des-4.0.5.ebuild,
cisco-vpnclient-3des-4.6.00.0045-r1.ebuild,
cisco-vpnclient-3des-4.6.02.0030.ebuild,
cisco-vpnclient-3des-4.6.03.0190.ebuild,
cisco-vpnclient-3des-4.6.03.0190-r1.ebuild:
Changed SLOT to 0.
13 Nov 2005; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.6.03.0190-r1.ebuild:
Forcing to stable since 2.6.14 has gone stable in the tree and this patch is
required to compile against 2.6.14 successfully.
*cisco-vpnclient-3des-4.6.03.0190-r1 (13 Nov 2005)
13 Nov 2005; Chris Gianelloni <wolf31o2@gentoo.org>
+files/4.6.03.0190-2.6.14.patch,
+cisco-vpnclient-3des-4.6.03.0190-r1.ebuild:
Added patch to resolve bug #107208.
29 Aug 2005; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.0.1a-r1.ebuild,
cisco-vpnclient-3des-4.0.3b-r4.ebuild, cisco-vpnclient-3des-4.0.5.ebuild,
cisco-vpnclient-3des-4.6.00.0045-r1.ebuild,
cisco-vpnclient-3des-4.6.02.0030.ebuild:
kernel-mod -> linux-info for kernel team.
06 Jul 2005; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.6.03.0190.ebuild:
Fix bug #98070.
28 Jun 2005; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.6.03.0190.ebuild:
Changed dolib.so to doins to fix problems loading library on amd64. Closing
bug #97269.
*cisco-vpnclient-3des-4.6.03.0190 (02 Jun 2005)
02 Jun 2005; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.6.02.0030.ebuild,
+cisco-vpnclient-3des-4.6.03.0190.ebuild:
Added information about rp_filter for bug #90693. Version bumped to version
4.5.03.0190, and closing bug #94755.
*cisco-vpnclient-3des-4.6.02.0030 (14 Apr 2005)
14 Apr 2005; Chris Gianelloni <wolf31o2@gentoo.org>
+files/4.6.00.0045-supported_device.patch,
+files/4.6.02.0030-supported_device.patch, -files/supported_device.patch,
cisco-vpnclient-3des-4.6.00.0045-r1.ebuild,
+cisco-vpnclient-3des-4.6.02.0030.ebuild:
Renamed supported_device.patch to 4.6.00.0045-supported_device.patch. Added
4.6.02.0030 ebuild provided by Stefan Skotte <sfs@steflo.dk> and closing bug
#88408.
08 Feb 2005; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.6.00.0045-r1.ebuild:
Marking stable on x86 and removing amd64 KEYWORDS, which were accidentally
added by me in testing and were never removed.
*cisco-vpnclient-3des-4.6.00.0045-r1 (09 Nov 2004)
09 Nov 2004; Chris Gianelloni <wolf31o2@gentoo.org>
+files/supported_device.patch,
+cisco-vpnclient-3des-4.6.00.0045-r1.ebuild,
-cisco-vpnclient-3des-4.6.00.0045.ebuild:
Added supported device patch from James Ward <jennyandjamesward@yahoo.com>
and closing bugs #68738, #70365, and #70374.
*cisco-vpnclient-3des-4.6.00.0045 (03 Nov 2004)
03 Nov 2004; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.0.1a-r1.ebuild,
cisco-vpnclient-3des-4.0.3b-r4.ebuild, cisco-vpnclient-3des-4.0.5.ebuild,
+cisco-vpnclient-3des-4.6.00.0045.ebuild:
Version bumped to latest version and updated all ebuilds to use the
kernel-mod eclass rather than kmod eclass. This should resolve bugs #68738,
#68449, and #69870.
24 Aug 2004; Mike Frysinger <vapier@gentoo.org> files/vpnclient.rc,
cisco-vpnclient-3des-4.0.5.ebuild:
Rewrite the vpnclient script to make it flow better (eerror/exit is not the
way to go; eend/return is).
*cisco-vpnclient-3des-4.0.5 (11 Aug 2004)
11 Aug 2004; Chris Gianelloni <wolf31o2@gentoo.org>
+cisco-vpnclient-3des-4.0.5.ebuild:
Bumped to latest version.
01 Jul 2004; Jon Hood <squinky86@gentoo.org>
cisco-vpnclient-3des-4.0.1a-r1.ebuild,
cisco-vpnclient-3des-4.0.3b-r4.ebuild:
change virtual/glibc to virtual/libc
26 Jun 2004; Chris Gianelloni <wolf31o2@gentoo.org>
-cisco-vpnclient-3des-4.0.3b-r3.ebuild,
cisco-vpnclient-3des-4.0.3b-r4.ebuild:
Removing old ebuild and changing HOMEPAGE.
27 Apr 2004; Aron Griffis <agriffis@gentoo.org>
cisco-vpnclient-3des-4.0.1a-r1.ebuild:
Add inherit eutils
*cisco-vpnclient-3des-4.0.3b-r4 (24 Apr 2004)
24 Apr 2004; Chris Gianelloni <wolf31o2@gentoo.org> +files/atheros.patch,
+cisco-vpnclient-3des-4.0.3b-r4.ebuild:
Adding atheros patch, submitted by Dominic Battre and closing bug #48680.
12 Apr 2004; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.0.3b-r2.ebuild,
cisco-vpnclient-3des-4.0.3b-r3.ebuild:
Adding empty IUSE, removing old 4.0.3b-r2 ebuild, and marking 4.0.3b-r3 stable
on x86.
16 Mar 2004; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.0.3b-r2.ebuild:
Added inherit eutils since we use epatch.
*cisco-vpnclient-3des-4.0.3b-r3 (25 Feb 2004)
25 Feb 2004; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.0.3b-r3.ebuild, files/register_netdevice.patch:
Adding patch to allow cisco_ipsec module to work with kernel 2.6.x, submitted
by Kent Skaar <skaar@aol.net> to bugzilla and originally submitted to LMKL by
by Gertjan van Wingerde <gwingerde@home.nl>. Closing bug #40730.
14 Feb 2004; Chris Gianelloni <wolf31o2@gentoo.org> files/vpnclient.rc:
Removing -qs from insmod line to allow proper support with newer
module-init-tools. Closing bug #37678.
13 Jan 2004; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.0.3b-r1.ebuild, cisco-vpnclient-3des-4.0.3b.ebuild:
Removing older revisions.
*cisco-vpnclient-3des-4.0.3b-r2 (13 Jan 2004)
13 Jan 2004; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.0.3b-r2.ebuild, files/vpnclient.rc:
Updated vpnclient init script for proper 2.6 kernel handling and also to
remove console messages at boot. Closing Bug #37678.
*cisco-vpnclient-3des-4.0.3b-r1 (08 Jan 2004)
08 Jan 2004; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.0.3b-r1.ebuild, files/vpnclient.rc:
Updated init script to make it compatible with /sbin/runscript.sh. The script
was provided by Lars Corzilius (gentoo@flowsterritory.de) and updated by me.
Closing bug #36419.
*cisco-vpnclient-3des-4.0.3b (12 Dec 2003)
12 Dec 2003; Chris Gianelloni <wolf31o2@gentoo.org>
cisco-vpnclient-3des-4.0.1a-r1.ebuild, cisco-vpnclient-3des-4.0.1a.ebuild,
cisco-vpnclient-3des-4.0.3b.ebuild, metadata.xml,
files/4.0.1a-linux26-gentoo.patch, files/4.0.1a-linux26.patch,
files/driver_build_CC.patch:
Added driver_build_CC.patch by Jesse Becker (jbecker@speakeasy.net) and
version bumped to newest version. Closing bugs #33488 and #35617.
*cisco-vpnclient-3des-4.0.1a-r1 (19 Nov 2003)
19 Nov 2003; Mike Frysinger <vapier@gentoo.org> :
Fix typo in patch #33848.
*cisco-vpnclient-3des-4.0.1a (05 JUL 2003)
27 Oct 2003; Mike Frysinger <vapier@gentoo.org> :
Small patch so it'll work in linux-2.6.x.
09 Jul 2003; Mike Frysinger <vapier@gentoo.org> :
Cleaned up ebuild, made it use $KV properly.
05 JUL 2003; Bart Lauwers <blauwers@gentoo.org> :
Initial import.

View File

@ -0,0 +1,9 @@
AUX override-local-lan-access.diff 997 RMD160 a15b16a660b762bc6b9d12861beabaee54841f22 SHA1 b7601403bc2845cb5f20db177aa121c4bc608eeb SHA256 bd4a76971633397b1a02571d798305981d05b8cc84ed6d3c1a84e7dcbb38af77
AUX vpnclient-linux-2.6.31.patch 2244 RMD160 d1ccb4421d61ed79d33b53d364a23e5186d7ecb3 SHA1 b521dfbba8f52cb42d06dc04025ce82d654ccb84 SHA256 bd20c8105d7d2b151b5868b1d031169e1f3a057d351da3eb9ce62a3f440d92cb
AUX vpnclient-linux-4.8.02-64bit.patch 5761 RMD160 8bc8aac7fbe21e3a507ddedd464284ea260fe411 SHA1 3c92088181e18a9a5aa288a6b17f3b85ee2fdf6e SHA256 184af445ca5dbbe9577bea03a475440fc18256e15d21861e1fcb5efd1ce6089b
AUX vpnclient.rc 2318 RMD160 8d957f90366567ba755263dda232f1b26bbd5f67 SHA1 86ac5ddd34546796b4be4efe8a40bac628bac624 SHA256 a4ed3b575a7b5431895c2f01b68eede21adbf98555ff125bd3f131872a5cc792
DIST vpnclient-linux-x86_64-4.8.02.0030-k9-AMD64_ONLY_by_t3x.tar.gz 2038576 RMD160 4f89f20d476468ba517f67fee95fd0e4f9cf4401 SHA1 eddca049d595999504e576c64be1312d683ad285 SHA256 bfbb00930f8624882074abb502207c2f718f6087d2ace284877faad303dc00a1
DIST vpnclient-linux-x86_64-4.8.02.0030-k9.tar.gz 2050813 RMD160 63dfb484f43c4bd522cd0e44aa34d6619071872a SHA1 b9fc43136155babd5bfff79ec6d14d5498b7db97 SHA256 3a7bec5cfa327256701279343a2a3b93777ba9440f1aabcf191e63ad8dbc54ba
EBUILD cisco-vpnclient-3des-4.8.02.0030.ebuild 2733 RMD160 7cf67c40c037cfb9ca370ba9ddc1b566ca91cbfc SHA1 4d3eb0fd217958fe2b3588ff4bb0a42ba33b3bd3 SHA256 c08f8317fff44537a2f6907431b211118c10d9df63c25d9672b7c06970682bac
MISC ChangeLog 17065 RMD160 575e94fcb4d0e865c02ce615d795b18f82131b51 SHA1 8d02e6c5fa53b7f26f4ccfdc0c3cbd151d42bb5b SHA256 a60d48df518a6c0c014e16d19f30d3f099c394383ec8f0777fb823e9114d0f62
MISC metadata.xml 899 RMD160 07243030a3a6c8a21ad98512eb43d372644b9b38 SHA1 56e83e63033410d656d38944908e1eec06ca91dd SHA256 74f551631a27f7a5bca1bb60b8a0e13335b0d8e4a363e8ba34ae8b7fce5037a3

View File

@ -0,0 +1,89 @@
# Copyright 1999-2008 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.00.0490-r1.ebuild,v 1.3 2008/06/02 22:26:43 wolf31o2 Exp $
inherit eutils linux-mod
MY_PV=${PV}-k9
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"
LICENSE="cisco-vpn-client"
SLOT="0"
KEYWORDS="-* amd64 x86"
IUSE=""
RESTRICT="fetch strip" # stricter"
QA_TEXTRELS="opt/cisco-vpnclient/lib/libvpnapi.so"
QA_EXECSTACK="opt/cisco-vpnclient/lib/libvpnapi.so
opt/cisco-vpnclient/bin/vpnclient
opt/cisco-vpnclient/bin/cvpnd
opt/cisco-vpnclient/bin/cisco_cert_mgr
opt/cisco-vpnclient/bin/ipseclog"
S=${WORKDIR}/vpnclient
VPNDIR="/etc/opt/cisco-vpnclient/"
pkg_nofetch() {
einfo "Please visit:"
einfo " ${HOMEPAGE}"
einfo "and download ${A} to ${DISTDIR}"
}
src_unpack () {
unpack ${A}
cd "${S}"
epatch "${FILESDIR}"/2.6.22.patch
epatch "${FILESDIR}"/2.6.24.patch
}
src_compile () {
unset ARCH
sh ./driver_build.sh ${KV_DIR}
[ ! -f ./cisco_ipsec -a ! -f ./cisco_ipsec.ko ] \
&& die "Failed to make module 'cisco_ipsec'"
sed -i "s#@VPNBINDIR@#/usr/bin#" vpnclient_init
sed -i "s#@VPNBINDIR@#/usr/bin#" vpnclient.ini
}
src_install() {
newinitd "${FILESDIR}"/vpnclient.rc vpnclient
exeinto /opt/cisco-vpnclient/bin
exeopts -m0711
doexe vpnclient
exeopts -m4711
doexe cvpnd
into /opt/cisco-vpnclient/
dobin ipseclog cisco_cert_mgr
insinto /opt/cisco-vpnclient/lib
doins libvpnapi.so
insinto /opt/cisco-vpnclient/include
doins vpnapi.h
dodir /usr/bin
dosym /opt/cisco-vpnclient/bin/vpnclient /usr/bin/vpnclient
insinto /lib/modules/${KV}/CiscoVPN
if kernel_is 2 6; then
doins cisco_ipsec.ko
else
doins cisco_ipsec
fi
insinto ${VPNDIR}
doins vpnclient.ini
insinto ${VPNDIR}/Profiles
doins *.pcf
dodir ${VPNDIR}/Certificates
}
pkg_postinst() {
linux-mod_pkg_postinst
einfo "You must run \`/etc/init.d/vpnclient start\` before using the client."
echo
ewarn "Configuration directory has moved to ${VPNDIR}!"
echo
}

View File

@ -0,0 +1,106 @@
# Copyright 1999-2009 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.5 2009/07/07 23:15:46 flameeyes Exp $
inherit eutils linux-mod
MY_PV=${PV}-k9
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"
LICENSE="cisco-vpn-client"
SLOT="0"
KEYWORDS="-* ~amd64 ~x86"
IUSE=""
RESTRICT="fetch mirror 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() {
elog "Please visit:"
elog " ${HOMEPAGE}"
elog "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() {
local binaries="vpnclient ipseclog cisco_cert_mgr"
linux-mod_src_install
# Binaries
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
# Create some symlinks
dodir /usr/bin
for filename in ${binaries}
do
dosym ${VPNDIR}/bin/${filename} /usr/bin/${filename}
done
# Make sure we keep these, even if they're empty.
keepdir ${CFGDIR}/Certificates
keepdir ${CFGDIR}/Profiles
}
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 -rf ${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."
}

View File

@ -0,0 +1,106 @@
# Copyright 1999-2008 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.4 2008/06/02 22:22:04 wolf31o2 Exp $
inherit eutils linux-mod
MY_PV=${PV}-k9
DESCRIPTION="Cisco VPN Client (3DES)"
HOMEPAGE="http://cco.cisco.com/en/US/products/sw/secursw/ps2308/index.html"
SRC_BASE="http://projects.tuxx-home.at/ciscovpn/clients/linux/4.8.02"
SRC_URI="amd64? ( ${SRC_BASE}/vpnclient-linux-x86_64-${MY_PV}-AMD64_ONLY_by_t3x.tar.gz )
x86? ( ${SRC_BASE}/vpnclient-linux-x86_64-${MY_PV}.tar.gz )"
LICENSE="cisco-vpn-client"
SLOT="0"
KEYWORDS="-* ~amd64 ~x86"
IUSE=""
RESTRICT="nomirror 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"
src_unpack () {
unpack ${A}
cd "${S}"
use amd64 && epatch "${FILESDIR}"/vpnclient-linux-4.8.02-64bit.patch
epatch "${FILESDIR}"/override-local-lan-access.diff
epatch "${FILESDIR}"/vpnclient-linux-2.6.31.patch
}
src_install() {
local binaries="vpnclient ipseclog cisco_cert_mgr"
linux-mod_src_install
# Binaries
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
# Create some symlinks
dodir /usr/bin
for filename in ${binaries}
do
dosym ${VPNDIR}/bin/${filename} /usr/bin/${filename}
done
# Make sure we keep these, even if they're empty.
keepdir ${CFGDIR}/Certificates
keepdir ${CFGDIR}/Profiles
}
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 -rf ${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."
}

View File

@ -0,0 +1,383 @@
diff -Nur vpnclient.orig/frag.c vpnclient/frag.c
--- vpnclient.orig/frag.c 2005-11-22 10:52:00.000000000 +0100
+++ vpnclient/frag.c 2007-05-29 16:03:42.000000000 +0200
@@ -1,4 +1,18 @@
-#include <linux/config.h>
+/**************************************************************************
+ * Copyright (c) 2001, Cisco Systems, All Rights Reserved
+ ***************************************************************************
+ *
+ * File: frag.c
+ * Date: 22/03/01
+ *
+ * Updated to work with Linux kernels >=2.6.19 (including 2.6.22) by
+ * Alexander Griesser 29/05/07 <cisco@tuxx-home.at>
+ *
+ ***************************************************************************
+ * This module does some really cool stuff only Cisco knows about
+ ***************************************************************************/
+
+#include <linux/autoconf.h>
#include <linux/version.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
@@ -37,9 +51,10 @@
int ret=FALSE;
struct frag_queue_entry *cur=NULL,*n=NULL,*prev=NULL;
- id = ntohs(skb->nh.iph->id);
+ id = ntohs(CISCOVPN_SKB_NH_ID(skb));
+
/* look for an entry with the same id as this packet*/
- if (frag_queue_head && id != ntohs(frag_queue_head->skb->nh.iph->id))
+ if (frag_queue_head && id != ntohs(CISCOVPN_SKB_NH_ID(frag_queue_head->skb)))
{
printk(KERN_INFO "%s: incomplete fragment set destroyed",__FUNCTION__);
cleanup_frag_queue();
@@ -57,10 +72,13 @@
cur = frag_queue_head;
prev = NULL;
- skb_offset = ntohs(skb->nh.iph->frag_off) & IP_OFFSET;
+
+ skb_offset = ntohs(CISCOVPN_SKB_NH_FRAGOFF(skb)) & IP_OFFSET;
+
while (cur)
{
- cur_offset = ntohs(cur->skb->nh.iph->frag_off) & IP_OFFSET;
+ cur_offset = ntohs(CISCOVPN_SKB_NH_FRAGOFF(cur->skb)) & IP_OFFSET;
+
/*sanity check*/
if (cur_offset < prev_offset)
{
@@ -112,8 +130,9 @@
goto done_with_tests;
}
cur = frag_queue_head;
+
/*first in queue must be first frag.*/
- if ((ntohs(cur->skb->nh.iph->frag_off) & IP_OFFSET) != 0)
+ if ((ntohs(CISCOVPN_SKB_NH_FRAGOFF(cur->skb)) & IP_OFFSET) != 0)
{
goto done_with_tests;
}
@@ -121,19 +140,22 @@
by comparing adjacent offset values and packet lengths*/
while (cur)
{
- cur_offset = (ntohs(cur->skb->nh.iph->frag_off) & IP_OFFSET)*8;
- if (cur_offset != prev_end_offset)
+ cur_offset = (ntohs(CISCOVPN_SKB_NH_FRAGOFF(cur->skb)) & IP_OFFSET)*8;
+
+ if (cur_offset != prev_end_offset)
{
goto done_with_tests;
}
prev = cur;
prev_offset = cur_offset;
- prev_end_offset = prev_offset + ntohs(prev->skb->nh.iph->tot_len)
- - (prev->skb->nh.iph->ihl*4);
+
+ prev_end_offset = prev_offset + ntohs(CISCOVPN_SKB_NH_TOTLEN(prev->skb))
+ - (CISCOVPN_SKB_NH_IHL(prev->skb)*4);
cur = cur->next;
}
/*last in queue must not have more frags set*/
- if (ntohs(prev->skb->nh.iph->frag_off) & IP_MF)
+
+ if (ntohs(CISCOVPN_SKB_NH_FRAGOFF(prev->skb)) & IP_MF)
{
goto done_with_tests;
}
@@ -185,10 +207,12 @@
/*not an IP packet*/
goto done_with_tests;
}
- iph = skb->nh.iph;
+
+ iph = CISCOVPN_SKB_IPHEADER(skb);
+
if (!iph)
{
- printk(KERN_DEBUG "%s: skb->nh is NULL.", __FUNCTION__);
+ printk(KERN_DEBUG "%s: iph (IP Header) is NULL.", __FUNCTION__);
goto done_with_tests;
}
offset = ntohs(iph->frag_off);
diff -Nur vpnclient.orig/interceptor.c vpnclient/interceptor.c
--- vpnclient.orig/interceptor.c 2005-11-22 10:52:00.000000000 +0100
+++ vpnclient/interceptor.c 2007-05-29 16:08:57.000000000 +0200
@@ -5,10 +5,13 @@
* File: interceptor.c
* Date: 04/10/2001
*
+* Updated to work with Linux kernels >=2.6.19 (including 2.6.22) by
+* Alexander Griesser 29/05/07 <cisco@tuxx-home.at>
+*
***************************************************************************
* This module implements the linux driver.
***************************************************************************/
-#include <linux/config.h>
+#include <linux/autoconf.h>
#include <linux/version.h>
#include <linux/module.h>
#include <linux/init.h>
@@ -339,13 +342,18 @@
dp = NULL;
num_target_devices = 0;
- for (dp = dev_base; dp != NULL; dp = dp->next)
- {
+
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
+ for_each_netdev(dp)
+ #else
+ for (dp = dev_base; dp != NULL; dp = dp->next)
+ #endif
+ {
if (add_netdev(dp) == 0)
{
num_target_devices++;
}
- }
+ }
if (num_target_devices == 0)
{
@@ -550,13 +558,13 @@
goto exit_gracefully;
}
- if (skb->ip_summed == CHECKSUM_HW)
+ if (CHECK_IP_SUMMED(skb->ip_summed))
{
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,7)
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
- if (skb_checksum_help(skb,1))
+ if (SKB_CHECKSUM_HELP(skb,1))
#else
- if (skb_checksum_help(&skb,1))
+ if (SKB_CHECKSUM_HELP(&skb,1))
#endif // LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
{
dev_kfree_skb(skb);
@@ -569,9 +577,10 @@
}
reset_inject_status(&pBinding->recv_stat);
- if (skb->mac.raw)
+
+ if (CISCOVPN_SKB_MACHEADER(skb))
{
- hard_header_len = skb->data - skb->mac.raw;
+ hard_header_len = skb->data - CISCOVPN_SKB_MACHEADER(skb);
if ((hard_header_len < 0) || (hard_header_len > skb_headroom(skb)))
{
printk(KERN_DEBUG "bad hh len %d\n", hard_header_len);
@@ -588,7 +597,7 @@
switch (hard_header_len)
{
case ETH_HLEN:
- CniNewFragment(ETH_HLEN, skb->mac.raw, &MacHdr, CNI_USE_BUFFER);
+ CniNewFragment(ETH_HLEN, CISCOVPN_SKB_MACHEADER(skb), &MacHdr, CNI_USE_BUFFER);
break;
case IPPP_MAX_HEADER:
case 0:
@@ -677,14 +686,14 @@
tmp_InjectSend = NULL;
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
- if (skb->ip_summed == CHECKSUM_HW)
+ if (CHECK_IP_SUMMED(skb->ip_summed))
{
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
- if (skb_checksum_help(skb,0))
+ if (SKB_CHECKSUM_HELP(skb,0))
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,7)
- if (skb_checksum_help(&skb,0))
+ if (SKB_CHECKSUM_HELP(&skb,0))
#else
- if ((skb = skb_checksum_help(skb)) == NULL)
+ if ((skb = SKB_CHECKSUM_HELP(skb)) == NULL)
#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,7)
{
goto exit_gracefully;
@@ -692,7 +701,8 @@
}
#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
reset_inject_status(&pBinding->send_stat);
- hard_header_len = skb->nh.raw - skb->data;
+
+ hard_header_len = CISCOVPN_SKB_NETWORKHEADER(skb) - skb->data;
pBinding->send_real_hh_len = hard_header_len;
switch (hard_header_len)
{
diff -Nur vpnclient.orig/IPSecDrvOS_linux.c vpnclient/IPSecDrvOS_linux.c
--- vpnclient.orig/IPSecDrvOS_linux.c 2005-11-22 10:52:00.000000000 +0100
+++ vpnclient/IPSecDrvOS_linux.c 2007-05-29 13:42:39.000000000 +0200
@@ -11,7 +11,7 @@
*
*
***************************************************************************/
-#include <linux/config.h>
+#include <linux/autoconf.h>
#include <linux/version.h>
#include <linux/vmalloc.h>
#include <linux/sched.h>
diff -Nur vpnclient.orig/linuxcniapi.c vpnclient/linuxcniapi.c
--- vpnclient.orig/linuxcniapi.c 2005-11-22 10:52:00.000000000 +0100
+++ vpnclient/linuxcniapi.c 2007-05-29 13:56:57.000000000 +0200
@@ -5,11 +5,14 @@
* File: linuxcniapi.c
* Date: 22/03/01
*
+ * Updated to work with Linux kernels >=2.6.19 (including 2.6.22) by
+ * Alexander Griesser 29/05/07 <cisco@tuxx-home.at>
+ *
***************************************************************************
* This module implements a translation layer between the CNI API and the
* Linux Interceptor driver.
***************************************************************************/
-#include <linux/config.h>
+#include <linux/autoconf.h>
#include <linux/version.h>
#include <linux/netdevice.h>
#include <linux/if.h>
@@ -292,9 +295,19 @@
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14)
{
struct timeval timestamp;
-
do_gettimeofday(&timestamp);
- skb_set_timestamp(skb,&timestamp);
+ /* With Linux 2.6.22 skb_set_timestamp has been dropped.
+ * Additionally, the attribute tstamp now is in ktime_t
+ * where it prior to 2.6.22 was in skb_timeval.
+ *
+ * As a proprietary module, we may not use ktime_get_real,
+ * so we need to do it this way
+ */
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
+ skb->tstamp = timeval_to_ktime(timestamp);
+ #else
+ skb_set_timestamp(skb,&timestamp);
+ #endif
}
#else
do_gettimeofday(&skb->stamp);
@@ -328,8 +341,13 @@
skb->ip_summed = CHECKSUM_UNNECESSARY;
- skb->nh.iph = (struct iphdr *) skb->data;
- skb->mac.raw = pMac;
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
+ skb_reset_network_header(skb);
+ skb_reset_mac_header(skb);
+ #else
+ skb->nh.iph = (struct iphdr *) skb->data;
+ skb->mac.raw = pMac;
+ #endif
pBinding->recv_stat.called = TRUE;
@@ -441,9 +459,19 @@
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14)
{
struct timeval timestamp;
-
do_gettimeofday(&timestamp);
- skb_set_timestamp(skb,&timestamp);
+ /* With Linux 2.6.22 skb_set_timestamp has been dropped.
+ * Additionally, the attribute tstamp now is in ktime_t
+ * where it prior to 2.6.22 was in skb_timeval.
+ *
+ * As a proprietary module, we may not use ktime_get_real,
+ * so we need to do it this way
+ */
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
+ skb->tstamp = timeval_to_ktime(timestamp);
+ #else
+ skb_set_timestamp(skb,&timestamp);
+ #endif
}
#else
do_gettimeofday(&skb->stamp);
@@ -451,11 +479,21 @@
skb->dev = pBinding->pDevice;
- skb->mac.raw = pMac;
- skb->nh.raw = pIP;
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
+ skb_reset_mac_header(skb);
+ skb_reset_network_header(skb);
+ #else
+ skb->mac.raw = pMac;
+ skb->nh.raw = pIP;
+ #endif
/*ip header length is in 32bit words */
- skb->h.raw = pIP + (skb->nh.iph->ihl * 4);
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
+ skb->transport_header = skb->network_header + (ip_hdr(skb)->ihl * 4);
+ #else
+ skb->h.raw = pIP + (skb->nh.iph->ihl * 4);
+ #endif
+
skb->protocol = htons(ETH_P_IP);
/* send this packet up the NIC driver */
diff -Nur vpnclient.orig/linux_os.h vpnclient/linux_os.h
--- vpnclient.orig/linux_os.h 2005-11-22 10:52:00.000000000 +0100
+++ vpnclient/linux_os.h 2007-05-29 16:05:44.000000000 +0200
@@ -5,6 +5,9 @@
* File: linux_os.h
* Date: 04/25/2001
*
+* Updated to work with Linux kernels >=2.6.19 (including 2.6.22) by
+* Alexander Griesser 29/05/07 <cisco@tuxx-home.at>
+*
***************************************************************************
*
* Macros for handling differences in the linux kernel api.
@@ -30,6 +33,39 @@
#define PACKET_TYPE_NEXT(pt) ((pt)->next)
#endif
+/* With linux 2.6.19, CHECKSUM_HW was split into CHECKSUM_COMPLETE
+ * and CHECKSUM_PARTIAL
+ */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19)
+ #define CHECK_IP_SUMMED(n) \
+ (((n) == CHECKSUM_COMPLETE) || ((n) == CHECKSUM_PARTIAL))
+ #define SKB_CHECKSUM_HELP(a,b) skb_checksum_help((a))
+#else
+ #define CHECK_IP_SUMMED(n) ((n) == CHECKSUM_HW)
+ #define SKB_CHECKSUM_HELP(a,b) skb_checksum_help((a),(b))
+#endif
+
+
+/* With linux 2.6.22, the sk_buff struct has changed
+ */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
+ #define CISCOVPN_SKB_NH_ID(a) (ip_hdr(a)->id)
+ #define CISCOVPN_SKB_NH_FRAGOFF(a) (ip_hdr(a)->frag_off)
+ #define CISCOVPN_SKB_NH_TOTLEN(a) (ip_hdr(a)->tot_len)
+ #define CISCOVPN_SKB_NH_IHL(a) (ip_hdr(a)->ihl)
+ #define CISCOVPN_SKB_IPHEADER(a) (ip_hdr(a))
+ #define CISCOVPN_SKB_MACHEADER(a) (skb_mac_header(a))
+ #define CISCOVPN_SKB_NETWORKHEADER(a) (skb_network_header(a))
+#else
+ #define CISCOVPN_SKB_NH_ID(a) (a->nh.iph->id)
+ #define CISCOVPN_SKB_NH_FRAGOFF(a) (a->nh.iph->frag_off)
+ #define CISCOVPN_SKB_NH_TOTLEN(a) (a->nh.iph->tot_len)
+ #define CISCOVPN_SKB_NH_IHL(a) (a->nh.iph->ihl)
+ #define CISCOVPN_SKB_IPHEADER(a) (a->nh.iph)
+ #define CISCOVPN_SKB_MACHEADER(a) (a->mac.raw)
+ #define CISCOVPN_SKB_NETWORKHEADER(a) (a->nh.raw)
+#endif
+
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,1,5)
#include <asm/uaccess.h>
#else

View File

@ -0,0 +1,167 @@
diff -Nur vpnclient/GenDefs.h vpnclient.new/GenDefs.h
--- vpnclient/GenDefs.h 2005-11-22 04:43:57.000000000 -0500
+++ vpnclient.new/GenDefs.h 2008-02-03 22:37:16.000000000 -0500
@@ -105,6 +105,12 @@
#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
@@ -114,6 +120,7 @@
#endif
#define _UINTPTR_T_DEFINED
#endif
+#endif
typedef int BOOL;
diff -Nur vpnclient/Makefile vpnclient.new/Makefile
--- vpnclient/Makefile 2005-11-22 04:43:57.000000000 -0500
+++ vpnclient.new/Makefile 2008-02-03 22:40:31.000000000 -0500
@@ -12,7 +12,7 @@
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 -Nur vpnclient/interceptor.c vpnclient.new/interceptor.c
--- vpnclient/interceptor.c 2008-02-03 22:39:23.000000000 -0500
+++ vpnclient.new/interceptor.c 2008-02-03 22:37:16.000000000 -0500
@@ -27,6 +27,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"
@@ -47,7 +51,13 @@
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);
@@ -91,15 +101,33 @@
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
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
+void
+#else
+int
+#endif
+#else
static int __init
+#endif
interceptor_init(struct net_device *dev)
{
ether_setup(dev);
@@ -113,8 +141,9 @@
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 *
@@ -344,7 +373,11 @@
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
@@ -843,15 +876,29 @@
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();
}
@@ -871,7 +918,11 @@
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;

View File

@ -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;

View File

@ -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

View File

@ -0,0 +1,35 @@
--- interceptor.c.orig 2008-01-10 22:19:29.000000000 +0100
+++ interceptor.c 2008-01-10 22:19:52.000000000 +0100
@@ -711,8 +711,18 @@
break;
case CNI_DISCARD:
+ /* patch found on ubuntuforums.org, written by aranoyas */
+ /* override local LAN access */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14)
+ rc2 = original_ip_handler.orig_handler_func(skb, dev, type, dev);
+#else
+ rc2 = original_ip_handler.orig_handler_func(skb, dev, type);
+#endif
+
+ /*
dev_kfree_skb(skb);
rx_dropped++;
+ */
break;
default:
printk(KERN_DEBUG "RECV: Unhandled case in %s rc was %x\n",
@@ -833,8 +843,13 @@
/* packet dropped */
else
{
+ /* patch found on ubuntuforums.org, originally written by aranoyas */
+ /* override local LAN access */
+ rc2 = pBinding->InjectSend(skb, dev);
+ /*
dev_kfree_skb(skb);
tx_dropped++;
+ */
}
break;
case CNI_CHAIN:

View File

@ -0,0 +1,78 @@
--- vpnclient.ori/interceptor.c 2009-05-21 01:16:34.000000000 +1200
+++ vpnclient/interceptor.c 2009-09-06 22:02:39.000000000 +1200
@@ -116,6 +116,14 @@
};
#endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+static struct net_device_ops interceptor_netdev_ops = {
+ .ndo_start_xmit = interceptor_tx,
+ .ndo_do_ioctl = interceptor_ioctl,
+ .ndo_get_stats = interceptor_stats,
+};
+#endif
+
static struct notifier_block interceptor_notifier = {
.notifier_call = handle_netdev_event,
};
@@ -129,9 +137,13 @@
{
ether_setup(dev);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+ dev->netdev_ops = &interceptor_netdev_ops;
+#else
dev->hard_start_xmit = interceptor_tx;
dev->get_stats = interceptor_stats;
dev->do_ioctl = interceptor_ioctl;
+#endif
dev->mtu = ETH_DATA_LEN-MTU_REDUCTION;
kernel_memcpy(dev->dev_addr, interceptor_eth_addr,ETH_ALEN);
@@ -242,6 +254,9 @@
{
int rc = -1;
int i = 0;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+ struct net_device_ops * tmp_ops;
+#endif
if (!supported_device(dev))
{
@@ -268,8 +283,14 @@
Bindings[i].original_mtu = dev->mtu;
/*replace the original send function with our send function */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+ Bindings[i].InjectSend = dev->netdev_ops->ndo_start_xmit;
+ tmp_ops = (struct net_device_ops *) dev->netdev_ops;
+ tmp_ops->ndo_start_xmit = replacement_dev_xmit;
+#else
Bindings[i].InjectSend = dev->hard_start_xmit;
dev->hard_start_xmit = replacement_dev_xmit;
+#endif
/*copy in the ip packet handler function and packet type struct */
Bindings[i].InjectReceive = original_ip_handler.orig_handler_func;
@@ -285,13 +306,21 @@
{
int rc = -1;
BINDING *b;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+ struct net_device_ops * tmp_ops;
+#endif
b = getbindingbydev(dev);
if (b)
{
rc = 0;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+ tmp_ops = (struct net_device_ops *) dev->netdev_ops;
+ tmp_ops->ndo_start_xmit = b->InjectSend;
+#else
dev->hard_start_xmit = b->InjectSend;
+#endif
kernel_memset(b, 0, sizeof(BINDING));
}
else

View File

@ -0,0 +1,150 @@
diff -urN vpnclient.orig/Makefile vpnclient/Makefile
--- vpnclient.orig/Makefile 2008-06-23 17:59:12.000000000 +0100
+++ vpnclient/Makefile 2008-07-09 23:16:54.000000000 +0100
@@ -12,7 +12,9 @@
SOURCE_OBJS := linuxcniapi.o frag.o IPSecDrvOS_linux.o interceptor.o linuxkernelapi.o
ifeq ($(SUBARCH),x86_64)
-CFLAGS += -mcmodel=kernel -mno-red-zone
+# Must NOT fiddle with CFLAGS
+# 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 -urN vpnclient.orig/frag.c vpnclient/frag.c
--- vpnclient.orig/frag.c 2008-06-23 17:59:12.000000000 +0100
+++ vpnclient/frag.c 2008-07-09 23:16:54.000000000 +0100
@@ -22,7 +22,9 @@
#include "frag.h"
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
-#define SKB_IPHDR(skb) ((struct iphdr*)skb->network_header)
+/* 2.6.22 added an inline function for 32-/64-bit usage here, so use it.
+ */
+#define SKB_IPHDR(skb) ((struct iphdr*)skb_network_header)
#else
#define SKB_IPHDR(skb) skb->nh.iph
#endif
diff -urN vpnclient.orig/interceptor.c vpnclient/interceptor.c
--- vpnclient.orig/interceptor.c 2008-06-23 17:59:12.000000000 +0100
+++ vpnclient/interceptor.c 2008-07-09 23:34:51.000000000 +0100
@@ -637,19 +637,30 @@
reset_inject_status(&pBinding->recv_stat);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
- if (skb->mac_header)
+/* 2.6.22 added an inline function for 32-/64-bit usage here, so use it.
+ */
+ if (skb_mac_header_was_set(skb))
#else
if (skb->mac.raw)
#endif
{
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
- hard_header_len = skb->data - skb->mac_header;
+/* 2.6.22 added an inline function for 32-/64-bit usage here, so use it.
+ */
+ hard_header_len = skb->data - skb_mac_header(skb);
#else
hard_header_len = skb->data - skb->mac.raw;
#endif
if ((hard_header_len < 0) || (hard_header_len > skb_headroom(skb)))
{
printk(KERN_DEBUG "bad hh len %d\n", hard_header_len);
+
+ printk(KERN_DEBUG "bad hh len %d, mac: %d, data: %p, head: %p\n",
+ hard_header_len,
+ skb->mac_header, /* actualy ptr in 32-bit */
+ skb->data,
+ skb->head);
+
hard_header_len = 0;
}
}
@@ -664,7 +675,9 @@
{
case ETH_HLEN:
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
- CniNewFragment(ETH_HLEN, skb->mac_header, &MacHdr, CNI_USE_BUFFER);
+/* 2.6.22 added an inline function for 32-/64-bit usage here, so use it.
+ */
+ CniNewFragment(ETH_HLEN, skb_mac_header(skb), &MacHdr, CNI_USE_BUFFER);
#else
CniNewFragment(ETH_HLEN, skb->mac.raw, &MacHdr, CNI_USE_BUFFER);
#endif
@@ -782,7 +795,9 @@
#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;
+/* 2.6.22 added an inline function for 32-/64-bit usage here, so use it.
+ */
+ hard_header_len = skb_network_header(skb) - skb->data;
#else
hard_header_len = skb->nh.raw - skb->data;
#endif
diff -urN vpnclient.orig/linuxcniapi.c vpnclient/linuxcniapi.c
--- vpnclient.orig/linuxcniapi.c 2008-06-23 17:59:12.000000000 +0100
+++ vpnclient/linuxcniapi.c 2008-07-09 23:16:54.000000000 +0100
@@ -338,8 +338,12 @@
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;
+/* 2.6.22 added an inline function for 32-/64-bit usage here, so use it.
+ * We have to use (pMac - skb->data) to get an offset.
+ * We need to cast ptrs to byte ptrs and take the difference.
+ */
+ skb_reset_network_header(skb);
+ skb_set_mac_header(skb, (int)((void *)pMac - (void *)skb->data));
#else
skb->nh.iph = (struct iphdr *) skb->data;
skb->mac.raw = pMac;
@@ -478,8 +482,12 @@
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;
+/* 2.6.22 added an inline function for 32-/64-bit usage here, so use it.
+ * We have to use (pIP/pMac - skb->data) to get an offset.
+ * We need to cast ptrs to byte ptrs and take the difference.
+ */
+ skb_set_mac_header(skb, (int)((void *)pMac - (void *)skb->data));
+ skb_set_network_header(skb, (int)((void *)pIP - (void *)skb->data));
#else
skb->mac.raw = pMac;
skb->nh.raw = pIP;
@@ -487,8 +495,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));
+/* 2.6.22 added an inline function for 32-/64-bit usage here, so use it.
+ * We have to use (pIP - skb->data) to get an offset.
+ * We need to cast ptrs to byte ptrs and take the difference.
+ */
+ skb_set_transport_header(skb,
+ ((int)((void *)pIP - (void *)skb->data) +
+ (((struct iphdr*)(skb_network_header(skb)))->ihl * 4)));
#else
skb->h.raw = pIP + (skb->nh.iph->ihl * 4);
#endif
diff -urN vpnclient.orig/linuxkernelapi.c vpnclient/linuxkernelapi.c
--- vpnclient.orig/linuxkernelapi.c 2008-06-23 17:59:12.000000000 +0100
+++ vpnclient/linuxkernelapi.c 2008-07-09 23:16:54.000000000 +0100
@@ -9,7 +9,10 @@
void*rc = kmalloc(size, GFP_ATOMIC);
if(NULL == rc)
{
- printk("<1> os_malloc size %d failed\n",size);
+/* Allow for 32- or 64-bit size
+ * printk("<1> os_malloc size %d failed\n",size);
+ */
+ printk("<1> os_malloc size %ld failed\n", (long)size);
}
return rc;

View File

@ -0,0 +1,116 @@
#!/sbin/runscript
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-misc/cisco-vpnclient-3des/files/vpnclient.rc,v 1.8 2006/12/12 15:08:12 wolf31o2 Exp $
opts="start stop status"
VPNCLIENT="/usr/bin/vpnclient"
VPNDEV="cipsec0"
depend() {
need net
}
checkconfig() {
export KV="$(uname -r)"
export VPNMOD="cisco_ipsec"
case "${KV}" in
2.6.*|2.5.*) VPNMOD_FILE="${VPNMOD}.ko";;
2.4.*|2.2.*|2.0.*) VPNMOD_FILE="${VPNMOD}.o";;
*)
eerror "Kernel version '${KV}' is not supported"
return 1;;
esac
export VPNMOD_FILE
return 0
}
start() {
checkconfig || return 1
local PC=""
ebegin "Starting Cisco VPN Client"
if [ -f /etc/resolv.conf.vpnbackup ]; then
einfo "restoring /etc/resolv.conf"
mv /etc/resolv.conf.vpnbackup /etc/resolv.conf
fi
if [ -d /lib/modules/preferred ]; then
PC="/lib/modules/preferred/CiscoVPN"
else
PC="/lib/modules/${KV}/CiscoVPN"
fi
if [ -d "${PC}" ] ; then
/sbin/insmod ${PC}/${VPNMOD_FILE} >/dev/null 2>&1
if [ "$?" != "0" ] ; then
eend 1 "Failed to load module '${VPNMOD}'"
return 1
fi
else
eend 1 "module directory '$PC' not found"
return 1
fi
if [ "${KV:0:3}" == "2.0" ] ; then
# This is only needed due to a bug in 2.0.x kernels that affects
# arp lookups.
ifconfig $VPNDEV 222.222.222.222 ;
if [ "$?" != "0" ] ; then
eerror "Failed (ifconfig)"
/sbin/rmmod ${VPNMOD}
eend 1
fi
fi
eend 0
}
stop() {
checkconfig || return 1
ebegin "Stopping Cisco VPN Client"
/sbin/lsmod | grep -q "${VPNMOD}"
if [ "$?" != "0" ] ; then
eend 1 "Failed: module ${VPNMOD} is not running"
return 1
fi
if [ -x $VPNCLIENT ]; then
$VPNCLIENT disconnect > /dev/null 2>&1
sleep 1
fi
/sbin/ifconfig $VPNDEV down
if [ "$?" != "0" ] ; then
eend 1 "Failed (ifconfig)"
return 1
fi
/sbin/rmmod ${VPNMOD}
if [ "$?" != "0" ] ; then
eend 1 "Failed (rmmod)"
return 1
fi
eend 0
}
status() {
checkconfig || return 1
/sbin/lsmod | egrep "${VPNMOD}"
if [ "$?" != "0" ] ; then
eerror "Failed (lsmod ${VPNMOD}): the VPN module is not loaded"
return 1
fi
echo
/sbin/ifconfig $VPNDEV
if [ "$?" != "0" ] ; then
echo
eerror "Failed (ifconfig ${VPNDEV}): the virtual interface is not present"
return 1
fi
}

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<herd>no-herd</herd>
<maintainer>
<email>maintainer-needed@gentoo.org</email>
</maintainer>
<longdescription>
This is the Cisco VPN Client, which is used to connect to Cisco VPN hardware, such as a VPN Concentrator, VPN Accelerator, or a PIX Firewall. This client is bound by export restrictions.
</longdescription>
<longdescription lang="ja">
これは Cisco 社の VPN Concentrator、VPN Accelerator、PIX Firewall といった VPN
製品と接続するのに使われる VPN クライアントです。このクライアントは輸出制限の範囲にあります。
</longdescription>
</pkgmetadata>

View File

@ -1,4 +1,5 @@
AUX 4.0.2-respect-ldflag.patch 719 RMD160 46eea70ae09fdff7f5bdbc7fe7f5628a0aa88785 SHA1 2d6d86c628f6dc731f469dc28e3e5dc46178b061 SHA256 81e5ebeb10b49f0a105e86a3570fd6d1a443b3e1812a38a188272bea68bf0bba
AUX 4.0.3-respect-ldflag.patch 719 RMD160 46eea70ae09fdff7f5bdbc7fe7f5628a0aa88785 SHA1 2d6d86c628f6dc731f469dc28e3e5dc46178b061 SHA256 81e5ebeb10b49f0a105e86a3570fd6d1a443b3e1812a38a188272bea68bf0bba
AUX perl-module-3.0.20070508.diff 1051 RMD160 320464fe114d8cf5b2cb7ea8d64a05a08c260460 SHA1 0cc9bb2339d27595ca1a0a46e9992a598644de82 SHA256 72555e1174f730929b013e8fac18b0f28cf2401a3e69f2431e62588952257f19
DIST foomatic-db-engine-4.0.2.tar.gz 341884 RMD160 537ffa7c2876ca9ed10a2d0131d2bd814ead6677 SHA1 1c754c1b52eeac49362df533c02a408d51f59220 SHA256 b8689bd1f66d1069fc04307f5a93fd9fdf9f4166c3c686d317f92dfe1df52579
DIST foomatic-db-engine-4.0.3.tar.gz 343161 RMD160 b37ff62173c15ead94243f008b27d91269e30f10 SHA1 8dcd6ec787f0a9e7e18ba1e3b81a045cb7876fab SHA256 8e2116527c1b456881e3fa02ee2108202c5c1e8932b2a1fc859374cf77515227

View File

@ -0,0 +1,15 @@
--- foomatic-db-engine-4.0.2/Makefile.in.orig 2009-07-23 11:45:28.487999828 +0200
+++ foomatic-db-engine-4.0.2/Makefile.in 2009-07-23 11:45:53.939525006 +0200
@@ -230,10 +230,10 @@
( cd lib && $(PERL) Makefile.PL verbose INSTALLDIRS=$(PERL_INSTALLDIRS) )
foomatic-combo-xml: foomatic-combo-xml.c
- $(CC) $(CFLAGS) -o foomatic-combo-xml foomatic-combo-xml.c
+ $(CC) $(CFLAGS) $(LDFLAGS) -o foomatic-combo-xml foomatic-combo-xml.c
foomatic-perl-data: foomatic-perl-data.c
- $(CC) $(CFLAGS) $(XML_CFLAGS) $(XML_LIBS) -o foomatic-perl-data foomatic-perl-data.c
+ $(CC) $(CFLAGS) $(XML_CFLAGS) $(XML_LIBS) $(LDFLAGS) -o foomatic-perl-data foomatic-perl-data.c
man: lib/Foomatic/Defaults.pm
chmod a+rx ./makeMan