[Debian-science-sagemath] Sponsors needed for last uploads before stable freeze

Ximin Luo infinity0 at debian.org
Mon Jan 23 22:57:00 UTC 2017


7.4-7 build finished with parallel=13 after the second sbuild attempt, here:

https://people.debian.org/~infinity0/sage/

Technically someone can file an RC bug against this but we can brush it under the carpet for now, i386 should just be deprecated and I have other things to do...

X

Ximin Luo:
> Well, the 7.4-6 build worked, first time even. I can't guess what could have possibly caused this, in the changes I did to 7.4-7. The only other difference was I built with parallel=13 for the succesful build and parallel=12 for the unsuccessful build; the schroots were identical.
> 
> If the 7.4-7 rebuild succeeds then I'll upload that somewhere. If not then I'll hide the failure like you described. Then I'll finish with 7.4 and continue working on 7.5.
> 
> X
> 
> Tobias Hansen:
>> We could also change debian/rules to allow this one test to time out.
>> Since the bug might also exist in 7.4-6 that would not make anything
>> worse and at least the new changes go in.
>>
>> On 01/23/2017 02:05 AM, Ximin Luo wrote:
>>> Ximin Luo:
>>>> [..]
>>>>
>>>> sage -t --long src/sage/functions/wigner.py
>>>>     Timed out (and interrupt failed)
>>>> **********************************************************************
>>>> Tests run before process (pid=1248) timed out:
>>>> sage: from sage.functions.wigner import _calc_factlist ## line 59 ##
>>>> sage: _calc_factlist(10) ## line 60 ##
>>>> [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800]
>>>> sage: sig_on_count() # check sig_on/off pairings (virtual doctest) ## line 62 ##
>>>> 0
>>>> sage: wigner_3j(2, 6, 4, 0, 0, 0) ## line 87 ##
>>>> sqrt(5/143)
>>>> sage: wigner_3j(2, 6, 4, 0, 0, 1) ## line 89 ##
>>>> 0
>>>> sage: wigner_3j(0.5, 0.5, 1, 0.5, -0.5, 0) ## line 91 ##
>>>> sqrt(1/6)
>>>> sage: wigner_3j(40, 100, 60, -10, 60, -50) ## line 93 ##
>>>> 95608/18702538494885*sqrt(21082735836735314343364163310/220491455010479533763)
>>>> sage: wigner_3j(2500, 2500, 5000, 2488, 2400, -4888, prec=64) ## line 95 ##
>>>> 7.60424456883448589e-12
>>>> sage: wigner_3j(2.1, 6, 4, 0, 0, 0) ## line 101 ##
>>>> sage: wigner_3j(2, 6, 4, 1, 0, -1.1) ## line 105 ##
>>>> sage: sig_on_count() # check sig_on/off pairings (virtual doctest) ## line 162 ##
>>>> 0
>>>> sage: simplify(clebsch_gordan(3/2,1/2,2, 3/2,1/2,2)) ## line 241 ##
>>>> [... hangs here ...]
>>>>
>>>> However if I log into the schroot (that is doing the build) and execute the test manually, it passes quickly:
>>>>
>>>> [..]
>>>> sage -t --long src/sage/functions/wigner.py
>>>>     [49 tests, 5.43 s]
>>>> ----------------------------------------------------------------------
>>>> All tests passed!
>>>> [..]
>>>>
>>>
>>> It's busy-looping inside libgc when trying to do init_ecl(), see "Details" at
>>> the bottom of this email. I am not sure the best way to fix this, especially
>>> since I can't reproduce it when running the tests manually. Very likely there
>>> is some sort of race condition relating to running the tests in parallel, but I
>>> don't have the time to track it down in detail. :/
>>>
>>> It's also possible that it will go away if we upgrade to ECL 16, but I don't
>>> think we have the time for that.
>>>
>>> One option is to just ignore it and instead let 7.4-6 go into stable. I think
>>> that's possible still. However, it's very probable the bug will crop up there
>>> too when someone rebuilds it... I've started a rebuild of this just to check,
>>> though.
>>>
>>> New packages
>>> ============
>>>
>>> That is, in Debian unstable since 7.4-6 was built
>>> https://buildd.debian.org/status/logs.php?pkg=sagemath
>>>
>>> By running `debian/show-deps.sh by-date` inside the chroot:
>>>
>>> Mon Jan  9 11:52:45 UTC 2017 python-olefile
>>> Mon Jan  9 17:50:17 UTC 2017 libgnutls-dane0
>>> Mon Jan  9 17:50:17 UTC 2017 libgnutls-openssl27
>>> Mon Jan  9 17:50:17 UTC 2017 libgnutls28-dev
>>> Mon Jan  9 17:50:17 UTC 2017 libgnutls30
>>> Mon Jan  9 17:50:17 UTC 2017 libgnutlsxx28
>>> Mon Jan  9 18:50:31 UTC 2017 libpng-dev
>>> Mon Jan  9 18:50:31 UTC 2017 libpng16-16
>>> Tue Jan 10 15:38:23 UTC 2017 libgl1-mesa-glx
>>> Tue Jan 10 15:38:23 UTC 2017 libglapi-mesa
>>> Tue Jan 10 15:38:23 UTC 2017 libosmesa6
>>> Tue Jan 10 17:53:03 UTC 2017 libjs-jquery-typeahead
>>> Tue Jan 10 19:28:57 UTC 2017 python-jinja2
>>> Tue Jan 10 19:35:07 UTC 2017 libjs-text-encoding
>>> Tue Jan 10 22:44:36 UTC 2017 python-pil
>>> Wed Jan 11 09:31:13 UTC 2017 libjs-moment
>>> Wed Jan 11 13:45:03 UTC 2017 libkpathsea6
>>> Wed Jan 11 13:45:03 UTC 2017 libptexenc1
>>> Wed Jan 11 13:45:03 UTC 2017 libsynctex1
>>> Wed Jan 11 13:45:03 UTC 2017 libtexlua52
>>> Wed Jan 11 13:45:03 UTC 2017 libtexluajit2
>>> Wed Jan 11 13:45:03 UTC 2017 texlive-binaries
>>> Wed Jan 11 19:21:48 UTC 2017 libjs-jquery-colorpicker
>>> Wed Jan 11 20:33:49 UTC 2017 libgraphite2-3
>>> Wed Jan 11 20:48:53 UTC 2017 python-pip
>>> Wed Jan 11 20:48:53 UTC 2017 python-pip-whl
>>> Thu Jan 12 14:25:19 UTC 2017 python-sympy
>>> Thu Jan 12 15:52:37 UTC 2017 linux-libc-dev
>>> Thu Jan 12 22:02:44 UTC 2017 libcurl3
>>> Thu Jan 12 22:02:44 UTC 2017 libcurl3-gnutls
>>> Sat Jan 14 09:45:31 UTC 2017 liboctave3v5
>>> Sat Jan 14 09:45:31 UTC 2017 octave
>>> Sat Jan 14 09:45:31 UTC 2017 octave-common
>>> Sat Jan 14 10:06:04 UTC 2017 libgcrypt11-dev
>>> Sat Jan 14 10:06:04 UTC 2017 libgcrypt20
>>> Sat Jan 14 10:06:04 UTC 2017 libgcrypt20-dev
>>> Sat Jan 14 10:41:47 UTC 2017 python-pathlib2
>>> Sat Jan 14 14:31:49 UTC 2017 libxml2
>>> Sat Jan 14 15:46:54 UTC 2017 icedtea-netx-common
>>> Sun Jan 15 16:49:05 UTC 2017 libtiff5
>>> Sun Jan 15 16:49:05 UTC 2017 libtiff5-dev
>>> Sun Jan 15 16:49:05 UTC 2017 libtiffxx5
>>> Sun Jan 15 22:00:02 UTC 2017 base-files
>>> Sun Jan 15 23:35:20 UTC 2017 libperl5.24
>>> Sun Jan 15 23:35:20 UTC 2017 perl
>>> Sun Jan 15 23:35:20 UTC 2017 perl-base
>>> Sun Jan 15 23:35:20 UTC 2017 perl-modules-5.24
>>> Mon Jan 16 08:20:46 UTC 2017 libidn2-0
>>> Mon Jan 16 12:55:35 UTC 2017 iso-codes
>>> Mon Jan 16 17:43:37 UTC 2017 libc-dev-bin
>>> Mon Jan 16 17:43:37 UTC 2017 libc6
>>> Mon Jan 16 17:43:37 UTC 2017 libc6-dbg
>>> Mon Jan 16 17:43:37 UTC 2017 libc6-dev
>>> Mon Jan 16 17:43:37 UTC 2017 multiarch-support
>>> Mon Jan 16 17:56:54 UTC 2017 libp11-kit-dev
>>> Mon Jan 16 17:56:54 UTC 2017 libp11-kit0
>>> Mon Jan 16 23:24:28 UTC 2017 libfltk-gl1.3
>>> Mon Jan 16 23:24:28 UTC 2017 libfltk1.3
>>> Mon Jan 16 23:45:42 UTC 2017 libgdk-pixbuf2.0-0
>>> Mon Jan 16 23:45:42 UTC 2017 libgdk-pixbuf2.0-common
>>> Tue Jan 17 01:29:36 UTC 2017 fakeroot
>>> Tue Jan 17 01:29:36 UTC 2017 libfakeroot
>>> Tue Jan 17 02:45:34 UTC 2017 tex-common
>>> Tue Jan 17 16:23:34 UTC 2017 libvpx-dev
>>> Tue Jan 17 16:23:34 UTC 2017 libvpx4
>>> Tue Jan 17 18:13:39 UTC 2017 libtasn1-6
>>> Tue Jan 17 18:13:39 UTC 2017 libtasn1-6-dev
>>> Tue Jan 17 23:56:22 UTC 2017 texlive-base
>>> Tue Jan 17 23:56:22 UTC 2017 texlive-latex-base
>>> Wed Jan 18 13:06:44 UTC 2017 libcups2
>>> Wed Jan 18 13:17:07 UTC 2017 init-system-helpers
>>> Wed Jan 18 13:33:24 UTC 2017 libqhull7
>>> Wed Jan 18 16:11:46 UTC 2017 cpp
>>> Wed Jan 18 16:11:46 UTC 2017 g++
>>> Wed Jan 18 16:11:46 UTC 2017 gcc
>>> Wed Jan 18 16:11:46 UTC 2017 gfortran
>>> Wed Jan 18 16:27:10 UTC 2017 libgpg-error-dev
>>> Wed Jan 18 16:27:10 UTC 2017 libgpg-error0
>>> Wed Jan 18 19:05:43 UTC 2017 binutils
>>> Wed Jan 18 19:40:41 UTC 2017 gnupg
>>> Wed Jan 18 19:40:41 UTC 2017 gnupg-agent
>>> Wed Jan 18 19:40:41 UTC 2017 gpgv
>>> Wed Jan 18 20:06:46 UTC 2017 libgd-dev
>>> Wed Jan 18 20:06:46 UTC 2017 libgd3
>>> Thu Jan 19 09:46:21 UTC 2017 docutils-common
>>> Thu Jan 19 09:46:21 UTC 2017 python-docutils
>>> Thu Jan 19 10:28:25 UTC 2017 gdb-python2
>>> Thu Jan 19 14:11:04 UTC 2017 libpython3.5-stdlib
>>> Thu Jan 19 14:11:04 UTC 2017 python3.5
>>> Thu Jan 19 14:48:08 UTC 2017 libpython2.7
>>> Thu Jan 19 14:48:08 UTC 2017 libpython2.7-dev
>>> Thu Jan 19 14:48:08 UTC 2017 libpython2.7-stdlib
>>> Thu Jan 19 14:48:08 UTC 2017 python2.7
>>> Thu Jan 19 14:48:08 UTC 2017 python2.7-dev
>>> Thu Jan 19 14:48:08 UTC 2017 python2.7-minimal
>>> Thu Jan 19 17:02:25 UTC 2017 python-pkg-resources
>>> Thu Jan 19 17:02:25 UTC 2017 python-setuptools
>>> Thu Jan 19 17:02:25 UTC 2017 python3-pkg-resources
>>> Thu Jan 19 17:22:49 UTC 2017 passwd
>>> Fri Jan 20 00:34:19 UTC 2017 python-numpy
>>> Fri Jan 20 05:36:39 UTC 2017 libxcomposite1
>>> Fri Jan 20 10:03:28 UTC 2017 libpython3-stdlib
>>> Fri Jan 20 10:03:28 UTC 2017 python3
>>> Fri Jan 20 10:03:28 UTC 2017 python3-minimal
>>> Fri Jan 20 12:58:59 UTC 2017 debconf
>>> Fri Jan 20 16:33:41 UTC 2017 libmount1
>>> Fri Jan 20 16:33:41 UTC 2017 libuuid1
>>> Fri Jan 20 21:18:15 UTC 2017 libssl1.1
>>> Fri Jan 20 21:18:15 UTC 2017 openssl
>>> Sat Jan 21 17:51:03 UTC 2017 cpp-6
>>> Sat Jan 21 17:51:03 UTC 2017 g++-6
>>> Sat Jan 21 17:51:03 UTC 2017 gcc-6
>>> Sat Jan 21 17:51:03 UTC 2017 gcc-6-base
>>> Sat Jan 21 17:51:03 UTC 2017 gfortran-6
>>> Sat Jan 21 17:51:03 UTC 2017 libcc1-0
>>> Sat Jan 21 17:51:03 UTC 2017 libgcc-6-dev
>>> Sat Jan 21 17:51:03 UTC 2017 libgcc1
>>> Sat Jan 21 17:51:03 UTC 2017 libgfortran3
>>> Sat Jan 21 17:51:03 UTC 2017 libgomp1
>>> Sat Jan 21 17:51:03 UTC 2017 libquadmath0
>>> Sat Jan 21 17:51:03 UTC 2017 libstdc++-6-dev
>>> Sat Jan 21 17:51:03 UTC 2017 libstdc++6
>>> Sun Jan 22 00:17:42 UTC 2017 python-sagenb
>>> Sun Jan 22 02:35:45 UTC 2017 python-matplotlib
>>> Sun Jan 22 02:35:45 UTC 2017 python-matplotlib-data
>>>
>>> Details
>>> =======
>>>
>>> After installing the debugging tools and symbols (in the schroot):
>>>
>>> $ sudo apt-get install python-dbg cython-dbg ecl-dbgsym libgc1c2-dbgsym
>>>
>>> then manually running the `debian/rules export-build-env` stuff, we use gdb to
>>> figure out we're in the correct python process (because there are many of them
>>> in parallel), then we use cygdb to print some more detailed information.
>>>
>>> Using gdb with python
>>> ---------------------
>>>
>>> https://wiki.python.org/moin/DebuggingWithGdb
>>>
>>> (unstable-i386-sbuild)infinity0 at host:/build/sagemath-ZP1Le0/sagemath-7.4/sage$ gdb python 46075
>>> [..]
>>> Reading symbols from python...Reading symbols from /usr/lib/debug/.build-id/41/b28b05836a808ae7dd4e567c413177923cc4b2.debug...done.
>>> done.
>>> Attaching to program: /usr/bin/python, process 46075
>>> [New LWP 46106]
>>> [..]
>>> [New LWP 46117]
>>> [Thread debugging using libthread_db enabled]
>>> Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
>>> 0xce401bc6 in ?? () from /usr/lib/i386-linux-gnu/libgc.so.1
>>> (gdb) py-bt
>>> Traceback (most recent call first):
>>>   File "/build/sagemath-ZP1Le0/sagemath-7.4/debian/build/usr/lib/python2.7/dist-packages/sage/interfaces/maxima_lib.py", line 92, in <module>
>>>     from sage.libs.ecl import EclObject, ecl_eval
>>>   File "/build/sagemath-ZP1Le0/sagemath-7.4/debian/build/usr/lib/python2.7/dist-packages/sage/calculus/functional.py", line 52, in simplify
>>>     return f.simplify()
>>>   File "<doctest sage.functions.wigner.clebsch_gordan[0]>", line 1, in <module>
>>>   File "/build/sagemath-ZP1Le0/sagemath-7.4/debian/build/usr/lib/python2.7/dist-packages/sage/doctest/forker.py", line 861, in compile_and_execute
>>>     exec(compiled, globs)
>>>   [.. uninteresting ..]
>>>   File "/build/sagemath-ZP1Le0/sagemath-7.4/sage/src/bin/sage-runtests", line 89, in <module>
>>>     err = DC.run()
>>> (gdb) py-list
>>>   87    from __future__ import print_function
>>>   88    from __future__ import absolute_import
>>>   89    
>>>   90    from sage.symbolic.ring import SR
>>>   91    
>>>  >92    from sage.libs.ecl import EclObject, ecl_eval
>>>   93    
>>>   94    from .maxima_abstract import (MaximaAbstract, MaximaAbstractFunction,
>>>   95      MaximaAbstractElement, MaximaAbstractFunctionElement,
>>>   96      MaximaAbstractElementFunction)
>>>   97    
>>> (gdb) quit
>>> A debugging session is active.
>>>
>>> 	Inferior 1 [process 46075] will be detached.
>>>
>>> Quit anyway? (y or n) y
>>> Detaching from program: /usr/bin/python, process 46075
>>>
>>> Using cygdb
>>> -----------
>>>
>>> https://cython.readthedocs.io/en/latest/src/userguide/debugging.html
>>>
>>> (unstable-i386-sbuild)infinity0 at host:/build/sagemath-ZP1Le0/sagemath-7.4/sage$ cygdb src/build/ -- -d src/sage -d .. python 46075
>>> [..]
>>> Reading symbols from python...Reading symbols from /usr/lib/debug/.build-id/41/b28b05836a808ae7dd4e567c413177923cc4b2.debug...done.
>>> done.
>>> Attaching to program: /usr/bin/python, process 46075
>>> [New LWP 46106]
>>> [..]
>>> [New LWP 46117]
>>> [Thread debugging using libthread_db enabled]
>>> Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
>>> 0xce401bc6 in get_index (addr=addr at entry=2232868864) at headers.c:207
>>> 207	headers.c: No such file or directory.
>>> warning: .cygdbinit: No such file or directory
>>> (gdb) bt
>>> #0  0xce401bc6 in get_index (addr=addr at entry=2232868864) at headers.c:207
>>> #1  0xce401e19 in GC_install_counts (h=0xff96e000, sz=4456448) at headers.c:279
>>> #2  0xce3faf45 in GC_allochblk_nth (sz=4456448, kind=1, flags=1, n=60, may_split=1) at allchblk.c:791
>>> #3  0xce3fb361 in GC_allochblk (sz=4456448, kind=1, flags=1) at allchblk.c:624
>>> #4  0xce4022f1 in GC_alloc_large (lb=4456448, k=1, flags=1) at malloc.c:64
>>> #5  0xce40304b in GC_generic_malloc_ignore_off_page (lb=4456448, k=1) at mallocx.c:192
>>> #6  0xce4031ba in GC_malloc_ignore_off_page (lb=4456448) at mallocx.c:223
>>> #7  0xce5a8678 in ecl_alloc_unprotected (n=4456448) at /build/ecl-IrXgwb/ecl-15.3.7+dfsg1/src/c/alloc_2.d:717
>>> #8  0xce5a8769 in ecl_alloc (n=4456448) at /build/ecl-IrXgwb/ecl-15.3.7+dfsg1/src/c/alloc_2.d:732
>>> #9  0xce58d251 in alloc_pointerfull_memory (l=1114112) at /build/ecl-IrXgwb/ecl-15.3.7+dfsg1/src/c/array.d:530
>>> #10 0xce58d2ed in ecl_array_allocself (x=0xff920de0) at /build/ecl-IrXgwb/ecl-15.3.7+dfsg1/src/c/array.d:545
>>> #11 0xce58dc95 in si_make_vector (etype=0xce6ef61c <cl_symbols+28>, dim=0x440003, adj=0x1, fillp=0x1, displ=0x1, disploff=0x3) at /build/ecl-IrXgwb/ecl-15.3.7+dfsg1/src/c/array.d:521
>>> #12 0xce4e32d3 in _eclWWewOka7_1m3gSs21 (flag=0x0) at lsp/format.c:17846
>>> #13 0xce566eec in ecl_init_module (block=<optimized out>, entry_point=0xce4e3140 <_eclWWewOka7_1m3gSs21>) at /build/ecl-IrXgwb/ecl-15.3.7+dfsg1/src/c/read.d:2444
>>> #14 0xce48b62f in init_lib_LSP (cblock=0x0) at eclinitFTPx4A.c:193
>>> #15 0xce566eec in ecl_init_module (block=<optimized out>, entry_point=0xce48b430 <init_lib_LSP>) at /build/ecl-IrXgwb/ecl-15.3.7+dfsg1/src/c/read.d:2444
>>> #16 0xce48a57e in cl_boot (argc=<optimized out>, argv=<optimized out>) at /build/ecl-IrXgwb/ecl-15.3.7+dfsg1/src/c/main.d:779
>>> #17 0xce7204f4 in __pyx_pf_4sage_4libs_3ecl_4init_ecl (__pyx_self=<optimized out>) at ./sage/src/build/cythonized/sage/libs/ecl.c:5438
>>> #18 0xce71fe51 in __Pyx_PyObject_Call (kw=<optimized out>, arg=<optimized out>, func=<optimized out>) at ./sage/src/build/cythonized/sage/libs/ecl.c:13253
>>> #19 __Pyx_PyObject_CallNoArg (func=<optimized out>) at ./sage/src/build/cythonized/sage/libs/ecl.c:13532
>>> #20 0xce72effb in initecl () at ./sage/src/build/cythonized/sage/libs/ecl.c:13034
>>> #21 0xf74f3c22 in ?? ()
>>> Backtrace stopped: previous frame inner to this frame (corrupt stack?)
>>> (gdb) up 17
>>> #17 0xce7204f4 in __pyx_pf_4sage_4libs_3ecl_4init_ecl (__pyx_self=<optimized out>) at ./sage/src/build/cythonized/sage/libs/ecl.c:5438
>>> 5438	  cl_boot(1, __pyx_v_argv);
>>> (gdb) cy list
>>>   5433     *     ecl_set_option(ECL_OPT_SIGNAL_HANDLING_THREAD, 0)
>>>   5434     *     cl_boot(1, argv)             # <<<<<<<<<<<<<<
>>>   5435     * 
>>>   5436     *     #save signal handler from ECL
>>>   5437     */
>>>> 5438      cl_boot(1, __pyx_v_argv);
>>>   5439    
>>>   5440      /* "sage/libs/ecl.pyx":264
>>>   5441     * 
>>>   5442     *     #save signal handler from ECL
>>> (gdb) up
>>> #18 0xce71fe51 in __Pyx_PyObject_Call (kw=<optimized out>, arg=<optimized out>, func=<optimized out>) at ./sage/src/build/cythonized/sage/libs/ecl.c:13253
>>> 13253	    result = (*call)(func, arg, kw);
>>> (gdb) up
>>> #19 __Pyx_PyObject_CallNoArg (func=<optimized out>) at ./sage/src/build/cythonized/sage/libs/ecl.c:13532
>>> 13532	    return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL);
>>> (gdb) up
>>> #20 0xce72effb in initecl () at ./sage/src/build/cythonized/sage/libs/ecl.c:13034
>>> 13034	    __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1334, __pyx_L1_error)
>>> (gdb) cy bt
>>> #1  0x00000000ce72d7e0 in ecl() at /build/sagemath-ZP1Le0/sagemath-7.4/sage/src/sage/libs/ecl.pyx:1334
>>>       1334    init_ecl()(gdb) cy list
>>>   1329        cdef cl_object o
>>>   1330        o=ecl_safe_read_string(s)
>>>   1331        o=ecl_safe_eval(o)
>>>   1332        return ecl_wrap(o)
>>>   1333    
>>>> 1334    init_ecl()
>>> (gdb) quit
>>> A debugging session is active.
>>>
>>> 	Inferior 1 [process 46075] will be detached.
>>>
>>> Quit anyway? (y or n) y
>>> Detaching from program: /usr/bin/python, process 46075
>>> close failed in file object destructor:
>>> IOError: [Errno 9] Bad file descriptor
>>>
>>> At this point I gave up because I didn't want to spend time debugging libgc or ecl.
>>>
>>> X
>>>
>>
>>
>> _______________________________________________
>> Debian-science-sagemath mailing list
>> Debian-science-sagemath at lists.alioth.debian.org
>> https://lists.alioth.debian.org/mailman/listinfo/debian-science-sagemath
>>
> 
> 


-- 
GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE
https://github.com/infinity0/pubkeys.git



More information about the Debian-science-sagemath mailing list