From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Lepiller Subject: Re: NPM breakthrough with test packages and weird error Date: Mon, 14 Jan 2019 13:47:43 +0100 Message-ID: <9b565a0b0a5a868f3c2a45dee020419f@lepiller.eu> References: <89736bcaeddb7721bc9b5d4920f9bd4b@riseup.net> <229083517c65c576652c6b17a6fd128f@riseup.net>; <20190112232610.54031b45@lepiller.eu>; <5F6F31B2-4B4D-4B44-9071-D8C2C31514D8@pretty.Easy.privacy> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([209.51.188.92]:58866) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gj1em-00066a-UR for guix-devel@gnu.org; Mon, 14 Jan 2019 07:47:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gj1el-00069V-Mt for guix-devel@gnu.org; Mon, 14 Jan 2019 07:47:56 -0500 Received: from lepiller.eu ([2a00:5884:8208::1]:40086) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gj1el-00063g-Dv for guix-devel@gnu.org; Mon, 14 Jan 2019 07:47:55 -0500 In-Reply-To: <5F6F31B2-4B4D-4B44-9071-D8C2C31514D8@pretty.Easy.privacy> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: swedebugia Cc: guix-devel@gnu.org Le 2019-01-14 13:27, swedebugia a écrit : > Julien Lepiller skrev: (12 januari 2019 23:26:10 > CET) > >> Le Sat, 12 Jan 2019 11:08:03 -0800, >> swedebugia@riseup.net a écrit : >> >> On 2019-01-12 18:57, swedebugia@riseup.net wrote: >> Hi >> >> I have good (and bad) news! >> >> Today I worked intensely on the node-build-system, importer and made >> some improvements as I ran into multiple errors using the importer >> and building the packages. >> >> I tried first importing tape (test package, quite popular) and >> succeded with a few adjustments. >> >> Then I tried tap, its a hairy mess unfortunately and pulls in del, >> typescript, grunt, nyc, and others >> >> I write this message mostly because I now receive a really weird >> error from guix. >> >> sdb@antelope ~/src/guix$ ./pre-inst-env guix build -K node-grunt >> guix build: error: build failed: invalid hash >> `72bd690b3fbd3be123e66c0c1932d856b294931d134cd07d4d4cd6aa1e07' >> sdb@antelope ~/src/guix$ ./pre-inst-env guix build -K >> node-tap-mocha-reporter >> guix build: error: build failed: invalid hash >> `72bd690b3fbd3be123e66c0c1932d856b294931d134cd07d4d4cd6aa1e07' >> >> The error is the same across multiple packages. Builds "succeede" as >> usual if they are already in the store or unrelated to grunt and >> nyc. >> >> After investigating with strace I found this in the end: >> >> [pid 8371] read(13, "download", 8) = 8 >> [pid 8371] write(13, >> "\10\0\0\0\0\0\0\0\27\0\0\0\0\0\0\0minimatch-3.0.4."..., 944) = 944 >> [pid 8371] read(13, "ptxc\0\0\0\0", 8) = 8 >> [pid 8371] read(13, "K\0\0\0\0\0\0\0", 8) = 8 >> [pid 8371] read(13, "invalid hash `72bd690b3fbd3be123"..., 75) = 75 >> [pid 8371] read(13, "\0\0\0\0\0", 5) = 5 >> [pid 8371] read(13, "\1", 1) = 1 >> [pid 8371] read(13, "\0\0\0\0\0\0\0", 7) = 7 >> [pid 8371] close(13) = 0 >> [pid 8371] write(2, "guix build: error: build failed:"..., 109guix >> build: error: build failed: invalid hash >> `72bd690b3fbd3be123e66c0c1932d856b294931d134cd07d4d4cd6aa1e07' >> ) = 109 >> [pid 8371] exit_group(1) = ? >> [pid 8376] <... read resumed> ) = ? >> [pid 8375] <... read resumed> ) = ? >> [pid 8376] +++ exited with 1 +++ >> [pid 8375] +++ exited with 1 +++ >> [pid 8374] <... futex resumed>) = ? >> [pid 8374] +++ exited with 1 +++ >> +++ exited with 1 +++ >> >> How did I get a corrupted store? No idea. How to delete single >> items? >> >> I found this email from 宋文武 from 2016 >> >> "> How do I get rid of these ca. 30 outdated store items? >> I think call gc for each one will work, eg: >> >> for i in /gnu/store/*teensy*; do guix gc -d $i; done" >> >> I adapted it to *minimatch* and deleted them all and checked the >> store manually for any minimatch left and... it still did not work. >> >> Hm. >> >> Removed the hash for minimatch from the node.scm. Tried again. No >> luck. >> >> Time to repair the store? Update the daemon via reconfigure? >> >> I run vanilla 0.16. >> >> Pushed my changes here for anybody interested in taking a look >> https://gitlab.com/swedebugia/guix/commits/npm2 >> >> (All my work build on the previous work of Jelle and Julien. Big >> thanks to you!) >> >> Resume of its status: >> * recursive import works now. >> * cyclic dependencies are not detected by the importer >> * you have to import an earlier version by hand if a cycle is >> encountered. >> >> I imported 400+ packages in one day and most of them work out of the >> box :) > > Nice! > > For the hash issue, I just had a similar one because I somehow removed > the hash in an origin record like so: > > (sha256 (base32 "")) > > The error is weird, but maybe the importer did something wrong? > > Thanks for the information. > > I switched to my guix on parabola and cloned first yours and them my > repo. > > Then I imported minimatch again to make sure the hash is right and it > worked! > > Status: > > I now got these working 95 % built with guix: > * tap > * grunt > * coffee-script Sorry, but coffeescript is a compiler. Like almost every compiler these days, it's written in its own language, and isn't bootstrapped (in the sense of https://bootstrappable.org). They provide a directory with javascript "sources" (generated from the previous version in the best case, or an unreleased version quite often), but the actual sources are written in coffeescript. I've already tried to build a version from the old ruby sources, but even they weren't able to build the compiler on the following commit… If we want to bootstrap coffeescript, we'll need an alternative implementation of a coffeescript compiler or interpreter. > * @babel/core and /cli Let's make sure babel doesn't suffer from the same flaw... > > In total these have 300 dependencies that now work. > > I got stuck with tape because one of the dependencies need typescript > to build and typescript depends on gulp. > > Gulp is a nightmare (304 dep with multiple circles if versions are not > considered). > > If I disable building on this one dependency tape would probably work. > > -- > Sent from my p≡p for Android.