This first patch adds the Granite library in gnu/packages/pantheon.scm.It begins a patch series (to follow, 6 patches in total) that containssome core pieces of the Pantheon desktop environment and a fewapplications, laying the groundwork for further Pantheon packaging.
From fdfe0c404b41b543eff94bcf96056ffb2f26c6f5 Mon Sep 17 00:00:00 2001From: Ryan Prior <email@example.com>Date: Fri, 15 May 2020 14:24:23 -0500Subject: [PATCH 1/6] gnu: Add granite. * gnu/packages: (pantheon.scm): New File.* gnu/local.mk: Add gnu/packages/pantheon.scm.* gnu/packages/pantheon.scm (granite): New Variable.--- gnu/local.mk | 1 + gnu/packages/pantheon.scm | 61 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 gnu/packages/pantheon.scm
(name . Ryan Prior via Guix-patches via)(address . firstname.lastname@example.org)
Hi, please do not invoke programs like glib-compile-schemas update-desktop-database update-icon-cache in individual packages. The reason is that we are trying to keep packages modular. If you add an icon cache with some fixed name that will cache just the iconsof that package in two packages, installing those into the same profile willcreate a profile merge conflict. We have profile hooks that will do glib-compile-schemas,update-desktop-database and update-icon-cache anyway (in guix/profiles.scm),so all that is required to do is to disable the invocation of theseprograms in your package.
Sorry about the all-native-inputs appstream package, I stopped payingattention to it at some point. Here's a new appstream patch that bumps theversion and uses actual inputs. Ryan Ryan Prior (1): gnu: Add appstream. gnu/packages/freedesktop.scm | 59 ++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) -- 2.26.2
Here are updated patches for Sideload, Appstream, and Pantheon Terminal. The sideload package is updated to the latest release. (1.1.1) Sideload & pantheon-terminal packages are modified to disable compilingschemas and updating desktop database as part of the install process. These should all apply cleanly on master now. Let me know if there's stillfurther concerns! Ryan Prior (3): gnu: Add sideload. gnu: Add appstream. gnu: Add pantheon-terminal. gnu/packages/freedesktop.scm | 59 +++++++++++++++++++ gnu/packages/pantheon.scm | 110 +++++++++++++++++++++++++++++++++++ 2 files changed, 169 insertions(+) -- 2.26.2
Toggle quote (8 lines)> + ("gettext" ,gettext-minimal)> + ("glib:bin" ,glib "bin") ; for glib-compile-resources> + ("gobject-introspection" ,gobject-introspection)> + ("pkg-config" ,pkg-config)> + ("vala" ,vala)))> + (home-page "https://www.freedesktop.org/wiki/Distributions/AppStream/")> + (synopsis "Provides the foundation to build software-center applications")
I think the GitHub tagline is better: "Tools and libraries to work withAppStream metadata".
Toggle quote (4 lines)> + (description "AppStream is a cross-distribution effort for enhancing the way> +we interact with the software repositories provided by GNU/Linux distributions> +by standardizing software component metadata.")
Who is 'we' in this context? Maybe we can use the README description: "AppStream is a collaborative effort for making machine-readablesoftware metadata available to programs that need it." Do you know if Guix is supported? :-)
(name . Ryan Prior)(address . email@example.com)(address . firstname.lastname@example.org)
Hi Ryan, (+ debbugs, please keep it in CC) Ryan Prior <email@example.com> writes:
Toggle quote (9 lines)> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐> On Monday, June 22, 2020 7:16 PM, Marius Bakke <firstname.lastname@example.org> wrote:>>>> That's an unorthodox workaround :-) does the build system ignore it when>> DESTDIR is set, or do they just end up in a different location?>> This is a common pattern in build systems for Pantheon software, one you'll see come up again and again as I add more Pantheon packages. The post-install script runs extra steps unless the DESTDIR env variable is set. For example: https://github.com/elementary/sideload/blob/master/meson/post_install.py#L9
OK. Weird, but works. :-)
Toggle quote (4 lines)>> Is the "glib:bin" input still needed?>> Yes, for glib-compile-resources, which is invoked here as it is with many other GNOME packages in Guix.
Toggle quote (9 lines)>> > - (propagated-inputs>> > - `(("glib-networking" ,glib-networking)))>> >>> >>>>> Can you add a comment about why this needs to be propagated?>> I didn't take good notes, it was basically "it didn't work without this." And now that I try it again, it seems what I really need to propagate is gpgme and not glib-networking. I will add a note. (I want to get good at patching packages to remove the need for propagation but I don't know where to begin with this one.)
At least for GnuPG, substituting all references to 'gpg' with(string-append gnupg "/bin/gpg") should work. I guess something similarwill work for GPGME.
Toggle quote (10 lines)>>>> > - (native-inputs>> > - `(("cmake" ,cmake)>> >>> >>>>> Use 'cmake-minimal' if CMake is required (is it?).>> Nope was never needed, removed. (I think I was adding cmake to a lot of Meson packages for a while because they complain about not having it in their build output, but it's really just a warning.)
Yes, learning to ignore useless warnings is an important packagingskill. :-)
Toggle quote (7 lines)>> > - (license license:gpl3)))>>>> This should be 'gpl3+' because no source files say "GPL 3 only" (in fact>> they explicitly mention GPL 3 or any later version).>> Fixed & updated patch follows.
Applied! I moved 'glib', 'libgee', and 'libxml2' to inputs because theywere referenced by the io.elementary.sideload binary. Let me know ifyou think this was wrong. Will you submit updated patches for the other two in this series too? Thanks!