Github messages for voidlinux
 help / color / mirror / Atom feed
From: ericonr <ericonr@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] spotifyd: add build_options
Date: Sat, 02 May 2020 15:09:35 +0200	[thread overview]
Message-ID: <20200502130935.dydimFHEL0sLVpTIKSu8tkq7uhdDACALXvfC3aMy6Tk@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-21446@inbox.vuxu.org>

[-- Attachment #1: Type: text/plain, Size: 1461 bytes --]

There is an updated pull request by ericonr against master on the void-packages repository

https://github.com/ericonr/void-packages spotifyd-options
https://github.com/void-linux/void-packages/pull/21446

spotifyd: add build_options
Instead of manually altering the Cargo.toml file, we use the feature
flags available in cargo. There are three build options now:

- alsa: ALSA backend
- pulseaudio: Pulseaudio backend
- dbus: D-Bus functionality, both mpris and keyring

This also allows for a greater granularity when specifying dependencies.
All build options are selected as default, both to keep the package the
same as it was before (alsa and pulseaudio) and because the dependency
needed by the dbus option (dbus-libs) is required by pulseaudio already.

This commit allows builders to easily disable D-Bus functionality or
either audio backend without altering the template.

--

Removing the dbus option as a default one would be ok too.

I'd also like to leave the template as an idea for how to start implementing the feature flags straight into the cargo build style.

@abenson can you review this one, please?

Also, the aarch64-musl error still happens, unfortunately, but is supposed to have been fixed in a next version of the `nix` crate. So perhaps when there's a next release we can re-enable the package for that arch as well.

A patch file from https://github.com/void-linux/void-packages/pull/21446.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-spotifyd-options-21446.patch --]
[-- Type: text/x-diff, Size: 2582 bytes --]

From 2709af4a611664fd63c9b6a81959a909ba82ace7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Tue, 28 Apr 2020 19:59:08 -0300
Subject: [PATCH] spotifyd: add build_options

Instead of manually altering the Cargo.toml file, we use the feature
flags available in cargo. There are three build options now:

- alsa: ALSA backend
- pulseaudio: Pulseaudio backend
- dbus: D-Bus functionality, both mpris and keyring

This also allows for a greater granularity when specifying dependencies.
All build options are selected as default, both to keep the package the
same as it was before (alsa and pulseaudio) and because the dependency
needed by the dbus option (dbus-libs) is required by pulseaudio already.

This commit allows builders to easily disable D-Bus functionality or
either audio backend without altering the template.
---
 srcpkgs/spotifyd/template | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/spotifyd/template b/srcpkgs/spotifyd/template
index d6eab3b7bac..7a7ddc789e8 100644
--- a/srcpkgs/spotifyd/template
+++ b/srcpkgs/spotifyd/template
@@ -1,10 +1,12 @@
 # Template file for 'spotifyd'
 pkgname=spotifyd
 version=0.2.24
-revision=1
+revision=2
 build_style=cargo
+configure_args="--no-default-features"
 hostmakedepends="pkg-config"
-makedepends="alsa-lib-devel libressl-devel pulseaudio-devel dbus-devel"
+makedepends="libressl-devel $(vopt_if alsa alsa-lib-devel)
+$(vopt_if pulseaudio pulseaudio-devel) $(vopt_if dbus dbus-devel)"
 short_desc="Spotify client running as a UNIX daemon"
 maintainer="Andrew Benson <abenson+void@gmail.com>"
 license="GPL-3.0-or-later"
@@ -12,14 +14,21 @@ homepage="https://github.com/Spotifyd/spotifyd"
 distfiles="${homepage}/archive/v${version}.tar.gz"
 checksum=d3763f4647217a8f98ee938b50e141d67a5f3d33e9378894fde2a92c9845ef80
 
+build_options="alsa pulseaudio dbus"
+build_options_default="alsa pulseaudio dbus"
+
+_features="$(vopt_if alsa 'alsa_backend,')"
+_features+="$(vopt_if pulseaudio 'pulseaudio_backend,')"
+_features+="$(vopt_if dbus 'dbus_mpris,dbus_keyring')"
+
+if [ "$_features" ]; then
+	echo $_features
+	configure_args="$configure_args --features $_features"
+fi
+
 case "$XBPS_TARGET_MACHINE" in
 	aarch64-musl) broken="https://travis-ci.org/void-linux/void-packages/jobs/636076091" ;;
 esac
 
 export CFLAGS_${RUST_BUILD//-/_}="${CFLAGS_host}"
 export CC_${RUST_BUILD//-/_}="${BUILD_CC}"
-
-pre_configure() {
-	vsed -e 's/default = \[/& "dbus", "dbus-tokio", "pulseaudio_backend", "keyring", /' \
-	 -i Cargo.toml
-}

  parent reply	other threads:[~2020-05-02 13:09 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-21446@inbox.vuxu.org>
2020-04-29 21:37 ` jnbr
2020-04-30 23:26 ` [PR PATCH] [Updated] " ericonr
2020-04-30 23:28 ` ericonr
2020-05-01  1:07 ` [PR PATCH] [Updated] " ericonr
2020-05-01 22:19 ` ericonr
2020-05-02 13:09 ` ericonr [this message]
2020-05-02 13:12 ` ericonr
2020-05-05 20:13 ` [PR PATCH] [Merged]: " abenson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200502130935.dydimFHEL0sLVpTIKSu8tkq7uhdDACALXvfC3aMy6Tk@z \
    --to=ericonr@users.noreply.github.com \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).