Sat Jan 27 02:52:50 2024 UTC (142d)
multimedia/ffmpeg4: sync cross-build and powerpc changes from ffmpeg5


(riastradh)
diff -r1.83 -r1.84 pkgsrc/multimedia/ffmpeg4/Makefile
diff -r1.32 -r1.33 pkgsrc/multimedia/ffmpeg4/Makefile.common
diff -r1.31 -r1.32 pkgsrc/multimedia/ffmpeg4/distinfo
diff -r0 -r1.1 pkgsrc/multimedia/ffmpeg4/patches/patch-libavutil_ppc_cpu.c

cvs diff -r1.83 -r1.84 pkgsrc/multimedia/ffmpeg4/Makefile (expand / switch to context diff)
--- pkgsrc/multimedia/ffmpeg4/Makefile 2024/01/22 13:17:01 1.83
+++ pkgsrc/multimedia/ffmpeg4/Makefile 2024/01/27 02:52:49 1.84
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.83 2024/01/22 13:17:01 ryoon Exp $
+# $NetBSD: Makefile,v 1.84 2024/01/27 02:52:49 riastradh Exp $
 
 PKGNAME=	${DISTNAME:S/ffmpeg/ffmpeg4/}
 PKGREVISION=	7
@@ -17,13 +17,6 @@
 
 .if ${_USE_RPATH:tl} != "no"
 CONFIGURE_ARGS+=	--enable-rpath
-.endif
-
-.if !empty(USE_CROSS_COMPILE:M[yY][eE][sS])
-CONFIGURE_ARGS+=	--enable-cross-compile
-CONFIGURE_ARGS+=	--host-cc=${NATIVE_CC:Q}
-CONFIGURE_ARGS+=	--host-ld=${NATIVE_CC:Q}
-CONFIGURE_ARGS+=	--target-os=${LOWER_OPSYS}
 .endif
 
 PRINT_PLIST_AWK+=	/html/ { $$0 = "$${PLIST.doc}" $$0 }

cvs diff -r1.32 -r1.33 pkgsrc/multimedia/ffmpeg4/Makefile.common (expand / switch to context diff)
--- pkgsrc/multimedia/ffmpeg4/Makefile.common 2023/06/06 12:41:59 1.32
+++ pkgsrc/multimedia/ffmpeg4/Makefile.common 2024/01/27 02:52:49 1.33
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.common,v 1.32 2023/06/06 12:41:59 riastradh Exp $
+# $NetBSD: Makefile.common,v 1.33 2024/01/27 02:52:49 riastradh Exp $
 # used by multimedia/ffmpeg4/Makefile
 # used by multimedia/ffplay4/Makefile
 
@@ -34,6 +34,21 @@
 LDFLAGS+=		${COMPILER_RPATH_FLAG}${PREFIX}/lib/ffmpeg4
 # Misuse LDFLAGS because the package doesn't (at least right now) honor LIBS.
 LDFLAGS.SunOS+=		-lrt
+
+.if ${USE_CROSS_COMPILE:tl} == yes
+CONFIGURE_ARGS+=	--enable-cross-compile
+CONFIGURE_ARGS+=	--host-cc=${NATIVE_CC:Q}
+CONFIGURE_ARGS+=	--host-ld=${NATIVE_CC:Q}
+CONFIGURE_ARGS+=	--target-os=${LOWER_OPSYS:Q}
+.  include "../../mk/endian.mk"
+.  if ${MACHINE_ENDIAN} == "big"
+CONFIGURE_ENV+=		bigendian=yes
+.  endif
+.  if !empty(MACHINE_ARCH:Mpowerpc*)
+BUILDLINK_TRANSFORM+=	rm:-maltivec
+BUILDLINK_TRANSFORM+=	rm:-mabi=altivec
+.  endif
+.endif
 
 .if !empty(MACHINE_PLATFORM:MDarwin-1[2-9].*-*) || !empty(MACHINE_PLATFORM:MDarwin-2*)
 CONFIGURE_ARGS+=	--enable-opencl

cvs diff -r1.31 -r1.32 pkgsrc/multimedia/ffmpeg4/distinfo (expand / switch to context diff)
--- pkgsrc/multimedia/ffmpeg4/distinfo 2023/08/17 08:56:10 1.31
+++ pkgsrc/multimedia/ffmpeg4/distinfo 2024/01/27 02:52:49 1.32
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.31 2023/08/17 08:56:10 jperkin Exp $
+$NetBSD: distinfo,v 1.32 2024/01/27 02:52:49 riastradh Exp $
 
 BLAKE2s (ffmpeg-4.4.4.tar.xz) = b344e5e3ba0cb4c13bfd7a3989aa1f6b8f7443af9ce6c24993ca8627ac5b2a2d
 SHA512 (ffmpeg-4.4.4.tar.xz) = 253799eccd129dad331db85def5352178ae22303e42af47fc013a6adfd4b60d1e59ff5f9ac6118fe3b403affa56ea1f3ba658042f526a914fba27050c3065daf
@@ -18,5 +18,6 @@
 SHA1 (patch-libavdevice_sunau__dec.c) = d2fc01e941c68ab8b6f5e0b98ee536a32cc56bdc
 SHA1 (patch-libavdevice_sunau__enc.c) = efe765b99ad6379d0237c619ac0dce41306431be
 SHA1 (patch-libavutil_common.h) = d0f1093bc82567807b39dde990ee347f90a082c9
+SHA1 (patch-libavutil_ppc_cpu.c) = be6ece342b061c3ef9b1836bf55ec4f2e0cdc81b
 SHA1 (patch-libavutil_x86_asm.h) = 8f48f9e8ec08b5176bb40fc0021f3bb913dbef22
 SHA1 (patch-libavutil_x86_cpu.c) = 9c97e68fde0fcb19741e034a803d509040ea4487

File Added: pkgsrc/multimedia/ffmpeg4/patches/patch-libavutil_ppc_cpu.c
$NetBSD: patch-libavutil_ppc_cpu.c,v 1.1 2024/01/27 02:52:50 riastradh Exp $

Handle machdep.altivec on NetBSD like on OpenBSD.

--- libavutil/ppc/cpu.c.orig	2022-05-14 21:21:50.000000000 +0000
+++ libavutil/ppc/cpu.c
@@ -27,7 +27,7 @@
 #if HAVE_UNISTD_H
 #include <unistd.h>
 #endif
-#elif defined(__OpenBSD__)
+#elif defined(__NetBSD__) || defined(__OpenBSD__)
 #include <sys/param.h>
 #include <sys/sysctl.h>
 #include <machine/cpu.h>
@@ -56,8 +56,8 @@ int ff_get_cpu_flags_ppc(void)
     if (result == VECTORTYPE_ALTIVEC)
         return AV_CPU_FLAG_ALTIVEC;
     return 0;
-#elif defined(__APPLE__) || defined(__OpenBSD__)
-#ifdef __OpenBSD__
+#elif defined(__APPLE__) || defined(__NetBSD__) || defined(__OpenBSD__)
+#if defined(__NetBSD__) || defined(__OpenBSD__)
     int sels[2] = {CTL_MACHDEP, CPU_ALTIVEC};
 #else
     int sels[2] = {CTL_HW, HW_VECTORUNIT};