[tryton-debian-vcs] tryton-client branch upstream updated. upstream/4.4.0-1-g67009b2

Mathias Behrle tryton-debian-vcs at alioth.debian.org
Thu Aug 17 12:18:54 UTC 2017


The following commit has been merged in the upstream branch:
https://alioth.debian.org/plugins/scmgit/cgi-bin/gitweb.cgi/?p=tryton/tryton-client.git;a=commitdiff;h=upstream/4.4.0-1-g67009b2

commit 67009b2d988194a992921e3719da8cc0ad0d8e8f
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Thu Aug 17 11:44:33 2017 +0200

    Adding upstream version 4.4.1.
    
    Signed-off-by: Mathias Behrle <mathiasb at m9s.biz>

diff --git a/CHANGELOG b/CHANGELOG
index 95e0c96..c171333 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 4.4.1 - 2017-08-08
+* Bug fixes (see mercurial logs for details)
+
 Version 4.4.0 - 2017-05-01
 * Bug fixes (see mercurial logs for details)
 * Verify certificate with default CA
diff --git a/PKG-INFO b/PKG-INFO
index c14c14b..95bccd1 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: tryton
-Version: 4.4.0
+Version: 4.4.1
 Summary: Tryton client
 Home-page: http://www.tryton.org/
 Author: Tryton
diff --git a/setup.cfg b/setup.cfg
index 562c93e..9f35e84 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -21,5 +21,4 @@ output_dir = tryton/data/locale
 [egg_info]
 tag_build = 
 tag_date = 0
-tag_svn_revision = 0
 
diff --git a/tryton.egg-info/PKG-INFO b/tryton.egg-info/PKG-INFO
index c14c14b..95bccd1 100644
--- a/tryton.egg-info/PKG-INFO
+++ b/tryton.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: tryton
-Version: 4.4.0
+Version: 4.4.1
 Summary: Tryton client
 Home-page: http://www.tryton.org/
 Author: Tryton
diff --git a/tryton/__init__.py b/tryton/__init__.py
index 41481ef..f9672dc 100644
--- a/tryton/__init__.py
+++ b/tryton/__init__.py
@@ -1,3 +1,3 @@
 # This file is part of Tryton.  The COPYRIGHT file at the top level of
 # this repository contains the full copyright notices and license terms.
-__version__ = "4.4.0"
+__version__ = "4.4.1"
diff --git a/tryton/common/htmltextbuffer.py b/tryton/common/htmltextbuffer.py
index c8dac47..3b49593 100644
--- a/tryton/common/htmltextbuffer.py
+++ b/tryton/common/htmltextbuffer.py
@@ -1,5 +1,6 @@
 # This file is part of Tryton.  The COPYRIGHT file at the top level of
 # this repository contains the full copyright notices and license terms.
+from __future__ import division
 from io import BytesIO
 import xml.etree.ElementTree as ET
 from xml.sax.saxutils import escape, unescape
@@ -37,6 +38,12 @@ JUSTIFICATION2ALIGN = _reverse_dict(ALIGN2JUSTIFICATION)
 FAMILIES = ['normal', 'sans', 'serif', 'monospace']
 
 
+def gdk_to_hex(gdk_color):
+    "Convert color to 2 digit hex"
+    colors = [gdk_color.red, gdk_color.green, gdk_color.blue]
+    return "#" + "".join(["%02x" % (color / 256) for color in colors])
+
+
 def _markup(text):
     return '<markup>%s</markup>' % text
 
@@ -233,7 +240,7 @@ def serialize(register, content, start, end, data):
             # Move to next tag toggle
             while True:
                 iter_.forward_char()
-                if iter_.get_char() == '\0':
+                if iter_.compare(end) == 0:
                     break
                 if iter_.toggles_tag():
                     break
@@ -325,7 +332,7 @@ def _get_tags(content, element):
         yield tag_table.lookup('size %s' % size)
     if 'color' in element.attrib:
         yield register_foreground(
-            content, gtk.gdk.Color(element.attrib['color']))
+            content, gtk.gdk.color_parse(element.attrib['color']))
     align = element.attrib.get('align')
     if align in ALIGN2JUSTIFICATION:
         yield tag_table.lookup('justification %s' % align)
@@ -350,8 +357,8 @@ def _get_html(texttag, close=False, div_only=False):
     if texttag.props.scale_set and texttag.props.scale != pango.SCALE_MEDIUM:
         font['size'] = SCALE2SIZE[texttag.props.scale]
     if (texttag.props.foreground_set
-            and texttag.props.foreground_gdk != gtk.gdk.Color()):
-        font['color'] = str(texttag.props.foreground_gdk)
+            and texttag.props.foreground_gdk != gtk.gdk.Color(0, 0, 0)):
+        font['color'] = gdk_to_hex(texttag.props.foreground_gdk)
     # TODO style background-color
     if font:
         tags.append('font')
@@ -393,7 +400,7 @@ if __name__ == '__main__':
  <u>Underline</u>
 <div><br/></div>
 <div align="center">Center</div>
-<div><font face="sans" size="6">Sans6<font color="#f00">red</font></font></div>
+<div><font face="sans" size="6">Sans6<font color="#ff0000">red</font></font></div>
 <div align="center"> <b> <i><u>Title</u></i> </b></div>'''
 
     win = gtk.Window()
diff --git a/tryton/data/locale/bg/LC_MESSAGES/tryton.mo b/tryton/data/locale/bg/LC_MESSAGES/tryton.mo
index 98df5a0..1d8f778 100644
Binary files a/tryton/data/locale/bg/LC_MESSAGES/tryton.mo and b/tryton/data/locale/bg/LC_MESSAGES/tryton.mo differ
diff --git a/tryton/data/locale/bg/LC_MESSAGES/tryton.po b/tryton/data/locale/bg/LC_MESSAGES/tryton.po
index 7ce5d9a..0ee7ec1 100644
--- a/tryton/data/locale/bg/LC_MESSAGES/tryton.po
+++ b/tryton/data/locale/bg/LC_MESSAGES/tryton.po
@@ -542,7 +542,7 @@ msgstr "Затваряне на таб"
 #: tryton/gui/window/attachment.py:22
 #, python-format, fuzzy, python-format
 msgid "Attachments (%s)"
-msgstr "Прикачен файл(%d)"
+msgstr "Прикачен файл(%s)"
 
 #: tryton/gui/window/board.py:21 tryton/gui/window/form.py:34
 msgid "New"
diff --git a/tryton/data/locale/ca/LC_MESSAGES/tryton.mo b/tryton/data/locale/ca/LC_MESSAGES/tryton.mo
index 156c59b..1f97260 100644
Binary files a/tryton/data/locale/ca/LC_MESSAGES/tryton.mo and b/tryton/data/locale/ca/LC_MESSAGES/tryton.mo differ
diff --git a/tryton/data/locale/cs/LC_MESSAGES/tryton.mo b/tryton/data/locale/cs/LC_MESSAGES/tryton.mo
index c340a8e..889ae9a 100644
Binary files a/tryton/data/locale/cs/LC_MESSAGES/tryton.mo and b/tryton/data/locale/cs/LC_MESSAGES/tryton.mo differ
diff --git a/tryton/data/locale/cs/LC_MESSAGES/tryton.po b/tryton/data/locale/cs/LC_MESSAGES/tryton.po
index f1b0d5c..cfc9a26 100644
--- a/tryton/data/locale/cs/LC_MESSAGES/tryton.po
+++ b/tryton/data/locale/cs/LC_MESSAGES/tryton.po
@@ -543,7 +543,7 @@ msgstr "Zavřít záložku"
 #: tryton/gui/window/attachment.py:22
 #, python-format, fuzzy, python-format
 msgid "Attachments (%s)"
-msgstr "Příloha(%d)"
+msgstr "Příloha(%s)"
 
 #: tryton/gui/window/board.py:21 tryton/gui/window/form.py:34
 #, fuzzy
diff --git a/tryton/data/locale/de/LC_MESSAGES/tryton.mo b/tryton/data/locale/de/LC_MESSAGES/tryton.mo
index 363eaf7..6e1b35d 100644
Binary files a/tryton/data/locale/de/LC_MESSAGES/tryton.mo and b/tryton/data/locale/de/LC_MESSAGES/tryton.mo differ
diff --git a/tryton/data/locale/es/LC_MESSAGES/tryton.mo b/tryton/data/locale/es/LC_MESSAGES/tryton.mo
index aefa8a5..658ff9b 100644
Binary files a/tryton/data/locale/es/LC_MESSAGES/tryton.mo and b/tryton/data/locale/es/LC_MESSAGES/tryton.mo differ
diff --git a/tryton/data/locale/es/LC_MESSAGES/tryton.po b/tryton/data/locale/es/LC_MESSAGES/tryton.po
index b7fa07f..cb5d0fb 100644
--- a/tryton/data/locale/es/LC_MESSAGES/tryton.po
+++ b/tryton/data/locale/es/LC_MESSAGES/tryton.po
@@ -529,7 +529,7 @@ msgstr "Cerrar pestaña"
 #: tryton/gui/window/attachment.py:22
 #, python-format, python-format, python-format
 msgid "Attachments (%s)"
-msgstr "Adjuntos (%d)"
+msgstr "Adjuntos (%s)"
 
 #: tryton/gui/window/board.py:21 tryton/gui/window/form.py:34
 msgid "New"
diff --git a/tryton/data/locale/es_419/LC_MESSAGES/tryton.mo b/tryton/data/locale/es_419/LC_MESSAGES/tryton.mo
index eb44506..175029c 100644
Binary files a/tryton/data/locale/es_419/LC_MESSAGES/tryton.mo and b/tryton/data/locale/es_419/LC_MESSAGES/tryton.mo differ
diff --git a/tryton/data/locale/fr/LC_MESSAGES/tryton.mo b/tryton/data/locale/fr/LC_MESSAGES/tryton.mo
index 122483f..1acfcbd 100644
Binary files a/tryton/data/locale/fr/LC_MESSAGES/tryton.mo and b/tryton/data/locale/fr/LC_MESSAGES/tryton.mo differ
diff --git a/tryton/data/locale/hu_HU/LC_MESSAGES/tryton.mo b/tryton/data/locale/hu_HU/LC_MESSAGES/tryton.mo
index 3497464..d580da4 100644
Binary files a/tryton/data/locale/hu_HU/LC_MESSAGES/tryton.mo and b/tryton/data/locale/hu_HU/LC_MESSAGES/tryton.mo differ
diff --git a/tryton/data/locale/hu_HU/LC_MESSAGES/tryton.po b/tryton/data/locale/hu_HU/LC_MESSAGES/tryton.po
index 11d821b..3d62b53 100644
--- a/tryton/data/locale/hu_HU/LC_MESSAGES/tryton.po
+++ b/tryton/data/locale/hu_HU/LC_MESSAGES/tryton.po
@@ -535,7 +535,7 @@ msgstr "Lap bezárása"
 #: tryton/gui/window/attachment.py:22
 #, python-format, fuzzy, python-format
 msgid "Attachments (%s)"
-msgstr "Melléklet(%d)"
+msgstr "Melléklet(%s)"
 
 #: tryton/gui/window/board.py:21 tryton/gui/window/form.py:34
 msgid "New"
diff --git a/tryton/data/locale/it_IT/LC_MESSAGES/tryton.mo b/tryton/data/locale/it_IT/LC_MESSAGES/tryton.mo
index 87e7ffc..68b251b 100644
Binary files a/tryton/data/locale/it_IT/LC_MESSAGES/tryton.mo and b/tryton/data/locale/it_IT/LC_MESSAGES/tryton.mo differ
diff --git a/tryton/data/locale/it_IT/LC_MESSAGES/tryton.po b/tryton/data/locale/it_IT/LC_MESSAGES/tryton.po
index 9194d0b..52dbb03 100644
--- a/tryton/data/locale/it_IT/LC_MESSAGES/tryton.po
+++ b/tryton/data/locale/it_IT/LC_MESSAGES/tryton.po
@@ -536,7 +536,7 @@ msgstr "Chiudere la scheda"
 #: tryton/gui/window/attachment.py:22
 #, python-format, fuzzy, python-format
 msgid "Attachments (%s)"
-msgstr "Allegato(%d)"
+msgstr "Allegato(%s)"
 
 #: tryton/gui/window/board.py:21 tryton/gui/window/form.py:34
 msgid "New"
diff --git a/tryton/data/locale/ja_JP/LC_MESSAGES/tryton.mo b/tryton/data/locale/ja_JP/LC_MESSAGES/tryton.mo
index 5745e02..220ab3b 100644
Binary files a/tryton/data/locale/ja_JP/LC_MESSAGES/tryton.mo and b/tryton/data/locale/ja_JP/LC_MESSAGES/tryton.mo differ
diff --git a/tryton/data/locale/ja_JP/LC_MESSAGES/tryton.po b/tryton/data/locale/ja_JP/LC_MESSAGES/tryton.po
index 3430217..d2a552d 100644
--- a/tryton/data/locale/ja_JP/LC_MESSAGES/tryton.po
+++ b/tryton/data/locale/ja_JP/LC_MESSAGES/tryton.po
@@ -544,7 +544,7 @@ msgstr "タブを閉じる"
 #: tryton/gui/window/attachment.py:22
 #, python-format, fuzzy, python-format
 msgid "Attachments (%s)"
-msgstr "添付(%d)"
+msgstr "添付(%s)"
 
 #: tryton/gui/window/board.py:21 tryton/gui/window/form.py:34
 #, fuzzy
diff --git a/tryton/data/locale/lo/LC_MESSAGES/tryton.mo b/tryton/data/locale/lo/LC_MESSAGES/tryton.mo
index 98447af..ac8fc14 100644
Binary files a/tryton/data/locale/lo/LC_MESSAGES/tryton.mo and b/tryton/data/locale/lo/LC_MESSAGES/tryton.mo differ
diff --git a/tryton/data/locale/lt/LC_MESSAGES/tryton.mo b/tryton/data/locale/lt/LC_MESSAGES/tryton.mo
index 22a6ef9..706681d 100644
Binary files a/tryton/data/locale/lt/LC_MESSAGES/tryton.mo and b/tryton/data/locale/lt/LC_MESSAGES/tryton.mo differ
diff --git a/tryton/data/locale/lt/LC_MESSAGES/tryton.po b/tryton/data/locale/lt/LC_MESSAGES/tryton.po
index 4859120..4c1312a 100644
--- a/tryton/data/locale/lt/LC_MESSAGES/tryton.po
+++ b/tryton/data/locale/lt/LC_MESSAGES/tryton.po
@@ -540,7 +540,7 @@ msgstr "Uždaryti kortelę"
 #: tryton/gui/window/attachment.py:22
 #, python-format, fuzzy, python-format
 msgid "Attachments (%s)"
-msgstr "Priedai(%d)"
+msgstr "Priedai(%s)"
 
 #: tryton/gui/window/board.py:21 tryton/gui/window/form.py:34
 msgid "New"
diff --git a/tryton/data/locale/nl/LC_MESSAGES/tryton.mo b/tryton/data/locale/nl/LC_MESSAGES/tryton.mo
index 8ed9483..d8786a9 100644
Binary files a/tryton/data/locale/nl/LC_MESSAGES/tryton.mo and b/tryton/data/locale/nl/LC_MESSAGES/tryton.mo differ
diff --git a/tryton/data/locale/nl/LC_MESSAGES/tryton.po b/tryton/data/locale/nl/LC_MESSAGES/tryton.po
index ae1704f..4397325 100644
--- a/tryton/data/locale/nl/LC_MESSAGES/tryton.po
+++ b/tryton/data/locale/nl/LC_MESSAGES/tryton.po
@@ -547,7 +547,7 @@ msgstr "Tabblad sluiten"
 #: tryton/gui/window/attachment.py:22
 #, python-format, fuzzy, python-format
 msgid "Attachments (%s)"
-msgstr "Bijlage (%d)"
+msgstr "Bijlage (%s)"
 
 #: tryton/gui/window/board.py:21 tryton/gui/window/form.py:34
 #, fuzzy
diff --git a/tryton/data/locale/pl/LC_MESSAGES/tryton.mo b/tryton/data/locale/pl/LC_MESSAGES/tryton.mo
index e5a1aaa..d5c8f69 100644
Binary files a/tryton/data/locale/pl/LC_MESSAGES/tryton.mo and b/tryton/data/locale/pl/LC_MESSAGES/tryton.mo differ
diff --git a/tryton/data/locale/pt_BR/LC_MESSAGES/tryton.mo b/tryton/data/locale/pt_BR/LC_MESSAGES/tryton.mo
index 7773b3e..f642c21 100644
Binary files a/tryton/data/locale/pt_BR/LC_MESSAGES/tryton.mo and b/tryton/data/locale/pt_BR/LC_MESSAGES/tryton.mo differ
diff --git a/tryton/data/locale/ru/LC_MESSAGES/tryton.mo b/tryton/data/locale/ru/LC_MESSAGES/tryton.mo
index 3b7f094..a72fb11 100644
Binary files a/tryton/data/locale/ru/LC_MESSAGES/tryton.mo and b/tryton/data/locale/ru/LC_MESSAGES/tryton.mo differ
diff --git a/tryton/data/locale/ru/LC_MESSAGES/tryton.po b/tryton/data/locale/ru/LC_MESSAGES/tryton.po
index 22d6878..97f52fc 100644
--- a/tryton/data/locale/ru/LC_MESSAGES/tryton.po
+++ b/tryton/data/locale/ru/LC_MESSAGES/tryton.po
@@ -542,7 +542,7 @@ msgstr "Закрыть вкладку"
 #: tryton/gui/window/attachment.py:22
 #, python-format, fuzzy, python-format
 msgid "Attachments (%s)"
-msgstr "Вложений (%d)"
+msgstr "Вложений (%s)"
 
 #: tryton/gui/window/board.py:21 tryton/gui/window/form.py:34
 msgid "New"
diff --git a/tryton/data/locale/sl/LC_MESSAGES/tryton.mo b/tryton/data/locale/sl/LC_MESSAGES/tryton.mo
index 2f857b1..d0f3872 100644
Binary files a/tryton/data/locale/sl/LC_MESSAGES/tryton.mo and b/tryton/data/locale/sl/LC_MESSAGES/tryton.mo differ
diff --git a/tryton/data/locale/zh_CN/LC_MESSAGES/tryton.mo b/tryton/data/locale/zh_CN/LC_MESSAGES/tryton.mo
index 9142009..60fb0db 100644
Binary files a/tryton/data/locale/zh_CN/LC_MESSAGES/tryton.mo and b/tryton/data/locale/zh_CN/LC_MESSAGES/tryton.mo differ
diff --git a/tryton/data/locale/zh_CN/LC_MESSAGES/tryton.po b/tryton/data/locale/zh_CN/LC_MESSAGES/tryton.po
index 2692eca..1780f20 100644
--- a/tryton/data/locale/zh_CN/LC_MESSAGES/tryton.po
+++ b/tryton/data/locale/zh_CN/LC_MESSAGES/tryton.po
@@ -535,7 +535,7 @@ msgstr "关闭标签"
 #: tryton/gui/window/attachment.py:22
 #, python-format, fuzzy, python-format
 msgid "Attachments (%s)"
-msgstr "附件文档(%d)"
+msgstr "附件文档(%s)"
 
 #: tryton/gui/window/board.py:21 tryton/gui/window/form.py:34
 msgid "New"
diff --git a/tryton/gui/main.py b/tryton/gui/main.py
index 1604e6d..8cc1089 100644
--- a/tryton/gui/main.py
+++ b/tryton/gui/main.py
@@ -967,7 +967,7 @@ class Main(object):
         self.menu_screen = None
         self.menu_expander_clear()
         action = PYSONDecoder().decode(prefs['pyson_menu'])
-        view_ids = False
+        view_ids = []
         if action.get('views', []):
             view_ids = [x[0] for x in action['views']]
         elif action.get('view_id', False):
diff --git a/tryton/gui/window/revision.py b/tryton/gui/window/revision.py
index 3a4d8a1..fb3f111 100644
--- a/tryton/gui/window/revision.py
+++ b/tryton/gui/window/revision.py
@@ -30,8 +30,8 @@ class Revision(object):
         label = gtk.Label(_('Revision:'))
         hbox.pack_start(label, expand=True, fill=True)
         list_store = gtk.ListStore(str, str)
-        combobox = gtk.ComboBoxEntry()
-        combobox.set_model(list_store)
+        # Set model on instantiation to get the default cellrenderer as text
+        combobox = gtk.ComboBoxEntry(model=list_store)
         self.entry = combobox.get_child()
         self.entry.connect('focus-out-event', self.focus_out)
         self.entry.connect('activate', self.activate)
diff --git a/tryton/gui/window/view_board/action.py b/tryton/gui/window/view_board/action.py
index fdc0b2b..2c8230f 100644
--- a/tryton/gui/window/view_board/action.py
+++ b/tryton/gui/window/view_board/action.py
@@ -29,7 +29,7 @@ class Action(SignalEvent):
         except RPCException:
             raise
 
-        view_ids = None
+        view_ids = []
         self.action['view_mode'] = None
         if self.action.get('views', []):
             view_ids = [x[0] for x in self.action['views']]
diff --git a/tryton/gui/window/view_form/screen/screen.py b/tryton/gui/window/view_form/screen/screen.py
index ec13c1c..bc633ce 100644
--- a/tryton/gui/window/view_form/screen/screen.py
+++ b/tryton/gui/window/view_form/screen/screen.py
@@ -598,11 +598,13 @@ class Screen(SignalEvent):
         fields = self.current_view.get_fields()
         path = self.current_record.get_path(self.group)
         if self.current_view.view_type == 'tree':
-            saved = all(self.group.save())
+            # False value must be not saved
+            saved = all((x is 0 or x > 0 for x in self.group.save()))
             record_id = self.current_record.id if self.current_record else None
         elif self.current_record.validate(fields):
             record_id = self.current_record.save(force_reload=True)
-            saved = bool(record_id)
+            # False value must be not saved
+            saved = record_id is 0 or record_id > 0
         else:
             self.set_cursor()
             self.current_view.display()
diff --git a/tryton/gui/window/view_form/view/form_gtk/richtextbox.py b/tryton/gui/window/view_form/view/form_gtk/richtextbox.py
index 0023471..5217dc3 100644
--- a/tryton/gui/window/view_form/view/form_gtk/richtextbox.py
+++ b/tryton/gui/window/view_form/view/form_gtk/richtextbox.py
@@ -295,12 +295,13 @@ class RichTextBox(TextBox):
 
         dialog = gtk.ColorSelectionDialog(_('Select a color'))
         dialog.set_transient_for(get_toplevel_window())
-        dialog.colorsel.set_has_palette(True)
+        colorsel = dialog.get_color_selection()
+        colorsel.set_has_palette(True)
         color = self.colors.get(name)
         if color:
-            dialog.colorsel.set_current_color(color)
+            colorsel.set_current_color(color)
         if dialog.run() == gtk.RESPONSE_OK:
-            color = dialog.colorsel.get_current_color()
+            color = colorsel.get_current_color()
             self.colors[name] = color
             if start is not None and end is not None:
                 start = self.text_buffer.get_iter_at_offset(start)
diff --git a/tryton/gui/window/view_form/view/list_gtk/editabletree.py b/tryton/gui/window/view_form/view/list_gtk/editabletree.py
index 3affbdf..76a93d1 100644
--- a/tryton/gui/window/view_form/view/list_gtk/editabletree.py
+++ b/tryton/gui/window/view_form/view/list_gtk/editabletree.py
@@ -98,6 +98,9 @@ class EditableTreeView(TreeView):
             method = model.append
         new_record = model.group.new()
         res = method(new_record)
+        sequence = self.view.attributes.get('sequence')
+        if sequence:
+            model.group.set_sequence(field=sequence)
         return res
 
     def set_cursor(self, path, focus_column=None, start_editing=False):
diff --git a/tryton/gui/window/win_search.py b/tryton/gui/window/win_search.py
index 3aaf01a..5acf72c 100644
--- a/tryton/gui/window/win_search.py
+++ b/tryton/gui/window/win_search.py
@@ -17,6 +17,8 @@ class WinSearch(NoModal):
             domain=None, view_ids=None, views_preload=None, new=True,
             title=''):
         NoModal.__init__(self)
+        if view_ids is None:
+            view_ids = []
         if views_preload is None:
             views_preload = {}
         self.domain = domain or []
-- 
tryton-client



More information about the tryton-debian-vcs mailing list