diff --git a/multimedia/shaka-packager/Makefile b/multimedia/shaka-packager/Makefile index 476dd0579b80..bea8454c2414 100644 --- a/multimedia/shaka-packager/Makefile +++ b/multimedia/shaka-packager/Makefile @@ -1,43 +1,53 @@ PORTNAME= shaka-packager DISTVERSIONPREFIX= v DISTVERSION= 3.9.0 +PORTREVISION= 1 CATEGORIES= multimedia MAINTAINER= olgeni@FreeBSD.org COMMENT= Media packaging SDK and tool for DASH and HLS WWW= https://github.com/shaka-project/shaka-packager LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE -USES= cmake compiler:c++17-lang python:build +BUILD_DEPENDS= ${LOCALBASE}/include/nlohmann/json.hpp:devel/nlohmann-json \ + ${PYTHON_PKGNAMEPREFIX}protobuf>0:devel/py-protobuf@${PY_FLAVOR} +LIB_DEPENDS= libabsl_base.so:devel/abseil \ + libcurl.so:ftp/curl \ + libmbedtls.so:security/mbedtls3 \ + libpng.so:graphics/png \ + libprotobuf.so:devel/protobuf \ + libwebm.so:multimedia/libwebm + +USES= cmake compiler:c++17-lang gnome pkgconfig python:build USE_GITHUB= yes GH_ACCOUNT= shaka-project -GH_TUPLE= google:googletest:15460959cbbfa20e66ef0b5ab497367e47fc0a04:googletest/packager/third_party/googletest/source \ - abseil:abseil-cpp:255c84dadd029fd8ad25c5efb5933e47beaa00c7:abseil/packager/third_party/abseil-cpp/source \ - curl:curl:8c908d2d0a6d32abdedda2c52e90bd56ec76c24d:curl/packager/third_party/curl/source \ - nlohmann:json:55f93686c01528224f448c19128836e7df245f72:json/packager/third_party/json/source \ - Mbed-TLS:mbedtls:e185d7fd85499c8ce5ca2a54f5cf8fe7dbe3f8df:mbedtls/packager/third_party/mbedtls/source \ - Mbed-TLS:mbedtls-framework:457996474728cb8e968ed21953b72f74d2f536b2:mbedtlsframework/packager/third_party/mbedtls/source/framework \ - madler:zlib:5c42a230b7b468dff011f444161c0145b5efae59:zlib/packager/third_party/zlib/source \ - glennrp:libpng:2b978915d82377df13fcbb1fb56660195ded868a:libpng/packager/third_party/libpng/source \ - webmproject:libwebm:f2a982d748b80586ae53b89a2e6ebbc305848b8c:libwebm/packager/third_party/libwebm/source \ - GNOME:libxml2:3d840e17858de03a09fba8b202e3a89267d5795a:libxml2/packager/third_party/libxml2/source \ - protocolbuffers:protobuf:b6f9284da830b69be787732ffdaa35049d20a088:protobuf/packager/third_party/protobuf/source \ - cesanta:mongoose:5c8e05a4fc34c5309ceea887a7e60b895b2100d7:mongoose/packager/third_party/mongoose/source \ - c-ares:c-ares:d3a507e920e7af18a5efb7f9f1d8044ed4750013:cares/packager/third_party/c-ares/source \ - microsoft:mimalloc:4e50d6714d471b72b2285e25a3df6c92db944593:mimalloc/packager/third_party/mimalloc/source - -CMAKE_OFF= BUILD_SHARED_LIBS USE_SYSTEM_DEPENDENCIES + +USE_GNOME= libxml2 + +# Provide the version string explicitly; the build is from a tarball, so the +# git-based version detection would otherwise report "unknown-version". +CMAKE_ARGS= -DPACKAGER_VERSION=${DISTVERSIONFULL} + +# Link against the system libraries instead of the bundled copies, per the +# upstream USE_SYSTEM_DEPENDENCIES option. Only the two command line tools are +# built (ALL_TARGET); the unit test suite (which needs a bundled mongoose and +# googletest) is skipped. CMAKE_SKIP_INSTALL_ALL_DEPENDENCY keeps the staging +# step from rebuilding the full "all" target (and thus the tests). +CMAKE_ON= USE_SYSTEM_DEPENDENCIES \ + CMAKE_SKIP_INSTALL_ALL_DEPENDENCY + +ALL_TARGET= mpd_generator packager PLIST_FILES= bin/mpd_generator \ bin/packager -# Drop the pssh-box helper and its bundled protobuf Python runtime (168 files -# under bin/pssh-box-protos); ship only the packager and mpd_generator tools. -post-install: - ${RM} -r ${STAGEDIR}${PREFIX}/bin/pssh-box.py \ - ${STAGEDIR}${PREFIX}/bin/pssh-box-protos +post-patch: + @cd ${WRKSRC}/packager && ${GREP} -rlE 'absl::(Reader|Writer)?MutexLock' . | \ + ${XARGS} ${REINPLACE_CMD} -E 's/(absl::(Reader|Writer)?MutexLock[[:space:]]+[[:alnum:]_]+\()([[:alnum:]_])/\1\&\3/g' + ${REINPLACE_CMD} -e 's|mutex->unlock()|mutex->Unlock()|' \ + ${WRKSRC}/packager/file/threaded_io_file.cc .include diff --git a/multimedia/shaka-packager/distinfo b/multimedia/shaka-packager/distinfo index 1258d0cdf9f0..25240b61e41b 100644 --- a/multimedia/shaka-packager/distinfo +++ b/multimedia/shaka-packager/distinfo @@ -1,31 +1,3 @@ -TIMESTAMP = 1783769960 +TIMESTAMP = 1783856305 SHA256 (shaka-project-shaka-packager-v3.9.0_GH0.tar.gz) = 9611f07dc785ed13e9e367ab53da5caef1c30a400c136eba746b69d9b07ffe80 SIZE (shaka-project-shaka-packager-v3.9.0_GH0.tar.gz) = 71129400 -SHA256 (google-googletest-15460959cbbfa20e66ef0b5ab497367e47fc0a04_GH0.tar.gz) = 258f33ab1a8ee17adf48ec65e821d0ea9eafcbedeff6110f9eaed78472e73dde -SIZE (google-googletest-15460959cbbfa20e66ef0b5ab497367e47fc0a04_GH0.tar.gz) = 855900 -SHA256 (abseil-abseil-cpp-255c84dadd029fd8ad25c5efb5933e47beaa00c7_GH0.tar.gz) = 87e91fb785a2d0233f4599317afd576b7736e6732d557bdcdfdc11990bd333ef -SIZE (abseil-abseil-cpp-255c84dadd029fd8ad25c5efb5933e47beaa00c7_GH0.tar.gz) = 2301499 -SHA256 (curl-curl-8c908d2d0a6d32abdedda2c52e90bd56ec76c24d_GH0.tar.gz) = 905a45930dc0a9c3954fb483be38ad4e4bf60805ad61eccbcb605b33976758b5 -SIZE (curl-curl-8c908d2d0a6d32abdedda2c52e90bd56ec76c24d_GH0.tar.gz) = 3459450 -SHA256 (nlohmann-json-55f93686c01528224f448c19128836e7df245f72_GH0.tar.gz) = 67f4cdd9ca930c9c1e130af4a437c7fc98fab77a2846fc2d2a14b4943831f8ef -SIZE (nlohmann-json-55f93686c01528224f448c19128836e7df245f72_GH0.tar.gz) = 9681256 -SHA256 (Mbed-TLS-mbedtls-e185d7fd85499c8ce5ca2a54f5cf8fe7dbe3f8df_GH0.tar.gz) = 052dccf3a404dce25a467c6fe044b0c858d609ace8e883b59e9dfd479fdd4528 -SIZE (Mbed-TLS-mbedtls-e185d7fd85499c8ce5ca2a54f5cf8fe7dbe3f8df_GH0.tar.gz) = 5673564 -SHA256 (Mbed-TLS-mbedtls-framework-457996474728cb8e968ed21953b72f74d2f536b2_GH0.tar.gz) = c15bcc24fc43bdf325b0e04fa63270daf6e9488167b94b46547d8134efa9c906 -SIZE (Mbed-TLS-mbedtls-framework-457996474728cb8e968ed21953b72f74d2f536b2_GH0.tar.gz) = 945866 -SHA256 (madler-zlib-5c42a230b7b468dff011f444161c0145b5efae59_GH0.tar.gz) = 59b61656a6629f27567d58fe9b62b4398358ff108e273fbe2646980df1ee46eb -SIZE (madler-zlib-5c42a230b7b468dff011f444161c0145b5efae59_GH0.tar.gz) = 1573297 -SHA256 (glennrp-libpng-2b978915d82377df13fcbb1fb56660195ded868a_GH0.tar.gz) = fba1c8e793f01b493f3f47a926862edbfab487ae4240e02ec67131f1e2bf067f -SIZE (glennrp-libpng-2b978915d82377df13fcbb1fb56660195ded868a_GH0.tar.gz) = 1583920 -SHA256 (webmproject-libwebm-f2a982d748b80586ae53b89a2e6ebbc305848b8c_GH0.tar.gz) = 796857525e8b02ee6725f83c5f1e435b01b6aa57aedbe3879a9057ad1d290bec -SIZE (webmproject-libwebm-f2a982d748b80586ae53b89a2e6ebbc305848b8c_GH0.tar.gz) = 500823 -SHA256 (GNOME-libxml2-3d840e17858de03a09fba8b202e3a89267d5795a_GH0.tar.gz) = 0650a5977922cde948d237c8cd172d945ba2d6dcf285c443a9d975123aa6c724 -SIZE (GNOME-libxml2-3d840e17858de03a09fba8b202e3a89267d5795a_GH0.tar.gz) = 2961056 -SHA256 (protocolbuffers-protobuf-b6f9284da830b69be787732ffdaa35049d20a088_GH0.tar.gz) = 374166fe6f8f1178ef2d759262548eb7063bde83c2805f6db71c5fca87a9d87d -SIZE (protocolbuffers-protobuf-b6f9284da830b69be787732ffdaa35049d20a088_GH0.tar.gz) = 6901563 -SHA256 (cesanta-mongoose-5c8e05a4fc34c5309ceea887a7e60b895b2100d7_GH0.tar.gz) = ec6ef00270ec031bb1e6ff6680e4876596af297c64d07b6cbff1e31509d086dd -SIZE (cesanta-mongoose-5c8e05a4fc34c5309ceea887a7e60b895b2100d7_GH0.tar.gz) = 11170397 -SHA256 (c-ares-c-ares-d3a507e920e7af18a5efb7f9f1d8044ed4750013_GH0.tar.gz) = cd1968cd09d384a5c553c82bf53ba458e47e9bfcdc253a3627f1b36ea6f814e2 -SIZE (c-ares-c-ares-d3a507e920e7af18a5efb7f9f1d8044ed4750013_GH0.tar.gz) = 586644 -SHA256 (microsoft-mimalloc-4e50d6714d471b72b2285e25a3df6c92db944593_GH0.tar.gz) = 7da5f0915ef2cf40671da52601ba8f457bacf4a4af83404fe8566eb48c1e8c78 -SIZE (microsoft-mimalloc-4e50d6714d471b72b2285e25a3df6c92db944593_GH0.tar.gz) = 1166210 diff --git a/multimedia/shaka-packager/files/patch-packager_CMakeLists.txt b/multimedia/shaka-packager/files/patch-packager_CMakeLists.txt new file mode 100644 index 000000000000..7b960dd36792 --- /dev/null +++ b/multimedia/shaka-packager/files/patch-packager_CMakeLists.txt @@ -0,0 +1,20 @@ +--- packager/CMakeLists.txt.orig ++++ packager/CMakeLists.txt +@@ -76,7 +76,6 @@ + # define them here and not in the third_party subdirectory. + find_package(absl REQUIRED) + find_package(MbedTLS REQUIRED) +- find_package(GTest REQUIRED) + find_package(CURL REQUIRED) + find_package(LibXml2 REQUIRED) + find_package(PNG REQUIRED) +@@ -86,9 +85,6 @@ + + # Alias to same names as vendored dependencies + add_library(mbedtls ALIAS MbedTLS::mbedtls) +- add_library(gmock ALIAS GTest::gmock) +- add_library(gtest ALIAS GTest::gtest) +- add_library(gtest_main ALIAS GTest::gtest_main) + add_library(libcurl ALIAS CURL::libcurl) + add_library(LibXml2 ALIAS LibXml2::LibXml2) + add_library(png_static ALIAS PNG::PNG) # not static but the expected library name diff --git a/multimedia/shaka-packager/files/patch-packager_mpd_CMakeLists.txt b/multimedia/shaka-packager/files/patch-packager_mpd_CMakeLists.txt new file mode 100644 index 000000000000..73c6524f2bc1 --- /dev/null +++ b/multimedia/shaka-packager/files/patch-packager_mpd_CMakeLists.txt @@ -0,0 +1,9 @@ +--- packager/mpd/CMakeLists.txt.orig ++++ packager/mpd/CMakeLists.txt +@@ -110,6 +110,5 @@ + file + absl::flags + mpd_builder +- mpd_mocks + ) + diff --git a/multimedia/shaka-packager/files/patch-packager_tools_CMakeLists.txt b/multimedia/shaka-packager/files/patch-packager_tools_CMakeLists.txt new file mode 100644 index 000000000000..3464fae96e0e --- /dev/null +++ b/multimedia/shaka-packager/files/patch-packager_tools_CMakeLists.txt @@ -0,0 +1,8 @@ +--- packager/tools/CMakeLists.txt.orig ++++ packager/tools/CMakeLists.txt +@@ -17,5 +17,3 @@ + + # Anyone who depends on this library will need this include directory. + target_include_directories(license_notice PUBLIC "${CMAKE_BINARY_DIR}") +- +-add_subdirectory(pssh)