# $Id: PKGBUILD 142362 2015-10-01 16:02:55Z fyan $
# Maintainer: Kyle Keen <keenerd@gmail.com>

pkgbase=jupyter
pkgname=(jupyter ipython2-notebook)
pkgver=4.0.6
pkgrel=2
pkgdesc="A language-agnostic web-based interactive shell/notebook server."
arch=('any')
url="http://jupyter.org/"
license=('BSD')
depends=('ipython' 'python-setuptools'
         'python-jinja' 'python-pyzmq' 'python-tornado' 'python-jsonschema'
         'python-terminado' 'python-mistune' 'python-pygments')
makedepends=('python-setuptools' 'python2-setuptools' 'npm' 'git')
optdepends=('mathjax: latex equation rendering'
            'qt5-svg: jupyter-qtconsole'
            'python-pyqt5: jupyter-qtconsole'
            'python-sip: jupyter-qtconsole')

# some of these will update rapidly, others never
# so _vers will be phased in as new updates are released
_ipykv=4.0.3  # ipykernel
_ipywv=4.0.2  # ipywidgets
_qtcv=4.0.1   # qtconsole
_notev=4.0.4  # notebook

source=("jupyter_core.tgz::https://github.com/jupyter/jupyter_core/archive/$pkgver.tar.gz"
        "ipykernel.tgz::https://github.com/ipython/ipykernel/archive/$_ipykv.tar.gz"
        "ipywidgets.tgz::https://github.com/ipython/ipywidgets/archive/$_ipywv.tar.gz"
        "nbconvert.tgz::https://github.com/jupyter/nbconvert/archive/4.0.0.tar.gz"
        "nbformat.tar.gz::https://github.com/jupyter/nbformat/archive/4.0.0.tar.gz"
        "jupyter_console.tgz::https://github.com/jupyter/jupyter_console/archive/4.0.2.tar.gz"
        "jupyter_client.tgz::https://github.com/jupyter/jupyter_client/archive/4.0.0.tar.gz"
        "notebook.tgz::https://github.com/jupyter/notebook/archive/$_notev.tar.gz"
        "https://pypi.python.org/packages/source/q/qtconsole/qtconsole-$_qtcv.tar.gz")
md5sums=('50a73c3a4a8ed047a3674d2b5274cc3b'
         '690f424a89e38a5559802bb58223142e'
         '1ced3f6b0893f7a43c6392252c0f80ab'
         '9661620b1e10a7b46f314588d2d0932f'
         '7cf61359fa4e9cf3ef5e969e2fcb909e'
         'f2e174938c91136549b908bd39fa5d59'
         '00fa63c67cb3adf359d09dc4d803aff5'
         'ab72f28f6af8107d71241a4110e92c05'
         'a8f17246361ee37ec55d3222dee9e18c')

# notebook optdeps ?
# 'haskell-pandoc: ipython notebook conversion'
# 'texlive-bin: notebook pdf export'

# qtconsole deps?
# python-pyqt4 python-sip python-pygments python-pyzmq
# is qt5 now?

prepare() {
  cd "$srcdir"
  cp -r jupyter_core-$pkgver python2-jupyter_core-$pkgver
  cp -r jupyter_client-4.0.0 python2-jupyter_client-4.0.0
  cp -r ipykernel-$_ipykv    python2-ipykernel-$_ipykv
  cp -r qtconsole-$_qtcv      python2-qtconsole-$_qtcv
}

build() {
  cd "$srcdir"

  # FS45999 disable bundled mathjax
  cd "$srcdir/notebook-$_notev"
  sed -i 's/^.*MathJax.*$//' bower.json 
  #sed -i '/Trim mathjax/,/^                static_data.append/d' setupbase.py
  sed -i 's/mj(/#mj(/' setupbase.py
  # needs node, downloads a lot of stuff
  python3 setup.py build

  cd "$srcdir/ipywidgets-$_ipywv"
  # needs node, downloads a lot of stuff
  python3 setup.py build
}

package_jupyter() {
  provides=('ipython-notebook')
  #replaces=('ipython-notebook')

  cd "$srcdir/jupyter_core-$pkgver"
  python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=0

  cd "$srcdir/ipykernel-$_ipykv"
  # this is in the ipython package
  #python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=0

  cd "$srcdir/ipywidgets-$_ipywv"
  python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=0

  cd "$srcdir/notebook-$_notev"
  # needs node
  python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=0
  # FS45999 use system mathjax
  ln -s /usr/share/mathjax \
  "$pkgdir/usr/lib/python3.5/site-packages/notebook/static/components/MathJax"

  cd "$srcdir/nbconvert-4.0.0"
  python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=0

  cd "$srcdir/nbformat-4.0.0"
  python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=0

  cd "$srcdir/jupyter_console-4.0.2"
  python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=0

  cd "$srcdir/jupyter_client-4.0.0"
  python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=0

  cd "$srcdir/qtconsole-$_qtcv"
  python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=0
  install -Dm644 examples/jupyter-qtconsole.desktop "$pkgdir/usr/share/applications/ipython-qtconsole.desktop"

  cd "$srcdir"
  install -Dm644 "jupyter_core-$pkgver/COPYING.md" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}

package_ipython2-notebook() {
  pkgdesc="An enhanced Interactive Python2 shell."
  depends=('ipython2' 'jupyter' 'python2-pyzmq')
  optdepends=('python2-pyqt5: jupyter-qtconsole-py2'
              'qt5-svg: jupyter-qtconsole-py2'
              'python2-sip: jupyter-qtconsole-py2')

  cd "$srcdir/python2-ipykernel-$_ipykv"
  python2 setup.py install --prefix=/usr --root="$pkgdir" --optimize=0

  cd "$srcdir/python2-jupyter_core-$pkgver"
  python2 setup.py install --prefix=/usr --root="$pkgdir" --optimize=0

  cd "$srcdir/python2-jupyter_client-4.0.0"
  python2 setup.py install --prefix=/usr --root="$pkgdir" --optimize=0

  cd "$srcdir/python2-qtconsole-$_qtcv"
  python2 setup.py install --prefix=/usr --root="$pkgdir" --optimize=0

  cd "$pkgdir/usr/bin"
  rm jupyter
  rm jupyter-kernelspec
  rm jupyter-migrate
  mv jupyter-qtconsole jupyter-qtconsole-py2

  cd "$srcdir"
  install -d "$pkgdir/usr/share/jupyter/kernels/python2"
  echo '{"display_name": "Python 2", "language": "python2", "argv": ["python2", "-c", "from IPython.kernel.zmq.kernelapp import main; main()", "-f", "{connection_file}"],"codemirror_mode": {"version": 2, "name": "ipython2"}}' > "$pkgdir/usr/share/jupyter/kernels/python2/kernel.json"

  install -Dm644 "jupyter_core-$pkgver/COPYING.md" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}

