From: <mcsinyx@disroot.org>
To: <guix-devel@gnu.org>
Subject: Strategy for Zig packages
Date: Tue, 26 Jul 2022 19:56:20 +0900 [thread overview]
Message-ID: <CLPJ7QWT04P7.2TKAO7I1F82SY@nix> (raw)
Hello Guix,
Coming from Nix, I am considering switching to Guix in long term.
So far, my biggest gripe with nixpkgs culture, i.e. package vendoring,
seems to be well objected by Guix philosophy.
My current goal is to package software I use and/or maintain,
some of which are written in Zig. Since Zig is still immature and
there is no consensus on downstream packaging, most user applications,
e.g. ncdu or mepo, resorted to only link with C ABI libraries.
Like Go, Zig code is meant to be statically compiled (it is possible
to write libraries with C ABI in Zig, though they fall under the former
category). Since the language-specific package managers are still
experimental, some projects, e.g. river or blackshades, choose to vendor
libraries as version-control submodules and rely on relative imports.
Zig packages are specified (recursively) via
zig build-* --pkg-begin name path --pkg-end ...
so I suppose the Zig build system can wrap the command appropriately.
The third category is the software using a Zig package manager.
Dependency information should be retrievable from the manifests.
In case this has not been discussed before, what shall be the plan
for interdependent Zig packages in Guix? On top of my head there are
a few options:
1. Wait until Zig reaches 1.0; it's too soon to decide now.
2. Work with Zig maintainers for a standard way to install
Zig libraries as source code. It could be something like
ZIG_PKGS where package name is at $ZIG_PKGS/$name.zig,
or a file containing all the mappings.
3. Wrap the zig command and feed it declared dependency information
while waiting for standardization.
I would love to hear what Guix maintainers' thought on this issue.
All the bests,
McSinyx
next reply other threads:[~2022-07-26 11:20 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-26 10:56 mcsinyx [this message]
2022-07-26 18:48 ` Strategy for Zig packages Liliana Marie Prikler
2022-07-26 19:23 ` Maxime Devos
2022-08-01 20:43 ` Mája Tomášek
2022-08-02 5:21 ` mcsinyx
2022-08-02 9:09 ` Maxime Devos
2022-08-03 3:35 ` mcsinyx
2022-08-04 23:56 ` Maxime Devos
2022-08-02 9:11 ` Maxime Devos
2022-08-02 9:01 ` Maxime Devos
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=CLPJ7QWT04P7.2TKAO7I1F82SY@nix \
--to=mcsinyx@disroot.org \
--cc=guix-devel@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.