Subject: [bug#67515] [PATCH 00/91] Add Mission Center and its dependencies

From: Sergio Pastor Pérez <[email-masked]>
Date: Tue, 28 Nov 2023 21:23:30 +0100

Good evening!

After some time I've managed to package Mission Center[1] and its
dependencies. The dependency tree turned out to be massive *cries on rust*.

I've decided to package this as an example on how to build a rust application
which relies on the meson build system, I believe as of the time of writing we
don't have any.

Most of the dependencies are rust related. In order to alleviate the load on
the rust-team I've tried to avoid, wherever possible, the use of flags such as
`#:skip-build? #t` or `#:tests? #f`. I also ensured that the different
additions updated older versions with the appropriate inherit keyword.

You would notice that in order to package `mission-center`, some ugly hacks
where required. Hacks such as providing the sources of `nvtop-src`. The
application uses some of those source files to build certain internal modules.

Also, I could not find any appropriate way of packaging `pathfinder` with our
current rust build system. This package is problematic since its a
multi-workspace rust repository, where each module is interdependent with each
other.

All quirks aside, I think It would be nice to have Mission Center in Guix
since It's usually distributed as a Flatpack and serves as an example on how
to package a piece of software with such an esoteric build.

Thanks,
Sergio.

[1]: https://gitlab.com/mission-center-devs/mission-center

Sergio Pastor Pérez (91):
  gnu: Add blueprint-compiler-next.
  gnu: Add rust-glib-sys-0.18.
  gnu: Add rust-gobject-sys-0.18.
  gnu: Add rust-gio-sys-0.18.
  gnu: Add rust-glib-macros-0.18.
  gnu: Add rust-glib-0.18.
  gnu: Add rust-gio-0.18.
  gnu: Add rust-gdk-pixbuf-sys-0.18.
  gnu: Add rust-gdk-pixbuf-0.18.
  gnu: Add rust-graphene-sys-0.18.
  gnu: Add rust-graphene-rs-0.18.
  gnu: Add rust-gl-loader-0.1.
  gnu: Add rust-pango-sys-0.18.
  gnu: Add rust-pango-0.18.
  gnu: Add rust-const-random-macro-0.1.15.
  gnu: Add rust-const-random-0.1.15.
  gnu: Add rust-proc-status-0.1.
  gnu: Add rust-ordermap-0.2.
  gnu: Add rust-quick-xml-0.30.
  gnu: Add rust-rstest-macros-0.17.
  gnu: Add rust-spinning-0.1.
  gnu: Add rust-to-method-1.
  gnu: Add rust-rustc-hash-1.0.
  gnu: Add rust-rstest-0.17.
  gnu: Add rust-minimad-0.12.
  gnu: Add rust-minidl-0.1.
  gnu: Add rust-libudev-sys-0.1.
  gnu: Add rust-byte-slice-cast-0.3.
  gnu: Add rust-file-size-1.
  gnu: Add rust-assert2-macros-0.3.
  gnu: Add rust-cli-log-2.
  gnu: Add rust-assert2-0.3.
  gnu: Add rust-coverage-helper-0.1.
  gnu: Add rust-dlv-list-0.5.
  gnu: Add rust-errno-sys-0.1.
  gnu: Add rust-libc-0.1.
  gnu: Add rust-khronos-0.1.
  gnu: Add rust-hashbrown-0.7.
  gnu: Add rust-egl-0.2.
  gnu: Add rust-ordered-multimap-0.6.
  gnu: Add rust-dlib-0.5.1.
  gnu: Add rust-wayland-sys-0.31.
  gnu: Add rust-wayland-backend-0.1.3.
  gnu: Add rust-textdistance-1.
  gnu: Add rust-rust-ini-0.19.
  gnu: Add rust-coolor-0.5.0.
  gnu: Add rust-deser-hjson-1.
  gnu: Add rust-crokey-proc-macros-0.4.
  gnu: Add rust-crokey-0.4.
  gnu: Add rust-xcb-0.10.
  gnu: Add rust-x11-clipboard-0.5.3.
  gnu: Add rust-termux-clipboard-0.1.
  gnu: Add rust-terminal-clipboard-0.3.
  gnu: Add rust-termimad-0.23.
  gnu: Add rust-core-affinity-0.8.
  gnu: Add rust-raw-sync-0.1.
  gnu: Add rust-raw-cpuid-11.
  gnu: Add rust-drm-fourcc-2.
  gnu: Add rust-drm-sys-0.4.
  gnu: Add rust-drm-ffi-0.5.
  gnu: Add rust-drm-0.9.
  gnu: Add rust-intmap-0.7.
  gnu: Add rust-interprocess-1.
  gnu: Add rust-rustbus-derive-0.5.
  gnu: Add rust-rustbus-0.19.
  gnu: Add rust-windows-x86-64-msvc-0.34.
  gnu: Add rust-windows-x86-64-gnu-0.34.
  gnu: Add rust-windows-tokens-0.34.
  gnu: Add rust-windows-interface-0.34.
  gnu: Add rust-windows-implement-0.34.
  gnu: Add rust-windows-i686-msvc-0.34.
  gnu: Add rust-windows-i686-gnu-0.34.
  gnu: Add rust-windows-aarch64-msvc-0.34.
  gnu: Add rust-windows-0.34.
  gnu: Add rust-win-sys-0.3.
  gnu: Add rust-shared-memory-extended-0.13.
  gnu: Add rust-sysinfo-0.29.
  gnu: Add rust-cairo-sys-rs-0.18.
  gnu: Add rust-cairo-rs-0.18.
  gnu: Add rust-gbm-sys-0.2.
  gnu: Add rust-gbm-0.12.
  gnu: Add rust-gdk4-sys-0.7.
  gnu: Add rust-gdk4-0.7.
  gnu: Add rust-gsk4-sys-0.7.
  gnu: Add rust-gsk4-0.7.
  gnu: Add rust-gtk4-sys-0.7.
  gnu: Add rust-gtk4-macros-0.7.
  gnu: Add rust-gtk4-0.7.
  gnu: Add rust-libadwaita-sys-0.5.
  gnu: Add rust-libadwaita-0.5.
  gnu: Add mission-center.

 gnu/packages/crates-graphics.scm              |  419 ++++-
 gnu/packages/crates-gtk.scm                   |  556 ++++++-
 gnu/packages/crates-io.scm                    | 1390 +++++++++++++++--
 gnu/packages/gnome.scm                        |   19 +
 .../patches/mission-center-gatherer.patch     |   21 +
 gnu/packages/rust-apps.scm                    |  173 ++
 6 files changed, 2373 insertions(+), 205 deletions(-)
 create mode 100644 gnu/packages/patches/mission-center-gatherer.patch

base-commit: e21f0cb7b7a87992004193cd56638ad961fe5928
-- 
2.41.0