From mboxrd@z Thu Jan 1 00:00:00 1970 From: Danny Milosavljevic Subject: Re: boot guixsd Date: Sat, 3 Mar 2018 12:42:14 +0100 Message-ID: <20180303124214.76755e46@scratchpost.org> References: Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/BLIgHHA61XSuMd8nKRQDsnf"; protocol="application/pgp-signature" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:58423) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1es5Yg-0000tD-8I for guix-devel@gnu.org; Sat, 03 Mar 2018 06:42:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1es5Yb-00047s-BG for guix-devel@gnu.org; Sat, 03 Mar 2018 06:42:34 -0500 Received: from dd26836.kasserver.com ([85.13.145.193]:43066) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1es5Yb-00044q-3h for guix-devel@gnu.org; Sat, 03 Mar 2018 06:42:29 -0500 In-Reply-To: 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: Rene Cc: "guix-devel@gnu.org" --Sig_/BLIgHHA61XSuMd8nKRQDsnf Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Hi Rene, On Fri, 02 Mar 2018 23:41:48 -0500 Rene wrote: > ?: 3 [primitive-load "/gnu/store/rjp22rca3gv8lrrbb9j4sry9i3n= 1bvlp-activate"] > In ice-9/eval.scm: > 432: 2 [eval # ()] > In /gnu/store/6dvydkcda77dxkpbn5jsj4vsmr19gb7v-module-import/gn= u/build/activatio > n.scm: > 449: 1 [activate-current-system #f] > In unknown file: > ?: 0 [symlink #f "/run/current-system.new"] >=20 > ERROR: In procedure symlink: > ERROR: Wrong type (expecting string): #f >=20 > a) In GNU Hurd, how should activation be done? > b) Regarding the error assuming that I start reading from the bottom up '= ERROR: In procedure symlink', > in GNU Hurd I guess I should try 'symlink' through guile to see if th= e procedure exists. I think the procedure was found alright, but the first argument is #f: > ?: 0 [symlink #f "/run/current-system.new"] Checking gnu/build/activation.scm, there is this: (define* (activate-current-system #:optional (system (or (getenv "GUIX_NEW_SYSTEM") (boot-time-system)))) "Atomically make SYSTEM the current system." ;; The 'GUIX_NEW_SYSTEM' environment variable is used as a way for 'guix ;; system reconfigure' to pass the file name of the new system. (format #t "making '~a' the current system...~%" system) ;; Atomically make SYSTEM current. (let ((new (string-append %current-system ".new"))) (symlink system new) (rename-file new %current-system))) (define (boot-time-system) "Return the '--system' argument passed on the kernel command line." (find-long-option "--system" (linux-command-line))) So it's trying to find the system via an environment variable or via the "--system" option of the Linux kernel command line. As a quick check, try setting GUIX_NEW_SYSTEM before you run guile: (setenv "GUIX_NEW_SYSTEM" "/var/guix/profiles/system-1-link") In the long run it would be nice to have the system reference stored in the Hurd (or GNU Mach) command line. I wonder whether there are any downsides to just using a new regular file, maybe even /proc/cmdline without /proc being special. On the other hand, having the environment variable is fine I guess. --Sig_/BLIgHHA61XSuMd8nKRQDsnf Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAlqaihYACgkQ5xo1VCww uqWN3Qf+PB5DSNgppsHGySWR6LYNE/V5mWrIxwTUfav21AScwHpY9Ec9tSdFl4xB ofZZuNP4a2z/lPkSoh2jjnBO+/AJN/n7wsBiFrNxAKDIL5P9UrtKXQ0CjSFbW7MC B7BjaeH87+3CwWiJ/7iMelcZXX8aK2yOu2CS5iHdP6Dcm4tyd6PfvoByEGO1gmEL VcJYoz209BIPHW0qxaE94Giz4A/SzAPSxVQ0r6/gnDGheNI/23EvsyIE++l52d+e jX+Kh2zgjSqFfCNfVtfrdSHNaLoqny6Ocb0ZziE/LjkE9F090LomDBsSJh76ew7s TYo9CTOFNMlj0Vsju1b+Vf6gkUymTg== =ZQZL -----END PGP SIGNATURE----- --Sig_/BLIgHHA61XSuMd8nKRQDsnf--