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 43a405aa48216dc988314fc35253358ffc2e53c8 (commit) via 8ef1102504359c5580b93b0e064ef68a2105abcc (commit) via 29663e22a623cc14c092f906c218592f5ebb6498 (commit) from 0f64d6ce1647a27c6249639d230c2e1af52b93a7 (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 43a405aa48216dc988314fc35253358ffc2e53c8 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Nov 23 23:54:27 2011 +0100
mstpd: Replace rstp package.
commit 8ef1102504359c5580b93b0e064ef68a2105abcc Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Nov 23 23:47:23 2011 +0100
rstp: Remove package which is replaced by mstpd.
commit 29663e22a623cc14c092f906c218592f5ebb6498 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Nov 23 23:46:44 2011 +0100
mstpd: Don't make the kernel a requirement.
-----------------------------------------------------------------------
Summary of changes: mstpd/mstpd.nm | 8 +- rstp/bridge-stp | 25 --- rstp/patches/rstp-0.21-dump-commands.patch | 274 ---------------------------- rstp/patches/rstp-0.21-netlink-fix.patch | 27 --- rstp/rstp.nm | 52 ------ rstp/systemd/rstp.service | 10 - 6 files changed, 6 insertions(+), 390 deletions(-) delete mode 100644 rstp/bridge-stp delete mode 100644 rstp/patches/rstp-0.21-dump-commands.patch delete mode 100644 rstp/patches/rstp-0.21-netlink-fix.patch delete mode 100644 rstp/rstp.nm delete mode 100644 rstp/systemd/rstp.service
Difference in files: diff --git a/mstpd/mstpd.nm b/mstpd/mstpd.nm index 87d3741..24fd092 100644 --- a/mstpd/mstpd.nm +++ b/mstpd/mstpd.nm @@ -6,7 +6,7 @@ name = mstpd version = 0.01 svn_ver = 16 -release = 0.2-svn%{svn_ver}.2 +release = 0.2-svn%{svn_ver}.4 thisapp = %{name}-%{version}-svn%{svn_ver}
groups = Networking/Tools @@ -38,7 +38,11 @@ packages
# A regression in the Linux kernel causes that no port # was brought up. It was fixed in 3.0.4-11. - requires += kernel>=3.0.4-11 + conflicts += kernel<3.0.4-11 + + # Replace rstp. + provides += rstp=0.21-9 + obsoletes += rstp<0.21-9
script postin /bin/systemctl daemon-reload >/dev/null 2>&1 || : diff --git a/rstp/bridge-stp b/rstp/bridge-stp deleted file mode 100644 index 947c12b..0000000 --- a/rstp/bridge-stp +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007, 2008, 2009 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### -# -# This script always returns 0 to prevent the kernel -# starting its own stp implementation. - -exit 0 diff --git a/rstp/patches/rstp-0.21-dump-commands.patch b/rstp/patches/rstp-0.21-dump-commands.patch deleted file mode 100644 index cc48819..0000000 --- a/rstp/patches/rstp-0.21-dump-commands.patch +++ /dev/null @@ -1,274 +0,0 @@ -diff --git a/ctl_main.c b/ctl_main.c -index dd041d7..7382d97 100644 ---- a/ctl_main.c -+++ b/ctl_main.c -@@ -443,6 +443,240 @@ static int cmd_debuglevel(int argc, char *const *argv) - return CTL_set_debug_level(getuint(argv[1])); - } - -+#define DUMP_FMT(br_name, key) "%-8s %-26s ", br_name, key -+ -+static int do_dumpbridge(const char *br_name) { -+ STP_BridgeStatus s; -+ -+ int br_index = get_index_die(br_name, "bridge", 0); -+ if (br_index < 0) -+ return -1; -+ -+ int r = CTL_get_bridge_status(br_index, &s); -+ if (r) -+ return -1; -+ -+ /* bridge forward delay */ -+ printf(DUMP_FMT(br_name, "bridge_forward_delay")); -+ printf("%u\n", s.bridge_forward_delay); -+ -+ /* bridge hello time */ -+ printf(DUMP_FMT(br_name, "bridge_hello_time")); -+ printf("%u\n", s.bridge_hello_time); -+ -+ /* bridge max age */ -+ printf(DUMP_FMT(br_name, "bridge_max_age")); -+ printf("%u\n", s.bridge_max_age); -+ -+ /* designated root */ -+ printf(DUMP_FMT(br_name, "designated_root")); -+ printf(BR_ID_FMT "\n", BR_ID_ARGS(s.designated_root)); -+ -+ /* enabled */ -+ printf(DUMP_FMT(br_name, "enabled")); -+ printf("%s\n", BOOL_STR(s.enabled)); -+ -+ /* forward delay */ -+ printf(DUMP_FMT(br_name, "forward_delay")); -+ printf("%u\n", s.forward_delay); -+ -+ /* hello time */ -+ printf(DUMP_FMT(br_name, "hello_time")); -+ printf("%u\n", s.hello_time); -+ -+ /* id */ -+ printf(DUMP_FMT(br_name, "id")); -+ printf(BR_ID_FMT "\n", BR_ID_ARGS(s.bridge_id)); -+ -+ /* max age */ -+ printf(DUMP_FMT(br_name, "max_age")); -+ printf("%u\n", s.max_age); -+ -+ /* protocol version */ -+ printf(DUMP_FMT(br_name, "protocol_version")); -+ printf("%d\n", s.protocol_version); -+ -+ /* root path cost */ -+ printf(DUMP_FMT(br_name, "root_path_cost")); -+ printf("%u\n", s.root_path_cost); -+ -+ /* root port */ -+ printf(DUMP_FMT(br_name, "root_port")); -+ printf("%u\n", s.root_port); -+ -+ /* time since topology change */ -+ printf(DUMP_FMT(br_name, "time_since_topology_change")); -+ printf("%u\n", s.time_since_topology_change); -+ -+ /* topology change */ -+ printf(DUMP_FMT(br_name, "topology_change")); -+ printf("%u\n", s.topology_change); -+ -+ /* topology change count */ -+ printf(DUMP_FMT(br_name, "topology_change_count")); -+ printf("%u\n", s.topology_change_count); -+ -+ /* tx hold count */ -+ printf(DUMP_FMT(br_name, "tx_hold_count")); -+ printf("%u\n", s.tx_hold_count); -+ -+ return 0; -+} -+ -+static int do_dumpbridgeport(int br_index, const char *pt_name) { -+ STP_PortStatus p; -+ int r = 0; -+ int port_index = get_index_die(pt_name, "port", 0); -+ if (port_index < 0) -+ return -1; -+ -+ r = CTL_get_port_status(br_index, port_index, &p); -+ if (r) { -+ fprintf(stderr, "Failed to get port state for port %d\n", port_index); -+ return -1; -+ } -+ -+ /* admin edge port */ -+ printf(DUMP_FMT(pt_name, "admin_edge_port")); -+ printf("%s\n", BOOL_STR(p.admin_edge_port)); -+ -+ /* admin point to point */ -+ printf(DUMP_FMT(pt_name, "admin_point_to_point")); -+ printf("%s\n", BOOL_STR(p.admin_p2p)); -+ -+ /* auto edge port */ -+ printf(DUMP_FMT(pt_name, "auto_edge_port")); -+ printf("%s\n", BOOL_STR(p.auto_edge_port)); -+ -+ /* path cost */ -+ printf(DUMP_FMT(pt_name, "admin_path_cost")); -+ printf("%d\n", p.admin_path_cost); -+ -+ /* designated bridge */ -+ printf(DUMP_FMT(pt_name, "designated_bridge")); -+ printf(BR_ID_FMT "\n", BR_ID_ARGS(p.designated_bridge)); -+ -+ /* designated cost */ -+ printf(DUMP_FMT(pt_name, "designated_cost")); -+ printf("%d\n", p.designated_cost); -+ -+ /* designated port */ -+ printf(DUMP_FMT(pt_name, "designated_port")); -+ printf("%0x\n", p.designated_port); -+ -+ /* designated root */ -+ printf(DUMP_FMT(pt_name, "designated_root")); -+ printf(BR_ID_FMT "\n", BR_ID_ARGS(p.designated_root)); -+ -+ /* enabled */ -+ printf(DUMP_FMT(pt_name, "enabled")); -+ printf("%s\n", BOOL_STR(p.enabled)); -+ -+ /* id */ -+ printf(DUMP_FMT(pt_name, "id")); -+ printf("%u\n", p.id & 0xfff); -+ -+ /* oper edge port */ -+ printf(DUMP_FMT(pt_name, "oper_edge_port")); -+ printf("%s\n", BOOL_STR(p.oper_edge_port)); -+ -+ /* path cost */ -+ printf(DUMP_FMT(pt_name, "path_cost")); -+ printf("%d\n", p.path_cost); -+ -+ /* point to point */ -+ printf(DUMP_FMT(pt_name, "point_to_point")); -+ printf("%s\n", BOOL_STR(p.oper_p2p)); -+ -+ /* state */ -+ printf(DUMP_FMT(pt_name, "state")); -+ printf(STATE_STR(p.state)); -+ printf("\n"); -+ -+ /* topology change ack */ -+ printf(DUMP_FMT(pt_name, "topology_change_ack")); -+ printf("%s\n", BOOL_STR(p.tc_ack)); -+ -+ return 0; -+} -+ -+static int cmd_dumpbridge(int argc, char *const *argv) -+{ -+ int i, count = 0; -+ int r = 0; -+ struct dirent **namelist; -+ -+ if (argc > 1) { -+ count = argc - 1; -+ } else { -+ count = -+ scandir(SYSFS_CLASS_NET, &namelist, isbridge, alphasort); -+ if (count < 0) { -+ fprintf(stderr, "Error getting list of all bridges\n"); -+ return -1; -+ } -+ } -+ -+ for (i = 0; i < count; i++) { -+ const char *name; -+ if (argc > 1) -+ name = argv[i + 1]; -+ else -+ name = namelist[i]->d_name; -+ -+ int err = do_dumpbridge(name); -+ if (err) -+ r = err; -+ } -+ -+ if (argc <= 1) { -+ for (i = 0; i < count; i++) -+ free(namelist[i]); -+ free(namelist); -+ } -+ -+ return r; -+} -+ -+static int cmd_dumpbridgeports(int argc, char *const *argv) -+{ -+ int r = 0; -+ -+ int br_index = get_index(argv[1], "bridge"); -+ -+ int i, count = 0; -+ struct dirent **namelist; -+ -+ if (argc > 2) { -+ count = argc - 2; -+ } else { -+ char buf[SYSFS_PATH_MAX]; -+ snprintf(buf, sizeof(buf), SYSFS_CLASS_NET "/%s/brif", argv[1]); -+ count = scandir(buf, &namelist, not_dot_dotdot, alphasort); -+ if (count < 0) { -+ fprintf(stderr, -+ "Error getting list of all ports of bridge %s\n", -+ argv[1]); -+ return -1; -+ } -+ } -+ -+ for (i = 0; i < count; i++) { -+ const char *name; -+ name = namelist[i]->d_name; -+ -+ int err = do_dumpbridgeport(br_index, name); -+ if (err) -+ r = err; -+ } -+ -+ for (i = 0; i < count; i++) -+ free(namelist[i]); -+ free(namelist); -+ -+ return r; -+} -+ - struct command { - int nargs; - int optargs; -@@ -483,6 +717,10 @@ static const struct command commands[] = { - {2, 0, "portmcheck", cmd_portmcheck, - "<bridge> <port>\ttry to get back from STP to RSTP mode"}, - {1, 0, "debuglevel", cmd_debuglevel, "<level>\t\tLevel of verbosity"}, -+ {0, 32, "dumpbridge", cmd_dumpbridge, -+ "Dump all information about a bridge in machine parseable format"}, -+ {1, 0, "dumpports", cmd_dumpbridgeports, -+ "Dump all port information in machine parseable format"}, - }; - - const struct command *command_lookup(const char *cmd) -diff --git a/rstpctl.8 b/rstpctl.8 -index ca72eaf..f827c85 100644 ---- a/rstpctl.8 -+++ b/rstpctl.8 -@@ -115,6 +115,13 @@ switch back to RSTP mode. - .B rstpctl debuglevel <level> - sets the level of verbosity of rstpd's logging. - -+.B rstpctl dumpbridge [<bridge> ...] -+dumps all informational parameters to the console. This is needed to -+parse the output in shell scripts for example. -+ -+.B rstpctl dumpports <bridge> [<port> ...] -+like dumpbridge but prints information about the ports of a bridge. -+ - .SH NOTES - TODO: Indicate lack of persistence of configuration across restarts of - daemon. diff --git a/rstp/patches/rstp-0.21-netlink-fix.patch b/rstp/patches/rstp-0.21-netlink-fix.patch deleted file mode 100644 index b834791..0000000 --- a/rstp/patches/rstp-0.21-netlink-fix.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 434d24bae108dbb21461a13a4abcf014afa8b029 Mon Sep 17 00:00:00 2001 -From: Stephen Hemminger shemminger@vyatta.com -Date: Tue, 11 Oct 2011 16:07:27 -0700 -Subject: [PATCH] fix bridge port state in netlink message - -The IFLA_PROTINFO is a u8 not u32, and sending a bigger value -to kernel means extra bytes are ignored, leaving state as always 0. ---- - brstate.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/brstate.c b/brstate.c -index 1fe792e..889c2ea 100644 ---- a/brstate.c -+++ b/brstate.c -@@ -42,7 +42,7 @@ static int br_set_state(struct rtnl_handle *rth, unsigned ifindex, __u8 state) - req.ifi.ifi_family = AF_BRIDGE; - req.ifi.ifi_index = ifindex; - -- addattr32(&req.n, sizeof(req.buf), IFLA_PROTINFO, state); -+ addattr_l(&req.n, sizeof(req.buf), IFLA_PROTINFO, &state, sizeof(state)); - - return rtnl_talk(rth, &req.n, 0, 0, NULL, NULL, NULL); - } --- -1.7.6.2 - diff --git a/rstp/rstp.nm b/rstp/rstp.nm deleted file mode 100644 index 9903d1e..0000000 --- a/rstp/rstp.nm +++ /dev/null @@ -1,52 +0,0 @@ -############################################################################### -# IPFire.org - An Open Source Firewall Solution # -# Copyright (C) - IPFire Development Team info@ipfire.org # -############################################################################### - -name = rstp -version = 0.21 -release = 8 - -groups = Networking/Tools -url = http://git.ipfire.org/?p=thirdparty/rstp.git;a=summary -license = GPLv2+ -summary = Rapid Spanning Tree Protocol for Linux Ethernet bridge. - -description - Rapid Spanning Tree Protocol for Linux Ethernet bridge. -end - -build - prepare_cmds - sed -i Makefile \ - -e "s/-Werror//" \ - -e "s/^CFLAGS =/CFLAGS = %{CFLAGS}/g" - end - - install - make install INSTALLPREFIX=%{BUILDROOT} - - rm -vf %{BUILDROOT}/sbin/bridge-stp - end -end - -packages - package %{name} - requires = network - - script postin - /bin/systemctl daemon-reload >/dev/null 2>&1 || : - /bin/systemctl --no-reload enable rstp.service >/dev/null 2>&1 || : - end - - script preun - /bin/systemctl --no-reload disable rstp.service >/dev/null 2>&1 || : - /bin/systemctl stop rstp.service >/dev/null 2>&1 || : - end - - script postup - /bin/systemctl daemon-reload >/dev/null 2>&1 || : - /bin/systemctl try-restart rstp.service >/dev/null 2>&1 || : - end - end -end diff --git a/rstp/systemd/rstp.service b/rstp/systemd/rstp.service deleted file mode 100644 index b9d6021..0000000 --- a/rstp/systemd/rstp.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Rapid Spanning Tree Protocol Daemon -Before=network.service - -[Service] -RemainAfterExit=yes -ExecStart=/sbin/rstpd -d - -[Install] -WantedBy=multi-user.target
hooks/post-receive -- IPFire 3.x development tree