• Bug#1065976: python-levenshtein: FTBFS on arm{el,hf}: Levenshtein/_leve

    From Sebastian Ramacher@21:1/5 to All on Sun Mar 10 22:50:01 2024
    Source: python-levenshtein
    Version: 0.12.2-3
    Severity: serious
    Tags: ftbfs
    X-Debbugs-Cc: sramacher@debian.org

    https://buildd.debian.org/status/fetch.php?pkg=python-levenshtein&arch=armel&ver=0.12.2-3&stamp=1709900271&raw=0

    arm-linux-gnueabi-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -g -Werror=implicit-function-declaration -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -g -O2 -Werror=implicit-function-declaration -
    ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.12 -c
    Levenshtein/_levenshtein.c -o build/temp.linux-armv8l-cpython-312/Levenshtein/_levenshtein.o
    Levenshtein/_levenshtein.c: In function ‘levenshtein_common’: Levenshtein/_levenshtein.c:731:13: warning: pointer targets in assignment from ‘char *’ to ‘lev_byte *’ {aka ‘unsigned char *’} differ in signedness [-Wpointer-sign]
    731 | string1 = PyString_AS_STRING(arg1);
    | ^
    Levenshtein/_levenshtein.c:732:13: warning: pointer targets in assignment from ‘char *’ to ‘lev_byte *’ {aka ‘unsigned char *’} differ in signedness [-Wpointer-sign]
    732 | string2 = PyString_AS_STRING(arg2);
    | ^
    Levenshtein/_levenshtein.c:746:12: error: implicit declaration of function ‘PyUnicode_GET_SIZE’; did you mean ‘PyDict_GET_SIZE’? [-Werror=implicit-function-declaration]
    746 | len1 = PyUnicode_GET_SIZE(arg1);
    | ^~~~~~~~~~~~~~~~~~
    | PyDict_GET_SIZE
    Levenshtein/_levenshtein.c:749:15: error: implicit declaration of function ‘PyUnicode_AS_UNICODE’; did you mean ‘PyUnicode_AsUCS4’? [-Werror=implicit-function-declaration]
    749 | string1 = PyUnicode_AS_UNICODE(arg1);
    | ^~~~~~~~~~~~~~~~~~~~
    | PyUnicode_AsUCS4
    Levenshtein/_levenshtein.c:749:13: warning: assignment to ‘Py_UNICODE *’ {aka ‘unsigned int *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
    749 | string1 = PyUnicode_AS_UNICODE(arg1);
    | ^
    Levenshtein/_levenshtein.c:750:13: warning: assignment to ‘Py_UNICODE *’ {aka ‘unsigned int *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
    750 | string2 = PyUnicode_AS_UNICODE(arg2);
    | ^
    Levenshtein/_levenshtein.c: In function ‘hamming_py’: Levenshtein/_levenshtein.c:816:13: warning: pointer targets in assignment from ‘char *’ to ‘lev_byte *’ {aka ‘unsigned char *’} differ in signedness [-Wpointer-sign]
    816 | string1 = PyString_AS_STRING(arg1);
    | ^
    Levenshtein/_levenshtein.c:817:13: warning: pointer targets in assignment from ‘char *’ to ‘lev_byte *’ {aka ‘unsigned char *’} differ in signedness [-Wpointer-sign]
    817 | string2 = PyString_AS_STRING(arg2);
    | ^
    Levenshtein/_levenshtein.c:832:13: warning: assignment to ‘Py_UNICODE *’ {aka ‘unsigned int *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
    832 | string1 = PyUnicode_AS_UNICODE(arg1);
    | ^
    Levenshtein/_levenshtein.c:833:13: warning: assignment to ‘Py_UNICODE *’ {aka ‘unsigned int *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
    833 | string2 = PyUnicode_AS_UNICODE(arg2);
    | ^
    Levenshtein/_levenshtein.c: In function ‘jaro_py’: Levenshtein/_levenshtein.c:860:13: warning: pointer targets in assignment from ‘char *’ to ‘lev_byte *’ {aka ‘unsigned char *’} differ in signedness [-Wpointer-sign]
    860 | string1 = PyString_AS_STRING(arg1);
    | ^
    Levenshtein/_levenshtein.c:861:13: warning: pointer targets in assignment from ‘char *’ to ‘lev_byte *’ {aka ‘unsigned char *’} differ in signedness [-Wpointer-sign]
    861 | string2 = PyString_AS_STRING(arg2);
    | ^
    Levenshtein/_levenshtein.c:870:13: warning: assignment to ‘Py_UNICODE *’ {aka ‘unsigned int *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
    870 | string1 = PyUnicode_AS_UNICODE(arg1);
    | ^
    Levenshtein/_levenshtein.c:871:13: warning: assignment to ‘Py_UNICODE *’ {aka ‘unsigned int *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
    871 | string2 = PyUnicode_AS_UNICODE(arg2);
    | ^
    Levenshtein/_levenshtein.c: In function ‘jaro_winkler_py’: Levenshtein/_levenshtein.c:910:13: warning: pointer targets in assignment from ‘char *’ to ‘lev_byte *’ {aka ‘unsigned char *’} differ in signedness [-Wpointer-sign]
    910 | string1 = PyString_AS_STRING(arg1);
    | ^
    Levenshtein/_levenshtein.c:911:13: warning: pointer targets in assignment from ‘char *’ to ‘lev_byte *’ {aka ‘unsigned char *’} differ in signedness [-Wpointer-sign]
    911 | string2 = PyString_AS_STRING(arg2);
    | ^
    Levenshtein/_levenshtein.c:922:13: warning: assignment to ‘Py_UNICODE *’ {aka ‘unsigned int *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
    922 | string1 = PyUnicode_AS_UNICODE(arg1);
    | ^
    Levenshtein/_levenshtein.c:923:13: warning: assignment to ‘Py_UNICODE *’ {aka ‘unsigned int *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
    923 | string2 = PyUnicode_AS_UNICODE(arg2);
    | ^
    Levenshtein/_levenshtein.c: In function ‘median_common’: Levenshtein/_levenshtein.c:1012:43: warning: pointer targets in passing argument 1 of ‘PyBytes_FromStringAndSize’ differ in signedness [-Wpointer-sign]
    1012 | result = PyString_FromStringAndSize(medstr, len);
    | ^~~~~~
    | |
    | lev_byte * {aka unsigned char *}
    In file included from /usr/include/python3.12/Python.h:50,
    from Levenshtein/_levenshtein.c:99: /usr/include/python3.12/bytesobject.h:34:50: note: expected ‘const char *’ but argument is of type ‘lev_byte *’ {aka ‘unsigned char *’}
    34 | PyAPI_FUNC(PyObject *) PyBytes_FromStringAndSize(const char *, Py_ssize_t);
    | ^~~~~~~~~~~~ Levenshtein/_levenshtein.c:1021:16: error: implicit declaration of function ‘PyUnicode_FromUnicode’; did you mean ‘PyUnicode_FSDecoder’? [-Werror=implicit-function-declaration]
    1021 | result = PyUnicode_FromUnicode(medstr, len);
    | ^~~~~~~~~~~~~~~~~~~~~
    | PyUnicode_FSDecoder
    Levenshtein/_levenshtein.c:1021:14: warning: assignment to ‘PyObject *’ {aka ‘struct _object *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
    1021 | result = PyUnicode_FromUnicode(medstr, len);
    | ^
    In file included from /usr/include/python3.12/bytesobject.h:62: Levenshtein/_levenshtein.c: In function ‘median_improve_common’: /usr/include/python3.12/cpython/bytesobject.h:39:31: warning: pointer targets in initialization of ‘lev_byte *’ {aka ‘unsigned char *’} from ‘char *’ differ in signedness [-Wpointer-sign]
    39 | #define PyBytes_AS_STRING(op) PyBytes_AS_STRING(_PyObject_CAST(op))
    | ^~~~~~~~~~~~~~~~~ Levenshtein/_levenshtein.c:106:28: note: in expansion of macro ‘PyBytes_AS_STRING’
    106 | #define PyString_AS_STRING PyBytes_AS_STRING
    | ^~~~~~~~~~~~~~~~~ Levenshtein/_levenshtein.c:1091:19: note: in expansion of macro ‘PyString_AS_STRING’
    1091 | lev_byte *s = PyString_AS_STRING(arg1);
    | ^~~~~~~~~~~~~~~~~~ Levenshtein/_levenshtein.c:1097:43: warning: pointer targets in passing argument 1 of ‘PyBytes_FromStringAndSize’ differ in signedness [-Wpointer-sign]
    1097 | result = PyString_FromStringAndSize(medstr, len);
    | ^~~~~~
    | |
    | lev_byte * {aka unsigned char *}
    /usr/include/python3.12/bytesobject.h:34:50: note: expected ‘const char *’ but argument is of type ‘lev_byte *’ {aka ‘unsigned char *’}
    34 | PyAPI_FUNC(PyObject *) PyBytes_FromStringAndSize(const char *, Py_ssize_t);
    | ^~~~~~~~~~~~ Levenshtein/_levenshtein.c:1102:21: warning: initialization of ‘Py_UNICODE *’ {aka ‘unsigned int *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
    1102 | Py_UNICODE *s = PyUnicode_AS_UNICODE(arg1);
    | ^~~~~~~~~~~~~~~~~~~~ Levenshtein/_levenshtein.c:1108:14: warning: assignment to ‘PyObject *’ {aka ‘struct _object *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
    1108 | result = PyUnicode_FromUnicode(medstr, len);
    | ^
    Levenshtein/_levenshtein.c: In function ‘extract_weightlist’: Levenshtein/_levenshtein.c:1135:41: warning: comparison of integer expressions of different signedness: ‘Py_ssize_t’ {aka ‘int’} and ‘size_t’ {aka ‘unsigned int’} [-Wsign-compare]
    1135 | if (PySequence_Fast_GET_SIZE(wlist) != n) {
    | ^~
    Levenshtein/_levenshtein.c: In function ‘extract_stringlist’: Levenshtein/_levenshtein.c:1221:16: warning: pointer targets in assignment from ‘char *’ to ‘lev_byte *’ {aka ‘unsigned char *’} differ in signedness [-Wpointer-sign]
    1221 | strings[0] = PyString_AS_STRING(first);
    | ^
    Levenshtein/_levenshtein.c:1233:18: warning: pointer targets in assignment from ‘char *’ to ‘lev_byte *’ {aka ‘unsigned char *’} differ in signedness [-Wpointer-sign]
    1233 | strings[i] = PyString_AS_STRING(item);
    | ^
    Levenshtein/_levenshtein.c:1257:16: warning: assignment to ‘Py_UNICODE *’ {aka ‘unsigned int *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
    1257 | strings[0] = PyUnicode_AS_UNICODE(first);
    | ^
    Levenshtein/_levenshtein.c:1269:18: warning: assignment to ‘Py_UNICODE *’ {aka ‘unsigned int *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
    1269 | strings[i] = PyUnicode_AS_UNICODE(item);
    | ^
    Levenshtein/_levenshtein.c: In function ‘string_to_edittype’: Levenshtein/_levenshtein.c:1399:13: warning: unused variable ‘len’ [-Wunused-variable]
    1399 | size_t i, len;
    | ^~~
    Levenshtein/_levenshtein.c:1398:15: warning: unused variable ‘s’ [-Wunused-variable]
    1398 | const char *s;
    | ^
    Levenshtein/_levenshtein.c: In function ‘editops_py’: Levenshtein/_levenshtein.c:1670:13: warning: pointer targets in assignment from ‘char *’ to ‘lev_byte *’ {aka ‘unsigned char *’} differ in signedness [-Wpointer-sign]
    1670 | string1 = PyString_AS_STRING(arg1);
    | ^
    Levenshtein/_levenshtein.c:1671:13: warning: pointer targets in assignment from ‘char *’ to ‘lev_byte *’ {aka ‘unsigned char *’} differ in signedness [-Wpointer-sign]
    1671 | string2 = PyString_AS_STRING(arg2);
    | ^
    Levenshtein/_levenshtein.c:1680:13: warning: assignment to ‘Py_UNICODE *’ {aka ‘unsigned int *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
    1680 | string1 = PyUnicode_AS_UNICODE(arg1);
    | ^
    Levenshtein/_levenshtein.c:1681:13: warning: assignment to ‘Py_UNICODE *’ {aka ‘unsigned int *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
    1681 | string2 = PyUnicode_AS_UNICODE(arg2);
    | ^
    Levenshtein/_levenshtein.c: In function ‘opcodes_py’: Levenshtein/_levenshtein.c:1788:13: warning: pointer targets in assignment from ‘char *’ to ‘lev_byte *’ {aka ‘unsigned char *’} differ in signedness [-Wpointer-sign]
    1788 | string1 = PyString_AS_STRING(arg1);
    | ^
    Levenshtein/_levenshtein.c:1789:13: warning: pointer targets in assignment from ‘char *’ to ‘lev_byte *’ {aka ‘unsigned char *’} differ in signedness [-Wpointer-sign]
    1789 | string2 = PyString_AS_STRING(arg2);
    | ^
    Levenshtein/_levenshtein.c:1798:13: warning: assignment to ‘Py_UNICODE *’ {aka ‘unsigned int *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
    1798 | string1 = PyUnicode_AS_UNICODE(arg1);
    | ^
    Levenshtein/_levenshtein.c:1799:13: warning: assignment to ‘Py_UNICODE *’ {aka ‘unsigned int *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
    1799 | string2 = PyUnicode_AS_UNICODE(arg2);
    | ^
    Levenshtein/_levenshtein.c: In function ‘apply_edit_py’: Levenshtein/_levenshtein.c:1883:13: warning: pointer targets in assignment from ‘char *’ to ‘lev_byte *’ {aka ‘unsigned char *’} differ in signedness [-Wpointer-sign]
    1883 | string1 = PyString_AS_STRING(arg1);
    | ^
    Levenshtein/_levenshtein.c:1884:13: warning: pointer targets in assignment from ‘char *’ to ‘lev_byte *’ {aka ‘unsigned char *’} differ in signedness [-Wpointer-sign]
    1884 | string2 = PyString_AS_STRING(arg2);
    | ^
    Levenshtein/_levenshtein.c:1898:43: warning: pointer targets in passing argument 1 of ‘PyBytes_FromStringAndSize’ differ in signedness [-Wpointer-sign]
    1898 | result = PyString_FromStringAndSize(s, len);
    | ^
    | |
    | lev_byte * {aka unsigned char *}
    /usr/include/python3.12/bytesobject.h:34:50: note: expected ‘const char *’ but argument is of type ‘lev_byte *’ {aka ‘unsigned char *’}
    34 | PyAPI_FUNC(PyObject *) PyBytes_FromStringAndSize(const char *, Py_ssize_t);
    | ^~~~~~~~~~~~ Levenshtein/_levenshtein.c:1914:43: warning: pointer targets in passing argument 1 of ‘PyBytes_FromStringAndSize’ differ in signedness [-Wpointer-sign]
    1914 | result = PyString_FromStringAndSize(s, len);
    | ^
    | |
    | lev_byte * {aka unsigned char *}
    /usr/include/python3.12/bytesobject.h:34:50: note: expected ‘const char *’ but argument is of type ‘lev_byte *’ {aka ‘unsigned char *’}
    34 | PyAPI_FUNC(PyObject *) PyBytes_FromStringAndSize(const char *, Py_ssize_t);
    | ^~~~~~~~~~~~ Levenshtein/_levenshtein.c:1935:13: warning: assignment to ‘Py_UNICODE *’ {aka ‘unsigned int *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
    1935 | string1 = PyUnicode_AS_UNICODE(arg1);
    | ^
    Levenshtein/_levenshtein.c:1936:13: warning: assignment to ‘Py_UNICODE *’ {aka ‘unsigned int *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
    1936 | string2 = PyUnicode_AS_UNICODE(arg2);
    | ^
    Levenshtein/_levenshtein.c:1950:14: warning: assignment to ‘PyObject *’ {aka ‘struct _object *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
    1950 | result = PyUnicode_FromUnicode(s, len);
    | ^
    Levenshtein/_levenshtein.c:1966:14: warning: assignment to ‘PyObject *’ {aka ‘struct _object *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
    1966 | result = PyUnicode_FromUnicode(s, len);
    | ^
    Levenshtein/_levenshtein.c: In function ‘subtract_edit_py’: Levenshtein/_levenshtein.c:2080:27: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘unsigned int’} and ‘int’ [-Wsign-compare]
    2080 | if (!orem && nr == -1) {
    | ^~
    Levenshtein/_levenshtein.c: In function ‘make_usymlist’: Levenshtein/_levenshtein.c:3554:19: warning: comparison of integer expressions of different signedness: ‘Py_UNICODE’ {aka ‘unsigned int’} and ‘int’ [-Wsign-compare]
    3554 | while (p->c != c && p->n != NULL)
    | ^~
    Levenshtein/_levenshtein.c:3556:16: warning: comparison of integer expressions of different signedness: ‘Py_UNICODE’ {aka ‘unsigned int’} and ‘int’ [-Wsign-compare]
    3556 | if (p->c != c) {
    | ^~
    Levenshtein/_levenshtein.c: In function ‘make_usymlistset’: Levenshtein/_levenshtein.c:4330:19: warning: comparison of integer expressions of different signedness: ‘Py_UNICODE’ {aka ‘unsigned int’} and ‘int’ [-Wsign-compare]
    4330 | while (p->c != c && p->n != NULL)
    | ^~
    Levenshtein/_levenshtein.c:4332:16: warning: comparison of integer expressions of different signedness: ‘Py_UNICODE’ {aka ‘unsigned int’} and ‘int’ [-Wsign-compare]
    4332 | if (p->c != c) {
    | ^~
    Levenshtein/_levenshtein.c: In function ‘lev_u_quick_median’: Levenshtein/_levenshtein.c:4441:21: warning: comparison of integer expressions of different signedness: ‘Py_UNICODE’ {aka ‘unsigned int’} and ‘int’ [-Wsign-compare]
    4441 | while (p->c != c)
    | ^~
    Levenshtein/_levenshtein.c:4450:21: warning: comparison of integer expressions of different signedness: ‘Py_UNICODE’ {aka ‘unsigned int’} and ‘int’ [-Wsign-compare]
    4450 | while (p->c != c)
    | ^~
    Levenshtein/_levenshtein.c:4462:21: warning: comparison of integer expressions of different signedness: ‘Py_UNICODE’ {aka ‘unsigned int’} and ‘int’ [-Wsign-compare]
    4462 | while (p->c != c)
    | ^~
    Levenshtein/_levenshtein.c: At top level:
    Levenshtein/_levenshtein.c:6720:1: warning: ‘lev_opcodes_total_cost’ defined but not used [-Wunused-function]
    6720 | lev_opcodes_total_cost(size_t nb,
    | ^~~~~~~~~~~~~~~~~~~~~~
    Levenshtein/_levenshtein.c:6675:1: warning: ‘lev_editops_normalize’ defined but not used [-Wunused-function]
    6675 | lev_editops_normalize(size_t n,
    | ^~~~~~~~~~~~~~~~~~~~~
    Levenshtein/_levenshtein.c:6650:1: warning: ‘lev_editops_total_cost’ defined but not used [-Wunused-function]
    6650 | lev_editops_total_cost(size_t n,
    | ^~~~~~~~~~~~~~~~~~~~~~
    Levenshtein/_levenshtein.c:2570:1: warning: ‘lev_u_edit_distance_sod’ defined but not used [-Wunused-function]
    2570 | lev_u_edit_distance_sod(size_t len, const lev_wchar *string,
    | ^~~~~~~~~~~~~~~~~~~~~~~
    Levenshtein/_levenshtein.c:2391:1: warning: ‘lev_edit_distance_sod’ defined but not used [-Wunused-function]
    2391 | lev_edit_distance_sod(size_t len, const lev_byte *string,
    | ^~~~~~~~~~~~~~~~~~~~~
    Levenshtein/_levenshtein.c: In function ‘lev_median_improve’: Levenshtein/_levenshtein.c:3471:7: warning: ‘free’ called on pointer ‘<unknown>’ with nonzero offset 1 [-Wfree-nonheap-object]
    3471 | free(median);
    | ^~~~~~~~~~~~
    In function ‘safe_malloc’,
    inlined from ‘lev_median_improve’ at Levenshtein/_levenshtein.c:3343:23:
    Levenshtein/_levenshtein.c:693:10: note: returned from ‘malloc’
    693 | return malloc(nmemb * size);
    | ^~~~~~~~~~~~~~~~~~~~
    cc1: some warnings being treated as errors

    Cheers
    --
    Sebastian Ramacher

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Debian Bug Tracking System@21:1/5 to All on Sat Apr 27 04:40:01 2024
    This is a multi-part message in MIME format...

    Your message dated Sat, 27 Apr 2024 02:36:45 +0000
    with message-id <E1s0Xvh-009rtJ-E8@fasolo.debian.org>
    and subject line Bug#1065976: fixed in python-levenshtein 0.25.1-3
    has caused the Debian Bug report #1065976,
    regarding python-levenshtein: FTBFS on arm{el,hf}: Levenshtein/_levenshtein.c:749:15: error: implicit declaration of function ‘PyUnicode_AS_UNICODE’; did you mean ‘PyUnicode_AsUCS4’? [-Werror=implicit-function-declaration]
    to be marked as done.

    This means that you claim that the problem has been dealt with.
    If this is not the case it is now your responsibility to reopen the
    Bug report if necessary, and/or fix the problem forthwith.

    (NB: If you are a system administrator and have no idea what this
    message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org
    immediately.)


    --
    1065976: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1065976
    Debian Bug Tracking System
    Contact owner@bugs.debian.org with problems

    Received: (at submit) by bugs.debian.org; 10 Mar 2024 21:42:12 +0000 X-Spam-Checker-Version: SpamAssassin 3.4.6-bugs.debian.org_2005_01_02
    (2021-04-09) on buxtehude.debian.org
    X-Spam-Level:
    X-Spam-Status: No, score=-106.1 required=4.0 tests=BAYES_00,DKIMWL_WL_HIGH,
    DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FOURLA,
    FROMDEVELOPER,SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE,
    UNPARSEABLE_RELAY,USER_IN_DKIM_WELCOMELIST,USER_IN_DKIM_WHITELIST
    autolearn=ham autolearn_force=no
    version=3.4.6-bugs.debian.org_2005_01_02
    X-Spam-Bayes: score:0.0000 Tokens: new, 40; hammy, 150; neutral, 215; spammy,
    0. spammytokens:
    hammytokens:0.000-+--Hx-spam-relays-external:sk:stravin,
    0.000-+--H*RT:sk:stravin, 0.000-+--Hx-spam-relays-external:311,
    0.000-+--H*RT:311, 0.000-+--H*RT:108
    Return-path: <sramacher@debian.org>
    Received: from stravinsky.debian.org