From 7ba9810491efde9761f56c452415a95f16e8e15b Mon Sep 17 00:00:00 2001 From: Tee KOBAYASHI Date: Fri, 8 Apr 2022 21:24:16 +0900 Subject: [PATCH] new package: ccextractor --- packages/ccextractor/build.sh | 25 ++++ packages/ccextractor/src-CMakeLists.txt.patch | 129 ++++++++++++++++++ .../src-lib_ccx-CMakeLists.txt.patch | 75 ++++++++++ ...lib_ccx-ccx_sub_entry_message.pb-c.h.patch | 11 ++ .../ccextractor/src-lib_ccx-params.c.patch | 24 ++++ 5 files changed, 264 insertions(+) create mode 100644 packages/ccextractor/build.sh create mode 100644 packages/ccextractor/src-CMakeLists.txt.patch create mode 100644 packages/ccextractor/src-lib_ccx-CMakeLists.txt.patch create mode 100644 packages/ccextractor/src-lib_ccx-ccx_sub_entry_message.pb-c.h.patch create mode 100644 packages/ccextractor/src-lib_ccx-params.c.patch diff --git a/packages/ccextractor/build.sh b/packages/ccextractor/build.sh new file mode 100644 index 000000000..61bc94169 --- /dev/null +++ b/packages/ccextractor/build.sh @@ -0,0 +1,25 @@ +TERMUX_PKG_HOMEPAGE=https://ccextractor.org/ +TERMUX_PKG_DESCRIPTION="A tool used to produce subtitles for TV recordings" +TERMUX_PKG_LICENSE="GPL-2.0" +TERMUX_PKG_MAINTAINER="@termux" +TERMUX_PKG_VERSION=0.94 +TERMUX_PKG_SRCURL=https://github.com/CCExtractor/ccextractor/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz +TERMUX_PKG_SHA256=9c7be386257c69b5d8cd9d7466dbf20e3a45cea950cc8ca7486a956c3be54a42 +TERMUX_PKG_DEPENDS="freetype, gpac, libiconv, libmd, libpng, libprotobuf-c, utf8proc" +TERMUX_PKG_BUILD_DEPENDS="zlib" +TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" +-DWITHOUT_RUST=ON +" + +termux_step_post_get_source() { + rm -rf src/thirdparty + touch src/lib_ccx/config.h +} + +termux_step_pre_configure() { + TERMUX_PKG_SRCDIR+="/src" + + CPPFLAGS+=" -D__USE_GNU" + CFLAGS+=" -fcommon" + LDFLAGS+=" -liconv" +} diff --git a/packages/ccextractor/src-CMakeLists.txt.patch b/packages/ccextractor/src-CMakeLists.txt.patch new file mode 100644 index 000000000..0c6441083 --- /dev/null +++ b/packages/ccextractor/src-CMakeLists.txt.patch @@ -0,0 +1,129 @@ +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -58,71 +58,8 @@ + include_directories(${PROJECT_SOURCE_DIR}) + include_directories(${PROJECT_SOURCE_DIR}/lib_ccx) + include_directories(${PROJECT_SOURCE_DIR}/lib_ccx/zvbi) +-include_directories(${PROJECT_SOURCE_DIR}/thirdparty) +-include_directories(${PROJECT_SOURCE_DIR}/thirdparty/gpacmp4) +-include_directories(${PROJECT_SOURCE_DIR}/thirdparty/protobuf-c) +-include_directories(${PROJECT_SOURCE_DIR}/thirdparty/lib_hash) +-include_directories(${PROJECT_SOURCE_DIR}/thirdparty/libpng) +- +-if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND ${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "arm64") +- include_directories(${PROJECT_SOURCE_DIR}/thirdparty/libpng/arm) +- aux_source_directory(${PROJECT_SOURCE_DIR}/thirdparty/libpng/arm SOURCEFILE) +-endif () +- +-include_directories(${PROJECT_SOURCE_DIR}/thirdparty/zlib) +-include_directories(${PROJECT_SOURCE_DIR}/thirdparty/freetype/include) +-aux_source_directory(${PROJECT_SOURCE_DIR}/thirdparty/gpacmp4/ SOURCEFILE) +-aux_source_directory(${PROJECT_SOURCE_DIR}/thirdparty/lib_hash/ SOURCEFILE) +-aux_source_directory(${PROJECT_SOURCE_DIR}/thirdparty/libpng/ SOURCEFILE) +-aux_source_directory(${PROJECT_SOURCE_DIR}/thirdparty/protobuf-c/ SOURCEFILE) +-aux_source_directory(${PROJECT_SOURCE_DIR}/thirdparty/zlib/ SOURCEFILE) + aux_source_directory(${PROJECT_SOURCE_DIR}/lib_ccx/zvbi/ SOURCEFILE) + +-set(UTF8PROC_SOURCE ${PROJECT_SOURCE_DIR}/thirdparty/utf8proc/utf8proc.c) +- +-set(FREETYPE_SOURCE +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/autofit/autofit.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/base/ftbase.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/base/ftbbox.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/base/ftbdf.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/base/ftbitmap.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/base/ftcid.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/base/ftfntfmt.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/base/ftfstype.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/base/ftgasp.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/base/ftglyph.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/base/ftgxval.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/base/ftinit.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/base/ftlcdfil.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/base/ftmm.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/base/ftotval.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/base/ftpatent.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/base/ftpfr.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/base/ftstroke.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/base/ftsynth.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/base/ftsystem.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/base/fttype1.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/base/ftwinfnt.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/bdf/bdf.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/bzip2/ftbzip2.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/cache/ftcache.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/cff/cff.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/cid/type1cid.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/gzip/ftgzip.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/lzw/ftlzw.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/pcf/pcf.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/pfr/pfr.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/psaux/psaux.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/pshinter/pshinter.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/psnames/psnames.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/raster/raster.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/sfnt/sfnt.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/smooth/smooth.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/truetype/truetype.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/type1/type1.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/type42/type42.c +- ${PROJECT_SOURCE_DIR}/thirdparty/freetype/winfonts/winfnt.c +- ) + #Windows specific libraries and linker flags + if(WIN32) + include_directories ("${PROJECT_SOURCE_DIR}/thirdparty/win_spec_incld/") +@@ -153,9 +90,33 @@ + endif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + + +-set (EXTRA_LIBS ${EXTRA_LIBS} -lm -lpthread -ldl) ++set (EXTRA_LIBS ${EXTRA_LIBS} -lm -ldl) ++ ++find_package (PkgConfig REQUIRED) + +-find_package (PkgConfig) ++pkg_check_modules (GPAC REQUIRED gpac) ++pkg_check_modules (PROTOBUF_C REQUIRED libprotobuf-c) ++pkg_check_modules (LIBMD REQUIRED libmd) ++pkg_check_modules (LIBPNG REQUIRED libpng) ++pkg_check_modules (ZLIB REQUIRED zlib) ++pkg_check_modules (FREETYPE REQUIRED freetype2) ++pkg_check_modules (UTF8PROC REQUIRED libutf8proc) ++ ++set (EXTRA_LIBS ${EXTRA_LIBS} ${GPAC_LIBRARIES}) ++set (EXTRA_LIBS ${EXTRA_LIBS} ${PROTOBUF_C_LIBRARIES}) ++set (EXTRA_LIBS ${EXTRA_LIBS} ${LIBMD_LIBRARIES}) ++set (EXTRA_LIBS ${EXTRA_LIBS} ${LIBPNG_LIBRARIES}) ++set (EXTRA_LIBS ${EXTRA_LIBS} ${ZLIB_LIBRARIES}) ++set (EXTRA_LIBS ${EXTRA_LIBS} ${FREETYPE_LIBRARIES}) ++set (EXTRA_LIBS ${EXTRA_LIBS} ${UTF8PROC_LIBRARIES}) ++ ++set (EXTRA_INCLUDES ${EXTRA_INCLUDES} ${GPAC_INCLUDE_DIRS}) ++set (EXTRA_INCLUDES ${EXTRA_INCLUDES} ${PROTOBUF_C_INCLUDE_DIRS}) ++set (EXTRA_INCLUDES ${EXTRA_INCLUDES} ${LIBMD_INCLUDE_DIRS}) ++set (EXTRA_INCLUDES ${EXTRA_INCLUDES} ${LIBPNG_INCLUDE_DIRS}) ++set (EXTRA_INCLUDES ${EXTRA_INCLUDES} ${ZLIB_INCLUDE_DIRS}) ++set (EXTRA_INCLUDES ${EXTRA_INCLUDES} ${FREETYPE_INCLUDE_DIRS}) ++set (EXTRA_INCLUDES ${EXTRA_INCLUDES} ${UTF8PROC_INCLUDE_DIRS}) + + ######################################################## + # Build using FFmpeg libraries +@@ -209,9 +170,6 @@ + pkg_check_modules (NANOMSG REQUIRED libnanomsg) + set (EXTRA_LIBS ${EXTRA_LIBS} ${NANOMSG_STATIC_LIBRARIES}) + +- include_directories ("${PROJECT_SOURCE_DIR}/thirdparty/protobuf-c/") +- aux_source_directory ("${PROJECT_SOURCE_DIR}/thirdparty/protobuf-c/" SOURCEFILE) +- + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DENABLE_SHARING") + endif (PKG_CONFIG_FOUND AND WITH_SHARING) + +@@ -240,7 +198,7 @@ + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DENABLE_HARDSUBX") + endif (PKG_CONFIG_FOUND AND WITH_HARDSUBX) + +-add_executable (ccextractor ${SOURCEFILE} ${FREETYPE_SOURCE} ${UTF8PROC_SOURCE}) ++add_executable (ccextractor ${SOURCEFILE}) + + ######################################################## + # Build with Rust library diff --git a/packages/ccextractor/src-lib_ccx-CMakeLists.txt.patch b/packages/ccextractor/src-lib_ccx-CMakeLists.txt.patch new file mode 100644 index 000000000..6379cd508 --- /dev/null +++ b/packages/ccextractor/src-lib_ccx-CMakeLists.txt.patch @@ -0,0 +1,75 @@ +--- a/src/lib_ccx/CMakeLists.txt ++++ b/src/lib_ccx/CMakeLists.txt +@@ -3,16 +3,40 @@ + if(MSVC) + set (CMAKE_C_FLAGS "-W3 /wd4005 /wd4996") + else (MSVC) +- set (CMAKE_C_FLAGS "-Wall -Wno-pointer-sign -g -std=gnu99") ++ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-pointer-sign -g -std=gnu99") + endif(MSVC) + + if(WIN32) + add_definitions(-DWIN32) + endif(WIN32) + +-if (WITH_FFMPEG) +- find_package(PkgConfig) ++find_package (PkgConfig REQUIRED) ++ ++pkg_check_modules (GPAC REQUIRED gpac) ++pkg_check_modules (PROTOBUF_C REQUIRED libprotobuf-c) ++pkg_check_modules (LIBMD REQUIRED libmd) ++pkg_check_modules (LIBPNG REQUIRED libpng) ++pkg_check_modules (ZLIB REQUIRED zlib) ++pkg_check_modules (FREETYPE REQUIRED freetype2) ++pkg_check_modules (UTF8PROC REQUIRED libutf8proc) ++ ++set (EXTRA_LIBS ${EXTRA_LIBS} ${GPAC_LIBRARIES}) ++set (EXTRA_LIBS ${EXTRA_LIBS} ${PROTOBUF_C_LIBRARIES}) ++set (EXTRA_LIBS ${EXTRA_LIBS} ${LIBMD_LIBRARIES}) ++set (EXTRA_LIBS ${EXTRA_LIBS} ${LIBPNG_LIBRARIES}) ++set (EXTRA_LIBS ${EXTRA_LIBS} ${ZLIB_LIBRARIES}) ++set (EXTRA_LIBS ${EXTRA_LIBS} ${FREETYPE_LIBRARIES}) ++set (EXTRA_LIBS ${EXTRA_LIBS} ${UTF8PROC_LIBRARIES}) ++ ++set (EXTRA_INCLUDES ${EXTRA_INCLUDES} ${GPAC_INCLUDE_DIRS}) ++set (EXTRA_INCLUDES ${EXTRA_INCLUDES} ${PROTOBUF_C_INCLUDE_DIRS}) ++set (EXTRA_INCLUDES ${EXTRA_INCLUDES} ${LIBMD_INCLUDE_DIRS}) ++set (EXTRA_INCLUDES ${EXTRA_INCLUDES} ${LIBPNG_INCLUDE_DIRS}) ++set (EXTRA_INCLUDES ${EXTRA_INCLUDES} ${ZLIB_INCLUDE_DIRS}) ++set (EXTRA_INCLUDES ${EXTRA_INCLUDES} ${FREETYPE_INCLUDE_DIRS}) ++set (EXTRA_INCLUDES ${EXTRA_INCLUDES} ${UTF8PROC_INCLUDE_DIRS}) + ++if (WITH_FFMPEG) + pkg_check_modules (AVFORMAT REQUIRED libavformat) + pkg_check_modules (AVUTIL REQUIRED libavutil) + pkg_check_modules (AVCODEC REQUIRED libavcodec) +@@ -55,7 +79,6 @@ + endif (WITH_SHARING) + + aux_source_directory ("${PROJECT_SOURCE_DIR}/lib_ccx/" SOURCEFILE) +-aux_source_directory ("${PROJECT_SOURCE_DIR}/gpacmp4/" SOURCEFILE) + + add_library (ccx ${SOURCEFILE} ccx_dtvcc.h ccx_dtvcc.c ccx_encoders_mcc.c ccx_encoders_mcc.h) + target_link_libraries (ccx ${EXTRA_LIBS}) +@@ -97,20 +120,3 @@ + if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DGPAC_CONFIG_DARWIN") + endif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") +- +- +-file (GLOB HeaderFiles *.h) +-file (WRITE ccx.pc "prefix=${CMAKE_INSTALL_PREFIX}\n" +- "includedir=\${prefix}/include\n" +- "libdir=\${prefix}/lib\n\n" +- "Name: ccx\n" +- "Description: Closed Caption Extraction library\n" +- "Version: 0.75\n" +- "Cflags: -I\${includedir}/\n" +- "Libs: -L\${libdir} -lccx -lpng\n" +- "Libs.private: -lpng\n" +- ) +- +-install (TARGETS ccx DESTINATION lib) +-install (FILES ${HeaderFiles} DESTINATION include) +-install (FILES ccx.pc DESTINATION lib/pkgconfig) diff --git a/packages/ccextractor/src-lib_ccx-ccx_sub_entry_message.pb-c.h.patch b/packages/ccextractor/src-lib_ccx-ccx_sub_entry_message.pb-c.h.patch new file mode 100644 index 000000000..ae24a03db --- /dev/null +++ b/packages/ccextractor/src-lib_ccx-ccx_sub_entry_message.pb-c.h.patch @@ -0,0 +1,11 @@ +--- a/src/lib_ccx/ccx_sub_entry_message.pb-c.h ++++ b/src/lib_ccx/ccx_sub_entry_message.pb-c.h +@@ -4,7 +4,7 @@ + #ifndef PROTOBUF_C_ccx_5fsub_5fentry_5fmessage_2eproto__INCLUDED + #define PROTOBUF_C_ccx_5fsub_5fentry_5fmessage_2eproto__INCLUDED + +-#include "protobuf-c.h" ++#include "protobuf-c/protobuf-c.h" + #include "lib_ccx.h" + + #ifdef ENABLE_SHARING diff --git a/packages/ccextractor/src-lib_ccx-params.c.patch b/packages/ccextractor/src-lib_ccx-params.c.patch new file mode 100644 index 000000000..ed53c0e98 --- /dev/null +++ b/packages/ccextractor/src-lib_ccx-params.c.patch @@ -0,0 +1,24 @@ +--- a/src/lib_ccx/params.c ++++ b/src/lib_ccx/params.c +@@ -1,6 +1,7 @@ + #include "png.h" +-#include "protobuf-c.h" ++#include "protobuf-c/protobuf-c.h" + #include "zlib.h" ++#include "gpac/setup.h" + #include "gpac/version.h" + #include "lib_ccx.h" + #include "ccx_common_option.h" +@@ -10,10 +11,10 @@ + #include "ccx_common_common.h" + #include "ccx_decoders_708.h" + #include "compile_info.h" +-#include "../lib_hash/sha2.h" ++#include "sha256.h" + #include + #include +-#include ++#include + + #ifdef ENABLE_OCR + #include