guix-devel
[Top][All Lists]
Advanced

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

Re: How to properly package umbrella projects?


From: Tobias Geerinckx-Rice
Subject: Re: How to properly package umbrella projects?
Date: Mon, 09 Oct 2023 13:03:29 +0200

Hi Horse,

On 2023-10-08 7:52, Unstable Horse wrote:
short question: a program I'm writing depends on gst-plugin-gtk4 which
is a part of gst-plugins-rs[0]. What's the most appropriate way to
package such a project:

In the majority of cases, I would say: a single package (here, ‘gst-plugins-rs’) with multiple outputs. However.

- This repository seems to be cleanly designed to efficiently(?) build only a single plug-in[1], rather than building all of them only to throw most away. Verify that, though.

- This is Rust, with its associated Cargo dependency hell, and dependencies seem to be neatly declared[2] per-plug-in. I think it's wise to bite off only as much as you're currently willing to chew.

For those reasons at least, I'd go for a single gst-plugin-rs-gtk4 package, written in this style:

(define* (gst-plugin-rs name
                       (native-inputs '())
                       (inputs '())
                       (cargo-inputs '())
                       (cargo-development-inputs '()))
  …)

(define gst-plugin-rs
  (gst-plugin-rs "gtk4"
                 #:inputs
                 (…)
                 …)

You'll have to do some work in gst-plugin-rs to change the default of "auto" for each unwanted plug-in.

Side note: different subprojects have different licenses.

That would not factor into my decision.

Kind regards,

T G-R

Sent from a Web browser.  Excuse or enjoy my brevity.

[0]: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs
[1]: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/blob/main/meson_options.txt [2]: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/blob/main/video/gtk4/Cargo.toml



reply via email to

[Prev in Thread] Current Thread [Next in Thread]