Subject: Re: bug#26956: [PATCH] Add MuseScore
From: [email-masked] (Ludovic Courtès)
To: Nicolas Goaziou <[email-masked]>
Cc: [email-masked]
Date: Tue, 23 May 2017 13:55:25 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

Nicolas Goaziou <[email-masked]> skribis:

>> I started doing that and then noticed that removing all of thirdparty/
>> won’t cut it.  Yet there’s quite a lot of stuff in that directory, so it
>> would be good to make sure we use as little as possible of this bundled
>> code:
>>
>> $ ls /tmp/guix-build-musescore-2.1.0.drv-0/MuseScore-2.1.0/thirdparty/
>> beatroot  diff	intervaltree  kQOAuth  ofqf  portmidi  qzip  rtf2html  singleapp  xmlstream
>>
>> For example, we could add portmidi as an input.
>>
>> Could you take a look?
>
> Fair enough.
>
> The attached update includes the following changes:
>
>   - un-bundle OpenSSL. Since it doesn't prevent compilation, do not even
>     include ours, much like what Debian does.
>
>   - remove unused portmidi from "thirdparty", per the following snippet
>     in CMakeLists.txt
>
>       # Disable components not supported on Linux/BSD
>       if (NOT APPLE AND NOT MINGW)
>              set(NIX_NOT_AVAIL "Not available on Linux/BSD")
>              option(BUILD_PORTMIDI "PortMidi disabled on Linux. (It uses ALSA but it's better to use ALSA directly)" OFF)
>       endif (NOT APPLE AND NOT MINGW)
>
>   - un-bundle freetype, remove it from the "thirdparty" directory.
>
>   - add "gtk+-bin" as inuput so that we can run `gtk-update-icon-cache'
>     (still not sure this is really needed).
>
> WDYT?

Awesome.

> From cf05d7aa5a2030ef6cbe073f44f69c65492870b7 Mon Sep 17 00:00:00 2001
> From: Nicolas Goaziou <[email-masked]>
> Date: Tue, 16 May 2017 17:55:29 +0200
> Subject: [PATCH] gnu: Add MuseScore.
>
> * gnu/packages/music.scm (musescore): New variable.

Pushed!

> +              (snippet
> +               ;; Un-bundle OpenSSL and remove unused libraries.
> +               '(begin
> +                  (substitute* "thirdparty/kQOAuth/CMakeLists.txt"
> +                    (("-I \\$\\{PROJECT_SOURCE_DIR\\}/thirdparty/openssl/include ")
> +                     ""))
> +                  (substitute* "thirdparty/kQOAuth/kqoauthutils.cpp"
> +                    (("#include <openssl/.*") ""))
> +                  (for-each delete-file-recursively
> +                            '("thirdparty/freetype"
> +                              "thirdparty/openssl"
> +                              "thirdparty/portmidi"))

Note that there’s still bundled software under thirdparty/ (those I
listed above), but apparently we have no existing packages for these.
So let’s assume it’s OK to have them for now, but we may have to revisit
that and actually remove them later on.

Thank you!

Ludo’.