On Sat, Feb 13, 2016 at 05:49:35PM -0500, Leo Famulari wrote: > On Sat, Feb 13, 2016 at 02:37:05PM -0800, Al McElrath wrote: > > > > I tracked this down a bit further. There is nothing wrong with Pandora's > > cert. If I specify in pianobar's config file to use: > > > > ca_bundle = /home/al/.guix-profile/etc/ssl/certs/ca-certificates.crt > > Can you share your config, having replaced any personal info with dummy > content?
Never mind! I made a config with just the ca_bundle line pointing to my Debian-provided certificates, and I got the expected error about the login failing due to bad credentials. In my opinion, if the software provided by the package fails due to lack of configuration, that's okay. > > > > > It works. Note if I 'env | grep SSL' I get: > > > > SSL_CERT_DIR=/home/al/.guix-profile/etc/ssl/certs > > SSL_CERT_FILE=/home/al/.guix-profile/etc/ssl/certs/ca-certificates.crt > > > > I was under the impression libcurl (which pianobar uses) would honor > > these variables, but it appears it does not. Or there's something wrong > > with my guix setup which is running on Arch. > > > > I can patch pianobar to use SSL_CERT_FILE by default, but it seems like > > there is a larger issue. > > > > > > Leo Famulari <l...@famulari.name> writes: > > > > > On Thu, Feb 11, 2016 at 10:00:17PM -0800, Al McElrath wrote: > > >> > > >> Thanks for testing and pointing this out. Real radio stations require > > >> too much manual effort! That said... > > >> > > >> You should be getting a different error without a login (pandora.com > > >> requires a login): "(i) Login... Error: Wrong email address or > > >> password." There is an outstanding issue with pianobar regarding > > >> Pandora's certificate described here: > > >> > > >> https://github.com/PromyLOPh/pianobar/issues/560 > > >> > > >> There is a config file option "ca_file" which I use with a pem file I > > >> downloaded. There is also a "tls_fingerprint" option described in the > > >> bug commentary. This broke recently when Pandora changed their > > >> certificate. It's not specifically a Guix bug. > > > > > > To clarify, is my error the result of a configuration problem and a > > > missing .pem file? > > > > > > If so, is that .pem file something we should distribute with our > > > package? > > > > > >> > > >> I realize this means pianobar simply doesn't work out of the box. I'm > > >> open to suggestions on how to make this better. > > >> > > >> > > >> Leo Famulari <l...@famulari.name> writes: > > >> > > >> > On Thu, Feb 11, 2016 at 01:36:13PM -0800, Al McElrath wrote: > > >> >> > > >> >> Revised patch is attached. I updated/expanded the description and > > >> >> fixed > > >> >> the license. Thanks! > > >> >> > > >> > > > >> >> From 91d5c428428eed605c981a39022fe90e6f98be6d Mon Sep 17 00:00:00 2001 > > >> >> From: Al McElrath <he...@yrns.org> > > >> >> Date: Fri, 11 Dec 2015 21:22:33 -0800 > > >> >> Subject: [PATCH] gnu: Add pianobar. > > >> >> > > >> >> * gnu/packages/music.scm (pianobar): New variable. > > >> > > > >> > One nice thing about "real" radio stations is that you don't need an > > >> > account to listen to them ;) Anyways, I tested it as far as I could: > > >> > > > >> > $ pianobar > > >> > Welcome to pianobar (2015.11.22)! Press ? for a list of commands. > > >> > [?] Email: > > >> > [?] Password: > > >> > (i) Login... Network error: Peer certificate cannot be authenticated > > >> > with given CA certificates > > >> > > > >> > That error seems to describe a problem unrelated to me not having an > > >> > account. Can you see what happens when you leave the Email and Password > > >> > fields blank? Of course, the message might be wrong, and it works if > > >> > you > > >> > have an account. > > >> > > > >> > If so, then I think it's okay (but buggy). If not, then it must be > > >> > finding the certificate store in the environment and we should figure > > >> > out how to provide it reliably. > > >> > > > >> >> --- > > >> >> gnu/packages/music.scm | 38 ++++++++++++++++++++++++++++++++++++++ > > >> >> 1 file changed, 38 insertions(+) > > >> >> > > >> >> diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm > > >> >> index a60ba4b..1382b0a 100644 > > >> >> --- a/gnu/packages/music.scm > > >> >> +++ b/gnu/packages/music.scm > > >> >> @@ -2,6 +2,7 @@ > > >> >> ;;; Copyright © 2014 Eric Bavier <bav...@member.fsf.org> > > >> >> ;;; Copyright © 2015, 2016 Ricardo Wurmus <rek...@elephly.net> > > >> >> ;;; Copyright © 2015 Paul van der Walt <p...@denknerd.org> > > >> >> +;;; Copyright © 2016 Al McElrath <he...@yrns.org> > > >> >> ;;; > > >> >> ;;; This file is part of GNU Guix. > > >> >> ;;; > > >> >> @@ -39,6 +40,7 @@ > > >> >> #:use-module (gnu packages code) > > >> >> #:use-module (gnu packages check) > > >> >> #:use-module (gnu packages compression) > > >> >> + #:use-module (gnu packages curl) > > >> >> #:use-module (gnu packages docbook) > > >> >> #:use-module (gnu packages doxygen) > > >> >> #:use-module (gnu packages flex) > > >> >> @@ -46,6 +48,7 @@ > > >> >> #:use-module (gnu packages fonts) > > >> >> #:use-module (gnu packages fontutils) > > >> >> #:use-module (gnu packages gcc) > > >> >> + #:use-module (gnu packages gnupg) > > >> >> #:use-module (gnu packages gettext) > > >> >> #:use-module (gnu packages ghostscript) > > >> >> #:use-module (gnu packages gl) > > >> >> @@ -1078,3 +1081,38 @@ computer's keyboard.") > > >> >> JACK for audio and ALSA sequencer for MIDI as multimedia > > >> >> infrastructures and > > >> >> follows a traditional multi-track tape recorder control paradigm.") > > >> >> (license license:gpl2+))) > > >> >> + > > >> >> +(define-public pianobar > > >> >> + (package > > >> >> + (name "pianobar") > > >> >> + (version "2015.11.22") > > >> >> + (source (origin > > >> >> + (method url-fetch) > > >> >> + (uri (string-append "https://github.com/PromyLOPh/" > > >> >> + name "/archive/" version > > >> >> ".tar.gz")) > > >> >> + (file-name (string-append name "-" version ".tar.gz")) > > >> >> + (sha256 > > >> >> + (base32 > > >> >> + > > >> >> "022df19bhxqvkhy0qy21xahba5s1fm17b13y0p9p9dnf2yl44wfv")))) > > >> >> + (build-system gnu-build-system) > > >> >> + (arguments > > >> >> + `(#:tests? #f ; no tests > > >> >> + #:make-flags (list "CC=gcc" "CFLAGS=-std=c99" > > >> >> + (string-append "PREFIX=" %output)) > > >> >> + #:phases (modify-phases %standard-phases > > >> >> + (delete 'configure)))) > > >> >> + (inputs > > >> >> + `(("ao" ,ao) > > >> >> + ("curl" ,curl) > > >> >> + ("libgcrypt" ,libgcrypt) > > >> >> + ("json-c" ,json-c) > > >> >> + ("ffmpeg" ,ffmpeg))) > > >> >> + (native-inputs > > >> >> + `(("pkg-config" ,pkg-config))) > > >> >> + (home-page "http://6xq.net/projects/pianobar/") > > >> >> + (synopsis "Console-based pandora.com player") > > >> >> + (description "pianobar is a console-based music player for the > > >> >> +personalized online radio pandora.com. It has configurable keys for > > >> >> playing > > >> >> +and managing stations, can be controlled remotely via fifo, and can > > >> >> run > > >> >> +event-based scripts for scrobbling, notifications, etc.") > > >> >> + (license license:expat))) > > >> >> -- > > >> >> 2.5.0 > > >> >> > > >> > > > >> >> > > >> >> Ricardo Wurmus <rek...@elephly.net> writes: > > >> >> > > >> >> > Al McElrath <he...@yrns.org> writes: > > >> >> > > > >> >> >> Another new package. Feedback appreciated. > > >> >> > > > >> >> > Thank you for the patch! > > >> >> > > > >> >> >> This is free software, but it > > >> >> >> only works with a non-free music service, Pandora. Is that > > >> >> >> acceptable? > > >> >> > > > >> >> > The concept of “non-free” doesn’t directly apply to services. See > > >> >> > “Untangling the SaaSS Issue from the Proprietary Software Issue” > > >> >> > here: > > >> >> > > > >> >> > > > >> >> > https://www.gnu.org/philosophy/who-does-that-server-really-serve.en.html > > >> >> > > > >> >> > and also this: > > >> >> > > > >> >> > > > >> >> > https://www.gnu.org/philosophy/network-services-arent-free-or-nonfree.html > > >> >> > > > >> >> > I don’t know anything about Pandora (I do know my mythology, > > >> >> > though), so > > >> >> > I’m not in a position to anticipate and answer questions about it. > > >> >> > In > > >> >> > general I think that if “pianobar” itself is free software (which > > >> >> > you > > >> >> > say it is) and you do not need to use non-free software to set it > > >> >> > up in > > >> >> > the first place then it is probably acceptable. > > >> >> > > > >> >> > Now, on to a review of the patch! > > >> >> > > > >> >> >> From 4f477999635b4a16f19ef0833727abcf899dbb69 Mon Sep 17 00:00:00 > > >> >> >> 2001 > > >> >> >> From: Al McElrath <he...@yrns.org> > > >> >> >> Date: Fri, 11 Dec 2015 21:22:33 -0800 > > >> >> >> Subject: [PATCH] gnu: Add pianobar. > > >> >> > > > >> >> >> * gnu/packages/music.scm (pianobar): New variable. > > >> >> >> --- > > >> >> >> gnu/packages/music.scm | 36 ++++++++++++++++++++++++++++++++++++ > > >> >> >> 1 file changed, 36 insertions(+) > > >> >> > > > >> >> >> diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm > > >> >> >> index a60ba4b..c5a6dc5 100644 > > >> >> >> --- a/gnu/packages/music.scm > > >> >> >> +++ b/gnu/packages/music.scm > > >> >> >> @@ -2,6 +2,7 @@ > > >> >> >> ;;; Copyright © 2014 Eric Bavier <bav...@member.fsf.org> > > >> >> >> ;;; Copyright © 2015, 2016 Ricardo Wurmus <rek...@elephly.net> > > >> >> >> ;;; Copyright © 2015 Paul van der Walt <p...@denknerd.org> > > >> >> >> +;;; Copyright © 2016 Al McElrath <he...@yrns.org> > > >> >> >> ;;; > > >> >> >> ;;; This file is part of GNU Guix. > > >> >> >> ;;; > > >> >> >> @@ -39,6 +40,7 @@ > > >> >> >> #:use-module (gnu packages code) > > >> >> >> #:use-module (gnu packages check) > > >> >> >> #:use-module (gnu packages compression) > > >> >> >> + #:use-module (gnu packages curl) > > >> >> >> #:use-module (gnu packages docbook) > > >> >> >> #:use-module (gnu packages doxygen) > > >> >> >> #:use-module (gnu packages flex) > > >> >> >> @@ -46,6 +48,7 @@ > > >> >> >> #:use-module (gnu packages fonts) > > >> >> >> #:use-module (gnu packages fontutils) > > >> >> >> #:use-module (gnu packages gcc) > > >> >> >> + #:use-module (gnu packages gnupg) > > >> >> >> #:use-module (gnu packages gettext) > > >> >> >> #:use-module (gnu packages ghostscript) > > >> >> >> #:use-module (gnu packages gl) > > >> >> >> @@ -1078,3 +1081,36 @@ computer's keyboard.") > > >> >> >> JACK for audio and ALSA sequencer for MIDI as multimedia > > >> >> >> infrastructures and > > >> >> >> follows a traditional multi-track tape recorder control > > >> >> >> paradigm.") > > >> >> >> (license license:gpl2+))) > > >> >> >> + > > >> >> >> +(define-public pianobar > > >> >> >> + (package > > >> >> >> + (name "pianobar") > > >> >> >> + (version "2015.11.22") > > >> >> >> + (source (origin > > >> >> >> + (method url-fetch) > > >> >> >> + (uri (string-append "https://github.com/PromyLOPh/" > > >> >> >> + name "/archive/" version > > >> >> >> ".tar.gz")) > > >> >> >> + (file-name (string-append name "-" version > > >> >> >> ".tar.gz")) > > >> >> >> + (sha256 > > >> >> >> + (base32 > > >> >> >> + > > >> >> >> "022df19bhxqvkhy0qy21xahba5s1fm17b13y0p9p9dnf2yl44wfv")))) > > >> >> >> + (build-system gnu-build-system) > > >> >> >> + (arguments > > >> >> >> + `(#:tests? #f ; no tests > > >> >> >> + #:make-flags (list "CC=gcc" "CFLAGS=-std=c99" > > >> >> >> + (string-append "PREFIX=" %output)) > > >> >> >> + #:phases (modify-phases %standard-phases > > >> >> >> + (delete 'configure)))) > > >> >> >> + (inputs > > >> >> >> + `(("ao" ,ao) > > >> >> >> + ("curl" ,curl) > > >> >> >> + ("libgcrypt" ,libgcrypt) > > >> >> >> + ("json-c" ,json-c) > > >> >> >> + ("ffmpeg" ,ffmpeg))) > > >> >> >> + (native-inputs > > >> >> >> + `(("pkg-config" ,pkg-config))) > > >> >> >> + (home-page "http://6xq.net/projects/pianobar/") > > >> >> >> + (synopsis "Console-based pandora.com player") > > >> >> >> + (description "pianobar is a free/open-source, console-based > > >> >> >> client for the > > >> >> >> +personalized online radio Pandora.") > > >> >> > > > >> >> > Everything in Guix qualifies as free software, so we do not need to > > >> >> > explicitly mention that it is free software. Maybe the description > > >> >> > is a > > >> >> > little bit short — could you possibly incorporate parts of the > > >> >> > feature > > >> >> > list? > > >> >> > > > >> >> >> + (license license:x11))) > > >> >> > > > >> >> > I think it’s the Expat license, not X11. I only compared these > > >> >> > texts: > > >> >> > > > >> >> > https://github.com/PromyLOPh/pianobar/blob/master/COPYING > > >> >> > http://directory.fsf.org/wiki/License:Expat > > >> >> > http://directory.fsf.org/wiki/License:X11 > > >> >> > > > >> >> > Thanks again and welcome! > > >> >> > > > >> >> > ~~ Ricardo > > >> >> > > > >> >> > > > >> >> > > >> >> > > >> > > > >> > > >> > > > > > > > -- >