From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0.migadu.com ([2001:41d0:403:4876::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms1.migadu.com with LMTPS id sJXDCvlDS2b8PQEAqHPOHw:P1 (envelope-from ) for ; Mon, 20 May 2024 14:37:13 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:4876::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0.migadu.com with LMTPS id sJXDCvlDS2b8PQEAqHPOHw (envelope-from ) for ; Mon, 20 May 2024 14:37:13 +0200 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=none; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gnu.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1716208633; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post; bh=LS3mzRy3yqWFGbgNsZbwSNYo/CbSDeBBVaDY1cSxDN8=; b=gKYZ6avQPfxCuSsNR72SPOnnWl2u4o+We5fbDS/zNY58Rjmz3IJ/5bCEuBxuPbRwuYKAL3 jd92ZRFekKTGz2VuFD0BYPa8vgNCfABx3yMy6wzrYC5W/S+6BSmRIE68ZrSWG5S6SXUXmE PzTt3hVltIV9TH9BwpzFAKiz81ac3cw8pnULGLDgFhJkb8jbkyNZ6hIuqj59pCwh2YVsiO LhFcw2U8vk1na+KQgyTIol/ZjSmKCk9e/sYfbTN/QeZ0NA7Zl+gLLvyfzBTpIssRqotiI4 w8Xxc+y/eBGjoMfVNAQ5YREtl5oluaEVdqAmNiJb+gDS4JyIZhOfoPZbE9Cs5Q== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gnu.org ARC-Seal: i=1; s=key1; d=yhetil.org; t=1716208633; a=rsa-sha256; cv=none; b=HQ7oRVlUO+kIrTi8qk1kaKy7HUkOcNZxU7Jez7OaAkw2uWt8AKjLTmtjJ0KGlwuSVp+azx 4jTiVjHfm8WV3w04Fug6IV4xuotO6KJYo47VYkY+mN8kRmjnc0rfH5IDyN2q29g6KtqkVu kuxvdri1adrZnn1K1F00Vh85o+CQDwt9VuvmIWIVs1nXrR4rLLdVkYfoEKqjqWrnV6XUYW 1d5cdFHJ+PYSCUSpR8ywBe6jWte6IjXjaVbdmfQ5MbP2Ne7mF5AjU8waC2UTuAAjkkiRpK ckP2UT1T8FOk2wYNk2wBOkJLP/qMuvEzf1jOqlrpmgmdIJ/9UjzbjXA6RZYOow== 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 DDE606B1AB for ; Mon, 20 May 2024 14:37:12 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s92GB-0002Rb-Pr; Mon, 20 May 2024 08:36:59 -0400 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 1s92G9-0002RM-Pa for guix-patches@gnu.org; Mon, 20 May 2024 08:36:57 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1s92G9-0001NH-HO for guix-patches@gnu.org; Mon, 20 May 2024 08:36:57 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1s92GE-0004B2-29 for guix-patches@gnu.org; Mon, 20 May 2024 08:37:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#69918] [PATCH] gnu: smalltalk: add pharo-vm 10.1.1. Resent-From: Nicolas Graves Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 20 May 2024 12:37:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 69918 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 69918@debbugs.gnu.org Cc: dziltener@lyrion.ch Received: via spool by 69918-submit@debbugs.gnu.org id=B69918.171620858716044 (code B ref 69918); Mon, 20 May 2024 12:37:02 +0000 Received: (at 69918) by debbugs.gnu.org; 20 May 2024 12:36:27 +0000 Received: from localhost ([127.0.0.1]:42451 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s92Fe-0004Ai-Dx for submit@debbugs.gnu.org; Mon, 20 May 2024 08:36:26 -0400 Received: from 17.mo583.mail-out.ovh.net ([46.105.56.132]:49259) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s92Fa-0004Aa-RT for 69918@debbugs.gnu.org; Mon, 20 May 2024 08:36:24 -0400 Received: from director3.ghost.mail-out.ovh.net (unknown [10.109.176.162]) by mo583.mail-out.ovh.net (Postfix) with ESMTP id 4VjcW35KxNz1Nxt for <69918@debbugs.gnu.org>; Mon, 20 May 2024 12:36:15 +0000 (UTC) Received: from ghost-submission-6684bf9d7b-6t5dk (unknown [10.111.174.115]) by director3.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 6DB391FE4D; Mon, 20 May 2024 12:36:15 +0000 (UTC) Received: from ngraves.fr ([37.59.142.105]) by ghost-submission-6684bf9d7b-6t5dk with ESMTPSA id J4uPFr9DS2YwJAAAkI6ibQ (envelope-from ); Mon, 20 May 2024 12:36:15 +0000 X-OVh-ClientIp: 81.67.146.208 In-Reply-To: <163fe58d525795ccdb3f24960655f036@lyrion.ch> References: <163fe58d525795ccdb3f24960655f036@lyrion.ch> Date: Mon, 20 May 2024 14:36:13 +0200 Message-ID: <87o790y81u.fsf@ngraves.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Ovh-Tracer-Id: 4881620522141147685 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvledrvdeitddgfedtucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucenucfjughrpefhvfevufgjfhffkfggtgfgsehtqhertddttdejnecuhfhrohhmpefpihgtohhlrghsucfirhgrvhgvshcuoehnghhrrghvvghssehnghhrrghvvghsrdhfrheqnecuggftrfgrthhtvghrnhepieejfeetudduudffveetvdeigfelkeevhfeuffeitdfgheekgeekhedvjeevhfeinecuffhomhgrihhnpehsqhhuvggrkhhvmhdrohhrghdpphhhrghrohdrohhrghenucfkphepuddvjedrtddrtddruddpkedurdeijedrudegiedrvddtkedpfeejrdehledrudegvddruddtheenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepnhhgrhgrvhgvshesnhhgrhgrvhgvshdrfhhrpdhnsggprhgtphhtthhopedupdhrtghpthhtohepieelledukeesuggvsggsuhhgshdrghhnuhdrohhrghdpoffvtefjohhsthepmhhoheekfedpmhhouggvpehsmhhtphhouhht X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Nicolas Graves X-ACL-Warn: , Nicolas Graves via Guix-patches From: Nicolas Graves via Guix-patches via Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Spam-Score: -5.36 X-Migadu-Queue-Id: DDE606B1AB X-Migadu-Scanner: mx10.migadu.com X-Migadu-Spam-Score: -5.36 X-TUID: 6tO9UE4LmcNo Hi, thanks for this patch! Some comments below. On 2024-03-20 16:36, Daniel Ziltener via Guix-patches via wrote: > --- > gnu/packages/smalltalk.scm | 66 +++++++++++++++++++++++++++++++++++++- > 1 file changed, 65 insertions(+), 1 deletion(-) > > diff --git a/gnu/packages/smalltalk.scm b/gnu/packages/smalltalk.scm > index 64146813d1..60e0cc5778 100644 > --- a/gnu/packages/smalltalk.scm > +++ b/gnu/packages/smalltalk.scm > @@ -5,6 +5,7 @@ > ;;; Copyright =C2=A9 2016 Ludovic Court=C3=A8s > ;;; Copyright =C2=A9 2018 Tobias Geerinckx-Rice > ;;; Copyright =C2=A9 2021 Maxime Devos > +;;; Copyright =C2=A9 2024 Daniel Ziltener > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -36,13 +37,16 @@ (define-module (gnu packages smalltalk) > #:use-module (gnu packages fontutils) > #:use-module (gnu packages gl) > #:use-module (gnu packages glib) > + #:use-module (gnu packages image) > #:use-module (gnu packages libffi) > #:use-module (gnu packages libsigsegv) > #:use-module (gnu packages linux) > #:use-module (gnu packages multiprecision) > #:use-module (gnu packages pkg-config) > #:use-module (gnu packages pulseaudio) > - #:use-module (gnu packages xorg)) > + #:use-module (gnu packages version-control) > + #:use-module (gnu packages xorg) > + #:use-module (gnu packages xdisorg)) You're missing a few imports : (guix gexp) (gnu packages gtk). >=20 > (define-public smalltalk > (package > @@ -184,3 +188,63 @@ (define-public squeak-vm > interactively extensible Web sites.") > (home-page "http://squeakvm.org/") > (license license:x11))) > + > +(define-public pharo-vm > + (package > + (name "pharo-vm") > + (version "10.1.1") > + (source > + (origin > + (method url-fetch) > + (uri (string-append "http://files.pharo.org/vm/pharo-spur64-headles= s/Linux-x86_64/source/PharoVM-" version "-32b2be5-Linux-x86_64-c-src.tar.gz= ")) You should keep the lines under 79 characters. If you need, you can split a line with a \ character before the end of the line. I'm also not sure we wouldn't want the github code directly, since we want to cross-compile when possible, and this seems specific to x86_64 architectures. > + (sha256 > + (base32 > + "1hbkvfrw57sz5nw48z64789yjcry9l1am4hmkndy9dd6i06n2c2n")))) > + (build-system cmake-build-system) > + (arguments > + (list > + #:configure-flags > + #~(list > + (string-append "-DPHARO_LIBRARY_PATH=3D" > + (assoc-ref %outputs "out") "/lib") > + "-DGENERATED_SOURCE_DIR=3D." > + "-DALWAYS_INTERACTIVE=3Don" > + "-DBUILD_IS_RELEASE=3Don" > + "-DGENERATE_SOURCES=3Doff" We should try when possible to generate sources and vm instances. Here it seems to be a classic bootstrap chain: each major version of pharo is used to build the next. Let's hope there's not a lot more dependencies along the chain. Do you feel confident enough with guix and is your computer beefy enough to tackle this? > + "-DBUILD_BUNDLE=3Doff") > + #:phases > + #~(modify-phases %standard-phases > + (delete 'check) You should rather use #:tests? #false and explain in a comment why tests are not present. > + (delete 'validate-runpath) > + (add-after 'install 'really-install > + (lambda _ > + (let ((bin (string-append #$output "/bin")) > + (lib (string-append #$output "/lib"))) > + (mkdir-p bin) > + (mkdir-p lib) > + (copy-recursively "./build/vm/pharo" > + (string-append bin "/pharo")) > + (for-each (lambda (file) > + (let ((inode (string-append "./build/vm/" fi= le))) > + (copy-recursively > + inode > + (string-append lib "/" file)))) > + (with-directory-excursion > + "./build/vm" > + (find-files "." > + (lambda (file stat) > + (string-contains file ".so")))= )) > + (wrap-program (string-append bin "/pharo") > + `("LD_LIBRARY_PATH" prefix (,lib))))))))) This phase can be reduced to: (add-after 'install 'really-install (lambda _ (install-file "./build/vm/pharo" (string-append #$output "/bin")) (for-each (lambda (file) (install-file file (string-append #$output "/lib"))) (find-files "./build/vm" "\\.so")))) Isn't there a way to replace this last phase by carefully chosen Cmake flags? I couldn't, but would be great if possible. I've fixed the part about rpath, will be adding a patch over that, you may use it as a basis for a v3. > + (inputs > + (list libffi > + libgit2 > + cairo > + freetype > + pixman > + libpng > + util-linux)) > + (synopsis "This is the VM used by Pharo") I like to write my synopses as action statements, answering the question=20 What can you do with this package? > + (home-page "https://www.pharo.org") > + (description "This is the VM used by Pharo.") Be more specific about description : what is Pharo? What can you do with this package? You may also add the PharoVM features from Github repo wrapped in a @itemize / @end itemize texinfo snippet. > + (license license:expat))) --=20 Best regards, Nicolas Graves