Hello community,
here is the log from the commit of package yast2-network
checked in at Fri Jan 18 02:10:11 CET 2008.
--------
--- yast2-network/yast2-network.changes 2008-01-11 13:19:28.000000000 +0100
+++ /mounts/work_src_done/STABLE/yast2-network/yast2-network.changes 2008-01-17 15:25:31.000000000 +0100
@@ -1,0 +2,7 @@
+Thu Jan 17 15:19:55 CET 2008 - mzugec@suse.cz
+
+- remove NetworkInterfaces::device_name occurence
+- set interface to fw zone correctly (#327561)
+- 2.16.21
+
+-------------------------------------------------------------------
Old:
----
yast2-network-2.16.20.tar.bz2
New:
----
yast2-network-2.16.21.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-network.spec ++++++
++++ 3473 lines (skipped)
++++ between yast2-network/yast2-network.spec
++++ and /mounts/work_src_done/STABLE/yast2-network/yast2-network.spec
++++++ yast2-network-2.16.20.tar.bz2 -> yast2-network-2.16.21.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-network-2.16.20/src/lan/address.ycp new/yast2-network-2.16.21/src/lan/address.ycp
--- old/yast2-network-2.16.20/src/lan/address.ycp 2007-12-14 21:15:03.000000000 +0100
+++ new/yast2-network-2.16.21/src/lan/address.ycp 2008-01-17 15:23:49.000000000 +0100
@@ -4,7 +4,7 @@
* Summary: Network card adresss configuration dialogs
* Authors: Michal Svec
*
- * $Id: address.ycp 43492 2008-01-09 12:44:37Z mzugec $
+ * $Id: address.ycp 43716 2008-01-17 14:23:48Z mzugec $
*/
{
@@ -113,13 +113,12 @@
list<string> br_ports = splitstring(NetworkInterfaces::Current["BRIDGE_PORTS"]:"", " ");
map configurations = NetworkInterfaces::FilterDevices("netcard");
foreach(string devtype, splitstring(NetworkInterfaces::CardRegex["netcard"]:"", "|"), {
- foreach(string devnum, (list<string>) Map::Keys(configurations[devtype]:$[]), {
+ foreach(string devname, (list<string>) Map::Keys(configurations[devtype]:$[]), {
//filter the eth devices (IPADDR=0.0.0.0 - promiscuited mode)
- if ((string)configurations[devtype, devnum, "IPADDR"]:"" == "0.0.0.0")
+ if ((string)configurations[devtype, devname, "IPADDR"]:"" == "0.0.0.0")
{
- string dev_name = NetworkInterfaces::device_name(devtype, devnum);
- items = add (items, `item(`id(dev_name), sformat("%1 - %2",dev_name, NetworkInterfaces::GetValue(dev_name, "NAME")), contains(br_ports, dev_name)) );
+ items = add (items, `item(`id(devname), sformat("%1 - %2",devname, NetworkInterfaces::GetValue(devname, "NAME")), contains(br_ports, devname)) );
}
});
});
@@ -134,7 +133,8 @@
*/
void StoreBridge(string key, map event)
{
- settings["BRIDGE_PORTS"] = mergestring((list<string>)UI::QueryWidget (`id(key), `SelectedItems), " ");
+ settings["BRIDGE_PORTS"] = mergestring((list<string>)UI::QueryWidget (`id("BRIDGE_PORTS"), `SelectedItems), " ");
+y2internal("store bridge %1 : %2", key, settings["BRIDGE_PORTS"]:"");
}
/**
@@ -344,7 +344,7 @@
}
string ifcfgid = (string) UI::QueryWidget (`id ("IFCFGID"), `Value);
- string ifcfgname = NetworkInterfaces::device_name (ifcfgtype, ifcfgid);
+ string ifcfgname = sformat("%1%2", ifcfgtype, ifcfgid);
// Check should be improved to find differently named but
// equivalent configs (eg. by-mac and by-bus, depends on the
@@ -373,9 +373,7 @@
{
// If firewall is active and interface in no zone, nothing
// gets through (#62309) so warn and redirect to details
- string type = (string) UI::QueryWidget (`id ("IFCFGTYPE"), `Value);
- string id = (string) UI::QueryWidget (`id ("IFCFGID"), `Value);
- string name = NetworkInterfaces::device_name (type, id);
+ string name = (string) UI::QueryWidget (`id ("IFCFGID"), `Value);
if (SuSEFirewall4Network::IsOn () &&
SuSEFirewall4Network::GetZoneOfInterface (name) == "" &&
SuSEFirewall4Network::UnconfiguredIsBlocked ())
@@ -659,8 +657,7 @@
*/
define any AddressDialog() {
ScreenName("lan-address");
- string ifname = NetworkInterfaces::device_name (LanItems::type, LanItems::device);
- string fwzone = SuSEFirewall4Network::GetZoneOfInterface (ifname);
+ string fwzone = SuSEFirewall4Network::GetZoneOfInterface (LanItems::device);
// If firewall is active and interface in no zone, nothing
// gets through (#62309) so add it to the external zone
@@ -758,10 +755,11 @@
);
if(LanItems::operation != `add) {
if(LanItems::alias == "") {
- settings["IFCFG"] = NetworkInterfaces::device_name(NetworkInterfaces::RealType(LanItems::type, LanItems::hotplug), LanItems::device);
+ settings["IFCFG"] = LanItems::device;
}
else {
- settings["IFCFG"] = NetworkInterfaces::alias_name(NetworkInterfaces::RealType(LanItems::type, LanItems::hotplug), LanItems::device, LanItems::alias);
+// settings["IFCFG"] = NetworkInterfaces::alias_name(NetworkInterfaces::RealType(LanItems::type, LanItems::hotplug), LanItems::device, LanItems::alias);
+ settings["IFCFG"] = LanItems::device;
}
}
@@ -831,11 +829,11 @@
map configurations = NetworkInterfaces::FilterDevices("netcard");
foreach(string devtype, splitstring(NetworkInterfaces::CardRegex["netcard"]:"", "|"), {
- foreach(string devnum, (list<string>) Map::Keys(configurations[devtype]:$[]), {
+ foreach(string devname, (list<string>) Map::Keys(configurations[devtype]:$[]), {
//filter the eth devices (BOOT_PROTO=none && START_MODE=off)
- if (((string)configurations[devtype, devnum, "BOOTPROTO"]:"" == "none") && ((string)configurations[devtype, devnum, "STARTMODE"]:"" == "off"))
- wd["BONDSLAVE", "items"] = add (wd["BONDSLAVE", "items"]:[], [NetworkInterfaces::device_name(devtype, devnum)] );
+ if (((string)configurations[devtype, devname, "BOOTPROTO"]:"" == "none") && ((string)configurations[devtype, devname, "STARTMODE"]:"" == "off"))
+ wd["BONDSLAVE", "items"] = add (wd["BONDSLAVE", "items"]:[], [ devname ] );
});
});
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-network-2.16.20/src/lan/hardware.ycp new/yast2-network-2.16.21/src/lan/hardware.ycp
--- old/yast2-network-2.16.20/src/lan/hardware.ycp 2007-12-14 17:40:25.000000000 +0100
+++ new/yast2-network-2.16.21/src/lan/hardware.ycp 2008-01-17 15:23:49.000000000 +0100
@@ -4,7 +4,7 @@
* Summary: Hardware dialogs
* Authors: Michal Svec
*
- * $Id: hardware.ycp 43483 2008-01-08 17:49:13Z mzugec $
+ * $Id: hardware.ycp 43716 2008-01-17 14:23:48Z mzugec $
*/
{
@@ -461,19 +461,18 @@
if (LanItems::operation==`add){
LanItems::type = (string) UI::QueryWidget(`id(`dev), `Value);
- string nm = (string) UI::QueryWidget(`id(`num), `Value);
+ string nm = sformat("%1%2", LanItems::type, (string) UI::QueryWidget(`id(`num), `Value));
//Remember current device number (#308763)
LanItems::device = nm;
- string name=NetworkInterfaces::device_name(LanItems::type, nm);
- if(contains(NetworkInterfaces::List(""), name)) {
- Popup::Error(sformat(_("Configuration name %1 (%2) already exists.
-Choose a different one."), nm, NetworkInterfaces::device_name(hardware["type"]:"", nm)));
+ if(contains(NetworkInterfaces::List(""), nm)) {
+ Popup::Error(sformat(_("Configuration name %1 already exists.
+Choose a different one."), nm));
UI::SetFocus(`id(`num));
}
- NetworkInterfaces::Name = name;
- LanItems::Items[LanItems::current, "ifcfg"]= name;
+ NetworkInterfaces::Name = nm;
+ LanItems::Items[LanItems::current, "ifcfg"]= nm;
//Initialize udev map, so that setDriver (see below) sets correct module
LanItems::Items[LanItems::current, "udev"]= $[];
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-network-2.16.20/src/modules/DSL.ycp new/yast2-network-2.16.21/src/modules/DSL.ycp
--- old/yast2-network-2.16.20/src/modules/DSL.ycp 2007-12-14 17:40:25.000000000 +0100
+++ new/yast2-network-2.16.21/src/modules/DSL.ycp 2008-01-17 15:23:49.000000000 +0100
@@ -4,7 +4,7 @@
* Summary: DSL data
* Authors: Michal Svec
*
- * $Id: DSL.ycp 43483 2008-01-08 17:49:13Z mzugec $
+ * $Id: DSL.ycp 43716 2008-01-17 14:23:48Z mzugec $
*
* Representation of the configuration of DSL.
* Input and output routines.
@@ -452,7 +452,7 @@
newdev["VPIVCI"] = vpivci;
newdev["MODEM_IP"] = modemip;
- NetworkInterfaces::Name = NetworkInterfaces::device_name(type, device);
+ NetworkInterfaces::Name = device;
NetworkInterfaces::Current = newdev;
NetworkInterfaces::Commit();
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-network-2.16.20/src/modules/LanItems.ycp new/yast2-network-2.16.21/src/modules/LanItems.ycp
--- old/yast2-network-2.16.20/src/modules/LanItems.ycp 2007-12-14 17:36:19.000000000 +0100
+++ new/yast2-network-2.16.21/src/modules/LanItems.ycp 2008-01-17 14:49:55.000000000 +0100
@@ -287,7 +287,6 @@
confs = add(confs, file);
});
});
-y2internal("confs %1", confs);
return confs;
}
@@ -860,7 +859,6 @@
else Items[current, "ifcfg"] = NetworkInterfaces::Name;
// interfacename = GetItemUdev()[1]:"";
-// y2internal("interfacename %1", interfacename);
/* FIXME: alias: how to prefill new alias? */
alias = "";
@@ -1265,8 +1263,8 @@
foreach (map h, LanItems::Hardware, {
y2milestone("Checking for device=%1", h);
SelectHWMap(h);
- string _device_name = NetworkInterfaces::device_name(NetworkInterfaces::RealType(type, hotplug), device);
- if (!NetworkInterfaces::Check(_device_name) &&
+// string _device_name = NetworkInterfaces::device_name(NetworkInterfaces::RealType(type, hotplug), device);
+ if (!NetworkInterfaces::Check(device) &&
type == NetworkInterfaces::GetType(interface["device"]:"")
)
{
@@ -1379,7 +1377,7 @@
map devmap = NetworkInterfaces::Current;
type = Items[current, "hwinfo", "type"]:"";
if (!hasAnyValue(type)) type = NetworkInterfaces::GetType(getCurrentItem()["ifcfg"]:"");
- device = NetworkInterfaces::device_num(getCurrentItem()["ifcfg"]:"");
+ device = getCurrentItem()["ifcfg"]:"";
alias = NetworkInterfaces::alias_num(getCurrentItem()["ifcfg"]:"");
// nm_name = Items[current, "hwcfg"]:"";
// if (nm_name=="") nm_name_old = createHwcfgName(Items[current, "hwinfo"]:$[], type);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-network-2.16.20/src/modules/Lan.ycp new/yast2-network-2.16.21/src/modules/Lan.ycp
--- old/yast2-network-2.16.20/src/modules/Lan.ycp 2007-12-14 17:40:25.000000000 +0100
+++ new/yast2-network-2.16.21/src/modules/Lan.ycp 2008-01-17 15:23:49.000000000 +0100
@@ -4,7 +4,7 @@
* Summary: Network card data
* Authors: Michal Svec
*
- * $Id: Lan.ycp 43483 2008-01-08 17:49:13Z mzugec $
+ * $Id: Lan.ycp 43716 2008-01-17 14:23:48Z mzugec $
*
* Representation of the configuration of network cards.
* Input and output routines.
@@ -124,9 +124,9 @@
y2milestone("link_status %1", link_status);
map configurations = NetworkInterfaces::FilterDevices("netcard");
foreach(string devtype, splitstring(NetworkInterfaces::CardRegex["netcard"]:"", "|"), {
- foreach(string devnum, (list<string>) Map::Keys(configurations[devtype]:$[]), {
- string confname = NetworkInterfaces::device_name(devtype, devnum);
- string mac = ((map)SCR::Execute(.target.bash_output, sformat("cat /sys/class/net/%1/address|tr -d '\n'", confname)))["stdout"]:"";
+ foreach(string devname, (list<string>) Map::Keys(configurations[devtype]:$[]), {
+// string confname = NetworkInterfaces::device_name(devtype, devnum);
+ string mac = ((map)SCR::Execute(.target.bash_output, sformat("cat /sys/class/net/%1/address|tr -d '\n'", devname)))["stdout"]:"";
y2milestone("confname %1", mac);
if (!haskey(link_status, mac)) y2error("Mac address %1 not found in map %2!", mac, link_status);
else if (link_status[mac]:false == false) {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-network-2.16.20/src/modules/Modem.ycp new/yast2-network-2.16.21/src/modules/Modem.ycp
--- old/yast2-network-2.16.20/src/modules/Modem.ycp 2007-12-14 17:40:25.000000000 +0100
+++ new/yast2-network-2.16.21/src/modules/Modem.ycp 2008-01-17 15:23:49.000000000 +0100
@@ -4,7 +4,7 @@
* Summary: Modem data
* Authors: Michal Svec
*
- * $Id: Modem.ycp 43483 2008-01-08 17:49:13Z mzugec $
+ * $Id: Modem.ycp 43716 2008-01-17 14:23:48Z mzugec $
*
* Representation of the configuration of modem.
* Input and output routines.
@@ -415,7 +415,7 @@
"PPPD_OPTIONS" : PPPDoptions,
];
- NetworkInterfaces::Name = NetworkInterfaces::device_name(type, device);
+ NetworkInterfaces::Name = device;
NetworkInterfaces::Current = newdev;
NetworkInterfaces::Commit();
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-network-2.16.20/src/provider/connection.ycp new/yast2-network-2.16.21/src/provider/connection.ycp
--- old/yast2-network-2.16.20/src/provider/connection.ycp 2007-12-14 17:40:25.000000000 +0100
+++ new/yast2-network-2.16.21/src/provider/connection.ycp 2008-01-17 15:23:49.000000000 +0100
@@ -4,7 +4,7 @@
* Summary: Connection configuration dialogs
* Authors: Michal Svec
*
- * $Id: connection.ycp 43483 2008-01-08 17:49:13Z mzugec $
+ * $Id: connection.ycp 43716 2008-01-17 14:23:48Z mzugec $
*/
{
@@ -81,7 +81,7 @@
boolean FirewallChecked = false;
if (dtype != "")
{
- device = NetworkInterfaces::device_name (dtype, did);
+ device = did;
boolean adding = false;
if (type == "modem")
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-network-2.16.20/src/routines/complex.ycp new/yast2-network-2.16.21/src/routines/complex.ycp
--- old/yast2-network-2.16.20/src/routines/complex.ycp 2007-12-14 17:40:25.000000000 +0100
+++ new/yast2-network-2.16.21/src/routines/complex.ycp 2008-01-17 15:23:49.000000000 +0100
@@ -4,7 +4,7 @@
* Summary: Summary and overview functions
* Authors: Michal Svec
*
- * $Id: complex.ycp 43483 2008-01-08 17:49:13Z mzugec $
+ * $Id: complex.ycp 43716 2008-01-17 14:23:48Z mzugec $
*
*/
@@ -72,22 +72,19 @@
/* build a list of configured devices */
maplist(string devtype, map devsmap, Devs, {
- maplist(string devnum, map devmap, (map)devsmap, {
+ maplist(string devname, map devmap, (map)devsmap, {
/* main device summary */
- string descr = BuildDescription (devtype, devnum, devmap, Hardware);
+ string descr = BuildDescription (devtype, devname, devmap, Hardware);
string unq = devmap["UDI"]:"";
- string status = DeviceStatus(devtype, devnum, devmap);
+ string status = DeviceStatus(devtype, devname, devmap);
if (link)
{
if (devtype == "wlan" &&
devmap["WIRELESS_AUTH_MODE"]:"" == "open" &&
devmap["WIRELESS_KEY_0"]:"" == "")
{
- string dev = NetworkInterfaces::device_name(devtype, devnum);
- // avoid colons
- dev = mergestring (splitstring (dev, ":"), "/");
- string href = "lan--wifi-encryption-" + dev;
+ string href = "lan--wifi-encryption-" + devname;
// interface summary: WiFi without encryption
string warning = HTML::Colorize (_("Warning: no encryption is used."), "red");
status = status + " " + warning + " " +
@@ -98,7 +95,7 @@
}
configured = add(configured, Summary::Device(descr, status));
- uniques = add(uniques, devnum);
+ uniques = add(uniques, devname);
uniques_old = add(uniques_old, unq);
/* aliases summary */
@@ -109,7 +106,7 @@
// this is what used to be Virtual Interface
// (eth0:1)
descr = _("Additional Address");
- status = DeviceStatus(devtype, devnum /* FIXME: devname + sformat(":%1", aid)*/, amap);
+ status = DeviceStatus(devtype, devname /* FIXME: devname + sformat(":%1", aid)*/, amap);
configured = add(configured, Summary::Device(descr, status));
});
@@ -305,8 +302,7 @@
* @param devmap map with devices settings
* @return text wth device status
*/
-define string DeviceStatus(string devtype, string devnum, map devmap) {
- string dev = NetworkInterfaces::device_name(devtype, devnum);
+define string DeviceStatus(string devtype, string devname, map devmap) {
/* Modem and DSL */
if(devtype == "ppp" || devtype == "modem" || devtype == "dsl") {
@@ -314,15 +310,15 @@
if(nam == "" || nam == nil)
/* Modem status (%1 is device) */
- return sformat(_("Configured as %1"), dev);
+ return sformat(_("Configured as %1"), devname);
else
/* Modem status (%1 is device, %2 is provider) */
- return sformat(_("Configured as %1 with provider %2"), dev, nam);
+ return sformat(_("Configured as %1 with provider %2"), devname, nam);
}
/* ISDN card */
else if(devtype == "isdn" || devtype == "contr") {
/* ISDN device status (%1 is device) */
- return sformat(_("Configured as %1"), dev);
+ return sformat(_("Configured as %1"), devname);
}
/* ISDN stuff */
else if(devtype == "net") {
@@ -332,7 +328,7 @@
string proto = devmap["PROTOCOL"]:"";
/* ISDN status (%1 is device, %2 is provider, %3 protocol) */
- return sformat(_("Configured as %1 with provider %2 (protocol %3)"), dev, nam, proto);
+ return sformat(_("Configured as %1 with provider %2 (protocol %3)"), devname, nam, proto);
/* example: ISDN Connection to Arcor with syncppp on net0 */
// return sformat(_("to %1 with %2 on %3"), provider, proto, dev);
@@ -375,17 +371,17 @@
string remip = devmap["REMOTE_IPADDR"]:"";
if(addr == "" || addr == nil)
/* Network card status (%1 is device) */
- return sformat(_("Configured as %1"), dev);
+ return sformat(_("Configured as %1"), devname);
else if(remip == "" || remip == nil)
/* Network card status (%1 is device, %2 is address) */
- return sformat(_("Configured as %1 with address %2"), dev, addr);
+ return sformat(_("Configured as %1 with address %2"), devname, addr);
else
/* Network card status (%1 is device, %2 is address, %3 is address) */
- return sformat(_("Configured as %1 with address %2 (remote %3)"), dev, addr, remip);
+ return sformat(_("Configured as %1 with address %2 (remote %3)"), devname, addr, remip);
}
else
/* Network card status (%1 is device, %2 is protocol) */
- return sformat(_("Configured as %1 with %2"), dev, toupper(proto));
+ return sformat(_("Configured as %1 with %2"), devname, toupper(proto));
}
}
@@ -454,12 +450,11 @@
];
maplist(string type, map devmap, Devs, {
- maplist(string k, map v, (map)devmap, {
+ maplist(string devname, map v, (map)devmap, {
term item = nil;
- string dev = NetworkInterfaces::device_name(type, k);
string ip = DeviceProtocol(v);
- string descr = BuildDescription (type, k, v, Hardware);
+ string descr = BuildDescription (type, devname, v, Hardware);
// if(size(descr) > 17) descr = substring(descr, 0, 16) + "...";
string startmode_descr = startmode_descrs[v["STARTMODE"]:""]:_("Started manually");
@@ -470,17 +465,17 @@
// create the rich text description
string rich = HTML::Bold (descr)
+ "<br>" + HTML::List ( [
- sformat(_("Device Name: %1"), dev),
+ sformat(_("Device Name: %1"), devname),
sformat(_("Mode: %1"), v["PPPMODE"]:_("Unknown")),
startmode_descr,
]);
- item = `item(`id(dev), dev, NetworkInterfaces::GetDevTypeDescription(type, false), ProviderName(v["PROVIDER"]:""), rich);
+ item = `item(`id(devname), devname, NetworkInterfaces::GetDevTypeDescription(type, false), ProviderName(v["PROVIDER"]:""), rich);
}
/* ISDN stuff */
else if (type == "contr") {
// FIXME: richtext
string cname = v["NAME"]:"unknown";
- item = `item(`id(dev), dev, NetworkInterfaces::GetDevTypeDescription(type, false), cname /*, "active?", ip, "?", "?"*/);
+ item = `item(`id(devname), devname, NetworkInterfaces::GetDevTypeDescription(type, false), cname /*, "active?", ip, "?", "?"*/);
}
/* ISDN stuff */
else if (type == "net") {
@@ -488,7 +483,7 @@
string cname = v["PROVIDER"]:"unknown";
string rip = v["PTPADDR"]:"none";
string proto = v["PROTOCOL"]:"unknown";
- item = `item(`id(dev), dev, proto, cname, ip, rip);
+ item = `item(`id(devname), devname, proto, cname, ip, rip);
}
/* Treat others as network cards */
else {
@@ -498,7 +493,7 @@
*/
list<string> bullets = [
- sformat(_("Device Name: %1"), dev),
+ sformat(_("Device Name: %1"), devname),
startmode_descr,
];
if (v["STARTMODE"]:"" != "managed")
@@ -542,7 +537,7 @@
if (v["udi"]:(v["UDI"]:"")==device["udi"]:"") { found=true; break; }
});
- item = `item(`id(dev), descr, ip, rich, (found) ? hw_id : -1);
+ item = `item(`id(devname), descr, ip, rich, (found) ? hw_id : -1);
}
overview = add(overview, item);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-network-2.16.20/VERSION new/yast2-network-2.16.21/VERSION
--- old/yast2-network-2.16.20/VERSION 2007-12-14 21:07:29.000000000 +0100
+++ new/yast2-network-2.16.21/VERSION 2008-01-17 15:19:53.000000000 +0100
@@ -1 +1 @@
-2.16.20
+2.16.21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org