Skip to content

Commit 9273de7

Browse files
committed
wip
1 parent 59dba30 commit 9273de7

File tree

1 file changed

+117
-118
lines changed

1 file changed

+117
-118
lines changed

Dockerfile

Lines changed: 117 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ RUN \
154154
sed -i 's/default-members = ["rsvg", "rsvg_convert"]/default-members = ["rsvg"]/g' Cargo.toml && \
155155
sed -i "s/subdir('rsvg_convert')//g" meson.build && \
156156
meson setup build \
157-
-Dbuildtype=release \
157+
-Dbuildtype=debug \
158158
-Ddefault_library=static \
159159
-Ddocs=disabled \
160160
-Dintrospection=disabled \
@@ -182,7 +182,7 @@ RUN \
182182
sed -i 's/lto = "thin"/lto = "off"/g' Cargo.toml && \
183183
CARGO_REGISTRIES_CRATES_IO_PROTOCOL="sparse" \
184184
RUSTFLAGS="-C target-feature=+crt-static" \
185-
cargo cinstall --release
185+
cargo cinstall --debug
186186

187187
# bump: ffmpeg /FFMPEG_VERSION=([\d.]+)/ https://github.com/FFmpeg/FFmpeg.git|*
188188
# bump: ffmpeg after ./hashupdate Dockerfile FFMPEG $LATEST
@@ -208,10 +208,9 @@ RUN \
208208
sed -i 's/add_ldexeflags -fPIE -pie/add_ldexeflags -fPIE -static-pie/' configure && \
209209
./configure \
210210
--pkg-config-flags="--static" \
211-
--extra-cflags="-fopenmp" \
211+
--extra-cflags="-O0 -ggdb -fopenmp" \
212212
--extra-ldflags="-fopenmp -Wl,--allow-multiple-definition -Wl,-z,stack-size=2097152" \
213213
--toolchain=hardened \
214-
--disable-debug \
215214
--disable-shared \
216215
--disable-ffplay \
217216
--enable-static \
@@ -220,123 +219,123 @@ RUN \
220219
|| (cat ffbuild/config.log ; false) \
221220
&& make -j$(nproc) install
222221

223-
RUN \
224-
EXPAT_VERSION=$(pkg-config --modversion expat) \
225-
FFTW_VERSION=$(pkg-config --modversion fftw3) \
226-
FONTCONFIG_VERSION=$(pkg-config --modversion fontconfig) \
227-
FREETYPE_VERSION=$(pkg-config --modversion freetype2) \
228-
FRIBIDI_VERSION=$(pkg-config --modversion fribidi) \
229-
LIBSAMPLERATE_VERSION=$(pkg-config --modversion samplerate) \
230-
LIBVO_AMRWBENC_VERSION=$(pkg-config --modversion vo-amrwbenc) \
231-
LIBXML2_VERSION=$(pkg-config --modversion libxml-2.0) \
232-
OPENSSL_VERSION=$(pkg-config --modversion openssl) \
233-
SNAPPY_VERSION=$(apk info -a snappy $APK_OPTS | head -n1 | awk '{print $1}' | sed -e 's/snappy-//') \
234-
SOXR_VERSION=$(pkg-config --modversion soxr) \
235-
jq -n \
236-
'{ \
237-
expat: env.EXPAT_VERSION, \
238-
"libfdk-aac": env.FDK_AAC_VERSION, \
239-
ffmpeg: env.FFMPEG_VERSION, \
240-
fftw: env.FFTW_VERSION, \
241-
fontconfig: env.FONTCONFIG_VERSION, \
242-
lcms2: env.LCMS2_VERSION, \
243-
libaom: env.AOM_VERSION, \
244-
libaribb24: env.LIBARIBB24_VERSION, \
245-
libass: env.LIBASS_VERSION, \
246-
libbluray: env.LIBBLURAY_VERSION, \
247-
libdav1d: env.DAV1D_VERSION, \
248-
libdavs2: env.DAVS2_VERSION, \
249-
libfreetype: env.FREETYPE_VERSION, \
250-
libfribidi: env.FRIBIDI_VERSION, \
251-
libgme: env.LIBGME_COMMIT, \
252-
libgsm: env.LIBGSM_COMMIT, \
253-
libharfbuzz: env.LIBHARFBUZZ_VERSION, \
254-
libjxl: env.LIBJXL_VERSION, \
255-
libkvazaar: env.KVAZAAR_VERSION, \
256-
libmodplug: env.LIBMODPLUG_VERSION, \
257-
libmp3lame: env.MP3LAME_VERSION, \
258-
libmysofa: env.LIBMYSOFA_VERSION, \
259-
libogg: env.OGG_VERSION, \
260-
libopencoreamr: env.OPENCOREAMR_VERSION, \
261-
libopenjpeg: env.OPENJPEG_VERSION, \
262-
libopus: env.OPUS_VERSION, \
263-
librabbitmq: env.LIBRABBITMQ_VERSION, \
264-
librav1e: env.RAV1E_VERSION, \
265-
librsvg: env.LIBRSVG_VERSION, \
266-
librtmp: env.LIBRTMP_COMMIT, \
267-
librubberband: env.RUBBERBAND_VERSION, \
268-
libsamplerate: env.LIBSAMPLERATE_VERSION, \
269-
libshine: env.LIBSHINE_VERSION, \
270-
libsnappy: env.SNAPPY_VERSION, \
271-
libsoxr: env.SOXR_VERSION, \
272-
libspeex: env.SPEEX_VERSION, \
273-
libsrt: env.SRT_VERSION, \
274-
libssh: env.LIBSSH_VERSION, \
275-
libsvtav1: env.SVTAV1_VERSION, \
276-
libtheora: env.THEORA_VERSION, \
277-
libtwolame: env.TWOLAME_VERSION, \
278-
libuavs3d: env.UAVS3D_COMMIT, \
279-
libvidstab: env.VIDSTAB_VERSION, \
280-
libvmaf: env.VMAF_VERSION, \
281-
libvo_amrwbenc: env.LIBVO_AMRWBENC_VERSION, \
282-
libvorbis: env.VORBIS_VERSION, \
283-
libvpx: env.VPX_VERSION, \
284-
libwebp: env.LIBWEBP_VERSION, \
285-
libx264: env.X264_VERSION, \
286-
libx265: env.X265_VERSION, \
287-
libxavs2: env.XAVS2_VERSION, \
288-
libxevd: env.XEVD_VERSION, \
289-
libxeve: env.XEVE_VERSION, \
290-
libxml2: env.LIBXML2_VERSION, \
291-
libxvid: env.XVID_VERSION, \
292-
libzimg: env.ZIMG_VERSION, \
293-
libzmq: env.LIBZMQ_VERSION, \
294-
openssl: env.OPENSSL_VERSION, \
295-
}' > /versions.json
222+
# RUN \
223+
# EXPAT_VERSION=$(pkg-config --modversion expat) \
224+
# FFTW_VERSION=$(pkg-config --modversion fftw3) \
225+
# FONTCONFIG_VERSION=$(pkg-config --modversion fontconfig) \
226+
# FREETYPE_VERSION=$(pkg-config --modversion freetype2) \
227+
# FRIBIDI_VERSION=$(pkg-config --modversion fribidi) \
228+
# LIBSAMPLERATE_VERSION=$(pkg-config --modversion samplerate) \
229+
# LIBVO_AMRWBENC_VERSION=$(pkg-config --modversion vo-amrwbenc) \
230+
# LIBXML2_VERSION=$(pkg-config --modversion libxml-2.0) \
231+
# OPENSSL_VERSION=$(pkg-config --modversion openssl) \
232+
# SNAPPY_VERSION=$(apk info -a snappy $APK_OPTS | head -n1 | awk '{print $1}' | sed -e 's/snappy-//') \
233+
# SOXR_VERSION=$(pkg-config --modversion soxr) \
234+
# jq -n \
235+
# '{ \
236+
# expat: env.EXPAT_VERSION, \
237+
# "libfdk-aac": env.FDK_AAC_VERSION, \
238+
# ffmpeg: env.FFMPEG_VERSION, \
239+
# fftw: env.FFTW_VERSION, \
240+
# fontconfig: env.FONTCONFIG_VERSION, \
241+
# lcms2: env.LCMS2_VERSION, \
242+
# libaom: env.AOM_VERSION, \
243+
# libaribb24: env.LIBARIBB24_VERSION, \
244+
# libass: env.LIBASS_VERSION, \
245+
# libbluray: env.LIBBLURAY_VERSION, \
246+
# libdav1d: env.DAV1D_VERSION, \
247+
# libdavs2: env.DAVS2_VERSION, \
248+
# libfreetype: env.FREETYPE_VERSION, \
249+
# libfribidi: env.FRIBIDI_VERSION, \
250+
# libgme: env.LIBGME_COMMIT, \
251+
# libgsm: env.LIBGSM_COMMIT, \
252+
# libharfbuzz: env.LIBHARFBUZZ_VERSION, \
253+
# libjxl: env.LIBJXL_VERSION, \
254+
# libkvazaar: env.KVAZAAR_VERSION, \
255+
# libmodplug: env.LIBMODPLUG_VERSION, \
256+
# libmp3lame: env.MP3LAME_VERSION, \
257+
# libmysofa: env.LIBMYSOFA_VERSION, \
258+
# libogg: env.OGG_VERSION, \
259+
# libopencoreamr: env.OPENCOREAMR_VERSION, \
260+
# libopenjpeg: env.OPENJPEG_VERSION, \
261+
# libopus: env.OPUS_VERSION, \
262+
# librabbitmq: env.LIBRABBITMQ_VERSION, \
263+
# librav1e: env.RAV1E_VERSION, \
264+
# librsvg: env.LIBRSVG_VERSION, \
265+
# librtmp: env.LIBRTMP_COMMIT, \
266+
# librubberband: env.RUBBERBAND_VERSION, \
267+
# libsamplerate: env.LIBSAMPLERATE_VERSION, \
268+
# libshine: env.LIBSHINE_VERSION, \
269+
# libsnappy: env.SNAPPY_VERSION, \
270+
# libsoxr: env.SOXR_VERSION, \
271+
# libspeex: env.SPEEX_VERSION, \
272+
# libsrt: env.SRT_VERSION, \
273+
# libssh: env.LIBSSH_VERSION, \
274+
# libsvtav1: env.SVTAV1_VERSION, \
275+
# libtheora: env.THEORA_VERSION, \
276+
# libtwolame: env.TWOLAME_VERSION, \
277+
# libuavs3d: env.UAVS3D_COMMIT, \
278+
# libvidstab: env.VIDSTAB_VERSION, \
279+
# libvmaf: env.VMAF_VERSION, \
280+
# libvo_amrwbenc: env.LIBVO_AMRWBENC_VERSION, \
281+
# libvorbis: env.VORBIS_VERSION, \
282+
# libvpx: env.VPX_VERSION, \
283+
# libwebp: env.LIBWEBP_VERSION, \
284+
# libx264: env.X264_VERSION, \
285+
# libx265: env.X265_VERSION, \
286+
# libxavs2: env.XAVS2_VERSION, \
287+
# libxevd: env.XEVD_VERSION, \
288+
# libxeve: env.XEVE_VERSION, \
289+
# libxml2: env.LIBXML2_VERSION, \
290+
# libxvid: env.XVID_VERSION, \
291+
# libzimg: env.ZIMG_VERSION, \
292+
# libzmq: env.LIBZMQ_VERSION, \
293+
# openssl: env.OPENSSL_VERSION, \
294+
# }' > /versions.json
296295

297-
# make sure binaries has no dependencies, is relro, pie and stack nx
298-
COPY checkelf /
299-
RUN \
300-
/checkelf /usr/local/bin/ffmpeg && \
301-
/checkelf /usr/local/bin/ffprobe
302-
# workaround for using -Wl,--allow-multiple-definition
303-
# see comment in checkdupsym for details
304-
COPY checkdupsym /
305-
RUN /checkdupsym /ffmpeg-*
296+
# # make sure binaries has no dependencies, is relro, pie and stack nx
297+
# COPY checkelf /
298+
# RUN \
299+
# /checkelf /usr/local/bin/ffmpeg && \
300+
# /checkelf /usr/local/bin/ffprobe
301+
# # workaround for using -Wl,--allow-multiple-definition
302+
# # see comment in checkdupsym for details
303+
# COPY checkdupsym /
304+
# RUN /checkdupsym /ffmpeg-*
306305

307-
# some basic fonts that don't take up much space
308-
RUN apk add $APK_OPTS font-terminus font-inconsolata font-dejavu font-awesome
306+
# # some basic fonts that don't take up much space
307+
# RUN apk add $APK_OPTS font-terminus font-inconsolata font-dejavu font-awesome
309308

310-
FROM scratch AS final1
311-
COPY --from=builder /usr/local/bin/ffmpeg /
312-
COPY --from=builder /usr/local/bin/ffprobe /
313-
COPY --from=builder /versions.json /
314-
COPY --from=builder /usr/local/share/doc/ffmpeg/* /doc/
315-
COPY --from=builder /etc/ssl/cert.pem /etc/ssl/cert.pem
316-
COPY --from=builder /etc/fonts/ /etc/fonts/
317-
COPY --from=builder /usr/share/fonts/ /usr/share/fonts/
318-
COPY --from=builder /usr/share/consolefonts/ /usr/share/consolefonts/
319-
COPY --from=builder /var/cache/fontconfig/ /var/cache/fontconfig/
309+
# FROM scratch AS final1
310+
# COPY --from=builder /usr/local/bin/ffmpeg /
311+
# COPY --from=builder /usr/local/bin/ffprobe /
312+
# COPY --from=builder /versions.json /
313+
# COPY --from=builder /usr/local/share/doc/ffmpeg/* /doc/
314+
# COPY --from=builder /etc/ssl/cert.pem /etc/ssl/cert.pem
315+
# COPY --from=builder /etc/fonts/ /etc/fonts/
316+
# COPY --from=builder /usr/share/fonts/ /usr/share/fonts/
317+
# COPY --from=builder /usr/share/consolefonts/ /usr/share/consolefonts/
318+
# COPY --from=builder /var/cache/fontconfig/ /var/cache/fontconfig/
320319

321-
# sanity tests
322-
RUN ["/ffmpeg", "-version"]
323-
RUN ["/ffprobe", "-version"]
324-
RUN ["/ffmpeg", "-hide_banner", "-buildconf"]
325-
# stack size
326-
# RUN ["/ffmpeg", "-f", "lavfi", "-i", "testsrc", "-c:v", "libsvtav1", "-t", "100ms", "-f", "null", "-"]
327-
# dns
328-
# RUN ["/ffprobe", "-i", "https://github.com/favicon.ico"]
329-
# tls/https certs
330-
# RUN ["/ffprobe", "-tls_verify", "1", "-ca_file", "/etc/ssl/cert.pem", "-i", "https://github.com/favicon.ico"]
331-
# svg
332-
# RUN ["/ffprobe", "-i", "https://github.githubassets.com/favicons/favicon.svg"]
333-
# >1 static rust libs
334-
RUN ["/ffmpeg", "-f", "lavfi", "-i", "testsrc", "-c:v", "librav1e", "-t", "100ms", "-f", "null", "-"]
320+
# # sanity tests
321+
# RUN ["/ffmpeg", "-version"]
322+
# RUN ["/ffprobe", "-version"]
323+
# RUN ["/ffmpeg", "-hide_banner", "-buildconf"]
324+
# # stack size
325+
# # RUN ["/ffmpeg", "-f", "lavfi", "-i", "testsrc", "-c:v", "libsvtav1", "-t", "100ms", "-f", "null", "-"]
326+
# # dns
327+
# # RUN ["/ffprobe", "-i", "https://github.com/favicon.ico"]
328+
# # tls/https certs
329+
# # RUN ["/ffprobe", "-tls_verify", "1", "-ca_file", "/etc/ssl/cert.pem", "-i", "https://github.com/favicon.ico"]
330+
# # svg
331+
# # RUN ["/ffprobe", "-i", "https://github.githubassets.com/favicons/favicon.svg"]
332+
# # >1 static rust libs
333+
# RUN ["/ffmpeg", "-f", "lavfi", "-i", "testsrc", "-c:v", "librav1e", "-t", "100ms", "-f", "null", "-"]
335334

336-
# clamp all files into one layer
337-
FROM scratch AS final2
338-
COPY --from=final1 / /
335+
# # clamp all files into one layer
336+
# FROM scratch AS final2
337+
# COPY --from=final1 / /
339338

340-
FROM final2
341-
LABEL maintainer="Mattias Wadman mattias.wadman@gmail.com"
342-
ENTRYPOINT ["/ffmpeg"]
339+
# FROM final2
340+
# LABEL maintainer="Mattias Wadman mattias.wadman@gmail.com"
341+
# ENTRYPOINT ["/ffmpeg"]

0 commit comments

Comments
 (0)