From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1.migadu.com ([2001:41d0:403:4876::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms13.migadu.com with LMTPS id 0B2+Oi9lbGaeywAA62LTzQ:P1 (envelope-from ) for ; Fri, 14 Jun 2024 15:43:44 +0000 Received: from aspmx1.migadu.com ([2001:41d0:403:4876::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1.migadu.com with LMTPS id 0B2+Oi9lbGaeywAA62LTzQ (envelope-from ) for ; Fri, 14 Jun 2024 17:43:44 +0200 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Z3mzld9S; 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=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1718379823; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=o4zStQDln+UosDHtnjwtXpp799bRG54doh3wZsJHLEE=; b=ZNyeqZfepQ9w7iAtfjA0jmGVramg95RWZW5nrjlVBE9NiyneBy+a6GbZyrhWggUe6jlI70 tCYw6CAAY5K40guixqwLlauAIlTbcgRvcV4jJ+HBnGrt95CogAq7UNK+XmW2IN2I/X9pLl SaXCaeSY01Bv8F3JnXW647MFlY9Zsx9f5Hw/OGmG94tRHH8NFGmej4tiFHasLqqpY8o5Q1 EY73KrKYA6z0ICPKtAwVTwar86xdNIZMq78zQA0HEegGbJh/WEwn1Yly5MtAX4pRRuHllC iAG5jEikZEArkZpHrtBh+qSIIThEFc2WVUoLRehlfX8yqMYaDaVkAZpLk/PWsw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Z3mzld9S; 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=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=key1; d=yhetil.org; t=1718379823; a=rsa-sha256; cv=none; b=eZRYxO1c9PNF/pf7p5JbWGKL+EGmXBIt8IbI3q30Vnjs0aAsmj/qk265jZEXeQInpC89yj 7Mosg1oVC0QN+M6cqDgW1qGuOKfoz6Kti9zEXZdYum5RaZPOQatSZ+XYZEltN3ahwWuilh GGpsGJlke+Ij18P9OKxDLLRmIpV98L4VjqSTMrT0Tr9e1Yf5kDE+6+H2YRlnV7c1Dha4dQ /pJyTS/0BVVPU2md29vF1/Drt1/b4McWDaxVHa2Dh3w9V/R6930ddfOYdtgSgxco07Lmo4 mSFIqN1uRj3Ump2/k7OGORzA5fecnLFpKoTPDzdUVCEu2mg5nPBk/F5IJJTs2g== 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 80F1824790 for ; Fri, 14 Jun 2024 17:43:43 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sI95H-0007Qn-77; Fri, 14 Jun 2024 11:43:23 -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 1sI95F-0007Or-56 for help-guix@gnu.org; Fri, 14 Jun 2024 11:43:21 -0400 Received: from mail-lf1-x130.google.com ([2a00:1450:4864:20::130]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sI95D-00030P-CC for help-guix@gnu.org; Fri, 14 Jun 2024 11:43:20 -0400 Received: by mail-lf1-x130.google.com with SMTP id 2adb3069b0e04-52b7e693b8aso3060505e87.1 for ; Fri, 14 Jun 2024 08:43:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718379797; x=1718984597; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=o4zStQDln+UosDHtnjwtXpp799bRG54doh3wZsJHLEE=; b=Z3mzld9S1rQXNAk/vR6LhIO71WE2gPW+c6Jp2ZVJffJIOO+pfa7wRREl6fRWghPbZv 2O88mdkGj6MnPC8u/6JZCIHXq6nTO5UYnnLAyxbaEp2ETuSjcPNnhXWvCAXtBrVcfCwY xlcZcQpG54Axhs4/pg7T6Xse9WAf/fQz0CRqagxCyL3VOFtSfW2AaMob8DhyQCDZaM7N T1ia0MSvwDC/ucrNcDEDF0Bp1NQXNmBBQO2b1kd0NPnLrPwYKCa4Ktp1LExy3nCK8HWN ONj0bRPSAXtFgwh4Z/YbQq7V/SqEfGVzbfvgnfBZIRXj9IX4irUQMl6+P3Jx99uFY5Xa aQUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718379797; x=1718984597; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=o4zStQDln+UosDHtnjwtXpp799bRG54doh3wZsJHLEE=; b=nLA4CryDLj/+SqFXW4vphOPvN6RAMdVpq/OpFltIN/UL5bzfE4whOXh7yd6V4D/mce /1zyEgIKP3u8TFtOUaRb4zz9Lwm4M682hGPvYAMRTLdSPIPPSxzw/MQFVdVodWL3r+8L 7UPSZ0Kez7eTVP4fPhQJIqrqhQiR1biWnXQ70b16yzU1BywhU1hqGTYeP3JcPgKJWn49 rmB1dqPBXeg9dykGFyI2Ak+JH68aUG1SLQm4F8uoaG7t2uwhvzNE8e95mQEE6RJUECDx 300F0aOL9wXCqaVt3nMl5ELDHXlZd/XhYEl1aHlhebYqq4zkqbGMQZTAPcxViPeR8hgD b6XA== X-Gm-Message-State: AOJu0YwGCvjgKsGQXncL3mB1rZ+2Vvaa3rauSxS9BwdECWD283uQT5uM q1ScMyinh4cFU8bi1/u2Ruag8J60EKxNofdOYJ7HiVicUATmcICmYvtAODVmUHudz+gNIiING6P 9Epbyu58RhP86MJVwkJNdfnhTg/QwnFUm X-Google-Smtp-Source: AGHT+IHro7X5l7rgebUxG+9u8g69N/9dpKBHnWSQlCPSoipVOrAVVdSEQDvlKqUoHprZCmxMqdUrrV7Ij9GP8jJichw= X-Received: by 2002:a19:430f:0:b0:52c:82d3:4725 with SMTP id 2adb3069b0e04-52ca0455227mr1866893e87.25.1718379796689; Fri, 14 Jun 2024 08:43:16 -0700 (PDT) MIME-Version: 1.0 From: Daniel Littlewood Date: Fri, 14 Jun 2024 16:43:05 +0100 Message-ID: Subject: Ruby without RVM - what to do if the version I want is missing? To: help-guix Content-Type: text/plain; charset="UTF-8" Received-SPF: pass client-ip=2a00:1450:4864:20::130; envelope-from=danielittlewood@gmail.com; helo=mail-lf1-x130.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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 X-Spam-Score: -8.68 X-Migadu-Queue-Id: 80F1824790 X-Migadu-Scanner: mx10.migadu.com X-Migadu-Spam-Score: -8.68 X-TUID: Un+08QsxFt2O Hi Guix, I am trying to migrate from Debian to Guix. I am used to using RVM/rbenv to manage my ruby versions, but I don't think they're packaged for guix. They also obviously go against the grain of having guix manage all your software. Long story short, my project requires Ruby 3.3.0, and the latest packaged version is 3.2.3. I have one main question and a followup. I read David Thompson's article "Ruby on Guix" so I will refer to that when I'm trying to describe things. (https://dthompson.us/posts/ruby-on-guix.html) 1. Suppose I am prepared to package Ruby 3.3.0 myself. I imagine that the packaging steps for 3.3.0 are extremely similar to 3.2.3 (probably they are identical). 1a. Which parts of the manual should I read to figure out how to write a new package? In the article there is one expression that begins `(package (name ruby-pry)...` and another `(define-public ruby-pg (package (name "ruby-pg")...`. What is the significance of define-public? 1b. If I manage to write a package expression for ruby 3.3.0, how do I then refer to it in my package.scm? I assume I have to require a module somehow, but I know very little scheme. 1c. Given that 3.3.0 is probably almost identical to 3.2.3, I would like to copy the original file and just tweak the details in my local project. I think I found that via packages.guix.gnu.org, here: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/ruby.scm#n279. Is that the right expression (if I just copy it, should I expect it to work)? and for my followup, 2. Now imagine I've packaged it correctly and it works locally. I assume it would be a good thing to upstream that file. 2a. Is it actually desirable to upstream that? I notice not every version of ruby is packaged. But I think similarly to the previous section it should be not too hard to package every version (major and minor). Is there a principled reason not to do this, or is it just lack of maintainers? 2b. If there is a principled reason, like we don't want the guix packages repo to be too big, would it be useful for someone to have another channel where things like extra ruby versions are packaged and pre-built? I think this second question is important for people like me who are considering using Guix to replace things like RVM. It might be that guix proper has high standards for packaging, but I know I wouldn't mind if there was a lower standard for stuff being pulled naively via rubygems or whatever. Best wishes, thank you for reading, Dan