Merge pull request #1598 from LuaAndC/libcddb2

add libcddb, libdvdetect and neon
This commit is contained in:
Boris Nagaev 2016-12-17 14:42:09 -08:00 committed by GitHub
commit 29311b7cd7
7 changed files with 286 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>
@ -1702,6 +1706,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="package">libdvdcss</td>
<td class="website"><a href="http://www.videolan.org/developers/libdvdcss.html">libdvdcss</a></td>
</tr>
<tr>
<td class="package">libdvdetect</td>
<td class="website"><a href="https://www.dvdetect.de/">Fast database lookup for DVDs</a></td>
</tr>
<tr>
<td class="package">libdvdnav</td>
<td class="website"><a href="https://dvdnav.mplayerhq.hu/">libdvdnav</a></td>
@ -2082,6 +2090,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="package">ncurses</td>
<td class="website"><a href="https://www.gnu.org/software/ncurses/">Ncurses</a></td>
</tr>
<tr>
<td class="package">neon</td>
<td class="website"><a href="http://webdav.org/neon/">HTTP and WebDAV client library (libneon)</a></td>
</tr>
<tr>
<td class="package">netcdf</td>
<td class="website"><a href="http://www.unidata.ucar.edu/software/netcdf/">NetCDF</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

46
src/libdvdetect.mk Normal file
View File

@ -0,0 +1,46 @@
# This file is part of MXE. See LICENSE.md for licensing information.
PKG := libdvdetect
$(PKG)_IGNORE :=
$(PKG)_VERSION := 0.71.0
$(PKG)_CHECKSUM := b098e04660532df78836f50bc0a8044b66c6659b07a6bff6609724ad30a87192
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://github.com/nschlia/libdvdetect/releases/download/RELEASE_0_71/$(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_DEPS := gcc tinyxml
define $(PKG)_UPDATE
$(call MXE_GET_GITHUB_TAGS, libdvdetect/libdvdetect, release-)
endef
define $(PKG)_BUILD
cd '$(BUILD_DIR)' && \
'$(SOURCE_DIR)'/configure \
$(MXE_CONFIGURE_OPTS)
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)'
$(MAKE) -C '$(BUILD_DIR)/include' -j '$(JOBS)' install
$(MAKE) -C '$(BUILD_DIR)/lib' -j '$(JOBS)' install
# create pkg-config file
$(INSTALL) -d '$(PREFIX)/$(TARGET)/lib/pkgconfig'
(echo 'prefix=$(PREFIX)/$(TARGET)'; \
echo 'exec_prefix=$${prefix}'; \
echo 'libdir=$${exec_prefix}/lib'; \
echo 'includedir=$${prefix}/include'; \
echo ''; \
echo 'Name: $(PKG)'; \
echo 'Version: $($(PKG)_VERSION)'; \
echo 'Description: fast database lookup for DVDs'; \
echo 'Requires.private: openssl'; \
echo 'Libs: -L$${libdir} -ldvdetect -lws2_32'; \
echo 'Libs.private: -L$${libdir} -ltinyxml -lstdc++'; \
echo 'Cflags: -I$${includedir}'; \
) \
> '$(PREFIX)/$(TARGET)/lib/pkgconfig/$(PKG).pc'
# create test binary
$(TARGET)-gcc \
-W -Wall -Werror \
'$(SOURCE_DIR)/examples/c/dvdinfo.c' -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG).exe' \
`$(TARGET)-pkg-config libdvdetect --cflags --libs`
endef

26
src/neon-test.c Normal file
View File

@ -0,0 +1,26 @@
/*
* This file is part of MXE. See LICENSE.md for licensing information.
*/
// Based on: http://webdav.org/neon/doc/html/refresolve.html
#include <stdio.h>
#include <neon/ne_basic.h>
int main() {
ne_sock_addr* addr = ne_addr_resolve("yandex.ru", 0);
char buf[256];
if (ne_addr_result(addr)) {
printf("Could not resolve yandex.ru: %s\n",
ne_addr_error(addr, buf, sizeof buf));
} else {
printf("yandex.ru:");
for (const ne_inet_addr* ia = ne_addr_first(addr); ia != NULL; ia = ne_addr_next(addr)) {
printf(" %s", ne_iaddr_print(ia, buf, sizeof buf));
}
printf("\n");
}
ne_addr_destroy(addr);
return 0;
}

56
src/neon.mk Normal file
View File

@ -0,0 +1,56 @@
# This file is part of MXE. See LICENSE.md for licensing information.
PKG := neon
$(PKG)_IGNORE :=
$(PKG)_VERSION := 0.30.2
$(PKG)_CHECKSUM := db0bd8cdec329b48f53a6f00199c92d5ba40b0f015b153718d1b15d3d967fbca
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://webdav.org/$(PKG)/$(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_DEPS := gcc openssl expat gettext
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://webdav.org/$(PKG)/' | \
$(SED) -n 's,.*/\([0-9][^"]*\)/"\.tar.*,\1,p' | \
sort | uniq | \
head -1
endef
define $(PKG)_BUILD
cd '$(BUILD_DIR)' && \
ne_cv_fmt_size_t=%lu \
ne_cv_fmt_ssize_t=%lu \
ne_cv_fmt_off64_t=%I64u \
ne_cv_fmt_time_t=%lu \
ne_cv_libsfor_socket=-lws2_32 \
ne_cv_libsfor_gethostbyname=-lws2_32 \
'$(SOURCE_DIR)'/configure \
$(MXE_CONFIGURE_OPTS) \
$(MXE_DISABLE_DOCS) \
--with-ssl=yes
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)'
$(MAKE) -C '$(BUILD_DIR)' -j 1 install-lib install-headers install-nls
# create pkg-config file
$(INSTALL) -d '$(PREFIX)/$(TARGET)/lib/pkgconfig'
(echo 'prefix=$(PREFIX)/$(TARGET)'; \
echo 'exec_prefix=$${prefix}'; \
echo 'libdir=$${exec_prefix}/lib'; \
echo 'includedir=$${prefix}/include'; \
echo ''; \
echo 'Name: $(PKG)'; \
echo 'Version: $($(PKG)_VERSION)'; \
echo 'Description: neon is an HTTP and WebDAV client library'; \
echo 'Requires.private: openssl'; \
echo 'Libs: -L$${libdir} -lneon'; \
echo 'Libs.private: -L$${libdir} -lintl -liconv'; \
echo 'Cflags: -I$${includedir}'; \
) \
> '$(PREFIX)/$(TARGET)/lib/pkgconfig/$(PKG).pc'
# create test binary
$(TARGET)-gcc \
-W -Wall -Werror -std=c11 \
'$(TEST_FILE)' -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG).exe' \
`$(TARGET)-pkg-config neon --cflags --libs`
endef