Page MenuHomeFreeBSD

multimedia/makemkv: Update to 1.17.1
ClosedPublic

Authored by zirias on Aug 4 2022, 7:14 AM.
Tags
None
Referenced Files
F82053841: D36039.diff
Thu, Apr 25, 1:31 AM
Unknown Object (File)
Mon, Apr 22, 8:28 AM
Unknown Object (File)
Mon, Apr 22, 8:28 AM
Unknown Object (File)
Mon, Apr 22, 12:38 AM
Unknown Object (File)
Fri, Apr 12, 2:16 PM
Unknown Object (File)
Fri, Apr 12, 2:11 PM
Unknown Object (File)
Fri, Apr 12, 2:11 PM
Unknown Object (File)
Fri, Apr 12, 2:11 PM
Subscribers

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
rP FreeBSD ports repository
Lint
No Lint Coverage
Unit
No Test Coverage
Build Status
Buildable 46757
Build 43646: arc lint + arc unit

Event Timeline

zirias requested review of this revision.Aug 4 2022, 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 ?

27

FDK-AACs licensing prevents us from packaging and distributing it

63

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

72

FDK-AACs licensing prevents us from packaging and distributing it

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

89

-std=c11 seems redundant

multimedia/makemkv/Makefile
2

"Nitpick" but Porters Handbook suggests DISTVERSION over PORTVERSION

multimedia/makemkv/Makefile
27

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...

82

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

89

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
72

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

multimedia/makemkv/Makefile
72

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

multimedia/makemkv/Makefile
63

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
27
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
27

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!

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.Aug 7 2022, 6:29 AM
This revision was automatically updated to reflect the committed changes.