# Building SageMath 9.1.rc3 on Debian 9
Based on a working Sage 9.1.rc2.
## Configure
```
$ git pull origin develop --tags
[...]
$ make configure
[...]
$ ./configure
[...]
```
The `./configure` step recommends:
```
$ sudo apt-get update
$ sudo apt-get install libboost-dev coinor-cbc coinor-libcbc-dev
pari-gp2c libisl-dev libxml-libxslt-perl libxml-writer-perl
libxml2-dev libperl-dev libfile-slurp-perl libjson-perl libsvg-perl
libterm-readkey-perl libterm-readline-gnu-perl libmongodb-perl
```
But some of them are already there:
```
$ dpkg-query --list libboost-dev coinor-cbc coinor-libcbc-dev
pari-gp2c libisl-dev libxml-libxslt-perl libxml-writer-perl
libxml2-dev libperl-dev libfile-slurp-perl libjson-perl libsvg-perl
libterm-readkey-perl libterm-readline-gnu-perl libmongodb-perl
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-========================-=================-=================-=====================================================
ii coinor-cbc 2.8.12-1+b2 amd64
Coin-or branch-and-cut mixed integer programming solv
ii coinor-libcbc-dev 2.8.12-1+b2 amd64
Coin-or branch-and-cut mixed integer programming solv
ii libboost-dev:amd64 1.62.0.1 amd64 Boost
C++ Libraries development files (default versio
ii libisl-dev:amd64 0.18-1 amd64
manipulating sets and relations of integer points bou
ii libperl-dev 5.24.1-3+deb9u6 amd64 Perl
library: development files
ii libterm-readline-gnu-per 1.35-1 amd64 Perl
extension for the GNU ReadLine/History Library
ii libxml-libxslt-perl 1.95-1+b1 amd64 Perl
interface to the GNOME libxslt library
ii libxml-writer-perl 0.625-1 all Perl
module for writing XML documents
ii libxml2-dev:amd64 2.9.4+dfsg1-2.2+d amd64
Development files for the GNOME XML library
ii pari-gp2c 0.0.10-1 amd64
PARI/GP GP to C compiler
dpkg-query: no packages found matching libfile-slurp-perl
dpkg-query: no packages found matching libjson-perl
dpkg-query: no packages found matching libsvg-perl
dpkg-query: no packages found matching libterm-readkey-perl
dpkg-query: no packages found matching libmongodb-perl
```
This might be (?) in the same vein as the problem reported at
- Sage Trac ticket 29586
Improve configure recommendations
https://trac.sagemath.org/ticket/29586
## Build
```
$ make -s V=0
[...]
```
All fine.
## Tests
I wonder if it's normal that `make ptestlong` seems to
start by `make sagelib` and `make dochtml` even though
those were run just before. I forget if there's a ticket for that.
Two files with failing doctests:
```
$ make ptestlong
[...]
----------------------------------------------------------------------
sage -t --long src/sage/tests/cmdline.py # 3 doctests failed
sage -t --long src/sage/interfaces/psage.py # 1 doctest failed
----------------------------------------------------------------------
Total time for all tests: 1669.1 seconds
cpu time: 11902.3 seconds
cumulative wall time: 12716.7 seconds
Makefile:182: recipe for target 'ptestlong' failed
make: *** [ptestlong] Error 1
$
```
## Retest the files with failing doctests,
One of them(`src/sage/tests/cmdline.py`) still fails 3 doctests:
```
$ ./sage -t --long src/sage/tests/cmdline.py
too many failed tests, not using stored timings
Running doctests with ID 2020-05-06-00-31-02-ac8fcb17.
Git branch: develop
Using --optional=build,dochtml,memlimit,sage
Doctesting 1 file.
sage -t --long src/sage/tests/cmdline.py
**********************************************************************
File "src/sage/tests/cmdline.py", line 598, in
sage.tests.cmdline.test_executable
Failed example:
out.startswith("3.")
Expected:
True
Got:
False
**********************************************************************
File "src/sage/tests/cmdline.py", line 600, in
sage.tests.cmdline.test_executable
Failed example:
err
Expected:
''
Got:
'/home/lelievre/s/sage3/src/bin/sage: line 546: exec: sqlite3: not found\n'
**********************************************************************
File "src/sage/tests/cmdline.py", line 602, in
sage.tests.cmdline.test_executable
Failed example:
ret
Expected:
0
Got:
127
**********************************************************************
1 item had failures:
3 of 233 in sage.tests.cmdline.test_executable
[232 tests, 3 failures, 53.14 s]
----------------------------------------------------------------------
sage -t --long src/sage/tests/cmdline.py # 3 doctests failed
----------------------------------------------------------------------
Total time for all tests: 53.2 seconds
cpu time: 0.6 seconds
cumulative wall time: 53.1 seconds
$
```
The other one (`src/sage/interfaces/psage.py`) passes all tests:
```
$ ./sage -t --long src/sage/interfaces/psage.py
too many failed tests, not using stored timings
Running doctests with ID 2020-05-06-00-33-48-cfa1037b.
Git branch: develop
Using --optional=build,dochtml,memlimit,sage
Doctesting 1 file.
sage -t --long src/sage/interfaces/psage.py
[6 tests, 7.02 s]
----------------------------------------------------------------------
All tests passed!
----------------------------------------------------------------------
Total time for all tests: 7.1 seconds
cpu time: 0.1 seconds
cumulative wall time: 7.0 seconds
```