summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD83
1 files changed, 71 insertions, 12 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 9a2c01cf115b..3eb93c4e44b6 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,30 +1,89 @@
-# Maintainer: Sebastiaan Lokhorst <sebastiaanlokhorst@gmail.com>
+# Maintainer: Blair Bonnett <blair dot bonnett at gmail dot com>
+# Contributor: Sebastiaan Lokhorst <sebastiaanlokhorst@gmail.com>
# Contributor: Tommy Li <ttoo74@gmail.com>
# Contributor: Mark Lee <mark at markelee dot com>
pkgname=jupyterhub
-pkgver=1.1.0
+pkgver=1.4.0
pkgrel=1
pkgdesc="Multi-user server for Jupyter notebooks "
url="https://jupyter.org/hub"
arch=(any)
license=('BSD')
-depends=('ipython' 'nodejs-configurable-http-proxy'
- 'python-alembic' 'python-async_generator' 'python-certipy' 'python-entrypoints' 'python-jinja' 'python-jupyter_telemetry' 'python-jsonschema'
- 'python-json-logger' 'python-oauthlib' 'python-pamela' 'python-prometheus_client' 'python-requests' 'python-sqlalchemy' 'python-tornado')
-makedepends=('bower' 'npm')
-optdepends=('jupyterlab')
-source=("https://github.com/jupyterhub/jupyterhub/archive/${pkgver}.tar.gz")
-sha256sums=('e5f70bf02d0500accdc2c25b33de037bb8be9957d1d95473ea8958b5806906b6')
+depends=(
+ 'ipython' 'nodejs-configurable-http-proxy' 'python-alembic'
+ 'python-async_generator' 'python-certipy' 'python-entrypoints' 'python-jinja'
+ 'python-jsonschema' 'python-jupyter_telemetry' 'python-oauthlib'
+ 'python-pamela' 'python-prometheus_client' 'python-requests'
+ 'python-sqlalchemy' 'python-tornado'
+)
+makedepends=(
+ 'npm' 'python-setuptools'
+)
+checkdepends=(
+ 'jupyter-notebook' 'python-beautifulsoup4' 'python-pytest'
+ 'python-pytest-asyncio' 'python-requests-mock'
+)
+optdepends=(
+ 'jupyter-notebook: standard notebook server'
+ 'jupyterlab: to use the JupyterLab interface'
+)
+install=jupyterhub.install
+backup=(
+ 'etc/jupyterhub/jupyterhub_config.py'
+)
+source=(
+ "jupyterhub-${pkgver}.tar.gz::https://github.com/jupyterhub/jupyterhub/archive/${pkgver}.tar.gz"
+ 'jupyterhub.service'
+)
+sha256sums=(
+ 'fc1f52d7073e65cf7e93caff87ebc3eeff65cd18e0aaa734ffaa0c00cbe6a352'
+ 'adb4c09c668c35605d9cddc4a4171dd64ed6e74ab82da97f19b3437d26b052b9'
+)
build() {
cd "${srcdir}/jupyterhub-$pkgver"
python setup.py build
-}
+
+ # Generate the default configuration. The value of data_files_path is set
+ # based on the directory containing the loaded code, so we need to replace
+ # it with the final installed destination.
+ cd build/lib
+ python -m jupyterhub --generate-config -f "$srcdir/default_config.py" -y=true
+ _srcdir_esc="${srcdir////\\/}"
+ sed -i -e "s/${_srcdir_esc}\/jupyterhub-$pkgver/\/usr/" "$srcdir/default_config.py"
+}
+
+check() {
+ cd "${srcdir}/jupyterhub-$pkgver"
+
+ # Run the tests we can. The DB upgrade tests always fail for me (it looks
+ # like the virtual environment they set up is not complete) and the others
+ # intermittently fail. We'll have to trust the upstream CI on those.
+ PYTHONPATH="$PWD/build/lib" pytest -v jupyterhub/tests \
+ --ignore=jupyterhub/tests/test_db.py \
+ -k "not test_external_service and not test_single_user_spawner"
+}
package() {
cd "${srcdir}/jupyterhub-$pkgver"
- python setup.py install --root="${pkgdir}"
install -Dm644 COPYING.md "${pkgdir}"/usr/share/licenses/$pkgname/COPYING.md
-}
+ # Something in the test suite writes byte code with $srcdir references, even
+ # if we set PYTHONDONTWRITEBYTECODE=1. Just remove the caches. This also
+ # covers anything written when generating the default config.
+ find . -name "*.pyc" -delete
+ find . -type d -name __pycache__ -delete
+
+ # Install the package.
+ python setup.py install --root="${pkgdir}" --prefix=/usr --skip-build --optimize=1
+
+ # Remove $srcdir references from (1) npm metadata and (2) Python egg metadata.
+ find "$pkgdir" -name package.json -print0 | xargs -r -0 sed -i '/_where/d'
+ _srcdir_esc="${srcdir////\\/}"
+ find "$pkgdir" -name SOURCES.txt -exec sed -i "/${_srcdir_esc}/d" {} \;
+
+ # systemd service and default configuration.
+ install -Dm644 "$srcdir/jupyterhub.service" "$pkgdir/usr/lib/systemd/system/jupyterhub.service"
+ install -Dm644 "$srcdir/default_config.py" "$pkgdir/etc/jupyterhub/jupyterhub_config.py"
+}