From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id AIStHlktjF+qQgAA0tVLHw (envelope-from ) for ; Sun, 18 Oct 2020 11:56:09 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id cFumGlktjF8QDgAA1q6Kng (envelope-from ) for ; Sun, 18 Oct 2020 11:56:09 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id C6D559403EC for ; Sun, 18 Oct 2020 11:56:08 +0000 (UTC) Received: from localhost ([::1]:46070 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kU7IF-0005g3-L1 for larch@yhetil.org; Sun, 18 Oct 2020 07:56:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45852) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kU7I8-0005fk-Js for help-guix@gnu.org; Sun, 18 Oct 2020 07:56:00 -0400 Received: from mout02.posteo.de ([185.67.36.66]:55053) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kU7I4-0002je-Mq for help-guix@gnu.org; Sun, 18 Oct 2020 07:56:00 -0400 Received: from submission (posteo.de [89.146.220.130]) by mout02.posteo.de (Postfix) with ESMTPS id 139A72400FD for ; Sun, 18 Oct 2020 13:55:52 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017; t=1603022153; bh=bWxmzepu+B5e+KN7UU+IbBjzOZ7n6IlQFba7BzzhBcU=; h=Subject:To:Cc:From:Date:From; b=a7yeKzuVSe8V+Bwe7yPzii+bk+Zxjm4aBwaEYjYpyIqjarWd6suPYzCDYabXsIc7U lr1PWFbvp48xmP/YPj0oymOm/cK0GZXWZelfBNzoFvqyR9ODb67VxKuMlkcEzaWhgj uTgvI0p2NdTWLdkFEllMcCwT9aAEF69BUAJXZtc0ykcPaB4gVCAtCn09GScGC4+Slb OKo0UwLfJlc2skFhdJ5r3jbrfPr91ugECT8UOs2gPrPQAK+T2iCTfxx0xZUIk6Wcir YCGcdSrd4NXFx+7Q4lzLmsRW+To/w/pNQMMy34QaJpWtzCXgfRxjPLEDvuo1997z2c 3Zhh0HKI2I3Fg== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4CDdd3711fz9rxQ; Sun, 18 Oct 2020 13:55:50 +0200 (CEST) Subject: Re: guix import error + New: setting up a jupyterlab environment To: Tobias Geerinckx-Rice , zimoun References: <87d01ibbo3.fsf@nckx> From: Zelphir Kaltstahl X-Tagtoolbar-Keys: D20201018135549929 Message-ID: <74577458-7e58-4647-fd3d-62047b6d484b@posteo.de> Date: Sun, 18 Oct 2020 13:55:49 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <87d01ibbo3.fsf@nckx> Content-Language: en-US Received-SPF: pass client-ip=185.67.36.66; envelope-from=zelphirkaltstahl@posteo.de; helo=mout02.posteo.de X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/18 07:55:53 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: help-guix@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: help-guix@gnu.org Errors-To: help-guix-bounces+larch=yhetil.org@gnu.org Sender: "Help-Guix" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=fail (body hash did not verify) header.d=posteo.de header.s=2017 header.b=a7yeKzuV; dmarc=fail reason="SPF not aligned (strict)" header.from=posteo.de (policy=none); spf=pass (aspmx1.migadu.com: domain of help-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=help-guix-bounces@gnu.org X-Spam-Score: 0.09 X-TUID: gTpzwhMqDYhs Hello Guix Users, hello Zimoun and Tobias! Thanks for your information regarding the importer syntax thing. I continued trying to get a jupyterlab environment today. Here is what I did so far: (1) Create my manifest file: ~~~~START~~~~ (specifications->manifest '("python")) ~~~~~END~~~~~ (2) Create my channels file: ~~~~START~~~~ $ guix describe --format=channels > channels.scm $ cat channels.scm (list (channel (name 'guix) (url "https://git.savannah.gnu.org/git/guix.git") (commit "6ca673b30dac281ba27a8dac242c0ac83e5e354b") (introduction (make-channel-introduction "9edb3f66fd807b096b48283debdcddccfea34bad" (openpgp-fingerprint "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))) ~~~~~END~~~~~ (3) Create my jupyterlab PyPI import file, this time around using the "/" instead of "@" for specifying the version: ~~~~START~~~~ $ guix import pypi --recursive jupyterlab/2.1.5 > jupyterlab.scm ~~~~~END~~~~~ (4) Add missing import expressions and add output expression at the end: ~~~~START~~~~ ;; add module imports (use-modules (guix packages) (guix download) (guix build-system python) ((guix licenses) #:prefix license:) ;; use `guix environment --ad-hoc python-jinja2 -- guix package -A python-jinja2` to find the location of python-jinja2, which is gnu/packages/python-xyz.scm (gnu packages python-xyz) ;; for python-tornado (gnu packages python-web) ;; for python-pytest (gnu packages check)) ;; QUESTION: Why are those required packages not imported by guix automatically? ;; QUESTION: Why are the manually imported packages not actually in files with their own name, but instead jinja2 -> python-xyz, tornado -> python-web, and pytest -> check? ;; QUESTION: Is my process of finding the files in which the packages are correct or just working by chance? (define-public python-jupyterlab-server (package (name "python-jupyterlab-server") (version "1.2.0") (source (origin (method url-fetch) (uri (pypi-uri "jupyterlab-server" version)) (sha256 (base32 "132xby7531rbrjg9bqvsx86birr1blynjxy8gi5kcnb6x7fxjcal")))) (build-system python-build-system) (propagated-inputs `(("python-jinja2" ,python-jinja2) ("python-json5" ,python-json5) ("python-jsonschema" ,python-jsonschema) ("python-notebook" ,python-notebook) ("python-requests" ,python-requests))) (native-inputs `(("python-pytest" ,python-pytest) ("python-requests" ,python-requests))) (home-page "https://jupyter.org") (synopsis "JupyterLab Server") (description "JupyterLab Server") (license license:bsd-3))) (define-public python-jupyterlab (package (name "python-jupyterlab") (version "2.1.5") (source (origin (method url-fetch) (uri (pypi-uri "jupyterlab" version)) (sha256 (base32 "162jn51cg36fsn4l2zhnb5n4nbkhm9wlv974ggcnmdij3i4r4yya")))) (build-system python-build-system) (propagated-inputs `(("python-jinja2" ,python-jinja2) ("python-jupyterlab-server" ,python-jupyterlab-server) ("python-notebook" ,python-notebook) ("python-tornado" ,python-tornado))) (native-inputs `(("python-pytest" ,python-pytest) ("python-pytest-check-links" ,python-pytest-check-links) ("python-requests" ,python-requests) ("python-virtualenv" ,python-virtualenv) ("python-wheel" ,python-wheel))) (home-page "http://jupyter.org") (synopsis "The JupyterLab notebook server extension.") (description "The JupyterLab notebook server extension.") (license license:bsd-3))) python-jupyterlab ~~~~~END~~~~~ And as noted in the comments, I have 3 questions at this point: (Q1) Why are those required packages not imported by guix automatically? (My guess: This functionality simply has not yet been implemented.) (Q2) Why are the manually imported packages not actually in files with their own name, but instead jinja2 -> python-xyt, tornado -> python-web, and pytest -> check? Why not (gnu packages python pytest) for example? (Q3) Is my process of finding the files in which the packages are correct or just working by chance? Basically I am creating temporary environments, in which I then lookup "where would the package be installed" and then exit the temporary environment to use that information in my imported package file's import expressions / use-modules expression. This seems to be a bit of a convoluted process, though worth it, if it always works in the end. (4) Now I run my time-machine command: ~~~~START~~~~ $ guix time-machine --channels=channels.scm -- environment --manifest=manifest.scm --load=jupyterlab.scm ~~~~~END~~~~~ This take a moment and then I get an error (the full output is longer, but when running it multiple times, already successful steps are not all done repeatedly, so the output is then reduced to what fails): ~~~~START~~~~ $ guix time-machine --channels=channels.scm -- environment --manifest=manifest.scm --load=jupyterlab.scm Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'... The following derivations will be built: /gnu/store/wzmfn9m45bmsbrx094rv3lf3w0rpmw49-python-pytest-check-links-0.3.0.drv /gnu/store/n9i421lrbwrr8d0947w5vma7rhy3iyba-python-jupyterlab-server-1.2.0.drv /gnu/store/s7jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv 4,2 MB will be downloaded downloading from https://ci.guix.gnu.org/nar/lzip/2nahbs5v8q073gjmy224gk0h5lsh1kkw-python-nbconvert-5.0.0b1 ... python-nbconvert-5.0.0b1 301KiB 2.0MiB/s 00:00 [##################] 100.0% building /gnu/store/s7jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv... |builder for `/gnu/store/s7jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv' failed to produce output path `/gnu/store/92md7gh966n4fzj6al267lqq4xjx0ncf-jupyterlab-server-1.2.0.tar.gz' build of /gnu/store/s7jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv failed View build log at '/var/log/guix/drvs/s7/jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv.bz2'. cannot build derivation `/gnu/store/n9i421lrbwrr8d0947w5vma7rhy3iyba-python-jupyterlab-server-1.2.0.drv': 1 dependencies couldn't be built killing process 7384 guix environment: error: build of `/gnu/store/n9i421lrbwrr8d0947w5vma7rhy3iyba-python-jupyterlab-server-1.2.0.drv' failed ~~~~~END~~~~~ OK, an error, perhaps I can understand it. Lets look at that log file: ~~~~START~~~~ $ cp /var/log/guix/drvs/s7/jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv.bz2 . $ bzip2 --decompress jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv.bz2 $ cat jc2dbb0bnrahxklmszmpfv8klgw3sd-jupyterlab-server-1.2.0.tar.gz.drv Starting download of /gnu/store/92md7gh966n4fzj6al267lqq4xjx0ncf-jupyterlab-server-1.2.0.tar.gz >From https://files.pythonhosted.org/packages/source/j/jupyterlab-server/jupyterlab-server-1.2.0.tar.gz... download failed "https://files.pythonhosted.org/packages/source/j/jupyterlab-server/jupyterlab-server-1.2.0.tar.gz" 404 "Not Found" Starting download of /gnu/store/92md7gh966n4fzj6al267lqq4xjx0ncf-jupyterlab-server-1.2.0.tar.gz >From https://ci.guix.gnu.org/file/jupyterlab-server-1.2.0.tar.gz/sha256/132xby7531rbrjg9bqvsx86birr1blynjxy8gi5kcnb6x7fxjcal... download failed "https://ci.guix.gnu.org/file/jupyterlab-server-1.2.0.tar.gz/sha256/132xby7531rbrjg9bqvsx86birr1blynjxy8gi5kcnb6x7fxjcal" 404 "Not Found" Starting download of /gnu/store/92md7gh966n4fzj6al267lqq4xjx0ncf-jupyterlab-server-1.2.0.tar.gz >From https://tarballs.nixos.org/sha256/132xby7531rbrjg9bqvsx86birr1blynjxy8gi5kcnb6x7fxjcal... download failed "https://tarballs.nixos.org/sha256/132xby7531rbrjg9bqvsx86birr1blynjxy8gi5kcnb6x7fxjcal" 404 "Not Found" Starting download of /gnu/store/92md7gh966n4fzj6al267lqq4xjx0ncf-jupyterlab-server-1.2.0.tar.gz >From https://archive.softwareheritage.org/api/1/content/sha256:5431d9dde96659364b7cc877693d5d21e7b80cea7ae3959ecc2b87518e5f5d8c/raw/... download failed "https://archive.softwareheritage.org/api/1/content/sha256:5431d9dde96659364b7cc877693d5d21e7b80cea7ae3959ecc2b87518e5f5d8c/raw/" 404 "Not Found" failed to download "/gnu/store/92md7gh966n4fzj6al267lqq4xjx0ncf-jupyterlab-server-1.2.0.tar.gz" from "https://files.pythonhosted.org/packages/source/j/jupyterlab-server/jupyterlab-server-1.2.0.tar.gz" ~~~~~END~~~~~ So it seems, that the jupyterlab-server file is simply not downloadable any longer! Trying using wget: ~~~~START~~~~ $ wget https://files.pythonhosted.org/packages/source/j/jupyterlab-server/jupyterlab-server-1.2.0.tar.gz --2020-10-18 13:49:52-- https://files.pythonhosted.org/packages/source/j/jupyterlab-server/jupyterlab-server-1.2.0.tar.gz Resolving files.pythonhosted.org (files.pythonhosted.org)... 2a04:4e42:9::319, 151.101.37.63 Connecting to files.pythonhosted.org (files.pythonhosted.org)|2a04:4e42:9::319|:443... failed: Connection refused. Connecting to files.pythonhosted.org (files.pythonhosted.org)|151.101.37.63|:443... connected. HTTP request sent, awaiting response... 404 Not Found 2020-10-18 13:49:53 ERROR 404: Not Found. ~~~~~END~~~~~ So now I am out of ideas. It seems the file is not available any longer and the definition of jupyterlab needs to be updated somewhere, so that it does not try to download an old or non-existent version of jupyter-labserver. But how is this usually done? Can I specify it somewhere in one of the 3 files I have, or am I dependent on someone fixing the jupyterlab-server dependency / input for juypterlab? Thanks for your help so far! Tell me, if I need to provide any more information to solve the problem. Best regards, Zelphir On 10/16/20 2:25 PM, Tobias Geerinckx-Rice wrote: > Zelphir, > > Zelphir Kaltstahl 写道: >> $ guix import pypi 'jupyterlab@2.1.5' --recursive > > It will work if you substitute ‘/’ for ‘@’.  Yes, this is a happy > accident specific to the PyPI importer, and I'm sure you can guess why > it happens to work. > >>> guix import hackage mtl@2.1.3.1 >> >> But that is in the "hackage" import section. Is the same not available >> for PyPI? > > [...] > >> Do the various importers work differently? > > Unfortunately so.  It would be great(TM) if PACKAGE[@VERSION] were > standard.  Each importer could handle it properly (e.g., by turning it > into "/") or return a friendlier ‘the foo importer does not yet > support versions’ error. > > I don't have the time, but this sounds like a good intermediate-level > hack for someone who does :-) > > Kind regards, > > T G-R -- repositories: https://notabug.org/ZelphirKaltstahl