Package: tun-source
Version: 1.1-4
Severity: wishlist
Tags: patch
This patch adds support for kfreebsd-gnu. You need to copy debian/control
into debian/control.in before appliing.
-- System Information:
Debian Release: 3.1
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: kfreebsd-i386 (i386)
Kernel: GNU/kFreeBSD 5.3-2
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) (ignored: LC_ALL set to C)
-- no debconf information
diff -ur tun-module.old/debian/control.in tun-module/debian/control.in
--- tun-module.old/debian/control.in 2005-02-10 14:30:59.000000000 +0100
+++ tun-module/debian/control.in 2005-02-10 14:32:03.000000000 +0100
@@ -2,6 +2,8 @@
Section: net
Priority: optional
Maintainer: Alexander Zangerl <[EMAIL PROTECTED]>
+Build-Depends: autotools-dev, type-handling (>= 0.2.1),
+ kfreebsd5-source [EMAIL PROTECTED]@], freebsd5-buildutils [EMAIL PROTECTED]@]
Standards-Version: 3.5.6.1
Package: tun-source
diff -ur tun-module.old/debian/rules tun-module/debian/rules
--- tun-module.old/debian/rules 2002-12-25 05:09:14.000000000 +0100
+++ tun-module/debian/rules 2005-02-10 14:18:34.000000000 +0100
@@ -2,10 +2,17 @@
# rules for building both the tun-source package as well as the
# tun-module package
+DEB_HOST_GNU_SYSTEM ?= $(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM)
+
clean:
test -f debian/rules
+ sed -e "s/@kfreebsd-gnu@/`type-handling any kfreebsd-gnu`/g" \
+ < debian/control.in > debian/control
-$(MAKE) distclean
-rm -rf debian/tmp debian/files* debian/substvars kdist_configure
debian/control.real debian/changelog.real
+ifeq ($(DEB_HOST_GNU_SYSTEM), kfreebsd-gnu)
+ rm -rf $(KSRC_BASE)
+endif
# building the tun-source package
binary-indep:
@@ -59,19 +66,35 @@
# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
+DEB_HOST_GNU_SYSTEM ?= $(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM)
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
# those will be passed by make-kpkg
+ifeq ($(DEB_HOST_GNU_SYSTEM), linux)
+kernel = linux
KSRC?=/usr/src/linux
+endif
+ifeq ($(DEB_HOST_GNU_SYSTEM), kfreebsd-gnu)
+kernel = freebsd
+KSRC_BASE := $(CURDIR)/kfreebsd-source
+KSRC := $(KSRC_BASE)/src/sys
+endif
+
KDREV?="custom.1.0"
+ifeq ($(DEB_HOST_GNU_SYSTEM), linux)
KVERSION :=$(shell egrep '^VERSION +=' $(KSRC)/Makefile 2>/dev/null | \
sed -e 's/[^0-9]*\([0-9]*\)/\1/')
KPLEVEL :=$(shell egrep '^PATCHLEVEL +=' $(KSRC)/Makefile 2>/dev/null | \
sed -e 's/[^0-9]*\([0-9]*\)/\1/')
KSUBLEVEL:=$(shell egrep '^SUBLEVEL +=' $(KSRC)/Makefile 2>/dev/null | \
sed -e 's/[^0-9]*\([0-9]*\)/\1/')
+else
+KVERSION := 0
+KPLEVEL := 0
+KSUBLEVEL := 0
+endif
# the sed regexps to insert the kernel version and revision
# into control and changelog
@@ -80,12 +103,20 @@
kdist_configure: kdist_clean
test -f debian/rules
+ifeq ($(DEB_HOST_GNU_SYSTEM), linux)
# make sure it builds only for 2.2.x
if [ "$(KPLEVEL).$(KVERSION)" != "2.2" ]; then \
echo -e "\n\n*** You were trying to build this package for kernel
$(KVERSION).$(KPLEVEL).$(KSUBLEVEL), but";\
echo "*** the package is supported only for the 2.2 kernel series.";\
echo -e "*** For kernels 2.4.x the tun/tap driver comes with the main
kernel.\n";\
exit 1; fi
+endif
+ifeq ($(DEB_HOST_GNU_SYSTEM), kfreebsd-gnu)
+ mkdir -p $(KSRC_BASE)
+ tar -C $(KSRC_BASE) -xjpf /usr/src/kfreebsd5/src.tar.bz2
+ cd $(KSRC_BASE) && cat /usr/src/kfreebsd5/patches/*.diff | patch -p0
+endif
+ cp /usr/share/misc/config.* ./
./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \
--prefix=/usr --mandir=\$${prefix}/share/man
--infodir=\$${prefix}/share/info --with-kernel=$(KSRC)
touch kdist_configure
@@ -96,14 +127,18 @@
kdist_image: kdist_configure
# clean up temp area
-rm -rf debian/tmp/
- # build the module in linux/tun.o
+ # build the module in $(kernel)/tun.o
+ifeq ($(DEB_HOST_GNU_SYSTEM), kfreebsd-gnu)
+ freebsd-make -C freebsd
+else
$(MAKE)
+endif
# setup temp area for module, docs and control info
install -d debian/tmp/DEBIAN debian/tmp/etc/modutils
install -d debian/tmp/usr/share/doc/tun-module-$(KVERS)
install -d debian/tmp/lib/modules/$(KVERS)/misc
# the module goes into misc...
- install linux/tun.o debian/tmp/lib/modules/$(KVERS)/misc
+ install $(kernel)/tun.o debian/tmp/lib/modules/$(KVERS)/misc
# the config file into /etc/modutils
install -m 644 debian/tun.modutuils debian/tmp/etc/modutils/tun-$(KVERS)
# do the necessary magic wrt. packagename and version: