libdvd* pkgs: updates and cleanups

pull/2083/head
Tony Theodore 6 years ago
parent f77e0addc8
commit b2df5af06c

@ -1,155 +0,0 @@
This file is part of MXE. See LICENSE.md for licensing information.
Submitted to upstream at
https://mailman.videolan.org/pipermail/libdvbpsi-devel/2014-June/000738.html
https://mailman.videolan.org/pipermail/libdvbpsi-devel/2014-June/000739.html
From ada90a3c9a5e8b1c8d214f9e9e82499b54060419 Mon Sep 17 00:00:00 2001
From: Timothy Gu <timothygu99@gmail.com>
Date: Tue, 24 Jun 2014 14:57:31 -0700
Subject: [PATCH 2/3] dvbpsi: fix when _GNU_SOURCE is not defined
Based on a patch by Guilherme Lima Bernal <lb-guilherme@live.com>.
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
---
src/dvbpsi.c | 22 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)
diff --git a/src/dvbpsi.c b/src/dvbpsi.c
index 89d4932..141e3df 100644
--- a/src/dvbpsi.c
+++ b/src/dvbpsi.c
@@ -529,14 +529,10 @@ void dvbpsi_message(dvbpsi_t *dvbpsi, const dvbpsi_msg_level_t level, const char
msg = malloc(DVBPSI_MSG_SIZE);
if (msg == NULL) {
va_end(ap);
- return;
- }
- if (snprintf(&msg, DVBPSI_MSG_SIZE, DVBPSI_MSG_FORMAT, ap) < 0) {
- va_end(ap);
free(msg);
return;
}
- int err = vsnprintf(&msg, DVBPSI_MSG_SIZE, fmt, ap);
+ int err = vsnprintf(msg, DVBPSI_MSG_SIZE, fmt, ap);
#endif
va_end(ap);
if (err > DVBPSI_MSG_NONE) {
@@ -575,20 +571,28 @@ void dvbpsi_message(dvbpsi_t *dvbpsi, const dvbpsi_msg_level_t level, const char
free(msg); \
} while(0);
# else
-# define DVBPSI_MSG_COMMON \
+# define DVBPSI_MSG_COMMON(level) \
do { \
va_list ap; \
va_start(ap, fmt); \
char *msg = malloc(DVBPSI_MSG_SIZE); \
- if (msg == NULL) { \
+ char *tmp = malloc(DVBPSI_MSG_SIZE); \
+ if (msg == NULL || tmp == NULL) { \
va_end(ap); \
+ if (msg) \
+ free(msg); \
+ if (tmp) \
+ free(tmp); \
return; \
} \
- if (snprintf(&msg, DVBPSI_MSG_SIZE, DVBPSI_MSG_FORMAT, src) < 0) { \
+ if (vsnprintf(tmp, DVBPSI_MSG_SIZE, fmt, ap) < 0) { \
va_end(ap); \
+ free(tmp); \
+ free(msg); \
return; \
} \
- int err = vsnprintf(&msg, DVBPSI_MSG_SIZE, fmt, ap); \
+ int err = snprintf(msg, DVBPSI_MSG_SIZE, DVBPSI_MSG_FORMAT, src, tmp); \
+ free(tmp); \
va_end(ap); \
if (err > 0) { \
if (dvbpsi->pf_message) \
--
1.9.1
From a2117900002bc8f9e0f821d872f8cd70ece67634 Mon Sep 17 00:00:00 2001
From: Timothy Gu <timothygu99@gmail.com>
Date: Thu, 26 Jun 2014 13:41:02 -0700
Subject: [PATCH 3/3] Add a separate check for [v]asprintf() instead of
checking for _GNU_SOURCE
Platforms like i686-pc-mingw32 defines _GNU_SOURCE but does not contain
the functions.
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
---
configure.ac | 21 +++++++++++++++++++++
src/dvbpsi.c | 6 +++---
2 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
index 2a97e5b..f95c186 100644
--- a/configure.ac
+++ b/configure.ac
@@ -100,6 +100,27 @@ if test "${ac_cv_cpp_variadic_macros}" != "no"; then
AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
fi
+dnl Check for asprintf(). Systems with asprintf() must also have vasprintf(),
+dnl so it is not checked separately.
+AC_CACHE_CHECK([for asprintf()],
+ [ac_cv_asprintf],
+ [AC_COMPILE_IFELSE([
+ AC_LANG_SOURCE([[
+ #include <stdio.h>
+ #include <stdlib.h>
+ int main(void) {
+ char *text = NULL;
+ int ret = asprintf(&text, "test");
+ if (ret >= 0) free(text);
+ return 0;
+ }
+ ]])],
+ ac_cv_asprintf=yes,
+ ac_cv_asprintf=no)])
+if test "${ac_cv_asprintf}" != "no"; then
+ AC_DEFINE(HAVE_ASPRINTF, 1, [Support for asprintf() and vasprintf()])
+fi
+
dnl
dnl Generate Makefiles and other output files
dnl
diff --git a/src/dvbpsi.c b/src/dvbpsi.c
index 141e3df..29ae2b0 100644
--- a/src/dvbpsi.c
+++ b/src/dvbpsi.c
@@ -508,7 +508,7 @@ bool dvbpsi_packet_push(dvbpsi_t *p_dvbpsi, uint8_t* p_data)
* 1 is warning and errors
* 2 is debug, warning and errors
*****************************************************************************/
-#if !defined(_GNU_SOURCE)
+#if !defined(HAVE_ASPRINTF)
# define DVBPSI_MSG_SIZE 1024
#endif
@@ -523,7 +523,7 @@ void dvbpsi_message(dvbpsi_t *dvbpsi, const dvbpsi_msg_level_t level, const char
va_list ap;
va_start(ap, fmt);
char *msg = NULL;
-#if defined(_GNU_SOURCE)
+#if defined(HAVE_ASPRINTF)
int err = vasprintf(&msg, fmt, ap);
#else
msg = malloc(DVBPSI_MSG_SIZE);
@@ -545,7 +545,7 @@ void dvbpsi_message(dvbpsi_t *dvbpsi, const dvbpsi_msg_level_t level, const char
#else
/* Common code for printing messages */
-# if defined(_GNU_SOURCE)
+# if defined(HAVE_ASPRINTF)
# define DVBPSI_MSG_COMMON(level) \
do { \
va_list ap; \
--
1.9.1

@ -3,25 +3,25 @@
PKG := libdvbpsi
$(PKG)_WEBSITE := https://www.videolan.org/developers/libdvbpsi.html
$(PKG)_IGNORE :=
$(PKG)_VERSION := 1.2.0
$(PKG)_CHECKSUM := 36d9b233306e48b58999e87864253b564e20932ed46a485e44ef7058f1f927e8
$(PKG)_VERSION := 1.3.2
$(PKG)_CHECKSUM := ac4e39f2b9b1e15706ad261fa175a9430344d650a940be9aaf502d4cb683c5fe
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $($(PKG)_SUBDIR).tar.bz2
$(PKG)_URL := https://download.videolan.org/pub/libdvbpsi/$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_DEPS := cc
define $(PKG)_UPDATE
$(WGET) -q -O- 'https://www.videolan.org/developers/libdvbpsi.html' | \
$(SED) -n 's,.*https://www.videolan.org/pub/libdvbpsi/\([0-9][^<]*\)/.*,\1,p' | \
$(WGET) -q -O- 'https://download.videolan.org/pub/libdvbpsi/' | \
$(SED) -n 's,.*<a href="\([0-9][^<]*\)/".*,\1,p' | \
$(SORT) -Vr | \
head -1
endef
define $(PKG)_BUILD
cd '$(1)' && autoreconf -fi
cd '$(1)' && ./configure \
# build and install the library
cd '$(BUILD_DIR)' && $(SOURCE_DIR)/configure \
$(MXE_CONFIGURE_OPTS) \
--enable-release
$(MAKE) -C '$(1)' -j '$(JOBS)' SUBDIRS=src
$(MAKE) -C '$(1)' -j 1 install SUBDIRS=src
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' SUBDIRS=src
$(MAKE) -C '$(BUILD_DIR)' -j 1 install SUBDIRS=src
endef

@ -3,8 +3,8 @@
PKG := libdvdcss
$(PKG)_WEBSITE := https://www.videolan.org/developers/libdvdcss.html
$(PKG)_IGNORE :=
$(PKG)_VERSION := 1.3.0
$(PKG)_CHECKSUM := 7c414acd520c4e4dd7267952f72d738ff50321a7869af4d75c65aefad44f1395
$(PKG)_VERSION := 1.4.1
$(PKG)_CHECKSUM := eb073752b75ae6db3a3ffc9d22f6b585cd024079a2bf8acfa56f47a8fce6eaac
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $($(PKG)_SUBDIR).tar.bz2
$(PKG)_URL := https://download.videolan.org/pub/libdvdcss/$($(PKG)_VERSION)/$($(PKG)_FILE)
@ -18,9 +18,10 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
# build and install the library
cd '$(BUILD_DIR)' && $(SOURCE_DIR)/configure \
$(MXE_CONFIGURE_OPTS) \
--disable-doc
$(MAKE) -C '$(1)' -j '$(JOBS)' $(MXE_DISABLE_CRUFT)
$(MAKE) -C '$(1)' -j 1 install $(MXE_DISABLE_CRUFT)
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' $(MXE_DISABLE_CRUFT)
$(MAKE) -C '$(BUILD_DIR)' -j 1 install $(MXE_DISABLE_CRUFT)
endef

@ -4,17 +4,11 @@ PKG := libdvdetect
$(PKG)_WEBSITE := https://www.dvdetect.de/
$(PKG)_DESCR := Fast database lookup for DVDs
$(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)_VERSION := 0.71
$(PKG)_CHECKSUM := 55de9fffb3c14459148b5de6c16cded6aa8aff62df69150bfb4b1a1815a7d1ef
$(PKG)_GH_CONF := nschlia/libdvdetect/tags,RELEASE_,,,_
$(PKG)_DEPS := cc openssl tinyxml
define $(PKG)_UPDATE
$(call MXE_GET_GITHUB_TAGS, libdvdetect/libdvdetect, release-)
endef
define $(PKG)_BUILD
cd '$(BUILD_DIR)' && \
'$(SOURCE_DIR)'/configure \

@ -1,19 +1,15 @@
# This file is part of MXE. See LICENSE.md for licensing information.
PKG := libdvdnav
$(PKG)_WEBSITE := https://dvdnav.mplayerhq.hu/
$(PKG)_WEBSITE := https://www.videolan.org/developers/libdvdnav.html
$(PKG)_IGNORE :=
$(PKG)_VERSION := 5.0.1
$(PKG)_CHECKSUM := 72b1cb8266f163d4a1481b92c7b6c53e6dc9274d2a6befb08ffc351fe7a4a2a9
$(PKG)_VERSION := 6.0.0
$(PKG)_CHECKSUM := f0a2711b08a021759792f8eb14bb82ff8a3c929bf88c33b64ffcddaa27935618
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2
# Later releases seem to be hosted on VideoLAN's server
# $(PKG)_URL := https://dvdnav.mplayerhq.hu/releases/$($(PKG)_FILE)
$(PKG)_URL := https://download.videolan.org/pub/videolan/$(PKG)/$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_DEPS := cc libdvdread
# $(PKG)_UPDATE = $(call MXE_GET_GITHUB_SHA, mirror/libdvdnav, master)
define $(PKG)_UPDATE
$(WGET) -q -O- 'https://download.videolan.org/pub/videolan/libdvdnav/' | \
$(SED) -n 's,.*href="\([0-9][^<]*\)/".*,\1,p' | \
@ -23,9 +19,9 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
cd '$(1)' && autoreconf -fi
cd '$(1)' && ./configure \
# build and install the library
cd '$(BUILD_DIR)' && $(SOURCE_DIR)/configure \
$(MXE_CONFIGURE_OPTS)
$(MAKE) -C '$(1)' -j '$(JOBS)' LDFLAGS=-no-undefined
$(MAKE) -C '$(1)' -j 1 install LDFLAGS=-no-undefined
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' LDFLAGS=-no-undefined
$(MAKE) -C '$(BUILD_DIR)' -j 1 install LDFLAGS=-no-undefined
endef

@ -1,23 +1,18 @@
# This file is part of MXE. See LICENSE.md for licensing information.
PKG := libdvdread
$(PKG)_WEBSITE := https://dvdnav.mplayerhq.hu/
$(PKG)_WEBSITE := https://www.videolan.org/developers/libdvdnav.html
$(PKG)_IGNORE :=
$(PKG)_VERSION := 5.0.0
$(PKG)_CHECKSUM := 66fb1a3a42aa0c56b02547f69c7eb0438c5beeaf21aee2ae2c6aa23ea8305f14
$(PKG)_VERSION := 6.0.0
$(PKG)_CHECKSUM := b33b1953b4860545b75f6efc06e01d9849e2ea4f797652263b0b4af6dd10f935
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2
# Later releases seem to be hosted on VideoLAN's server
# $(PKG)_URL := https://dvdnav.mplayerhq.hu/releases/$($(PKG)_FILE)
$(PKG)_URL := https://download.videolan.org/pub/videolan/$(PKG)/$($(PKG)_VERSION)/$($(PKG)_FILE)
# libdvdread supports libdvdcss either by dynamic loading (dlfcn-win32) or
# directly linking to libdvdcss. We directly links to the library here.
$(PKG)_DEPS := cc libdvdcss
$(PKG)_UPDATE_GIT = $(call MXE_GET_GITHUB_SHA, mirror/libdvdread, master)
define $(PKG)_UPDATE
$(WGET) -q -O- 'https://download.videolan.org/pub/videolan/libdvdread/' | \
$(SED) -n 's,.*href="\([0-9][^<]*\)/".*,\1,p' | \
@ -27,11 +22,11 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
cd '$(1)' && autoreconf -fi
cd '$(1)' && ./configure \
$(MXE_CONFIGURE_OPTS) \
# build and install the library
cd '$(BUILD_DIR)' && $(SOURCE_DIR)/configure \
$(MXE_CONFIGURE_OPTS)
--with-libdvdcss \
--disable-apidoc
$(MAKE) -C '$(1)' -j '$(JOBS)' LDFLAGS=-no-undefined
$(MAKE) -C '$(1)' -j 1 install LDFLAGS=-no-undefined
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' LDFLAGS=-no-undefined
$(MAKE) -C '$(BUILD_DIR)' -j 1 install LDFLAGS=-no-undefined
endef

Loading…
Cancel
Save