GHC 2020-06-19

3 comments.

, https://git.io/Jfbkl in sorin-ionescu/prezto
I was just closing my ancient PRs accords the site. If it’s still relevant and someone's willing to take care of it, there’s no reason to object...

, https://git.io/JfbJP in jrottenberg/ffmpeg
Looked into the CUDA situation a bit, appears to be a screwup on their part that’s not yet fixed completely. https://gitlab.com/nvidia/container-images/cuda/-/issues/71#note_364216258

, https://git.io/JfFAb in jrottenberg/ffmpeg
@jrottenberg 

> do you have an output of docker images | grep ffmpeg before and after that PR .

I ran a few GitHub Actions jobs to build the before/after images.

- https://github.com/zmwangx/docker-ffmpeg/actions/runs/140430025: builds images on master, with a `-baseline` suffix attached to the tags to differentiate;

- https://github.com/zmwangx/docker-ffmpeg/actions/runs/140502551: builds images from this PR, without suffix.

Btw, noticed two things during these builds:

- All `nvidia` images on master are currently broken (fails due to `libnpp not found` during the FFmpeg compilation step). Not sure why they were okay just a couple days ago... I didn't investigate this issue.

- The Azure test builds are currently largely useless in detecting build errors because when `docker build` fails, bash doesn't bail out, and the subsequent `docker run` simply pulls the previously built image with the same tag and succeeds. So previously there were bugs in my PR but Azure was all green...

  This is easy to fix with `set -e`, so I added another commit to fix that.

Here are the results:

```
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg   4.3-alpine311             a20e54ddf4c5        4 hours ago         133MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg   4.3-alpine311-baseline    8bca77c5b04b        6 hours ago         132MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg   4.3-alpine38              9602a567bda9        4 hours ago         127MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg   4.3-alpine38-baseline     c4e0cd6af902        6 hours ago         126MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg   4.3-centos7               4ace7f45ed1d        4 hours ago         327MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg   4.3-centos7-baseline      58ad6bd77bab        6 hours ago         326MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg   4.3-centos8               833e68bd5955        4 hours ago         334MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg   4.3-centos8-baseline      26c4bd2187fa        6 hours ago         332MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg   4.3-ubuntu1604-baseline   e8755c6403d6        6 hours ago         246MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg   4.3-ubuntu1604            d29df7a479e5        4 hours ago         247MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg   4.3-ubuntu1804            3d0eee6807bb        4 hours ago         205MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg   4.3-ubuntu1804-baseline   f43ee9f874c9        6 hours ago         204MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg   4.3-vaapi1604             8e4d88d30010        4 hours ago         250MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg   4.3-vaapi1604-baseline    a8d7e2a6e8ab        6 hours ago         249MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg   4.3-vaapi1804             46ec6b4bc780        4 hours ago         214MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg   4.3-vaapi1804-baseline    99cde0fd8091        6 hours ago         213MB
```

And a list of all files added, in the `4.3-ubuntu1804` case (others are similar):

```diff
$ diff <(docker run --rm --entrypoint /usr/bin/find docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg:4.3-ubuntu1804-baseline / \( -name proc -o -name kernel \) -prune -o -print) <(docker run --rm --entrypoint /usr/bin/find docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg:4.3-ubuntu1804 / \( -name proc -o -name kernel \) -prune -o -print)
15070a15071,15206
> /usr/local/include/libavresample
> /usr/local/include/libavresample/version.h
> /usr/local/include/libavresample/avresample.h
> /usr/local/include/libavformat
> /usr/local/include/libavformat/avformat.h
> /usr/local/include/libavformat/version.h
> /usr/local/include/libavformat/avio.h
> /usr/local/include/libavcodec
> /usr/local/include/libavcodec/videotoolbox.h
> /usr/local/include/libavcodec/qsv.h
> /usr/local/include/libavcodec/mediacodec.h
> /usr/local/include/libavcodec/codec.h
> /usr/local/include/libavcodec/vorbis_parser.h
> /usr/local/include/libavcodec/dv_profile.h
> /usr/local/include/libavcodec/xvmc.h
> /usr/local/include/libavcodec/avfft.h
> /usr/local/include/libavcodec/packet.h
> /usr/local/include/libavcodec/vaapi.h
> /usr/local/include/libavcodec/d3d11va.h
> /usr/local/include/libavcodec/avcodec.h
> /usr/local/include/libavcodec/version.h
> /usr/local/include/libavcodec/dxva2.h
> /usr/local/include/libavcodec/codec_desc.h
> /usr/local/include/libavcodec/vdpau.h
> /usr/local/include/libavcodec/adts_parser.h
> /usr/local/include/libavcodec/dirac.h
> /usr/local/include/libavcodec/jni.h
> /usr/local/include/libavcodec/bsf.h
> /usr/local/include/libavcodec/codec_par.h
> /usr/local/include/libavcodec/avdct.h
> /usr/local/include/libavcodec/codec_id.h
> /usr/local/include/libavcodec/ac3_parser.h
> /usr/local/include/libpostproc
> /usr/local/include/libpostproc/version.h
> /usr/local/include/libpostproc/postprocess.h
> /usr/local/include/libavfilter
> /usr/local/include/libavfilter/buffersrc.h
> /usr/local/include/libavfilter/avfilter.h
> /usr/local/include/libavfilter/version.h
> /usr/local/include/libavfilter/buffersink.h
> /usr/local/include/libswresample
> /usr/local/include/libswresample/swresample.h
> /usr/local/include/libswresample/version.h
> /usr/local/include/libavdevice
> /usr/local/include/libavdevice/avdevice.h
> /usr/local/include/libavdevice/version.h
> /usr/local/include/libavutil
> /usr/local/include/libavutil/md5.h
> /usr/local/include/libavutil/sha.h
> /usr/local/include/libavutil/samplefmt.h
> /usr/local/include/libavutil/hash.h
> /usr/local/include/libavutil/audio_fifo.h
> /usr/local/include/libavutil/error.h
> /usr/local/include/libavutil/dict.h
> /usr/local/include/libavutil/lfg.h
> /usr/local/include/libavutil/sha512.h
> /usr/local/include/libavutil/file.h
> /usr/local/include/libavutil/mastering_display_metadata.h
> /usr/local/include/libavutil/channel_layout.h
> /usr/local/include/libavutil/stereo3d.h
> /usr/local/include/libavutil/log.h
> /usr/local/include/libavutil/downmix_info.h
> /usr/local/include/libavutil/hmac.h
> /usr/local/include/libavutil/threadmessage.h
> /usr/local/include/libavutil/pixdesc.h
> /usr/local/include/libavutil/mem.h
> /usr/local/include/libavutil/cast5.h
> /usr/local/include/libavutil/hwcontext_cuda.h
> /usr/local/include/libavutil/base64.h
> /usr/local/include/libavutil/avassert.h
> /usr/local/include/libavutil/adler32.h
> /usr/local/include/libavutil/motion_vector.h
> /usr/local/include/libavutil/cpu.h
> /usr/local/include/libavutil/tea.h
> /usr/local/include/libavutil/rc4.h
> /usr/local/include/libavutil/frame.h
> /usr/local/include/libavutil/timecode.h
> /usr/local/include/libavutil/aes_ctr.h
> /usr/local/include/libavutil/pixelutils.h
> /usr/local/include/libavutil/hdr_dynamic_metadata.h
> /usr/local/include/libavutil/avstring.h
> /usr/local/include/libavutil/macros.h
> /usr/local/include/libavutil/pixfmt.h
> /usr/local/include/libavutil/aes.h
> /usr/local/include/libavutil/version.h
> /usr/local/include/libavutil/hwcontext_vaapi.h
> /usr/local/include/libavutil/crc.h
> /usr/local/include/libavutil/video_enc_params.h
> /usr/local/include/libavutil/common.h
> /usr/local/include/libavutil/hwcontext_d3d11va.h
> /usr/local/include/libavutil/tree.h
> /usr/local/include/libavutil/mathematics.h
> /usr/local/include/libavutil/spherical.h
> /usr/local/include/libavutil/eval.h
> /usr/local/include/libavutil/twofish.h
> /usr/local/include/libavutil/avconfig.h
> /usr/local/include/libavutil/random_seed.h
> /usr/local/include/libavutil/fifo.h
> /usr/local/include/libavutil/ffversion.h
> /usr/local/include/libavutil/encryption_info.h
> /usr/local/include/libavutil/attributes.h
> /usr/local/include/libavutil/hwcontext_dxva2.h
> /usr/local/include/libavutil/hwcontext_opencl.h
> /usr/local/include/libavutil/blowfish.h
> /usr/local/include/libavutil/intfloat.h
> /usr/local/include/libavutil/imgutils.h
> /usr/local/include/libavutil/hwcontext_vulkan.h
> /usr/local/include/libavutil/hwcontext_vdpau.h
> /usr/local/include/libavutil/dovi_meta.h
> /usr/local/include/libavutil/hwcontext_videotoolbox.h
> /usr/local/include/libavutil/time.h
> /usr/local/include/libavutil/xtea.h
> /usr/local/include/libavutil/display.h
> /usr/local/include/libavutil/buffer.h
> /usr/local/include/libavutil/hwcontext.h
> /usr/local/include/libavutil/avutil.h
> /usr/local/include/libavutil/opt.h
> /usr/local/include/libavutil/rational.h
> /usr/local/include/libavutil/hwcontext_qsv.h
> /usr/local/include/libavutil/hwcontext_drm.h
> /usr/local/include/libavutil/timestamp.h
> /usr/local/include/libavutil/camellia.h
> /usr/local/include/libavutil/des.h
> /usr/local/include/libavutil/bprint.h
> /usr/local/include/libavutil/lzo.h
> /usr/local/include/libavutil/tx.h
> /usr/local/include/libavutil/replaygain.h
> /usr/local/include/libavutil/hwcontext_mediacodec.h
> /usr/local/include/libavutil/ripemd.h
> /usr/local/include/libavutil/murmur3.h
> /usr/local/include/libavutil/bswap.h
> /usr/local/include/libavutil/intreadwrite.h
> /usr/local/include/libavutil/parseutils.h
> /usr/local/include/libswscale
> /usr/local/include/libswscale/version.h
> /usr/local/include/libswscale/swscale.h
15073a15210,15211
> /usr/local/lib/libxcb-shm.so
> /usr/local/lib/libavresample.so
15074a15213
> /usr/local/lib/libxcb.so
15076a15216
> /usr/local/lib/libtheoraenc.so
15077a15218,15220
> /usr/local/lib/libpostproc.so
> /usr/local/lib/libfreetype.so
> /usr/local/lib/libavdevice.so
15079a15223,15224
> /usr/local/lib/libopus.so
> /usr/local/lib/libvorbisenc.so
15080a15226
> /usr/local/lib/libaom.so
15082a15229
> /usr/local/lib/libswresample.so
15083a15231,15233
> /usr/local/lib/libavformat.so
> /usr/local/lib/libXau.so
> /usr/local/lib/libfontconfig.so
15085a15236
> /usr/local/lib/libopencore-amrwb.so
15086a15238,15239
> /usr/local/lib/libkvazaar.so
> /usr/local/lib/libavfilter.so
15087a15241
> /usr/local/lib/libzmq.so
15091a15246
> /usr/local/lib/libxcb-xfixes.so
15093a15249
> /usr/local/lib/libopencore-amrnb.so
15094a15251
> /usr/local/lib/libtheoradec.so
15095a15253
> /usr/local/lib/libvpx.so
15096a15255,15257
> /usr/local/lib/libx265.so
> /usr/local/lib/libx264.so
> /usr/local/lib/libfribidi.so
15097a15259
> /usr/local/lib/libxvidcore.so
15100a15263
> /usr/local/lib/libmp3lame.so
15102a15266
> /usr/local/lib/libvidstab.so
15103a15268
> /usr/local/lib/libavutil.so
15104a15270,15271
> /usr/local/lib/libsrt.so
> /usr/local/lib/libbluray.so
15105a15273
> /usr/local/lib/libavcodec.so
15108a15277
> /usr/local/lib/libfdk-aac.so
15109a15279,15289
> /usr/local/lib/pkgconfig
> /usr/local/lib/pkgconfig/libavdevice.pc
> /usr/local/lib/pkgconfig/libswscale.pc
> /usr/local/lib/pkgconfig/libavfilter.pc
> /usr/local/lib/pkgconfig/libswresample.pc
> /usr/local/lib/pkgconfig/libavformat.pc
> /usr/local/lib/pkgconfig/libavresample.pc
> /usr/local/lib/pkgconfig/libavutil.pc
> /usr/local/lib/pkgconfig/libavcodec.pc
> /usr/local/lib/pkgconfig/libpostproc.pc
> /usr/local/lib/libxml2.so
15114a15295,15297
> /usr/local/lib/libopenjp2.so
> /usr/local/lib/libass.so
> /usr/local/lib/libswscale.so
15116a15300
> /usr/local/lib/libwebp.so
15117a15302,15304
> /usr/local/lib/libogg.so
> /usr/local/lib/libvorbis.so
> /usr/local/lib/libxcb-shape.so
```

The .so files added are all symlinks, the .pc files are tiny, so almost the entire added weight comes from FFmpeg headers added to `/usr/local/include`, which as I said is about 1.3MB.