From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Olivier Dion via General Guile related discussions Newsgroups: gmane.lisp.guile.user Subject: Re: Newbie thoughts on Guile Hall + Guix Date: Sun, 06 Feb 2022 11:35:32 -0500 Message-ID: <87k0e8t0kr.fsf@laura> References: <87iltt846s.fsf@dustycloud.org> Reply-To: Olivier Dion Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="35383"; mail-complaints-to="usenet@ciao.gmane.io" To: Christine Lemmer-Webber , guile-user@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Sun Feb 06 17:35:58 2022 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 1nGkW6-0008zE-5P for guile-user@m.gmane-mx.org; Sun, 06 Feb 2022 17:35:58 +0100 Original-Received: from localhost ([::1]:40972 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nGkW5-0007tj-08 for guile-user@m.gmane-mx.org; Sun, 06 Feb 2022 11:35:57 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:54534) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nGkVv-0007ta-Ni for guile-user@gnu.org; Sun, 06 Feb 2022 11:35:47 -0500 Original-Received: from smtp.polymtl.ca ([132.207.4.11]:38926) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nGkVt-0006Xv-F1 for guile-user@gnu.org; Sun, 06 Feb 2022 11:35:47 -0500 Original-Received: from localhost (modemcable094.169-200-24.mc.videotron.ca [24.200.169.94]) by smtp.polymtl.ca (8.14.7/8.14.7) with ESMTP id 216GZWAn003448 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 6 Feb 2022 11:35:36 -0500 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp.polymtl.ca 216GZWAn003448 In-Reply-To: <87iltt846s.fsf@dustycloud.org> X-Poly-FromMTA: (modemcable094.169-200-24.mc.videotron.ca [24.200.169.94]) at Sun, 6 Feb 2022 16:35:32 +0000 Received-SPF: pass client-ip=132.207.4.11; envelope-from=olivier.dion@polymtl.ca; helo=smtp.polymtl.ca X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-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: guile-user@gnu.org X-Mailman-Version: 2.1.29 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:18013 Archived-At: On Sat, 05 Feb 2022, Christine Lemmer-Webber wrote: > Anyway, just some thoughts. Making Guile packages is already much less > intimidating now thanks to Hall's work. Thank you for it! Here's my two cents. As much as I like hall for pure Guile project, it's difficult to integrate extension libraries written in C. I've also never been a fan of the autotools stuffs. I personnally end up writting something similar to hall for a project of mine using Guix records. From a description like so: -------------------------------------------------------------------------------- (project (name "foo") (version "1") (configuration-file "config.scm") (export-configuration '(("include/config.h" . "FOO_CONFIG_H") ("foo/config.scm" . "foo config"))) (build-directory "./build") (cppflags `(-Include ,(pkg-cflags-only-I '(guile-3.0)))) (guile-root "foo") (guile-tests-root "tests") (scripts (list (script (name "foo") (file "scripts/foo") (install? #t)) (script (name "debug") (file "scripts/debug") (install? #f)))) (c-modules (list (c-module (name "foo") (files '("core/*.c")) (packages '(guile-3.0))) (c-module (name "bar") (files '("bar/bar.c")) (ldflags '(-lsomelib)) (packages '(some-other-lib))))) -------------------------------------------------------------------------------- this description end up generating a `guix.scm`, `makefile`, `pre-install-env`, `foo/config.scm` and `include/config.h`. Packaging is just a matter of shipping the `makefile` with the source codes. -- Olivier Dion Polymtl