total reorg pull sources all in one block

This commit is contained in:
sparklyballs 2017-08-13 09:02:50 +01:00
parent 5c0d892d56
commit 9ec90725a1
2 changed files with 112 additions and 85 deletions

View File

@ -1,7 +1,10 @@
FROM lsiobase/xenial-root-x86
MAINTAINER sparklyballs
ARG DEBIAN_FRONTEND="noninteractive"
ARG BUILD_PACKAGES="\
# install build packages
RUN \
apt-get update && \
DEBIAN_FRONTEND="noninteractive" apt-get install -y \
autoconf \
automake \
bash \
@ -11,7 +14,6 @@ ARG BUILD_PACKAGES="\
curl \
frei0r-plugins-dev \
gawk \
git \
libass-dev \
libfontconfig-dev \
libfreetype6-dev \
@ -32,7 +34,6 @@ ARG BUILD_PACKAGES="\
libxcb-xfixes0-dev \
libxvidcore-dev \
lsb-release \
mercurial \
perl \
pkg-config \
sudo \
@ -41,21 +42,10 @@ ARG BUILD_PACKAGES="\
wget \
xz-utils \
yasm \
zlib1g-dev"
# install build packages
RUN \
apt-get update && \
apt-get install -y \
${BUILD_PACKAGES} && \
zlib1g-dev && \
rm -rf \
/var/lib/apt/lists/*
# make source folder
RUN \
mkdir -p \
/tmp/ffmpeg-source
# package versions
ARG FFMPEG_VER="3.3.3"
ARG FRIBIDI_VER="0.19.7"
@ -63,20 +53,85 @@ ARG HARFBUZZ_VER="1.4.8"
ARG LAME_VER="3.99.5"
ARG LIBASS_VER="0.13.7"
ARG NASM_VER="2.13.01"
ARG OPENJPEG_VER="2.2.0"
ARG OPENJPEG_VER="2.1.2"
ARG OPUS_VER="1.2.1"
ARG RTMP_VER="2.3"
ARG RTMP_COMMIT="fa8646daeb19dfd12c181f7d19de708d623704c0"
ARG SOXR_VER="0.1.2"
ARG VIDSTAB_VER="1.1.0"
ARG VPX_VER="1.6.1"
ARG X265_VER="2.5"
ARG ZIMG_VER="2.5.1"
# environment variables
ARG BUILD_ROOT="/tmp/build-root"
ARG SOURCE_FOLDER="/tmp/source-folder"
# make folders
RUN \
mkdir -p \
${BUILD_ROOT} \
${SOURCE_FOLDER}
# fetch source codes
RUN \
LAME_BRANCH=${LAME_VER%.*} && \
RTMP_VER=$(printf "%.7s" $RTMP_COMMIT) && \
curl -o \
${SOURCE_FOLDER}/fdk-aac.tar.gz -L \
https://github.com/mstorsjo/fdk-aac/tarball/master && \
curl -o \
${SOURCE_FOLDER}/ffmpeg.tar.bz2 -L \
http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VER}.tar.bz2 && \
curl -o \
${SOURCE_FOLDER}/fribidi-${FRIBIDI_VER}.tar.bz2 -L \
http://fribidi.org/download/fribidi-${FRIBIDI_VER}.tar.bz2 && \
curl -o \
${SOURCE_FOLDER}/harfbuzz-${HARFBUZZ_VER}.tar.bz2 -L \
https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-${HARFBUZZ_VER}.tar.bz2 && \
curl -o \
${SOURCE_FOLDER}/lame-${LAME_VER}.tar.gz -L \
http://downloads.sourceforge.net/project/lame/lame/${LAME_BRANCH}/lame-${LAME_VER}.tar.gz && \
curl -o \
${SOURCE_FOLDER}/last_x264.tar.bz2 -L \
http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2 && \
curl -o \
${SOURCE_FOLDER}/${LIBASS_VER}.tar.gz -L \
https://github.com/libass/libass/archive/${LIBASS_VER}.tar.gz && \
curl -o \
${SOURCE_FOLDER}/nasm-${NASM_VER}.tar.bz2 -L \
http://www.nasm.us/pub/nasm/releasebuilds/${NASM_VER}/nasm-${NASM_VER}.tar.bz2 && \
curl -o \
${SOURCE_FOLDER}/opus-${OPUS_VER}.tar.gz -L \
https://archive.mozilla.org/pub/opus/opus-${OPUS_VER}.tar.gz && \
curl -o \
${SOURCE_FOLDER}/release-${ZIMG_VER}.tar.gz -L \
https://github.com/sekrit-twc/zimg/archive/release-${ZIMG_VER}.tar.gz && \
curl -o \
${SOURCE_FOLDER}/rtmpdump-${RTMP_VER}.tgz -L \
https://git.ffmpeg.org/gitweb/rtmpdump.git/snapshot/${RTMP_COMMIT}.tar.gz && \
curl -o \
${SOURCE_FOLDER}/soxr-${SOXR_VER}-Source.tar.xz -L \
https://sourceforge.net/projects/soxr/files/soxr-${SOXR_VER}-Source.tar.xz && \
curl -o \
${SOURCE_FOLDER}/v${OPENJPEG_VER}.tar.gz -L \
https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VER}.tar.gz && \
curl -o \
${SOURCE_FOLDER}/v${VIDSTAB_VER}.tar.gz -L \
https://github.com/georgmartius/vid.stab/archive/v${VIDSTAB_VER}.tar.gz && \
curl -o \
${SOURCE_FOLDER}/v${VPX_VER}.tar.gz -L \
https://github.com/webmproject/libvpx/archive/v${VPX_VER}.tar.gz && \
curl -o \
${SOURCE_FOLDER}/x265_${X265_VER}.tar.gz -L \
https://bitbucket.org/multicoreware/x265/downloads/x265_${X265_VER}.tar.gz
# unpack source codes
RUN \
for file in ${SOURCE_FOLDER}/* ; do tar xf $file -C ${BUILD_ROOT} ; done
# compile nasm
RUN \
cd /tmp/ffmpeg-source && \
wget http://www.nasm.us/pub/nasm/releasebuilds/${NASM_VER}/nasm-${NASM_VER}.tar.bz2 && \
tar xjvf nasm-${NASM_VER}.tar.bz2 && \
cd nasm-${NASM_VER} && \
cd ${BUILD_ROOT}/nasm-${NASM_VER} && \
./autogen.sh && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \
PATH="$HOME/bin:$PATH" make && \
@ -84,30 +139,21 @@ RUN \
# compile x264
RUN \
cd /tmp/ffmpeg-source && \
wget http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2 && \
tar xjvf last_x264.tar.bz2 && \
cd x264-snapshot* && \
cd ${BUILD_ROOT}/x264-snapshot* && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --disable-opencl && \
PATH="$HOME/bin:$PATH" make && \
make install
# compile x265
RUN \
cd /tmp/ffmpeg-source && \
wget https://bitbucket.org/multicoreware/x265/downloads/x265_${X265_VER}.tar.gz && \
tar xvf x265_${X265_VER}.tar.gz && \
cd x265_${X265_VER}/build/linux && \
cd ${BUILD_ROOT}/x265_${X265_VER}/build/linux && \
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source && \
PATH="$HOME/bin:$PATH" make && \
make install
# compile libfdk-aac
RUN \
cd /tmp/ffmpeg-source && \
wget -O fdk-aac.tar.gz https://github.com/mstorsjo/fdk-aac/tarball/master && \
tar xzvf fdk-aac.tar.gz && \
cd mstorsjo-fdk-aac* && \
cd ${BUILD_ROOT}/mstorsjo-fdk-aac* && \
autoreconf -fiv && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
PATH="$HOME/bin:$PATH" make && \
@ -115,30 +161,21 @@ RUN \
# compile harfbuzz
RUN \
cd /tmp/ffmpeg-source && \
wget https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-${HARFBUZZ_VER}.tar.bz2 && \
tar xjvf harfbuzz-${HARFBUZZ_VER}.tar.bz2 && \
cd harfbuzz-${HARFBUZZ_VER} && \
cd ${BUILD_ROOT}/harfbuzz-${HARFBUZZ_VER} && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-shared --enable-static && \
PATH="$HOME/bin:$PATH" make && \
make install
# compile fribidi
RUN \
cd /tmp/ffmpeg-source && \
wget http://fribidi.org/download/fribidi-${FRIBIDI_VER}.tar.bz2 && \
tar xjvf fribidi-${FRIBIDI_VER}.tar.bz2 && \
cd fribidi-${FRIBIDI_VER} && \
cd ${BUILD_ROOT}/fribidi-${FRIBIDI_VER} && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-shared --enable-static && \
PATH="$HOME/bin:$PATH" make && \
make install
# compile libass
RUN \
cd /tmp/ffmpeg-source && \
wget https://github.com/libass/libass/archive/${LIBASS_VER}.tar.gz && \
tar xvf ${LIBASS_VER}.tar.gz && \
cd libass-${LIBASS_VER} && \
cd ${BUILD_ROOT}/libass-${LIBASS_VER} && \
./autogen.sh && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
PATH="$HOME/bin:$PATH" make && \
@ -146,60 +183,43 @@ RUN \
# compile lame
RUN \
cd /tmp/ffmpeg-source && \
LAME_BRANCH=${LAME_VER%.*} && \
wget http://downloads.sourceforge.net/project/lame/lame/${LAME_BRANCH}/lame-${LAME_VER}.tar.gz && \
tar xzvf lame-${LAME_VER}.tar.gz && \
cd lame-${LAME_VER} && \
cd ${BUILD_ROOT}/lame-${LAME_VER} && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --enable-nasm --disable-shared && \
PATH="$HOME/bin:$PATH" make && \
make install
# compile opus
RUN \
cd /tmp/ffmpeg-source && \
wget https://archive.mozilla.org/pub/opus/opus-${OPUS_VER}.tar.gz && \
tar xzvf opus-${OPUS_VER}.tar.gz && \
cd opus-${OPUS_VER} && \
cd ${BUILD_ROOT}/opus-${OPUS_VER} && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
PATH="$HOME/bin:$PATH" make && \
make install
# compile libvpx
RUN \
cd /tmp/ffmpeg-source && \
git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git && \
cd libvpx && \
cd ${BUILD_ROOT}/libvpx-${VPX_VER} && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-pic && \
PATH="$HOME/bin:$PATH" make && \
make install
# compile rtmp
RUN \
cd /tmp/ffmpeg-source && \
wget https://rtmpdump.mplayerhq.hu/download/rtmpdump-${RTMP_VER}.tgz && \
tar xvf rtmpdump-${RTMP_VER}.tgz && \
cd rtmpdump-${RTMP_VER} && \
RTMP_VER=$(printf "%.7s" $RTMP_COMMIT) && \
cd ${BUILD_ROOT}/rtmpdump-${RTMP_VER} && \
sed -i "s#prefix=.*#prefix=$HOME/ffmpeg_build#" ./Makefile && \
PATH="$HOME/bin:$PATH" make && \
make install
# compile soxr
RUN \
cd /tmp/ffmpeg-source && \
wget https://sourceforge.net/projects/soxr/files/soxr-${SOXR_VER}-Source.tar.xz && \
tar xvf soxr-${SOXR_VER}-Source.tar.xz && \
cd soxr-${SOXR_VER}-Source && \
cd ${BUILD_ROOT}/soxr-${SOXR_VER}-Source && \
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DBUILD_SHARED_LIBS:bool=off -DWITH_OPENMP:bool=off -DBUILD_TESTS:bool=off && \
PATH="$HOME/bin:$PATH" make && \
make install
# compile vidstab
RUN \
cd /tmp/ffmpeg-source && \
wget https://github.com/georgmartius/vid.stab/archive/v${VIDSTAB_VER}.tar.gz && \
tar xvf v${VIDSTAB_VER}.tar.gz && \
cd vid.stab-${VIDSTAB_VER} && \
cd ${BUILD_ROOT}/vid.stab-${VIDSTAB_VER} && \
sed -i "s/BUILD_SHARED_LIBS/BUILD_STATIC_LIBS/" ./CMakeLists.txt && \
PATH="$HOME/bin:$PATH" cmake -DCMAKE_INSTALL_PREFIX:PATH="$HOME/ffmpeg_build" && \
PATH="$HOME/bin:$PATH" make && \
@ -207,31 +227,22 @@ RUN \
# compile openjpeg
RUN \
cd /tmp/ffmpeg-source && \
wget https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VER}.tar.gz && \
tar xvf v${OPENJPEG_VER}.tar.gz && \
cd openjpeg-${OPENJPEG_VER} && \
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DBUILD_SHARED_LIBS:bool=off && \
cd ${BUILD_ROOT}/openjpeg-${OPENJPEG_VER} && \
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DBUILD_SHARED_LIBS:bool=off -DBUILD_THIRDPARTY=on && \
PATH="$HOME/bin:$PATH" make && \
make install
# compile zimg
RUN \
cd /tmp/ffmpeg-source && \
wget https://github.com/sekrit-twc/zimg/archive/release-${ZIMG_VER}.tar.gz && \
tar xvf release-${ZIMG_VER}.tar.gz && \
cd zimg-release-${ZIMG_VER} && \
cd ${BUILD_ROOT}/zimg-release-${ZIMG_VER} && \
./autogen.sh && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-shared --enable-static && \
PATH="$HOME/bin:$PATH" make && \
make install
# compile ffmpeg
# compile ffmpeg
RUN \
cd /tmp/ffmpeg-source && \
wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \
tar xjvf ffmpeg-snapshot.tar.bz2 && \
cd ffmpeg && \
cd ${BUILD_ROOT}/ffmpeg* && \
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
--bindir="$HOME/bin" \
--enable-ffplay \
@ -274,7 +285,7 @@ RUN \
make install && \
hash -r
# archive artefacts
# archive artefacts
RUN \
mkdir -p \
/package && \

16
list Normal file
View File

@ -0,0 +1,16 @@
tar xf ffmpeg-snapshot.tar.bz2 && \
tar xf fribidi-${FRIBIDI_VER}.tar.bz2 && \
tar xf harfbuzz-${HARFBUZZ_VER}.tar.bz2 && \
tar xf last_x264.tar.bz2 && \
tar xf nasm-${NASM_VER}.tar.bz2 && \
tar xf ${LIBASS_VER}.tar.gz && \
tar xf release-${ZIMG_VER}.tar.gz && \
tar xf rtmpdump-${RTMP_VER}.tgz && \
tar xf soxr-${SOXR_VER}-Source.tar.xz && \
tar xf v${OPENJPEG_VER}.tar.gz && \
tar xf v${VIDSTAB_VER}.tar.gz && \
tar xf v${VPX_VER}.tar.gz && \
tar xf x265_${X265_VER}.tar.gz
tar xf fdk-aac.tar.gz && \
tar xf lame-${LAME_VER}.tar.gz && \
tar xf opus-${OPUS_VER}.tar.gz && \