Hello Marian

On 1/22/20 5:48 PM, Marian Cichy wrote:
> OpenCV wants to download the additional framework ADE while executing
> CMake. Therefore, files will be downloaded during PTXDist's prepare
> stage. This is not wanted. We now try to download the files during the
> Get stage and copy the files to the same locations at the Extract.post
> stage. If we cannot download the files during the Get stage, a new
> CMake Flag can be used to abort during the prepare stage if download is
> tried again.

Your signed-off-by is missing.

> ---
>  ...option-to-disallow-download-of-files.patch | 42 +++++++++++
>  patches/opencv-4.1.2/series                   |  1 +
>  rules/opencv.make                             | 74 +++++++++++++++----
>  3 files changed, 102 insertions(+), 15 deletions(-)
>  create mode 100644 
> patches/opencv-4.1.2/0001-add-option-to-disallow-download-of-files.patch
>  create mode 100644 patches/opencv-4.1.2/series
> 
> diff --git 
> a/patches/opencv-4.1.2/0001-add-option-to-disallow-download-of-files.patch 
> b/patches/opencv-4.1.2/0001-add-option-to-disallow-download-of-files.patch
> new file mode 100644
> index 000000000..0e1504a96
> --- /dev/null
> +++ b/patches/opencv-4.1.2/0001-add-option-to-disallow-download-of-files.patch
> @@ -0,0 +1,42 @@
> +From b71bfe426a68a4603c9b814da68b117602a8b55f Mon Sep 17 00:00:00 2001
> +From: Marian Cichy <m.ci...@pengutronix.de>
> +Date: Wed, 22 Jan 2020 17:14:05 +0100
> +Subject: [PATCH] add option to disallow download of files
> +
> +OpenCV wants to download files for the ADE Framework  when it is at
> +the prepare stage of PTXDist. This is not wanted. The PTXDist rule
> +will download the file during the Get stage and put it at the same
> +location where OpenCV would put it. If the Download at the Get stage
> +does not succeed and if OPENCV_ALLOW_DOWNLOADS is OFF, OpenCV will abort
> +with this patch at the Prepare stage.
> +---
> + cmake/OpenCVDownload.cmake | 6 ++++++
> + 1 file changed, 6 insertions(+)
> +
> +diff --git a/cmake/OpenCVDownload.cmake b/cmake/OpenCVDownload.cmake
> +index 63cf6d3238b1..cd7e50b4edf1 100644
> +--- a/cmake/OpenCVDownload.cmake
> ++++ b/cmake/OpenCVDownload.cmake
> +@@ -14,6 +14,7 @@
> + #    RELATIVE_URL - if set, then URL is treated as a base, and FILENAME 
> will be appended to it
> + #  Note: uses OPENCV_DOWNLOAD_PATH folder as cache, default is 
> <opencv>/.cache
> + 
> ++set(OPENCV_ALLOW_DOWNLOADS ON CACHE BOOL "Allow downloads")
> + set(HELP_OPENCV_DOWNLOAD_PATH "Cache directory for downloaded files")
> + if(DEFINED ENV{OPENCV_DOWNLOAD_PATH})
> +   set(OPENCV_DOWNLOAD_PATH "$ENV{OPENCV_DOWNLOAD_PATH}" CACHE PATH 
> "${HELP_OPENCV_DOWNLOAD_PATH}")
> +@@ -156,6 +157,11 @@ function(ocv_download)
> + 
> +   # Download
> +   if(NOT EXISTS "${CACHE_CANDIDATE}")
> ++      if(NOT OPENCV_ALLOW_DOWNLOADS)
> ++              message(FATAL_ERROR "Not going to download ${DL_FILENAME}")
> ++              return()
> ++      endif()
> ++
> +     ocv_download_log("#cmake_download \"${CACHE_CANDIDATE}\" \"${DL_URL}\"")
> +     foreach(try ${OPENCV_DOWNLOAD_TRIES_LIST})
> +       ocv_download_log("#try ${try}")
> +-- 
> +2.20.1
> +
> diff --git a/patches/opencv-4.1.2/series b/patches/opencv-4.1.2/series
> new file mode 100644
> index 000000000..aaa28ce52
> --- /dev/null
> +++ b/patches/opencv-4.1.2/series
> @@ -0,0 +1 @@
> +0001-add-option-to-disallow-download-of-files.patch
> diff --git a/rules/opencv.make b/rules/opencv.make
> index 0a6fd7a12..2eab4c9ea 100644
> --- a/rules/opencv.make
> +++ b/rules/opencv.make
> @@ -17,25 +17,70 @@ PACKAGES-$(PTXCONF_OPENCV) += opencv
>  # Paths and names
>  #
>  
> -OPENCV_VERSION       := 4.1.2
> -OPENCV_MD5   := 6b390578d57131ae9d6c2a183257399d
> -OPENCV               := opencv-$(OPENCV_VERSION)
> -OPENCV_SUFFIX        := zip
> -OPENCV_URL   := \
> -     $(call ptx/mirror, SF, 
> opencvlibrary/opencv-unix/$(OPENCV_VERSION)/$(OPENCV).$(OPENCV_SUFFIX)) \
> -     
> https://github.com/opencv/opencv/archive/$(OPENCV_VERSION).$(OPENCV_SUFFIX)
> -OPENCV_SOURCE        := $(SRCDIR)/$(OPENCV).$(OPENCV_SUFFIX)
> -OPENCV_DIR   := $(BUILDDIR)/$(OPENCV)
> -OPENCV_LICENSE       := BSD
> -OPENCV_BUILD_DIR := $(OPENCV_DIR)-build
> +OPENCV_VERSION               := 4.1.2
> +OPENCV_MD5           := 6b390578d57131ae9d6c2a183257399d
> +OPENCV                       := opencv-$(OPENCV_VERSION)
> +OPENCV_SUFFIX                := zip
> +OPENCV_URL           := \
> +                     $(call ptx/mirror, SF, 
> opencvlibrary/opencv-unix/$(OPENCV_VERSION)/$(OPENCV).$(OPENCV_SUFFIX)) \
> +                     
> https://github.com/opencv/opencv/archive/$(OPENCV_VERSION).$(OPENCV_SUFFIX)
> +OPENCV_SOURCE                := $(SRCDIR)/$(OPENCV).$(OPENCV_SUFFIX)
> +OPENCV_DIR           := $(BUILDDIR)/$(OPENCV)
> +OPENCV_LICENSE               := BSD
> +OPENCV_BUILD_DIR     := $(OPENCV_DIR)-build
> +
> +OPENCV_ADE_VERSION   := v0.1.1f
> +OPENCV_ADE_MD5               := b624b995ec9c439cbc2e9e6ee940d3a2
> +OPENCV_ADE           := opencv-ade-$(OPENCV_ADE_VERSION)
> +OPENCV_ADE_SUFFIX    := zip
> +OPENCV_ADE_URL               := 
> https://github.com/opencv/ade/archive/$(OPENCV_ADE_VERSION).$(OPENCV_ADE_SUFFIX)
> +OPENCV_ADE_SOURCE    := $(SRCDIR)/$(OPENCV_ADE).$(OPENCV_ADE_SUFFIX)
> +$(OPENCV_ADE_SOURCE) := OPENCV_ADE
> +#OPENCV_ADE_DIR              := $(OPENCV_DIR)/ade
> +OPENCV_ADE_LICENSE   := Apache-2.0
> +
> +OPENCV_SOURCES               := $(OPENCV_SOURCE) $(OPENCV_ADE_SOURCE)
> +
> +
> +OPENCV_DL_DIR                := $(OPENCV_DIR)/.cache
> +OPENCV_DL_DIR_ADE    := $(OPENCV_DL_DIR)/ade
> +
> +# 
> ----------------------------------------------------------------------------
> +# Extract
> +# 
> ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/opencv.extract:
> +     @$(call targetinfo)
> +     @$(call clean, $(OPENCV_DIR))
> +     @$(call extract, OPENCV)
> +#    @$(call extract, OPENCV_ADE)

Why is this commented out?

> +     @$(call patchin, OPENCV)
> +     @$(call touch)
> +
> +
> +# 
> ----------------------------------------------------------------------------
> +# Extract.post
> +# 
> ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/opencv.extract.post:
> +     @$(call targetinfo)
> +     mkdir $(OPENCV_DL_DIR)
> +     mkdir $(OPENCV_DL_DIR_ADE)
> +     cp $(OPENCV_ADE_SOURCE) 
> $(OPENCV_DL_DIR_ADE)/$(OPENCV_ADE_MD5)-$(OPENCV_ADE_VERSION).$(OPENCV_ADE_SUFFIX)
> +     @$(call touch)
> +
>  # 
> ----------------------------------------------------------------------------
>  # Prepare
>  # 
> ----------------------------------------------------------------------------
>  
>  OPENCV_CONF_TOOL     := cmake
>  
> +
> +EXTRA_CMAKE          := -DOPENCV_ALLOW_DOWNLOADS=OFF \
> +
>  OPENCV_CONF_OPT              := \
>       $(CROSS_CMAKE_USR) \
> +      $(EXTRA_CMAKE) \
>       -DANT_EXECUTABLE:FILEPATH= \
>       -DBUILD_CUDA_STUBS:BOOL=OFF \
>       -DBUILD_DOCS:BOOL=OFF \
> @@ -48,7 +93,7 @@ OPENCV_CONF_OPT             := \
>       -DBUILD_OPENEXR=OFF \
>       -DBUILD_PACKAGE:BOOL=OFF \
>       -DBUILD_PERF_TESTS=OFF \
> -     -DBUILD_PNG=OFF \
> +     -DBUILD_PNG=ON \

Should this be a separate change? Seems unrelated

>       -DBUILD_PROTOBUF=ON \
>       -DBUILD_SHARED_LIBS:BOOL=ON \
>       -DBUILD_TBB=OFF \
> @@ -58,7 +103,6 @@ OPENCV_CONF_OPT            := \
>       -DBUILD_WEBP=OFF \
>       -DBUILD_WITH_DEBUG_INFO=OFF \
>       -DBUILD_WITH_DYNAMIC_IPP=OFF \
> -     -DBUILD_ZLIB=OFF \
>       -DBUILD_opencv_apps:BOOL=OFF \
>       -DBUILD_opencv_calib3d:BOOL=$(call ptx/onoff,PTXCONF_OPENCV_CALIB3D) \
>       -DBUILD_opencv_core:BOOL=ON \
> @@ -110,7 +154,7 @@ OPENCV_CONF_OPT           := \
>       -DINSTALL_TO_MANGLED_PATHS:BOOL=OFF \
>       -DMKL_WITH_OPENMP=OFF \
>       -DMKL_WITH_TBB=OFF \
> -     -DOPENCV_DOWNLOAD_PATH=$(OPENCV_DIR)/.cache \
> +     -DOPENCV_DOWNLOAD_PATH=$(OPENCV_DL_DIR) \
>       -DOPENCV_DUMP_HOOKS_FLOW=OFF \
>       -DOPENCV_ENABLE_MEMALIGN=ON \
>       -DOPENCV_ENABLE_MEMORY_SANITIZER=OFF \
> @@ -182,7 +226,6 @@ OPENCV_CONF_OPT           := \
>       -DWITH_XIMEA:BOOL=OFF \
>       -DWITH_XINE:BOOL=OFF \
>  
> -
>  $(STATEDIR)/opencv.install:
>       @$(call targetinfo)
>       @$(call world/install, OPENCV)
> @@ -194,6 +237,7 @@ ifdef PTXCONF_OPENCV_EXAMPLES
>  endif
>       @$(call touch)
>  
> +
>  # 
> ----------------------------------------------------------------------------
>  # Target-Install
>  # 
> ----------------------------------------------------------------------------
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

Reply via email to