diff --git a/docs/index.html b/docs/index.html index cbb69453..1b096dd7 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 @@ -1702,6 +1706,10 @@ local-pkg-list: $(LOCAL_PKG_LIST) libdvdcss libdvdcss + + libdvdetect + Fast database lookup for DVDs + libdvdnav libdvdnav @@ -2082,6 +2090,10 @@ local-pkg-list: $(LOCAL_PKG_LIST) ncurses Ncurses + + neon + HTTP and WebDAV client library (libneon) + netcdf NetCDF 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 diff --git a/src/libdvdetect.mk b/src/libdvdetect.mk new file mode 100644 index 00000000..43c134fe --- /dev/null +++ b/src/libdvdetect.mk @@ -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 diff --git a/src/neon-test.c b/src/neon-test.c new file mode 100644 index 00000000..9d66506d --- /dev/null +++ b/src/neon-test.c @@ -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 + +#include + +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; +} diff --git a/src/neon.mk b/src/neon.mk new file mode 100644 index 00000000..05e03bf2 --- /dev/null +++ b/src/neon.mk @@ -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