public inbox for ipfire-scm@lists.ipfire.org
 help / color / mirror / Atom feed
* [IPFire-SCM] [git.ipfire.org] IPFire 3.x development tree branch, master, updated. 10165db27f1c1e4170b7985bc8fbf8179e910e62
@ 2012-01-07 20:14 git
  0 siblings, 0 replies; only message in thread
From: git @ 2012-01-07 20:14 UTC (permalink / raw)
  To: ipfire-scm

[-- Attachment #1: Type: text/plain, Size: 33907 bytes --]

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "IPFire 3.x development tree".

The branch, master has been updated
       via  10165db27f1c1e4170b7985bc8fbf8179e910e62 (commit)
       via  3561a2757c589b686a69a89c704907f685ece490 (commit)
       via  b1398028c2d44f70b54a06ff1fbf7726fcb39a39 (commit)
       via  31eec2defbb9b5358d70d31f6d4bb1fb60cd9e85 (commit)
       via  b28e544dd3a0881786a36bd85bb7a7c94cc173a5 (commit)
       via  a22ca966a85505646ea196fefef6e8a51ca8542d (commit)
       via  ee42bf43502cb569e69c6f19d5d22fb947c29885 (commit)
       via  0e51f14d9ddb21ed63093c68134c9e4ed905d5dd (commit)
       via  997373fd908358cccd263a7816da60c20eb6c7dd (commit)
       via  7072a3b0fef3aa28e590309a15d2d95ae84e588c (commit)
       via  4023155684b9803bc95fdebfefc40fad4c2dbe2c (commit)
       via  b63861229ecdf572ed05269ab25b8c1c2ca454e9 (commit)
       via  3f942a5206f1bb926a845563d84a1f71f06c0085 (commit)
       via  641c402a3cd9d128f93660fdd873adec2eee83a4 (commit)
       via  24bb6d49fa60ca272cb3848da8b8a59cb6408302 (commit)
       via  4500fa51a68a4fa53438ce493ff4924932b40375 (commit)
       via  78c574e7d217817cdd6cf8dd3bfc24bacc6cf0f4 (commit)
      from  255276ceded76952ecf13741a9b8063f3197cb0b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 10165db27f1c1e4170b7985bc8fbf8179e910e62
Merge: 3561a27 255276c
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sat Jan 7 21:13:54 2012 +0100

    Merge branch 'master' of ssh://git.ipfire.org/pub/git/ipfire-3.x

commit 3561a2757c589b686a69a89c704907f685ece490
Merge: b139802 24bb6d4
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sat Jan 7 21:13:15 2012 +0100

    Merge remote-tracking branch 'stevee/libtiff'
    
    Conflicts:
    	libtiff/libtiff.nm

commit b1398028c2d44f70b54a06ff1fbf7726fcb39a39
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sat Jan 7 17:30:51 2012 +0100

    lighttpd: Make package work on x86_64.

commit 31eec2defbb9b5358d70d31f6d4bb1fb60cd9e85
Merge: b28e544 4500fa5
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sat Jan 7 16:58:04 2012 +0100

    Merge remote-tracking branch 'stevee/lighttpd'

commit b28e544dd3a0881786a36bd85bb7a7c94cc173a5
Merge: a22ca96 72da3f6
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sat Jan 7 16:57:46 2012 +0100

    Merge branch 'master' of ssh://git.ipfire.org/pub/git/ipfire-3.x
    
    Conflicts:
    	dbus/dbus.nm
    	openldap/openldap.nm

commit a22ca966a85505646ea196fefef6e8a51ca8542d
Merge: ee42bf4 997373f
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sat Jan 7 16:55:43 2012 +0100

    Merge remote-tracking branch 'stevee/gettext'

commit ee42bf43502cb569e69c6f19d5d22fb947c29885
Merge: 0e51f14 641c402
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sat Jan 7 13:23:10 2012 +0100

    Merge remote-tracking branch 'stevee/openldap'

commit 0e51f14d9ddb21ed63093c68134c9e4ed905d5dd
Merge: 7072a3b b638612
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sat Jan 7 12:28:20 2012 +0100

    Merge remote-tracking branch 'stevee/dbus'

commit 997373fd908358cccd263a7816da60c20eb6c7dd
Author: Stefan Schantl <stefan.schantl(a)ipfire.org>
Date:   Sat Jan 7 12:27:26 2012 +0100

    gettext: Splitt development stuff and examples into own package.
    
    Fixes #307.

commit 7072a3b0fef3aa28e590309a15d2d95ae84e588c
Merge: 4023155 78c574e
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sat Jan 7 12:21:16 2012 +0100

    Merge remote-tracking branch 'stevee/automake'

commit 4023155684b9803bc95fdebfefc40fad4c2dbe2c
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sat Jan 7 12:16:34 2012 +0100

    mstpd: Add patch by Vitalii.
    
    I have not tested this, yet.

commit b63861229ecdf572ed05269ab25b8c1c2ca454e9
Author: Stefan Schantl <stefan.schantl(a)ipfire.org>
Date:   Sun Jan 1 22:18:52 2012 +0100

    dbus: Update to 1.4.16.

commit 3f942a5206f1bb926a845563d84a1f71f06c0085
Author: Stefan Schantl <stefan.schantl(a)ipfire.org>
Date:   Fri Dec 30 22:22:06 2011 +0100

    gettext: Fix testsuite.
    
    Reference #307

commit 641c402a3cd9d128f93660fdd873adec2eee83a4
Author: Stefan Schantl <stefan.schantl(a)ipfire.org>
Date:   Fri Dec 30 21:37:56 2011 +0100

    openldap: Update to 2.4.28.
    
    Fixes #309

commit 24bb6d49fa60ca272cb3848da8b8a59cb6408302
Author: Stefan Schantl <stefan.schantl(a)ipfire.org>
Date:   Fri Dec 30 21:14:23 2011 +0100

    libtiff: Update to 4.0.0 stable.
    
    Also update URL and add DL URL.
    
    Fixes #308.

commit 4500fa51a68a4fa53438ce493ff4924932b40375
Author: Stefan Schantl <stefan.schantl(a)ipfire.org>
Date:   Fri Dec 30 20:28:02 2011 +0100

    lighttpd: Update to 1.4.30.
    
    Fixex #311.

commit 78c574e7d217817cdd6cf8dd3bfc24bacc6cf0f4
Author: Stefan Schantl <stefan.schantl(a)ipfire.org>
Date:   Fri Dec 30 20:22:42 2011 +0100

    automake: Update to 1.11.2.
    
    Fixes #312

-----------------------------------------------------------------------

Summary of changes:
 automake/automake.nm                          |    6 +-
 dbus/dbus.nm                                  |    5 +-
 gettext/gettext.nm                            |   24 +-
 gettext/patches/gettext-readlink-einval.patch |   24 +
 libtiff/libtiff.nm                            |   16 +-
 lighttpd/lighttpd.nm                          |    9 +-
 mstpd/mstpd.nm                                |    2 +-
 mstpd/patches/add-del-bridge-commands.patch0  |  619 +++++++++++++++++++++++++
 openldap/openldap.nm                          |    6 +-
 9 files changed, 685 insertions(+), 26 deletions(-)
 create mode 100644 gettext/patches/gettext-readlink-einval.patch
 create mode 100644 mstpd/patches/add-del-bridge-commands.patch0

Difference in files:
diff --git a/automake/automake.nm b/automake/automake.nm
index 05812d9..d1ce4bc 100644
--- a/automake/automake.nm
+++ b/automake/automake.nm
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = automake
-version    = 1.11.1
-release    = 2
+version    = 1.11.2
+release    = 1
 arch       = noarch
 
 groups     = Development/Tools
@@ -14,7 +14,7 @@ license    = GPLv2+
 summary    = A GNU tool for automatically configuring source code.
 
 description
-	Automake is a tool for automatically generating Makefile.in \
+	Automake is a tool for automatically generating Makefile.in
 	files compliant with the GNU Coding Standards.
 end
 
diff --git a/dbus/dbus.nm b/dbus/dbus.nm
index c751bf1..6bfd2ea 100644
--- a/dbus/dbus.nm
+++ b/dbus/dbus.nm
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = dbus
-version    = 1.4.14
-release    = 3
+version    = 1.4.16
+release    = 2
 
 groups     = System/Daemons
 url        = http://www.freedesktop.org/software/dbus/
@@ -24,6 +24,7 @@ build
 	requires
 		audit-devel
 		expat-devel
+		libcap-ng-devel
 		libselinux-devel
 	end
 
diff --git a/gettext/gettext.nm b/gettext/gettext.nm
index f3eaa8c..98a5fca 100644
--- a/gettext/gettext.nm
+++ b/gettext/gettext.nm
@@ -5,7 +5,7 @@
 
 name       = gettext
 version    = 0.18.1.1
-release    = 4
+release    = 6
 
 groups     = System/Base
 url        = http://www.gnu.org/software/gettext/
@@ -40,10 +40,9 @@ build
 		--enable-shared \
 		--disable-rpath
 
-# Disable testsuite - it's broken ( readlink test )
-#	test
-#		make check
-#	end
+	test
+		make check
+	end
 
 	install_cmds
 		# cleanup rpaths
@@ -58,12 +57,27 @@ end
 packages
 	package %{name}
 
+	package %{name}-common-devel
+		summary = Common development files for gettext.
+		description = %{summary}
+		arch = noarch
+
+		files
+			/usr/share/gettext/
+		end
+	end
+
 	package %{name}-devel
 		template DEVEL
 
 		requires
+			gettext-common-devel=%{thisver}
 			gettext-libs=%{thisver}
 		end
+
+		files += \
+			/usr/bin/autopoint \
+			/usr/share/man/man1/autopoint.1
 	end
 
 	package %{name}-libs
diff --git a/gettext/patches/gettext-readlink-einval.patch b/gettext/patches/gettext-readlink-einval.patch
new file mode 100644
index 0000000..4cc9092
--- /dev/null
+++ b/gettext/patches/gettext-readlink-einval.patch
@@ -0,0 +1,24 @@
+diff -U 3 -p -r gettext-0.18.1.1.orig/gettext-tools/gnulib-tests/test-areadlink.h gettext-0.18.1.1/gettext-tools/gnulib-tests/test-areadlink.h
+--- gettext-0.18.1.1.orig/gettext-tools/gnulib-tests/test-areadlink.h	2010-02-16 16:32:26.000000000 -0500
++++ gettext-0.18.1.1/gettext-tools/gnulib-tests/test-areadlink.h	2011-08-31 16:16:26.325521167 -0400
+@@ -36,7 +36,7 @@ test_areadlink (char * (*func) (char con
+   ASSERT (errno == ENOENT);
+   errno = 0;
+   ASSERT (func ("", 1) == NULL);
+-  ASSERT (errno == ENOENT);
++  ASSERT (errno == ENOENT || errno == EINVAL);
+   errno = 0;
+   ASSERT (func (".", 1) == NULL);
+   ASSERT (errno == EINVAL);
+diff -U 3 -p -r gettext-0.18.1.1.orig/gettext-tools/gnulib-tests/test-readlink.h gettext-0.18.1.1/gettext-tools/gnulib-tests/test-readlink.h
+--- gettext-0.18.1.1.orig/gettext-tools/gnulib-tests/test-readlink.h	2011-08-31 15:54:15.000000000 -0400
++++ gettext-0.18.1.1/gettext-tools/gnulib-tests/test-readlink.h	2011-08-31 16:16:09.325165556 -0400
+@@ -38,7 +38,7 @@ test_readlink (ssize_t (*func) (char con
+   ASSERT (errno == ENOENT);
+   errno = 0;
+   ASSERT (func ("", buf, sizeof buf) == -1);
+-  ASSERT (errno == ENOENT);
++  ASSERT (errno == ENOENT || errno == EINVAL);
+   errno = 0;
+   ASSERT (func (".", buf, sizeof buf) == -1);
+   ASSERT (errno == EINVAL);
diff --git a/libtiff/libtiff.nm b/libtiff/libtiff.nm
index 35bb822..d81e2d4 100644
--- a/libtiff/libtiff.nm
+++ b/libtiff/libtiff.nm
@@ -4,23 +4,23 @@
 ###############################################################################
 
 name       = libtiff
-version    = 4.0.0beta7
+version    = 4.0.0
 release    = 2
+thisapp    = tiff-%{version}
 
 groups     = System/Libraries
-url        = http://www.libtiff.org
+url        = http://www.remotesensing.org/libtiff/
 license    = libtiff ( own )
 summary    = Library of functions for manipulating TIFF format image files.
 
 description
-	The libtiff package contains a library of functions for manipulating \
-	TIFF (Tagged Image File Format) image format files.  TIFF is a widely \
-	used file format for bitmapped images.  TIFF files usually end in the \
+	The libtiff package contains a library of functions for manipulating
+	TIFF (Tagged Image File Format) image format files.  TIFF is a widely
+	used file format for bitmapped images.  TIFF files usually end in the
 	.tif extension and they are often quite large.
 end
 
-source_dl  =
-sources    = tiff-%{version}.tar.gz
+source_dl  = ftp://ftp.remotesensing.org/pub/libtiff/
 
 build
 	requires
@@ -28,8 +28,6 @@ build
 		libjpeg-devel
 	end
 
-	DIR_APP = %{DIR_SRC}/tiff-%{version}
-
 	configure_options += \
 		--enable-defer-strile-load \
 		--enable-chunky-strip-read
diff --git a/lighttpd/lighttpd.nm b/lighttpd/lighttpd.nm
index ade0c47..4d137de 100644
--- a/lighttpd/lighttpd.nm
+++ b/lighttpd/lighttpd.nm
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = lighttpd
-version    = 1.4.29
+version    = 1.4.30
 ver_major  = 1.4
 release    = 2
 
@@ -38,7 +38,7 @@ build
 	end
 
 	configure_options += \
-		--libdir=/usr/lib/%{name} \
+		--libdir=%{libdir}/%{name} \
 		--with-ldap \
 		--with-openssl
 
@@ -73,7 +73,10 @@ packages
 			/etc/lighttpd.conf
 		end
 
-		prerequires = shadow-utils systemd-units
+		prerequires
+			shadow-utils
+			systemd-units
+		end
 
 		script prein
 			%{create_user}
diff --git a/mstpd/mstpd.nm b/mstpd/mstpd.nm
index 3e886d9..e4783f2 100644
--- a/mstpd/mstpd.nm
+++ b/mstpd/mstpd.nm
@@ -6,7 +6,7 @@
 name       = mstpd
 version    = 0.01
 svn_ver    = 22
-release    = 0.3-svn%{svn_ver}.1
+release    = 0.3-svn%{svn_ver}.2
 thisapp    = %{name}-%{version}-svn%{svn_ver}
 
 groups     = Networking/Tools
diff --git a/mstpd/patches/add-del-bridge-commands.patch0 b/mstpd/patches/add-del-bridge-commands.patch0
new file mode 100644
index 0000000..5f3e592
--- /dev/null
+++ b/mstpd/patches/add-del-bridge-commands.patch0
@@ -0,0 +1,619 @@
+Index: bridge_ctl.h
+===================================================================
+--- bridge_ctl.h	(revision 22)
++++ bridge_ctl.h	(revision 27)
+@@ -37,7 +37,7 @@
+     __u8 macaddr[ETH_ALEN];
+     char name[IFNAMSIZ];
+ 
+-    bool up, stp_up;
++    bool up;
+ } sysdep_br_data_t;
+ 
+ typedef struct
+Index: bridge-stp
+===================================================================
+--- bridge-stp	(revision 22)
++++ bridge-stp	(revision 27)
+@@ -44,12 +44,12 @@
+         checkpid $pid_file || exit 1
+         for b in $MSTP_BRIDGES; do
+             if [ "$bridge" == "$b" ]; then
+-                exec /sbin/mstpctl notify-daemon-that-stp-is-on $bridge
++                exec /sbin/mstpctl addbridge $bridge
+             fi
+         done
+         exit 1 ;;
+     stop)
+-        exec /sbin/mstpctl notify-daemon-that-stp-is-off $bridge
++        exec /sbin/mstpctl delbridge $bridge
+         ;;
+     *)
+         echo "Unknown action:" $2
+Index: ctl_functions.h
+===================================================================
+--- ctl_functions.h	(revision 22)
++++ ctl_functions.h	(revision 27)
+@@ -448,23 +448,16 @@
+ #define set_fids2mstids_CALL (in->br_index, in->fids2mstids)
+ CTL_DECLARE(set_fids2mstids);
+ 
+-/* stp_mode_notification */
+-#define CMD_CODE_stp_mode_notification  (122 | RESPONSE_FIRST_HANDLE_LATER)
+-#define stp_mode_notification_ARGS (int br_index, bool on)
+-struct stp_mode_notification_IN
+-{
+-    int br_index;
+-    bool on;
+-};
+-struct stp_mode_notification_OUT
+-{
+-};
+-#define stp_mode_notification_COPY_IN  ({ in->br_index = br_index; \
+-                                          in->on = on; })
+-#define stp_mode_notification_COPY_OUT ({ (void)0; })
+-#define stp_mode_notification_CALL (in->br_index, in->on)
+-CTL_DECLARE(stp_mode_notification);
++/* add bridges */
++#define CMD_CODE_add_bridges    (122 | RESPONSE_FIRST_HANDLE_LATER)
++#define add_bridges_ARGS (int *br_array, int* *ifaces_lists)
++CTL_DECLARE(add_bridges);
+ 
++/* delete bridges */
++#define CMD_CODE_del_bridges    (123 | RESPONSE_FIRST_HANDLE_LATER)
++#define del_bridges_ARGS (int *br_array)
++CTL_DECLARE(del_bridges);
++
+ /* General case part in ctl command server switch */
+ #define SERVER_MESSAGE_CASE(name)                            \
+     case CMD_CODE_ ## name : do                              \
+Index: bridge_track.c
+===================================================================
+--- bridge_track.c	(revision 22)
++++ bridge_track.c	(revision 27)
+@@ -175,27 +175,11 @@
+     }
+ }
+ 
+-static bool stp_enabled(bridge_t * br)
++static void set_br_up(bridge_t * br, bool up)
+ {
+-    char path[40 + IFNAMSIZ];
+-    sprintf(path, "/sys/class/net/%s/bridge/stp_state", br->sysdeps.name);
+-    FILE *f = fopen(path, "r");
+-    int enabled = 0;
+-    if(!f || (1 != fscanf(f, "%d", &enabled)))
+-        ERROR("Can't read from %s", path);
+-    fclose(f);
+-    INFO("STP on %s state %d", br->sysdeps.name, enabled);
++    INFO("%s was %s", br->sysdeps.name, br->sysdeps.up ? "up" : "down");
++    INFO("Set bridge %s %s", br->sysdeps.name, up ? "up" : "down");
+ 
+-    return enabled == 2; /* ie user mode STP */
+-}
+-
+-static void set_br_up(bridge_t * br, bool up, bool stp_up)
+-{
+-    INFO("%s was %s stp was %s", br->sysdeps.name,
+-         br->sysdeps.up ? "up" : "down", br->sysdeps.stp_up ? "up" : "down");
+-    INFO("Set bridge %s %s stp %s" , br->sysdeps.name,
+-         up ? "up" : "down", stp_up ? "up" : "down");
+-
+     bool changed = false;
+ 
+     if(up != br->sysdeps.up)
+@@ -204,12 +188,6 @@
+         changed = true;
+     }
+ 
+-    if(br->sysdeps.stp_up != stp_up)
+-    {
+-        br->sysdeps.stp_up = stp_up;
+-        changed = true;
+-    }
+-
+     if(check_mac_address(br->sysdeps.name, br->sysdeps.macaddr))
+     {
+         /* MAC address changed */
+@@ -218,7 +196,7 @@
+     }
+ 
+     if(changed)
+-        MSTP_IN_set_bridge_enable(br, br->sysdeps.up && br->sysdeps.stp_up);
++        MSTP_IN_set_bridge_enable(br, br->sysdeps.up);
+ }
+ 
+ static void set_if_up(port_t * ifc, bool up)
+@@ -291,15 +269,10 @@
+     if((br_index >= 0) && (br_index != if_index))
+     {
+         if(!(br = find_br(br_index)))
+-            br = create_br(br_index);
+-        if(!br)
+-        {
+-            ERROR("Couldn't create data for bridge interface %d", br_index);
+-            return -1;
+-        }
++            return -2; /* bridge not in list */
+         int br_flags = get_flags(br->sysdeps.name);
+         if(br_flags >= 0)
+-            set_br_up(br, !!(br_flags & IFF_UP), stp_enabled(br));
++            set_br_up(br, !!(br_flags & IFF_UP));
+     }
+ 
+     if(br)
+@@ -358,15 +331,8 @@
+             if(br_index == if_index)
+             {
+                 if(!(br = find_br(br_index)))
+-                {
+-                    if(!(br = create_br(br_index)))
+-                    {
+-                        ERROR("Couldn't create data for bridge interface %d",
+-                              br_index);
+-                        return -1;
+-                    }
+-                }
+-                set_br_up(br, up, stp_enabled(br));
++                    return -2; /* bridge not in list */
++                set_br_up(br, up);
+             }
+         }
+     }
+@@ -412,8 +378,6 @@
+     /* sanity checks */
+     TST(br == ifc->bridge,);
+     TST(ifc->sysdeps.up,);
+-    if(!br->sysdeps.stp_up)
+-        return;
+ 
+     /* Validate Ethernet and LLC header,
+      * maybe we can skip this check thanks to Berkeley filter in packet socket?
+@@ -840,12 +804,85 @@
+     return MSTP_IN_set_all_fids2mstids(br, fids2mstids) ? 0 : -1;
+ }
+ 
+-int CTL_stp_mode_notification(int br_index, bool on)
++int CTL_add_bridges(int *br_array, int* *ifaces_lists)
+ {
+-    int br_flags;
+-    CTL_CHECK_BRIDGE;
+-    if(0 > (br_flags = get_flags(br->sysdeps.name)))
+-        return br_flags;
+-    set_br_up(br, !!(br_flags & IFF_UP), on);
++    int i, j, ifcount, brcount = br_array[0];
++    bridge_t *br, *other_br;
++    port_t *ifc, *nxt;
++    int br_flags, if_flags;
++    int *if_array;
++    bool found;
++
++    for(i = 1; i <= brcount; ++i)
++    {
++        if(NULL == (br = find_br(br_array[i])))
++        {
++            if(NULL == (br = create_br(br_array[i])))
++            {
++                ERROR("Couldn't create data for bridge interface %d",
++                      br_array[i]);
++                return -1;
++            }
++            if(0 <= (br_flags = get_flags(br->sysdeps.name)))
++                set_br_up(br, !!(br_flags & IFF_UP));
++        }
++        if_array = ifaces_lists[i - 1];
++        ifcount = if_array[0];
++        /* delete all interfaces which are not in list */
++        list_for_each_entry_safe(ifc, nxt, &br->ports, br_list)
++        {
++            found = false;
++            for(j = 1; j <= ifcount; ++j)
++            {
++                if(ifc->sysdeps.if_index == if_array[j])
++                {
++                    found = true;
++                    break;
++                }
++            }
++            if(!found)
++                delete_if(ifc);
++        }
++        /* add all new interfaces from the list */
++        for(j = 1; j <= ifcount; ++j)
++        {
++            if(NULL != find_if(br, if_array[j]))
++                continue;
++            /* Check if this interface is slave of another bridge */
++            list_for_each_entry(other_br, &bridges, list)
++            {
++                if(other_br != br)
++                    if(delete_if_byindex(other_br, if_array[j]))
++                    {
++                        INFO("Device %d has come to bridge %s. "
++                             "Missed notify for deletion from bridge %s",
++                             if_array[j], br->sysdeps.name,
++                             other_br->sysdeps.name);
++                        break;
++                    }
++            }
++            if(NULL == (ifc = create_if(br, if_array[j])))
++            {
++                INFO("Couldn't create data for interface %d (master %s)",
++                     if_array[j], br->sysdeps.name);
++                continue;
++            }
++            if(0 <= (if_flags = get_flags(ifc->sysdeps.name)))
++                set_if_up(ifc, (IFF_UP | IFF_RUNNING) ==
++                               (if_flags & (IFF_UP | IFF_RUNNING))
++                         );
++        }
++    }
++
+     return 0;
+ }
++
++int CTL_del_bridges(int *br_array)
++{
++    int i, brcount = br_array[0];
++
++    for(i = 1; i <= brcount; ++i)
++        delete_br_byindex(br_array[i]);
++
++    return 0;
++}
+Index: ctl_socket_server.c
+===================================================================
+--- ctl_socket_server.c	(revision 22)
++++ ctl_socket_server.c	(revision 27)
+@@ -82,8 +82,92 @@
+         SERVER_MESSAGE_CASE(set_fid2mstid);
+         SERVER_MESSAGE_CASE(set_vids2fids);
+         SERVER_MESSAGE_CASE(set_fids2mstids);
+-        SERVER_MESSAGE_CASE(stp_mode_notification);
+ 
++        case CMD_CODE_add_bridges:
++        {
++            if(0 != lout)
++            {
++                LOG("Bad sizes: lout %d != 0", lout);
++                return -1;
++            }
++            if(sizeof(int) > lin)
++            {
++                LOG("Bad sizes: lin == 0");
++                return -1;
++            }
++            int *br_array = inbuf;
++            int i, serialized_data_count, chunk_count, brcount = br_array[0];
++            int *ptr = br_array + (serialized_data_count = (brcount + 1));
++            if(lin < ((serialized_data_count + 1) * sizeof(int)))
++            {
++bad_lin1:       LOG("Bad sizes: lin %d < %d", lin,
++                    (serialized_data_count + 1) * sizeof(int));
++                return -1;
++            }
++            for(i = 0; i < brcount; ++i)
++            {
++                serialized_data_count += (chunk_count = *ptr + 1);
++                if(i < (brcount - 1))
++                {
++                    if(lin < ((serialized_data_count + 1) * sizeof(int)))
++                        goto bad_lin1;
++                    ptr += chunk_count;
++                }
++                else
++                {
++                    if(lin != (serialized_data_count * sizeof(int)))
++                    {
++                        LOG("Bad sizes: lin %d != %d", lin,
++                            serialized_data_count * sizeof(int));
++                        return -1;
++                    }
++                }
++            }
++            int* *ifaces_lists = malloc(brcount * sizeof(int*));
++            if(NULL == ifaces_lists)
++            {
++                LOG("out of memory, brcount = %d\n", brcount);
++                return -1;
++            }
++            ptr = br_array + (brcount + 1);
++            for(i = 0; i < brcount; ++i)
++            {
++                ifaces_lists[i] = ptr;
++                ptr += ifaces_lists[i][0] + 1;
++            }
++            int r = CTL_add_bridges(br_array, ifaces_lists);
++            free(ifaces_lists);
++            if(r)
++                return r;
++            return r;
++        }
++
++        case CMD_CODE_del_bridges:
++        {
++            if(0 != lout)
++            {
++                LOG("Bad sizes: lout %d != 0", lout);
++                return -1;
++            }
++            if(sizeof(int) > lin)
++            {
++                LOG("Bad sizes: lin == 0");
++                return -1;
++            }
++            int *br_array = inbuf;
++            int brcount = br_array[0];
++            if(((brcount + 1) * sizeof(int)) != lin)
++            {
++                LOG("Bad sizes: lin %d != %d", lin,
++                    (brcount + 1) * sizeof(int));
++                return -1;
++            }
++            int r = CTL_del_bridges(br_array);
++            if(r)
++                return r;
++            return r;
++        }
++
+         default:
+             ERROR("CTL: Unknown command %d", cmd);
+             return -1;
+Index: mstp.c
+===================================================================
+--- mstp.c	(revision 22)
++++ mstp.c	(revision 27)
+@@ -206,7 +206,6 @@
+         return false;
+     list_add_tail(&cist->bridge_list, &br->trees);
+ 
+-    br_state_machines_begin(br);
+     return true;
+ }
+ 
+Index: ctl_main.c
+===================================================================
+--- ctl_main.c	(revision 22)
++++ ctl_main.c	(revision 27)
+@@ -636,6 +636,18 @@
+     return !('.' == n[0] && (0 == n[1] || ('.' == n[1] && 0 == n[2])));
+ }
+ 
++static int get_port_list(const char *br_ifname, struct dirent ***namelist)
++{
++    int res;
++    char buf[SYSFS_PATH_MAX];
++
++    snprintf(buf, sizeof(buf), SYSFS_CLASS_NET "/%s/brif", br_ifname);
++    if(0 > (res = scandir(buf, namelist, not_dot_dotdot, sorting_func)))
++        fprintf(stderr, "Error getting list of all ports of bridge %s\n",
++                br_ifname);
++    return res;
++}
++
+ static int cmd_showport(int argc, char *const *argv)
+ {
+     int r = 0;
+@@ -666,15 +678,8 @@
+     }
+     else
+     {
+-        char buf[SYSFS_PATH_MAX];
+-        snprintf(buf, sizeof(buf), SYSFS_CLASS_NET "/%s/brif", argv[1]);
+-        count = scandir(buf, &namelist, not_dot_dotdot, sorting_func);
+-        if(0 > count)
+-        {
+-            fprintf(stderr, "Error getting list of all ports of bridge %s\n",
+-                    argv[1]);
+-            return -1;
+-        }
++        if(0 > (count = get_port_list(argv[1], &namelist)))
++            return count;
+     }
+ 
+     for(i = 0; i < count; ++i)
+@@ -740,6 +745,91 @@
+     return 0;
+ }
+ 
++static int cmd_addbridge(int argc, char *const *argv)
++{
++    int i, j, res, ifcount, brcount = argc - 1;
++    int *br_array;
++    int* *ifaces_lists;
++
++    if(NULL == (br_array = malloc((brcount + 1) * sizeof(int))))
++    {
++out_of_memory_exit:
++        fprintf(stderr, "out of memory, brcount = %d\n", brcount);
++        return -1;
++    }
++    if(NULL == (ifaces_lists = malloc(brcount * sizeof(int*))))
++    {
++        free(br_array);
++        goto out_of_memory_exit;
++    }
++
++    br_array[0] = brcount;
++    for(i = 1; i <= brcount; ++i)
++    {
++        struct dirent **namelist;
++
++        br_array[i] = get_index(argv[i], "bridge");
++
++        if(0 > (ifcount = get_port_list(argv[i], &namelist)))
++        {
++ifaces_error_exit:
++            for(i -= 2; i >= 0; --i)
++                free(ifaces_lists[i]);
++            free(ifaces_lists);
++            free(br_array);
++            return ifcount;
++        }
++
++        if(NULL == (ifaces_lists[i - 1] = malloc((ifcount + 1) * sizeof(int))))
++        {
++            fprintf(stderr, "out of memory, bridge %s, ifcount = %d\n",
++                    argv[i], ifcount);
++            for(j = 0; j < ifcount; ++j)
++                free(namelist[j]);
++            free(namelist);
++            ifcount = -1;
++            goto ifaces_error_exit;
++        }
++
++        ifaces_lists[i - 1][0] = ifcount;
++        for(j = 1; j <= ifcount; ++j)
++        {
++            ifaces_lists[i - 1][j] = get_index(namelist[j - 1]->d_name, "port");
++            free(namelist[j - 1]);
++        }
++        free(namelist);
++    }
++
++    res = CTL_add_bridges(br_array, ifaces_lists);
++
++    for(i = 0; i < brcount; ++i)
++        free(ifaces_lists[i]);
++    free(ifaces_lists);
++    free(br_array);
++    return res;
++}
++
++static int cmd_delbridge(int argc, char *const *argv)
++{
++    int i, res, brcount = argc - 1;
++    int *br_array;
++
++    if(NULL == (br_array = malloc((brcount + 1) * sizeof(int))))
++    {
++        fprintf(stderr, "out of memory, brcount = %d\n", brcount);
++        return -1;
++    }
++
++    br_array[0] = brcount;
++    for(i = 1; i <= brcount; ++i)
++        br_array[i] = get_index(argv[i], "bridge");
++
++    res = CTL_del_bridges(br_array);
++
++    free(br_array);
++    return res;
++}
++
+ static unsigned int getuint(const char *s)
+ {
+     char *end;
+@@ -1191,23 +1281,6 @@
+     return CTL_set_fid2mstid(br_index, fid, mstid);
+ }
+ 
+-static int cmd_stp_mode_notification(int argc, char *const *argv, bool on)
+-{
+-    int br_index;
+-    /* Because this command has special handling,
+-     * argc was not checked earlier
+-     */
+-    if(2 > argc)
+-    {
+-        fprintf(stderr,
+-                "Incorrect number of arguments for notification command\n");
+-        exit(1);
+-    }
+-    if(0 > (br_index = get_index(argv[1], "bridge")))
+-        return br_index;
+-    return CTL_stp_mode_notification(br_index, on);
+-}
+-
+ struct command
+ {
+     int nargs;
+@@ -1220,6 +1293,12 @@
+ 
+ static const struct command commands[] =
+ {
++    /* Add/delete bridges */
++    {1, 32, "addbridge", cmd_addbridge,
++     "<bridge> [<bridge> ...]", "Add bridges to the mstpd's list"},
++    {1, 32, "delbridge", cmd_delbridge,
++     "<bridge> [<bridge> ...]", "Remove bridges from the mstpd's list"},
++
+     /* Show global bridge */
+     {0, 32, "showbridge", cmd_showbridge,
+      "[<bridge> ... [param]]", "Show bridge state for the CIST"},
+@@ -1370,12 +1449,6 @@
+     argv += optind;
+     if(NULL == (cmd = command_lookup(argv[0])))
+     {
+-        /* Two special commands not intended for interactive use */
+-        if(!strcmp(argv[0], "notify-daemon-that-stp-is-on"))
+-            return cmd_stp_mode_notification(argc, argv, true);
+-        if(!strcmp(argv[0], "notify-daemon-that-stp-is-off"))
+-            return cmd_stp_mode_notification(argc, argv, false);
+-
+         fprintf(stderr, "never heard of command [%s]\n", argv[0]);
+         goto help;
+     }
+@@ -1417,8 +1490,61 @@
+ CLIENT_SIDE_FUNCTION(set_fid2mstid)
+ CLIENT_SIDE_FUNCTION(set_vids2fids)
+ CLIENT_SIDE_FUNCTION(set_fids2mstids)
+-CLIENT_SIDE_FUNCTION(stp_mode_notification)
+ 
++CTL_DECLARE(add_bridges)
++{
++    int res = 0;
++    LogString log = { .buf = "" };
++    int i, chunk_count, brcount, serialized_data_count;
++    int *serialized_data, *ptr;
++
++    chunk_count = serialized_data_count = (brcount = br_array[0]) + 1;
++    for(i = 0; i < brcount; ++i)
++        serialized_data_count += ifaces_lists[i][0] + 1;
++    if(NULL == (serialized_data = malloc(serialized_data_count * sizeof(int))))
++    {
++        LOG("out of memory, serialized_data_count = %d",
++            serialized_data_count);
++        return -1;
++    }
++    memcpy(serialized_data, br_array, chunk_count * sizeof(int));
++    ptr = serialized_data + chunk_count;
++    for(i = 0; i < brcount; ++i)
++    {
++        chunk_count = ifaces_lists[i][0] + 1;
++        memcpy(ptr, ifaces_lists[i], chunk_count * sizeof(int));
++        ptr += chunk_count;
++    }
++
++    int r = send_ctl_message(CMD_CODE_add_bridges, serialized_data,
++                             serialized_data_count * sizeof(int),
++                             NULL, 0, &log, &res);
++    free(serialized_data);
++    if(r || res)
++        LOG("Got return code %d, %d\n%s", r, res, log.buf);
++    if(r)
++        return r;
++    if(res)
++        return res;
++    return 0;
++}
++
++CTL_DECLARE(del_bridges)
++{
++    int res = 0;
++    LogString log = { .buf = "" };
++    int r = send_ctl_message(CMD_CODE_del_bridges,
++                             br_array, (br_array[0] + 1) * sizeof(int),
++                             NULL, 0, &log, &res);
++    if(r || res)
++        LOG("Got return code %d, %d\n%s", r, res, log.buf);
++    if(r)
++        return r;
++    if(res)
++        return res;
++    return 0;
++}
++
+ /*********************** Logging *********************/
+ 
+ void Dprintf(int level, const char *fmt, ...)
diff --git a/openldap/openldap.nm b/openldap/openldap.nm
index 699f023..c6bfb7e 100644
--- a/openldap/openldap.nm
+++ b/openldap/openldap.nm
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = openldap
-version    = 2.4.25
-release    = 3
+version    = 2.4.28
+release    = 2
 
 groups     = System/Daemons
 url        = http://www.openldap.org/
@@ -21,7 +21,7 @@ description
 	documentation for OpenLDAP.
 end
 
-source_dl  =
+source_dl  = ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/
 sources    = %{thisapp}.tgz
 
 build


hooks/post-receive
--
IPFire 3.x development tree

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2012-01-07 20:14 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-01-07 20:14 [IPFire-SCM] [git.ipfire.org] IPFire 3.x development tree branch, master, updated. 10165db27f1c1e4170b7985bc8fbf8179e910e62 git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox