Subject: [bug#41293] [PATCH 1/3] gnu: Add sideload.

From: Marius Bakke <[email-masked]>
Date: Wed, 24 Jun 2020 21:39:16 +0200

Hi Ryan,

(+ debbugs, please keep it in CC)

Ryan Prior <[email-masked]> writes:

> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> On Monday, June 22, 2020 7:16 PM, Marius Bakke <[email-masked]> 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.  :-)

>> 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.

Right.

>> > -   (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 similar
will work for GPGME.

>>
>> > -   (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 packaging
skill.  :-)

>> > -   (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 they
were referenced by the io.elementary.sideload binary.  Let me know if
you think this was wrong.

Will you submit updated patches for the other two in this series too?

Thanks!