Hello community,
here is the log from the commit of package python-gnome
checked in at Mon Oct 23 18:29:59 CEST 2006.
--------
--- GNOME/python-gnome/python-gnome.changes 2006-09-30 08:05:29.000000000 +0200
+++ /mounts/work_src_done/STABLE/python-gnome/python-gnome.changes 2006-10-23 16:47:50.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Oct 23 16:42:39 CEST 2006 - jmatejek@suse.cz
+
+- update to 2.16.0 (no changes, only promoted 2.15.90 to stable status)
+- fixed some 64bit problems from PEP353 conversion
+
+-------------------------------------------------------------------
Old:
----
gnome-python-2.15.90.tar.bz2
New:
----
gnome-python-2.16.0-ssize.patch
gnome-python-2.16.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-gnome.spec ++++++
--- /var/tmp/diff_new_pack.VLX1gp/_old 2006-10-23 18:29:50.000000000 +0200
+++ /var/tmp/diff_new_pack.VLX1gp/_new 2006-10-23 18:29:50.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package python-gnome (Version 2.15.90)
+# spec file for package python-gnome (Version 2.16.0)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -14,15 +14,16 @@
BuildRequires: libbonobo-devel libbonoboui-devel libgnome-devel libgnomeui-devel python-devel python-gtk-devel python-orbit-devel update-desktop-files
URL: ftp://ftp.gnome.org/pub/gnome/sources/gnome-python
Summary: Python bindings for GNOME
-Version: 2.15.90
-Release: 9
+Version: 2.16.0
+Release: 1
Source: gnome-python-%{version}.tar.bz2
-License: LGPL
+License: GNU Library General Public License v. 2.0 and 2.1 (LGPL)
Group: Development/Libraries/Python
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%{py_requires}
Requires: python-gtk python-numeric python-orbit
-Patch: canvas.patch
+Patch0: canvas.patch
+Patch1: gnome-python-2.16.0-ssize.patch
%description
PyGNOME is an extension module for python that gives you access to the
@@ -56,7 +57,8 @@
%prep
%setup -q -n gnome-python-%{version}
-%patch -p1
+#%%patch -p1
+%patch1
%build
#%{?suse_update_config:%{suse_update_config -f}}
@@ -88,6 +90,9 @@
%{_includedir}/gnome-python-2.0
%changelog -n python-gnome
+* Mon Oct 23 2006 - jmatejek@suse.cz
+- update to 2.16.0 (no changes, only promoted 2.15.90 to stable status)
+- fixed some 64bit problems from PEP353 conversion
* Sat Sep 30 2006 - aj@suse.de
- Cleanup BuildRequires.
* Tue Sep 05 2006 - sbrabec@suse.cz
++++++ gnome-python-2.16.0-ssize.patch ++++++
--- bonobo/activationmodule.c
+++ bonobo/activationmodule.c
@@ -73,9 +73,9 @@
PyObject *args)
{
PyObject *pysort = NULL;
- guint i;
+ Py_ssize_t i;
gchar *query;
- guint len;
+ Py_ssize_t len;
gchar **sort;
CORBA_Environment ev;
Bonobo_ServerInfoList *infolist;
@@ -136,9 +136,9 @@
PyObject *pysort;
glong flags;
gchar *ret_aid;
- guint len;
+ Py_ssize_t len;
char **sort;
- guint i;
+ Py_ssize_t i;
CORBA_Environment ev;
CORBA_Object corba_object;
@@ -280,9 +280,9 @@
gchar *requirements;
PyObject *pysort = NULL;
glong flags = 0L;
- guint len;
+ Py_ssize_t len;
char **sort;
- guint i;
+ Py_ssize_t i;
CORBA_Environment ev;
PyObject *callback, *user_data = NULL;
WrapBAActAsyncData *data;
@@ -360,6 +360,7 @@
{
PyObject *av;
int argc;
+ Py_ssize_t cnt;
int i;
char **argv;
struct sigaction sa;
@@ -378,7 +379,8 @@
av = PySys_GetObject("argv");
if (av != NULL) {
- argc = PyList_Size(av);
+ cnt = PyList_Size(av);
+ if (cnt > INT_MAX) argc = INT_MAX; else argc = cnt;
argv = g_new(gchar *, argc);
for (i = 0; i < argc; i++) {
--- bonobo/bonobomodule.c
+++ bonobo/bonobomodule.c
@@ -36,6 +36,7 @@
struct sigaction sa;
PyObject *av;
int argc, i;
+ Py_ssize_t cnt;
char **argv;
/* perform any initialisation required by the library here */
@@ -45,7 +46,8 @@
av = PySys_GetObject("argv");
if (av != NULL) {
- argc = PyList_Size(av);
+ cnt = PyList_Size(av);
+ if (cnt > INT_MAX) argc = INT_MAX; else argc = cnt;
argv = g_new(char *, argc);
for (i = 0; i < argc; i++)
--- gnomecanvas/canvasmodule.c
+++ gnomecanvas/canvasmodule.c
@@ -32,10 +32,12 @@
{
GnomeCanvasPoints *points;
gint i, len;
+ Py_ssize_t s;
if (!PySequence_Check(object))
return -1;
- len = PySequence_Length(object);
+ s = PySequence_Length(object);
+ if (s > INT_MAX) len = INT_MAX; else len = s;
if (len % 2 != 0)
return -1;
--- gnomevfs/vfs-async-handle.c
+++ gnomevfs/vfs-async-handle.c
@@ -5,6 +5,8 @@
#include
#include
+inline int Py_wrap_ssize (Py_ssize_t s) { return (s > INT_MAX) ? INT_MAX : s; }
+
typedef struct {
PyObject_HEAD;
GnomeVFSAsyncHandle *fd;
@@ -395,7 +397,7 @@
notify = async_notify_new(callback, self, data, ASYNC_NOTIFY_WRITE);
notify->extra = buffer;
gnome_vfs_async_write(self->fd, PyString_AsString(buffer),
- PyString_Size(buffer),
+ Py_wrap_ssize(PyString_Size(buffer)),
(GnomeVFSAsyncWriteCallback)read_write_marshal,
notify);
@@ -468,7 +470,7 @@
PyObject *callback;
PyObject *data = NULL;
int priority = GNOME_VFS_PRIORITY_DEFAULT;
- int size, i;
+ Py_ssize_t size, i;
PyObject *pyself;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
--- gnomevfs/vfsmodule.c
+++ gnomevfs/vfsmodule.c
@@ -1019,7 +1019,7 @@
gboolean
_pygvfs_uri_sequence_to_glist(PyObject *seq, GList **list)
{
- int len, i;
+ Py_ssize_t len, i;
PyObject *item;
if (!PySequence_Check(seq))
@@ -1321,7 +1321,7 @@
static int
string_list_converter(PyObject *in, void *out)
{
- guint len, i;
+ Py_ssize_t len, i;
GList *list = NULL;
PyObject *item;
@@ -1855,8 +1855,8 @@
if (!py_env)
env = NULL;
else {
- int len = PyList_Size(py_env);
- int i;
+ Py_ssize_t len = PyList_Size(py_env);
+ Py_ssize_t i;
env = g_new(char *, len + 1);
for (i = 0; i < len; ++i) {
PyObject *item = PyList_GET_ITEM(py_env, i);
++++++ gnome-python-2.15.90.tar.bz2 -> gnome-python-2.16.0.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/gnome-python-2.15.90/ChangeLog new/gnome-python-2.16.0/ChangeLog
--- old/gnome-python-2.15.90/ChangeLog 2006-07-25 00:46:20.000000000 +0200
+++ new/gnome-python-2.16.0/ChangeLog 2006-09-04 23:50:20.000000000 +0200
@@ -1,3 +1,34 @@
+=== 2.16.0 ===
+2006-09-04 Gustavo J. A. M. Carneiro
+
+ * configure.in: Bump version to 2.16.0.
+
+ * NEWS: Update.
+
+=== 2.15.91 ===
+2006-08-21 Gustavo J. A. M. Carneiro
+
+ * NEWS: Update.
+
+ * configure.in: Bump version to 2.15.91.
+
+2006-08-17 Gustavo J. A. M. Carneiro
+
+ * acinclude.m4: Use distutils to extract the correct set of
+ libraries that libpython depends on. Fixes #351675.
+
+2006-08-09 Gustavo J. A. M. Carneiro
+
+ * bonobo/bonobo.defs: Oops, forgot about the API freeze, comment
+ out bonobo_main_level.
+
+ * bonobo/bonobo.defs: Wrap bonobo_main_level().
+
+ * bonobo/bonobo.override: Allow KeyboardInterrupt in bonobo.main()
+ ( mostly copied from pygobject ).
+ (_wrap_bonobo_main_quit): Raise exception if not running a bonobo
+ main loop.
+
=== 2.15.90 ===
2006-07-24 Gustavo J. A. M. Carneiro
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/gnome-python-2.15.90/NEWS new/gnome-python-2.16.0/NEWS
--- old/gnome-python-2.15.90/NEWS 2006-07-25 00:45:37.000000000 +0200
+++ new/gnome-python-2.16.0/NEWS 2006-09-04 23:49:01.000000000 +0200
@@ -1,3 +1,14 @@
+Overview of Changes from gnome-python 2.15.90 to gnome-python 2.16.0
+====================================================================
+* (nothing has changed)
+
+Overview of Changes from gnome-python 2.15.4 to gnome-python 2.15.90
+===================================================================
+* general
+ - Improved detection of the python library for embedding (Gustavo)
+* bonobo
+ - Allow KeyboardInterrupt in bonobo.main() (Gustavo)
+
Overview of Changes from gnome-python 2.15.4 to gnome-python 2.15.90
===================================================================
* gnomevfs
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/gnome-python-2.15.90/PKG-INFO new/gnome-python-2.16.0/PKG-INFO
--- old/gnome-python-2.15.90/PKG-INFO 2006-07-25 00:38:06.000000000 +0200
+++ new/gnome-python-2.16.0/PKG-INFO 2006-09-04 23:51:05.000000000 +0200
@@ -1,12 +1,12 @@
Metadata-Version: 1.0
Name: gnome-python
-Version: 2.15.90
+Version: 2.16.0
Summary: Python bindings for GTK
Home-page: http://www.daa.com.au/~james/software/pygtk/
Author: James Henstridge
Author-email: james@daa.com.au
License: GNU LGPL
-Download-url: http://ftp.gnome.org/pub/GNOME/sources/gnome-python/2.0/gnome-python- 2.15.90.tar.gz
+Download-url: http://ftp.gnome.org/pub/GNOME/sources/gnome-python/2.0/gnome-python- 2.16.0.tar.gz
Description: gnome-python is a set of bindings for the Gnome platform
libraries. It builds on top of the PyGTK bindings for GTK and
the PyORBit bindings for ORBit2.
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/gnome-python-2.15.90/acinclude.m4 new/gnome-python-2.16.0/acinclude.m4
--- old/gnome-python-2.15.90/acinclude.m4 2006-06-25 15:54:48.000000000 +0200
+++ new/gnome-python-2.16.0/acinclude.m4 2006-08-17 17:10:31.000000000 +0200
@@ -95,8 +95,12 @@
Py_ENABLE_SHARED=false;
fi
+PYTHON_LIB_DEPS=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_config_var('SYSLIBS'), sysconfig.get_config_var('SHLIBS')"`
+
save_LIBS="$LIBS"
-PYTHON_EMBED_LIBS="-L${py_prefix}/lib/ -lpython${PYTHON_VERSION}"
+
+PYTHON_EMBED_LIBS="-L${py_prefix}/lib/ ${PYTHON_LIB_DEPS} -lpython${PYTHON_VERSION}"
+
LIBS="$LIBS $PYTHON_EMBED_LIBS"
AC_TRY_LINK_FUNC(Py_Initialize, dnl
[
@@ -107,7 +111,9 @@
AC_MSG_RESULT([$PYTHON_EMBED_LIBS]);
$1], dnl
[
- PYTHON_EMBED_LIBS="-L${py_prefix}/lib/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}"
+
+ PYTHON_EMBED_LIBS="-L${py_prefix}/lib/python${PYTHON_VERSION}/config ${PYTHON_LIB_DEPS} -lpython${PYTHON_VERSION}"
+
LIBS="$save_LIBS $PYTHON_EMBED_LIBS";
AC_TRY_LINK_FUNC(Py_Initialize, dnl
[
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/gnome-python-2.15.90/bonobo/bonobo.defs new/gnome-python-2.16.0/bonobo/bonobo.defs
--- old/gnome-python-2.15.90/bonobo/bonobo.defs 2004-08-01 19:09:29.000000000 +0200
+++ new/gnome-python-2.16.0/bonobo/bonobo.defs 2006-08-09 17:51:26.000000000 +0200
@@ -767,6 +767,11 @@
(return-type "none")
)
+;(define-function main_level
+; (c-name "bonobo_main_level")
+; (return-type "none")
+;)
+
(define-function activate
(c-name "bonobo_activate")
(return-type "gboolean")
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/gnome-python-2.15.90/bonobo/bonobo.override new/gnome-python-2.16.0/bonobo/bonobo.override
--- old/gnome-python-2.15.90/bonobo/bonobo.override 2005-01-28 02:04:01.000000000 +0100
+++ new/gnome-python-2.16.0/bonobo/bonobo.override 2006-08-09 17:31:12.000000000 +0200
@@ -399,17 +399,93 @@
}
%%
override bonobo_main noargs
+
+
+ /* This code (pybonobo main watch) was copied with minor changes from
+ * pygobject/gobject/pygmainloop.c */
+static gboolean
+pybonobo_main_watch_prepare(GSource *source,
+ int *timeout)
+{
+ /* Python only invokes signal handlers from the main thread,
+ * so if a thread other than the main thread receives the signal
+ * from the kernel, PyErr_CheckSignals() from that thread will
+ * do nothing. So, we need to time out and check for signals
+ * regularily too.
+ * Also, on Windows g_poll() won't be interrupted by a signal
+ * (AFAIK), so we need the timeout there too.
+ */
+#ifndef PLATFORM_WIN32
+ if (pyg_threads_enabled)
+#endif
+ *timeout = 100;
+
+ return FALSE;
+}
+
+static gboolean
+pybonobo_main_watch_check(GSource *source)
+{
+ PyGILState_STATE state;
+
+ state = pyg_gil_state_ensure();
+
+ if (PyErr_CheckSignals() == -1 && bonobo_main_level() > 0) {
+ PyErr_SetNone(PyExc_KeyboardInterrupt);
+ bonobo_main_quit();
+ }
+
+ pyg_gil_state_release(state);
+
+ return FALSE;
+}
+
+static gboolean
+pybonobo_main_watch_dispatch(GSource *source,
+ GSourceFunc callback,
+ gpointer user_data)
+{
+ /* We should never be dispatched */
+ g_assert_not_reached();
+ return TRUE;
+}
+
+static GSourceFuncs pybonobo_main_watch_funcs =
+{
+ pybonobo_main_watch_prepare,
+ pybonobo_main_watch_check,
+ pybonobo_main_watch_dispatch,
+ NULL
+};
+
+static GSource *
+pybonobo_main_watch_new(void)
+{
+ return g_source_new(&pybonobo_main_watch_funcs, sizeof(GSource));
+}
+
+
static PyObject *
_wrap_bonobo_main(PyObject *self)
{
+ GSource *main_watch;
+ // Call enable_threads again to ensure that the thread state is recorded
+ if (pyg_threads_enabled)
+ pyg_enable_threads();
+
+ main_watch = pybonobo_main_watch_new();
pyg_begin_allow_threads;
+ g_source_attach(main_watch, NULL);
bonobo_main();
+ g_source_destroy(main_watch);
pyg_end_allow_threads;
if (PyErr_Occurred())
- return NULL;
+ return NULL;
Py_INCREF(Py_None);
return Py_None;
}
+
+
%%
override bonobo_application_register_message_v kwargs
static PyObject *
@@ -822,3 +898,18 @@
Py_INCREF(Py_None);
return Py_None;
}
+
+%%
+override bonobo_main_quit noargs
+static PyObject *
+_wrap_bonobo_main_quit(PyObject *self)
+{
+ if (bonobo_main_level() == 0) {
+ PyErr_SetString(PyExc_RuntimeError, "not running a bonobo main loop");
+ return NULL;
+ }
+ bonobo_main_quit();
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/gnome-python-2.15.90/configure new/gnome-python-2.16.0/configure
--- old/gnome-python-2.15.90/configure 2006-07-25 00:37:39.000000000 +0200
+++ new/gnome-python-2.16.0/configure 2006-09-04 23:50:40.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for gnome-python 2.15.90.
+# Generated by GNU Autoconf 2.59 for gnome-python 2.16.0.
#
# Report bugs to http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-python.
#
@@ -423,8 +423,8 @@
# Identity of this package.
PACKAGE_NAME='gnome-python'
PACKAGE_TARNAME='gnome-python'
-PACKAGE_VERSION=' 2.15.90'
-PACKAGE_STRING='gnome-python 2.15.90'
+PACKAGE_VERSION=' 2.16.0'
+PACKAGE_STRING='gnome-python 2.16.0'
PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-python'
# Factoring default headers for most tests.
@@ -1053,7 +1053,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures gnome-python 2.15.90 to adapt to many kinds of systems.
+\`configure' configures gnome-python 2.16.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1119,7 +1119,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of gnome-python 2.15.90:";;
+ short | recursive ) echo "Configuration of gnome-python 2.16.0:";;
esac
cat <<\_ACEOF
@@ -1305,7 +1305,7 @@
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
-gnome-python configure 2.15.90
+gnome-python configure 2.16.0
generated by GNU Autoconf 2.59
Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1319,7 +1319,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by gnome-python $as_me 2.15.90, which was
+It was created by gnome-python $as_me 2.16.0, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
@@ -1965,7 +1965,7 @@
# Define the identity of the package.
PACKAGE='gnome-python'
- VERSION=' 2.15.90'
+ VERSION=' 2.16.0'
cat >>confdefs.h <<_ACEOF
@@ -2103,12 +2103,12 @@
cat >>confdefs.h <<\_ACEOF
-#define GNOME_PYTHON_MINOR_VERSION 15
+#define GNOME_PYTHON_MINOR_VERSION 16
_ACEOF
cat >>confdefs.h <<\_ACEOF
-#define GNOME_PYTHON_MICRO_VERSION 90
+#define GNOME_PYTHON_MICRO_VERSION 0
_ACEOF
@@ -19032,8 +19032,12 @@
Py_ENABLE_SHARED=false;
fi
+PYTHON_LIB_DEPS=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_config_var('SYSLIBS'), sysconfig.get_config_var('SHLIBS')"`
+
save_LIBS="$LIBS"
-PYTHON_EMBED_LIBS="-L${py_prefix}/lib/ -lpython${PYTHON_VERSION}"
+
+PYTHON_EMBED_LIBS="-L${py_prefix}/lib/ ${PYTHON_LIB_DEPS} -lpython${PYTHON_VERSION}"
+
LIBS="$LIBS $PYTHON_EMBED_LIBS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
@@ -19092,7 +19096,9 @@
sed 's/^/| /' conftest.$ac_ext >&5
- PYTHON_EMBED_LIBS="-L${py_prefix}/lib/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}"
+
+ PYTHON_EMBED_LIBS="-L${py_prefix}/lib/python${PYTHON_VERSION}/config ${PYTHON_LIB_DEPS} -lpython${PYTHON_VERSION}"
+
LIBS="$save_LIBS $PYTHON_EMBED_LIBS";
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
@@ -21798,7 +21804,7 @@
} >&5
cat >&5 <<_CSEOF
-This file was extended by gnome-python $as_me 2.15.90, which was
+This file was extended by gnome-python $as_me 2.16.0, which was
generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -21861,7 +21867,7 @@
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-gnome-python config.status 2.15.90
+gnome-python config.status 2.16.0
configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/gnome-python-2.15.90/configure.in new/gnome-python-2.16.0/configure.in
--- old/gnome-python-2.15.90/configure.in 2006-07-25 00:36:24.000000000 +0200
+++ new/gnome-python-2.16.0/configure.in 2006-09-04 23:50:20.000000000 +0200
@@ -3,8 +3,8 @@
dnl the gnome-python version number
m4_define(gnome_python_major_version, 2)
-m4_define(gnome_python_minor_version, 15)
-m4_define(gnome_python_micro_version, 90)
+m4_define(gnome_python_minor_version, 16)
+m4_define(gnome_python_micro_version, 0)
m4_define(gnome_python_version, dnl
gnome_python_major_version.gnome_python_minor_version.gnome_python_micro_version)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/gnome-python-2.15.90/gnome-python.spec new/gnome-python-2.16.0/gnome-python.spec
--- old/gnome-python-2.15.90/gnome-python.spec 2006-07-25 00:38:06.000000000 +0200
+++ new/gnome-python-2.16.0/gnome-python.spec 2006-09-04 23:51:05.000000000 +0200
@@ -6,7 +6,7 @@
Summary: The sources for the PyGNOME Python extension module.
Name: gnome-python2
-Version: 2.15.90
+Version: 2.16.0
Release: 9
Source: ftp://ftp.gnome.org/pub/GNOME/stable/sources/gnome-python/gnome-python-%{version}.tar.gz
Copyright: LGPL
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org