From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christopher Baines Subject: Building things other than Guix with Cuirass Date: Mon, 18 Sep 2017 21:59:06 +0100 Message-ID: <20170918215906.2c32b61d@cbaines.net> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; boundary="Sig_/ffhbwRXheS_dbIjdofSHjOk"; protocol="application/pgp-signature" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:39431) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1du38e-0003OX-DQ for guix-devel@gnu.org; Mon, 18 Sep 2017 16:59:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1du38b-0001Oa-Qt for guix-devel@gnu.org; Mon, 18 Sep 2017 16:59:32 -0400 Received: from li622-129.members.linode.com ([212.71.249.129]:35365 helo=mira.cbaines.net) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1du38b-0001NV-HT for guix-devel@gnu.org; Mon, 18 Sep 2017 16:59:29 -0400 Received: from localhost (cpc102582-walt20-2-0-cust14.13-2.cable.virginm.net [86.27.34.15]) by mira.cbaines.net (Postfix) with ESMTPSA id C8DA113E56C for ; Mon, 18 Sep 2017 21:59:25 +0100 (BST) 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: guix-devel@gnu.org --Sig_/ffhbwRXheS_dbIjdofSHjOk Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Hey, At the GHM, one of the things I looked in to was cuirass. Specifically, I tried to see if I could build a collection of guix packages that sit outside of Guix. =46rom trying to use cuirass for a few hours, I began thinking that it might be beneficial to change the interface between cuirass and the jobs. The interface provided by cuirass to fetch jobs through consists of specifying a Guile load path, file, procedure, and arguments to that procedure. Currently, something like this is used to describe how to get some jobs. `((#:name . "hello") (#:url . "git://git.savannah.gnu.org/guix.git") (#:branch . "master") (#:no-compile? . #t) (#:load-path . ".") (#:proc . cuirass-jobs) (#:file . "/tmp/drv-file.scm") (#:arguments (subset . "hello"))) As an example, with minor changes to the way arguments are handled, I think this could also be represented as a invocation of guile. `((#:name . "hello") (#:url . "git://git.savannah.gnu.org/guix.git") (#:branch . "master") (#:no-compile? . #t) (#:command "guile -L. -s /tmp/drv-file.scm -e cuirass-jobs -- --subset= =3Dhello")) However, if you've gone to the trouble to have a Guile program, it might be easier to make it executable directly. `((#:name . "hello") (#:url . "git://git.savannah.gnu.org/guix.git") (#:branch . "master") (#:no-compile? . #t) (#:command "/tmp/drv-file.scm --subset=3Dhello")) It might also be possible to remove the hardcoded compilation process and just use the single command. However, it might be better to be able to specify a separate compilation command or list of commands. Back to the jobs though, Cuirass already executes a separate command to load jobs, but this is hardcoded to the evaluate command. I think changing the interface to allow directly specifying a command would open up new possibilities for cuirass, and at the same time simplify the implementation and interface. I've tried out using this approach for building a collection of guix packages that sit outside of guix, and it seems to work well. I copied one of the examples, and wrote a guile program that when run prints out the jobs. Cuirass then runs a bash script that sets up the correct environment with the guix environment command, and then invokes the guile script to generate the jobs. I'm half way through writing a proper patch for this, but I haven't moved all the functionality in the evaluate command in to cuirass yet. Does anyone have any opinions or ideas about this part of cuirass, or building things other than the packages in the Guix repository with it? Thanks, Chris --Sig_/ffhbwRXheS_dbIjdofSHjOk Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAlnAM5pfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE 9XcIshAAgUOQBcg9CmvUKhDzEDGAqZK+g21dGxPvsKuu6D770xonYIuM55FzLRjG rSA8E+sznID/MczKgplDIzcZZ8kaqF2gi5gZNPU1zhKtUXJoXEYTQgLc8a1bZd3i AfTPvDnjXQjcuJqcTeOCQGqlksjX92UW/GNVI4w9KO/wjQB9Ld14u6TwvulpqUb8 TPt33ISyk9r5SSVUOKY2wwOPyrD3QhCG94/N+/K7BUDZvjyEKQqexB4W25idQdvA AVyVdpS1OpkZVtuSzn5XtxqWMD9ONavywsBjrSjWUy6q0uPrUCZAL524Bov7hXw1 9IuSW+uDhO6FkXamZb7km60s4zHoXhLc7HoVDiRttNmYmlvrP3fr6pqL+kELY6jz ZMF8FAlarpOASTsE+QpgRTqGopN2BRqr9LeT075dSpBUkaoo3Ck5hhwOEmyrDk2q mRlynChQMOypf6aK9L9NkVUXPg0UKcQn3+jeetLNUWEyvFzLBay3+uOcH4Tp/0vY nura6I3x+KIhbc+S43VgIBJr1+mJUlDwmxKyztU7A1QCH7LflHVzwjff5m/X7YnU MWakDJZKMo4R9AgbSD3w/ER9Ag16Yduxerc4ZlnKco3Hpzb9zhkVZNSXeTWHrG+M c5me2nS+gqRd1PQLFSgoQhAWLXiBXraJR/bIgp5rSehfqt/iLXU= =WOTa -----END PGP SIGNATURE----- --Sig_/ffhbwRXheS_dbIjdofSHjOk--