bumps strongswan 2.8 for 2.4 kernels to latest version 2.8.11 (patch by edgar soldin)
authorFelix Fietkau <nbd@openwrt.org>
Wed, 9 Dec 2009 18:37:11 +0000 (18:37 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Wed, 9 Dec 2009 18:37:11 +0000 (18:37 +0000)
fixes a compile error because of the missing circleq implementation in uclibc.

SVN-Revision: 18724

net/strongswan/Makefile
net/strongswan/patches/400-pluto-fix_CIRCLEQ.patch [new file with mode: 0644]

index b86afff..9508e67 100644 (file)
@@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=strongswan
-PKG_VERSION:=2.8.2
-PKG_RELEASE:=2
+PKG_VERSION:=2.8.11
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://download.strongswan.org/
-PKG_MD5SUM:=57427f5b48123851a73b10d78dd4f8d6
+PKG_MD5SUM:=067189ae1586f0fdc5527c3c90448771
 
 include $(INCLUDE_DIR)/package.mk
 
diff --git a/net/strongswan/patches/400-pluto-fix_CIRCLEQ.patch b/net/strongswan/patches/400-pluto-fix_CIRCLEQ.patch
new file mode 100644 (file)
index 0000000..17c926e
--- /dev/null
@@ -0,0 +1,149 @@
+diff -Nurp strongswan-2.8.11.orig/linux/include/circ-queue.h strongswan-2.8.11.queue/linux/include/circ-queue.h
+--- strongswan-2.8.11.orig/linux/include/circ-queue.h  1970-01-01 01:00:00.000000000 +0100
++++ strongswan-2.8.11.queue/linux/include/circ-queue.h 2009-12-02 19:11:31.414549616 +0100
+@@ -0,0 +1,131 @@
++/*
++ * Copyright (c) 1991, 1993
++ *    The Regents of the University of California.  All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ *    notice, this list of conditions and the following disclaimer.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ *    notice, this list of conditions and the following disclaimer in the
++ *    documentation and/or other materials provided with the distribution.
++ * 3. All advertising materials mentioning features or use of this software
++ *    must display the following acknowledgement:
++ *    This product includes software developed by the University of
++ *    California, Berkeley and its contributors.
++ * 4. Neither the name of the University nor the names of its contributors
++ *    may be used to endorse or promote products derived from this software
++ *    without specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ *
++ *    @(#)queue.h     8.5 (Berkeley) 8/20/94
++ * $FreeBSD: ports/misc/44bsd-more/files/queue.h,v 1.1 2001/01/06 03:41:36 hoek Exp $
++ */
++
++/*
++ * Circular queue definitions.
++ */
++#define CIRCLEQ_HEAD(name, type)                                      \
++struct name {                                                         \
++      struct type *cqh_first;         /* first element */             \
++      struct type *cqh_last;          /* last element */              \
++}
++
++#define CIRCLEQ_ENTRY(type)                                           \
++struct {                                                              \
++      struct type *cqe_next;          /* next element */              \
++      struct type *cqe_prev;          /* previous element */          \
++}
++
++/*
++ * Circular queue functions.
++ */
++#define CIRCLEQ_EMPTY(head) ((head)->cqh_first == (void *)(head))
++
++#define CIRCLEQ_FIRST(head) ((head)->cqh_first)
++
++#define CIRCLEQ_FOREACH(var, head, field)                             \
++      for((var) = (head)->cqh_first;                                  \
++          (var) != (void *)(head);                                    \
++          (var) = (var)->field.cqe_next)
++
++#define CIRCLEQ_FOREACH_REVERSE(var, head, field)                     \
++      for((var) = (head)->cqh_last;                                   \
++          (var) != (void *)(head);                                    \
++          (var) = (var)->field.cqe_prev)
++
++#define       CIRCLEQ_INIT(head) do {                                         \
++      (head)->cqh_first = (void *)(head);                             \
++      (head)->cqh_last = (void *)(head);                              \
++} while (0)
++
++#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do {          \
++      (elm)->field.cqe_next = (listelm)->field.cqe_next;              \
++      (elm)->field.cqe_prev = (listelm);                              \
++      if ((listelm)->field.cqe_next == (void *)(head))                \
++              (head)->cqh_last = (elm);                               \
++      else                                                            \
++              (listelm)->field.cqe_next->field.cqe_prev = (elm);      \
++      (listelm)->field.cqe_next = (elm);                              \
++} while (0)
++
++#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do {         \
++      (elm)->field.cqe_next = (listelm);                              \
++      (elm)->field.cqe_prev = (listelm)->field.cqe_prev;              \
++      if ((listelm)->field.cqe_prev == (void *)(head))                \
++              (head)->cqh_first = (elm);                              \
++      else                                                            \
++              (listelm)->field.cqe_prev->field.cqe_next = (elm);      \
++      (listelm)->field.cqe_prev = (elm);                              \
++} while (0)
++
++#define CIRCLEQ_INSERT_HEAD(head, elm, field) do {                    \
++      (elm)->field.cqe_next = (head)->cqh_first;                      \
++      (elm)->field.cqe_prev = (void *)(head);                         \
++      if ((head)->cqh_last == (void *)(head))                         \
++              (head)->cqh_last = (elm);                               \
++      else                                                            \
++              (head)->cqh_first->field.cqe_prev = (elm);              \
++      (head)->cqh_first = (elm);                                      \
++} while (0)
++
++#define CIRCLEQ_INSERT_TAIL(head, elm, field) do {                    \
++      (elm)->field.cqe_next = (void *)(head);                         \
++      (elm)->field.cqe_prev = (head)->cqh_last;                       \
++      if ((head)->cqh_first == (void *)(head))                        \
++              (head)->cqh_first = (elm);                              \
++      else                                                            \
++              (head)->cqh_last->field.cqe_next = (elm);               \
++      (head)->cqh_last = (elm);                                       \
++} while (0)
++
++#define CIRCLEQ_LAST(head) ((head)->cqh_last)
++
++#define CIRCLEQ_NEXT(elm,field) ((elm)->field.cqe_next)
++
++#define CIRCLEQ_PREV(elm,field) ((elm)->field.cqe_prev)
++
++#define       CIRCLEQ_REMOVE(head, elm, field) do {                           \
++      if ((elm)->field.cqe_next == (void *)(head))                    \
++              (head)->cqh_last = (elm)->field.cqe_prev;               \
++      else                                                            \
++              (elm)->field.cqe_next->field.cqe_prev =                 \
++                  (elm)->field.cqe_prev;                              \
++      if ((elm)->field.cqe_prev == (void *)(head))                    \
++              (head)->cqh_first = (elm)->field.cqe_next;              \
++      else                                                            \
++              (elm)->field.cqe_prev->field.cqe_next =                 \
++                  (elm)->field.cqe_next;                              \
++} while (0)
+diff -Nurp strongswan-2.8.11.orig/programs/pluto/connections.h strongswan-2.8.11.queue/programs/pluto/connections.h
+--- strongswan-2.8.11.orig/programs/pluto/connections.h        2007-06-18 20:24:51.000000000 +0200
++++ strongswan-2.8.11.queue/programs/pluto/connections.h       2009-12-02 19:11:02.127064115 +0100
+@@ -18,6 +18,10 @@
+ #define _CONNECTIONS_H
+ #include <sys/queue.h>
++/* This handles the 'syntax error before "CIRCLEQ_ENTRY"' */
++#ifndef CIRCLEQ_HEAD
++#include <circ-queue.h>
++#endif
+ #include "id.h"
+ #include "certs.h"