# $Id: PKGBUILD 138606 2015-08-21 17:37:55Z kkeen $
# Maintainer: Kyle Keen <keenerd@gmail.com>
# Contributor: PepeSmith
# Contributor: Aron Asor <aronasorman at gmail.com>
# Contributor: Chris Brannon <chris@the-brannons.com>
# Contributor : Douglas Soares de Andrade <dsa@aur.archlinux.org>

pkgbase=ipython 
pkgname=(ipython ipython2)
pkgver=4.0.0
pkgrel=2
pkgdesc="An enhanced Interactive Python shell."
arch=('any')
url="http://ipython.org"
license=('BSD')
depends=('python' 'python-decorator' 'python-pexpect' 'sqlite' 'python-setuptools')
makedepends=('python-setuptools' 'python2-setuptools')
optdepends=("python-nose: for IPython's test suite")
install=ipython.install

# some of these will update rapidly, others never
# so _vars will be phased in as new updates are released
_ipykv=4.0.3

source=("https://pypi.python.org/packages/source/i/ipython/$pkgbase-$pkgver.tar.gz"
        "ipykernel.tgz::https://github.com/ipython/ipykernel/archive/$_ipykv.tar.gz"
        "https://pypi.python.org/packages/source/t/traitlets/traitlets-4.0.0.tar.gz"
        "https://pypi.python.org/packages/source/i/ipython_genutils/ipython_genutils-0.1.0.tar.gz"
        "https://pypi.python.org/packages/source/p/pickleshare/pickleshare-0.5.tar.gz"
        "https://pypi.python.org/packages/source/p/path.py/path.py-7.6.tar.gz"
        "https://pypi.python.org/packages/source/s/simplegeneric/simplegeneric-0.8.1.zip")
md5sums=('c2fecbcf1c0fbdc82625c77a50733dd6'
         '690f424a89e38a5559802bb58223142e'
         '27df56a921848686cf52766177a434f2'
         '9a8afbe0978adbcbfcb3b35b2d015a56'
         '25337740507cb855ad58bfcf60f7710e'
         'e70090139fc136462d52460b0e4a00d1'
         'f9c1fab00fd981be588fc32759f474e3')

# With 4.0 many previously bundled external libraries are no longer bundled
# Since there are so many and they are so small, they get re-bundled here
# Break them out if any non-ipython package ends up needing these

# traitlets (depends on python-decorator)
# ipython_genutils
# "Pretend this doesn’t exist. Nobody should use it."
# "Vestigial IPython utilities: DO NOT USE"
# (still required for now though, but drop at first chance)
# pickleshare (depends on path.py)
# path.py
# simplegeneric (so old that it only comes in .zip and still refers to the cheeseshop)

# confirm that an update does not break sage?

prepare() {
  cd "$srcdir"
  cp -r ipython-$pkgver        ipython2-$pkgver
  cp -r ipykernel-$_ipykv      python2-ipykernel-$_ipykv
  cp -r ipython_genutils-0.1.0 ipython2_genutils-0.1.0
  cp -r pickleshare-0.5        python2-pickleshare-0.5
  cp -r traitlets-4.0.0        python2-traitlets-4.0.0
  cp -r path.py-7.6            python2-path.py-7.6
  cp -r simplegeneric-0.8.1    python2-simplegeneric-0.8.1
}

build() {
  cd "$srcdir"
}

package_ipython() {
  cd "$srcdir/ipython-$pkgver"

  # see https://github.com/ipython/ipython/issues/2057
  #export LC_ALL=en_US.UTF-8
  python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=0

  # TEMPORARY!
  cd "$srcdir/ipython_genutils-0.1.0"
  python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=0

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

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

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

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

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

  cd "$srcdir/ipython-$pkgver"
  install -Dm644 docs/source/about/license_and_copyright.rst "$pkgdir/usr/share/licenses/ipython/LICENSE"

  cd "$srcdir/ipython-$pkgver/examples/IPython Kernel/"
  # FS#45120
  sed -i 's/gnome-netstatus-idle/ipython/' *.desktop
  install -Dm644 ipython.desktop "$pkgdir/usr/share/applications/ipython.desktop"
  #install -Dm644 ipython-qtconsole.desktop "$pkgdir/usr/share/applications/ipython-qtconsole.desktop"

  #cd $srcdir/ipython-$pkgver/IPython/qt/console/resources/icon/
  #install -Dm644 IPythonConsole.svg "$pkgdir/usr/share/icons/hicolor/scalable/apps/ipython.svg"
}

package_ipython2() {
  pkgdesc="An enhanced Interactive Python2 shell."
  depends=('python2' 'python2-decorator' 'python2-pexpect' 'sqlite' 'python2-setuptools')
  optdepends=("wxpython: needed for ipython2 --gui=wx"
              "python2-nose: for IPython's test suite")
  # "wxpython: needed for ipython2 --gui=wx"   does this still work?

  cd "$srcdir/ipython2-$pkgver"

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

  # TEMPORARY!
  cd "$srcdir/ipython2_genutils-0.1.0"
  python2 setup.py install --prefix=/usr --root="$pkgdir" --optimize=0

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

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

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

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

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

  cd "$srcdir/ipython2-$pkgver"
  install -Dm644 docs/source/about/license_and_copyright.rst "$pkgdir/usr/share/licenses/ipython2/LICENSE"

  # hack to get around ipython collision
  cd "$pkgdir/usr/share/man/man1/"
  for i in *; do
    mv $i ${i/%.1/2.1}
  done
  find "$pkgdir/usr/bin/" -type f -regex '.*[^2]$' -delete

  cd "$srcdir/ipython2-$pkgver/examples/IPython Kernel/"
  sed -i 's/ython/ython2/g' *.desktop
  sed -i 's/gnome-netstatus-idle/ipython2/' *.desktop
  install -Dm644 ipython.desktop "$pkgdir/usr/share/applications/ipython2.desktop"
  #install -Dm644 ipython-qtconsole.desktop "$pkgdir/usr/share/applications/ipython2-qtconsole.desktop"

  #cd "$pkgdir/usr/share/man/man1/IPython/qt/console/resources/icon/"
  #install -Dm644 IPythonConsole.svg "$pkgdir/usr/share/icons/hicolor/scalable/apps/ipython2.svg"
}

