[Bug 1960459] Re: Sage cannot be launched if `python3` does not point to system interpreter

2022-05-04 Thread James Gerity
Looking at this again, I believe this bug may have been fixed (or at
least mitigated) in Sage 9.1, which introduced some changes to the
`sage` entrypoint around the `exec` commands I identified in my original
report. More specifically the changes introduced by this commit:
https://github.com/sagemath/sage/commit/248c13b542b12521bd91d6648bd6220fb7593a26
(tied to this ticket on the sagemath tracker:
https://trac.sagemath.org/ticket/29627)

If I change `exec python3` in `/usr/bin/sage` to `exec
"$SAGE_PYTHON"/bin/python3` (i.e. apply the changes in the linked
commit), sage does load up successfully even if a virtual environment is
active (i.e. if `python3` points somewhere other than
`/usr/bin/python3`). IPython does still issue a warning about the active
venv, but sage is able to successfully start. Not sure if there is any
interest in a backport here, or even if this package is under active
maintenance in Ubuntu, but thought I'd share some more information about
the problem upstream.

I should also note that on 22.04 (sage 9.5), sage does not start when a
venv is active, although the error report is substantially longer and it
appears to be a separate issue.

** Bug watch added: trac.sagemath.org/ #29627
   https://trac.sagemath.org/ticket/29627

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1960459

Title:
  Sage cannot be launched if `python3` does not point to system
  interpreter

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/sagemath/+bug/1960459/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1960459] [NEW] Sage cannot be launched if `python3` does not point to system interpreter

2022-02-09 Thread James Gerity
Public bug reported:

## Expected behavior:

Running `sage` after installing the `sagemath` command starts Sage, even
if `python3` resolves somewhere other than `/usr/bin/python3` (examples
of when it doesn't: virtual environments, use of the conda package
manager, pyenv)

## Actual behavior:

```
$ sage
Traceback (most recent call last):
  File "/usr/share/sagemath/bin/sage-ipython", line 9, in 
from sage.misc.banner import banner
ModuleNotFoundError: No module named 'sage'
```

## Reproduction:

```
$ sudo apt install sagemath
...
$ which python3
/usr/bin/python3
$ sage
┌┐
│ SageMath version 9.0, Release Date: 2020-01-01 │
│ Using Python 3.8.10. Type "help()" for help.   │
└┘
sage: 1 + 1  
2
sage:   

Exiting Sage (CPU time 0m0.14s, Wall time 0m27.42s).
$ python3 -m venv --copies /tmp/testvenv  # note: --copies is necessary for 
full isolation
$ source activate /tmp/testvenv/bin/activate
$ which python3
/tmp/testvenv/bin/python3
$ sage
Traceback (most recent call last):
  File "/usr/share/sagemath/bin/sage-ipython", line 9, in 
from sage.misc.banner import banner
ModuleNotFoundError: No module named 'sage'
```

As a workaround for anybody else who stumbles into this, you can still
invoke sage as: `/usr/bin/python3 /usr/share/sagemath/bin/sage-ipython`,
which forces

## Additional information

There are a few layers of indirection at work in this bug, but at the
end of the day, this happens because of an `exec python3` embedded in
the part of the `sage` shell script responsible for launching Python.
Upstream reference:
https://github.com/sagemath/sage/blob/9.0/src/bin/sage#L614-L631

If I'm not mistaken, these lines should always point to /usr/bin/python3
for the Ubuntu package to avoid this flaw. Note that there are other
executables (ipython in particular) which may be appropriate to locate
against the system as well. The package maintainer(s) probably know how
to fix this better than I do, but I can confirm that replacing `exec
python3` with `exec /usr/bin/python3` in these two locations does appear
to resolve the problem.

## Boilerplate information:

1) system info

$ lsb_release -rd
Description:Ubuntu 20.04.3 LTS
Release:20.04

2) package info

$ apt-cache policy sagemath
sagemath:
  Installed: 9.0-1ubuntu4
  Candidate: 9.0-1ubuntu4
  Version table:
 *** 9.0-1ubuntu4 500
500 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
100 /var/lib/dpkg/status

** Affects: sagemath (Ubuntu)
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1960459

Title:
  Sage cannot be launched if `python3` does not point to system
  interpreter

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/sagemath/+bug/1960459/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs