[Bug 2334903] Review Request: ghostty - Terminal emulator in Zig

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.redhat.com/show_bug.cgi?id=2334903



--- Comment #11 from Jan Drögehoff <sentrycraft123@xxxxxxxxx> ---
Hey, zig maintainer here

> I also tried to find documentation for "zon", but I couldn't find anything relevant.
> Is this a builtin tool of the zig toolchain or some third-party package manager for zig?
> I found no references to it in https://github.com/ziglang at all.

there used to be a basic explanation but it appears it was removed from website
at some point.
zon stands for Zig Object Notation and is used by Zig for `build.zig.zon`, a
project file where metadata is stored.
This includes:
- project name
- version
- relevant paths/files (used for hash generation)
- dependencies

where dependencies is an object within itself that can contain either a url and
a hash or a local relative path.

the url can point to any arbitrary file, archive or git repository with names
used for dependencies being modifable so a given dependency may be given a
different name depending on the project.


> I think the latter form should be preferred. The one without "namespacing" doesn't really make sense, it usually refers to package names that already exist in Fedora. Other language ecosystems also use syntax like "bundled(crate(foo)) = 1.2.3" or "bundled(golang(github.com/foo/bar)) = 2.3.4" since this matches the virtual Provides that those crates / Go libraries *would* have if they were packaged instead of bundled.

the namespace bundled used for other languages tend to be automatically
generated from metadata provided by a given project.
Usually this includes some kind of named identifier, which zig lacks.

As mentioned zig dependencies can point to any arbitrary content with the only
globally identifying factor being the hash.
This makes it pretty difficult to specify all the bundled provides since they
can be zig projects or C projects or even something else.

The for the future is to have 2 form of bundled provides generation:
- the zon namespace that includes the hash for every remote dependency
- the zig namespace where it iterates through every zig dependency used and
uses the name specified in build.zig 

this will only account for zig dependencies directly and includes the
identifier used within the upstream build system so non-zig dependencies would
need to be provided manually.

Until then the stop-gap solution is to simply use plain provides, the river
package already does this as well.


-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are always notified about changes to this product and component
https://bugzilla.redhat.com/show_bug.cgi?id=2334903

Report this comment as SPAM: https://bugzilla.redhat.com/enter_bug.cgi?product=Bugzilla&format=report-spam&short_desc=Report%20of%20Bug%202334903%23c11

-- 
_______________________________________________
package-review mailing list -- package-review@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to package-review-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/package-review@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite Conditions]     [KDE Users]

  Powered by Linux