From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id cJOoJs+EpGMqUwAAbAwnHQ (envelope-from ) for ; Thu, 22 Dec 2022 17:24:47 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id OH+fJs+EpGM7qwAAauVa8A (envelope-from ) for ; Thu, 22 Dec 2022 17:24:47 +0100 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 15E8013010 for ; Thu, 22 Dec 2022 17:24:46 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p8OMj-0003kt-Mt; Thu, 22 Dec 2022 11:24:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p8OMh-0003kd-QS for help-guix@gnu.org; Thu, 22 Dec 2022 11:24:15 -0500 Received: from smtp-out-2.univ-rouen.fr ([193.52.152.97] helo=mailhoc.univ-rouen.fr) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p8OMd-0002je-5k for help-guix@gnu.org; Thu, 22 Dec 2022 11:24:15 -0500 Received: from localhost (91-161-206-23.subs.proxad.net [91.161.206.23]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mailhoc.univ-rouen.fr (Postfix) with ESMTPSA id C09EC1F9A; Thu, 22 Dec 2022 17:24:03 +0100 (CET) From: =?utf-8?Q?S=C3=A9bastien?= Rey-Coyrehourcq To: Wojtek Kosior Cc: help-guix Subject: Re: Help packaging R Quarto Cli Date: Thu, 22 Dec 2022 16:16:47 +0100 References: <87ilk9xwtq.fsf@univ-rouen.fr> <2630-6356b680-27b-1b6de000@83918831> <87359h2h4f.fsf@univ-rouen.fr> <20221215202931.15a9f0ee.koszko@koszko.org> User-agent: mu4e 1.8.11; emacs 28.2 In-reply-to: <20221215202931.15a9f0ee.koszko@koszko.org> Message-ID: <87v8m31k6b.fsf@univ-rouen.fr> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="===-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spamd-Bar: -- X-Rspamd-Server: mailhoc X-Rspamd-Queue-Id: C09EC1F9A X-Spamd-Result: default: False [-2.20 / 15.00]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain]; TO_DN_ALL(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; NEURAL_HAM(-0.00)[-0.994,0]; SIGNED_PGP(-2.00)[]; RCVD_COUNT_ZERO(0.00)[0]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~]; ASN(0.00)[asn:12322, ipnet:91.160.0.0/12, country:FR]; MID_RHS_MATCH_FROM(0.00)[] Received-SPF: pass client-ip=193.52.152.97; envelope-from=sebastien.rey-coyrehourcq@univ-rouen.fr; helo=mailhoc.univ-rouen.fr X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-guix@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+larch=yhetil.org@gnu.org Sender: help-guix-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN ARC-Seal: i=1; s=key1; d=yhetil.org; t=1671726287; a=rsa-sha256; cv=none; b=UmwK+sZqzTbrnYL7PyCIJ8Dr1FwlWlXEDXBZ49wYnOFEmHNvqscnqXTRbOYz+X5G69j5P/ ECOtD+tC/+p/VgRC4qEzOuXfj9AJpeOd/dhFTLRN6piGc8ObJirbXVTUGD03j7i041OJ1n LAbalr0AuWbsBwoDosVOz77GuH0UIyQvLK4xiukzpFv3lLKRmPlUXMUp6p5ZbPXRBzt1IV Og5TmiLETYF9IGlaTlBQOEypn0Nje1yJDyFjKUhS6KOEPMqV4AWt0niiQnRdktDtC/kyUA 9CmW8ouXjglfvHb3zHUQcieTAlyt5buizQUu1+76JxsPYSuLLs8UR0TfUEsT9g== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org"; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1671726287; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post; bh=jhQov5kSjMeqD9/3As5Ummma2cttUaCta+n+orPHWF4=; b=G3f1TuRU8qQgUafDXTxMawXHlEsdlhwUa0/i/4OkyIhn4snZ50K/HZX/vWW0WEPfL/clJ6 goO+s8+/XwQT47RKoOHdVpC6P2LG031oM442h3En+AgUwuyqsP6c96MIrWuBKqI9IIzchS ZITk0XPHWnF6ANpXzs2Y6oGxN2Y4Vo2qqM+Vd3uPcASd0qhx9rUj//8LNKAM3Ckm5Kb2vp z+KnRC1iOEFrIHfcYUIuNCZmwsV1R5fdrDgAzGRiaPxWidVdRfDK6lXz7NwXb3bCpGz+q+ g3Z3euIn9lNBSeu5NsMXlTUA8nQvsoqd6Qn1wne5Yrovag95A/5Mq+kB1lxEoQ== X-Spam-Score: -4.40 X-Migadu-Queue-Id: 15E8013010 Authentication-Results: aspmx1.migadu.com; dkim=none; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org"; dmarc=none X-Migadu-Scanner: scn0.migadu.com X-Migadu-Spam-Score: -4.40 X-TUID: D4rT6WGwir92 --===-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: multipart/mixed; boundary="==-=-=" --==-=-= Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi, Wojtek Kosior writes: >> >> I found only one crate that use this method `git-fetch=E2=80=99 in th= e list : >> >> >> > >> > There are plenty in other package definition files, e.g. in >> > gnu/packages/python-xyz.scm. It seems Rust is just that special case >> > where git checkout is rarely needed. >> >> Yes, i=E2=80=99m not sure this case (source only without crate) is well= managed by the actual cargo-build-system ? >> Anyway, discussions about =E2=80=9CRust Packaging=E2=80=9D on IRC mentio= n the building of a new system, something cargo-less. > > What do you mean by =E2=80=9Csource only without crate=E2=80=9D? From my = understanding, > even when we use `(method uri-fetch)` with `(crate-uri)`, what gets > downloaded is still just the source code and not a prebuilt crate. The > crates repo serves both the crates and their corresponding source > tarballs, right? > > Even though there is a difference from the `(method git-fetch)` case =E2= =80=94 > the output is a tarball instead of a directory =E2=80=94 it=E2=80=99s sti= ll just source > code and the untaring of it is =E2=80=94 I believe =E2=80=94 done automat= ically. > > Or it is something else you meant? > Yes, you=E2=80=99re right. > >> > I wanted to instead suggest not creating a separate Guix package >> > nor derivation for test_util. That=E2=80=99s what I meant when I wrote= =E2=80=9Cit >> > seems awkward to be required to provide the test_util package as a >> > separate crate=E2=80=9D. Sorry if I accidently mislead you with this. >> >> Yes you=E2=80=99re right, this is probably awkard to maintain. >> >> Hum, i will retry. What=E2=80=99s motivating me to try this packaging wa= y is >> the duration of compilation=E2=80=A6 This fail only occur at the test ph= ase, >> so after 2 hours of compilation=E2=80=A6 >> >> When i use the =E2=80=9C=E2=80=93keep-failed=E2=80=9D option, and run a = new build after fail >> from the /tmp/guix-deno-xxx/ folder, everything finish well =E2=80=A6 >> >> So this is more a problem at frontier between this nested package and >> =E2=80=9Ccargo-build-system=E2=80=9D that don=E2=80=99t run some nested = crate build. > > Did you *just* run a new build inside `/tmp/guix-deno-xxx/`? Or did you > as well run a `cargo test` or similar command after it? Because I > understand it is `cargo test` invoked by cargo-build-system that is > failing[1]. > >> I will revert my code to manage the deno compilation without test phase. >> My objective is quarto, and i don=E2=80=99t know much about the next obs= tacle :) >> I see later for this nested crate. > > Yup, it=E2=80=99s a sane approach. > No this is done i started Quarto packaging, i encouter some new difficultie= s =E2=80=A6 more in the bottom of mail =E2=80=A6 >> > >> >> How do you reference/call/reuse a package that already exist in your = /gnu/store in a .scm file ? >> > >> > You don=E2=80=99t :) >> > >> > That=E2=80=99s the point of a functional package manager - there=E2=80= =99s never need >> > to *explicitly* reference files in the store. They are always referenc= ed >> > indirectly through packages, derivations, plain-file=E2=80=99s, gexps,= etc. And >> > they get created or reused automatically. >> > >> >> So you directly say into the scm, passing this unique path `/gnu/store/x= xxxx-deno-util-1-0-1=E2=80=99 to input function ?? > > No no no. > > Let=E2=80=99s recall what you wanted to do in the first place > >> Another way is to first compile deno-test-util.scm, that install the >> corresponding crate into /gnu/store, and after that i give this local >> path to the inputs of my main rust-deno.scm . But i don=E2=80=99t know h= ow to >> give this path to my cargo build system input . How do you >> reference/call/reuse a package that already exist in your /gnu/store >> in a .scm file ? > > I=E2=80=99d say we already reached the decision that we don=E2=80=99t wan= t to make > rust-deno-test-util a distinct guix package. But for the sake of > learning, let=E2=80=99s imagine that we do and that we want to reference = its > crate manually in another package recipe. > > Recall that you had the crate file at > `/gnu/store/ma04jfp0f33kf38cdn66qai60nhqxx7d-rust-deno-test-util-0.1.0/sh= are/cargo/registry/test_util-0.1.0.crate`. > In the rust-deno recipe you were importing the record describing that > crate=E2=80=99s package. It was being imported under the name > `rust-deno-test-util-0.1.0`. > > So the `(arguments)` field of the recipe could contain sth like > > #:phases > #~(modify-phases %standard-phases > (add-after =E2=80=99build =E2=80=99do-sth-with-test-util-crate > (lambda _ > (do-something-with > #$(file-append rust-deno-test-util-0.1.0 > "/share/cargo/registry/test_util-0.1.0.crate"= ))))) > > For simplicity I omitted other extra phases that you might put there. > Notice that the phases are now computed using `#~` which is syntactic > sugar for `(gexp)`. Also note that the crate file path gets introduced > with `#$(file-append =E2=80=A6)` where `#$` is syntactic sugar for `ungex= p`. > `(file-append)` itself as well as `#~` and `#$` become available when > the `(guix gexp)` module is imported. > > This is a relatively low-level, gexp-based approach to using other > packages during the build (and only the build). It probably looks like > black magic now. To better understand it, please consult your copy of > the =E2=80=9CGuix black magic=E2=80=9D handbook (aka the =E2=80=9CG-Expre= ssions=E2=80=9D chapter of the > GNU Guix manual[2]). Yes, nice guix people give me some hint about that on Irc. I read the help = page, i understand some of the examples, but you well resumed my actual comprehension of the build process. I miss a global view on the build process, and =E2=80=9Cwhy this is interes= ting/needed to use gexp at this point=E2=80=9D. It seems this is a fact, so= i try to use it without understanding all like often when you learn someth= ing :) > > If rust-deno-test-util was instead meant to be one of the `(inputs)` > (i.e. if it was one of the runtime deps), we could instead use the > following common idiom. > > #:phases > `(modify-phases %standard-phases > (add-after =E2=80=99build =E2=80=99do-sth-with-test-util-crate > (lambda* (#:key inputs #:allow-other-keys) > (let ((test-util (assoc-ref inputs =E2=80=9Crust-deno-test-uti= l=E2=80=9D))) > (do-something-with > (string-append test-util > =E2=80=9C/share/cargo/registry/test_util-0.1= .0.crate=E2=80=9D)))))) > > Here I assumed that =E2=80=9Crust-deno-test-util=E2=80=9D is the name of = the > rust-deno-test-util Guix package and that this name is being > automatically used as its key in the inputs association list. It is > possible to explicitly assign different, non-default string keys to the > packages listed among `(inputs)`. It is, however, not highly relevant > now =E2=80=94 let=E2=80=99s ignore this possibility. > > I already showed 2 ways of accessing a file produced by some > prerequisite package/derivation. In both cases Guix shall automatically > recognize that rust-deno-test-util is a prerequisite and build it if it > is not yet present in `/gnu/store`. None of this approaches should be > needed, however. That=E2=80=99s because in the case of cargo-build-system= the standard > way of providing crates is by listing the required crate packages among > `#:cargo-inputs` or `#:cargo-development-inputs`. Just as you were > doing. cargo-build-system then by itself takes care of collecting the > crates inside the listed packages and instructing the `cargo` command > to find those crates. > Thanks for theses explanation, i better understand how to access data from = other derivation, that could help me for the next step. > I don=E2=80=99t know what was still causing the error *after* you placed > rust-deno-test-util among `#:cargo-development-inputs`. I guess the > reason was specific to Deno build system and not to Guix nor to > cargo-build-system. > About my progress on Quarto packaging, well, there are some interesting dif= ficulties :) =E2=80=A2 The Quarto main script () try to download Deno binary, now that Deno is pac= kaged, it=E2=80=99s easy to remove. I set `$QUARTO_VENDOR_BINARIES' to fals= e, and set `$DENO_BIN' and `$QUARTO_DENO' env to the `/gnu/store/deno/bin'. =E2=80=A2 Next step try to download `deno_std' : . Quarto use `deno cache' capac= ity to propose some offline scripting capacity to user of Quarto. The comma= nd `deno cache' is run here : The list of packaged downloaded by deno cache (`deno_std.ts'), with a corre= sponding lock file (`deno_std.lock'), is described here : Because this is not possible to download thing during guix build packaging = (that create a deno `.cache' folder into `/homeless-shelter' =E2=80=A6. ), = i search how nixer do that . The good way to do that is to create something that = reproduce the `deno cache' structure : By doing that, i could create a derivation that invoke a `deno cache' comma= nd to build a read-only `.cache' content described by `deno_std.ts' and giv= e this folder (using `$DENO_DIR' variable ? ) to deno embedded / used by Qua= rto ? I also see there is possibility to set an `--importmap' command that = use a command standard that is already used by quarto here () and point to folder uri a= nd not to http: uri () I have no idea why there is two different way to manage these import, by ca= ching (`deno cache') or directly by importing into `./vendor/' using `--im= portmap' folder =E2=80=A6 I=E2=80=99m not sure but there is the possibilit= y to use `deno cache' + `--importmap' to solve this problem. Anyway=E2=80=A6. because i think this is not an *urgent feature* needed by = common user of Quarto (), i = simply comment this line 79 to remove caching, in main configure script of = Quarto. =E2=80=A2 Next step is setting the `$DENO_DOM' variable needed by quarto co= mmand =E2=80=A6 The repository is here, , this is not a= published crate =E2=80=A6 and a virtual-manifest =E2=80=A6 I discover new = thing each day :( The build phase run well but now i have problem with package and install ph= ase, because this is a `virtual-manifest' Packaging failed, this is not a problem, i removed it (using `install-sourc= e?' flag) because i only need the `/bin' generated by build phase. The actual trace of failed : =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 Compiling core v0.1.0 (/tmp/guix-build-rust-deno-test-util-0.1= .17-alpha.drv-0/source/html-parser/core) =E2=94=82 Compiling plugin v0.1.0 (/tmp/guix-build-rust-deno-test-util-0= .1.17-alpha.drv-0/source/html-parser/plugin) =E2=94=82 Finished release [optimized] target(s) in 24.74s =E2=94=82 phase `build' succeeded after 24.8 seconds =E2=94=82 starting phase `package' =E2=94=82 Not installing cargo sources, skipping `cargo package`. =E2=94=82 phase `package' succeeded after 0.0 seconds =E2=94=82 starting phase `check' =E2=94=82 Compiling core v0.1.0 (/tmp/guix-build-rust-deno-test-util-0.1= .17-alpha.drv-0/source/html-parser/core) =E2=94=82 Compiling plugin v0.1.0 (/tmp/guix-build-rust-deno-test-util-0= .1.17-alpha.drv-0/source/html-parser/plugin) =E2=94=82 Finished release [optimized] target(s) in 0.69s =E2=94=82 Running unittests (target/release/deps/core-9e5a32d2886ce63b) =E2=94=82=20 =E2=94=82 running 0 tests =E2=94=82=20 =E2=94=82 test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 fil= tered out; finished in 0.00s =E2=94=82=20 =E2=94=82 Running unittests (target/release/deps/plugin-098ef3d813af02= 53) =E2=94=82=20 =E2=94=82 running 0 tests =E2=94=82=20 =E2=94=82 test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 fil= tered out; finished in 0.00s =E2=94=82=20 =E2=94=82 Doc-tests core =E2=94=82=20 =E2=94=82 running 0 tests =E2=94=82=20 =E2=94=82 test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 fil= tered out; finished in 0.00s =E2=94=82=20 =E2=94=82 phase `check' succeeded after 0.8 seconds =E2=94=82 starting phase `install' =E2=94=82 error: manifest path `/tmp/guix-build-rust-deno-test-util-0.1.17-= alpha.drv-0/source/Cargo.toml` is a virtual manifest, but this command requ= ires running against an actual package in this workspace =E2=94=82 error: in phase 'install': uncaught exception: =E2=94=82 json-error # =E2=94=82 phase `install' failed after 0.0 seconds =E2=94=82 Backtrace: =E2=94=82 12 (primitive-load "/gnu/store/2f9fp1iyqdxsybnln8lb5j2q= 1jr=E2=80=A6") =E2=94=82 In guix/build/gnu-build-system.scm: =E2=94=82 906:2 11 (gnu-build #:source _ #:outputs _ #:inputs _ #:phase= s . #) =E2=94=82 In ice-9/boot-9.scm: =E2=94=82 1752:10 10 (with-exception-handler _ _ #:unwind? _ # _) =E2=94=82 In srfi/srfi-1.scm: =E2=94=82 634:9 9 (for-each # =E2=80=A6) =E2=94=82 In ice-9/boot-9.scm: =E2=94=82 1752:10 8 (with-exception-handler _ _ #:unwind? _ # _) =E2=94=82 In guix/build/gnu-build-system.scm: =E2=94=82 927:23 7 (_) =E2=94=82 In guix/build/cargo-build-system.scm: =E2=94=82 242:13 6 (install #:inputs _ #:outputs _ #:skip-build? _ # _ = # _) =E2=94=82 58:19 5 (has-executable-target?) =E2=94=82 48:15 4 (manifest-targets) =E2=94=82 In guix/build/json.scm: =E2=94=82 308:16 3 (read-json #) =E2=94=82 32:2 2 (json-error #) =E2=94=82 In ice-9/boot-9.scm: =E2=94=82 1685:16 1 (raise-exception _ #:continuable? _) =E2=94=82 1685:16 0 (raise-exception _ #:continuable? _) =E2=94=82=20 =E2=94=82 ice-9/boot-9.scm:1685:16: In procedure raise-exception: =E2=94=82 Throw to key `json-error' with args `(#)= '. =E2=94=82 builder for `/gnu/store/fsyrsm3wx60zjkcghx8inmfw3y6y8am8-rust-den= o-test-util-0.1.17-alpha.drv' failed with exit code 1 =E2=94=82 la compilation de /gnu/store/fsyrsm3wx60zjkcghx8inmfw3y6y8am8-rus= t-deno-test-util-0.1.17-alpha.drv a =C3=A9chou=C3=A9 =E2=94=82 Vous trouverez le journal de compilation dans =C2=AB /var/log/gui= x/drvs/fs/yrsm3wx60zjkcghx8inmfw3y6y8am8-rust-deno-test-util-0.1.17-alpha.d= rv.gz =C2=BB. =E2=94=82 guix build: erreur : build of `/gnu/store/fsyrsm3wx60zjkcghx8inmf= w3y6y8am8-rust-deno-test-util-0.1.17-alpha.drv' failed =E2=94=82=20 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 Looking to crate-io.scm and by doing some googling, i didn=E2=80=99t find a= n easy way to manage the `install' phase when we encouter a `virtual-manif= est' =E2=80=A6 One way to do that is replacing `install' phases defined b= y `cargo-build-system' () But this is an hard job for beginner like me=E2=80=A6 Perhaps there is anot= her way by modifying this wtf `virtual manifest' directly. =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 (build-system cargo-build-system) =E2=94=82 (arguments =E2=94=82 `(#:skip-build? #f =E2=94=82 #:install-source? #f ; virtual manifest =E2=94=82 ; #:phases =E2=94=82 ; (modify-phases %standard-phases =E2=94=82 ; (replace 'install =E2=94=82 ; (lambda _ =E2=94=82 ; #t))) =E2=94=82 #:cargo-inputs =E2=94=82 (("rust-html5ever" ,rust-html5ever-0.25.1) ;;0.25= .1 =E2=94=82 ("rust-markup5ever" ,rust-markup5ever-0.10.0) ;0.10= .0 =E2=94=82 ("rust-serde_json", rust-serde-json-1) ;1= .0 =E2=94=82 ("rust-serde", rust-serde-1)) ; 1.0.111 =E2=94=82 )) =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 Well, long road never ends=E2=80=A6 And ! an ! happy ! Christmas Hollidays ! for all of guixers !! >> Thanks for your support and your kind word, that help me to continue :) > > Glad I could help even with my small Guix experience ^^ > >> Hi, >> >> I=E2=80=99m happy to say, Deno is packaged (except the test, see the las= t conversion on this thread) compile and run on my machine :D >> >> =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 >> =E2=94=82 /-> /gnu/store/xvjymz07g2dy112cz4x6pz7v4q8p7c6a-rust-deno-1.25= .2/bin/deno =E2=80=93version >> =E2=94=82 deno 1.25.2 (release, x86_64-unknown-linux-gnu) >> =E2=94=82 v8 10.6.194.5 >> =E2=94=82 typescript 4.7.4 >> =E2=94=82 >> =E2=94=82 /-> /gnu/store/xvjymz07g2dy112cz4x6pz7v4q8p7c6a-rust-deno-1.25= .2/bin/deno run hello-world.js >> =E2=94=82 Hello John >> =E2=94=82 Hello Sarah >> =E2=94=82 Hello Kai >> =E2=94=82 >> =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 > > Great! =F0=9F=91=8F > >> Next steps : >> =E2=80=A2 Packaging Quarto (that need Deno). >> =E2=80=A2 Merge and Cleaning mess with dependency. > > Just a question, out of curiosity - are there any serious freedom > issues? I saw you are using some custom Guix channels in addition to > your own one and that made me wonder > > Wojtek > > > [1] > [2] > > =E2=80=93 (sig_start) > website: > PGP: > fingerprint: E972 7060 E3C5 637C 8A4F 4B42 4BC5 221C 5A79 FD1A > > Meet Krak=C3=B3w saints! #16: saint Jan z Dukli > Poznaj =C5=9Bwi=C4=99tych krakowskich! #16: =C5=9Bwi=C4=99ty Jan z Dukli > > =E2=80=93 (sig_end) > > > On Thu, 15 Dec 2022 09:32:48 +0100 > S=C3=A9bastien Rey-Coyrehourcq = wrote: > >> Hi, >> >> I=E2=80=99m happy to say, Deno is packaged (except the test, see the las= t conversion on this thread) compile and run on my machine :D >> >> =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 >> =E2=94=82 /-> /gnu/store/xvjymz07g2dy112cz4x6pz7v4q8p7c6a-rust-deno-1.25= .2/bin/deno =E2=80=93version >> =E2=94=82 deno 1.25.2 (release, x86_64-unknown-linux-gnu) >> =E2=94=82 v8 10.6.194.5 >> =E2=94=82 typescript 4.7.4 >> =E2=94=82 >> =E2=94=82 /-> /gnu/store/xvjymz07g2dy112cz4x6pz7v4q8p7c6a-rust-deno-1.25= .2/bin/deno run hello-world.js >> =E2=94=82 Hello John >> =E2=94=82 Hello Sarah >> =E2=94=82 Hello Kai >> =E2=94=82 >> =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 >> >> Next steps : >> =E2=80=A2 Packaging Quarto (that need Deno). >> =E2=80=A2 Merge and Cleaning mess with dependency. >> >> If you want to try : >> >> >> Best regards, >> SR >> >> =E2=80=9CSebastien Rey-Coyrehourcq=E2=80=9D writes: >> >> > >> > Le Lundi, Octobre 24, 2022 13:43 CEST, S=C3=A9bastien Rey-Coyrehourcq = a =C3=A9crit: >> > >> >> Hi, >> >> >> >> I=E2=80=99m trying to package Quarto Cli ( >> >> ), used in combination with >> >> Pandoc to publish -reproducible- scientific document : website, blog,= etc. >> >> >> >> I first think this is a classic gnu build : ./configure && make && ma= ke >> >> install BUT, there is a problem because the ./configure script bootst= rap >> >> =E2=80=9CDeno=E2=80=9D during the run of configure.sh. >> >> >> >> Because this download and compilation of Deno occur during ./configur= e.sh >> >> running, guix cannot patch the #!/bin/bash path, so ./configure faile= d. >> >> Deno seems also not packaged into guix. >> >> >> >> Do you have an idea to resolve this ? Perhaps we could try all togeth= er to do this. >> >> >> >> I=E2=80=99m starting with this quarto-cli.scm : >> >> >> >> =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 >> >> =E2=94=82 (use-modules >> >> =E2=94=82 (guix packages) >> >> =E2=94=82 (guix download) >> >> =E2=94=82 (guix build-system gnu) >> >> =E2=94=82 (guix licenses) >> >> =E2=94=82 ) >> >> =E2=94=82 >> >> =E2=94=82 (define-public quarto-cli >> >> =E2=94=82 (package >> >> =E2=94=82 (name =E2=80=9CQuarto-CLI=E2=80=9D) >> >> =E2=94=82 (version =E2=80=9C1.1.251=E2=80=9D) >> >> =E2=94=82 (source (origin >> >> =E2=94=82 (method url-fetch) >> >> =E2=94=82 (uri (string-append =E2=80=9C=E2=80=9D)) >> >> =E2=94=82 (sha256 >> >> =E2=94=82 (base32 >> >> =E2=94=82 =E2=80=9C1ycwrjndrrrciymnm3l0lhcd375fddkvji= bvc0n084irg6z1lxn6=E2=80=9D)))) >> >> =E2=94=82 (build-system gnu-build-system) >> >> =E2=94=82 (synopsis =E2=80=9CQuarto-cli=E2=80=9D) >> >> =E2=94=82 (description >> >> =E2=94=82 =E2=80=9CQuarto-cli description=E2=80=9D) >> >> =E2=94=82 (home-page =E2=80=9C=E2=80=9D) >> >> =E2=94=82 (license gpl3+))) >> >> =E2=94=82 quarto-cli >> >> =E2=94=82 >> >> =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 >> >> >> >> To compile and fail : >> >> guix build -f quarto-cli.scm >> >> >> >> Best, >> >> Sebastien RC. >> > >> > Deno contain lot of packages dependencies actually, >> > here i comment all packages not packaged in rust after a simple run of= guix import =E2=80=A6 >> > >> > #+BEGIN_SRC scheme >> > >> > (use-modules >> > (guix packages) >> > (guix build-system cargo) >> > (guix download) >> > (guix licenses) >> > (gnu packages rust) >> > (gnu packages crates-io) >> > ) >> > >> > (define-public rust-deno-1 >> > (package >> > (name =E2=80=9Crust-deno=E2=80=9D) >> > (version =E2=80=9C1.26.2=E2=80=9D) >> > (source (origin >> > (method url-fetch) >> > (uri (crate-uri =E2=80=9Cdeno=E2=80=9D version)) >> > (file-name (string-append name =E2=80=9C-=E2=80=9D versi= on =E2=80=9C.tar.gz=E2=80=9D)) >> > (sha256 >> > (base32 >> > =E2=80=9C1yzvdkj8sq475kfbkms1lfysjddkfwcyqhp1ggalfbk4h= qhbiz29=E2=80=9D)))) >> > (build-system cargo-build-system) >> > (arguments >> > `(#:cargo-inputs ((=E2=80=9Crust-atty=E2=80=9D ,rust-atty-0.2) >> > (=E2=80=9Crust-base64=E2=80=9D ,rust-base64-0.1= 3) >> > ; (=E2=80=9Crust-cache-control=E2=80=9D ,rust-ca= che-control-0.2) >> > (=E2=80=9Crust-chrono=E2=80=9D ,rust-chrono-0.= 4) >> > ; (=E2=80=9Crust-clap=E2=80=9D ,rust-clap-3) >> > ; (=E2=80=9Crust-clap-complete=E2=80=9D ,rust-cl= ap-complete-3) >> > ; (=E2=80=9Crust-clap-complete-fig=E2=80=9D ,rus= t-clap-complete-fig-3) >> > (=E2=80=9Crust-data-url=E2=80=9D ,rust-data-ur= l-0.1) >> > ; (=E2=80=9Crust-deno-ast=E2=80=9D ,rust-deno-as= t-0.19) >> > ; (=E2=80=9Crust-deno-broadcast-channel=E2=80=9D= ,rust-deno-broadcast-channel-0.67) >> > ; (=E2=80=9Crust-deno-cache=E2=80=9D ,rust-deno-= cache-0.5) >> > ; (=E2=80=9Crust-deno-console=E2=80=9D ,rust-den= o-console-0.73) >> > ; (=E2=80=9Crust-deno-core=E2=80=9D ,rust-deno-c= ore-0.155) >> > ; (=E2=80=9Crust-deno-core=E2=80=9D ,rust-deno-c= ore-0.155) >> > ; (=E2=80=9Crust-deno-crypto=E2=80=9D ,rust-deno= -crypto-0.87) >> > ; (=E2=80=9Crust-deno-doc=E2=80=9D ,rust-deno-do= c-0.46) >> > ; (=E2=80=9Crust-deno-emit=E2=80=9D ,rust-deno-e= mit-0.9) >> > ; (=E2=80=9Crust-deno-fetch=E2=80=9D ,rust-deno-= fetch-0.96) >> > ; (=E2=80=9Crust-deno-graph=E2=80=9D ,rust-deno-= graph-0.34) >> > ; (=E2=80=9Crust-deno-lint=E2=80=9D ,rust-deno-l= int-0.33) >> > ; (=E2=80=9Crust-deno-net=E2=80=9D ,rust-deno-ne= t-0.65) >> > ; (=E2=80=9Crust-deno-node=E2=80=9D ,rust-deno-n= ode-0.10) >> > ; (=E2=80=9Crust-deno-runtime=E2=80=9D ,rust-den= o-runtime-0.81) >> > ; (=E2=80=9Crust-deno-task-shell=E2=80=9D ,rust-= deno-task-shell-0.5) >> > ; (=E2=80=9Crust-deno-url=E2=80=9D ,rust-deno-ur= l-0.73) >> > ; (=E2=80=9Crust-deno-web=E2=80=9D ,rust-deno-we= b-0.104) >> > ; (=E2=80=9Crust-deno-webgpu=E2=80=9D ,rust-deno= -webgpu-0.74) >> > ; (=E2=80=9Crust-deno-websocket=E2=80=9D ,rust-d= eno-websocket-0.78) >> > ; (=E2=80=9Crust-deno-webstorage=E2=80=9D ,rust-= deno-webstorage-0.68) >> > (=E2=80=9Crust-dissimilar=E2=80=9D ,rust-dissim= ilar-1) >> > ; (=E2=80=9Crust-dprint-plugin-json=E2=80=9D ,ru= st-dprint-plugin-json-0.15) >> > ; (=E2=80=9Crust-dprint-plugin-markdown=E2=80=9D= ,rust-dprint-plugin-markdown-0.14) >> > ; (=E2=80=9Crust-dprint-plugin-typescript=E2=80= =9D ,rust-dprint-plugin-typescript-0.74) >> > (=E2=80=9Crust-encoding-rs=E2=80=9D ,rust-encod= ing-rs-0.8) >> > (=E2=80=9Crust-env-logger=E2=80=9D ,rust-env-lo= gger-0.9) >> > ; (=E2=80=9Crust-eszip=E2=80=9D ,rust-eszip-0.28) >> > ; (=E2=80=9Crust-fancy-regex=E2=80=9D ,rust-fanc= y-regex-0.10) >> > (=E2=80=9Crust-flate2=E2=80=9D ,rust-flate2-1) >> > (=E2=80=9Crust-fwdansi=E2=80=9D ,rust-fwdansi-1) >> > ; (=E2=80=9Crust-glibc-version=E2=80=9D ,rust-gl= ibc-version-0.1) >> > (=E2=80=9Crust-http=E2=80=9D ,rust-http-0.2) >> > ; (=E2=80=9Crust-import-map=E2=80=9D ,rust-impor= t-map-0.12) >> > (=E2=80=9Crust-indexmap=E2=80=9D ,rust-indexmap= -1) >> > ; (=E2=80=9Crust-indicatif=E2=80=9D ,rust-indica= tif-0.17) >> > ; (=E2=80=9Crust-jsonc-parser=E2=80=9D ,rust-jso= nc-parser-0.21) >> > ; (=E2=80=9Crust-junction=E2=80=9D ,rust-junctio= n-0.2) >> > (=E2=80=9Crust-libc=E2=80=9D ,rust-libc-0.2) >> > (=E2=80=9Crust-log=E2=80=9D ,rust-log-0.4) >> > ; (=E2=80=9Crust-mitata=E2=80=9D ,rust-mitata-0.= 0.7) >> > ; (=E2=80=9Crust-monch=E2=80=9D ,rust-monch-0.2) >> > ; (=E2=80=9Crust-napi-sym=E2=80=9D ,rust-napi-sy= m-0.3) >> > (=E2=80=9Crust-notify=E2=80=9D ,rust-notify-5) >> > (=E2=80=9Crust-once-cell=E2=80=9D ,rust-once-ce= ll-1) >> > (=E2=80=9Crust-os-pipe=E2=80=9D ,rust-os-pipe-1) >> > (=E2=80=9Crust-percent-encoding=E2=80=9D ,rust-= percent-encoding-2) >> > (=E2=80=9Crust-pin-project=E2=80=9D ,rust-pin-p= roject-1) >> > (=E2=80=9Crust-rand=E2=80=9D ,rust-rand-0.8) >> > (=E2=80=9Crust-regex=E2=80=9D ,rust-regex-1) >> > (=E2=80=9Crust-regex=E2=80=9D ,rust-regex-1) >> > (=E2=80=9Crust-ring=E2=80=9D ,rust-ring-0.16) >> > ; (=E2=80=9Crust-rustyline=E2=80=9D ,rust-rustyl= ine-10) >> > ; (=E2=80=9Crust-rustyline-derive=E2=80=9D ,rust= -rustyline-derive-0.7) >> > (=E2=80=9Crust-semver=E2=80=9D ,rust-semver-1) >> > (=E2=80=9Crust-serde=E2=80=9D ,rust-serde-1) >> > (=E2=80=9Crust-serde=E2=80=9D ,rust-serde-1) >> > (=E2=80=9Crust-serde-json=E2=80=9D ,rust-serde-= json-1) >> > (=E2=80=9Crust-serde-repr=E2=80=9D ,rust-serde-= repr-0.1) >> > (=E2=80=9Crust-shell-escape=E2=80=9D ,rust-shel= l-escape-0.1) >> > (=E2=80=9Crust-tar=E2=80=9D ,rust-tar-0.4) >> > (=E2=80=9Crust-tempfile=E2=80=9D ,rust-tempfile= -3) >> > (=E2=80=9Crust-text-size=E2=80=9D ,rust-text-si= ze-1) >> > ; (=E2=80=9Crust-text-lines=E2=80=9D ,rust-text-= lines-0.6) >> > (=E2=80=9Crust-tokio=E2=80=9D ,rust-tokio-1) >> > ; (=E2=80=9Crust-tokio-util=E2=80=9D ,rust-tokio= -util-0.7) >> > ; (=E2=80=9Crust-tower-lsp=E2=80=9D ,rust-tower-= lsp-0.17) >> > (=E2=80=9Crust-twox-hash=E2=80=9D ,rust-twox-ha= sh-1) >> > (=E2=80=9Crust-typed-arena=E2=80=9D ,rust-typed= -arena-2) >> > ; (=E2=80=9Crust-uuid=E2=80=9D ,rust-uuid-1) >> > (=E2=80=9Crust-walkdir=E2=80=9D ,rust-walkdir-2) >> > (=E2=80=9Crust-winapi=E2=80=9D ,rust-winapi-0.3) >> > (=E2=80=9Crust-winapi=E2=80=9D ,rust-winapi-0.3) >> > (=E2=80=9Crust-winres=E2=80=9D ,rust-winres-0.1) >> > ; (=E2=80=9Crust-zstd=E2=80=9D ,rust-zstd-0.11) >> > ) >> > #:cargo-development-inputs ( >> > ;(=E2=80=9Crust-deno-bench-util=E2= =80=9D ,rust-deno-bench-util-0.67) >> > (=E2=80=9Crust-dotenv=E2=80=9D ,rus= t-dotenv-0.15) >> > ;(=E2=80=9Crust-flaky-test=E2=80=9D= ,rust-flaky-test-0.1) >> > ;(=E2=80=9Crust-nix=E2=80=9D ,rust-= nix-0.24) >> > (=E2=80=9Crust-once-cell=E2=80=9D ,= rust-once-cell-1) >> > (=E2=80=9Crust-os-pipe=E2=80=9D ,ru= st-os-pipe-1) >> > (=E2=80=9Crust-pretty-assertions=E2= =80=9D ,rust-pretty-assertions-1) >> > ;(=E2=80=9Crust-trust-dns-client=E2= =80=9D ,rust-trust-dns-client-0.22) >> > ;(=E2=80=9Crust-trust-dns-server=E2= =80=9D ,rust-trust-dns-server-0.22)))) >> > (home-page =E2=80=9C=E2=80=9D) >> > (synopsis =E2=80=9CProvides the deno executable=E2=80=9D) >> > (description =E2=80=9CThis package provides the deno executable=E2= =80=9D) >> > (license expat))) >> > >> > rust-deno-1 >> > >> > #+END_SRC >> > >> > >> > >> > >> > >> > >> > >> > > > --==-=-=-- --=-=-=-- --===-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJcBAEBCABGFiEEQdBRWS1ZqcB6tN8l3FXLa3BDQW4FAmOkhJwoHHNlYmFzdGll bi5yZXktY295cmVob3VyY3FAdW5pdi1yb3Vlbi5mcgAKCRDcVctrcENBbjr/D/4n JGZiZwMRPbv9DiXMWr64pWz/jZ1nB0qwQ29svn3br/WsxNi3cc2c4aWBp+QUMgWJ wGQ4X8j2qsa5GHuzQmTKQ8CklQZBAzc7CTGskmB69LxsyBKRdqIzLgsv+XuVidbd wG9vZfCvF/crH2DTj9uh8k1ocrvmz2Wgd/u0hnM6pA3hCial/shbF+fiap9uKRea KeQVGOJCi56fHThBsj61iX9CV+6i7ou/wqVTLmqPEHxKw0wkKBNENWoYSFSjFaDf rdMNn/BxWiTewNrnn/IYht2f+7MrsFH+8ewfhz+0UExniJ/z4EvqKq2ghRkLAIq3 6jbrROx90xm37VeENB1kpos/wnETCgLQnZhMURYvDauI1EVJPy6HkskmmTxBm99b Ef42WoRlLrCWbPU+bZhoT5u0toK+pGyIkeMlW6RFcq8Gf+SHpDXu+LRH/ifNa+ft dU9iYrXbYMEHxrbMWsg+heMYvw9JyXCYW+MFLF3TQfTUAuUycSb4goyY0HlnoQSz 3OykOC5wsFjDEDuA9M49obUCm11C5dN7h2yjlqdP9ljbzcyxG8+KpaK6ZTOv3OBZ bpSoBK5dSE+H3ONSz3i2hssAJ3sgLZdysDzgtRAG+v+kgyaAHlsEJ/pFHgxa2tdX kytpHQVsctK4xURVuL111q49fYL86ufkrXgG6ORJbA== =5X76 -----END PGP SIGNATURE----- --===-=-=--