guix-patches
[Top][All Lists]
Advanced

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

bug#44436: [PATCH] Add Cantata


From: Leo Famulari
Subject: bug#44436: [PATCH] Add Cantata
Date: Wed, 4 Nov 2020 14:55:16 -0500

On Wed, Nov 04, 2020 at 11:24:01AM +0100, Simon Streit wrote:
> +(define-public cantata

Thanks! I use MPD every day so I'm always glad to have another client
available. Pushed as 79e9168aa6ebe3eee83e852ba96f46dda8ec0490 with the
changes described below...

First, I tried building it, but that failed for two reasons:

> +    (build-system cmake-build-system)

The build system was not available — I needed to add '#:use-module (guix
build-system cmake)' to mpd.scm's module imports.

> +    (license gpl3+)))

The license needs to be "prefixed" like the other licenses in this file.
That is: '(license license:gpl3+)'. If you look in mpd.scm's module
imports, you'll see that we import the license module with a "prefix":

#:use-module ((guix licenses) #:prefix license:)

This is to work around the fact there are both packages and licenses
named 'zlib' and 'expat', and the namespaces would otherwise collide
when importing the license module and either of those packages.

After that, I looked more closely at the inputs and native-inputs. In
general, native-inputs are things that are used *only* while building
the package. There were some unused inputs, and some were
miscategorized. I fixed that by 1) reading the output of CMake's
'configure' phase, 2) intuition and 3) checking which inputs the built
Cantata refers to:

------
$ guix gc --references $(./pre-inst-env guix build cantata)
/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc-7.5.0-lib
/gnu/store/3bp88g40ay0zca3azdk7wf4nyrwrdjjx-qtsvg-5.14.2
/gnu/store/9z2412yyy95bcq7brfhdjlh8im2lxkpc-ffmpeg-4.3.1
/gnu/store/af00wnjldgbbyzb17bjkkw2mn0b1gr4d-qtbase-5.14.2
/gnu/store/b12szz8wy7wxvfv2jfj5ygqkgqar03ih-taglib-1.12-beta-1
/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31
/gnu/store/gklxpq6zmalxspwvj9md140skfpayrah-libmtp-1.1.18
/gnu/store/irsg92y6hnz1agsqvl6mwqxz32lkmi8v-cantata-2.4.2
/gnu/store/n1azzzjsq99n05r5xl0hcljvpvw5arxn-qtmultimedia-5.14.2
/gnu/store/ngv0dqjz88cn5553ys8w19ydwc55lvky-mpg123-1.26.3
/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16
/gnu/store/rykm237xkmq7rl1p0nwass01p090p88x-zlib-1.2.11
/gnu/store/v52179lrpvl6cdqr7li45zd8zafc6156-libebur128-1.2.4
/gnu/store/z1ngxz9rc1vqpbwvvlm8l37fa0q6ga5x-eudev-3.2.9
------

Anything not listed there is either used only while building, not
used at all, or the relevant software is copied into Cantata.

Note that libcdio-paranoia is not listed — it is registered by the CMake
configure phase, so either something is broken in the build scripts or
it has been copied into Cantata. I left it in, just in case it works...
somebody with an optical drive will find out.

Also, libmusicbrainz is not listed. If libcdio-paranoia is not included,
CMake doesn't complain about the missing libmusicbrainz. No matter what,
CMake fails to find libmusicbrainz, so I removed it from Cantata's
inputs.

It's not unusual for older CMake projects that are no longer being
actively developed to have this kind of inconsistency with their build
scripts.  Follow-up patches that address this are quite welcome! Are you
able to test those features?

Finally, I made some stylistic or grammatical changes to the synopsis,
description, and source URI, added a comment about why we skip the
tests, and pushed. Thanks again!





reply via email to

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