Differences between revisions 371 and 400 (spanning 29 versions)
Revision 371 as of 2016-11-19 12:59:40
Size: 12025
Editor: Infinity0
Comment: uploaded sagenb
Revision 400 as of 2016-12-04 14:03:15
Size: 11390
Editor: ?TobiasHansen
Comment: Uploaded sagemath to devel apt repo.
Deletions are marked like this. Additions are marked like this.
Line 26: Line 26:
The output of the pruner tells you in the end which dependencies were not found on the machine. These will be downloaded and built in the build step, before Sage itself is built. Currently (November 2016) the pruner should output something like the following. The output of the pruner tells you in the end which dependencies were not found on the machine. These will be downloaded and built in the build step, before Sage itself is built. Currently (December 2016) the pruner should output something like the following.
Line 28: Line 29:
ipywidgets will not come from debian!
sagenb_export will not come from debian!
158 system packages will be used
160 system packages will be used
Line 42: Line 40:
|| [[https://packages.qa.debian.org/c/cython.html|cython]] || DebianBug:842296 || Debian maintainer needs to apply [[https://github.com/cython/cython/commit/332b330096bb260f638849526ba0f7d8888db905|this upstream patch]] or package cython 0.25.||
|| [[https://anonscm.debian.org/cgit/python-modules/packages/jupyter-notebook.git|jupyter-notebook]] || DebianBug:801366 || Package is in NEW queue. ||
|| [[https://anonscm.debian.org/cgit/debian-science/packages/maxima-sage.git|maxima-sage]] || DebianBug:779804 || This is a special Maxima package using ECL and the same version as Sage 7.4. In NEW queue. ||
||<-3 style="border-top:1pt solid; border-bottom:1pt solid"> '''Needs further work, not uploaded yet:''' ||
|| [[https://anonscm.debian.org/cgit/debian-science/packages/sagemath.git|sagemath]] || DebianBug:841136 || Please test this. Run the test suite from the installed package (see README.Debian for instructions), test with sagenb and jupyter-notebook and so on. I will try to keep this as up-to-date as possible and tag the git commits for the sage revisions. ||
|| [[https://anonscm.debian.org/cgit/debian-science/packages/sagenb.git|sagenb]] || DebianBug:846643 || Our package replaces many of upstream's embedded libraries with newer versions in Debian. Some API calls had to be patched, please test it. Then I (infinity0) can upload to NEW. ||
|| [[https://anonscm.debian.org/cgit/python-modules/packages/ipywidgets.git|ipywidgets]] || DebianBug:838684, DebianBug:838683 || [[https://github.com/ipython/ipywidgets]], includes "widgetsnbextension" as jupyter-nbextension-jupyter-js-widgets ||
|| [[https://anonscm.debian.org/git/debichem/packages/jmol.git/|jmol]] || || Debian's current version is too old, see DebianBug:719330. Due to various issues our package does not contain JSmol. ||
||<-3 style="border-top:1pt solid; border-bottom:1pt solid"> '''Patched packages:''' ||
Line 46: Line 47:
|| [[https://packages.qa.debian.org/g/gap.html|gap]] || DebianBug:844789 || [[http://sources.debian.net/src/gap/4r8p6-1/debian/patches/fix-compressed-six-files/|This patch]] causes dosctests failures related to GAP (and libGAP): this is an unpatched version of the GAP package 4r8p6-1. ||
|| [[https://packages.qa.debian.org/p/pari.html|pari]] || || We applied [[https://github.com/sagemath/sage/blob/master/build/pkgs/pari/patches/stackwarn.patch|this patch]] to fix doctests. Do we really need this or can we just modify the doctests? ||
|| [[https://anonscm.debian.org/cgit/debian-science/packages/sagenb.git|sagenb]] || || The current sagenb package ships a bunch of javascript libraries. It should use at least these Debian packages instead: [[https://packages.qa.debian.org/m/mathjax.html|mathjax]], [[https://packages.qa.debian.org/t/tinymce.html|tinymce]], [[https://packages.qa.debian.org/j/jquery.html|jquery]], [[https://packages.qa.debian.org/j/jqueryui.html|jqueryui]], [[https://packages.qa.debian.org/c/codemirror-js.html|codemirror]] ||
|| [[https://packages.qa.debian.org/g/gap.html|gap]] || DebianBug:844789 || Uncompressing gz files on the fly through pipes causes the doctests failures related to GAP (and libGAP): this package uncompresses directly with zlib to avoid the underlying EPIPE signal mess. ||
|| [[https://packages.qa.debian.org/libg/libgap-sage.html|libgap-sage]] || || (idem) ||
Line 50: Line 50:
||[[https://anonscm.debian.org/cgit/python-modules/packages/nbsphinx.git|nbsphinx]]|| DebianBug:838806 || jupyter-sphinx-theme Build-Depends on nbsphinx; in NEW queue.||
|| [[https://anonscm.debian.org/git/python-modules/packages/jupyter-sphinx-theme.git|jupyter-sphinx-theme]] || DebianBug:838798 || ipywidgets Build-Depends on jupyter-sphinx-theme; an ITP has been submitted (DebianBug:838798).||
|| [[https://anonscm.debian.org/git/pkg-javascript/jquery-typeahead.js.git|jquery-typeahead.js]] || DebianBug:840535 || jupyter-notebook Build-Depends on jquery-typeahead.js; in NEW queue.||
||<-3 style="border-top:1pt solid; border-bottom:1pt solid"> '''In NEW queue''' (after it passes, we can drop it from our APT repo): ||
|| [[https://anonscm.debian.org/cgit/pkg-javascript/d3-format.git/|d3-format]] || DebianBug:844784 || Build-Depends of widgetsnbextension. ||
|| [[https://anonscm.debian.org/git/python-modules/packages/jupyter-sphinx-theme.git|jupyter-sphinx-theme]] || DebianBug:838798 || Build-Depends of ipywidgets. ||
|| [[https://anonscm.debian.org/cgit/python-modules/packages/jupyter-notebook.git|jupyter-notebook]] || DebianBug:801366 || Build-Depends of sagemath. ||
|| [[https://anonscm.debian.org/cgit/debian-science/packages/maxima-sage.git|maxima-sage]] || DebianBug:779804 || This is a special Maxima package using ECL and the same version as what Sage 7.4 uses; see bug report for more details. ||
|| [[https://anonscm.debian.org/cgit/python-modules/packages/nbsphinx.git|nbsphinx]]|| DebianBug:838806 || Build-Depends of jupyter-sphinx-theme.||
|| [[https://anonscm.debian.org/cgit/debian-science/packages/sagenb-export.git/|sagenb_export]] || DebianBug:839782 || Build-Depends of sagemath. ||
Line 58: Line 62:
|| [[https://anonscm.debian.org/cgit/python-modules/packages/ipywidgets.git|ipywidgets]] || DebianBug:838684, DebianBug:838683 || [[https://github.com/ipython/ipywidgets]], includes widgetsnbextension ||
|| [[https://anonscm.debian.org/cgit/debian-science/packages/sagenb-export.git/|sagenb_export]] || DebianBug:839782|| Package is in NEW ||
|| d3-format || DebianBug:844784 || Package is in NEW ||
|| html2canvas || || https://github.com/niklasvh/html2canvas, dependency of widgetsnbextension ||
||<-3> None at this time, but see "Needs further work" above. ||
Line 63: Line 64:
||[[https://tracker.debian.org/pkg/cython|cython]] || DebianBug:833288 || A fix was uploaded to deferred. ||
||[[https://tracker.debian.org/pkg/libatomic-ops|libatomic-ops]] || DebianBug:728955 || This prevents ecl from migrating to testing. This 3 year old bug is also in testing, so the package should migrate when the missing packages are removed from testing. ||
||[[https://tracker.debian.org/pkg/linbox|linbox]] || DebianBug:797167, DebianBug:840458 || ||
||[[https://tracker.debian.org/pkg/ppl|ppl]] || DebianBug:806865, DebianBug:811825 || A package fixing the bugs is in NEW queue.||
Line 68: Line 65:
||[[https://tracker.debian.org/pkg/zeromq3|zeromq3]] || DebianBug:844479 || ||
Line 70: Line 68:
|| [[https://anonscm.debian.org/git/debichem/packages/jmol.git/|jmol]] || || There is a request for help, see DebianBug:719330 ||

Some people within DebianScience would like to package again Sage for Debian. An old version of Sage got packaged long time ago by Tim Abbott, but, because of lack of maintainance, it became totally unusable and was removed from Debian. The status pages (master, develop) give an overview about package versions in Sage and Debian. If you want to help out, pick one of the open tasks or issues below and get going. Or contact us via the mailing list or in #debian-science on irc.oftc.net.

Building Sage with Debian packages

We have a git repository (sagemath) to document the steps we currently do to experiment with building Sage against Debian packages. Important elements are the build dependencies of Sage, patches for Sage and a script called "pruner" that uses automake to determine if the necessary packages are installed (see also this mail).

Start with Debian unstable (sid) with experimental sources enabled. It is nice to do this in a chroot with schroot. (If your build fails with "Permission denied", try adding the following line to /etc/schroot/default/fstab: tmpfs  /dev/shm  tmpfs  rw,nosuid,nodev  0  0 - more details here)

To set up your system for working with our repo:

sudo apt-get install git quilt devscripts python-sphinx

Install packages that are required before installing the build dependencies.

for d in deb deb-src; do \
    echo "$d https://debian-science.alioth.debian.org/apt sid-sage/"; done \
  | sudo tee /etc/apt/sources.list.d/deb-sci-sage.list

Add our unstable-sage repo for patched dependencies. This is optional; if you prefer you can build these yourself from the instructions in the table below.

gpg --recv-keys 0xD1188AF4A1398A5FCC3F576654B3F967097676A0

Get the repo key.

gpg --export 0xD1188AF4A1398A5FCC3F576654B3F967097676A0 | sudo apt-key add -

Install the repo key.

printf "Package: *\nPin: release n=sid-sage\nPin-Priority: 100\n" \
  | sudo tee /etc/apt/preferences.d/deb-sci-sage
sudo apt-get update

Pin our repo at a low priority so it doesn't mess with the rest of your system. OTOH, if you really really want this repo's packages, to make sure you get the latest and greatest efforts of the Debian Sage packaging team above all else (including maybe our patched dependency packages messing up your system) then you can set the Pin-Priority to a high number like 800.

git clone --recursive https://anonscm.debian.org/git/debian-science/packages/sagemath.git

Recursive git clone to also get sage which is included as a git submodule.

To build the package, run:

debian/rules reset

Apply patches and force-reset the upstream sage submodule. Note: also removes ~/.sage/local and ~/.local/share/sagemath

debian/rules build-dep

Install build dependencies. (Run 'apt-get -f install' afterwards.)

debian/rules prune

Run the pruner script. Check that the output matches the one below.

debian/rules build

Build sage and run the test suite.

The output of the pruner tells you in the end which dependencies were not found on the machine. These will be downloaded and built in the build step, before Sage itself is built. Currently (December 2016) the pruner should output something like the following.

160 system packages will be used

See debian/README.Debian for any workarounds you might have to apply, such as patching local system files.

Open tasks

Packages in our development APT repository:

Up-to-date information about the packages in the repo can be found on the status pages. (master branch, develop branch)

Package

Bug / Link

Reason for being in the repository

Needs further work, not uploaded yet:

sagemath

841136

Please test this. Run the test suite from the installed package (see README.Debian for instructions), test with sagenb and jupyter-notebook and so on. I will try to keep this as up-to-date as possible and tag the git commits for the sage revisions.

sagenb

846643

Our package replaces many of upstream's embedded libraries with newer versions in Debian. Some API calls had to be patched, please test it. Then I (infinity0) can upload to NEW.

ipywidgets

838684, 838683

https://github.com/ipython/ipywidgets, includes "widgetsnbextension" as jupyter-nbextension-jupyter-js-widgets

jmol

Debian's current version is too old, see 719330. Due to various issues our package does not contain JSmol.

Patched packages:

numpy

842348

Debian maintainer needs to apply this proposed upstream patch - basically accepted but needs unit tests

gap

844789

Uncompressing gz files on the fly through pipes causes the doctests failures related to GAP (and libGAP): this package uncompresses directly with zlib to avoid the underlying EPIPE signal mess.

libgap-sage

(idem)

sympy

840621

We applied this patch to fix a doctest.

In NEW queue (after it passes, we can drop it from our APT repo):

d3-format

844784

Build-Depends of widgetsnbextension.

jupyter-sphinx-theme

838798

Build-Depends of ipywidgets.

jupyter-notebook

801366

Build-Depends of sagemath.

maxima-sage

779804

This is a special Maxima package using ECL and the same version as what Sage 7.4 uses; see bug report for more details.

nbsphinx

838806

Build-Depends of jupyter-sphinx-theme.

sagenb_export

839782

Build-Depends of sagemath.

Other packages:

Package

Bug / Link

Comments

Need to be packaged:

None at this time, but see "Needs further work" above.

RC bugs that need to be fixed before the freeze (prevent testing migration):

pyzmq

818265

zeromq3

844479

Things that can wait until after stretch:

cvxopt

An update is ready in git, ?SageMath seems to work with the old version.

thebe

https://github.com/oreillymedia/thebe, lots of javascript dependencies

Uploading patched packages

We've set up a mini-dinstall APT repo to upload our patched Debian packages to, so that we can build sage against these. This is a temporary measure to make everything work more quickly, and these patched packages are unlikely to be added to Debian officially.

To upload, you must be a member of the debian-science group on alioth. Then, you should add this to your ~/.dput.cf:

[deb-sci-sage]
method = scp
fqdn = alioth.debian.org
incoming = /home/groups/debian-science/htdocs/apt/mini-dinstall/incoming/
post_upload_command = ssh alioth.debian.org /home/groups/debian-science/mini-dinstall

mini-dinstall is pretty forgiving and you should be able to overwrite any existing version in this repo or even downgrade versions. However, you must set the distribution in debian/changelog to sid-sage or unstable-sage, otherwise your package will get rejected. Alternatively, do the build without changing debian/changelog, then afterwards edit the .changes file to say Distribution: sid-sage, then debsign it and upload.

Please include the .orig tarball in your upload, which helps our status pages report more accurately. To do this, you can give --changes-option=-sa to dpkg-buildpackage, or if you forget to do this then you can run changestool $XXX.changes includeallsources after the build, then debsign it and upload.

To remove a package:

  • ssh to alioth.debian.org

  • Delete the packages from /home/groups/debian-science/htdocs/apt/sid-sage

  • Run /home/groups/debian-science/mini-dinstall -b --no-db

Links