From 519930209ec32d5222e6b25b5d950d102cd0ef78 Mon Sep 17 00:00:00 2001 From: nschlia Date: Tue, 6 Dec 2016 23:37:18 +0100 Subject: [PATCH] Add libcddb --- docs/index.html | 4 ++ src/libcddb-1-fixes.patch | 90 +++++++++++++++++++++++++++++++++++++++ src/libcddb-test.c | 19 +++++++++ src/libcddb.mk | 37 ++++++++++++++++ 4 files changed, 150 insertions(+) create mode 100644 src/libcddb-1-fixes.patch create mode 100644 src/libcddb-test.c create mode 100644 src/libcddb.mk diff --git a/docs/index.html b/docs/index.html index cbb69453..d2eccddb 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1674,6 +1674,10 @@ local-pkg-list: $(LOCAL_PKG_LIST) libcaca libcaca + + libcddb + Access data on a CDDB + libcdio Libcdio diff --git a/src/libcddb-1-fixes.patch b/src/libcddb-1-fixes.patch new file mode 100644 index 00000000..c02e34bc --- /dev/null +++ b/src/libcddb-1-fixes.patch @@ -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 +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 +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 +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 +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} diff --git a/src/libcddb-test.c b/src/libcddb-test.c new file mode 100644 index 00000000..3d7a2f61 --- /dev/null +++ b/src/libcddb-test.c @@ -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 + +#include + +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; +} diff --git a/src/libcddb.mk b/src/libcddb.mk new file mode 100644 index 00000000..2446d49f --- /dev/null +++ b/src/libcddb.mk @@ -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