From a577c57bfa205a8e1f8a99bb1c350ba8b9e0b756 Mon Sep 17 00:00:00 2001 From: abhi Date: Tue, 30 Jul 2019 23:44:13 +0530 Subject: [PATCH 01/23] Added OpenSSL & different protocol support to FFmpeg backend - Fixed Docker dependencies (both x86 & x86-64) - Fixes bug #204 --- docker/Dockerfile_i686 | 4 ++-- docker/Dockerfile_x86_64 | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docker/Dockerfile_i686 b/docker/Dockerfile_i686 index 62366543..9ade9efb 100644 --- a/docker/Dockerfile_i686 +++ b/docker/Dockerfile_i686 @@ -23,7 +23,7 @@ RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ cd .. && \ rm -rf cmake-3.9.0* -RUN yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libtool make mercurial pkgconfig zlib-devel -y && \ +RUN yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libtool make mercurial pkgconfig openssl-devel zlib-devel -y && \ yum remove nasm -y && \ mkdir ~/ffmpeg_sources && \ cd ~/ffmpeg_sources && \ @@ -50,7 +50,7 @@ RUN yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libtool tar xjvf ffmpeg-snapshot.tar.bz2 && \ cd ffmpeg && \ PATH=~/bin:$PATH && \ - PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --enable-libvpx --enable-shared --enable-pic --bindir="$HOME/bin" && \ + PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --enable-libvpx --enable-openssl --enable-protocol=file,ftp,http,https,httpproxy,hls,mmsh,mmst,pipe,rtmp,rtmps,rtmpt,rtmpts,rtp,sctp,srtp,tcp,udp --enable-shared --enable-pic --bindir="$HOME/bin" && \ make -j4 && \ make install && \ echo "/root/ffmpeg_build/lib/" >> /etc/ld.so.conf && \ diff --git a/docker/Dockerfile_x86_64 b/docker/Dockerfile_x86_64 index e9de76e8..e8650efb 100644 --- a/docker/Dockerfile_x86_64 +++ b/docker/Dockerfile_x86_64 @@ -23,7 +23,7 @@ RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ cd .. && \ rm -rf cmake-3.9.0* -RUN yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libtool make mercurial pkgconfig zlib-devel -y && \ +RUN yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libtool make mercurial pkgconfig openssl-devel zlib-devel -y && \ yum remove nasm -y && \ mkdir ~/ffmpeg_sources && \ cd ~/ffmpeg_sources && \ @@ -50,7 +50,7 @@ RUN yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libtool tar xjvf ffmpeg-snapshot.tar.bz2 && \ cd ffmpeg && \ PATH=~/bin:$PATH && \ - PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --enable-libvpx --enable-shared --enable-pic --bindir="$HOME/bin" && \ + PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --enable-openssl --enable-libvpx --enable-protocol=file,ftp,http,https,httpproxy,hls,mmsh,mmst,pipe,rtmp,rtmps,rtmpt,rtmpts,rtp,sctp,srtp,tcp,udp --enable-shared --enable-pic --bindir="$HOME/bin" && \ make -j4 && \ make install && \ echo "/root/ffmpeg_build/lib/" >> /etc/ld.so.conf && \ @@ -84,4 +84,4 @@ RUN curl -O https://raw.githubusercontent.com/torvalds/linux/v4.14/include/uapi/ curl -O https://raw.githubusercontent.com/torvalds/linux/v4.14/include/linux/compiler.h && \ mv videodev2.h v4l2-common.h v4l2-controls.h compiler.h /usr/include/linux -ENV PATH "$HOME/bin:$PATH" \ No newline at end of file +ENV PATH "$HOME/bin:$PATH" From f2c53bd1eb372404c176db569489df81c4c0c88c Mon Sep 17 00:00:00 2001 From: Abhishek Date: Wed, 31 Jul 2019 22:15:18 +0530 Subject: [PATCH 02/23] Additional Fixes - updates to OpenSSL build from scratch - removed specific protocol - Added neccessary dependency --- docker/Dockerfile_i686 | 11 +++++++++-- docker/Dockerfile_x86_64 | 11 +++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile_i686 b/docker/Dockerfile_i686 index 9ade9efb..1f103876 100644 --- a/docker/Dockerfile_i686 +++ b/docker/Dockerfile_i686 @@ -23,7 +23,7 @@ RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ cd .. && \ rm -rf cmake-3.9.0* -RUN yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libtool make mercurial pkgconfig openssl-devel zlib-devel -y && \ +RUN yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libtool make mercurial pkgconfig perl-core zlib-devel -y && \ yum remove nasm -y && \ mkdir ~/ffmpeg_sources && \ cd ~/ffmpeg_sources && \ @@ -45,12 +45,19 @@ RUN yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libtool ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm --enable-pic --enable-shared && \ make -j4 && \ make install && \ + cd ~/ffmpeg_sources && \ + curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_1_1_1c.tar.gz && \ + tar -zxvf OpenSSL_1_1_1c.tar.gz && \ + cd openssl-OpenSSL_1_1_1c && \ + ./configure --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ + make -j4 && \ + make install && \ cd ~/ffmpeg_sources && \ curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \ tar xjvf ffmpeg-snapshot.tar.bz2 && \ cd ffmpeg && \ PATH=~/bin:$PATH && \ - PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --enable-libvpx --enable-openssl --enable-protocol=file,ftp,http,https,httpproxy,hls,mmsh,mmst,pipe,rtmp,rtmps,rtmpt,rtmpts,rtp,sctp,srtp,tcp,udp --enable-shared --enable-pic --bindir="$HOME/bin" && \ + PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --enable-libvpx --enable-openssl --enable-shared --enable-pic --bindir="$HOME/bin" && \ make -j4 && \ make install && \ echo "/root/ffmpeg_build/lib/" >> /etc/ld.so.conf && \ diff --git a/docker/Dockerfile_x86_64 b/docker/Dockerfile_x86_64 index e8650efb..09339ae0 100644 --- a/docker/Dockerfile_x86_64 +++ b/docker/Dockerfile_x86_64 @@ -23,7 +23,7 @@ RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ cd .. && \ rm -rf cmake-3.9.0* -RUN yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libtool make mercurial pkgconfig openssl-devel zlib-devel -y && \ +RUN yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libtool make mercurial pkgconfig perl-core zlib-devel -y && \ yum remove nasm -y && \ mkdir ~/ffmpeg_sources && \ cd ~/ffmpeg_sources && \ @@ -46,11 +46,18 @@ RUN yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libtool make -j4 && \ make install && \ cd ~/ffmpeg_sources && \ + curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_1_1_1c.tar.gz && \ + tar -zxvf OpenSSL_1_1_1c.tar.gz && \ + cd openssl-OpenSSL_1_1_1c && \ + ./configure --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ + make -j4 && \ + make install && \ + cd ~/ffmpeg_sources && \ curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \ tar xjvf ffmpeg-snapshot.tar.bz2 && \ cd ffmpeg && \ PATH=~/bin:$PATH && \ - PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --enable-openssl --enable-libvpx --enable-protocol=file,ftp,http,https,httpproxy,hls,mmsh,mmst,pipe,rtmp,rtmps,rtmpt,rtmpts,rtp,sctp,srtp,tcp,udp --enable-shared --enable-pic --bindir="$HOME/bin" && \ + PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --enable-openssl --enable-libvpx --enable-shared --enable-pic --bindir="$HOME/bin" && \ make -j4 && \ make install && \ echo "/root/ffmpeg_build/lib/" >> /etc/ld.so.conf && \ From 77619d36bea601e7ce3f72b9c34af5f5950e2cd2 Mon Sep 17 00:00:00 2001 From: Abhishek Thakur Date: Fri, 2 Aug 2019 09:30:19 +0530 Subject: [PATCH 03/23] Fixed ./Configure command --- docker/Dockerfile_i686 | 4 ++-- docker/Dockerfile_x86_64 | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docker/Dockerfile_i686 b/docker/Dockerfile_i686 index 1f103876..d6f17615 100644 --- a/docker/Dockerfile_i686 +++ b/docker/Dockerfile_i686 @@ -45,11 +45,11 @@ RUN yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libtool ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm --enable-pic --enable-shared && \ make -j4 && \ make install && \ - cd ~/ffmpeg_sources && \ + cd ~/ffmpeg_sources && \ curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_1_1_1c.tar.gz && \ tar -zxvf OpenSSL_1_1_1c.tar.gz && \ cd openssl-OpenSSL_1_1_1c && \ - ./configure --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ + ./Configure --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ make -j4 && \ make install && \ cd ~/ffmpeg_sources && \ diff --git a/docker/Dockerfile_x86_64 b/docker/Dockerfile_x86_64 index 09339ae0..23521eb8 100644 --- a/docker/Dockerfile_x86_64 +++ b/docker/Dockerfile_x86_64 @@ -49,7 +49,7 @@ RUN yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libtool curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_1_1_1c.tar.gz && \ tar -zxvf OpenSSL_1_1_1c.tar.gz && \ cd openssl-OpenSSL_1_1_1c && \ - ./configure --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ + ./Configure --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ make -j4 && \ make install && \ cd ~/ffmpeg_sources && \ From c746b96e0cf97f147177487a59c7c41132da7559 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Sun, 4 Aug 2019 10:08:44 +0530 Subject: [PATCH 04/23] Updates for docker images: - Added perl build from scratch - Fixed wrong/redundant dependencies/paths - Fixed & updated openssl installation --- docker/Dockerfile_i686 | 36 +++++++++++++++++++++++------------- docker/Dockerfile_x86_64 | 36 +++++++++++++++++++++++------------- 2 files changed, 46 insertions(+), 26 deletions(-) diff --git a/docker/Dockerfile_i686 b/docker/Dockerfile_i686 index d6f17615..8618a39c 100644 --- a/docker/Dockerfile_i686 +++ b/docker/Dockerfile_i686 @@ -13,18 +13,28 @@ RUN curl -O -L https://download.qt.io/archive/qt/4.8/4.8.7/qt-everywhere-opensou ENV QTDIR /opt/Qt4.8.7 ENV PATH "$QTDIR/bin:$PATH" -RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ - tar -zxf cmake-3.9.0.tar.gz && \ - cd cmake-3.9.0 && \ - yum -y install curl-devel zlib-devel && \ - ./configure --system-curl && \ - make && \ - make install && \ - cd .. && \ - rm -rf cmake-3.9.0* +RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz +tar -zxf cmake-3.9.0.tar.gz +cd cmake-3.9.0 +yum -y install curl-devel zlib-devel +./configure --system-curl +make -j4 +make install +cd .. +rm -rf cmake-3.9.0* -RUN yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libtool make mercurial pkgconfig perl-core zlib-devel -y && \ - yum remove nasm -y && \ +RUN curl -O -L https://www.cpan.org/src/5.0/perl-5.10.1.tar.gz +tar -xzf perl-5.10.1.tar.gz +yum install autoconf automake bzip2 git freetype-devel gcc gcc-c++ libtool make pkgconfig -y +cd perl-5.10.1 +./Configure -des -Dprefix=$HOME/ffmpeg_build +make -j4 +make install +cd .. +rm -rf perl-5.10.1* +PATH=$HOME/ffmpeg_build/bin:$PATH + +RUN yum remove nasm -y && \ mkdir ~/ffmpeg_sources && \ cd ~/ffmpeg_sources && \ curl -O -L http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/nasm-2.13.02.tar.bz2 && \ @@ -49,9 +59,9 @@ RUN yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libtool curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_1_1_1c.tar.gz && \ tar -zxvf OpenSSL_1_1_1c.tar.gz && \ cd openssl-OpenSSL_1_1_1c && \ - ./Configure --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ + ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ make -j4 && \ - make install && \ + make install_sw && \ cd ~/ffmpeg_sources && \ curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \ tar xjvf ffmpeg-snapshot.tar.bz2 && \ diff --git a/docker/Dockerfile_x86_64 b/docker/Dockerfile_x86_64 index 23521eb8..b8bfc28d 100644 --- a/docker/Dockerfile_x86_64 +++ b/docker/Dockerfile_x86_64 @@ -13,18 +13,28 @@ RUN curl -O -L https://download.qt.io/archive/qt/4.8/4.8.7/qt-everywhere-opensou ENV QTDIR /opt/Qt4.8.7 ENV PATH "$QTDIR/bin:$PATH" -RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ - tar -zxf cmake-3.9.0.tar.gz && \ - cd cmake-3.9.0 && \ - yum -y install curl-devel zlib-devel && \ - ./configure --system-curl && \ - make && \ - make install && \ - cd .. && \ - rm -rf cmake-3.9.0* +RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz +tar -zxf cmake-3.9.0.tar.gz +cd cmake-3.9.0 +yum -y install curl-devel zlib-devel +./configure --system-curl +make -j4 +make install +cd .. +rm -rf cmake-3.9.0* -RUN yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libtool make mercurial pkgconfig perl-core zlib-devel -y && \ - yum remove nasm -y && \ +RUN curl -O -L https://www.cpan.org/src/5.0/perl-5.10.1.tar.gz +tar -xzf perl-5.10.1.tar.gz +yum install autoconf automake bzip2 git freetype-devel gcc gcc-c++ libtool make pkgconfig -y +cd perl-5.10.1 +./Configure -des -Dprefix=$HOME/ffmpeg_build +make -j4 +make install +cd .. +rm -rf perl-5.10.1* +PATH=$HOME/ffmpeg_build/bin:$PATH + +RUN yum remove nasm -y && \ mkdir ~/ffmpeg_sources && \ cd ~/ffmpeg_sources && \ curl -O -L http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/nasm-2.13.02.tar.bz2 && \ @@ -49,9 +59,9 @@ RUN yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libtool curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_1_1_1c.tar.gz && \ tar -zxvf OpenSSL_1_1_1c.tar.gz && \ cd openssl-OpenSSL_1_1_1c && \ - ./Configure --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ + ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ make -j4 && \ - make install && \ + make install_sw && \ cd ~/ffmpeg_sources && \ curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \ tar xjvf ffmpeg-snapshot.tar.bz2 && \ From d71b139cb1054b9a0354bc31b99ab225a7f0bde1 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Sun, 4 Aug 2019 12:00:04 +0530 Subject: [PATCH 05/23] Fixed Empty continuation lines bug & added comments --- docker/Dockerfile_i686 | 44 ++++++++++++++++++++-------------------- docker/Dockerfile_x86_64 | 38 +++++++++++++++++----------------- 2 files changed, 41 insertions(+), 41 deletions(-) diff --git a/docker/Dockerfile_i686 b/docker/Dockerfile_i686 index 8618a39c..4f92c30f 100644 --- a/docker/Dockerfile_i686 +++ b/docker/Dockerfile_i686 @@ -13,26 +13,26 @@ RUN curl -O -L https://download.qt.io/archive/qt/4.8/4.8.7/qt-everywhere-opensou ENV QTDIR /opt/Qt4.8.7 ENV PATH "$QTDIR/bin:$PATH" -RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz -tar -zxf cmake-3.9.0.tar.gz -cd cmake-3.9.0 -yum -y install curl-devel zlib-devel -./configure --system-curl -make -j4 -make install -cd .. -rm -rf cmake-3.9.0* +RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ + tar -zxf cmake-3.9.0.tar.gz && \ + cd cmake-3.9.0 && \ + yum -y install curl-devel zlib-devel && \ + ./configure --system-curl && \ + make -j4 && \ + make install && \ + cd .. && \ + rm -rf cmake-3.9.0* -RUN curl -O -L https://www.cpan.org/src/5.0/perl-5.10.1.tar.gz -tar -xzf perl-5.10.1.tar.gz -yum install autoconf automake bzip2 git freetype-devel gcc gcc-c++ libtool make pkgconfig -y -cd perl-5.10.1 -./Configure -des -Dprefix=$HOME/ffmpeg_build -make -j4 -make install -cd .. -rm -rf perl-5.10.1* -PATH=$HOME/ffmpeg_build/bin:$PATH +RUN curl -O -L https://www.cpan.org/src/5.0/perl-5.10.1.tar.gz && \ + tar -xzf perl-5.10.1.tar.gz && \ + yum install autoconf automake bzip2 git freetype-devel gcc gcc-c++ libtool make pkgconfig -y && \ + cd perl-5.10.1 && \ + ./Configure -des -Dprefix=$HOME/ffmpeg_build && \ + make -j4 && \ + make install && \ + cd .. && \ + rm -rf perl-5.10.1* && \ + PATH=$HOME/ffmpeg_build/bin:$PATH #otherwise perl not detected at runtime RUN yum remove nasm -y && \ mkdir ~/ffmpeg_sources && \ @@ -55,19 +55,19 @@ RUN yum remove nasm -y && \ ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm --enable-pic --enable-shared && \ make -j4 && \ make install && \ - cd ~/ffmpeg_sources && \ + cd ~/ffmpeg_sources && \ curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_1_1_1c.tar.gz && \ tar -zxvf OpenSSL_1_1_1c.tar.gz && \ cd openssl-OpenSSL_1_1_1c && \ ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ make -j4 && \ - make install_sw && \ + make install_sw && \ #skip building man-pages cd ~/ffmpeg_sources && \ curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \ tar xjvf ffmpeg-snapshot.tar.bz2 && \ cd ffmpeg && \ PATH=~/bin:$PATH && \ - PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --enable-libvpx --enable-openssl --enable-shared --enable-pic --bindir="$HOME/bin" && \ + PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --enable-openssl --enable-libvpx --enable-shared --enable-pic --bindir="$HOME/bin" && \ make -j4 && \ make install && \ echo "/root/ffmpeg_build/lib/" >> /etc/ld.so.conf && \ diff --git a/docker/Dockerfile_x86_64 b/docker/Dockerfile_x86_64 index b8bfc28d..0ff3ec2f 100644 --- a/docker/Dockerfile_x86_64 +++ b/docker/Dockerfile_x86_64 @@ -13,26 +13,26 @@ RUN curl -O -L https://download.qt.io/archive/qt/4.8/4.8.7/qt-everywhere-opensou ENV QTDIR /opt/Qt4.8.7 ENV PATH "$QTDIR/bin:$PATH" -RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz -tar -zxf cmake-3.9.0.tar.gz -cd cmake-3.9.0 -yum -y install curl-devel zlib-devel -./configure --system-curl -make -j4 -make install -cd .. -rm -rf cmake-3.9.0* +RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ + tar -zxf cmake-3.9.0.tar.gz && \ + cd cmake-3.9.0 && \ + yum -y install curl-devel zlib-devel && \ + ./configure --system-curl && \ + make -j4 && \ + make install && \ + cd .. && \ + rm -rf cmake-3.9.0* -RUN curl -O -L https://www.cpan.org/src/5.0/perl-5.10.1.tar.gz -tar -xzf perl-5.10.1.tar.gz -yum install autoconf automake bzip2 git freetype-devel gcc gcc-c++ libtool make pkgconfig -y -cd perl-5.10.1 -./Configure -des -Dprefix=$HOME/ffmpeg_build -make -j4 -make install -cd .. -rm -rf perl-5.10.1* -PATH=$HOME/ffmpeg_build/bin:$PATH +RUN curl -O -L https://www.cpan.org/src/5.0/perl-5.10.1.tar.gz && \ + tar -xzf perl-5.10.1.tar.gz && \ + yum install autoconf automake bzip2 git freetype-devel gcc gcc-c++ libtool make pkgconfig -y && \ + cd perl-5.10.1 && \ + ./Configure -des -Dprefix=$HOME/ffmpeg_build && \ + make -j4 && \ + make install && \ + cd .. && \ + rm -rf perl-5.10.1* && \ + PATH=$HOME/ffmpeg_build/bin:$PATH RUN yum remove nasm -y && \ mkdir ~/ffmpeg_sources && \ From 991a981f9617cbffe507ca93faad95e06b5d633e Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 4 Aug 2019 10:33:08 +0300 Subject: [PATCH 06/23] fix inconsitent spacing --- docker/Dockerfile_i686 | 22 +++++++++++----------- docker/Dockerfile_x86_64 | 22 +++++++++++----------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/docker/Dockerfile_i686 b/docker/Dockerfile_i686 index 4f92c30f..82670943 100644 --- a/docker/Dockerfile_i686 +++ b/docker/Dockerfile_i686 @@ -13,24 +13,24 @@ RUN curl -O -L https://download.qt.io/archive/qt/4.8/4.8.7/qt-everywhere-opensou ENV QTDIR /opt/Qt4.8.7 ENV PATH "$QTDIR/bin:$PATH" -RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ - tar -zxf cmake-3.9.0.tar.gz && \ - cd cmake-3.9.0 && \ - yum -y install curl-devel zlib-devel && \ - ./configure --system-curl && \ +RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ + tar -zxf cmake-3.9.0.tar.gz && \ + cd cmake-3.9.0 && \ + yum -y install curl-devel zlib-devel && \ + ./configure --system-curl && \ make -j4 && \ - make install && \ - cd .. && \ + make install && \ + cd .. && \ rm -rf cmake-3.9.0* -RUN curl -O -L https://www.cpan.org/src/5.0/perl-5.10.1.tar.gz && \ +RUN curl -O -L https://www.cpan.org/src/5.0/perl-5.10.1.tar.gz && \ tar -xzf perl-5.10.1.tar.gz && \ - yum install autoconf automake bzip2 git freetype-devel gcc gcc-c++ libtool make pkgconfig -y && \ - cd perl-5.10.1 && \ + yum install autoconf automake bzip2 git freetype-devel gcc gcc-c++ libtool make pkgconfig -y && \ + cd perl-5.10.1 && \ ./Configure -des -Dprefix=$HOME/ffmpeg_build && \ make -j4 && \ make install && \ - cd .. && \ + cd .. && \ rm -rf perl-5.10.1* && \ PATH=$HOME/ffmpeg_build/bin:$PATH #otherwise perl not detected at runtime diff --git a/docker/Dockerfile_x86_64 b/docker/Dockerfile_x86_64 index 0ff3ec2f..a937128f 100644 --- a/docker/Dockerfile_x86_64 +++ b/docker/Dockerfile_x86_64 @@ -13,24 +13,24 @@ RUN curl -O -L https://download.qt.io/archive/qt/4.8/4.8.7/qt-everywhere-opensou ENV QTDIR /opt/Qt4.8.7 ENV PATH "$QTDIR/bin:$PATH" -RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ - tar -zxf cmake-3.9.0.tar.gz && \ - cd cmake-3.9.0 && \ - yum -y install curl-devel zlib-devel && \ - ./configure --system-curl && \ +RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ + tar -zxf cmake-3.9.0.tar.gz && \ + cd cmake-3.9.0 && \ + yum -y install curl-devel zlib-devel && \ + ./configure --system-curl && \ make -j4 && \ - make install && \ - cd .. && \ + make install && \ + cd .. && \ rm -rf cmake-3.9.0* -RUN curl -O -L https://www.cpan.org/src/5.0/perl-5.10.1.tar.gz && \ +RUN curl -O -L https://www.cpan.org/src/5.0/perl-5.10.1.tar.gz && \ tar -xzf perl-5.10.1.tar.gz && \ - yum install autoconf automake bzip2 git freetype-devel gcc gcc-c++ libtool make pkgconfig -y && \ - cd perl-5.10.1 && \ + yum install autoconf automake bzip2 git freetype-devel gcc gcc-c++ libtool make pkgconfig -y && \ + cd perl-5.10.1 && \ ./Configure -des -Dprefix=$HOME/ffmpeg_build && \ make -j4 && \ make install && \ - cd .. && \ + cd .. && \ rm -rf perl-5.10.1* && \ PATH=$HOME/ffmpeg_build/bin:$PATH From 09771320d6cf79fcabc2b32d4b5031272ec8d4e0 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 4 Aug 2019 12:13:09 +0300 Subject: [PATCH 07/23] Don't add perl 5.10 to PATH --- docker/Dockerfile_i686 | 11 +++++------ docker/Dockerfile_x86_64 | 11 +++++------ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/docker/Dockerfile_i686 b/docker/Dockerfile_i686 index 82670943..a51c607e 100644 --- a/docker/Dockerfile_i686 +++ b/docker/Dockerfile_i686 @@ -23,16 +23,15 @@ RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ cd .. && \ rm -rf cmake-3.9.0* -RUN curl -O -L https://www.cpan.org/src/5.0/perl-5.10.1.tar.gz && \ +RUN yum install autoconf automake bzip2 git freetype-devel gcc gcc-c++ libtool make pkgconfig -y && \ + curl -O -L https://www.cpan.org/src/5.0/perl-5.10.1.tar.gz && \ tar -xzf perl-5.10.1.tar.gz && \ - yum install autoconf automake bzip2 git freetype-devel gcc gcc-c++ libtool make pkgconfig -y && \ cd perl-5.10.1 && \ - ./Configure -des -Dprefix=$HOME/ffmpeg_build && \ + ./Configure -des -Dprefix="$HOME/ffmpeg_build" && \ make -j4 && \ make install && \ cd .. && \ - rm -rf perl-5.10.1* && \ - PATH=$HOME/ffmpeg_build/bin:$PATH #otherwise perl not detected at runtime + rm -rf perl-5.10.1* RUN yum remove nasm -y && \ mkdir ~/ffmpeg_sources && \ @@ -59,7 +58,7 @@ RUN yum remove nasm -y && \ curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_1_1_1c.tar.gz && \ tar -zxvf OpenSSL_1_1_1c.tar.gz && \ cd openssl-OpenSSL_1_1_1c && \ - ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ + PERL="$HOME/ffmpeg_build/bin/perl" ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ make -j4 && \ make install_sw && \ #skip building man-pages cd ~/ffmpeg_sources && \ diff --git a/docker/Dockerfile_x86_64 b/docker/Dockerfile_x86_64 index a937128f..7ca71835 100644 --- a/docker/Dockerfile_x86_64 +++ b/docker/Dockerfile_x86_64 @@ -23,16 +23,15 @@ RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ cd .. && \ rm -rf cmake-3.9.0* -RUN curl -O -L https://www.cpan.org/src/5.0/perl-5.10.1.tar.gz && \ +RUN yum install autoconf automake bzip2 git freetype-devel gcc gcc-c++ libtool make pkgconfig -y && \ + curl -O -L https://www.cpan.org/src/5.0/perl-5.10.1.tar.gz && \ tar -xzf perl-5.10.1.tar.gz && \ - yum install autoconf automake bzip2 git freetype-devel gcc gcc-c++ libtool make pkgconfig -y && \ cd perl-5.10.1 && \ - ./Configure -des -Dprefix=$HOME/ffmpeg_build && \ + ./Configure -des -Dprefix="$HOME/ffmpeg_build" && \ make -j4 && \ make install && \ cd .. && \ - rm -rf perl-5.10.1* && \ - PATH=$HOME/ffmpeg_build/bin:$PATH + rm -rf perl-5.10.1* RUN yum remove nasm -y && \ mkdir ~/ffmpeg_sources && \ @@ -59,7 +58,7 @@ RUN yum remove nasm -y && \ curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_1_1_1c.tar.gz && \ tar -zxvf OpenSSL_1_1_1c.tar.gz && \ cd openssl-OpenSSL_1_1_1c && \ - ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ + PERL="$HOME/ffmpeg_build/bin/perl" ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ make -j4 && \ make install_sw && \ cd ~/ffmpeg_sources && \ From 3dace9e33f1853814f0f9c08984c7ad785f9501a Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 4 Aug 2019 15:43:04 +0300 Subject: [PATCH 08/23] fix syntax error --- docker/Dockerfile_i686 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile_i686 b/docker/Dockerfile_i686 index a51c607e..8de4e103 100644 --- a/docker/Dockerfile_i686 +++ b/docker/Dockerfile_i686 @@ -60,7 +60,7 @@ RUN yum remove nasm -y && \ cd openssl-OpenSSL_1_1_1c && \ PERL="$HOME/ffmpeg_build/bin/perl" ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ make -j4 && \ - make install_sw && \ #skip building man-pages + make install_sw && \ cd ~/ffmpeg_sources && \ curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \ tar xjvf ffmpeg-snapshot.tar.bz2 && \ From 8fc6035dfbe6f07c13882c773e62fb8775dd736b Mon Sep 17 00:00:00 2001 From: Abhishek Date: Mon, 5 Aug 2019 09:43:59 +0530 Subject: [PATCH 09/23] Fixed OpenSSL build fails in i686 Dockerfile due to buggy perl source --- docker/Dockerfile_i686 | 8 ++++---- docker/Dockerfile_x86_64 | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docker/Dockerfile_i686 b/docker/Dockerfile_i686 index 8de4e103..56202e67 100644 --- a/docker/Dockerfile_i686 +++ b/docker/Dockerfile_i686 @@ -24,14 +24,14 @@ RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ rm -rf cmake-3.9.0* RUN yum install autoconf automake bzip2 git freetype-devel gcc gcc-c++ libtool make pkgconfig -y && \ - curl -O -L https://www.cpan.org/src/5.0/perl-5.10.1.tar.gz && \ - tar -xzf perl-5.10.1.tar.gz && \ - cd perl-5.10.1 && \ + curl -O -L https://www.cpan.org/src/5.0/perl-5.20.1.tar.gz && \ + tar -xzf perl-5.20.1.tar.gz && \ + cd perl-5.20.1 && \ ./Configure -des -Dprefix="$HOME/ffmpeg_build" && \ make -j4 && \ make install && \ cd .. && \ - rm -rf perl-5.10.1* + rm -rf perl-5.20.1* RUN yum remove nasm -y && \ mkdir ~/ffmpeg_sources && \ diff --git a/docker/Dockerfile_x86_64 b/docker/Dockerfile_x86_64 index 7ca71835..7ead0c22 100644 --- a/docker/Dockerfile_x86_64 +++ b/docker/Dockerfile_x86_64 @@ -24,14 +24,14 @@ RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ rm -rf cmake-3.9.0* RUN yum install autoconf automake bzip2 git freetype-devel gcc gcc-c++ libtool make pkgconfig -y && \ - curl -O -L https://www.cpan.org/src/5.0/perl-5.10.1.tar.gz && \ - tar -xzf perl-5.10.1.tar.gz && \ - cd perl-5.10.1 && \ + curl -O -L https://www.cpan.org/src/5.0/perl-5.20.1.tar.gz && \ + tar -xzf perl-5.20.1.tar.gz && \ + cd perl-5.20.1 && \ ./Configure -des -Dprefix="$HOME/ffmpeg_build" && \ make -j4 && \ make install && \ cd .. && \ - rm -rf perl-5.10.1* + rm -rf perl-5.20.1* RUN yum remove nasm -y && \ mkdir ~/ffmpeg_sources && \ From 6f566cd0ed30952b0422c76ad58a192b5e705623 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Mon, 5 Aug 2019 15:46:30 +0530 Subject: [PATCH 10/23] Fixing manylinux docker entrypoint for i686 in 32 bit images --- docker/Dockerfile_i686 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker/Dockerfile_i686 b/docker/Dockerfile_i686 index 56202e67..092ef41b 100644 --- a/docker/Dockerfile_i686 +++ b/docker/Dockerfile_i686 @@ -1,5 +1,7 @@ FROM quay.io/pypa/manylinux1_i686:latest +ENTRYPOINT ["linux32", "--"] + RUN curl -O -L https://download.qt.io/archive/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.tar.gz && \ tar -xf qt-everywhere-opensource-src-4.8.7.tar.gz && \ cd qt-everywhere* && \ From f621ead4e7c7673c756ff84692c65c0bafb31b14 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 6 Aug 2019 14:56:09 +0300 Subject: [PATCH 11/23] ENTRYPOINT not needed, it only affects "docker run" invocations --- docker/Dockerfile_i686 | 2 -- 1 file changed, 2 deletions(-) diff --git a/docker/Dockerfile_i686 b/docker/Dockerfile_i686 index 092ef41b..56202e67 100644 --- a/docker/Dockerfile_i686 +++ b/docker/Dockerfile_i686 @@ -1,7 +1,5 @@ FROM quay.io/pypa/manylinux1_i686:latest -ENTRYPOINT ["linux32", "--"] - RUN curl -O -L https://download.qt.io/archive/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.tar.gz && \ tar -xf qt-everywhere-opensource-src-4.8.7.tar.gz && \ cd qt-everywhere* && \ From e08dccba049c24e69cad0b4517bcd4a2018b97fb Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 6 Aug 2019 14:57:12 +0300 Subject: [PATCH 12/23] manylinux1 provides better libcurl for cmake --- docker/Dockerfile_i686 | 5 ++++- docker/Dockerfile_x86_64 | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile_i686 b/docker/Dockerfile_i686 index 56202e67..437c60bf 100644 --- a/docker/Dockerfile_i686 +++ b/docker/Dockerfile_i686 @@ -16,7 +16,10 @@ ENV PATH "$QTDIR/bin:$PATH" RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ tar -zxf cmake-3.9.0.tar.gz && \ cd cmake-3.9.0 && \ - yum -y install curl-devel zlib-devel && \ + true '#manylinux1 provides curl-devel equivalent and libcurl statically linked \ + against the same newer OpenSSL as other source-built tools \ + (1.0.2s as of this writing)' && \ + yum -y install zlib-devel && \ ./configure --system-curl && \ make -j4 && \ make install && \ diff --git a/docker/Dockerfile_x86_64 b/docker/Dockerfile_x86_64 index 7ead0c22..a18b375b 100644 --- a/docker/Dockerfile_x86_64 +++ b/docker/Dockerfile_x86_64 @@ -16,7 +16,10 @@ ENV PATH "$QTDIR/bin:$PATH" RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ tar -zxf cmake-3.9.0.tar.gz && \ cd cmake-3.9.0 && \ - yum -y install curl-devel zlib-devel && \ + true '#manylinux1 provides curl-devel equivalent and libcurl statically linked \ + against the same newer OpenSSL as other source-built tools \ + (1.0.2s as of this writing)' && \ + yum -y install zlib-devel && \ ./configure --system-curl && \ make -j4 && \ make install && \ From 35254695cd0f5c4dc5a9defa0469137e4bc155b8 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 6 Aug 2019 14:59:17 +0300 Subject: [PATCH 13/23] manylinux1 provides the toolchain and git git install fails in i686, too --- docker/Dockerfile_i686 | 4 +++- docker/Dockerfile_x86_64 | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile_i686 b/docker/Dockerfile_i686 index 437c60bf..b5d6cc9a 100644 --- a/docker/Dockerfile_i686 +++ b/docker/Dockerfile_i686 @@ -26,7 +26,9 @@ RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ cd .. && \ rm -rf cmake-3.9.0* -RUN yum install autoconf automake bzip2 git freetype-devel gcc gcc-c++ libtool make pkgconfig -y && \ +# https://trac.ffmpeg.org/wiki/CompilationGuide/Centos#GettheDependencies +# manylinux provides the toolchain and git; we provide cmake +RUN yum install freetype-devel bzip2-devel zlib-devel -y && \ curl -O -L https://www.cpan.org/src/5.0/perl-5.20.1.tar.gz && \ tar -xzf perl-5.20.1.tar.gz && \ cd perl-5.20.1 && \ diff --git a/docker/Dockerfile_x86_64 b/docker/Dockerfile_x86_64 index a18b375b..3d24b76b 100644 --- a/docker/Dockerfile_x86_64 +++ b/docker/Dockerfile_x86_64 @@ -26,7 +26,9 @@ RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ cd .. && \ rm -rf cmake-3.9.0* -RUN yum install autoconf automake bzip2 git freetype-devel gcc gcc-c++ libtool make pkgconfig -y && \ +# https://trac.ffmpeg.org/wiki/CompilationGuide/Centos#GettheDependencies +# manylinux provides the toolchain and git; we provide cmake +RUN yum install freetype-devel bzip2-devel zlib-devel -y && \ curl -O -L https://www.cpan.org/src/5.0/perl-5.20.1.tar.gz && \ tar -xzf perl-5.20.1.tar.gz && \ cd perl-5.20.1 && \ From 8aa69b3c32f1b21666003330628ede920bd3ae1b Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 6 Aug 2019 15:03:53 +0300 Subject: [PATCH 14/23] cleanup tar invocations --- docker/Dockerfile_i686 | 14 +++++++------- docker/Dockerfile_x86_64 | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/docker/Dockerfile_i686 b/docker/Dockerfile_i686 index b5d6cc9a..7fdac30b 100644 --- a/docker/Dockerfile_i686 +++ b/docker/Dockerfile_i686 @@ -14,7 +14,7 @@ ENV QTDIR /opt/Qt4.8.7 ENV PATH "$QTDIR/bin:$PATH" RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ - tar -zxf cmake-3.9.0.tar.gz && \ + tar -xf cmake-3.9.0.tar.gz && \ cd cmake-3.9.0 && \ true '#manylinux1 provides curl-devel equivalent and libcurl statically linked \ against the same newer OpenSSL as other source-built tools \ @@ -30,7 +30,7 @@ RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ # manylinux provides the toolchain and git; we provide cmake RUN yum install freetype-devel bzip2-devel zlib-devel -y && \ curl -O -L https://www.cpan.org/src/5.0/perl-5.20.1.tar.gz && \ - tar -xzf perl-5.20.1.tar.gz && \ + tar -xf perl-5.20.1.tar.gz && \ cd perl-5.20.1 && \ ./Configure -des -Dprefix="$HOME/ffmpeg_build" && \ make -j4 && \ @@ -42,13 +42,13 @@ RUN yum remove nasm -y && \ mkdir ~/ffmpeg_sources && \ cd ~/ffmpeg_sources && \ curl -O -L http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/nasm-2.13.02.tar.bz2 && \ - tar xjvf nasm-2.13.02.tar.bz2 && cd nasm-2.13.02 && ./autogen.sh && \ + tar -xf nasm-2.13.02.tar.bz2 && cd nasm-2.13.02 && ./autogen.sh && \ ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \ make -j4 && \ make install && \ cd ~/ffmpeg_sources && \ curl -O -L http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz && \ - tar xzvf yasm-1.3.0.tar.gz && \ + tar -xf yasm-1.3.0.tar.gz && \ cd yasm-1.3.0 && \ ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \ make -j4 && \ @@ -61,14 +61,14 @@ RUN yum remove nasm -y && \ make install && \ cd ~/ffmpeg_sources && \ curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_1_1_1c.tar.gz && \ - tar -zxvf OpenSSL_1_1_1c.tar.gz && \ + tar -xf OpenSSL_1_1_1c.tar.gz && \ cd openssl-OpenSSL_1_1_1c && \ PERL="$HOME/ffmpeg_build/bin/perl" ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ make -j4 && \ make install_sw && \ cd ~/ffmpeg_sources && \ curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \ - tar xjvf ffmpeg-snapshot.tar.bz2 && \ + tar -xf ffmpeg-snapshot.tar.bz2 && \ cd ffmpeg && \ PATH=~/bin:$PATH && \ PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --enable-openssl --enable-libvpx --enable-shared --enable-pic --bindir="$HOME/bin" && \ @@ -85,7 +85,7 @@ RUN mkdir libjpeg-turbo && \ cd libjpeg-turbo && \ export PATH=~/bin:$PATH && \ curl -L https://kent.dl.sourceforge.net/project/libjpeg-turbo/1.5.3/libjpeg-turbo-1.5.3.tar.gz > libjpeg-turbo-1.5.3.tar.gz && \ - tar xzvf libjpeg-turbo-1.5.3.tar.gz && \ + tar xf libjpeg-turbo-1.5.3.tar.gz && \ cd libjpeg-turbo-1.5.3 && \ export CFLAGS="-fPIC" && \ export CXXFLAGS="-fPIC" && \ diff --git a/docker/Dockerfile_x86_64 b/docker/Dockerfile_x86_64 index 3d24b76b..740d6e91 100644 --- a/docker/Dockerfile_x86_64 +++ b/docker/Dockerfile_x86_64 @@ -14,7 +14,7 @@ ENV QTDIR /opt/Qt4.8.7 ENV PATH "$QTDIR/bin:$PATH" RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ - tar -zxf cmake-3.9.0.tar.gz && \ + tar -xf cmake-3.9.0.tar.gz && \ cd cmake-3.9.0 && \ true '#manylinux1 provides curl-devel equivalent and libcurl statically linked \ against the same newer OpenSSL as other source-built tools \ @@ -30,7 +30,7 @@ RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ # manylinux provides the toolchain and git; we provide cmake RUN yum install freetype-devel bzip2-devel zlib-devel -y && \ curl -O -L https://www.cpan.org/src/5.0/perl-5.20.1.tar.gz && \ - tar -xzf perl-5.20.1.tar.gz && \ + tar -xf perl-5.20.1.tar.gz && \ cd perl-5.20.1 && \ ./Configure -des -Dprefix="$HOME/ffmpeg_build" && \ make -j4 && \ @@ -42,13 +42,13 @@ RUN yum remove nasm -y && \ mkdir ~/ffmpeg_sources && \ cd ~/ffmpeg_sources && \ curl -O -L http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/nasm-2.13.02.tar.bz2 && \ - tar xjvf nasm-2.13.02.tar.bz2 && cd nasm-2.13.02 && ./autogen.sh && \ + tar -xf nasm-2.13.02.tar.bz2 && cd nasm-2.13.02 && ./autogen.sh && \ ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \ make -j4 && \ make install && \ cd ~/ffmpeg_sources && \ curl -O -L http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz && \ - tar xzvf yasm-1.3.0.tar.gz && \ + tar -xf yasm-1.3.0.tar.gz && \ cd yasm-1.3.0 && \ ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \ make -j4 && \ @@ -61,14 +61,14 @@ RUN yum remove nasm -y && \ make install && \ cd ~/ffmpeg_sources && \ curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_1_1_1c.tar.gz && \ - tar -zxvf OpenSSL_1_1_1c.tar.gz && \ + tar -xf OpenSSL_1_1_1c.tar.gz && \ cd openssl-OpenSSL_1_1_1c && \ PERL="$HOME/ffmpeg_build/bin/perl" ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ make -j4 && \ make install_sw && \ cd ~/ffmpeg_sources && \ curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \ - tar xjvf ffmpeg-snapshot.tar.bz2 && \ + tar -xf ffmpeg-snapshot.tar.bz2 && \ cd ffmpeg && \ PATH=~/bin:$PATH && \ PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --enable-openssl --enable-libvpx --enable-shared --enable-pic --bindir="$HOME/bin" && \ @@ -85,7 +85,7 @@ RUN mkdir libjpeg-turbo && \ cd libjpeg-turbo && \ export PATH=~/bin:$PATH && \ curl -L https://kent.dl.sourceforge.net/project/libjpeg-turbo/1.5.3/libjpeg-turbo-1.5.3.tar.gz > libjpeg-turbo-1.5.3.tar.gz && \ - tar xzvf libjpeg-turbo-1.5.3.tar.gz && \ + tar -xf libjpeg-turbo-1.5.3.tar.gz && \ cd libjpeg-turbo-1.5.3 && \ export CFLAGS="-fPIC" && \ export CXXFLAGS="-fPIC" && \ From af2f0c6e0ca86147990c9c0f4718aa621c5d03c4 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 6 Aug 2019 15:06:46 +0300 Subject: [PATCH 15/23] nasm is not installed in manylinux1 --- docker/Dockerfile_i686 | 3 +-- docker/Dockerfile_x86_64 | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile_i686 b/docker/Dockerfile_i686 index 7fdac30b..981e2bbe 100644 --- a/docker/Dockerfile_i686 +++ b/docker/Dockerfile_i686 @@ -38,8 +38,7 @@ RUN yum install freetype-devel bzip2-devel zlib-devel -y && \ cd .. && \ rm -rf perl-5.20.1* -RUN yum remove nasm -y && \ - mkdir ~/ffmpeg_sources && \ +RUN mkdir ~/ffmpeg_sources && \ cd ~/ffmpeg_sources && \ curl -O -L http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/nasm-2.13.02.tar.bz2 && \ tar -xf nasm-2.13.02.tar.bz2 && cd nasm-2.13.02 && ./autogen.sh && \ diff --git a/docker/Dockerfile_x86_64 b/docker/Dockerfile_x86_64 index 740d6e91..3b7c4df4 100644 --- a/docker/Dockerfile_x86_64 +++ b/docker/Dockerfile_x86_64 @@ -38,8 +38,7 @@ RUN yum install freetype-devel bzip2-devel zlib-devel -y && \ cd .. && \ rm -rf perl-5.20.1* -RUN yum remove nasm -y && \ - mkdir ~/ffmpeg_sources && \ +RUN mkdir ~/ffmpeg_sources && \ cd ~/ffmpeg_sources && \ curl -O -L http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/nasm-2.13.02.tar.bz2 && \ tar -xf nasm-2.13.02.tar.bz2 && cd nasm-2.13.02 && ./autogen.sh && \ From d08a9c95705e1aff6a6079c49077942c08096485 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 6 Aug 2019 15:09:41 +0300 Subject: [PATCH 16/23] detect i686 in openssl configure --- docker/Dockerfile_i686 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docker/Dockerfile_i686 b/docker/Dockerfile_i686 index 981e2bbe..82f943cc 100644 --- a/docker/Dockerfile_i686 +++ b/docker/Dockerfile_i686 @@ -62,7 +62,9 @@ RUN mkdir ~/ffmpeg_sources && \ curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_1_1_1c.tar.gz && \ tar -xf OpenSSL_1_1_1c.tar.gz && \ cd openssl-OpenSSL_1_1_1c && \ - PERL="$HOME/ffmpeg_build/bin/perl" ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ + true '#in i686, ./config detects x64 in i686 without linux32 \ + when run from "docker build"' && \ + PERL="$HOME/ffmpeg_build/bin/perl" linux32 ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ make -j4 && \ make install_sw && \ cd ~/ffmpeg_sources && \ From 43704d33c49cfd07daac522336d391413a1a4680 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 6 Aug 2019 15:27:31 +0300 Subject: [PATCH 17/23] move perl to a separate subtree as it's a private dependency * rm it after library build --- docker/Dockerfile_i686 | 5 +++-- docker/Dockerfile_x86_64 | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile_i686 b/docker/Dockerfile_i686 index 82f943cc..aa9d4ee0 100644 --- a/docker/Dockerfile_i686 +++ b/docker/Dockerfile_i686 @@ -32,7 +32,7 @@ RUN yum install freetype-devel bzip2-devel zlib-devel -y && \ curl -O -L https://www.cpan.org/src/5.0/perl-5.20.1.tar.gz && \ tar -xf perl-5.20.1.tar.gz && \ cd perl-5.20.1 && \ - ./Configure -des -Dprefix="$HOME/ffmpeg_build" && \ + ./Configure -des -Dprefix="$HOME/openssl_build" && \ make -j4 && \ make install && \ cd .. && \ @@ -64,10 +64,11 @@ RUN mkdir ~/ffmpeg_sources && \ cd openssl-OpenSSL_1_1_1c && \ true '#in i686, ./config detects x64 in i686 without linux32 \ when run from "docker build"' && \ - PERL="$HOME/ffmpeg_build/bin/perl" linux32 ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ + PERL="$HOME/openssl_build/bin/perl" linux32 ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ make -j4 && \ make install_sw && \ cd ~/ffmpeg_sources && \ + rm -rf ~/openssl_build && \ curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \ tar -xf ffmpeg-snapshot.tar.bz2 && \ cd ffmpeg && \ diff --git a/docker/Dockerfile_x86_64 b/docker/Dockerfile_x86_64 index 3b7c4df4..a768e75f 100644 --- a/docker/Dockerfile_x86_64 +++ b/docker/Dockerfile_x86_64 @@ -32,7 +32,7 @@ RUN yum install freetype-devel bzip2-devel zlib-devel -y && \ curl -O -L https://www.cpan.org/src/5.0/perl-5.20.1.tar.gz && \ tar -xf perl-5.20.1.tar.gz && \ cd perl-5.20.1 && \ - ./Configure -des -Dprefix="$HOME/ffmpeg_build" && \ + ./Configure -des -Dprefix="$HOME/openssl_build" && \ make -j4 && \ make install && \ cd .. && \ @@ -62,9 +62,10 @@ RUN mkdir ~/ffmpeg_sources && \ curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_1_1_1c.tar.gz && \ tar -xf OpenSSL_1_1_1c.tar.gz && \ cd openssl-OpenSSL_1_1_1c && \ - PERL="$HOME/ffmpeg_build/bin/perl" ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ + PERL="$HOME/openssl_build/bin/perl" ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ make -j4 && \ make install_sw && \ + rm -rf ~/openssl_build && \ cd ~/ffmpeg_sources && \ curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \ tar -xf ffmpeg-snapshot.tar.bz2 && \ From b72fb32dba934748cae71ab90f30702551621163 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 6 Aug 2019 15:29:05 +0300 Subject: [PATCH 18/23] comment unusual openssl build step --- docker/Dockerfile_i686 | 1 + docker/Dockerfile_x86_64 | 1 + 2 files changed, 2 insertions(+) diff --git a/docker/Dockerfile_i686 b/docker/Dockerfile_i686 index aa9d4ee0..1e12955f 100644 --- a/docker/Dockerfile_i686 +++ b/docker/Dockerfile_i686 @@ -66,6 +66,7 @@ RUN mkdir ~/ffmpeg_sources && \ when run from "docker build"' && \ PERL="$HOME/openssl_build/bin/perl" linux32 ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ make -j4 && \ + true '#skip installing documentation' && \ make install_sw && \ cd ~/ffmpeg_sources && \ rm -rf ~/openssl_build && \ diff --git a/docker/Dockerfile_x86_64 b/docker/Dockerfile_x86_64 index a768e75f..39446f6e 100644 --- a/docker/Dockerfile_x86_64 +++ b/docker/Dockerfile_x86_64 @@ -64,6 +64,7 @@ RUN mkdir ~/ffmpeg_sources && \ cd openssl-OpenSSL_1_1_1c && \ PERL="$HOME/openssl_build/bin/perl" ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ make -j4 && \ + true '#skip installing documentation' && \ make install_sw && \ rm -rf ~/openssl_build && \ cd ~/ffmpeg_sources && \ From 2eb9e0356808ca4156577532a3a7dc7d67610fc7 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 6 Aug 2019 15:32:00 +0300 Subject: [PATCH 19/23] avoid redundant work in perl build --- docker/Dockerfile_i686 | 5 +++-- docker/Dockerfile_x86_64 | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile_i686 b/docker/Dockerfile_i686 index 1e12955f..d8870a3b 100644 --- a/docker/Dockerfile_i686 +++ b/docker/Dockerfile_i686 @@ -33,8 +33,9 @@ RUN yum install freetype-devel bzip2-devel zlib-devel -y && \ tar -xf perl-5.20.1.tar.gz && \ cd perl-5.20.1 && \ ./Configure -des -Dprefix="$HOME/openssl_build" && \ - make -j4 && \ - make install && \ + true '#perl build scripts do much redundant work \ + if running "make install" separately' && \ + make install -j4 && \ cd .. && \ rm -rf perl-5.20.1* diff --git a/docker/Dockerfile_x86_64 b/docker/Dockerfile_x86_64 index 39446f6e..81279d38 100644 --- a/docker/Dockerfile_x86_64 +++ b/docker/Dockerfile_x86_64 @@ -33,8 +33,9 @@ RUN yum install freetype-devel bzip2-devel zlib-devel -y && \ tar -xf perl-5.20.1.tar.gz && \ cd perl-5.20.1 && \ ./Configure -des -Dprefix="$HOME/openssl_build" && \ - make -j4 && \ - make install && \ + true '#perl build scripts do much redundant work \ + if running "make install" separately' && \ + make install -j4 && \ cd .. && \ rm -rf perl-5.20.1* From 8e86d771d0870125573800c0d7f1a7778a9be519 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 6 Aug 2019 15:35:08 +0300 Subject: [PATCH 20/23] build each library in a separate dockerfile command for easier debugging --- docker/Dockerfile_i686 | 46 +++++++++++++++++++++++----------------- docker/Dockerfile_x86_64 | 42 ++++++++++++++++++++---------------- 2 files changed, 50 insertions(+), 38 deletions(-) diff --git a/docker/Dockerfile_i686 b/docker/Dockerfile_i686 index d8870a3b..51c3ed93 100644 --- a/docker/Dockerfile_i686 +++ b/docker/Dockerfile_i686 @@ -29,7 +29,10 @@ RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ # https://trac.ffmpeg.org/wiki/CompilationGuide/Centos#GettheDependencies # manylinux provides the toolchain and git; we provide cmake RUN yum install freetype-devel bzip2-devel zlib-devel -y && \ - curl -O -L https://www.cpan.org/src/5.0/perl-5.20.1.tar.gz && \ + mkdir ~/ffmpeg_sources + +# Newer openssl configure requires newer perl +RUN curl -O -L https://www.cpan.org/src/5.0/perl-5.20.1.tar.gz && \ tar -xf perl-5.20.1.tar.gz && \ cd perl-5.20.1 && \ ./Configure -des -Dprefix="$HOME/openssl_build" && \ @@ -39,38 +42,41 @@ RUN yum install freetype-devel bzip2-devel zlib-devel -y && \ cd .. && \ rm -rf perl-5.20.1* -RUN mkdir ~/ffmpeg_sources && \ - cd ~/ffmpeg_sources && \ +RUN cd ~/ffmpeg_sources && \ + curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_1_1_1c.tar.gz && \ + tar -xf OpenSSL_1_1_1c.tar.gz && \ + cd openssl-OpenSSL_1_1_1c && \ + true '#in i686, ./config detects x64 in i686 without linux32 \ + when run from "docker build"' && \ + PERL="$HOME/openssl_build/bin/perl" linux32 ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ + make -j4 && \ + true '#skip installing documentation' && \ + make install_sw && \ + rm -rf ~/openssl_build + +RUN cd ~/ffmpeg_sources && \ curl -O -L http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/nasm-2.13.02.tar.bz2 && \ tar -xf nasm-2.13.02.tar.bz2 && cd nasm-2.13.02 && ./autogen.sh && \ ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \ make -j4 && \ - make install && \ - cd ~/ffmpeg_sources && \ + make install + +RUN cd ~/ffmpeg_sources && \ curl -O -L http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz && \ tar -xf yasm-1.3.0.tar.gz && \ cd yasm-1.3.0 && \ ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \ make -j4 && \ - make install && \ - cd ~/ffmpeg_sources && \ + make install + +RUN cd ~/ffmpeg_sources && \ git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git && \ cd libvpx && \ ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm --enable-pic --enable-shared && \ make -j4 && \ - make install && \ - cd ~/ffmpeg_sources && \ - curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_1_1_1c.tar.gz && \ - tar -xf OpenSSL_1_1_1c.tar.gz && \ - cd openssl-OpenSSL_1_1_1c && \ - true '#in i686, ./config detects x64 in i686 without linux32 \ - when run from "docker build"' && \ - PERL="$HOME/openssl_build/bin/perl" linux32 ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ - make -j4 && \ - true '#skip installing documentation' && \ - make install_sw && \ - cd ~/ffmpeg_sources && \ - rm -rf ~/openssl_build && \ + make install + +RUN cd ~/ffmpeg_sources && \ curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \ tar -xf ffmpeg-snapshot.tar.bz2 && \ cd ffmpeg && \ diff --git a/docker/Dockerfile_x86_64 b/docker/Dockerfile_x86_64 index 81279d38..53459c40 100644 --- a/docker/Dockerfile_x86_64 +++ b/docker/Dockerfile_x86_64 @@ -29,7 +29,10 @@ RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ # https://trac.ffmpeg.org/wiki/CompilationGuide/Centos#GettheDependencies # manylinux provides the toolchain and git; we provide cmake RUN yum install freetype-devel bzip2-devel zlib-devel -y && \ - curl -O -L https://www.cpan.org/src/5.0/perl-5.20.1.tar.gz && \ + mkdir ~/ffmpeg_sources + +# Newer openssl configure requires newer perl +RUN curl -O -L https://www.cpan.org/src/5.0/perl-5.20.1.tar.gz && \ tar -xf perl-5.20.1.tar.gz && \ cd perl-5.20.1 && \ ./Configure -des -Dprefix="$HOME/openssl_build" && \ @@ -39,36 +42,39 @@ RUN yum install freetype-devel bzip2-devel zlib-devel -y && \ cd .. && \ rm -rf perl-5.20.1* -RUN mkdir ~/ffmpeg_sources && \ - cd ~/ffmpeg_sources && \ +RUN cd ~/ffmpeg_sources && \ + curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_1_1_1c.tar.gz && \ + tar -xf OpenSSL_1_1_1c.tar.gz && \ + cd openssl-OpenSSL_1_1_1c && \ + PERL="$HOME/openssl_build/bin/perl" ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ + make -j4 && \ + true '#skip installing documentation' && \ + make install_sw && \ + rm -rf ~/openssl_build + +RUN cd ~/ffmpeg_sources && \ curl -O -L http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/nasm-2.13.02.tar.bz2 && \ tar -xf nasm-2.13.02.tar.bz2 && cd nasm-2.13.02 && ./autogen.sh && \ ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \ make -j4 && \ - make install && \ - cd ~/ffmpeg_sources && \ + make install + +RUN cd ~/ffmpeg_sources && \ curl -O -L http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz && \ tar -xf yasm-1.3.0.tar.gz && \ cd yasm-1.3.0 && \ ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \ make -j4 && \ - make install && \ - cd ~/ffmpeg_sources && \ + make install + +RUN cd ~/ffmpeg_sources && \ git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git && \ cd libvpx && \ ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm --enable-pic --enable-shared && \ make -j4 && \ - make install && \ - cd ~/ffmpeg_sources && \ - curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_1_1_1c.tar.gz && \ - tar -xf OpenSSL_1_1_1c.tar.gz && \ - cd openssl-OpenSSL_1_1_1c && \ - PERL="$HOME/openssl_build/bin/perl" ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ - make -j4 && \ - true '#skip installing documentation' && \ - make install_sw && \ - rm -rf ~/openssl_build && \ - cd ~/ffmpeg_sources && \ + make install + +RUN cd ~/ffmpeg_sources && \ curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \ tar -xf ffmpeg-snapshot.tar.bz2 && \ cd ffmpeg && \ From 8d12fd7a134176b545fd0dc47be338b2726d4717 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 6 Aug 2019 15:35:36 +0300 Subject: [PATCH 21/23] comment custom i686 step --- docker/Dockerfile_i686 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docker/Dockerfile_i686 b/docker/Dockerfile_i686 index 51c3ed93..c03a9e54 100644 --- a/docker/Dockerfile_i686 +++ b/docker/Dockerfile_i686 @@ -115,6 +115,9 @@ RUN curl -O https://raw.githubusercontent.com/torvalds/linux/v4.14/include/uapi/ curl -O https://raw.githubusercontent.com/torvalds/linux/v4.14/include/linux/compiler.h && \ mv videodev2.h v4l2-common.h v4l2-controls.h compiler.h /usr/include/linux +#in i686, yum metadata ends up with slightly wrong timestamps +#which inhibits its update +#https://github.com/skvark/opencv-python/issues/148 RUN yum clean all ENV PATH "$HOME/bin:$PATH" From 48085831bcbfcb0e7dbc9e6121cb33d01df76fd2 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 6 Aug 2019 15:37:37 +0300 Subject: [PATCH 22/23] opencv now bundles libjpeg-turbo and the separate's onre buid fails dueto expired certificate at https://kent.dl.sourceforge.net --- docker/Dockerfile_i686 | 18 ------------------ docker/Dockerfile_x86_64 | 18 ------------------ 2 files changed, 36 deletions(-) diff --git a/docker/Dockerfile_i686 b/docker/Dockerfile_i686 index c03a9e54..98d70324 100644 --- a/docker/Dockerfile_i686 +++ b/docker/Dockerfile_i686 @@ -91,24 +91,6 @@ RUN cd ~/ffmpeg_sources && \ ENV PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/root/ffmpeg_build/lib/pkgconfig ENV LDFLAGS -L/root/ffmpeg_build/lib -RUN mkdir libjpeg-turbo && \ - cd libjpeg-turbo && \ - export PATH=~/bin:$PATH && \ - curl -L https://kent.dl.sourceforge.net/project/libjpeg-turbo/1.5.3/libjpeg-turbo-1.5.3.tar.gz > libjpeg-turbo-1.5.3.tar.gz && \ - tar xf libjpeg-turbo-1.5.3.tar.gz && \ - cd libjpeg-turbo-1.5.3 && \ - export CFLAGS="-fPIC" && \ - export CXXFLAGS="-fPIC" && \ - autoreconf -fiv && \ - ./configure --host=i686-pc-linux-gnu && \ - make && \ - make install && \ - cd ../../ && \ - rm -rf libjpeg-turbo - -ENV JPEG_LIBRARY /opt/libjpeg-turbo/lib32/libjpeg.a -ENV JPEG_INCLUDE_DIR /opt/libjpeg-turbo/include - RUN curl -O https://raw.githubusercontent.com/torvalds/linux/v4.14/include/uapi/linux/videodev2.h && \ curl -O https://raw.githubusercontent.com/torvalds/linux/v4.14/include/uapi/linux/v4l2-common.h && \ curl -O https://raw.githubusercontent.com/torvalds/linux/v4.14/include/uapi/linux/v4l2-controls.h && \ diff --git a/docker/Dockerfile_x86_64 b/docker/Dockerfile_x86_64 index 53459c40..81b59974 100644 --- a/docker/Dockerfile_x86_64 +++ b/docker/Dockerfile_x86_64 @@ -89,24 +89,6 @@ RUN cd ~/ffmpeg_sources && \ ENV PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/root/ffmpeg_build/lib/pkgconfig ENV LDFLAGS -L/root/ffmpeg_build/lib -RUN mkdir libjpeg-turbo && \ - cd libjpeg-turbo && \ - export PATH=~/bin:$PATH && \ - curl -L https://kent.dl.sourceforge.net/project/libjpeg-turbo/1.5.3/libjpeg-turbo-1.5.3.tar.gz > libjpeg-turbo-1.5.3.tar.gz && \ - tar -xf libjpeg-turbo-1.5.3.tar.gz && \ - cd libjpeg-turbo-1.5.3 && \ - export CFLAGS="-fPIC" && \ - export CXXFLAGS="-fPIC" && \ - autoreconf -fiv && \ - ./configure && \ - make && \ - make install && \ - cd ../../ && \ - rm -rf libjpeg-turbo - -ENV JPEG_LIBRARY /opt/libjpeg-turbo/lib64/libjpeg.a -ENV JPEG_INCLUDE_DIR /opt/libjpeg-turbo/include - RUN curl -O https://raw.githubusercontent.com/torvalds/linux/v4.14/include/uapi/linux/videodev2.h && \ curl -O https://raw.githubusercontent.com/torvalds/linux/v4.14/include/uapi/linux/v4l2-common.h && \ curl -O https://raw.githubusercontent.com/torvalds/linux/v4.14/include/uapi/linux/v4l2-controls.h && \ From 88597ed1d6acde9673a667cee31de818330f19cb Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 6 Aug 2019 14:44:49 +0300 Subject: [PATCH 23/23] update dockerfile README --- docker/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker/README.md b/docker/README.md index 2e8602bf..e31d7a07 100644 --- a/docker/README.md +++ b/docker/README.md @@ -10,6 +10,5 @@ The images have following extra software installed: - Qt 4.8.7 - Cmake 3.9.0 -- FFmpeg with libvpx (latest snapshots at the build time) -- libjpeg-turbo 1.5.3 +- FFmpeg with libvpx (latest snapshots at the build time) and recent openssl - Some missing headers included from more recent Linux to be able to enable V4L / V4L2 support in OpenCV \ No newline at end of file