From 3a38753a358be3c08b46777968b20bd274d03f09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milo=C5=A1=20Komar=C4=8Devi=C4=87?= Date: Mon, 28 Jun 2021 22:45:47 +0200 Subject: [PATCH 1/5] libyuv: update to 1787 --- mingw-w64-libyuv-git/PKGBUILD | 78 +++++++++++++--------- mingw-w64-libyuv-git/cmake-mingw.patch | 15 +++-- mingw-w64-libyuv-git/libyuv-jpeg.patch | 12 ++++ mingw-w64-libyuv-git/libyuv-nojpeg.patch | 36 ---------- mingw-w64-libyuv-git/libyuv.pc | 8 --- mingw-w64-libyuv-git/libyuv.pc.in | 12 ++++ mingw-w64-libyuv-git/pkgconfig-cmake.patch | 14 ++++ 7 files changed, 95 insertions(+), 80 deletions(-) create mode 100644 mingw-w64-libyuv-git/libyuv-jpeg.patch delete mode 100644 mingw-w64-libyuv-git/libyuv-nojpeg.patch delete mode 100644 mingw-w64-libyuv-git/libyuv.pc create mode 100644 mingw-w64-libyuv-git/libyuv.pc.in create mode 100644 mingw-w64-libyuv-git/pkgconfig-cmake.patch diff --git a/mingw-w64-libyuv-git/PKGBUILD b/mingw-w64-libyuv-git/PKGBUILD index e091240630..d5adaac631 100644 --- a/mingw-w64-libyuv-git/PKGBUILD +++ b/mingw-w64-libyuv-git/PKGBUILD @@ -1,62 +1,78 @@ # Maintainer: Antoine Martin _realname=libyuv -pkgbase="mingw-w64-${_realname}-git" +pkgbase=mingw-w64-${_realname}-git pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-git) provides=(${MINGW_PACKAGE_PREFIX}-${_realname}) conflics=(${MINGW_PACKAGE_PREFIX}-${_realname}) -pkgver=1724.r7ce50764 +pkgver=1787.eb6e7bb6 pkgrel=1 -pkgdesc="YUV conversion and scaling library" -arch=(any) +pkgdesc="YUV conversion and scaling library (git) (mingw-w64)" +arch=('any') mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32') url="https://chromium.googlesource.com/libyuv/libyuv" -license=('BSD') -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake") +license=('BSD-3-Clause') +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-ninja" + 'git') +depends=("${MINGW_PACKAGE_PREFIX}-libjpeg") #this is the real upstream, but git checkout timesout at the moment: #source=("${_realname}::git+https://chromium.googlesource.com/${_realname}/${_realname}" #so we use a github mirror instead: -_commit="7ce50764c52055035bfa3f469555b353c0bcd045" +_commit="eb6e7bb63738e29efd82ea3cf2a115238a89fa51" source=("${_realname}::git+https://github.com/lemenkov/${_realname}#commit=${_commit}" - "libyuv.pc" - "libyuv-nojpeg.patch" - "cmake-mingw.patch") + "libyuv.pc.in" + "libyuv-jpeg.patch" + "cmake-mingw.patch" + "pkgconfig-cmake.patch") options=('strip' 'staticlibs') sha256sums=('SKIP' - '86b8cbaadaea129775ebfa2d69f7b5e7d277c39b48377966da276a46a5bb2aa8' - '1fac09a44d5ef663478d951c4ed31bb335d5e97dc8345ffbd5ad4d07766d040c' - '4f08ebd0647ea4873db70042334e2ef19734ddf9c7b8b1dca70b633b89e405ef') + '86aaa22252e033e62931e7c3fe3a6be4143a8ca532f95c1346b1e6b278c1947f' + '7ad4df4a33ce7623bbea336ade74b4fbfb6a750973dba359e287b6bfcbfa7f09' + '3897bfb1be028bacf065906a5032811bca0203527dd0348e8a7d264e43999957' + 'b7fc89b8a8da6b3dd2165b9be3408545b3e6ec6e7cae34a50843c5a24f8313c0') pkgver() { - cd "${srcdir}/${_realname}" + cd "${srcdir}"/${_realname} VERSION=$(cat include/libyuv/version.h | grep "#define LIBYUV_VERSION" | awk '{print $3}') - REVISION=$(git rev-parse --short "${_commit}") - echo "${VERSION}.r${REVISION}" + COMMIT=$(git rev-parse --short "${_commit}") + echo "${VERSION}.${COMMIT}" } prepare() { - cd "${srcdir}/${_realname}" - patch -p1 -i "$srcdir"/libyuv-nojpeg.patch - patch -p1 -i "$srcdir"/cmake-mingw.patch + cd "${srcdir}"/${_realname} + cp "${srcdir}"/libyuv.pc.in "${srcdir}"/${_realname} + patch -p1 -i "${srcdir}"/libyuv-jpeg.patch + patch -p1 -i "${srcdir}"/cmake-mingw.patch + patch -p1 -i "${srcdir}"/pkgconfig-cmake.patch } build() { - [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} - mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd ${srcdir}/build-${MINGW_CHOST} + [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} + mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} + + declare -a extra_config + if check_option "debug" "n"; then + extra_config+=("-DCMAKE_BUILD_TYPE=Release") + else + extra_config+=("-DCMAKE_BUILD_TYPE=Debug") + fi MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ - ${MINGW_PREFIX}/bin/cmake -Wno-dev \ - -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ - ../${_realname} - echo "cmake done" - make + ${MINGW_PREFIX}/bin/cmake \ + -GNinja \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + "${extra_config[@]}" \ + -DBUILD_SHARED_LIBS=ON \ + ../${_realname} + + ${MINGW_PREFIX}/bin/cmake --build . } package() { - cd build-${MINGW_CHOST} - make DESTDIR="${pkgdir}" install - mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/ - install -m644 ../libyuv.pc "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/" + cd "${srcdir}"/build-${CARCH} + + DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --build . --target install + install -Dm644 ${srcdir}/${_realname}/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } diff --git a/mingw-w64-libyuv-git/cmake-mingw.patch b/mingw-w64-libyuv-git/cmake-mingw.patch index a3fe2fc037..664b417576 100644 --- a/mingw-w64-libyuv-git/cmake-mingw.patch +++ b/mingw-w64-libyuv-git/cmake-mingw.patch @@ -1,11 +1,16 @@ ---- a/CMakeLists.txt.new 2019-02-23 14:57:10.916277725 +0700 -+++ b/CMakeLists.txt 2019-02-23 14:58:39.583668715 +0700 -@@ -81,7 +81,7 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 636531ee..c2a387a0 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -76,9 +76,9 @@ endif() # install the conversion tool, .so, .a, and all the header files -INSTALL ( PROGRAMS ${CMAKE_BINARY_DIR}/yuvconvert DESTINATION bin ) -+INSTALL ( PROGRAMS ${CMAKE_BINARY_DIR}/yuvconvert.exe DESTINATION bin ) ++INSTALL ( TARGETS yuvconvert DESTINATION bin ) INSTALL ( TARGETS ${ly_lib_static} DESTINATION lib ) - INSTALL ( TARGETS ${ly_lib_shared} LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) +-INSTALL ( TARGETS ${ly_lib_shared} LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) ++INSTALL ( TARGETS ${ly_lib_shared} ARCHIVE DESTINATION lib RUNTIME DESTINATION bin ) INSTALL ( DIRECTORY ${PROJECT_SOURCE_DIR}/include/ DESTINATION include ) + + # create the .deb and .rpm packages using cpack diff --git a/mingw-w64-libyuv-git/libyuv-jpeg.patch b/mingw-w64-libyuv-git/libyuv-jpeg.patch new file mode 100644 index 0000000000..58365eca7a --- /dev/null +++ b/mingw-w64-libyuv-git/libyuv-jpeg.patch @@ -0,0 +1,12 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 636531ee..c2a387a0 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -39,6 +39,7 @@ TARGET_LINK_LIBRARIES ( yuvconvert ${ly_lib_static} ) + if (JPEG_FOUND) + include_directories( ${JPEG_INCLUDE_DIR} ) + target_link_libraries( yuvconvert ${JPEG_LIBRARY} ) ++ target_link_libraries( ${ly_lib_shared} ${JPEG_LIBRARY} ) + add_definitions( -DHAVE_JPEG ) + endif() + diff --git a/mingw-w64-libyuv-git/libyuv-nojpeg.patch b/mingw-w64-libyuv-git/libyuv-nojpeg.patch deleted file mode 100644 index 3ab87e0989..0000000000 --- a/mingw-w64-libyuv-git/libyuv-nojpeg.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index ed4948f0..228ac830 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -35,12 +35,12 @@ ADD_EXECUTABLE ( yuvconvert ${ly_base_dir}/util/yuvconvert.cc ) - TARGET_LINK_LIBRARIES ( yuvconvert ${ly_lib_static} ) - - --INCLUDE ( FindJPEG ) --if (JPEG_FOUND) -- include_directories( ${JPEG_INCLUDE_DIR} ) -- target_link_libraries( yuvconvert ${JPEG_LIBRARY} ) -- add_definitions( -DHAVE_JPEG ) --endif() -+#INCLUDE ( FindJPEG ) -+#if (JPEG_FOUND) -+# include_directories( ${JPEG_INCLUDE_DIR} ) -+# target_link_libraries( yuvconvert ${JPEG_LIBRARY} ) -+# add_definitions( -DHAVE_JPEG ) -+#endif() - - if(TEST) - find_library(GTEST_LIBRARY gtest) -diff --git a/source/mjpeg_decoder.cc b/source/mjpeg_decoder.cc -index eaf25301..21cde70a 100644 ---- a/source/mjpeg_decoder.cc -+++ b/source/mjpeg_decoder.cc -@@ -25,7 +25,7 @@ - #endif - - #endif --struct FILE; // For jpeglib.h. -+//struct FILE; // For jpeglib.h. - - // C++ build requires extern C for jpeg internals. - #ifdef __cplusplus diff --git a/mingw-w64-libyuv-git/libyuv.pc b/mingw-w64-libyuv-git/libyuv.pc deleted file mode 100644 index 79a6ad735b..0000000000 --- a/mingw-w64-libyuv-git/libyuv.pc +++ /dev/null @@ -1,8 +0,0 @@ -prefix=@PREFIX@ -exec_prefix=${prefix} - -Name: libyuv -Description: YUV conversion and scaling library -URL: https://chromium.googlesource.com/libyuv/libyuv -Version: @VERSION@ -Libs: -lyuv diff --git a/mingw-w64-libyuv-git/libyuv.pc.in b/mingw-w64-libyuv-git/libyuv.pc.in new file mode 100644 index 0000000000..79ad28f10f --- /dev/null +++ b/mingw-w64-libyuv-git/libyuv.pc.in @@ -0,0 +1,12 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: libyuv +Description: YUV conversion and scaling library +URL: https://chromium.googlesource.com/libyuv/libyuv +Version: @YUV_VERSION@ +Requires.private: libjpeg +Cflags: -I${includedir} +Libs: -L${libdir} -lyuv diff --git a/mingw-w64-libyuv-git/pkgconfig-cmake.patch b/mingw-w64-libyuv-git/pkgconfig-cmake.patch new file mode 100644 index 0000000000..782218fdb6 --- /dev/null +++ b/mingw-w64-libyuv-git/pkgconfig-cmake.patch @@ -0,0 +1,14 @@ +diff --git a/CM_linux_packages.cmake b/CM_linux_packages.cmake +index 5f676f89..8410ba20 100644 +--- a/CM_linux_packages.cmake ++++ b/CM_linux_packages.cmake +@@ -10,6 +10,9 @@ SET ( YUV_VER_PATCH ${YUV_VERSION_NUMBER} ) + SET ( YUV_VERSION ${YUV_VER_MAJOR}.${YUV_VER_MINOR}.${YUV_VER_PATCH} ) + MESSAGE ( "Building ver.: ${YUV_VERSION}" ) + ++configure_file(libyuv.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libyuv.pc @ONLY) ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libyuv.pc DESTINATION lib/pkgconfig) ++ + # is this a 32-bit or 64-bit build? + IF ( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + SET ( YUV_BIT_SIZE 64 ) From 2d58ed111b53957a1e30aff1a761ef776c2493ca Mon Sep 17 00:00:00 2001 From: Christoph Reiter Date: Sun, 4 Jul 2021 19:36:22 +0200 Subject: [PATCH 2/5] libyuv: include the revision count in the version --- mingw-w64-libyuv-git/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-libyuv-git/PKGBUILD b/mingw-w64-libyuv-git/PKGBUILD index d5adaac631..2ce281f73c 100644 --- a/mingw-w64-libyuv-git/PKGBUILD +++ b/mingw-w64-libyuv-git/PKGBUILD @@ -5,7 +5,7 @@ pkgbase=mingw-w64-${_realname}-git pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-git) provides=(${MINGW_PACKAGE_PREFIX}-${_realname}) conflics=(${MINGW_PACKAGE_PREFIX}-${_realname}) -pkgver=1787.eb6e7bb6 +pkgver=1787.r2266.eb6e7bb6 pkgrel=1 pkgdesc="YUV conversion and scaling library (git) (mingw-w64)" arch=('any') @@ -34,9 +34,9 @@ sha256sums=('SKIP' pkgver() { cd "${srcdir}"/${_realname} - VERSION=$(cat include/libyuv/version.h | grep "#define LIBYUV_VERSION" | awk '{print $3}') - COMMIT=$(git rev-parse --short "${_commit}") - echo "${VERSION}.${COMMIT}" + local VERSION=$(cat include/libyuv/version.h | grep "#define LIBYUV_VERSION" | awk '{print $3}') + + printf "%s.r%s.%s" "${VERSION}" "$(git rev-list --count $_commit)" "$(git rev-parse --short $_commit)" } prepare() { From 6de09164d37ae7486795b74f6171e55d09f44f8f Mon Sep 17 00:00:00 2001 From: Christoph Reiter Date: Sun, 4 Jul 2021 19:37:58 +0200 Subject: [PATCH 3/5] libyuv: use the real upstream it seems to work, so try again --- mingw-w64-libyuv-git/PKGBUILD | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/mingw-w64-libyuv-git/PKGBUILD b/mingw-w64-libyuv-git/PKGBUILD index 2ce281f73c..d8d13c8df2 100644 --- a/mingw-w64-libyuv-git/PKGBUILD +++ b/mingw-w64-libyuv-git/PKGBUILD @@ -16,11 +16,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-ninja" 'git') depends=("${MINGW_PACKAGE_PREFIX}-libjpeg") -#this is the real upstream, but git checkout timesout at the moment: -#source=("${_realname}::git+https://chromium.googlesource.com/${_realname}/${_realname}" -#so we use a github mirror instead: _commit="eb6e7bb63738e29efd82ea3cf2a115238a89fa51" -source=("${_realname}::git+https://github.com/lemenkov/${_realname}#commit=${_commit}" +source=("${_realname}::git+https://chromium.googlesource.com/${_realname}/${_realname}#commit=${_commit}" "libyuv.pc.in" "libyuv-jpeg.patch" "cmake-mingw.patch" From a0db2f64990cb2be367cf90c06e211043ed58a14 Mon Sep 17 00:00:00 2001 From: Christoph Reiter Date: Sun, 4 Jul 2021 19:40:50 +0200 Subject: [PATCH 4/5] libyuv: remove the -git suffix --- {mingw-w64-libyuv-git => mingw-w64-libyuv}/PKGBUILD | 11 ++++++----- .../cmake-mingw.patch | 0 .../libyuv-jpeg.patch | 0 .../libyuv.pc.in | 0 .../pkgconfig-cmake.patch | 0 5 files changed, 6 insertions(+), 5 deletions(-) rename {mingw-w64-libyuv-git => mingw-w64-libyuv}/PKGBUILD (89%) rename {mingw-w64-libyuv-git => mingw-w64-libyuv}/cmake-mingw.patch (100%) rename {mingw-w64-libyuv-git => mingw-w64-libyuv}/libyuv-jpeg.patch (100%) rename {mingw-w64-libyuv-git => mingw-w64-libyuv}/libyuv.pc.in (100%) rename {mingw-w64-libyuv-git => mingw-w64-libyuv}/pkgconfig-cmake.patch (100%) diff --git a/mingw-w64-libyuv-git/PKGBUILD b/mingw-w64-libyuv/PKGBUILD similarity index 89% rename from mingw-w64-libyuv-git/PKGBUILD rename to mingw-w64-libyuv/PKGBUILD index d8d13c8df2..0b89409441 100644 --- a/mingw-w64-libyuv-git/PKGBUILD +++ b/mingw-w64-libyuv/PKGBUILD @@ -1,13 +1,14 @@ # Maintainer: Antoine Martin _realname=libyuv -pkgbase=mingw-w64-${_realname}-git -pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}-git) -provides=(${MINGW_PACKAGE_PREFIX}-${_realname}) -conflics=(${MINGW_PACKAGE_PREFIX}-${_realname}) +pkgbase=mingw-w64-${_realname} +pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}) +provides=(${MINGW_PACKAGE_PREFIX}-${_realname}-git) +conflics=(${MINGW_PACKAGE_PREFIX}-${_realname}-git) +replaces=(${MINGW_PACKAGE_PREFIX}-${_realname}-git) pkgver=1787.r2266.eb6e7bb6 pkgrel=1 -pkgdesc="YUV conversion and scaling library (git) (mingw-w64)" +pkgdesc="YUV conversion and scaling library (mingw-w64)" arch=('any') mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32') url="https://chromium.googlesource.com/libyuv/libyuv" diff --git a/mingw-w64-libyuv-git/cmake-mingw.patch b/mingw-w64-libyuv/cmake-mingw.patch similarity index 100% rename from mingw-w64-libyuv-git/cmake-mingw.patch rename to mingw-w64-libyuv/cmake-mingw.patch diff --git a/mingw-w64-libyuv-git/libyuv-jpeg.patch b/mingw-w64-libyuv/libyuv-jpeg.patch similarity index 100% rename from mingw-w64-libyuv-git/libyuv-jpeg.patch rename to mingw-w64-libyuv/libyuv-jpeg.patch diff --git a/mingw-w64-libyuv-git/libyuv.pc.in b/mingw-w64-libyuv/libyuv.pc.in similarity index 100% rename from mingw-w64-libyuv-git/libyuv.pc.in rename to mingw-w64-libyuv/libyuv.pc.in diff --git a/mingw-w64-libyuv-git/pkgconfig-cmake.patch b/mingw-w64-libyuv/pkgconfig-cmake.patch similarity index 100% rename from mingw-w64-libyuv-git/pkgconfig-cmake.patch rename to mingw-w64-libyuv/pkgconfig-cmake.patch From cc8121cb76ae2ba1a7bd0cc9560a36b3ab890a20 Mon Sep 17 00:00:00 2001 From: Christoph Reiter Date: Sun, 4 Jul 2021 19:56:34 +0200 Subject: [PATCH 5/5] libyuv: fix typo --- mingw-w64-libyuv/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-libyuv/PKGBUILD b/mingw-w64-libyuv/PKGBUILD index 0b89409441..4c6c9f131c 100644 --- a/mingw-w64-libyuv/PKGBUILD +++ b/mingw-w64-libyuv/PKGBUILD @@ -4,7 +4,7 @@ _realname=libyuv pkgbase=mingw-w64-${_realname} pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}) provides=(${MINGW_PACKAGE_PREFIX}-${_realname}-git) -conflics=(${MINGW_PACKAGE_PREFIX}-${_realname}-git) +conflicts=(${MINGW_PACKAGE_PREFIX}-${_realname}-git) replaces=(${MINGW_PACKAGE_PREFIX}-${_realname}-git) pkgver=1787.r2266.eb6e7bb6 pkgrel=1