Skip to contentSkip to conversation

update in-tree headers automatically

PATCH Applied Pablo Neira 2 participants 2 messages Nov 13, 2005 – Nov 14, 2005 netfilter

lore
Share & tools
lore

Pablo Neira

author maintainer
#0 lore raw

PATCH 2/2 update in-tree headers automatically

This patch add the ability to copy and mangle the kernel headers required by libnfnetlink and libnetfilter_[queue|log|conntrack] at autogen.sh stage.

Signature · 2 lines
The dawn of the fourth age of Linux firewalling is coming; a time of
great struggle and heroic deeds -- J.Kadlecsik got inspired by J.Morris
autogen.sh +20 -0
Index: libnfnetlink/autogen.sh
===================================================================
@@ -1,5 +1,24 @@
 #!/bin/sh
 
+include ()
+{
+    # If we keep a copy of the kernel header in the SVN tree, we'll have
+    # to worry about synchronization issues forever. Instead, we just copy 
+    # the headers that we need from the lastest kernel version at autogen
+    # stage.
+
+    INCLUDEDIR=/lib/modules/`uname -r`/build/include/linux
+    if [ -f $INCLUDEDIR/netfilter/nfnetlink.h ]
+    then
+    	TARGET=include/libnfnetlink/linux_nfnetlink.h
+    	echo "Copying nfnetlink.h to linux_nfnetlink.h"
+    	cp $INCLUDEDIR/netfilter/nfnetlink.h $TARGET
+    else
+    	echo "can't find nfnetlink.h kernel file"
+    	exit 1
+    fi
+}
+
 run ()
 {
     echo "running: $*"
@@ -11,6 +30,7 @@
     fi
 }
 
+include
 run aclocal
 #run autoheader
 run libtoolize -f
autogen.sh +23 -0
Index: libnetfilter_conntrack/autogen.sh
===================================================================
@@ -1,5 +1,27 @@
 #!/bin/sh
 
+include ()
+{
+    # If we keep a copy of the kernel header in the SVN tree, we'll have
+    # to worry about synchronization issues forever. Instead, we just copy 
+    # the headers that we need from the lastest kernel version at autogen
+    # stage.
+
+    INCLUDEDIR=/lib/modules/`uname -r`/build/include/linux
+    if [ -f $INCLUDEDIR/netfilter/nfnetlink_conntrack.h ]
+    then
+    	TARGET=include/libnetfilter_conntrack/linux_nfnetlink_conntrack.h
+    	echo "Copying nfnetlink_conntrack.h to linux_nfnetlink_conntrack.h"
+    	cp $INCLUDEDIR/netfilter/nfnetlink_conntrack.h $TARGET
+	TEMP=`tempfile`
+	sed 's/linux\/netfilter\/nfnetlink.h/libnfnetlink\/linux_nfnetlink.h/g' $TARGET > $TEMP
+	mv $TEMP $TARGET
+    else
+    	echo "can't find nfnetlink_conntrack.h kernel file"
+    	exit 1
+    fi
+}
+
 run ()
 {
     echo "running: $*"
@@ -11,6 +33,7 @@
     fi
 }
 
+include
 run aclocal
 run libtoolize -f
 #run autoheader
autogen.sh +35 -0
Index: libnetfilter_queue/autogen.sh
===================================================================
@@ -1,5 +1,39 @@
 #!/bin/sh
 
+include ()
+{
+    # If we keep a copy of the kernel header in the SVN tree, we'll have
+    # to worry about synchronization issues forever. Instead, we just copy 
+    # the headers that we need from the lastest kernel version at autogen
+    # stage.
+
+    INCLUDEDIR=/lib/modules/`uname -r`/build/include/linux
+    if [ -f $INCLUDEDIR/netfilter/nfnetlink_queue.h ]
+    then
+    	TARGET=include/libnetfilter_queue/linux_nfnetlink_queue.h
+    	echo "Copying nfnetlink_queue.h to linux_nfnetlink_queue.h"
+    	cp $INCLUDEDIR/netfilter/nfnetlink_queue.h $TARGET
+	TEMP=`tempfile`
+	sed 's/linux\/netfilter\/nfnetlink.h/libnfnetlink\/linux_nfnetlink.h/g' $TARGET > $TEMP
+	# Add aligned_u64 definition after #define _NFNETLINK_QUEUE_H
+	awk '{
+        if ( $0 == "#define _NFNETLINK_QUEUE_H" ) {
+		print $0
+		getline
+		print $0
+		print "#ifndef aligned_u64"
+		print "#define aligned_u64 unsigned long long __attribute__((aligned(8)))"
+		print "#endif"
+	}
+
+	print $0
+	}' $TEMP > $TARGET
+    else
+    	echo "can't find nfnetlink_queue.h kernel file"
+    	exit 1
+    fi
+}
+
 run ()
 {
     echo "running: $*"
@@ -11,6 +45,7 @@
     fi
 }
 
+include
 run libtoolize
 run aclocal
 #run autoheader
autogen.sh +35 -0
Index: libnetfilter_log/autogen.sh
===================================================================
@@ -1,5 +1,39 @@
 #!/bin/sh
 
+include ()
+{
+    # If we keep a copy of the kernel header in the SVN tree, we'll have
+    # to worry about synchronization issues forever. Instead, we just copy 
+    # the headers that we need from the lastest kernel version at autogen
+    # stage.
+
+    INCLUDEDIR=/lib/modules/`uname -r`/build/include/linux
+    if [ -f $INCLUDEDIR/netfilter/nfnetlink_log.h ]
+    then
+    	TARGET=include/libnetfilter_log/linux_nfnetlink_log.h
+    	echo "Copying nfnetlink_log.h to linux_nfnetlink_log.h"
+    	cp $INCLUDEDIR/netfilter/nfnetlink_log.h $TARGET
+	TEMP=`tempfile`
+	sed 's/linux\/netfilter\/nfnetlink.h/libnfnetlink\/linux_nfnetlink.h/g' $TARGET > $TEMP
+	# Add aligned_u64 definition after #define _NFNETLINK_LOG_H
+	awk '{
+        if ( $0 == "#define _NFNETLINK_LOG_H" ) {
+		print $0
+		getline
+		print $0
+		print "#ifndef aligned_u64"
+		print "#define aligned_u64 unsigned long long __attribute__((aligned(8)))"
+		print "#endif"
+	}
+
+	print $0
+	}' $TEMP > $TARGET
+    else
+    	echo "can't find nfnetlink_log.h kernel file"
+    	exit 1
+    fi
+}
+
 run ()
 {
     echo "running: $*"
@@ -11,6 +45,7 @@
     fi
 }
 
+include
 run aclocal
 #run autoheader
 run libtoolize -f
Applied
#1 lore raw
Quoted 3 lines · Pablo Neira

This patch add the ability to copy and mangle the kernel headers required by libnfnetlink and libnetfilter_[queue|log|conntrack] at autogen.sh stage.

thanks, applied.

Signature · 5 lines
- Harald Welte <[email protected]>                 http://netfilter.org/
============================================================================
  "Fragmentation is like classful addressing -- an interesting early
   architectural error that shows how much experimentation was going
   on while IP was being designed."                    -- Paul Vixie