From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Zelphir Kaltstahl Newsgroups: gmane.lisp.guile.user Subject: Help making a GNU Guix package for pure GNU Guile library Date: Sat, 30 Jan 2021 18:17:22 +0100 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="18606"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Icedove/68.10.0 To: Guile User Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Sat Jan 30 18:17:42 2021 Return-path: Envelope-to: guile-user@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l5tsT-0004k8-Uw for guile-user@m.gmane-mx.org; Sat, 30 Jan 2021 18:17:41 +0100 Original-Received: from localhost ([::1]:43348 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l5tsS-0004sh-RQ for guile-user@m.gmane-mx.org; Sat, 30 Jan 2021 12:17:40 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:41682) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l5tsJ-0004sa-Bn for guile-user@gnu.org; Sat, 30 Jan 2021 12:17:31 -0500 Original-Received: from mout01.posteo.de ([185.67.36.65]:45684) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l5tsG-00025L-Kq for guile-user@gnu.org; Sat, 30 Jan 2021 12:17:31 -0500 Original-Received: from submission (posteo.de [89.146.220.130]) by mout01.posteo.de (Postfix) with ESMTPS id D862D160061 for ; Sat, 30 Jan 2021 18:17:23 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017; t=1612027043; bh=05mkm2RolNsI/74+qDg1cx09GFGwS33ljasX3Eo2s9w=; h=To:From:Subject:Date:From; b=C1yXBosMp0HUNZcy7zQPMgZZalUfG6/PzCdi/sdduGbk/OGiNrEdRehgYemCRwDC5 faVVdBjnqNnBsaBM8wzxlrffnUjqwJgeF3rvd2svqwvkRL0NDPS580sOLFgdD9JvHK QMNvxBN5GTSiW5oIFJ1RmEw2/qfD7lh4x/ECOZH7cz2DYF8UIYZ/LllimQBP7pGcmC WsLq2G0bDpqOkooYfjVNoh0mELo/qN/EwpY67IGIkKjMvgAkIOkqeg/CIKa650nkyq zw6ih1lkSGO8L5VjbZHkazoBdeDPxL9HVJkqGieAWgIyNx7V8dUKOEyx9Km/xqiKZh e3V8qAzZEZiZA== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4DSgr31Yj7z9rxN for ; Sat, 30 Jan 2021 18:17:22 +0100 (CET) Content-Language: en-US Received-SPF: pass client-ip=185.67.36.65; envelope-from=zelphirkaltstahl@posteo.de; helo=mout01.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.io gmane.lisp.guile.user:17205 Archived-At: Hello Guilers! For some time now I wanted to be able to make Guix package of some of my Guile projects or at least understand and know how to do that, write a guide for it and so on, to be able to do it whenever I need it and also to be able to contribute better to the Guile community and enable others to read how to create Guile packages and contribute. People would not have to clone any repo from me directly, but could use Guix to install stuff. A few weeks ago I asked in the Guile IRC channel about how to approach learning the required things. There people recommended me to look at guile-haunt as an example, because it is also a pure Guile program, which is packaged for Guix already. So that i what I started doing. There is a whole jungle of stuff, that I do not yet understand in depth. Many of those things are GNU Autotools / GNU Automake or GNU M4 related. I have taken a detailed look at guile-haunt's Makeile.am and documented anything I understand about it in a plaintext org-mode file. In that file I wrote "TODO", for example "TODO: explain x" for anything, that I did not yet understand. I also have some more general questions, which I want to ask, but first I want to post the links to what I am referring to: * guile-haunt repository Makefile.am: https://github.com/guildhall/guile-haunt/blob/c67e8e924c664ae4035862cc7b439cd7ec4bcef6/Makefile.am * my own notes about the Makefile.am: https://notabug.org/ZelphirKaltstahl/guix-package-manager-tutorials/src/01cc6af019862bd6a588c4e376f07bad9f5fb1f3/make-a-package/autotools-usage/guile-haunt.org (Should I be pasting all the TODO items as separate questions in this e-mail, or is posting a permalink to the document OK?) Perhaps you can already see from the TODO things I wrote down there, that my knowledge about the tooling is quite limited. I've never done a lot of C programming or other ones, where one often sees Makefiles and the usual stuff. So if you reply, please keep in mind my beginner knowledge about these things. Can you help me out filling the remining gaps in understanding? Also I have another question, which I will try to answer myself: Why does guile-haunt use Makefile.am? Why is a simple Makefile not sufficient? My own attempt at an answer: Autotools seem to try to be a compatibility layer for many different systems and perform loads of checks, to ultimately generate a working Makefile for each system on which the Makefile.am is processed. This is important for Guix, as Guix is supposed to work on any GNU/Linux distribution. So by using GNU Autotools instead of GNU Make directly, I would be making my package more stable on various systems, on which the defaults may differ from my own system. And ultimately: Should I be asking this question on the Guix mailing list, instead of here? Best regards, Zelphir -- repositories: https://notabug.org/ZelphirKaltstahl