From: "Daniel Meißner" <daniel.meissner-i4k@ruhr-uni-bochum.de>
To: guix-devel@gnu.org, Arun Isaac <arunisaac@systemreboot.net>
Cc: "Ludovic Courtès" <ludo@gnu.org>,
"Efraim Flashner" <efraim@flashner.co.il>
Subject: Re: Development repositories as Guix channels
Date: Thu, 06 Jul 2023 19:40:16 +0200 [thread overview]
Message-ID: <C8E32A49-3486-44F9-8515-D673A24A2ED0@ruhr-uni-bochum.de> (raw)
In-Reply-To: <87edllw1k5.fsf@systemreboot.net>
Hi Arun,
Am 6. Juli 2023 16:35:06 MESZ schrieb Arun Isaac <arunisaac@systemreboot.net>:
>
> Hi,
>
> This is with reference to the "Level 2: The repository as a channel"
> section in the Guix blog post "From development environments to
> continuous integration—the ultimate guide to software development with
> Guix"[1]. This section describes how to convert a project repository
> into a Guix channel so that the repository can double as a way to
> distribute packages. I have been trying to follow the instructions and
> have hit a little snag.
>
> The post says the source field of the package definition should be a
> local-file file-like object. This is fine as long as we are using `guix
> build' to build packages in the repository. But, when the repository is
> distributed as a channel, the local-file becomes meaningless. The
> channel only has access to the sources under the .guix/modules directory
> and none of the sources required to build the package itself.
>
> It seems to me that it is not possible to distribute project
> repositories as Guix channels. But hopefully, I'm missing something
> simple. Could anybody please clarify?
I have recently followed the instructions from this blog post as well and indeed you are right that it does not work as advertised. There's however only a small mistake in the changes for Level 2. You have to replace the relative path in the local-file form with "../.." as that gives you the root of your source tree relative to the new location of the Scheme file. Then everything works nicely. Even building the package with `guix build -f guix.scm' works from the root of the tree. Somehow Guile computes the directory relative to real file and not the symlink. Didn't expect.
Bonus: I have even setup CI via Cuirass which was surprisingly easy on a Guix system and now it rebuilds my package every time one of its inputs in Guix changes ❤️ This is awesome! Thanks for this blog post, it was inspiring.
Hope that helps
Best
--
Daniel
next prev parent reply other threads:[~2023-07-06 17:41 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-06 14:35 Development repositories as Guix channels Arun Isaac
2023-07-06 17:40 ` Daniel Meißner [this message]
2023-07-09 23:07 ` Arun Isaac
2023-07-16 13:22 ` Ludovic Courtès
2023-07-16 17:58 ` Arun Isaac
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=C8E32A49-3486-44F9-8515-D673A24A2ED0@ruhr-uni-bochum.de \
--to=daniel.meissner-i4k@ruhr-uni-bochum.de \
--cc=arunisaac@systemreboot.net \
--cc=efraim@flashner.co.il \
--cc=guix-devel@gnu.org \
--cc=ludo@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.