Update to snapshot 2012.06.10, chasing changes in pandora's api.

This commit is contained in:
dcoppa 2012-06-12 14:45:06 +00:00
parent 16be6f2293
commit 94978fd54b
9 changed files with 24 additions and 217 deletions

View File

@ -1,21 +1,19 @@
# $OpenBSD: Makefile,v 1.41 2012/06/08 11:01:20 dcoppa Exp $
# $OpenBSD: Makefile,v 1.42 2012/06/12 14:45:06 dcoppa Exp $
SHARED_ONLY = Yes
COMMENT = console client for pandora
DISTNAME = pianobar-2012.05.06
REVISION = 4
DISTNAME = pianobar-2012.06.10
EXTRACT_SUFX = .tar.bz2
CATEGORIES = audio
MAINTAINER = David Coppa <dcoppa@openbsd.org>
HOMEPAGE = http://6xq.net/projects/pianobar/
MASTER_SITES = ${HOMEPAGE} \
http://spacehopper.org/mirrors/
MASTER_SITES = http://spacehopper.org/mirrors/
SHARED_LIBS = piano 1.3 # 0.0.0
SHARED_LIBS = piano 2.0 # 0.0.0
# MIT
PERMIT_PACKAGE_CDROM = Yes
@ -38,13 +36,14 @@ CFLAGS += -DNDEBUG
MAKE_FLAGS = DYNLINK=1 \
CC=${CC} \
LIBpiano_VERSION="${LIBpiano_VERSION}" \
MANDIR="${PREFIX}/man"
LIBGCRYPT_CFLAGS="-I${LOCALBASE}/include" \
LIBpiano_VERSION="${LIBpiano_VERSION}"
FAKE_FLAGS = PREFIX="${PREFIX}" \
INSTALL_DATA="${INSTALL_DATA}" \
INSTALL_MAN="${INSTALL_MAN}" \
INSTALL_PROGRAM="${INSTALL_PROGRAM}"
INSTALL_PROGRAM="${INSTALL_PROGRAM}" \
MANDIR="${PREFIX}/man"
USE_GMAKE = Yes

View File

@ -1,5 +1,5 @@
MD5 (pianobar-2012.05.06.tar.bz2) = Eqlm7O4LHNO7n4/pZfOeAw==
RMD160 (pianobar-2012.05.06.tar.bz2) = Ua22VuoBPOGvdJ29IW0h1k535F8=
SHA1 (pianobar-2012.05.06.tar.bz2) = UVJLkfmz5/aV2UKKTfJ4666vYMo=
SHA256 (pianobar-2012.05.06.tar.bz2) = sUOILKUDA9Vg9JVn0aUIyktIII2064qmfzafyq5wjXo=
SIZE (pianobar-2012.05.06.tar.bz2) = 47052
MD5 (pianobar-2012.06.10.tar.bz2) = 5dctrCoB81Bmhx2e/90LSA==
RMD160 (pianobar-2012.06.10.tar.bz2) = sZw5FMmuVz54JgxxvJVJL4FV0oE=
SHA1 (pianobar-2012.06.10.tar.bz2) = RQp2zaRbzIeI9/C5tFL9eKzNPeM=
SHA256 (pianobar-2012.06.10.tar.bz2) = Ja3YKgebngFj/uvrAWPunMK2LpeZlwCb0kzeeZsWfto=
SIZE (pianobar-2012.06.10.tar.bz2) = 47213

View File

@ -1,16 +1,6 @@
$OpenBSD: patch-Makefile,v 1.17 2012/05/28 09:47:00 dcoppa Exp $
Use pkg-config for libmad and gnutls
(upstream git commit eee4424677964ddc5b0f01d120db71f160a7c9e1)
Correct LDFLAGS for pianobar/libpiano linking
(upstream git commit c9aff4f4ceddc70b8b98ca8d5d248eac6be2619f)
Add libgcrypt CFLAGS to %.o target
(upstream git commit db4c66b2956a4da2745f16131fe573962c3fcbfb)
--- Makefile.orig Sun May 6 16:33:54 2012
+++ Makefile Mon May 28 11:01:24 2012
$OpenBSD: patch-Makefile,v 1.18 2012/06/12 14:45:06 dcoppa Exp $
--- Makefile.orig Tue Jun 12 14:26:20 2012
+++ Makefile Tue Jun 12 14:50:08 2012
@@ -6,15 +6,8 @@ LIBDIR:=${PREFIX}/lib
INCDIR:=${PREFIX}/include
MANDIR:=${PREFIX}/share/man
@ -28,34 +18,16 @@ Add libgcrypt CFLAGS to %.o target
PIANOBAR_DIR=src
PIANOBAR_SRC=\
${PIANOBAR_DIR}/main.c \
@@ -73,11 +66,12 @@ ifeq (${DISABLE_MAD}, 1)
LIBMAD_LDFLAGS=
else
LIBMAD_CFLAGS=-DENABLE_MAD
- LIBMAD_LDFLAGS=-lmad
+ LIBMAD_CFLAGS+=$(shell pkg-config --cflags mad)
+ LIBMAD_LDFLAGS=$(shell pkg-config --libs mad)
endif
-LIBGNUTLS_CFLAGS=
-LIBGNUTLS_LDFLAGS=-lgnutls
+LIBGNUTLS_CFLAGS=$(shell pkg-config --cflags gnutls)
+LIBGNUTLS_LDFLAGS=$(shell pkg-config --libs gnutls)
LIBGCRYPT_CFLAGS=
LIBGCRYPT_LDFLAGS=-lgcrypt
@@ -87,50 +81,40 @@ LIBJSONC_LDFLAGS=$(shell pkg-config --libs json)
@@ -88,49 +81,40 @@ LIBJSONC_LDFLAGS=$(shell pkg-config --libs json)
# build pianobar
ifeq (${DYNLINK},1)
-pianobar: ${PIANOBAR_OBJ} ${PIANOBAR_HDR} libpiano.so.0
- @echo " LINK $@"
- @${CC} -o $@ ${PIANOBAR_OBJ} ${LDFLAGS} -lao -lpthread -lm -L. -lpiano \
- ${LIBFAAD_LDFLAGS} ${LIBMAD_LDFLAGS} ${LIBGNUTLS_LDFLAGS} \
- ${LIBGCRYPT_LDFLAGS} ${LIBJSONC_LDFLAGS}
+pianobar: ${PIANOBAR_OBJ} ${PIANOBAR_HDR} libpiano.so.${LIBpiano_VERSION}
+ ${CC} -o $@ ${PIANOBAR_OBJ} ${LDFLAGS} -lao -pthread -lm -L. -lpiano \
+ ${LIBFAAD_LDFLAGS} ${LIBMAD_LDFLAGS} ${LIBGNUTLS_LDFLAGS}
${LIBFAAD_LDFLAGS} ${LIBMAD_LDFLAGS} ${LIBGNUTLS_LDFLAGS}
else
pianobar: ${PIANOBAR_OBJ} ${PIANOBAR_HDR} ${LIBPIANO_OBJ} ${LIBWAITRESS_OBJ} \
${LIBWAITRESS_HDR}
@ -74,12 +46,11 @@ Add libgcrypt CFLAGS to %.o target
${LIBWAITRESS_HDR} ${LIBPIANO_OBJ} ${LIBWAITRESS_OBJ}
- @echo " LINK $@"
- @${CC} -shared -Wl,-soname,libpiano.so.0 ${CFLAGS} ${LDFLAGS} \
- ${LIBGNUTLS_LDFLAGS} ${LIBGCRYPT_LDFLAGS} \
- -o libpiano.so.0.0.0 ${LIBPIANO_RELOBJ} \
+ ${CC} -shared ${CFLAGS} ${LDFLAGS} \
+ ${LIBGNUTLS_LDFLAGS} ${LIBGCRYPT_LDFLAGS} ${LIBJSONC_LDFLAGS} \
+ -o libpiano.so.${LIBpiano_VERSION} ${LIBPIANO_RELOBJ} \
${LIBWAITRESS_RELOBJ}
${LIBWAITRESS_RELOBJ} ${LIBGNUTLS_LDFLAGS} ${LIBGCRYPT_LDFLAGS} \
${LIBJSONC_LDFLAGS}
- @ln -s libpiano.so.0.0.0 libpiano.so.0
- @ln -s libpiano.so.0 libpiano.so
- @echo " AR libpiano.a"
@ -91,18 +62,16 @@ Add libgcrypt CFLAGS to %.o target
- @${CC} ${CFLAGS} -I ${LIBPIANO_INCLUDE} -I ${LIBWAITRESS_INCLUDE} \
+ ${CC} ${CFLAGS} -I ${LIBPIANO_INCLUDE} -I ${LIBWAITRESS_INCLUDE} \
${LIBFAAD_CFLAGS} ${LIBMAD_CFLAGS} ${LIBGNUTLS_CFLAGS} \
- ${LIBJSONC_CFLAGS} -c -o $@ $<
+ ${LIBGCRYPT_CFLAGS} ${LIBJSONC_CFLAGS} -c -o $@ $<
${LIBGCRYPT_CFLAGS} ${LIBJSONC_CFLAGS} -c -o $@ $<
# create position independent code (for shared libraries)
%.lo: %.c
- @echo " CC $< (PIC)"
- @${CC} ${CFLAGS} -I ${LIBPIANO_INCLUDE} -I ${LIBWAITRESS_INCLUDE} \
- ${LIBJSONC_CFLAGS} \
- -c -fPIC -o $@ $<
+ ${CC} ${CFLAGS} -I ${LIBPIANO_INCLUDE} -I ${LIBWAITRESS_INCLUDE} \
+ ${LIBFAAD_CFLAGS} ${LIBMAD_CFLAGS} ${LIBGNUTLS_CFLAGS} \
+ ${LIBJSONC_CFLAGS} -c -fPIC -o $@ $<
+ ${LIBGCRYPT_CFLAGS} ${LIBJSONC_CFLAGS} \
-c -fPIC -o $@ $<
clean:
- @echo " CLEAN"

View File

@ -1,43 +0,0 @@
$OpenBSD: patch-src_libpiano_piano_c,v 1.8 2012/06/08 11:01:20 dcoppa Exp $
Fix ambiguous error message "Invalid Partner Login" on wrong
email address/password failure
(upstream git commit 81bf363ac69e0036562434ca0e7153c3e624c8c3)
More error messages
(upstream git commit 2d9b7bfd3395148419da27cd3c98de470a2d245b
and commit b32348d88f700f4a3b5fb3a95f7ee40336952230)
--- src/libpiano/piano.c.orig Sun May 6 16:33:54 2012
+++ src/libpiano/piano.c Fri Jun 8 12:38:13 2012
@@ -250,6 +250,10 @@ const char *PianoErrorToStr (PianoReturn_t ret) {
return "Out of memory.";
break;
+ case PIANO_RET_INVALID_LOGIN:
+ return "Wrong email address or password.";
+ break;
+
/* pandora error messages */
case PIANO_RET_P_INTERNAL:
return "Internal error.";
@@ -281,6 +285,19 @@ const char *PianoErrorToStr (PianoReturn_t ret) {
case PIANO_RET_P_INVALID_PARTNER_LOGIN:
return "Invalid partner login.";
+ break;
+
+ case PIANO_RET_P_LICENSING_RESTRICTIONS:
+ return "Pandora is not available in your country. "
+ "Set up a control proxy (see manpage).";
+ break;
+
+ case PIANO_RET_P_PARTNER_NOT_AUTHORIZED:
+ return "Invalid partner credentials.";
+ break;
+
+ case PIANO_RET_P_LISTENER_NOT_AUTHORIZED:
+ return "Listener not authorized.";
break;
default:

View File

@ -1,30 +0,0 @@
$OpenBSD: patch-src_libpiano_piano_h,v 1.4 2012/06/08 11:01:20 dcoppa Exp $
Fix ambiguous error message "Invalid Partner Login" on wrong
email address/password failure
(upstream git commit 81bf363ac69e0036562434ca0e7153c3e624c8c3)
More error messages
(upstream git commit b32348d88f700f4a3b5fb3a95f7ee40336952230)
--- src/libpiano/piano.h.orig Sun May 6 16:33:54 2012
+++ src/libpiano/piano.h Fri Jun 8 12:38:08 2012
@@ -244,7 +244,9 @@ typedef enum {
PIANO_RET_INVALID_RESPONSE = 2,
PIANO_RET_CONTINUE_REQUEST = 3,
PIANO_RET_OUT_OF_MEMORY = 4,
+ PIANO_RET_INVALID_LOGIN = 5,
+ /* pandora error codes */
PIANO_RET_P_INTERNAL = PIANO_RET_OFFSET+0,
PIANO_RET_P_API_VERSION_NOT_SUPPORTED = PIANO_RET_OFFSET+11,
PIANO_RET_P_BIRTH_YEAR_INVALID = PIANO_RET_OFFSET+1025,
@@ -284,7 +286,7 @@ typedef enum {
PIANO_RET_P_URL_PARAM_MISSING_USER_ID = PIANO_RET_OFFSET+5,
PIANO_RET_P_USERNAME_ALREADY_EXISTS = PIANO_RET_OFFSET+1013,
PIANO_RET_P_USER_ALREADY_USED_TRIAL = PIANO_RET_OFFSET+1037,
- PIANO_RET_P_USER_NOT_ACTIVE = PIANO_RET_OFFSET+1003,
+ PIANO_RET_P_LISTENER_NOT_AUTHORIZED = PIANO_RET_OFFSET+1003,
PIANO_RET_P_USER_NOT_AUTHORIZED = PIANO_RET_OFFSET+1004,
PIANO_RET_P_ZIP_CODE_INVALID = PIANO_RET_OFFSET+1024,

View File

@ -1,20 +0,0 @@
$OpenBSD: patch-src_libpiano_request_c,v 1.1 2012/05/14 08:07:00 dcoppa Exp $
Add stationToken to addFeedback request: fixes thumbs up/down and
move song
(upstream git commit c4330c3f65b2eacd3433ba19b1483f6704303205)
--- src/libpiano/request.c.orig Mon May 14 09:58:35 2012
+++ src/libpiano/request.c Mon May 14 10:00:03 2012
@@ -175,8 +175,11 @@ PianoReturn_t PianoRequest (PianoHandle_t *ph, PianoRe
assert (reqData != NULL);
assert (reqData->trackToken != NULL);
+ assert (reqData->stationId != NULL);
assert (reqData->rating != PIANO_RATE_NONE);
+ json_object_object_add (j, "stationToken",
+ json_object_new_string (reqData->stationId));
json_object_object_add (j, "trackToken",
json_object_new_string (reqData->trackToken));
json_object_object_add (j, "isPositive",

View File

@ -1,26 +0,0 @@
$OpenBSD: patch-src_libpiano_response_c,v 1.1 2012/05/28 09:47:00 dcoppa Exp $
Fix ambiguous error message "Invalid Partner Login" on wrong
email address/password failure
(upstream git commit 81bf363ac69e0036562434ca0e7153c3e624c8c3)
--- src/libpiano/response.c.orig Sun May 6 16:33:54 2012
+++ src/libpiano/response.c Mon May 28 10:51:30 2012
@@ -100,6 +100,17 @@ PianoReturn_t PianoResponse (PianoHandle_t *ph, PianoR
ret = PIANO_RET_INVALID_RESPONSE;
} else {
ret = json_object_get_int (code)+PIANO_RET_OFFSET;
+
+ if (ret == PIANO_RET_P_INVALID_PARTNER_LOGIN &&
+ req->type == PIANO_REQUEST_LOGIN) {
+ PianoRequestDataLogin_t *reqData = req->data;
+ if (reqData->step == 1) {
+ /* return value is ambiguous, as both, partnerLogin and
+ * userLogin return INVALID_PARTNER_LOGIN. Fix that to provide
+ * better error messages. */
+ ret = PIANO_RET_INVALID_LOGIN;
+ }
+ }
}
json_object_put (j);

View File

@ -1,23 +0,0 @@
$OpenBSD: patch-src_main_c,v 1.9 2012/05/28 09:47:00 dcoppa Exp $
Move mutex initalization to main thread
(upstream git commit ed7b2597a439c27e60d0b4cec85e801c9099173c)
--- src/main.c.orig Sun May 6 16:33:54 2012
+++ src/main.c Mon May 28 10:51:30 2012
@@ -206,6 +206,7 @@ static void BarMainStartPlayback (BarApp_t *app, pthre
app->player.scale = BarPlayerCalcScale (app->player.gain + app->settings.volume);
app->player.audioFormat = app->playlist->audioFormat;
app->player.settings = &app->settings;
+ pthread_mutex_init (&app->player.pauseMutex, NULL);
/* throw event */
BarUiStartEventCmd (&app->settings, "songstart",
@@ -233,6 +234,7 @@ static void BarMainPlayerCleanup (BarApp_t *app, pthre
/* FIXME: pthread_join blocks everything if network connection
* is hung up e.g. */
pthread_join (*playerThread, &threadRet);
+ pthread_mutex_destroy (&app->player.pauseMutex);
/* don't continue playback if thread reports error */
if (threadRet != (void *) PLAYER_RET_OK) {

View File

@ -1,10 +1,7 @@
$OpenBSD: patch-src_player_c,v 1.10 2012/05/28 09:47:00 dcoppa Exp $
$OpenBSD: patch-src_player_c,v 1.11 2012/06/12 14:45:06 dcoppa Exp $
Add missing include
Move mutex initalization to main thread
(upstream git commit ed7b2597a439c27e60d0b4cec85e801c9099173c)
--- src/player.c.orig Sun May 6 16:33:54 2012
+++ src/player.c Mon May 28 10:51:30 2012
@@ -28,6 +28,7 @@ THE SOFTWARE.
@ -15,19 +12,3 @@ Move mutex initalization to main thread
#include <arpa/inet.h>
#include "player.h"
@@ -421,7 +422,6 @@ void *BarPlayerThread (void *data) {
WaitressReturn_t wRet = WAITRESS_RET_ERR;
/* init handles */
- pthread_mutex_init (&player->pauseMutex, NULL);
player->waith.data = (void *) player;
/* extraHeaders will be initialized later */
player->waith.extraHeaders = extraHeaders;
@@ -500,7 +500,6 @@ void *BarPlayerThread (void *data) {
ao_close(player->audioOutDevice);
WaitressFree (&player->waith);
- pthread_mutex_destroy (&player->pauseMutex);
free (player->buffer);
player->mode = PLAYER_FINISHED_PLAYBACK;