new package: libtsduck
This commit is contained in:
parent
854633d041
commit
4c7fa89bb8
48
packages/libtsduck/Makefile.inc.patch
Normal file
48
packages/libtsduck/Makefile.inc.patch
Normal file
@ -0,0 +1,48 @@
|
||||
--- a/Makefile.inc
|
||||
+++ b/Makefile.inc
|
||||
@@ -164,9 +164,9 @@
|
||||
|
||||
# Enforce English locale by default in all commands for predictible output.
|
||||
|
||||
-export LANGUAGE = en_US.UTF-8
|
||||
-export LC_ALL = en_US.UTF-8
|
||||
-export LANG = en_US.UTF-8
|
||||
+export LANGUAGE = C.UTF-8
|
||||
+export LC_ALL = C.UTF-8
|
||||
+export LANG = C.UTF-8
|
||||
|
||||
# Operating system, architecture, host name.
|
||||
|
||||
@@ -212,12 +212,12 @@
|
||||
$(if $(LINUXBREW),$(if $(HOMEBREW_PREFIX),,$(error LINUXBREW is defined but not HOMEBREW_PREFIX)))
|
||||
ALTDEVROOT := $(if $(HOMEBREW_PREFIX),$(HOMEBREW_PREFIX),$(if $(wildcard /opt/homebrew/bin),/opt/homebrew,/usr/local))
|
||||
else
|
||||
- ALTDEVROOT := /usr
|
||||
+ ALTDEVROOT := @TERMUX_PREFIX@
|
||||
endif
|
||||
|
||||
# Locate system directories.
|
||||
|
||||
-USELIB64 := $(if $(findstring linux-x86_64,$(LOCAL_OS)-$(MAIN_ARCH)),$(if $(LINUXBREW),,$(if $(wildcard /usr/lib64/libc.so*),true)))
|
||||
+USELIB64 :=
|
||||
SYSPREFIX ?= $(if $(MACOS)$(LINUXBREW),$(ALTDEVROOT),/usr)
|
||||
USRLIBDIR ?= $(if $(USELIB64),$(SYSPREFIX)/lib64,$(SYSPREFIX)/lib)
|
||||
ETCDIR ?= $(if $(subst /usr,,$(SYSPREFIX)),$(SYSPREFIX)/etc,/etc)
|
||||
@@ -399,7 +399,7 @@
|
||||
# Always use maximal or even paranoid warning mode.
|
||||
# With clang, the option -Weverything turns everything on. There is no such option with GCC.
|
||||
|
||||
-CXXFLAGS_WARNINGS = -Werror
|
||||
+CXXFLAGS_WARNINGS =
|
||||
ifneq ($(USE_LLVM),)
|
||||
CXXFLAGS_WARNINGS += -Weverything -Wno-c++98-compat-pedantic
|
||||
ifneq ($(MACOS),)
|
||||
@@ -468,7 +468,7 @@
|
||||
|
||||
# External libraries
|
||||
|
||||
-LDLIBS += -lstdc++ -lpthread $(if $(MACOS),,-lrt) -lm
|
||||
+LDLIBS += -lm
|
||||
|
||||
# Global compilation flags.
|
||||
# Additional flags can be passed on the "make" command line using xxFLAGS_EXTRA.
|
53
packages/libtsduck/build.sh
Normal file
53
packages/libtsduck/build.sh
Normal file
@ -0,0 +1,53 @@
|
||||
TERMUX_PKG_HOMEPAGE=https://tsduck.io/
|
||||
TERMUX_PKG_DESCRIPTION="An extensible toolkit for MPEG transport streams"
|
||||
TERMUX_PKG_LICENSE="BSD 2-Clause"
|
||||
TERMUX_PKG_MAINTAINER="@termux"
|
||||
_VERSION=3.29-2651
|
||||
TERMUX_PKG_VERSION=${_VERSION//-/.}
|
||||
TERMUX_PKG_SRCURL=https://github.com/tsduck/tsduck/archive/refs/tags/v${_VERSION}.tar.gz
|
||||
TERMUX_PKG_SHA256=cab8f5838993aa1abd1a6a4c2ef7f2afba801da02a4001904f3f5ba5c5fe85a0
|
||||
TERMUX_PKG_DEPENDS="libandroid-glob, libcurl, libedit"
|
||||
TERMUX_PKG_BUILD_IN_SRC=true
|
||||
TERMUX_PKG_EXTRA_MAKE_ARGS="
|
||||
SYSPREFIX=$TERMUX_PREFIX
|
||||
CROSS_TARGET=$TERMUX_ARCH
|
||||
CROSS=1
|
||||
NOTEST=1
|
||||
NODEKTEC=1
|
||||
NOCURL=
|
||||
NOPCSC=1
|
||||
NOSRT=1
|
||||
NORIST=1
|
||||
NOEDITLINE=
|
||||
NOTELETEXT=1
|
||||
NOGITHUB=1
|
||||
"
|
||||
TERMUX_PKG_RM_AFTER_INSTALL="etc/security etc/udev"
|
||||
|
||||
termux_step_pre_configure() {
|
||||
local bin="$TERMUX_PKG_BUILDDIR/_wrapper/bin"
|
||||
local sh="$(command -v sh)"
|
||||
mkdir -p "$bin"
|
||||
for p in curl; do
|
||||
local conf="$bin/${p}-config"
|
||||
cat > "$conf" <<-EOF
|
||||
#!${sh}
|
||||
exec sh "$TERMUX_PREFIX/bin/${p}-config" "\$@"
|
||||
EOF
|
||||
chmod 0700 "$conf"
|
||||
done
|
||||
export PATH="$bin":$PATH
|
||||
|
||||
CXXFLAGS+=" -fno-strict-aliasing"
|
||||
LDFLAGS+=" -landroid-glob"
|
||||
}
|
||||
|
||||
termux_step_make() {
|
||||
make -j $TERMUX_MAKE_PROCESSES \
|
||||
CXX="$CXX" \
|
||||
GCC="$CC" \
|
||||
LD="$LD" \
|
||||
CXXFLAGS_CROSS="$CXXFLAGS $CPPFLAGS" \
|
||||
LDFLAGS_CROSS="$LDFLAGS" \
|
||||
${TERMUX_PKG_EXTRA_MAKE_ARGS}
|
||||
}
|
23
packages/libtsduck/src-libtsduck-Makefile.patch
Normal file
23
packages/libtsduck/src-libtsduck-Makefile.patch
Normal file
@ -0,0 +1,23 @@
|
||||
--- a/src/libtsduck/Makefile
|
||||
+++ b/src/libtsduck/Makefile
|
||||
@@ -128,7 +128,7 @@
|
||||
$(SHARED_LIBTSDUCK): $(OBJS)
|
||||
@echo ' [DTAPI] $(if $(DTAPI_OBJECT),using $(DTAPI_OBJECT),no DTAPI available)'; \
|
||||
echo ' [LD] $@'; \
|
||||
- $(CXX) $(CXXFLAGS) $(SOFLAGS) $^ $(LIBTSDUCK_LDLIBS) $(LDLIBS_EXTRA) $(LDLIBS) -shared -o $@
|
||||
+ $(CXX) $(CXXFLAGS) $(SOFLAGS) $(LDFLAGS) $^ $(LIBTSDUCK_LDLIBS) $(LDLIBS_EXTRA) $(LDLIBS) -shared -o $@
|
||||
|
||||
# The static library is build differently. There are four specific categories:
|
||||
# tables, descriptors, charsets and plugins. These classes use self-registration
|
||||
@@ -187,11 +187,8 @@
|
||||
+@$(call F_RECURSE,config python java)
|
||||
|
||||
install-devel: $(STATIC_LIBTSDUCK) tsduck.h
|
||||
- rm -rf $(SYSROOT)$(SYSPREFIX)/include/tsduck
|
||||
install -d -m 755 $(SYSROOT)$(USRLIBDIR) $(SYSROOT)$(SYSPREFIX)/include/tsduck
|
||||
install -m 644 $(STATIC_LIBTSDUCK) $(SYSROOT)$(USRLIBDIR)
|
||||
install -m 644 $(addsuffix /*.h,$(PUBLIC_INCLUDES)) $(SYSROOT)$(SYSPREFIX)/include/tsduck
|
||||
- $(if $(NOTELETEXT),rm -f $(SYSROOT)$(SYSPREFIX)/include/tsduck/tsTeletextDemux.h)
|
||||
- $(if $(NOTELETEXT),rm -f $(SYSROOT)$(SYSPREFIX)/include/tsduck/tsTeletextPlugin.h)
|
||||
$(if $(NOTELETEXT),$(SED) -i -e '/TeletextDemux/d' -e '/TeletextPlugin/d' $(SYSROOT)$(SYSPREFIX)/include/tsduck/tsduck.h)
|
||||
+@$(call F_RECURSE,config python java)
|
@ -0,0 +1,11 @@
|
||||
--- a/src/libtsduck/base/system/tsForkPipe.cpp
|
||||
+++ b/src/libtsduck/base/system/tsForkPipe.cpp
|
||||
@@ -451,7 +451,7 @@
|
||||
|
||||
// Execute the command if there was no prior error.
|
||||
if (message == nullptr) {
|
||||
- ::execl("/bin/sh", "/bin/sh", "-c", command.toUTF8().c_str(), nullptr);
|
||||
+ ::execl("@TERMUX_PREFIX@/bin/sh", "@TERMUX_PREFIX@/bin/sh", "-c", command.toUTF8().c_str(), nullptr);
|
||||
// Should not return, so this is an error if we get there.
|
||||
error = errno;
|
||||
message = "exec error";
|
@ -0,0 +1,25 @@
|
||||
--- a/src/libtsduck/base/system/tsThread.cpp
|
||||
+++ b/src/libtsduck/base/system/tsThread.cpp
|
||||
@@ -114,7 +114,7 @@
|
||||
{
|
||||
#if defined(TS_WINDOWS)
|
||||
::SwitchToThread();
|
||||
-#elif defined(TS_MAC) || defined(_GLIBCXX_USE_SCHED_YIELD)
|
||||
+#elif defined(TS_MAC) || defined(_GLIBCXX_USE_SCHED_YIELD) || defined(__ANDROID__)
|
||||
::sched_yield();
|
||||
#else
|
||||
::pthread_yield();
|
||||
@@ -254,11 +254,13 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
+#if !defined __ANDROID__ || __ANDROID_API__ >= 28
|
||||
// Use explicit scheduling attributes, do not inherit them from the current thread.
|
||||
if (::pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED) != 0) {
|
||||
::pthread_attr_destroy(&attr);
|
||||
return false;
|
||||
}
|
||||
+#endif
|
||||
|
||||
// Create the thread
|
||||
if (::pthread_create(&_pthread, &attr, Thread::ThreadProc, this) != 0) {
|
@ -0,0 +1,16 @@
|
||||
--- a/src/libtsduck/base/types/tsPlatform.h
|
||||
+++ b/src/libtsduck/base/types/tsPlatform.h
|
||||
@@ -1356,9 +1356,13 @@
|
||||
#else
|
||||
// Extract the type of the second parameter of ::ioctl().
|
||||
// It is "unsigned long" on most Linux systems but "int" on Alpine Linux.
|
||||
+#ifndef __ANDROID__
|
||||
template<typename T>
|
||||
T request_param_type(int (*ioctl_syscall)(int, T, ...));
|
||||
typedef decltype(request_param_type(&::ioctl)) ioctl_request_t;
|
||||
+#else
|
||||
+ typedef int ioctl_request_t;
|
||||
+#endif
|
||||
#endif
|
||||
}
|
||||
|
10
packages/libtsduck/src-libtsduck-python-Makefile.patch
Normal file
10
packages/libtsduck/src-libtsduck-python-Makefile.patch
Normal file
@ -0,0 +1,10 @@
|
||||
--- a/src/libtsduck/python/Makefile
|
||||
+++ b/src/libtsduck/python/Makefile
|
||||
@@ -42,7 +42,6 @@
|
||||
install: install-tools install-devel
|
||||
|
||||
install-tools:
|
||||
- rm -rf $(SYSROOT)$(SYSPREFIX)/share/tsduck/python
|
||||
install -d -m 755 $(SYSROOT)$(SYSPREFIX)/share/tsduck/python
|
||||
install -m 644 tsduck.py ts.py $(SYSROOT)$(SYSPREFIX)/share/tsduck/python
|
||||
install-devel:
|
10
packages/libtsduck/src-tsplugins-Makefile.patch
Normal file
10
packages/libtsduck/src-tsplugins-Makefile.patch
Normal file
@ -0,0 +1,10 @@
|
||||
--- a/src/tsplugins/Makefile
|
||||
+++ b/src/tsplugins/Makefile
|
||||
@@ -48,7 +48,6 @@
|
||||
install: install-tools install-devel
|
||||
install-tools: $(SHLIBS)
|
||||
install -d -m 755 $(SYSROOT)$(USRLIBDIR)/tsduck
|
||||
- $(if $(NO_TSPLUGINS),rm -rf $(addsuffix $(SO_SUFFIX),$(addprefix $(SYSROOT)$(USRLIBDIR)/tsduck/,$(NO_TSPLUGINS)),))
|
||||
$(if $(MACOS),rm -rf $(SYSROOT)$(USRLIBDIR)/tsduck/*.so,)
|
||||
install -m 644 $(SHLIBS) $(SYSROOT)$(USRLIBDIR)/tsduck
|
||||
install-devel:
|
9
packages/libtsduck/src-tstools-Makefile.patch
Normal file
9
packages/libtsduck/src-tstools-Makefile.patch
Normal file
@ -0,0 +1,9 @@
|
||||
--- a/src/tstools/Makefile
|
||||
+++ b/src/tstools/Makefile
|
||||
@@ -63,6 +63,5 @@
|
||||
install -m 755 $(EXECS) $(SYSROOT)$(SYSPREFIX)/bin
|
||||
install -m 644 tsduck-completion.bash $(SYSROOT)$(BASHCOMP_DIR)/$(if $(BASHCOMP_AUTO),_tsduck,tsduck)
|
||||
$(if $(BASHCOMP_AUTO),for cmd in $(ALLTOOLS); do ln -sf _tsduck $(SYSROOT)$(BASHCOMP_DIR)/$$cmd; done)
|
||||
- $(if $(NO_TSTOOLS),rm -rf $(addprefix $(SYSROOT)$(SYSPREFIX)/bin/,$(NO_TSTOOLS)))
|
||||
install-devel:
|
||||
@true
|
3
packages/libtsduck/tsduck-java.subpackage.sh
Normal file
3
packages/libtsduck/tsduck-java.subpackage.sh
Normal file
@ -0,0 +1,3 @@
|
||||
TERMUX_SUBPKG_INCLUDE="share/tsduck/java/"
|
||||
TERMUX_SUBPKG_DESCRIPTION="Java bindings for TSDuck"
|
||||
TERMUX_SUBPKG_DEPENDS="openjdk-17"
|
2
packages/libtsduck/tsduck-plugins.subpackage.sh
Normal file
2
packages/libtsduck/tsduck-plugins.subpackage.sh
Normal file
@ -0,0 +1,2 @@
|
||||
TERMUX_SUBPKG_INCLUDE="lib/tsduck/"
|
||||
TERMUX_SUBPKG_DESCRIPTION="Plugins for TSDuck"
|
3
packages/libtsduck/tsduck-python.subpackage.sh
Normal file
3
packages/libtsduck/tsduck-python.subpackage.sh
Normal file
@ -0,0 +1,3 @@
|
||||
TERMUX_SUBPKG_INCLUDE="share/tsduck/python/"
|
||||
TERMUX_SUBPKG_DESCRIPTION="Python bindings for TSDuck"
|
||||
TERMUX_SUBPKG_DEPENDS="python"
|
2
packages/libtsduck/tsduck-tools.subpackage.sh
Normal file
2
packages/libtsduck/tsduck-tools.subpackage.sh
Normal file
@ -0,0 +1,2 @@
|
||||
TERMUX_SUBPKG_INCLUDE="bin/ share/bash-completion/"
|
||||
TERMUX_SUBPKG_DESCRIPTION="Command line tools for TSDuck"
|
Loading…
Reference in New Issue
Block a user