Add libcddb

This commit is contained in:
nschlia 2016-12-06 23:37:18 +01:00 committed by Boris Nagaev
parent 6b8a1fd071
commit 519930209e
4 changed files with 150 additions and 0 deletions

View File

@ -1674,6 +1674,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="package">libcaca</td>
<td class="website"><a href="http://caca.zoy.org/wiki/libcaca">libcaca</a></td>
</tr>
<tr>
<td class="package">libcddb</td>
<td class="website"><a href="https://sourceforge.net/projects/libcddb/">Access data on a CDDB</a></td>
</tr>
<tr>
<td class="package">libcdio</td>
<td class="website"><a href="https://www.gnu.org/software/libcdio/">Libcdio</a></td>

90
src/libcddb-1-fixes.patch Normal file
View File

@ -0,0 +1,90 @@
This file is part of MXE. See LICENSE.md for licensing information.
Contains ad hoc patches for cross building.
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Norbert Schlia <nschlia@oblivion-software.de>
Date: Mon, 12 Dec 2016 08:48:17 +0100
Subject: [PATCH] Newer versions winioctl.h contain a #define SEARCH_ALL ..
which collides with the enum in cddb_conn.h.
diff --git a/include/cddb/cddb_conn.h b/include/cddb/cddb_conn.h
index 1111111..2222222 100644
--- a/include/cddb/cddb_conn.h
+++ b/include/cddb/cddb_conn.h
@@ -59,6 +59,10 @@ typedef struct cddb_conn_s cddb_conn_t;
* Which fields to use for the full text search is defined by one or
* more of the constants below.
*/
+#ifdef SEARCH_ALL
+#undef SEARCH_ALL // Defined in winioctl.h, causes havoc under windoze
+#endif
+
typedef enum {
SEARCH_NONE = 0, /**< no fields */
SEARCH_ARTIST = 1, /**< artist name field */
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Norbert Schlia <nschlia@oblivion-software.de>
Date: Mon, 12 Dec 2016 08:50:10 +0100
Subject: [PATCH] configure falsely detects an alarm() function available,
causing compile errors.
diff --git a/configure b/configure
index 1111111..2222222 100755
--- a/configure
+++ b/configure
@@ -13622,7 +13622,7 @@ rm -f conftest*
-for ac_func in mkdir regcomp socket strdup strtol strchr memset alarm select realloc
+for ac_func in mkdir regcomp socket strdup strtol strchr memset select realloc
do
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Norbert Schlia <nschlia@oblivion-software.de>
Date: Mon, 12 Dec 2016 08:51:37 +0100
Subject: [PATCH] libccdb crashes in strlen() under windows because s =
getenv("HOME"); returns NULL
diff --git a/lib/cddb_conn.c b/lib/cddb_conn.c
index 1111111..2222222 100644
--- a/lib/cddb_conn.c
+++ b/lib/cddb_conn.c
@@ -100,6 +100,13 @@ cddb_conn_t *cddb_new(void)
c->use_cache = CACHE_ON;
/* construct cache dir '$HOME/[DEFAULT_CACHE]' */
s = getenv("HOME");
+ if (s == NULL)
+ s = getenv("TEMP");
+ if (s == NULL)
+ s = getenv("TMP");
+ if (s == NULL)
+ s = ".";
+
c->cache_dir = (char*)malloc(strlen(s) + 1 + sizeof(DEFAULT_CACHE) + 1);
sprintf(c->cache_dir, "%s/%s", s, DEFAULT_CACHE);
c->cache_read = FALSE;
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Boris Nagaev <bnagaev@gmail.com>
Date: Fri, 16 Dec 2016 03:55:31 +0100
Subject: [PATCH] pc: add private libs -lgnurx -lregex -lws2_32
diff --git a/libcddb.pc.in b/libcddb.pc.in
index 1111111..2222222 100644
--- a/libcddb.pc.in
+++ b/libcddb.pc.in
@@ -7,4 +7,5 @@ Name: libcddb
Description: CDDB server access library
Version: @VERSION@
Libs: -L${libdir} -lcddb @LIBICONV@
+Libs.private: -L${libdir} -lgnurx -lregex -lws2_32
Cflags: -I${includedir}

19
src/libcddb-test.c Normal file
View File

@ -0,0 +1,19 @@
/*
* This file is part of MXE. See LICENSE.md for licensing information.
*/
// Based on: http://libcddb.sourceforge.net/tutorial.html
#include <stdio.h>
#include <cddb/cddb.h>
int main() {
cddb_track_t *track = NULL;
track = cddb_track_new();
if (track == NULL) {
fprintf(stderr, "out of memory, unable to create track");
}
cddb_track_destroy(track);
return 0;
}

37
src/libcddb.mk Normal file
View File

@ -0,0 +1,37 @@
# This file is part of MXE. See LICENSE.md for licensing information.
PKG := libcddb
$(PKG)_IGNORE :=
$(PKG)_VERSION := 1.3.2
$(PKG)_CHECKSUM := 35ce0ee1741ea38def304ddfe84a958901413aa829698357f0bee5bb8f0a223b
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/libcddb/libcddb/$($(PKG)_VERSION)/$(PKG)-$($(PKG)_VERSION).tar.bz2
$(PKG)_DEPS := gcc libiconv libgnurx
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://downloads.sourceforge.net/project/libcddb/libcddb/' | \
$(SED) -n 's,.*libcddb-\([0-9][^>]*\)\.tar.*,\1,p' | \
sort | uniq | \
head -1
endef
# lt_cv_deplibs_check_method="pass_all" allow all libs (avoid static lib creation for x64 because of ws2_32.lib)
# ac_cv_func_malloc_0_nonnull=yes avoid unresolved external
# ac_cv_func_realloc_0_nonnull=yes avoid unresolved external
define $(PKG)_BUILD
cd '$(BUILD_DIR)' && \
lt_cv_deplibs_check_method="pass_all" \
ac_cv_func_malloc_0_nonnull=yes \
ac_cv_func_realloc_0_nonnull=yes \
'$(SOURCE_DIR)'/configure \
$(MXE_CONFIGURE_OPTS)
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' $(MXE_DISABLE_PROGRAMS)
$(MAKE) -C '$(BUILD_DIR)' -j 1 install $(MXE_DISABLE_PROGRAMS)
# create test binary
$(TARGET)-gcc \
-W -Wall -Werror \
'$(TEST_FILE)' -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG).exe' \
`$(TARGET)-pkg-config libcddb --cflags --libs`
endef