Page MenuHomeFreeBSD

multimedia/makemkv: Update to 1.17.1
ClosedPublic

Authored by zirias on Thu, Aug 4, 7:14 AM.

Details

Summary
  • Add FDKAAC option, it's an optional dependency (enabled by default).
  • Improve port structure, consistently honor {C,CPP,CXX,LD}FLAGS from environment also for the static libs (fdk-aac and ffmpeg).
  • Remove cross-compiling cruft, it's unnecessary when using compilers from linux-c7-devtools.
  • Remove redundant info from pkg-descr that's already in pkg-message.
  • Drop OpenSSL from LICENSE, it's linked dynamically and the distfile is only needed to get the headers required for building.
  • Update statically linked FFmpeg to latest version 5.1.

Changelog:

Small improvements and bugfixes
Details: https://makemkv.com/download/

Diff Detail

Repository
R11 FreeBSD ports repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

zirias requested review of this revision.Thu, Aug 4, 7:14 AM

Add two minor improvements.

  • depend on nasm binary instead of package
  • simplify expansion to compute FFMPEG_ARCH
diizzy added inline comments.
multimedia/makemkv/Makefile
6

It's not possible to use the same location and dist file as audio/fdk-aac ?

22

FDK-AACs licensing prevents us from packaging and distributing it

62

multimedia/ffmpeg uses xz, it would be nice if we could reuse the same distfile once we're ready to switch

71

FDK-AACs licensing prevents us from packaging and distributing it

81–82

You can also uses USES= compiler for this as far as I can tell
https://github.com/freebsd/freebsd-ports/blob/main/Mk/Uses/compiler.mk#L131

87

-std=c11 seems redundant

multimedia/makemkv/Makefile
2

"Nitpick" but Porters Handbook suggests DISTVERSION over PORTVERSION

multimedia/makemkv/Makefile
22

I didn't read it this way. Is this for patent reasons? Well, then the simplest solution would be to make it off by default...

81–82

No, it just checks for the abilities, but doesn't add CFLAGS/CXXFLAGS.

87

It isn't thanks to weirdness in upstream build, which contains C and C++ code and only uses CFLAGS for everything.

multimedia/makemkv/Makefile
6
71

It would be nice if we could keep naming consistent with multimedia/ffmpeg

multimedia/makemkv/Makefile
71

Are you sure about this? Just checked audio/fdk-aac and it allows packaging...

multimedia/makemkv/Makefile
62

I'm not sure about sharing distfiles just yet. I still need an OpenSSL distfile here that no other port needs, but this *might* be solved with https://reviews.freebsd.org/D35904 (the whole stack). Currently, I think keeping everything needed for MakeMKV in a DIST_SUBDIR feels cleaner.

But if I can ever drop OpenSSL, it looks different, especially when multimedia/ffmpeg is on version 5 as well.

Rename FDKAAC option to match multimedia/ffmpeg, disable it by default.

Replace PORTVERSION with DISTVERSION.

Definitely makes more sense here as it's also used to expand DISTFILES
and WRKSRC.

multimedia/makemkv/Makefile
22
81–82

Sorry, early in the morning... :-)

USE_CSTD= c11
https://cgit.freebsd.org/ports/tree/Mk/bsd.port.mk#n2022

zirias added inline comments.
multimedia/makemkv/Makefile
22

Ah the GPL, of course. Oh my ... well, but then I guess this is already addressed by removing all the license perms and leaving the option off by default. So, this actually fixes an issue that's currently present in the port. Thanks!

81–82

Oh! Well, not sure *this* magic was really necessary, but will happily convert and test whether it works.

zirias marked 2 inline comments as done.

Make use of USE_C[XX]STD.

Moin moin

Host OSVERSION: 1400059
Jail OSVERSION: 1400059
[...]
cd /wrkdirs/usr/ports/multimedia/makemkv/work/ffmpeg-5.1;  PKG_CONFIG_PATH=/wrkdirs/usr/ports/multimedia/makemkv/work/gnuroot/lib/pkgconfig RUSTC_WRAPPER="/overlays/sccache/bin/sccache"  SCCACHE_CACHE_SIZE="16G"  SCCACHE_DIR="/root/.ccache/sccache"  SCCACHE_IDLE_TIMEOUT="0"  SCCACHE_MAX_FRAME_LENGTH=104857600  SCCACHE_UNIX_LISTEN="/tmp/sccache-overlay.socket" MAKE=gmake PKG_CONFIG=pkgconf ac_cv_path_PERL=/usr/local/bin/perl ac_cv_path_PERL_PATH=/usr/local/bin/perl  PERL_USE_UNSAFE_INC=1 XDG_DATA_HOME=/wrkdirs/usr/ports/multimedia/makemkv/work  XDG_CONFIG_HOME=/wrkdirs/usr/ports/multimedia/makemkv/work  XDG_CACHE_HOME=/wrkdirs/usr/ports/multimedia/makemkv/work/.cache  HOME=/wrkdirs/usr/ports/multimedia/makemkv/work TMPDIR="/tmp" PATH=/usr/local/libexec/ccache:/wrkdirs/usr/ports/multimedia/makemkv/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin PKG_CONFIG_LIBDIR=/wrkdirs/usr/ports/multimedia/makemkv/work/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig SHELL=/bin/sh CONFIG_SHELL=/bin/sh CCACHE_DIR="/root/.ccache" CFLAGS="-I/wrkdirs/usr/ports/multimedia/makemkv/work/gnuroot/include -I/wrkdirs/usr/ports/multimedia/makemkv/work/openssl-1.0.2k/include  -D_linux_ -DFORCE_OPENSSL_NO_EC   -O2 -pipe -march=znver1  -fstack-protector-strong -fno-strict-aliasing -std=c11 " ./configure --prefix=/wrkdirs/usr/ports/multimedia/makemkv/work/gnuroot --pkg-config=pkg-config  --disable-shared --enable-static --enable-pic  --target-os=linux --cc=/compat/linux/bin/gcc  ;  RUSTC_WRAPPER="/overlays/sccache/bin/sccache"  SCCACHE_CACHE_SIZE="16G"  SCCACHE_DIR="/root/.ccache/sccache"  SCCACHE_IDLE_TIMEOUT="0"  SCCACHE_MAX_FRAME_LENGTH=104857600  SCCACHE_UNIX_LISTEN="/tmp/sccache-overlay.socket" PERL_USE_UNSAFE_INC=1 XDG_DATA_HOME=/wrkdirs/usr/ports/multimedia/makemkv/work  XDG_CONFIG_HOME=/wrkdirs/usr/ports/multimedia/makemkv/work  XDG_CACHE_HOME=/wrkdirs/usr/ports/multimedia/makemkv/work/.cache  HOME=/wrkdirs/usr/ports/multimedia/makemkv/work TMPDIR="/tmp" PATH=/usr/local/libexec/ccache:/wrkdirs/usr/ports/multimedia/makemkv/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin PKG_CONFIG_LIBDIR=/wrkdirs/usr/ports/multimedia/makemkv/work/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig NO_PIE=yes MK_DEBUG_FILES=no MK_KERNEL_SYMBOLS=no SHELL=/bin/sh NO_LINT=YES PREFIX=/usr/local  LOCALBASE=/usr/local  CC="/compat/linux/bin/gcc" CFLAGS="-O2 -pipe -march=znver1  -fstack-protector-strong -fno-strict-aliasing -std=c11 "  CPP="cpp" CPPFLAGS="-I/wrkdirs/usr/ports/multimedia/makemkv/work/gnuroot/include -I/wrkdirs/usr/ports/multimedia/makemkv/work/openssl-1.0.2k/include  -D_linux_ -DFORCE_OPENSSL_NO_EC  "  LDFLAGS=" -L/wrkdirs/usr/ports/multimedia/makemkv/work/gnuroot/lib -fstack-protector-strong " LIBS=""  CXX="/compat/linux/bin/g++" CXXFLAGS="-O2 -pipe -march=znver1  -fstack-protector-strong -fno-strict-aliasing   -std=c++11 "  MANPREFIX="/usr/local" CCACHE_DIR="/root/.ccache" BSD_INSTALL_PROGRAM="install  -s -m 555"  BSD_INSTALL_LIB="install  -s -m 0644"  BSD_INSTALL_SCRIPT="install  -m 555"  BSD_INSTALL_DATA="install  -m 0644"  BSD_INSTALL_MAN="install  -m 444" gmake -j8  V=1 ARCH=x86 all install
/compat/linux/bin/gcc is unable to create an executable file.
If /compat/linux/bin/gcc is a cross-compiler, use the --enable-cross-compile option.
Only do this if you know what cross compiling means.
C compiler test failed.

never mind; this is likely caused by me setting CPU_TYPE=zenver1.

This revision is now accepted and ready to land.Sun, Aug 7, 6:29 AM
This revision was automatically updated to reflect the committed changes.