diff -Nru vlc-3.0.17.4/autotools/compile vlc-3.0.18/autotools/compile --- vlc-3.0.17.4/autotools/compile 2021-05-10 15:18:00.000000000 +0000 +++ vlc-3.0.18/autotools/compile 2022-08-03 11:11:43.000000000 +0000 @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2020 Free Software Foundation, Inc. +# Copyright (C) 1999-2021 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify diff -Nru vlc-3.0.17.4/autotools/config.guess vlc-3.0.18/autotools/config.guess --- vlc-3.0.17.4/autotools/config.guess 2021-05-10 15:18:00.000000000 +0000 +++ vlc-3.0.18/autotools/config.guess 2022-08-03 11:11:43.000000000 +0000 @@ -1,12 +1,14 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2018 Free Software Foundation, Inc. +# Copyright 1992-2022 Free Software Foundation, Inc. -timestamp='2018-02-24' +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2022-01-09' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or +# the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but @@ -27,11 +29,19 @@ # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess # # Please send patches to . +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + + me=`echo "$0" | sed -e 's,.*/,,'` usage="\ @@ -50,7 +60,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2018 Free Software Foundation, Inc. +Copyright 1992-2022 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -84,7 +94,8 @@ exit 1 fi -trap 'exit 1' 1 2 15 +# Just in case it came from the environment. +GUESS= # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires @@ -96,73 +107,90 @@ # Portable tmp directory creation inspired by the Autoconf team. -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > "$dummy.c" ; - for c in cc gcc c89 c99 ; do - if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039,SC3028 + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD=$driver + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then +if test -f /.attbin/uname ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "$UNAME_SYSTEM" in +case $UNAME_SYSTEM in Linux|GNU|GNU/*) - # If the system lacks a compiler, then just pick glibc. - # We could probably try harder. - LIBC=gnu + LIBC=unknown - eval "$set_cc_for_build" + set_cc_for_build cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc - #else + #elif defined(__GLIBC__) LIBC=gnu + #else + #include + /* First heuristic to detect musl libc. */ + #ifdef __DEFINED_va_list + LIBC=musl + #endif #endif EOF - eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" + cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "$cc_set_libc" - # If ldd exists, use it to detect musl libc. - if command -v ldd >/dev/null && \ - ldd --version 2>&1 | grep -q ^musl - then - LIBC=musl + # Second heuristic to detect musl libc. + if [ "$LIBC" = unknown ] && + command -v ldd >/dev/null && + ldd --version 2>&1 | grep -q ^musl; then + LIBC=musl + fi + + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + if [ "$LIBC" = unknown ]; then + LIBC=gnu fi ;; esac # Note: order is significant - the case branches are not exclusive. -case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in +case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -174,12 +202,12 @@ # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - "/sbin/$sysctl" 2>/dev/null || \ - "/usr/sbin/$sysctl" 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ echo unknown)` - case "$UNAME_MACHINE_ARCH" in + case $UNAME_MACHINE_ARCH in + aarch64eb) machine=aarch64_be-unknown ;; armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; @@ -188,18 +216,18 @@ earmv*) arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` - machine="${arch}${endian}"-unknown + machine=${arch}${endian}-unknown ;; - *) machine="$UNAME_MACHINE_ARCH"-unknown ;; + *) machine=$UNAME_MACHINE_ARCH-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. - case "$UNAME_MACHINE_ARCH" in + case $UNAME_MACHINE_ARCH in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval "$set_cc_for_build" + set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then @@ -215,7 +243,7 @@ ;; esac # Determine ABI tags. - case "$UNAME_MACHINE_ARCH" in + case $UNAME_MACHINE_ARCH in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` @@ -226,7 +254,7 @@ # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "$UNAME_VERSION" in + case $UNAME_VERSION in Debian*) release='-gnu' ;; @@ -237,45 +265,57 @@ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "$machine-${os}${release}${abi}" - exit ;; + GUESS=$machine-${os}${release}${abi-} + ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE + ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE + ;; + *:SecBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE + ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE + ;; *:MidnightBSD:*:*) - echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE + ;; *:ekkoBSD:*:*) - echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE + ;; *:SolidBSD:*:*) - echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE + ;; + *:OS108:*:*) + GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE + ;; macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd"$UNAME_RELEASE" - exit ;; + GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE + ;; *:MirBSD:*:*) - echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE + ;; *:Sortix:*:*) - echo "$UNAME_MACHINE"-unknown-sortix - exit ;; + GUESS=$UNAME_MACHINE-unknown-sortix + ;; + *:Twizzler:*:*) + GUESS=$UNAME_MACHINE-unknown-twizzler + ;; *:Redox:*:*) - echo "$UNAME_MACHINE"-unknown-redox - exit ;; + GUESS=$UNAME_MACHINE-unknown-redox + ;; mips:OSF1:*.*) - echo mips-dec-osf1 - exit ;; + GUESS=mips-dec-osf1 + ;; alpha:OSF1:*:*) + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + trap '' 0 case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` @@ -289,7 +329,7 @@ # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in + case $ALPHA_CPU_TYPE in "EV4 (21064)") UNAME_MACHINE=alpha ;; "EV4.5 (21064)") @@ -326,117 +366,121 @@ # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" - # Reset EXIT trap before exiting to avoid spurious non-zero exit code. - exitcode=$? - trap '' 0 - exit $exitcode ;; + OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + GUESS=$UNAME_MACHINE-dec-osf$OSF_REL + ;; Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; + GUESS=m68k-unknown-sysv4 + ;; *:[Aa]miga[Oo][Ss]:*:*) - echo "$UNAME_MACHINE"-unknown-amigaos - exit ;; + GUESS=$UNAME_MACHINE-unknown-amigaos + ;; *:[Mm]orph[Oo][Ss]:*:*) - echo "$UNAME_MACHINE"-unknown-morphos - exit ;; + GUESS=$UNAME_MACHINE-unknown-morphos + ;; *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; + GUESS=i370-ibm-openedition + ;; *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; + GUESS=s390-ibm-zvmoe + ;; *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; + GUESS=powerpc-ibm-os400 + ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix"$UNAME_RELEASE" - exit ;; + GUESS=arm-acorn-riscix$UNAME_RELEASE + ;; arm*:riscos:*:*|arm*:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; + GUESS=arm-unknown-riscos + ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; + GUESS=hppa1.1-hitachi-hiuxmpp + ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; + case `(/bin/universe) 2>/dev/null` in + att) GUESS=pyramid-pyramid-sysv3 ;; + *) GUESS=pyramid-pyramid-bsd ;; + esac + ;; NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; + GUESS=pyramid-pyramid-svr4 + ;; DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; + GUESS=sparc-icl-nx6 + ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; + sparc) GUESS=sparc-icl-nx7 ;; + esac + ;; s390x:SunOS:*:*) - echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL + ;; sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-hal-solaris2$SUN_REL + ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris2$SUN_REL + ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux"$UNAME_RELEASE" - exit ;; + GUESS=i386-pc-auroraux$UNAME_RELEASE + ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval "$set_cc_for_build" + set_cc_for_build SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH=x86_64 fi fi - echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$SUN_ARCH-pc-solaris2$SUN_REL + ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris3$SUN_REL + ;; sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in + case `/usr/bin/arch -k` in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` + GUESS=sparc-sun-sunos$SUN_REL + ;; sun3*:SunOS:*:*) - echo m68k-sun-sunos"$UNAME_RELEASE" - exit ;; + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 - case "`/bin/arch`" in + case `/bin/arch` in sun3) - echo m68k-sun-sunos"$UNAME_RELEASE" + GUESS=m68k-sun-sunos$UNAME_RELEASE ;; sun4) - echo sparc-sun-sunos"$UNAME_RELEASE" + GUESS=sparc-sun-sunos$UNAME_RELEASE ;; esac - exit ;; + ;; aushp:SunOS:*:*) - echo sparc-auspex-sunos"$UNAME_RELEASE" - exit ;; + GUESS=sparc-auspex-sunos$UNAME_RELEASE + ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor @@ -446,43 +490,43 @@ # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-milan-mint$UNAME_RELEASE + ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-hades-mint$UNAME_RELEASE + ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-unknown-mint$UNAME_RELEASE + ;; m68k:machten:*:*) - echo m68k-apple-machten"$UNAME_RELEASE" - exit ;; + GUESS=m68k-apple-machten$UNAME_RELEASE + ;; powerpc:machten:*:*) - echo powerpc-apple-machten"$UNAME_RELEASE" - exit ;; + GUESS=powerpc-apple-machten$UNAME_RELEASE + ;; RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; + GUESS=mips-dec-mach_bsd4.3 + ;; RISC*:ULTRIX:*:*) - echo mips-dec-ultrix"$UNAME_RELEASE" - exit ;; + GUESS=mips-dec-ultrix$UNAME_RELEASE + ;; VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix"$UNAME_RELEASE" - exit ;; + GUESS=vax-dec-ultrix$UNAME_RELEASE + ;; 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix"$UNAME_RELEASE" - exit ;; + GUESS=clipper-intergraph-clix$UNAME_RELEASE + ;; mips:*:*:UMIPS | mips:*:*:RISCos) - eval "$set_cc_for_build" + set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ @@ -508,78 +552,79 @@ dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos"$UNAME_RELEASE" - exit ;; + GUESS=mips-mips-riscos$UNAME_RELEASE + ;; Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; + GUESS=powerpc-motorola-powermax + ;; Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; + GUESS=powerpc-harris-powermax + ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; + GUESS=powerpc-harris-powermax + ;; Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; + GUESS=powerpc-harris-powerunix + ;; m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; + GUESS=m88k-harris-cxux7 + ;; m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; + GUESS=m88k-motorola-sysv4 + ;; m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; + GUESS=m88k-motorola-sysv3 + ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 then - if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ - [ "$TARGET_BINARY_INTERFACE"x = x ] + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x then - echo m88k-dg-dgux"$UNAME_RELEASE" + GUESS=m88k-dg-dgux$UNAME_RELEASE else - echo m88k-dg-dguxbcs"$UNAME_RELEASE" + GUESS=m88k-dg-dguxbcs$UNAME_RELEASE fi else - echo i586-dg-dgux"$UNAME_RELEASE" + GUESS=i586-dg-dgux$UNAME_RELEASE fi - exit ;; + ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; + GUESS=m88k-dolphin-sysv3 + ;; M88*:*:R3*:*) # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; + GUESS=m88k-motorola-sysv3 + ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; + GUESS=m88k-tektronix-sysv3 + ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; + GUESS=m68k-tektronix-bsd + ;; *:IRIX*:*:*) - echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" - exit ;; + IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` + GUESS=mips-sgi-irix$IRIX_REL + ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id + ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; + GUESS=i386-ibm-aix + ;; ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then + if test -x /usr/bin/oslevel ; then IBM_REV=`/usr/bin/oslevel` else - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi - echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" - exit ;; + GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV + ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval "$set_cc_for_build" + set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #include @@ -593,16 +638,16 @@ EOF if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then - echo "$SYSTEM_NAME" + GUESS=$SYSTEM_NAME else - echo rs6000-ibm-aix3.2.5 + GUESS=rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 + GUESS=rs6000-ibm-aix3.2.4 else - echo rs6000-ibm-aix3.2 + GUESS=rs6000-ibm-aix3.2 fi - exit ;; + ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then @@ -610,57 +655,57 @@ else IBM_ARCH=powerpc fi - if [ -x /usr/bin/lslpp ] ; then - IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + if test -x /usr/bin/lslpp ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi - echo "$IBM_ARCH"-ibm-aix"$IBM_REV" - exit ;; + GUESS=$IBM_ARCH-ibm-aix$IBM_REV + ;; *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; + GUESS=rs6000-ibm-aix + ;; ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) - echo romp-ibm-bsd4.4 - exit ;; + GUESS=romp-ibm-bsd4.4 + ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 + GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to + ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; + GUESS=rs6000-bull-bosx + ;; DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; + GUESS=m68k-bull-sysv3 + ;; 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; + GUESS=m68k-hp-bsd + ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; + GUESS=m68k-hp-bsd4.4 + ;; 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` - case "$UNAME_MACHINE" in + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + case $UNAME_MACHINE in 9000/31?) HP_ARCH=m68000 ;; 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then + if test -x /usr/bin/getconf; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "$sc_cpu_version" in + case $sc_cpu_version in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 - case "$sc_kernel_bits" in + case $sc_kernel_bits in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi - if [ "$HP_ARCH" = "" ]; then - eval "$set_cc_for_build" + if test "$HP_ARCH" = ""; then + set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE @@ -698,9 +743,9 @@ test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ "$HP_ARCH" = hppa2.0w ] + if test "$HP_ARCH" = hppa2.0w then - eval "$set_cc_for_build" + set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler @@ -719,14 +764,14 @@ HP_ARCH=hppa64 fi fi - echo "$HP_ARCH"-hp-hpux"$HPUX_REV" - exit ;; + GUESS=$HP_ARCH-hp-hpux$HPUX_REV + ;; ia64:HP-UX:*:*) - HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux"$HPUX_REV" - exit ;; + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + GUESS=ia64-hp-hpux$HPUX_REV + ;; 3050*:HI-UX:*:*) - eval "$set_cc_for_build" + set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #include int @@ -754,36 +799,36 @@ EOF $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; + GUESS=unknown-hitachi-hiuxwe2 + ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) - echo hppa1.1-hp-bsd - exit ;; + GUESS=hppa1.1-hp-bsd + ;; 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; + GUESS=hppa1.0-hp-bsd + ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; + GUESS=hppa1.0-hp-mpeix + ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) - echo hppa1.1-hp-osf - exit ;; + GUESS=hppa1.1-hp-osf + ;; hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; + GUESS=hppa1.0-hp-osf + ;; i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo "$UNAME_MACHINE"-unknown-osf1mk + if test -x /usr/sbin/sysversion ; then + GUESS=$UNAME_MACHINE-unknown-osf1mk else - echo "$UNAME_MACHINE"-unknown-osf1 + GUESS=$UNAME_MACHINE-unknown-osf1 fi - exit ;; + ;; parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; + GUESS=hppa1.1-hp-lites + ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; + GUESS=c1-convex-bsd + ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd @@ -791,17 +836,18 @@ fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; + GUESS=c34-convex-bsd + ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; + GUESS=c38-convex-bsd + ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; + GUESS=c4-convex-bsd + ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=ymp-cray-unicos$CRAY_REL + ;; CRAY*[A-Z]90:*:*:*) echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ @@ -809,103 +855,129 @@ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=t90-cray-unicos$CRAY_REL + ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=alphaev5-cray-unicosmk$CRAY_REL + ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=sv1-cray-unicos$CRAY_REL + ;; *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=craynv-cray-unicosmp$CRAY_REL + ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; + GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; + GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE + ;; sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi"$UNAME_RELEASE" - exit ;; + GUESS=sparc-unknown-bsdi$UNAME_RELEASE + ;; *:BSD/OS:*:*) - echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE + ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=`uname -p` + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi + else + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf + fi + ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` - case "$UNAME_PROCESSOR" in + case $UNAME_PROCESSOR in amd64) UNAME_PROCESSOR=x86_64 ;; i386) UNAME_PROCESSOR=i586 ;; esac - echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" - exit ;; + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL + ;; i*:CYGWIN*:*) - echo "$UNAME_MACHINE"-pc-cygwin - exit ;; + GUESS=$UNAME_MACHINE-pc-cygwin + ;; *:MINGW64*:*) - echo "$UNAME_MACHINE"-pc-mingw64 - exit ;; + GUESS=$UNAME_MACHINE-pc-mingw64 + ;; *:MINGW*:*) - echo "$UNAME_MACHINE"-pc-mingw32 - exit ;; + GUESS=$UNAME_MACHINE-pc-mingw32 + ;; *:MSYS*:*) - echo "$UNAME_MACHINE"-pc-msys - exit ;; + GUESS=$UNAME_MACHINE-pc-msys + ;; i*:PW*:*) - echo "$UNAME_MACHINE"-pc-pw32 - exit ;; + GUESS=$UNAME_MACHINE-pc-pw32 + ;; + *:SerenityOS:*:*) + GUESS=$UNAME_MACHINE-pc-serenity + ;; *:Interix*:*) - case "$UNAME_MACHINE" in + case $UNAME_MACHINE in x86) - echo i586-pc-interix"$UNAME_RELEASE" - exit ;; + GUESS=i586-pc-interix$UNAME_RELEASE + ;; authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix"$UNAME_RELEASE" - exit ;; + GUESS=x86_64-unknown-interix$UNAME_RELEASE + ;; IA64) - echo ia64-unknown-interix"$UNAME_RELEASE" - exit ;; + GUESS=ia64-unknown-interix$UNAME_RELEASE + ;; esac ;; i*:UWIN*:*) - echo "$UNAME_MACHINE"-pc-uwin - exit ;; + GUESS=$UNAME_MACHINE-pc-uwin + ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; + GUESS=x86_64-pc-cygwin + ;; prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=powerpcle-unknown-solaris2$SUN_REL + ;; *:GNU:*:*) # the GNU system - echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" - exit ;; + GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` + GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL + ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" - exit ;; - i*86:Minix:*:*) - echo "$UNAME_MACHINE"-pc-minix - exit ;; + GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC + ;; + *:Minix:*:*) + GUESS=$UNAME_MACHINE-unknown-minix + ;; aarch64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; @@ -916,187 +988,225 @@ esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - arc:Linux:*:* | arceb:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; arm*:Linux:*:*) - eval "$set_cc_for_build" + set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi else - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf fi fi - exit ;; + ;; avr32*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; cris:Linux:*:*) - echo "$UNAME_MACHINE"-axis-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; crisv32:Linux:*:*) - echo "$UNAME_MACHINE"-axis-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; e2k:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; frv:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; hexagon:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; i*86:Linux:*:*) - echo "$UNAME_MACHINE"-pc-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-pc-linux-$LIBC + ;; ia64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; k1om:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; m32r*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; m68*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; mips:Linux:*:* | mips64:Linux:*:*) - eval "$set_cc_for_build" + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 sed 's/^ //' << EOF > "$dummy.c" #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el + MIPS_ENDIAN=el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} + MIPS_ENDIAN= #else - CPU= + MIPS_ENDIAN= #endif #endif EOF - eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" - test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } + cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` + eval "$cc_set_vars" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } ;; mips64el:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; openrisc*:Linux:*:*) - echo or1k-unknown-linux-"$LIBC" - exit ;; + GUESS=or1k-unknown-linux-$LIBC + ;; or32:Linux:*:* | or1k*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; padre:Linux:*:*) - echo sparc-unknown-linux-"$LIBC" - exit ;; + GUESS=sparc-unknown-linux-$LIBC + ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-"$LIBC" - exit ;; + GUESS=hppa64-unknown-linux-$LIBC + ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; - PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; - *) echo hppa-unknown-linux-"$LIBC" ;; + PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; + PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; + *) GUESS=hppa-unknown-linux-$LIBC ;; esac - exit ;; + ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-"$LIBC" - exit ;; + GUESS=powerpc64-unknown-linux-$LIBC + ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-"$LIBC" - exit ;; + GUESS=powerpc-unknown-linux-$LIBC + ;; ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-"$LIBC" - exit ;; + GUESS=powerpc64le-unknown-linux-$LIBC + ;; ppcle:Linux:*:*) - echo powerpcle-unknown-linux-"$LIBC" - exit ;; - riscv32:Linux:*:* | riscv64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=powerpcle-unknown-linux-$LIBC + ;; + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; s390:Linux:*:* | s390x:Linux:*:*) - echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-ibm-linux-$LIBC + ;; sh64*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; sh*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; tile*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; vax:Linux:*:*) - echo "$UNAME_MACHINE"-dec-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-dec-linux-$LIBC + ;; x86_64:Linux:*:*) - if objdump -f /bin/sh | grep -q elf32-x86-64; then - echo "$UNAME_MACHINE"-pc-linux-"$LIBC"x32 - else - echo "$UNAME_MACHINE"-pc-linux-"$LIBC" + set_cc_for_build + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_X32 >/dev/null + then + LIBCABI=${LIBC}x32 + fi fi - exit ;; + GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI + ;; xtensa*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; + GUESS=i386-sequent-sysv4 + ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. - echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" - exit ;; + GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION + ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. - echo "$UNAME_MACHINE"-pc-os2-emx - exit ;; + GUESS=$UNAME_MACHINE-pc-os2-emx + ;; i*86:XTS-300:*:STOP) - echo "$UNAME_MACHINE"-unknown-stop - exit ;; + GUESS=$UNAME_MACHINE-unknown-stop + ;; i*86:atheos:*:*) - echo "$UNAME_MACHINE"-unknown-atheos - exit ;; + GUESS=$UNAME_MACHINE-unknown-atheos + ;; i*86:syllable:*:*) - echo "$UNAME_MACHINE"-pc-syllable - exit ;; + GUESS=$UNAME_MACHINE-pc-syllable + ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=i386-unknown-lynxos$UNAME_RELEASE + ;; i*86:*DOS:*:*) - echo "$UNAME_MACHINE"-pc-msdosdjgpp - exit ;; + GUESS=$UNAME_MACHINE-pc-msdosdjgpp + ;; i*86:*:4.*:*) UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" + GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL else - echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" + GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL fi - exit ;; + ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in @@ -1104,12 +1214,12 @@ *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" - exit ;; + GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 @@ -1119,11 +1229,11 @@ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 - echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" + GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL else - echo "$UNAME_MACHINE"-pc-sysv32 + GUESS=$UNAME_MACHINE-pc-sysv32 fi - exit ;; + ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about @@ -1131,31 +1241,31 @@ # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. - echo i586-pc-msdosdjgpp - exit ;; + GUESS=i586-pc-msdosdjgpp + ;; Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; + GUESS=i386-pc-mach3 + ;; paragon:*:*:*) - echo i860-intel-osf1 - exit ;; + GUESS=i860-intel-osf1 + ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 + GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 + GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 fi - exit ;; + ;; mini*:CTIX:SYS*5:*) # "miniframe" - echo m68010-convergent-sysv - exit ;; + GUESS=m68010-convergent-sysv + ;; mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; + GUESS=m68k-convergent-sysv + ;; M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; + GUESS=m68k-diab-dnix + ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) @@ -1180,249 +1290,404 @@ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=m68k-unknown-lynxos$UNAME_RELEASE + ;; mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; + GUESS=m68k-atari-sysv4 + ;; TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=sparc-unknown-lynxos$UNAME_RELEASE + ;; rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=rs6000-unknown-lynxos$UNAME_RELEASE + ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=powerpc-unknown-lynxos$UNAME_RELEASE + ;; SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv"$UNAME_RELEASE" - exit ;; + GUESS=mips-dde-sysv$UNAME_RELEASE + ;; RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; + GUESS=mips-sni-sysv4 + ;; RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; + GUESS=mips-sni-sysv4 + ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo "$UNAME_MACHINE"-sni-sysv4 + GUESS=$UNAME_MACHINE-sni-sysv4 else - echo ns32k-sni-sysv + GUESS=ns32k-sni-sysv fi - exit ;; + ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says - echo i586-unisys-sysv4 - exit ;; + GUESS=i586-unisys-sysv4 + ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; + GUESS=hppa1.1-stratus-sysv4 + ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; + GUESS=i860-stratus-sysv4 + ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. - echo "$UNAME_MACHINE"-stratus-vos - exit ;; + GUESS=$UNAME_MACHINE-stratus-vos + ;; *:VOS:*:*) # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; + GUESS=hppa1.1-stratus-vos + ;; mc68*:A/UX:*:*) - echo m68k-apple-aux"$UNAME_RELEASE" - exit ;; + GUESS=m68k-apple-aux$UNAME_RELEASE + ;; news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; + GUESS=mips-sony-newsos6 + ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv"$UNAME_RELEASE" + if test -d /usr/nec; then + GUESS=mips-nec-sysv$UNAME_RELEASE else - echo mips-unknown-sysv"$UNAME_RELEASE" + GUESS=mips-unknown-sysv$UNAME_RELEASE fi - exit ;; + ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; + GUESS=powerpc-be-beos + ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; + GUESS=powerpc-apple-beos + ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; + GUESS=i586-pc-beos + ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; + GUESS=i586-pc-haiku + ;; x86_64:Haiku:*:*) - echo x86_64-unknown-haiku - exit ;; + GUESS=x86_64-unknown-haiku + ;; SX-4:SUPER-UX:*:*) - echo sx4-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx4-nec-superux$UNAME_RELEASE + ;; SX-5:SUPER-UX:*:*) - echo sx5-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx5-nec-superux$UNAME_RELEASE + ;; SX-6:SUPER-UX:*:*) - echo sx6-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx6-nec-superux$UNAME_RELEASE + ;; SX-7:SUPER-UX:*:*) - echo sx7-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx7-nec-superux$UNAME_RELEASE + ;; SX-8:SUPER-UX:*:*) - echo sx8-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx8-nec-superux$UNAME_RELEASE + ;; SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx8r-nec-superux$UNAME_RELEASE + ;; SX-ACE:SUPER-UX:*:*) - echo sxace-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sxace-nec-superux$UNAME_RELEASE + ;; Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody"$UNAME_RELEASE" - exit ;; + GUESS=powerpc-apple-rhapsody$UNAME_RELEASE + ;; *:Rhapsody:*:*) - echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE + ;; + arm64:Darwin:*:*) + GUESS=aarch64-apple-darwin$UNAME_RELEASE + ;; *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval "$set_cc_for_build" - if test "$UNAME_PROCESSOR" = unknown ; then - UNAME_PROCESSOR=powerpc - fi - if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac - fi - # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc - if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_PPC >/dev/null - then - UNAME_PROCESSOR=powerpc - fi + UNAME_PROCESSOR=`uname -p` + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build + fi + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc fi elif test "$UNAME_PROCESSOR" = i386 ; then - # Avoid executing cc on OS X 10.9, as it ships with a stub - # that puts up a graphical alert prompting to install - # developer tools. Any system running Mac OS X 10.7 or - # later (Darwin 11 and later) is required to have a 64-bit - # processor. This is not true of the ARM version of Darwin - # that Apple uses in portable devices. - UNAME_PROCESSOR=x86_64 + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE fi - echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE + ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi - echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE + ;; *:QNX:*:4*) - echo i386-pc-qnx - exit ;; + GUESS=i386-pc-qnx + ;; NEO-*:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=neo-tandem-nsk$UNAME_RELEASE + ;; NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=nse-tandem-nsk$UNAME_RELEASE + ;; NSR-*:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=nsr-tandem-nsk$UNAME_RELEASE + ;; NSV-*:NONSTOP_KERNEL:*:*) - echo nsv-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=nsv-tandem-nsk$UNAME_RELEASE + ;; NSX-*:NONSTOP_KERNEL:*:*) - echo nsx-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=nsx-tandem-nsk$UNAME_RELEASE + ;; *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; + GUESS=mips-compaq-nonstopux + ;; BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; + GUESS=bs2000-siemens-sysv + ;; DS/*:UNIX_System_V:*:*) - echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE + ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - if test "$cputype" = 386; then + if test "${cputype-}" = 386; then UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" + elif test "x${cputype-}" != x; then + UNAME_MACHINE=$cputype fi - echo "$UNAME_MACHINE"-unknown-plan9 - exit ;; + GUESS=$UNAME_MACHINE-unknown-plan9 + ;; *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; + GUESS=pdp10-unknown-tops10 + ;; *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; + GUESS=pdp10-unknown-tenex + ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; + GUESS=pdp10-dec-tops20 + ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; + GUESS=pdp10-xkl-tops20 + ;; *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; + GUESS=pdp10-unknown-tops20 + ;; *:ITS:*:*) - echo pdp10-unknown-its - exit ;; + GUESS=pdp10-unknown-its + ;; SEI:*:*:SEIUX) - echo mips-sei-seiux"$UNAME_RELEASE" - exit ;; + GUESS=mips-sei-seiux$UNAME_RELEASE + ;; *:DragonFly:*:*) - echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" - exit ;; + DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL + ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "$UNAME_MACHINE" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; + case $UNAME_MACHINE in + A*) GUESS=alpha-dec-vms ;; + I*) GUESS=ia64-dec-vms ;; + V*) GUESS=vax-dec-vms ;; esac ;; *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; + GUESS=i386-pc-xenix + ;; i*86:skyos:*:*) - echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" - exit ;; + SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` + GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL + ;; i*86:rdos:*:*) - echo "$UNAME_MACHINE"-pc-rdos - exit ;; - i*86:AROS:*:*) - echo "$UNAME_MACHINE"-pc-aros - exit ;; + GUESS=$UNAME_MACHINE-pc-rdos + ;; + i*86:Fiwix:*:*) + GUESS=$UNAME_MACHINE-pc-fiwix + ;; + *:AROS:*:*) + GUESS=$UNAME_MACHINE-unknown-aros + ;; x86_64:VMkernel:*:*) - echo "$UNAME_MACHINE"-unknown-esx - exit ;; + GUESS=$UNAME_MACHINE-unknown-esx + ;; amd64:Isilon\ OneFS:*:*) - echo x86_64-unknown-onefs - exit ;; + GUESS=x86_64-unknown-onefs + ;; + *:Unleashed:*:*) + GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE + ;; esac +# Do we have a guess based on uname results? +if test "x$GUESS" != x; then + echo "$GUESS" + exit +fi + +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" < +#include +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include +#if defined(_SIZE_T_) || defined(SIGLOST) +#include +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + echo "$0: unable to guess system type" >&2 -case "$UNAME_MACHINE:$UNAME_SYSTEM" in +case $UNAME_MACHINE:$UNAME_SYSTEM in mips:Linux | mips64:Linux) # If we got here on MIPS GNU/Linux, output extra information. cat >&2 <&2 <&2 exit 1 ;; *local*) @@ -110,1223 +119,1186 @@ exit 1;; esac -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ - kopensolaris*-gnu* | cloudabi*-eabi* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - android-linux) - os=-linux-android - basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown - ;; - *) - basic_machine=`echo "$1" | sed 's/-[^-]*$//'` - if [ "$basic_machine" != "$1" ] - then os=`echo "$1" | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze*) - os= - basic_machine=$1 - ;; - -bluegene*) - os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*178) - os=-lynxos178 - ;; - -lynx*5) - os=-lynxos5 +# Split fields of configuration type +# shellcheck disable=SC2162 +saved_IFS=$IFS +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 ;; - -lynx*) - os=-lynxos + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 ;; - -ptx*) - basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac ;; - -psos*) - os=-psos + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + zephyr*) + basic_machine=$field1-unknown + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac ;; esac -# Decode aliases for certain CPU-COMPANY combinations. +# Decode 1-component or ad-hoc basic machines case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ - | avr | avr32 \ - | ba \ - | be32 | be64 \ - | bfin \ - | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | e2k | epiphany \ - | fido | fr30 | frv | ft32 \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i860 | i960 | ia16 | ia64 \ - | ip2k | iq2000 \ - | k1om \ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa32r6 | mipsisa32r6el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64r6 | mipsisa64r6el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ - | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ - | open8 | or1k | or1knd | or32 \ - | pdp10 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pru \ - | pyramid \ - | riscv32 | riscv64 \ - | rl78 | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu \ - | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | visium \ - | wasm32 \ - | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - c54x) - basic_machine=tic54x-unknown - ;; - c55x) - basic_machine=tic55x-unknown - ;; - c6x) - basic_machine=tic6x-unknown - ;; - leon|leon[3-9]) - basic_machine=sparc-$basic_machine - ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=-none + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) + op50n) + cpu=hppa1.1 + vendor=oki ;; - ms1) - basic_machine=mt-unknown + op60c) + cpu=hppa1.1 + vendor=oki ;; - - strongarm | thumb | xscale) - basic_machine=arm-unknown + ibm*) + cpu=i370 + vendor=ibm ;; - xgate) - basic_machine=$basic_machine-unknown - os=-none + orion105) + cpu=clipper + vendor=highlevel ;; - xscaleeb) - basic_machine=armeb-unknown + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple ;; - - xscaleel) - basic_machine=armel-unknown + pmac | pmac-mpw) + cpu=powerpc + vendor=apple ;; - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | ba-* \ - | be32-* | be64-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | e2k-* | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | hexagon-* \ - | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ - | ip2k-* | iq2000-* \ - | k1om-* \ - | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa32r6-* | mipsisa32r6el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64r6-* | mipsisa64r6el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | open8-* \ - | or1k*-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pru-* \ - | pyramid-* \ - | riscv32-* | riscv64-* \ - | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ - | tahoe-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile*-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ - | vax-* \ - | visium-* \ - | wasm32-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-pc - os=-bsd - ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att + cpu=m68000 + vendor=att ;; 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - asmjs) - basic_machine=asmjs-unknown - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=-linux + cpu=we32k + vendor=att ;; bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c54x-*) - basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - c55x-*) - basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - c6x-*) - basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec + cpu=powerpc + vendor=ibm + basic_os=cnk ;; decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 + cpu=pdp10 + vendor=dec + basic_os=tops10 ;; decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 + cpu=pdp10 + vendor=dec + basic_os=tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx + cpu=m68k + vendor=motorola ;; dpx2*) - basic_machine=m68k-bull - os=-sysv3 - ;; - e500v[12]) - basic_machine=powerpc-unknown - os=$os"spe" - ;; - e500v[12]-*) - basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=$os"spe" - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd + cpu=m68k + vendor=bull + basic_os=sysv3 ;; encore | umax | mmax) - basic_machine=ns32k-encore + cpu=ns32k + vendor=encore ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} ;; fx2800) - basic_machine=i860-alliant + cpu=i860 + vendor=alliant ;; genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 + cpu=ns32k + vendor=ns ;; h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp + cpu=hppa1.0 + vendor=hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp + cpu=m68000 + vendor=hp ;; hp9k3[2-9][0-9]) - basic_machine=m68k-hp + cpu=m68k + vendor=hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp + cpu=hppa1.0 + vendor=hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm + cpu=hppa1.0 + vendor=hp ;; i*86v32) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-sysv32 + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv32 ;; i*86v4*) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-sysv4 + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv4 ;; i*86v) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-sysv + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv ;; i*86sol2) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - vsta) - basic_machine=i386-unknown - os=-vsta + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} ;; iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) + cpu=mips + vendor=sgi + case $basic_os in + irix*) ;; *) - os=-irix4 + basic_os=irix4 ;; esac ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - leon-*|leon[3-9]-*) - basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=-linux - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze*) - basic_machine=microblaze-xilinx - ;; - mingw64) - basic_machine=x86_64-pc - os=-mingw64 - ;; - mingw32) - basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint + cpu=m68000 + vendor=convergent ;; - mips3*-*) - basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - moxiebox) - basic_machine=moxie-unknown - os=-moxiebox - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` - ;; - msys) - basic_machine=i686-pc - os=-msys - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - nacl) - basic_machine=le32-unknown - os=-nacl - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint ;; news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv + cpu=mips + vendor=sony + basic_os=newsos ;; next | m*-next) - basic_machine=m68k-next - case $os in - -nextstep* ) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) ;; - -ns2*) - os=-nextstep2 + ns2*) + basic_os=nextstep2 ;; *) - os=-nextstep3 + basic_os=nextstep3 ;; esac ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; np1) - basic_machine=np1-gould - ;; - neo-tandem) - basic_machine=neo-tandem - ;; - nse-tandem) - basic_machine=nse-tandem - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - nsv-tandem) - basic_machine=nsv-tandem - ;; - nsx-tandem) - basic_machine=nsx-tandem + cpu=np1 + vendor=gould ;; op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k + cpu=hppa1.1 + vendor=oki + basic_os=proelf ;; pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=-linux + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 ;; pbd) - basic_machine=sparc-tti + cpu=sparc + vendor=tti ;; pbb) - basic_machine=m68k-tti + cpu=m68k + vendor=tti ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 + pc532) + cpu=ns32k + vendor=pc532 ;; - pc98) - basic_machine=i386-pc + pn) + cpu=pn + vendor=gould ;; - pc98-*) - basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` + power) + cpu=power + vendor=ibm ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc + ps2) + cpu=i386 + vendor=ibm ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc + rm[46]00) + cpu=mips + vendor=siemens ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc + rtpc | rtpc-*) + cpu=romp + vendor=ibm ;; - pentium4) - basic_machine=i786-pc + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` + tower | tower-32) + cpu=m68k + vendor=ncr ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu ;; - pentium4-*) - basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` + w65) + cpu=w65 + vendor=wdc ;; - pn) - basic_machine=pn-gould + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf ;; - power) basic_machine=power-ibm + none) + cpu=none + vendor=none ;; - ppc | ppcbe) basic_machine=powerpc-unknown + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine ;; - ppc-* | ppcbe-*) - basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` ;; - ppcle | powerpclittle) - basic_machine=powerpcle-unknown + + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read cpu vendor <&2 - exit 1 + # Recognize the canonical CPU types that are allowed with any + # company name. + case $cpu in + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | abacus \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ + | alphapca5[67] | alpha64pca5[67] \ + | am33_2.0 \ + | amdgcn \ + | arc | arceb | arc32 | arc64 \ + | arm | arm[lb]e | arme[lb] | armv* \ + | avr | avr32 \ + | asmjs \ + | ba \ + | be32 | be64 \ + | bfin | bpf | bs2000 \ + | c[123]* | c30 | [cjt]90 | c4x \ + | c8051 | clipper | craynv | csky | cydra \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | elxsi | epiphany \ + | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ + | h8300 | h8500 \ + | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i*86 | i860 | i960 | ia16 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | loongarch32 | loongarch64 | loongarchx32 \ + | m32c | m32r | m32rle \ + | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ + | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ + | m88110 | m88k | maxq | mb | mcore | mep | metag \ + | microblaze | microblazeel \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64eb | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r3 | mipsisa32r3el \ + | mipsisa32r5 | mipsisa32r5el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r3 | mipsisa64r3el \ + | mipsisa64r5 | mipsisa64r5el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mmix \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nfp \ + | nios | nios2 | nios2eb | nios2el \ + | none | np1 | ns16k | ns32k | nvptx \ + | open8 \ + | or1k* \ + | or32 \ + | orion \ + | picochip \ + | pdp10 | pdp11 | pj | pjl | pn | power \ + | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ + | pru \ + | pyramid \ + | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ + | rl78 | romp | rs6000 | rx \ + | s390 | s390x \ + | score \ + | sh | shl \ + | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ + | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ + | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ + | spu \ + | tahoe \ + | thumbv7* \ + | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ + | tron \ + | ubicom32 \ + | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ + | vax \ + | visium \ + | w65 \ + | wasm32 | wasm64 \ + | we32k \ + | x86 | x86_64 | xc16x | xgate | xps100 \ + | xstormy16 | xtensa* \ + | ymp \ + | z8k | z80) + ;; + + *) + echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 + exit 1 + ;; + esac ;; esac # Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` +case $vendor in + digital*) + vendor=dec ;; - *-commodore*) - basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` + commodore*) + vendor=cbm ;; *) ;; @@ -1334,203 +1306,215 @@ # Decode manufacturer-specific aliases for certain operating systems. -if [ x"$os" != x"" ] +if test x$basic_os != x then + +# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` + ;; + os2-emx) + kernel=os2 + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` + ;; + nto-qnx*) + kernel=nto + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` + ;; + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read kernel os <&2 - exit 1 + # No normalization, but not necessarily accepted, that comes below. ;; esac + else # Here we handle the default operating systems that come with various machines. @@ -1543,258 +1527,363 @@ # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. -case $basic_machine in +kernel= +case $cpu-$vendor in score-*) - os=-elf + os=elf ;; spu-*) - os=-elf + os=elf ;; *-acorn) - os=-riscix1.2 + os=riscix1.2 ;; arm*-rebel) - os=-linux + kernel=linux + os=gnu ;; arm*-semi) - os=-aout + os=aout ;; c4x-* | tic4x-*) - os=-coff + os=coff ;; c8051-*) - os=-elf + os=elf + ;; + clipper-intergraph) + os=clix ;; hexagon-*) - os=-elf + os=elf ;; tic54x-*) - os=-coff + os=coff ;; tic55x-*) - os=-coff + os=coff ;; tic6x-*) - os=-coff + os=coff ;; # This must come before the *-dec entry. pdp10-*) - os=-tops20 + os=tops20 ;; pdp11-*) - os=-none + os=none ;; *-dec | vax-*) - os=-ultrix4.2 + os=ultrix4.2 ;; m68*-apollo) - os=-domain + os=domain ;; i386-sun) - os=-sunos4.0.2 + os=sunos4.0.2 ;; m68000-sun) - os=-sunos3 + os=sunos3 ;; m68*-cisco) - os=-aout + os=aout ;; mep-*) - os=-elf + os=elf ;; mips*-cisco) - os=-elf + os=elf ;; mips*-*) - os=-elf + os=elf ;; or32-*) - os=-coff + os=coff ;; *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 + os=sysv3 ;; sparc-* | *-sun) - os=-sunos4.1.1 + os=sunos4.1.1 ;; pru-*) - os=-elf + os=elf ;; *-be) - os=-beos + os=beos ;; *-ibm) - os=-aix + os=aix ;; *-knuth) - os=-mmixware + os=mmixware ;; *-wec) - os=-proelf + os=proelf ;; *-winbond) - os=-proelf + os=proelf ;; *-oki) - os=-proelf + os=proelf ;; *-hp) - os=-hpux + os=hpux ;; *-hitachi) - os=-hiux + os=hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv + os=sysv ;; *-cbm) - os=-amigaos + os=amigaos ;; *-dg) - os=-dgux + os=dgux ;; *-dolphin) - os=-sysv3 + os=sysv3 ;; m68k-ccur) - os=-rtu + os=rtu ;; m88k-omron*) - os=-luna + os=luna ;; *-next) - os=-nextstep + os=nextstep ;; *-sequent) - os=-ptx + os=ptx ;; *-crds) - os=-unos + os=unos ;; *-ns) - os=-genix + os=genix ;; i370-*) - os=-mvs + os=mvs ;; *-gould) - os=-sysv + os=sysv ;; *-highlevel) - os=-bsd + os=bsd ;; *-encore) - os=-bsd + os=bsd ;; *-sgi) - os=-irix + os=irix ;; *-siemens) - os=-sysv4 + os=sysv4 ;; *-masscomp) - os=-rtu + os=rtu ;; f30[01]-fujitsu | f700-fujitsu) - os=-uxpv + os=uxpv ;; *-rom68k) - os=-coff + os=coff ;; *-*bug) - os=-coff + os=coff ;; *-apple) - os=-macos + os=macos ;; *-atari*) - os=-mint + os=mint + ;; + *-wrs) + os=vxworks ;; *) - os=-none + os=none ;; esac + fi +# Now, validate our (potentially fixed-up) OS. +case $os in + # Sometimes we do "kernel-libc", so those need to count as OSes. + musl* | newlib* | relibc* | uclibc*) + ;; + # Likewise for "kernel-abi" + eabi* | gnueabi*) + ;; + # VxWorks passes extra cpu info in the 4th filed. + simlinux | simwindows | spe) + ;; + # Now accept the basic system types. + # The portable systems comes first. + # Each alternative MUST end in a * to match a version number. + gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ + | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ + | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ + | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ + | hiux* | abug | nacl* | netware* | windows* \ + | os9* | macos* | osx* | ios* \ + | mpw* | magic* | mmixware* | mon960* | lnews* \ + | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ + | aos* | aros* | cloudabi* | sortix* | twizzler* \ + | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ + | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ + | mirbsd* | netbsd* | dicos* | openedition* | ose* \ + | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ + | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ + | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ + | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ + | udi* | lites* | ieee* | go32* | aux* | hcos* \ + | chorusrdb* | cegcc* | glidix* | serenity* \ + | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ + | midipix* | mingw32* | mingw64* | mint* \ + | uxpv* | beos* | mpeix* | udk* | moxiebox* \ + | interix* | uwin* | mks* | rhapsody* | darwin* \ + | openstep* | oskit* | conix* | pw32* | nonstopux* \ + | storm-chaos* | tops10* | tenex* | tops20* | its* \ + | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ + | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ + | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ + | skyos* | haiku* | rdos* | toppers* | drops* | es* \ + | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ + | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ + | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ + | fiwix* ) + ;; + # This one is extra strict with allowed versions + sco3.2v2 | sco3.2v[4-9]* | sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + ;; + none) + ;; + *) + echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) vendor=acorn ;; - -sunos*) + *-sunos*) vendor=sun ;; - -cnk*|-aix*) + *-cnk* | *-aix*) vendor=ibm ;; - -beos*) + *-beos*) vendor=be ;; - -hpux*) + *-hpux*) vendor=hp ;; - -mpeix*) + *-mpeix*) vendor=hp ;; - -hiux*) + *-hiux*) vendor=hitachi ;; - -unos*) + *-unos*) vendor=crds ;; - -dgux*) + *-dgux*) vendor=dg ;; - -luna*) + *-luna*) vendor=omron ;; - -genix*) + *-genix*) vendor=ns ;; - -mvs* | -opened*) + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) vendor=ibm ;; - -os400*) + s390-* | s390x-*) vendor=ibm ;; - -ptx*) + *-ptx*) vendor=sequent ;; - -tpf*) + *-tpf*) vendor=ibm ;; - -vxsim* | -vxworks* | -windiss*) + *-vxsim* | *-vxworks* | *-windiss*) vendor=wrs ;; - -aux*) + *-aux*) vendor=apple ;; - -hms*) + *-hms*) vendor=hitachi ;; - -mpw* | -macos*) + *-mpw* | *-macos*) vendor=apple ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) vendor=atari ;; - -vos*) + *-vos*) vendor=stratus ;; esac - basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` ;; esac -echo "$basic_machine$os" +echo "$cpu-$vendor-${kernel:+$kernel-}$os" exit # Local variables: -# eval: (add-hook 'write-file-functions 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff -Nru vlc-3.0.17.4/autotools/depcomp vlc-3.0.18/autotools/depcomp --- vlc-3.0.17.4/autotools/depcomp 2021-05-10 15:18:06.000000000 +0000 +++ vlc-3.0.18/autotools/depcomp 2022-08-03 11:11:46.000000000 +0000 @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2020 Free Software Foundation, Inc. +# Copyright (C) 1999-2021 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru vlc-3.0.17.4/autotools/ltmain.sh vlc-3.0.18/autotools/ltmain.sh --- vlc-3.0.17.4/autotools/ltmain.sh 2021-05-10 15:17:50.000000000 +0000 +++ vlc-3.0.18/autotools/ltmain.sh 2022-08-03 11:11:36.000000000 +0000 @@ -1,12 +1,12 @@ -#! /bin/sh +#! /usr/bin/env sh ## DO NOT EDIT - This file generated from ./build-aux/ltmain.in -## by inline-source v2014-01-03.01 +## by inline-source v2019-02-19.15 -# libtool (GNU libtool) 2.4.6 +# libtool (GNU libtool) 2.4.7 # Provide generalized library-building support services. # Written by Gordon Matzigkeit , 1996 -# Copyright (C) 1996-2015 Free Software Foundation, Inc. +# Copyright (C) 1996-2019, 2021-2022 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. @@ -31,8 +31,8 @@ PROGRAM=libtool PACKAGE=libtool -VERSION="2.4.6 Debian-2.4.6-15" -package_revision=2.4.6 +VERSION="2.4.7 Debian-2.4.7-4" +package_revision=2.4.7 ## ------ ## @@ -64,34 +64,25 @@ # libraries, which are installed to $pkgauxdir. # Set a version string for this script. -scriptversion=2015-01-20.17; # UTC +scriptversion=2019-02-19.15; # UTC # General shell script boiler plate, and helper functions. # Written by Gary V. Vaughan, 2004 -# Copyright (C) 2004-2015 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. - -# As a special exception to the GNU General Public License, if you distribute -# this file as part of a program or library that is built using GNU Libtool, -# you may include this file under the same distribution terms that you use -# for the rest of that program. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# This is free software. There is NO warranty; not even for +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Copyright (C) 2004-2019, 2021 Bootstrap Authors +# +# This file is dual licensed under the terms of the MIT license +# , and GPL version 2 or later +# . You must apply one of +# these licenses when using or redistributing this software or any of +# the files within it. See the URLs above, or the file `LICENSE` +# included in the Bootstrap distribution for the full license texts. -# Please report bugs or propose patches to gary@gnu.org. +# Please report bugs or propose patches to: +# ## ------ ## @@ -139,9 +130,12 @@ _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" fi" done - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# These NLS vars are set unconditionally (bootstrap issue #24). Unset those +# in case the environment reset is needed later and the $save_* variant is not +# defined (see the code above). +LC_ALL=C +LANGUAGE=C +export LANGUAGE LC_ALL # Make sure IFS has a sensible default sp=' ' @@ -159,6 +153,26 @@ fi +# func_unset VAR +# -------------- +# Portably unset VAR. +# In some shells, an 'unset VAR' statement leaves a non-zero return +# status if VAR is already unset, which might be problematic if the +# statement is used at the end of a function (thus poisoning its return +# value) or when 'set -e' is active (causing even a spurious abort of +# the script in this case). +func_unset () +{ + { eval $1=; (eval unset $1) >/dev/null 2>&1 && eval unset $1 || : ; } +} + + +# Make sure CDPATH doesn't cause `cd` commands to output the target dir. +func_unset CDPATH + +# Make sure ${,E,F}GREP behave sanely. +func_unset GREP_OPTIONS + ## ------------------------- ## ## Locate command utilities. ## @@ -259,7 +273,7 @@ rm -f conftest.in conftest.tmp conftest.nl conftest.out } - func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin + func_path_progs "sed gsed" func_check_prog_sed "$PATH:/usr/xpg4/bin" rm -f conftest.sed SED=$func_path_progs_result } @@ -295,7 +309,7 @@ rm -f conftest.in conftest.tmp conftest.nl conftest.out } - func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin + func_path_progs "grep ggrep" func_check_prog_grep "$PATH:/usr/xpg4/bin" GREP=$func_path_progs_result } @@ -360,6 +374,35 @@ s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g s/\n//g" +# require_check_ifs_backslash +# --------------------------- +# Check if we can use backslash as IFS='\' separator, and set +# $check_ifs_backshlash_broken to ':' or 'false'. +require_check_ifs_backslash=func_require_check_ifs_backslash +func_require_check_ifs_backslash () +{ + _G_save_IFS=$IFS + IFS='\' + _G_check_ifs_backshlash='a\\b' + for _G_i in $_G_check_ifs_backshlash + do + case $_G_i in + a) + check_ifs_backshlash_broken=false + ;; + '') + break + ;; + *) + check_ifs_backshlash_broken=: + break + ;; + esac + done + IFS=$_G_save_IFS + require_check_ifs_backslash=: +} + ## ----------------- ## ## Global variables. ## @@ -580,16 +623,16 @@ { $debug_cmd - func_quote_for_eval "$2" - eval "$1+=\\ \$func_quote_for_eval_result" + func_quote_arg pretty "$2" + eval "$1+=\\ \$func_quote_arg_result" }' else func_append_quoted () { $debug_cmd - func_quote_for_eval "$2" - eval "$1=\$$1\\ \$func_quote_for_eval_result" + func_quote_arg pretty "$2" + eval "$1=\$$1\\ \$func_quote_arg_result" } fi @@ -1091,85 +1134,203 @@ } -# func_quote_for_eval ARG... -# -------------------------- -# Aesthetically quote ARGs to be evaled later. -# This function returns two values: -# i) func_quote_for_eval_result -# double-quoted, suitable for a subsequent eval -# ii) func_quote_for_eval_unquoted_result -# has all characters that are still active within double -# quotes backslashified. -func_quote_for_eval () +# func_quote_portable EVAL ARG +# ---------------------------- +# Internal function to portably implement func_quote_arg. Note that we still +# keep attention to performance here so we as much as possible try to avoid +# calling sed binary (so far O(N) complexity as long as func_append is O(1)). +func_quote_portable () { $debug_cmd - func_quote_for_eval_unquoted_result= - func_quote_for_eval_result= - while test 0 -lt $#; do - case $1 in - *[\\\`\"\$]*) - _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; - *) - _G_unquoted_arg=$1 ;; - esac - if test -n "$func_quote_for_eval_unquoted_result"; then - func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" - else - func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" + $require_check_ifs_backslash + + func_quote_portable_result=$2 + + # one-time-loop (easy break) + while true + do + if $1; then + func_quote_portable_result=`$ECHO "$2" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` + break fi - case $_G_unquoted_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting, command substitution and variable expansion - # for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - _G_quoted_arg=\"$_G_unquoted_arg\" + # Quote for eval. + case $func_quote_portable_result in + *[\\\`\"\$]*) + # Fallback to sed for $func_check_bs_ifs_broken=:, or when the string + # contains the shell wildcard characters. + case $check_ifs_backshlash_broken$func_quote_portable_result in + :*|*[\[\*\?]*) + func_quote_portable_result=`$ECHO "$func_quote_portable_result" \ + | $SED "$sed_quote_subst"` + break + ;; + esac + + func_quote_portable_old_IFS=$IFS + for _G_char in '\' '`' '"' '$' + do + # STATE($1) PREV($2) SEPARATOR($3) + set start "" "" + func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy + IFS=$_G_char + for _G_part in $func_quote_portable_result + do + case $1 in + quote) + func_append func_quote_portable_result "$3$2" + set quote "$_G_part" "\\$_G_char" + ;; + start) + set first "" "" + func_quote_portable_result= + ;; + first) + set quote "$_G_part" "" + ;; + esac + done + done + IFS=$func_quote_portable_old_IFS ;; - *) - _G_quoted_arg=$_G_unquoted_arg - ;; + *) ;; esac - - if test -n "$func_quote_for_eval_result"; then - func_append func_quote_for_eval_result " $_G_quoted_arg" - else - func_append func_quote_for_eval_result "$_G_quoted_arg" - fi - shift + break done + + func_quote_portable_unquoted_result=$func_quote_portable_result + case $func_quote_portable_result in + # double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # many bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + func_quote_portable_result=\"$func_quote_portable_result\" + ;; + esac } -# func_quote_for_expand ARG -# ------------------------- -# Aesthetically quote ARG to be evaled later; same as above, -# but do not quote variable references. -func_quote_for_expand () -{ - $debug_cmd +# func_quotefast_eval ARG +# ----------------------- +# Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG', +# but optimized for speed. Result is stored in $func_quotefast_eval. +if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then + printf -v _GL_test_printf_tilde %q '~' + if test '\~' = "$_GL_test_printf_tilde"; then + func_quotefast_eval () + { + printf -v func_quotefast_eval_result %q "$1" + } + else + # Broken older Bash implementations. Make those faster too if possible. + func_quotefast_eval () + { + case $1 in + '~'*) + func_quote_portable false "$1" + func_quotefast_eval_result=$func_quote_portable_result + ;; + *) + printf -v func_quotefast_eval_result %q "$1" + ;; + esac + } + fi +else + func_quotefast_eval () + { + func_quote_portable false "$1" + func_quotefast_eval_result=$func_quote_portable_result + } +fi - case $1 in - *[\\\`\"]*) - _G_arg=`$ECHO "$1" | $SED \ - -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; - *) - _G_arg=$1 ;; + +# func_quote_arg MODEs ARG +# ------------------------ +# Quote one ARG to be evaled later. MODEs argument may contain zero or more +# specifiers listed below separated by ',' character. This function returns two +# values: +# i) func_quote_arg_result +# double-quoted (when needed), suitable for a subsequent eval +# ii) func_quote_arg_unquoted_result +# has all characters that are still active within double +# quotes backslashified. Available only if 'unquoted' is specified. +# +# Available modes: +# ---------------- +# 'eval' (default) +# - escape shell special characters +# 'expand' +# - the same as 'eval'; but do not quote variable references +# 'pretty' +# - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might +# be used later in func_quote to get output like: 'echo "a b"' instead +# of 'echo a\ b'. This is slower than default on some shells. +# 'unquoted' +# - produce also $func_quote_arg_unquoted_result which does not contain +# wrapping double-quotes. +# +# Examples for 'func_quote_arg pretty,unquoted string': +# +# string | *_result | *_unquoted_result +# ------------+-----------------------+------------------- +# " | \" | \" +# a b | "a b" | a b +# "a b" | "\"a b\"" | \"a b\" +# * | "*" | * +# z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\" +# +# Examples for 'func_quote_arg pretty,unquoted,expand string': +# +# string | *_result | *_unquoted_result +# --------------+---------------------+-------------------- +# z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\" +func_quote_arg () +{ + _G_quote_expand=false + case ,$1, in + *,expand,*) + _G_quote_expand=: + ;; esac - case $_G_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting and command substitution for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - _G_arg=\"$_G_arg\" + case ,$1, in + *,pretty,*|*,expand,*|*,unquoted,*) + func_quote_portable $_G_quote_expand "$2" + func_quote_arg_result=$func_quote_portable_result + func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result + ;; + *) + # Faster quote-for-eval for some shells. + func_quotefast_eval "$2" + func_quote_arg_result=$func_quotefast_eval_result ;; esac +} + - func_quote_for_expand_result=$_G_arg +# func_quote MODEs ARGs... +# ------------------------ +# Quote all ARGs to be evaled later and join them into single command. See +# func_quote_arg's description for more info. +func_quote () +{ + $debug_cmd + _G_func_quote_mode=$1 ; shift + func_quote_result= + while test 0 -lt $#; do + func_quote_arg "$_G_func_quote_mode" "$1" + if test -n "$func_quote_result"; then + func_append func_quote_result " $func_quote_arg_result" + else + func_append func_quote_result "$func_quote_arg_result" + fi + shift + done } @@ -1215,8 +1376,8 @@ _G_cmd=$1 _G_fail_exp=${2-':'} - func_quote_for_expand "$_G_cmd" - eval "func_notquiet $func_quote_for_expand_result" + func_quote_arg pretty,expand "$_G_cmd" + eval "func_notquiet $func_quote_arg_result" $opt_dry_run || { eval "$_G_cmd" @@ -1241,8 +1402,8 @@ _G_fail_exp=${2-':'} $opt_quiet || { - func_quote_for_expand "$_G_cmd" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$_G_cmd" + eval "func_echo $func_quote_arg_result" } $opt_dry_run || { @@ -1369,30 +1530,26 @@ # End: #! /bin/sh -# Set a version string for this script. -scriptversion=2015-10-07.11; # UTC - # A portable, pluggable option parser for Bourne shell. # Written by Gary V. Vaughan, 2010 -# Copyright (C) 2010-2015 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# This is free software. There is NO warranty; not even for +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Copyright (C) 2010-2019, 2021 Bootstrap Authors +# +# This file is dual licensed under the terms of the MIT license +# , and GPL version 2 or later +# . You must apply one of +# these licenses when using or redistributing this software or any of +# the files within it. See the URLs above, or the file `LICENSE` +# included in the Bootstrap distribution for the full license texts. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# Please report bugs or propose patches to: +# -# Please report bugs or propose patches to gary@gnu.org. +# Set a version string for this script. +scriptversion=2019-02-19.15; # UTC ## ------ ## @@ -1415,7 +1572,7 @@ # # In order for the '--version' option to work, you will need to have a # suitably formatted comment like the one at the top of this file -# starting with '# Written by ' and ending with '# warranty; '. +# starting with '# Written by ' and ending with '# Copyright'. # # For '-h' and '--help' to work, you will also need a one line # description of your script's purpose in a comment directly above the @@ -1427,7 +1584,7 @@ # to display verbose messages only when your user has specified # '--verbose'. # -# After sourcing this file, you can plug processing for additional +# After sourcing this file, you can plug in processing for additional # options by amending the variables from the 'Configuration' section # below, and following the instructions in the 'Option parsing' # section further down. @@ -1476,8 +1633,8 @@ ## ------------------------- ## # This section contains functions for adding, removing, and running hooks -# to the main code. A hook is just a named list of of function, that can -# be run in order later on. +# in the main code. A hook is just a list of function names that can be +# run in order later on. # func_hookable FUNC_NAME # ----------------------- @@ -1510,7 +1667,8 @@ # func_remove_hook FUNC_NAME HOOK_FUNC # ------------------------------------ -# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. +# Remove HOOK_FUNC from the list of hook functions to be called by +# FUNC_NAME. func_remove_hook () { $debug_cmd @@ -1519,10 +1677,28 @@ } +# func_propagate_result FUNC_NAME_A FUNC_NAME_B +# --------------------------------------------- +# If the *_result variable of FUNC_NAME_A _is set_, assign its value to +# *_result variable of FUNC_NAME_B. +func_propagate_result () +{ + $debug_cmd + + func_propagate_result_result=: + if eval "test \"\${${1}_result+set}\" = set" + then + eval "${2}_result=\$${1}_result" + else + func_propagate_result_result=false + fi +} + + # func_run_hooks FUNC_NAME [ARG]... # --------------------------------- # Run all hook functions registered to FUNC_NAME. -# It is assumed that the list of hook functions contains nothing more +# It's assumed that the list of hook functions contains nothing more # than a whitespace-delimited list of legal shell function names, and # no effort is wasted trying to catch shell meta-characters or preserve # whitespace. @@ -1534,22 +1710,19 @@ case " $hookable_fns " in *" $1 "*) ;; - *) func_fatal_error "'$1' does not support hook funcions.n" ;; + *) func_fatal_error "'$1' does not support hook functions." ;; esac eval _G_hook_fns=\$$1_hooks; shift for _G_hook in $_G_hook_fns; do - if eval $_G_hook '"$@"'; then - # store returned options list back into positional - # parameters for next 'cmd' execution. - eval _G_hook_result=\$${_G_hook}_result - eval set dummy "$_G_hook_result"; shift - _G_rc_run_hooks=: + func_unset "${_G_hook}_result" + eval $_G_hook '${1+"$@"}' + func_propagate_result $_G_hook func_run_hooks + if $func_propagate_result_result; then + eval set dummy "$func_run_hooks_result"; shift fi done - - $_G_rc_run_hooks && func_run_hooks_result=$_G_hook_result } @@ -1559,14 +1732,16 @@ ## --------------- ## # In order to add your own option parsing hooks, you must accept the -# full positional parameter list in your hook function, you may remove/edit -# any options that you action, and then pass back the remaining unprocessed -# options in '_result', escaped suitably for -# 'eval'. In this case you also must return $EXIT_SUCCESS to let the -# hook's caller know that it should pay attention to -# '_result'. Returning $EXIT_FAILURE signalizes that -# arguments are left untouched by the hook and therefore caller will ignore the -# result variable. +# full positional parameter list from your hook function. You may remove +# or edit any options that you action, and then pass back the remaining +# unprocessed options in '_result', escaped +# suitably for 'eval'. +# +# The '_result' variable is automatically unset +# before your hook gets called; for best performance, only set the +# *_result variable when necessary (i.e. don't call the 'func_quote' +# function unnecessarily because it can be an expensive operation on some +# machines). # # Like this: # @@ -1578,11 +1753,8 @@ # usage_message=$usage_message' # -s, --silent don'\''t print informational messages # ' -# # No change in '$@' (ignored completely by this hook). There is -# # no need to do the equivalent (but slower) action: -# # func_quote_for_eval ${1+"$@"} -# # my_options_prep_result=$func_quote_for_eval_result -# false +# # No change in '$@' (ignored completely by this hook). Leave +# # my_options_prep_result variable intact. # } # func_add_hook func_options_prep my_options_prep # @@ -1593,7 +1765,7 @@ # # args_changed=false # -# # Note that for efficiency, we parse as many options as we can +# # Note that, for efficiency, we parse as many options as we can # # recognise in a loop before passing the remainder back to the # # caller on the first unrecognised argument we encounter. # while test $# -gt 0; do @@ -1610,18 +1782,17 @@ # args_changed=: # ;; # *) # Make sure the first unrecognised option "$_G_opt" -# # is added back to "$@", we could need that later -# # if $args_changed is true. +# # is added back to "$@" in case we need it later, +# # if $args_changed was set to 'true'. # set dummy "$_G_opt" ${1+"$@"}; shift; break ;; # esac # done # +# # Only call 'func_quote' here if we processed at least one argument. # if $args_changed; then -# func_quote_for_eval ${1+"$@"} -# my_silent_option_result=$func_quote_for_eval_result +# func_quote eval ${1+"$@"} +# my_silent_option_result=$func_quote_result # fi -# -# $args_changed # } # func_add_hook func_parse_options my_silent_option # @@ -1632,8 +1803,6 @@ # # $opt_silent && $opt_verbose && func_fatal_help "\ # '--silent' and '--verbose' options are mutually exclusive." -# -# false # } # func_add_hook func_validate_options my_option_validation # @@ -1649,13 +1818,8 @@ { $debug_cmd - _G_func_options_finish_exit=false - if func_run_hooks func_options ${1+"$@"}; then - func_options_finish_result=$func_run_hooks_result - _G_func_options_finish_exit=: - fi - - $_G_func_options_finish_exit + func_run_hooks func_options ${1+"$@"} + func_propagate_result func_run_hooks func_options_finish } @@ -1668,28 +1832,27 @@ { $debug_cmd - _G_rc_options=false + _G_options_quoted=false for my_func in options_prep parse_options validate_options options_finish do - if eval func_$my_func '${1+"$@"}'; then - eval _G_res_var='$'"func_${my_func}_result" - eval set dummy "$_G_res_var" ; shift - _G_rc_options=: + func_unset func_${my_func}_result + func_unset func_run_hooks_result + eval func_$my_func '${1+"$@"}' + func_propagate_result func_$my_func func_options + if $func_propagate_result_result; then + eval set dummy "$func_options_result"; shift + _G_options_quoted=: fi done - # Save modified positional parameters for caller. As a top-level - # options-parser function we always need to set the 'func_options_result' - # variable (regardless the $_G_rc_options value). - if $_G_rc_options; then - func_options_result=$_G_res_var - else - func_quote_for_eval ${1+"$@"} - func_options_result=$func_quote_for_eval_result - fi - - $_G_rc_options + $_G_options_quoted || { + # As we (func_options) are top-level options-parser function and + # nobody quoted "$@" for us yet, we need to do it explicitly for + # caller. + func_quote eval ${1+"$@"} + func_options_result=$func_quote_result + } } @@ -1699,8 +1862,7 @@ # Note that when calling hook functions, we pass through the list of # positional parameters. If a hook function modifies that list, and # needs to propagate that back to rest of this script, then the complete -# modified list must be put in 'func_run_hooks_result' before -# returning $EXIT_SUCCESS (otherwise $EXIT_FAILURE is returned). +# modified list must be put in 'func_run_hooks_result' before returning. func_hookable func_options_prep func_options_prep () { @@ -1710,14 +1872,8 @@ opt_verbose=false opt_warning_types= - _G_rc_options_prep=false - if func_run_hooks func_options_prep ${1+"$@"}; then - _G_rc_options_prep=: - # save modified positional parameters for caller - func_options_prep_result=$func_run_hooks_result - fi - - $_G_rc_options_prep + func_run_hooks func_options_prep ${1+"$@"} + func_propagate_result func_run_hooks func_options_prep } @@ -1729,27 +1885,32 @@ { $debug_cmd - func_parse_options_result= - - _G_rc_parse_options=false + _G_parse_options_requote=false # this just eases exit handling while test $# -gt 0; do # Defer to hook functions for initial option parsing, so they # get priority in the event of reusing an option name. - if func_run_hooks func_parse_options ${1+"$@"}; then - eval set dummy "$func_run_hooks_result"; shift - _G_rc_parse_options=: + func_run_hooks func_parse_options ${1+"$@"} + func_propagate_result func_run_hooks func_parse_options + if $func_propagate_result_result; then + eval set dummy "$func_parse_options_result"; shift + # Even though we may have changed "$@", we passed the "$@" array + # down into the hook and it quoted it for us (because we are in + # this if-branch). No need to quote it again. + _G_parse_options_requote=false fi # Break out of the loop if we already parsed every option. test $# -gt 0 || break + # We expect that one of the options parsed in this function matches + # and thus we remove _G_opt from "$@" and need to re-quote. _G_match_parse_options=: _G_opt=$1 shift case $_G_opt in --debug|-x) debug_cmd='set -x' - func_echo "enabling shell trace mode" + func_echo "enabling shell trace mode" >&2 $debug_cmd ;; @@ -1760,7 +1921,7 @@ --warnings|--warning|-W) if test $# = 0 && func_missing_arg $_G_opt; then - _G_rc_parse_options=: + _G_parse_options_requote=: break fi case " $warning_categories $1" in @@ -1815,7 +1976,7 @@ shift ;; - --) _G_rc_parse_options=: ; break ;; + --) _G_parse_options_requote=: ; break ;; -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; *) set dummy "$_G_opt" ${1+"$@"}; shift _G_match_parse_options=false @@ -1823,17 +1984,16 @@ ;; esac - $_G_match_parse_options && _G_rc_parse_options=: + if $_G_match_parse_options; then + _G_parse_options_requote=: + fi done - - if $_G_rc_parse_options; then + if $_G_parse_options_requote; then # save modified positional parameters for caller - func_quote_for_eval ${1+"$@"} - func_parse_options_result=$func_quote_for_eval_result + func_quote eval ${1+"$@"} + func_parse_options_result=$func_quote_result fi - - $_G_rc_parse_options } @@ -1846,21 +2006,14 @@ { $debug_cmd - _G_rc_validate_options=false - # Display all warnings if -W was not given. test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" - if func_run_hooks func_validate_options ${1+"$@"}; then - # save modified positional parameters for caller - func_validate_options_result=$func_run_hooks_result - _G_rc_validate_options=: - fi + func_run_hooks func_validate_options ${1+"$@"} + func_propagate_result func_run_hooks func_validate_options # Bail if the options were screwed! $exit_cmd $EXIT_FAILURE - - $_G_rc_validate_options } @@ -1916,8 +2069,8 @@ # func_split_equals STRING # ------------------------ -# Set func_split_equals_lhs and func_split_equals_rhs shell variables after -# splitting STRING at the '=' sign. +# Set func_split_equals_lhs and func_split_equals_rhs shell variables +# after splitting STRING at the '=' sign. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ @@ -1932,8 +2085,9 @@ func_split_equals_lhs=${1%%=*} func_split_equals_rhs=${1#*=} - test "x$func_split_equals_lhs" = "x$1" \ - && func_split_equals_rhs= + if test "x$func_split_equals_lhs" = "x$1"; then + func_split_equals_rhs= + fi }' else # ...otherwise fall back to using expr, which is often a shell builtin. @@ -1943,7 +2097,7 @@ func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` func_split_equals_rhs= - test "x$func_split_equals_lhs" = "x$1" \ + test "x$func_split_equals_lhs=" = "x$1" \ || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` } fi #func_split_equals @@ -1969,7 +2123,7 @@ { $debug_cmd - func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` + func_split_short_opt_name=`expr "x$1" : 'x\(-.\)'` func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` } fi #func_split_short_opt @@ -2011,31 +2165,44 @@ # func_version # ------------ # Echo version message to standard output and exit. +# The version message is extracted from the calling file's header +# comments, with leading '# ' stripped: +# 1. First display the progname and version +# 2. Followed by the header comment line matching /^# Written by / +# 3. Then a blank line followed by the first following line matching +# /^# Copyright / +# 4. Immediately followed by any lines between the previous matches, +# except lines preceding the intervening completely blank line. +# For example, see the header comments of this file. func_version () { $debug_cmd printf '%s\n' "$progname $scriptversion" $SED -n ' - /(C)/!b go - :more - /\./!{ - N - s|\n# | | - b more - } - :go - /^# Written by /,/# warranty; / { - s|^# || - s|^# *$|| - s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| - p + /^# Written by /!b + s|^# ||; p; n + + :fwd2blnk + /./ { + n + b fwd2blnk } - /^# Written by / { - s|^# || - p + p; n + + :holdwrnt + s|^# || + s|^# *$|| + /^Copyright /!{ + /./H + n + b holdwrnt } - /^warranty; /q' < "$progpath" + + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + G + s|\(\n\)\n*|\1|g + p; q' < "$progpath" exit $? } @@ -2045,12 +2212,12 @@ # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: # Set a version string. -scriptversion='(GNU libtool) 2.4.6' +scriptversion='(GNU libtool) 2.4.7' # func_echo ARG... @@ -2141,7 +2308,7 @@ compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) - version: $progname $scriptversion Debian-2.4.6-15 + version: $progname $scriptversion Debian-2.4.7-4 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` @@ -2197,7 +2364,7 @@ # a configuration failure hint, and exit. func_fatal_configuration () { - func__fatal_error ${1+"$@"} \ + func_fatal_error ${1+"$@"} \ "See the $PACKAGE documentation for more information." \ "Fatal configuration error." } @@ -2345,6 +2512,8 @@ _G_rc_lt_options_prep=: + _G_rc_lt_options_prep=: + # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) @@ -2375,11 +2544,9 @@ if $_G_rc_lt_options_prep; then # Pass back the list of options. - func_quote_for_eval ${1+"$@"} - libtool_options_prep_result=$func_quote_for_eval_result + func_quote eval ${1+"$@"} + libtool_options_prep_result=$func_quote_result fi - - $_G_rc_lt_options_prep } func_add_hook func_options_prep libtool_options_prep @@ -2482,11 +2649,9 @@ if $_G_rc_lt_parse_options; then # save modified positional parameters for caller - func_quote_for_eval ${1+"$@"} - libtool_parse_options_result=$func_quote_for_eval_result + func_quote eval ${1+"$@"} + libtool_parse_options_result=$func_quote_result fi - - $_G_rc_lt_parse_options } func_add_hook func_parse_options libtool_parse_options @@ -2543,8 +2708,8 @@ } # Pass back the unparsed argument list - func_quote_for_eval ${1+"$@"} - libtool_validate_options_result=$func_quote_for_eval_result + func_quote eval ${1+"$@"} + libtool_validate_options_result=$func_quote_result } func_add_hook func_validate_options libtool_validate_options @@ -3510,8 +3675,8 @@ esac done - func_quote_for_eval "$libobj" - test "X$libobj" != "X$func_quote_for_eval_result" \ + func_quote_arg pretty "$libobj" + test "X$libobj" != "X$func_quote_arg_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name '$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" @@ -3584,8 +3749,8 @@ func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result - func_quote_for_eval "$srcfile" - qsrcfile=$func_quote_for_eval_result + func_quote_arg pretty "$srcfile" + qsrcfile=$func_quote_arg_result # Only build a PIC object if we are building libtool libraries. if test yes = "$build_libtool_libs"; then @@ -3740,7 +3905,8 @@ -prefer-non-pic try to build non-PIC objects only -shared do not build a '.o' file suitable for static linking -static only build a '.o' file suitable for static linking - -Wc,FLAG pass FLAG directly to the compiler + -Wc,FLAG + -Xcompiler FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a 'standard' object file from the given SOURCEFILE. @@ -3846,6 +4012,8 @@ -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wa,FLAG + -Xassembler FLAG pass linker-specific FLAG directly to the assembler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) @@ -4188,8 +4356,8 @@ case $nonopt in *shtool*) :;; *) false;; esac then # Aesthetically quote it. - func_quote_for_eval "$nonopt" - install_prog="$func_quote_for_eval_result " + func_quote_arg pretty "$nonopt" + install_prog="$func_quote_arg_result " arg=$1 shift else @@ -4199,8 +4367,8 @@ # The real first argument should be the name of the installation program. # Aesthetically quote it. - func_quote_for_eval "$arg" - func_append install_prog "$func_quote_for_eval_result" + func_quote_arg pretty "$arg" + func_append install_prog "$func_quote_arg_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; @@ -4257,12 +4425,12 @@ esac # Aesthetically quote the argument. - func_quote_for_eval "$arg" - func_append install_prog " $func_quote_for_eval_result" + func_quote_arg pretty "$arg" + func_append install_prog " $func_quote_arg_result" if test -n "$arg2"; then - func_quote_for_eval "$arg2" + func_quote_arg pretty "$arg2" fi - func_append install_shared_prog " $func_quote_for_eval_result" + func_append install_shared_prog " $func_quote_arg_result" done test -z "$install_prog" && \ @@ -4273,8 +4441,8 @@ if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else - func_quote_for_eval "$install_override_mode" - func_append install_shared_prog " -m $func_quote_for_eval_result" + func_quote_arg pretty "$install_override_mode" + func_append install_shared_prog " -m $func_quote_arg_result" fi fi @@ -4570,8 +4738,8 @@ relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_quiet || { - func_quote_for_expand "$relink_command" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$relink_command" + eval "func_echo $func_quote_arg_result" } if eval "$relink_command"; then : else @@ -5350,7 +5518,8 @@ if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" - qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + func_quote_arg pretty "$ECHO" + qECHO=$func_quote_arg_result $ECHO "\ # A function that is used when there is no print builtin or printf. @@ -5360,7 +5529,7 @@ \$1 _LTECHO_EOF' } - ECHO=\"$qECHO\" + ECHO=$qECHO fi # Very basic option parsing. These options are (a) specific to @@ -6703,9 +6872,9 @@ while test "$#" -gt 0; do arg=$1 shift - func_quote_for_eval "$arg" - qarg=$func_quote_for_eval_unquoted_result - func_append libtool_args " $func_quote_for_eval_result" + func_quote_arg pretty,unquoted "$arg" + qarg=$func_quote_arg_unquoted_result + func_append libtool_args " $func_quote_arg_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then @@ -6941,6 +7110,13 @@ prev= continue ;; + xassembler) + func_append compiler_flags " -Xassembler $qarg" + prev= + func_append compile_command " -Xassembler $qarg" + func_append finalize_command " -Xassembler $qarg" + continue + ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" @@ -7111,7 +7287,7 @@ # These systems don't actually have a C library (as such) test X-lc = "X$arg" && continue ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*) # Do not include libc due to us having libc/libc_r. test X-lc = "X$arg" && continue ;; @@ -7131,7 +7307,7 @@ esac elif test X-lc_r = "X$arg"; then case $host in - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*) # Do not include libc_r directly, use -pthread flag. continue ;; @@ -7161,8 +7337,20 @@ prev=xcompiler continue ;; - - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + # Solaris ld rejects as of 11.4. Refer to Oracle bug 22985199. + -pthread) + case $host in + *solaris2*) ;; + *) + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + ;; + esac + continue + ;; + -mt|-mthreads|-kthread|-Kthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" @@ -7303,9 +7491,9 @@ save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs - func_quote_for_eval "$flag" - func_append arg " $func_quote_for_eval_result" - func_append compiler_flags " $func_quote_for_eval_result" + func_quote_arg pretty "$flag" + func_append arg " $func_quote_arg_result" + func_append compiler_flags " $func_quote_arg_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" @@ -7319,16 +7507,21 @@ save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs - func_quote_for_eval "$flag" - func_append arg " $wl$func_quote_for_eval_result" - func_append compiler_flags " $wl$func_quote_for_eval_result" - func_append linker_flags " $func_quote_for_eval_result" + func_quote_arg pretty "$flag" + func_append arg " $wl$func_quote_arg_result" + func_append compiler_flags " $wl$func_quote_arg_result" + func_append linker_flags " $func_quote_arg_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; + -Xassembler) + prev=xassembler + continue + ;; + -Xcompiler) prev=xcompiler continue @@ -7346,8 +7539,8 @@ # -msg_* for osf cc -msg_*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result ;; # Flags to be passed through unchanged, with rationale: @@ -7370,12 +7563,13 @@ # -fuse-ld=* Linker select flags for GCC # -static-* direct GCC to link specific libraries statically # -fcilkplus Cilk Plus language extension features for C/C++ + # -Wa,* Pass flags directly to the assembler -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ - -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus|-Wa,*) + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" @@ -7396,15 +7590,15 @@ continue else # Otherwise treat like 'Some other compiler flag' below - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result fi ;; # Some other compiler flag. -* | +*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result ;; *.$objext) @@ -7524,8 +7718,8 @@ *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result ;; esac # arg @@ -8733,7 +8927,7 @@ test CXX = "$tagname" && { case $host_os in linux*) - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C++ 5.9 func_suncc_cstd_abi @@ -8906,7 +9100,7 @@ # case $version_type in # correct linux to gnu/linux during the next big refactor - darwin|freebsd-elf|linux|osf|windows|none) + darwin|freebsd-elf|linux|midnightbsd-elf|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor @@ -9000,7 +9194,7 @@ versuffix=.$current.$revision ;; - freebsd-elf) + freebsd-elf | midnightbsd-elf) func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision @@ -9226,7 +9420,7 @@ *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) @@ -10037,8 +10231,8 @@ for cmd in $concat_cmds; do IFS=$save_ifs $opt_quiet || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$cmd" + eval "func_echo $func_quote_arg_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? @@ -10131,8 +10325,8 @@ eval cmd=\"$cmd\" IFS=$save_ifs $opt_quiet || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$cmd" + eval "func_echo $func_quote_arg_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? @@ -10606,12 +10800,13 @@ elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + func_quote_arg pretty "$var_value" + relink_command="$var=$func_quote_arg_result; export $var; $relink_command" fi done - relink_command="(cd `pwd`; $relink_command)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + func_quote eval cd "`pwd`" + func_quote_arg pretty,unquoted "($func_quote_result; $relink_command)" + relink_command=$func_quote_arg_unquoted_result fi # Only actually do things if not in dry run mode. @@ -10851,13 +11046,15 @@ elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + func_quote_arg pretty,unquoted "$var_value" + relink_command="$var=$func_quote_arg_unquoted_result; export $var; $relink_command" fi done # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + func_quote eval cd "`pwd`" + relink_command="($func_quote_result; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + func_quote_arg pretty,unquoted "$relink_command" + relink_command=$func_quote_arg_unquoted_result if test yes = "$hardcode_automatic"; then relink_command= fi diff -Nru vlc-3.0.17.4/autotools/missing vlc-3.0.18/autotools/missing --- vlc-3.0.17.4/autotools/missing 2021-05-10 15:18:00.000000000 +0000 +++ vlc-3.0.18/autotools/missing 2022-08-03 11:11:43.000000000 +0000 @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2020 Free Software Foundation, Inc. +# Copyright (C) 1996-2021 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify diff -Nru vlc-3.0.17.4/autotools/test-driver vlc-3.0.18/autotools/test-driver --- vlc-3.0.17.4/autotools/test-driver 2021-05-10 15:18:06.000000000 +0000 +++ vlc-3.0.18/autotools/test-driver 2022-08-03 11:11:46.000000000 +0000 @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 2011-2020 Free Software Foundation, Inc. +# Copyright (C) 2011-2021 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -105,8 +105,11 @@ trap "st=141; $do_exit" 13 trap "st=143; $do_exit" 15 -# Test script is run here. -"$@" >$log_file 2>&1 +# Test script is run here. We create the file first, then append to it, +# to ameliorate tests themselves also writing to the log file. Our tests +# don't, but others can (automake bug#35762). +: >"$log_file" +"$@" >>"$log_file" 2>&1 estatus=$? if test $enable_hard_errors = no && test $estatus -eq 99; then @@ -128,7 +131,7 @@ # know whether the test passed or failed simply by looking at the '.log' # file, without the need of also peaking into the corresponding '.trs' # file (automake bug#11814). -echo "$res $test_name (exit status: $estatus)" >>$log_file +echo "$res $test_name (exit status: $estatus)" >>"$log_file" # Report outcome to console. echo "${col}${res}${std}: $test_name" diff -Nru vlc-3.0.17.4/autotools/ylwrap vlc-3.0.18/autotools/ylwrap --- vlc-3.0.17.4/autotools/ylwrap 2021-05-10 15:18:04.000000000 +0000 +++ vlc-3.0.18/autotools/ylwrap 2022-08-03 11:11:45.000000000 +0000 @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2020 Free Software Foundation, Inc. +# Copyright (C) 1996-2021 Free Software Foundation, Inc. # # Written by Tom Tromey . # diff -Nru vlc-3.0.17.4/bin/darwinvlc.m vlc-3.0.18/bin/darwinvlc.m --- vlc-3.0.17.4/bin/darwinvlc.m 2020-06-10 08:45:53.000000000 +0000 +++ vlc-3.0.18/bin/darwinvlc.m 2022-10-11 17:12:06.000000000 +0000 @@ -2,7 +2,7 @@ * darwinvlc.m: OS X specific main executable for VLC media player ***************************************************************************** * Copyright (C) 2013-2015 VLC authors and VideoLAN - * $Id: 022c559b44795227e118670d4ca89a2712aed934 $ + * $Id: 2972d36d4405830fc6449146d2968807bbf2e093 $ * * Authors: Felix Paul Kühne * David Fuhrmann @@ -27,6 +27,9 @@ #endif #include +#include +#include + #include #include #include @@ -251,21 +254,13 @@ language = (CFStringRef)CFPreferencesCopyAppValue(CFSTR("language"), kCFPreferencesCurrentApplication); if (language) { - CFIndex length = CFStringGetLength(language) + 1; - if (length > 0) { - CFIndex maxSize = CFStringGetMaximumSizeForEncoding(length, kCFStringEncodingUTF8); - lang = (char *)malloc(maxSize); - if(lang) { - CFStringGetCString(language, lang, maxSize - 1, kCFStringEncodingUTF8); - if (strncmp( lang, "auto", 4 )) { - char tmp[11]; - snprintf(tmp, 11, "LANG=%s", lang); - putenv(tmp); - - } - } - free(lang); + lang = FromCFString(language, kCFStringEncodingUTF8); + if (strncmp( lang, "auto", 4 )) { + char tmp[11]; + snprintf(tmp, 11, "LANG=%s", lang); + putenv(tmp); } + free(lang); CFRelease(language); } } diff -Nru vlc-3.0.17.4/bin/Makefile.in vlc-3.0.18/bin/Makefile.in --- vlc-3.0.17.4/bin/Makefile.in 2022-04-18 22:10:25.000000000 +0000 +++ vlc-3.0.18/bin/Makefile.in 2022-10-13 18:40:53.000000000 +0000 @@ -314,7 +314,6 @@ ALIASES = @ALIASES@ ALSA_CFLAGS = @ALSA_CFLAGS@ ALSA_LIBS = @ALSA_LIBS@ -ALTIVEC_CFLAGS = @ALTIVEC_CFLAGS@ AMTAR = @AMTAR@ AM_CPPFLAGS = $(CPPFLAGS_vlc) $(am__append_1) AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ @@ -371,7 +370,6 @@ CFLAGS_dav1d = @CFLAGS_dav1d@ CFLAGS_dc1394 = @CFLAGS_dc1394@ CFLAGS_dca = @CFLAGS_dca@ -CFLAGS_deinterlace = @CFLAGS_deinterlace@ CFLAGS_dsm = @CFLAGS_dsm@ CFLAGS_dv1394 = @CFLAGS_dv1394@ CFLAGS_dvdnav = @CFLAGS_dvdnav@ @@ -380,11 +378,11 @@ CFLAGS_flac = @CFLAGS_flac@ CFLAGS_fluidsynth = @CFLAGS_fluidsynth@ CFLAGS_gles2 = @CFLAGS_gles2@ +CFLAGS_gme = @CFLAGS_gme@ CFLAGS_goom = @CFLAGS_goom@ CFLAGS_kate = @CFLAGS_kate@ CFLAGS_libbluray = @CFLAGS_libbluray@ CFLAGS_libmpeg2 = @CFLAGS_libmpeg2@ -CFLAGS_libvlccore = @CFLAGS_libvlccore@ CFLAGS_microdns = @CFLAGS_microdns@ CFLAGS_mkv = @CFLAGS_mkv@ CFLAGS_mmal = @CFLAGS_mmal@ @@ -460,6 +458,7 @@ CPPFLAGS_flac = @CPPFLAGS_flac@ CPPFLAGS_fluidsynth = @CPPFLAGS_fluidsynth@ CPPFLAGS_gles2 = @CPPFLAGS_gles2@ +CPPFLAGS_gme = @CPPFLAGS_gme@ CPPFLAGS_goom = @CPPFLAGS_goom@ CPPFLAGS_kate = @CPPFLAGS_kate@ CPPFLAGS_libass = @CPPFLAGS_libass@ @@ -553,6 +552,7 @@ FDKAAC_CFLAGS = @FDKAAC_CFLAGS@ FDKAAC_LIBS = @FDKAAC_LIBS@ FGREP = @FGREP@ +FILECMD = @FILECMD@ FILE_LIBVLCCORE_DLL = @FILE_LIBVLCCORE_DLL@ FILE_LIBVLC_DLL = @FILE_LIBVLC_DLL@ FLAC_CFLAGS = @FLAC_CFLAGS@ @@ -576,6 +576,8 @@ GLES2_LIBS = @GLES2_LIBS@ GL_CFLAGS = @GL_CFLAGS@ GL_LIBS = @GL_LIBS@ +GME_CFLAGS = @GME_CFLAGS@ +GME_LIBS = @GME_LIBS@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNUGETOPT_LIBS = @GNUGETOPT_LIBS@ @@ -963,6 +965,8 @@ SMB2_LIBS = @SMB2_LIBS@ SMBCLIENT_CFLAGS = @SMBCLIENT_CFLAGS@ SMBCLIENT_LIBS = @SMBCLIENT_LIBS@ +SNDIO_CFLAGS = @SNDIO_CFLAGS@ +SNDIO_LIBS = @SNDIO_LIBS@ SOCKET_LIBS = @SOCKET_LIBS@ SOXR_CFLAGS = @SOXR_CFLAGS@ SOXR_LIBS = @SOXR_LIBS@ diff -Nru vlc-3.0.17.4/bin/winvlc.c vlc-3.0.18/bin/winvlc.c --- vlc-3.0.17.4/bin/winvlc.c 2018-08-17 08:48:31.000000000 +0000 +++ vlc-3.0.18/bin/winvlc.c 2022-08-24 17:42:00.000000000 +0000 @@ -70,8 +70,8 @@ BOOL (WINAPI * SetDefaultDllDirectoriesReal)(DWORD); - SetDefaultDllDirectoriesReal = GetProcAddress(h, - "SetDefaultDllDirectories"); + SetDefaultDllDirectoriesReal = (BOOL (WINAPI *)(DWORD)) + GetProcAddress(h, "SetDefaultDllDirectories"); if (SetDefaultDllDirectoriesReal == NULL) return FALSE; @@ -149,7 +149,9 @@ if (h_Kernel32 != NULL) { /* Enable DEP */ +#ifndef PROCESS_DEP_ENABLE # define PROCESS_DEP_ENABLE 1 +#endif /* PROCESS_DEP_ENABLE */ BOOL (WINAPI * mySetProcessDEPPolicy)( DWORD dwFlags); mySetProcessDEPPolicy = (BOOL (WINAPI *)(DWORD)) GetProcAddress(h_Kernel32, "SetProcessDEPPolicy"); diff -Nru vlc-3.0.17.4/compat/Makefile.in vlc-3.0.18/compat/Makefile.in --- vlc-3.0.17.4/compat/Makefile.in 2022-04-18 22:10:25.000000000 +0000 +++ vlc-3.0.18/compat/Makefile.in 2022-10-13 18:40:53.000000000 +0000 @@ -431,7 +431,6 @@ ALIASES = @ALIASES@ ALSA_CFLAGS = @ALSA_CFLAGS@ ALSA_LIBS = @ALSA_LIBS@ -ALTIVEC_CFLAGS = @ALTIVEC_CFLAGS@ AMTAR = @AMTAR@ AM_CPPFLAGS = @AM_CPPFLAGS@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ @@ -488,7 +487,6 @@ CFLAGS_dav1d = @CFLAGS_dav1d@ CFLAGS_dc1394 = @CFLAGS_dc1394@ CFLAGS_dca = @CFLAGS_dca@ -CFLAGS_deinterlace = @CFLAGS_deinterlace@ CFLAGS_dsm = @CFLAGS_dsm@ CFLAGS_dv1394 = @CFLAGS_dv1394@ CFLAGS_dvdnav = @CFLAGS_dvdnav@ @@ -497,11 +495,11 @@ CFLAGS_flac = @CFLAGS_flac@ CFLAGS_fluidsynth = @CFLAGS_fluidsynth@ CFLAGS_gles2 = @CFLAGS_gles2@ +CFLAGS_gme = @CFLAGS_gme@ CFLAGS_goom = @CFLAGS_goom@ CFLAGS_kate = @CFLAGS_kate@ CFLAGS_libbluray = @CFLAGS_libbluray@ CFLAGS_libmpeg2 = @CFLAGS_libmpeg2@ -CFLAGS_libvlccore = @CFLAGS_libvlccore@ CFLAGS_microdns = @CFLAGS_microdns@ CFLAGS_mkv = @CFLAGS_mkv@ CFLAGS_mmal = @CFLAGS_mmal@ @@ -577,6 +575,7 @@ CPPFLAGS_flac = @CPPFLAGS_flac@ CPPFLAGS_fluidsynth = @CPPFLAGS_fluidsynth@ CPPFLAGS_gles2 = @CPPFLAGS_gles2@ +CPPFLAGS_gme = @CPPFLAGS_gme@ CPPFLAGS_goom = @CPPFLAGS_goom@ CPPFLAGS_kate = @CPPFLAGS_kate@ CPPFLAGS_libass = @CPPFLAGS_libass@ @@ -670,6 +669,7 @@ FDKAAC_CFLAGS = @FDKAAC_CFLAGS@ FDKAAC_LIBS = @FDKAAC_LIBS@ FGREP = @FGREP@ +FILECMD = @FILECMD@ FILE_LIBVLCCORE_DLL = @FILE_LIBVLCCORE_DLL@ FILE_LIBVLC_DLL = @FILE_LIBVLC_DLL@ FLAC_CFLAGS = @FLAC_CFLAGS@ @@ -693,6 +693,8 @@ GLES2_LIBS = @GLES2_LIBS@ GL_CFLAGS = @GL_CFLAGS@ GL_LIBS = @GL_LIBS@ +GME_CFLAGS = @GME_CFLAGS@ +GME_LIBS = @GME_LIBS@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNUGETOPT_LIBS = @GNUGETOPT_LIBS@ @@ -1080,6 +1082,8 @@ SMB2_LIBS = @SMB2_LIBS@ SMBCLIENT_CFLAGS = @SMBCLIENT_CFLAGS@ SMBCLIENT_LIBS = @SMBCLIENT_LIBS@ +SNDIO_CFLAGS = @SNDIO_CFLAGS@ +SNDIO_LIBS = @SNDIO_LIBS@ SOCKET_LIBS = @SOCKET_LIBS@ SOXR_CFLAGS = @SOXR_CFLAGS@ SOXR_LIBS = @SOXR_LIBS@ diff -Nru vlc-3.0.17.4/config.h.in vlc-3.0.18/config.h.in --- vlc-3.0.17.4/config.h.in 2022-04-18 22:10:44.000000000 +0000 +++ vlc-3.0.18/config.h.in 2022-10-13 18:41:43.000000000 +0000 @@ -18,9 +18,6 @@ /* Define to 1 if AltiVec inline assembly is available. */ #undef CAN_COMPILE_ALTIVEC -/* Define to 1 if C AltiVec extensions are available. */ -#undef CAN_COMPILE_C_ALTIVEC - /* Define to 1 inline MMX assembly is available. */ #undef CAN_COMPILE_MMX diff -Nru vlc-3.0.17.4/configure vlc-3.0.18/configure --- vlc-3.0.17.4/configure 2022-04-18 22:10:30.000000000 +0000 +++ vlc-3.0.18/configure 2022-10-13 18:40:59.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for vlc 3.0.17.4. +# Generated by GNU Autoconf 2.71 for vlc 3.0.18. # # Copyright 1999-2022 VLC authors and VideoLAN # @@ -620,8 +620,8 @@ # Identity of this package. PACKAGE_NAME='vlc' PACKAGE_TARNAME='vlc' -PACKAGE_VERSION='3.0.17.4' -PACKAGE_STRING='vlc 3.0.17.4' +PACKAGE_VERSION='3.0.18' +PACKAGE_STRING='vlc 3.0.18' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -860,6 +860,8 @@ HAVE_WASAPI_TRUE HAVE_SNDIO_FALSE HAVE_SNDIO_TRUE +SNDIO_LIBS +SNDIO_CFLAGS HAVE_OSS_FALSE HAVE_OSS_TRUE OSS_LIBS @@ -1273,7 +1275,11 @@ LTLIBsid SID_LIBS SID_CFLAGS +GME_LIBS +GME_CFLAGS LIBS_gme +CFLAGS_gme +CPPFLAGS_gme LTLIBgme HAVE_DVBPSI_FALSE HAVE_DVBPSI_TRUE @@ -1417,9 +1423,6 @@ ENABLE_SOUT_TRUE HAVE_ALTIVEC_FALSE HAVE_ALTIVEC_TRUE -ALTIVEC_CFLAGS -CFLAGS_deinterlace -CFLAGS_libvlccore HAVE_ARM64_FALSE HAVE_ARM64_TRUE HAVE_NEON_FALSE @@ -1499,6 +1502,7 @@ RANLIB ac_ct_AR AR +FILECMD LN_S NM ac_ct_DUMPBIN @@ -1953,6 +1957,8 @@ ASDCP_LIBS DVBPSI_CFLAGS DVBPSI_LIBS +GME_CFLAGS +GME_LIBS SID_CFLAGS SID_LIBS OGG_CFLAGS @@ -2098,6 +2104,8 @@ PULSE_LIBS ALSA_CFLAGS ALSA_LIBS +SNDIO_CFLAGS +SNDIO_LIBS JACK_CFLAGS JACK_LIBS SAMPLERATE_CFLAGS @@ -2704,7 +2712,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures vlc 3.0.17.4 to adapt to many kinds of systems. +\`configure' configures vlc 3.0.18 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -2779,7 +2787,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of vlc 3.0.17.4:";; + short | recursive ) echo "Configuration of vlc 3.0.18:";; esac cat <<\_ACEOF @@ -2888,7 +2896,7 @@ --enable-asdcp build with asdcp support enabled [default=auto] Mux/Demux plugins: --enable-dvbpsi build with dvbpsi support enabled [default=auto] - --enable-gme use Game Music Emu (default auto) + --enable-gme Game Music Emu support (default auto) [default=auto] --enable-sid C64 sid demux support (default auto) --enable-ogg Ogg demux support [default=auto] --enable-shout libshout output plugin [default=auto] @@ -3153,6 +3161,8 @@ DVBPSI_CFLAGS C compiler flags for DVBPSI, overriding pkg-config DVBPSI_LIBS linker flags for DVBPSI, overriding pkg-config + GME_CFLAGS C compiler flags for GME, overriding pkg-config + GME_LIBS linker flags for GME, overriding pkg-config SID_CFLAGS C compiler flags for SID, overriding pkg-config SID_LIBS linker flags for SID, overriding pkg-config OGG_CFLAGS C compiler flags for OGG, overriding pkg-config @@ -3384,6 +3394,9 @@ PULSE_LIBS linker flags for PULSE, overriding pkg-config ALSA_CFLAGS C compiler flags for ALSA, overriding pkg-config ALSA_LIBS linker flags for ALSA, overriding pkg-config + SNDIO_CFLAGS + C compiler flags for SNDIO, overriding pkg-config + SNDIO_LIBS linker flags for SNDIO, overriding pkg-config JACK_CFLAGS C compiler flags for JACK, overriding pkg-config JACK_LIBS linker flags for JACK, overriding pkg-config SAMPLERATE_CFLAGS @@ -3538,7 +3551,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -vlc configure 3.0.17.4 +vlc configure 3.0.18 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -4201,7 +4214,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by vlc $as_me 3.0.17.4, which was +It was created by vlc $as_me 3.0.18, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -5177,8 +5190,8 @@ VERSION_MAJOR=3 VERSION_MINOR=0 -VERSION_REVISION=17 -VERSION_EXTRA=4 +VERSION_REVISION=18 +VERSION_EXTRA=0 VERSION_DEV= PKGDIR="vlc" @@ -5785,7 +5798,7 @@ # Define the identity of the package. PACKAGE='vlc' - VERSION='3.0.17.4' + VERSION='3.0.18' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -10983,8 +10996,8 @@ -macro_version='2.4.6' -macro_revision='2.4.6' +macro_version='2.4.7' +macro_revision='2.4.7' @@ -11395,13 +11408,13 @@ mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac - case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 @@ -11539,7 +11552,7 @@ fi fi - case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; @@ -11643,7 +11656,7 @@ lt_cv_sys_max_cmd_len=8192; ;; - bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` @@ -11686,7 +11699,7 @@ sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi @@ -11892,6 +11905,114 @@ if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}file", so it can be a program name with args. +set dummy ${ac_tool_prefix}file; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_FILECMD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$FILECMD"; then + ac_cv_prog_FILECMD="$FILECMD" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_FILECMD="${ac_tool_prefix}file" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +FILECMD=$ac_cv_prog_FILECMD +if test -n "$FILECMD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FILECMD" >&5 +printf "%s\n" "$FILECMD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_FILECMD"; then + ac_ct_FILECMD=$FILECMD + # Extract the first word of "file", so it can be a program name with args. +set dummy file; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_FILECMD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_FILECMD"; then + ac_cv_prog_ac_ct_FILECMD="$ac_ct_FILECMD" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_FILECMD="file" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_FILECMD=$ac_cv_prog_ac_ct_FILECMD +if test -n "$ac_ct_FILECMD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FILECMD" >&5 +printf "%s\n" "$ac_ct_FILECMD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_FILECMD" = x; then + FILECMD=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + FILECMD=$ac_ct_FILECMD + fi +else + FILECMD="$ac_cv_prog_FILECMD" +fi + + + + + + + +if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 @@ -12031,7 +12152,7 @@ bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_cmd='$FILECMD -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; @@ -12065,14 +12186,14 @@ lt_cv_deplibs_check_method=pass_all ;; -freebsd* | dragonfly*) +freebsd* | dragonfly* | midnightbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_cmd=$FILECMD lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac @@ -12086,7 +12207,7 @@ ;; hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_cmd=$FILECMD case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' @@ -12133,7 +12254,7 @@ newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_cmd=$FILECMD lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; @@ -12503,13 +12624,29 @@ fi : ${AR=ar} -: ${AR_FLAGS=cr} +# Use ARFLAGS variable as AR's operation code to sync the variable naming with +# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have +# higher priority because thats what people were doing historically (setting +# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS +# variable obsoleted/removed. + +test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} +lt_ar_flags=$AR_FLAGS + + + + + + +# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override +# by AR_FLAGS because that was never working and AR_FLAGS is about to die. + @@ -12926,7 +13063,7 @@ if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. - lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" @@ -12944,20 +13081,20 @@ # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +lt_cv_sys_global_symbol_to_cdecl="$SED -n"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ @@ -12981,7 +13118,7 @@ if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. - # Also find C++ and __fastcall symbols from MSVC++, + # Also find C++ and __fastcall symbols from MSVC++ or ICC, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ @@ -12999,9 +13136,9 @@ " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi - lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no @@ -13201,7 +13338,7 @@ fi ;; #( /*) - lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"` ;; #( no|'') ;; #( @@ -13326,7 +13463,7 @@ ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; @@ -13347,7 +13484,7 @@ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test yes = "$lt_cv_prog_gnu_ld"; then - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; @@ -13359,7 +13496,7 @@ ;; esac else - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; @@ -13385,7 +13522,7 @@ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then emul=elf - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; @@ -13393,7 +13530,7 @@ emul="${emul}64" ;; esac - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; @@ -13401,7 +13538,7 @@ emul="${emul}ltsmip" ;; esac - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; @@ -13425,14 +13562,14 @@ ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in + case `$FILECMD conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) - case `/usr/bin/file conftest.o` in + case `$FILECMD conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; @@ -13540,7 +13677,7 @@ ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in + case `$FILECMD conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) @@ -14323,8 +14460,8 @@ _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cr libconftest.a conftest.o" >&5 - $AR cr libconftest.a conftest.o 2>&5 + echo "$AR $AR_FLAGS libconftest.a conftest.o" >&5 + $AR $AR_FLAGS libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF @@ -14351,17 +14488,12 @@ _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[912]*) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; - 10.[012][,.]*) - _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - 10.*|11.*) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + darwin*) + case $MACOSX_DEPLOYMENT_TARGET,$host in + 10.[012],*|,*powerpc*-darwin[5-8]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + *) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac @@ -15055,8 +15187,8 @@ ofile=libtool can_build_shared=yes -# All known linkers require a '.a' archive for static linking (except MSVC, -# which needs '.lib'). +# All known linkers require a '.a' archive for static linking (except MSVC and +# ICC, which need '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld @@ -15574,7 +15706,7 @@ lt_prog_compiler_static='-qstaticlink' ;; *) - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' @@ -15997,15 +16129,15 @@ case $host_os in cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. + # Microsoft Visual C++ or Intel C++ Compiler. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) + # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) with_gnu_ld=yes ;; openbsd* | bitrig*) @@ -16060,7 +16192,7 @@ whole_archive_flag_spec= fi supports_anon_versioning=no - case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in + case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... @@ -16172,6 +16304,7 @@ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes + file_list_spec='@' ;; interix[3-9]*) @@ -16186,7 +16319,7 @@ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) @@ -16229,7 +16362,7 @@ compiler_needs_object=yes ;; esac - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes @@ -16241,13 +16374,14 @@ if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' export_dynamic_flag_spec='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) @@ -16257,7 +16391,7 @@ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi @@ -16389,7 +16523,7 @@ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no @@ -16660,12 +16794,12 @@ cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. + # Microsoft Visual C++ or Intel C++ Compiler. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in - cl*) - # Native MSVC + cl* | icl*) + # Native MSVC or ICC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes @@ -16706,7 +16840,7 @@ fi' ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. @@ -16747,8 +16881,8 @@ output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" - archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" - module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + archive_expsym_cmds="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" else ld_shlibs=no @@ -16782,7 +16916,7 @@ ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) + freebsd* | dragonfly* | midnightbsd*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes @@ -16963,6 +17097,7 @@ # Fabrice Bellard et al's Tiny C Compiler ld_shlibs=yes archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' ;; esac ;; @@ -17034,6 +17169,7 @@ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes + file_list_spec='@' ;; osf3*) @@ -17726,7 +17862,7 @@ case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; @@ -17736,14 +17872,14 @@ ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; - *,cl*) - # Native MSVC + *,cl* | *,icl*) + # Native MSVC or ICC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' @@ -17762,7 +17898,7 @@ done IFS=$lt_save_ifs # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form @@ -17799,7 +17935,7 @@ ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; @@ -17832,7 +17968,7 @@ shlibpath_var=LD_LIBRARY_PATH ;; -freebsd* | dragonfly*) +freebsd* | dragonfly* | midnightbsd*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then @@ -18997,30 +19133,41 @@ old_striplib= { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 printf %s "checking whether stripping libraries is possible... " >&6; } -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } +if test -z "$STRIP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP"; then + if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + case $host_os in + darwin*) + # FIXME - insert some real tests, host_os isn't really good enough striplib="$STRIP -x" old_striplib="$STRIP -S" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 + ;; + freebsd*) + if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - fi - ;; - *) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 + fi + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - ;; - esac + ;; + esac + fi fi @@ -19790,8 +19937,8 @@ cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in - ,cl* | no,cl*) - # Native MSVC + ,cl* | no,cl* | ,icl* | no,icl*) + # Native MSVC or ICC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_CXX=' ' @@ -19882,11 +20029,11 @@ output_verbose_link_cmd=func_echo_all archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" - archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" - module_expsym_cmds_CXX="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + archive_expsym_cmds_CXX="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds_CXX="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" if test yes != "$lt_cv_apple_cc_single_mod"; then archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" - archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" + archive_expsym_cmds_CXX="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" fi else @@ -19921,6 +20068,7 @@ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds_CXX='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes_CXX=yes + file_list_spec_CXX='@' ;; dgux*) @@ -19951,7 +20099,7 @@ archive_cmds_need_lc_CXX=no ;; - freebsd* | dragonfly*) + freebsd* | dragonfly* | midnightbsd*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes @@ -20088,7 +20236,7 @@ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds_CXX='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_CXX='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in @@ -20228,13 +20376,13 @@ archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi ;; *) - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' @@ -20891,7 +21039,7 @@ ;; esac ;; - freebsd* | dragonfly*) + freebsd* | dragonfly* | midnightbsd*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) @@ -20974,7 +21122,7 @@ lt_prog_compiler_static_CXX='-qstaticlink' ;; *) - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C++ 5.9 lt_prog_compiler_pic_CXX='-KPIC' @@ -21361,7 +21509,7 @@ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - export_symbols_cmds_CXX='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + export_symbols_cmds_CXX='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi ;; pw32*) @@ -21369,7 +21517,7 @@ ;; cygwin* | mingw* | cegcc*) case $cc_basename in - cl*) + cl* | icl*) exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) @@ -21720,7 +21868,7 @@ case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; mingw* | cegcc*) @@ -21729,14 +21877,14 @@ ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; - *,cl*) - # Native MSVC + *,cl* | *,icl*) + # Native MSVC or ICC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' @@ -21755,7 +21903,7 @@ done IFS=$lt_save_ifs # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form @@ -21792,7 +21940,7 @@ ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; @@ -21824,7 +21972,7 @@ shlibpath_var=LD_LIBRARY_PATH ;; -freebsd* | dragonfly*) +freebsd* | dragonfly* | midnightbsd*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then @@ -31505,7 +31653,6 @@ fi have_altivec="no" -ALTIVEC_CFLAGS="" if test "${enable_altivec}" = "yes" then : @@ -31578,19 +31725,6 @@ printf "%s\n" "#define CAN_COMPILE_ALTIVEC 1" >>confdefs.h - if test "${ac_cv_altivec_inline}" != "yes" -then : - - ALTIVEC_CFLAGS="${ac_cv_altivec_inline}" - - - eval "CFLAGS_libvlccore="'"$'"{CFLAGS_libvlccore} ${ac_cv_altivec_inline}"'"' - - - - -fi - have_altivec="yes" fi @@ -31649,23 +31783,6 @@ if test "${ac_cv_c_altivec}" != "no" then : - CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}" - -printf "%s\n" "#define CAN_COMPILE_C_ALTIVEC 1" >>confdefs.h - - - - eval "CFLAGS_libvlccore="'"$'"{CFLAGS_libvlccore} ${ac_cv_c_altivec}"'"' - - - - ALTIVEC_CFLAGS="$ALTIVEC_CFLAGS ${ac_cv_c_altivec}" - - - eval "CFLAGS_deinterlace="'"$'"{CFLAGS_deinterlace} ${ac_cv_c_altivec}"'"' - - - have_altivec="yes" fi @@ -31735,7 +31852,6 @@ fi fi - if test "$have_altivec" = "yes"; then HAVE_ALTIVEC_TRUE= HAVE_ALTIVEC_FALSE='#' @@ -35803,19 +35919,19 @@ yes) : pkg_failed=no -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dvdnav > 5.0.3" >&5 -printf %s "checking for dvdnav > 5.0.3... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dvdnav > 4.9.0" >&5 +printf %s "checking for dvdnav > 4.9.0... " >&6; } if test -n "$DVDNAV_CFLAGS"; then pkg_cv_DVDNAV_CFLAGS="$DVDNAV_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dvdnav > 5.0.3\""; } >&5 - ($PKG_CONFIG --exists --print-errors "dvdnav > 5.0.3") 2>&5 + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dvdnav > 4.9.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "dvdnav > 4.9.0") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_DVDNAV_CFLAGS=`$PKG_CONFIG --cflags "dvdnav > 5.0.3" 2>/dev/null` + pkg_cv_DVDNAV_CFLAGS=`$PKG_CONFIG --cflags "dvdnav > 4.9.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -35827,12 +35943,12 @@ pkg_cv_DVDNAV_LIBS="$DVDNAV_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dvdnav > 5.0.3\""; } >&5 - ($PKG_CONFIG --exists --print-errors "dvdnav > 5.0.3") 2>&5 + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dvdnav > 4.9.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "dvdnav > 4.9.0") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_DVDNAV_LIBS=`$PKG_CONFIG --libs "dvdnav > 5.0.3" 2>/dev/null` + pkg_cv_DVDNAV_LIBS=`$PKG_CONFIG --libs "dvdnav > 4.9.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -35853,19 +35969,19 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - DVDNAV_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "dvdnav > 5.0.3" 2>&1` + DVDNAV_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "dvdnav > 4.9.0" 2>&1` else - DVDNAV_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "dvdnav > 5.0.3" 2>&1` + DVDNAV_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "dvdnav > 4.9.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$DVDNAV_PKG_ERRORS" >&5 if test x"$enable_dvdnav" = "xyes" then : - as_fn_error $? "Library dvdnav > 5.0.3 needed for dvdnav was not found" "$LINENO" 5 + as_fn_error $? "Library dvdnav > 4.9.0 needed for dvdnav was not found" "$LINENO" 5 else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Library dvdnav > 5.0.3 needed for dvdnav was not found" >&5 -printf "%s\n" "$as_me: WARNING: Library dvdnav > 5.0.3 needed for dvdnav was not found" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Library dvdnav > 4.9.0 needed for dvdnav was not found" >&5 +printf "%s\n" "$as_me: WARNING: Library dvdnav > 4.9.0 needed for dvdnav was not found" >&2;} fi elif test $pkg_failed = untried; then @@ -35873,10 +35989,10 @@ printf "%s\n" "no" >&6; } if test x"$enable_dvdnav" = "xyes" then : - as_fn_error $? "Library dvdnav > 5.0.3 needed for dvdnav was not found" "$LINENO" 5 + as_fn_error $? "Library dvdnav > 4.9.0 needed for dvdnav was not found" "$LINENO" 5 else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Library dvdnav > 5.0.3 needed for dvdnav was not found" >&5 -printf "%s\n" "$as_me: WARNING: Library dvdnav > 5.0.3 needed for dvdnav was not found" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Library dvdnav > 4.9.0 needed for dvdnav was not found" >&5 +printf "%s\n" "$as_me: WARNING: Library dvdnav > 4.9.0 needed for dvdnav was not found" >&2;} fi else @@ -35905,19 +36021,19 @@ auto) : pkg_failed=no -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dvdnav > 5.0.3" >&5 -printf %s "checking for dvdnav > 5.0.3... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dvdnav > 4.9.0" >&5 +printf %s "checking for dvdnav > 4.9.0... " >&6; } if test -n "$DVDNAV_CFLAGS"; then pkg_cv_DVDNAV_CFLAGS="$DVDNAV_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dvdnav > 5.0.3\""; } >&5 - ($PKG_CONFIG --exists --print-errors "dvdnav > 5.0.3") 2>&5 + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dvdnav > 4.9.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "dvdnav > 4.9.0") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_DVDNAV_CFLAGS=`$PKG_CONFIG --cflags "dvdnav > 5.0.3" 2>/dev/null` + pkg_cv_DVDNAV_CFLAGS=`$PKG_CONFIG --cflags "dvdnav > 4.9.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -35929,12 +36045,12 @@ pkg_cv_DVDNAV_LIBS="$DVDNAV_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dvdnav > 5.0.3\""; } >&5 - ($PKG_CONFIG --exists --print-errors "dvdnav > 5.0.3") 2>&5 + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dvdnav > 4.9.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "dvdnav > 4.9.0") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_DVDNAV_LIBS=`$PKG_CONFIG --libs "dvdnav > 5.0.3" 2>/dev/null` + pkg_cv_DVDNAV_LIBS=`$PKG_CONFIG --libs "dvdnav > 4.9.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -35955,9 +36071,9 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - DVDNAV_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "dvdnav > 5.0.3" 2>&1` + DVDNAV_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "dvdnav > 4.9.0" 2>&1` else - DVDNAV_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "dvdnav > 5.0.3" 2>&1` + DVDNAV_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "dvdnav > 4.9.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$DVDNAV_PKG_ERRORS" >&5 @@ -35965,10 +36081,10 @@ enable_dvdnav=no if test x"$enable_dvdnav" = "xyes" then : - as_fn_error $? "Library dvdnav > 5.0.3 needed for dvdnav was not found" "$LINENO" 5 + as_fn_error $? "Library dvdnav > 4.9.0 needed for dvdnav was not found" "$LINENO" 5 else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Library dvdnav > 5.0.3 needed for dvdnav was not found" >&5 -printf "%s\n" "$as_me: WARNING: Library dvdnav > 5.0.3 needed for dvdnav was not found" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Library dvdnav > 4.9.0 needed for dvdnav was not found" >&5 +printf "%s\n" "$as_me: WARNING: Library dvdnav > 4.9.0 needed for dvdnav was not found" >&2;} fi elif test $pkg_failed = untried; then @@ -35977,10 +36093,10 @@ enable_dvdnav=no if test x"$enable_dvdnav" = "xyes" then : - as_fn_error $? "Library dvdnav > 5.0.3 needed for dvdnav was not found" "$LINENO" 5 + as_fn_error $? "Library dvdnav > 4.9.0 needed for dvdnav was not found" "$LINENO" 5 else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Library dvdnav > 5.0.3 needed for dvdnav was not found" >&5 -printf "%s\n" "$as_me: WARNING: Library dvdnav > 5.0.3 needed for dvdnav was not found" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Library dvdnav > 4.9.0 needed for dvdnav was not found" >&5 +printf "%s\n" "$as_me: WARNING: Library dvdnav > 4.9.0 needed for dvdnav was not found" >&2;} fi else @@ -39257,142 +39373,255 @@ + + + + + + + + + + + + + + + + # Check whether --enable-gme was given. if test ${enable_gme+y} then : enableval=$enable_gme; +else $as_nop + enable_gme=auto fi -if test "${enable_gme}" != "no" -then : - ac_fn_c_check_header_compile "$LINENO" "gme/gme.h" "ac_cv_header_gme_gme_h" "$ac_includes_default" -if test "x$ac_cv_header_gme_gme_h" = xyes -then : +case $enable_gme in #( + yes) : + +pkg_failed=no +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libgme" >&5 +printf %s "checking for libgme... " >&6; } + +if test -n "$GME_CFLAGS"; then + pkg_cv_GME_CFLAGS="$GME_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libgme\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libgme") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GME_CFLAGS=`$PKG_CONFIG --cflags "libgme" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$GME_LIBS"; then + pkg_cv_GME_LIBS="$GME_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libgme\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libgme") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GME_LIBS=`$PKG_CONFIG --libs "libgme" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gme_identify_header in -lgme" >&5 -printf %s "checking for gme_identify_header in -lgme... " >&6; } -if test ${ac_cv_lib_gme_gme_identify_header+y} +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GME_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libgme" 2>&1` + else + GME_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libgme" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$GME_PKG_ERRORS" >&5 + + if test x"$enable_gme" = "xyes" then : - printf %s "(cached) " >&6 + as_fn_error $? "Library libgme needed for gme was not found" "$LINENO" 5 else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgme $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Library libgme needed for gme was not found" >&5 +printf "%s\n" "$as_me: WARNING: Library libgme needed for gme was not found" >&2;} -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char gme_identify_header (); -int -main (void) -{ -return gme_identify_header (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" +fi +elif test $pkg_failed = untried; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + if test x"$enable_gme" = "xyes" then : - ac_cv_lib_gme_gme_identify_header=yes + as_fn_error $? "Library libgme needed for gme was not found" "$LINENO" 5 else $as_nop - ac_cv_lib_gme_gme_identify_header=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Library libgme needed for gme was not found" >&5 +printf "%s\n" "$as_me: WARNING: Library libgme needed for gme was not found" >&2;} + fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gme_gme_identify_header" >&5 -printf "%s\n" "$ac_cv_lib_gme_gme_identify_header" >&6; } -if test "x$ac_cv_lib_gme_gme_identify_header" = xyes -then : +else + GME_CFLAGS=$pkg_cv_GME_CFLAGS + GME_LIBS=$pkg_cv_GME_LIBS + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + LTLIBgme=libgme_plugin.la - LTLIBgme=libgme_plugin.la + eval "CFLAGS_gme="'"$'"{CFLAGS_gme} $GME_CFLAGS "'"' + + + + + + eval "LIBS_gme="'"'"$GME_LIBS "'$'"{LIBS_gme}"'"' + + + +fi ;; #( + auto) : + +pkg_failed=no +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libgme" >&5 +printf %s "checking for libgme... " >&6; } + +if test -n "$GME_CFLAGS"; then + pkg_cv_GME_CFLAGS="$GME_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libgme\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libgme") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GME_CFLAGS=`$PKG_CONFIG --cflags "libgme" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$GME_LIBS"; then + pkg_cv_GME_LIBS="$GME_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libgme\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libgme") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GME_LIBS=`$PKG_CONFIG --libs "libgme" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gme_identify_extension in -lgme" >&5 -printf %s "checking for gme_identify_extension in -lgme... " >&6; } -if test ${ac_cv_lib_gme_gme_identify_extension+y} + +if test $pkg_failed = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GME_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libgme" 2>&1` + else + GME_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libgme" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$GME_PKG_ERRORS" >&5 + + enable_gme=no + if test x"$enable_gme" = "xyes" then : - printf %s "(cached) " >&6 + as_fn_error $? "Library libgme needed for gme was not found" "$LINENO" 5 else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgme -lstdc++ $LIBM $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Library libgme needed for gme was not found" >&5 +printf "%s\n" "$as_me: WARNING: Library libgme needed for gme was not found" >&2;} -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char gme_identify_extension (); -int -main (void) -{ -return gme_identify_extension (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" +fi +elif test $pkg_failed = untried; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + enable_gme=no + if test x"$enable_gme" = "xyes" then : - ac_cv_lib_gme_gme_identify_extension=yes + as_fn_error $? "Library libgme needed for gme was not found" "$LINENO" 5 else $as_nop - ac_cv_lib_gme_gme_identify_extension=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Library libgme needed for gme was not found" >&5 +printf "%s\n" "$as_me: WARNING: Library libgme needed for gme was not found" >&2;} + fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gme_gme_identify_extension" >&5 -printf "%s\n" "$ac_cv_lib_gme_gme_identify_extension" >&6; } -if test "x$ac_cv_lib_gme_gme_identify_extension" = xyes -then : +else + GME_CFLAGS=$pkg_cv_GME_CFLAGS + GME_LIBS=$pkg_cv_GME_LIBS + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + enable_gme=yes + LTLIBgme=libgme_plugin.la - eval "LIBS_gme="'"'"-lstdc++ $LIBM "'$'"{LIBS_gme}"'"' - LTLIBgme=libgme_plugin.la + eval "CFLAGS_gme="'"$'"{CFLAGS_gme} $GME_CFLAGS "'"' -fi + eval "LIBS_gme="'"'"$GME_LIBS "'$'"{LIBS_gme}"'"' -fi +fi ;; #( + *) : + ;; +esac - eval "LIBS_gme="'"'"-lgme "'$'"{LIBS_gme}"'"' -else $as_nop - if test "x${enable_gme}" != "x" -then : - as_fn_error $? "GME cannot be found. Please install the development files." "$LINENO" 5 -fi -fi -fi # Check whether --enable-sid was given. @@ -54521,14 +54750,93 @@ if test "$enable_sndio" != "no" then : - ac_fn_c_check_header_compile "$LINENO" "sndio.h" "ac_cv_header_sndio_h" "$ac_includes_default" -if test "x$ac_cv_header_sndio_h" = xyes + +pkg_failed=no +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sndio" >&5 +printf %s "checking for sndio... " >&6; } + +if test -n "$SNDIO_CFLAGS"; then + pkg_cv_SNDIO_CFLAGS="$SNDIO_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndio\""; } >&5 + ($PKG_CONFIG --exists --print-errors "sndio") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SNDIO_CFLAGS=`$PKG_CONFIG --cflags "sndio" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$SNDIO_LIBS"; then + pkg_cv_SNDIO_LIBS="$SNDIO_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndio\""; } >&5 + ($PKG_CONFIG --exists --print-errors "sndio") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SNDIO_LIBS=`$PKG_CONFIG --libs "sndio" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SNDIO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "sndio" 2>&1` + else + SNDIO_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "sndio" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$SNDIO_PKG_ERRORS" >&5 + + + if test -n "$enable_sndio" then : - have_sndio="yes" + as_fn_error $? "${SNDIO_PKG_ERRORS}.)" "$LINENO" 5 + +fi + +elif test $pkg_failed = untried; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + + if test -n "$enable_sndio" +then : + + as_fn_error $? "${SNDIO_PKG_ERRORS}.)" "$LINENO" 5 fi +else + SNDIO_CFLAGS=$pkg_cv_SNDIO_CFLAGS + SNDIO_LIBS=$pkg_cv_SNDIO_LIBS + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + + have_sndio="yes" + +fi fi if test "${have_sndio}" = "yes"; then @@ -62358,7 +62666,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by vlc $as_me 3.0.17.4, which was +This file was extended by vlc $as_me 3.0.18, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -62426,7 +62734,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -vlc config.status 3.0.17.4 +vlc config.status 3.0.18 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" @@ -62592,12 +62900,14 @@ lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +FILECMD='`$ECHO "$FILECMD" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +lt_ar_flags='`$ECHO "$lt_ar_flags" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' @@ -62823,13 +63133,13 @@ lt_SP2NL \ lt_NL2SP \ reload_flag \ +FILECMD \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ sharedlib_from_linklib_cmd \ AR \ -AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ @@ -63886,6 +64196,9 @@ # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd +# A file(cmd) program that detects file types. +FILECMD=$lt_FILECMD + # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method @@ -63904,8 +64217,11 @@ # The archiver. AR=$lt_AR +# Flags to create an archive (by configure). +lt_ar_flags=$lt_ar_flags + # Flags to create an archive. -AR_FLAGS=$lt_AR_FLAGS +AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"} # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec @@ -64295,7 +64611,7 @@ # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" \ + $SED '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || diff -Nru vlc-3.0.17.4/configure.ac vlc-3.0.18/configure.ac --- vlc-3.0.17.4/configure.ac 2022-04-18 22:10:15.000000000 +0000 +++ vlc-3.0.18/configure.ac 2022-10-11 17:12:06.000000000 +0000 @@ -2,11 +2,11 @@ AC_COPYRIGHT([Copyright 1999-2022 VLC authors and VideoLAN]) -AC_INIT(vlc, 3.0.17.4) +AC_INIT(vlc, 3.0.18) VERSION_MAJOR=3 VERSION_MINOR=0 -VERSION_REVISION=17 -VERSION_EXTRA=4 +VERSION_REVISION=18 +VERSION_EXTRA=0 VERSION_DEV= PKGDIR="vlc" @@ -1578,7 +1578,6 @@ [enable_altivec=yes], [enable_altivec=no]) ]) have_altivec="no" -ALTIVEC_CFLAGS="" AS_IF([test "${enable_altivec}" = "yes"], [ ARCH="${ARCH} altivec"; VLC_SAVE_FLAGS @@ -1595,11 +1594,6 @@ AS_IF([test "${ac_cv_altivec_inline}" != "no"], [ AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, [Define to 1 if AltiVec inline assembly is available.]) - AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [ - ALTIVEC_CFLAGS="${ac_cv_altivec_inline}" - VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}]) - ]) - have_altivec="yes" ]) VLC_SAVE_FLAGS @@ -1616,11 +1610,6 @@ ]) VLC_RESTORE_FLAGS AS_IF([test "${ac_cv_c_altivec}" != "no"], [ - CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}" - AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.]) - VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}]) - ALTIVEC_CFLAGS="$ALTIVEC_CFLAGS ${ac_cv_c_altivec}" - VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec}]) have_altivec="yes" ]) AC_CHECK_HEADERS(altivec.h) @@ -1635,7 +1624,6 @@ VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib]) ]) ]) -AC_SUBST(ALTIVEC_CFLAGS) AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"]) dnl @@ -1880,7 +1868,7 @@ dnl dnl libdvdnav plugin dnl -PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav > 5.0.3], [DVD with navigation input module (dvdnav)], [auto]) +PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav > 4.9.0], [DVD with navigation input module (dvdnav)], [auto]) AS_IF([test "${enable_dvdnav}" != "no"], [ AC_MSG_CHECKING(for dvdnav_stream_cb in dvdnav/dvdnav.h) AC_EGREP_HEADER(dvdnav_stream_cb,dvdnav/dvdnav.h,[ @@ -2128,26 +2116,7 @@ dnl dnl GME demux plugin dnl -AC_ARG_ENABLE(gme, - [AS_HELP_STRING([--enable-gme], - [use Game Music Emu (default auto)])]) -AS_IF([test "${enable_gme}" != "no"], [ - AC_CHECK_HEADER([gme/gme.h], [ - AC_CHECK_LIB([gme], [gme_identify_header], [ - VLC_ADD_PLUGIN([gme]) - ], [ - AC_CHECK_LIB([gme], [gme_identify_extension], [ - VLC_ADD_LIBS([gme], [-lstdc++ $LIBM]) - VLC_ADD_PLUGIN([gme]) - ],, [-lstdc++ $LIBM]) - ]) - VLC_ADD_LIBS([gme], [-lgme]) - ], [ - AS_IF([test "x${enable_gme}" != "x"], [ - AC_MSG_ERROR([GME cannot be found. Please install the development files.]) - ]) - ]) -]) +PKG_ENABLE_MODULES_VLC([GME], [], [libgme], [Game Music Emu support (default auto)], [auto]) dnl @@ -3600,8 +3569,12 @@ ]) have_sndio="no" AS_IF([test "$enable_sndio" != "no"], [ - AC_CHECK_HEADER([sndio.h], [ + PKG_CHECK_MODULES([SNDIO], [sndio], [ have_sndio="yes" + ], [ + AS_IF([test -n "$enable_sndio"], [ + AC_MSG_ERROR([${SNDIO_PKG_ERRORS}.)]) + ]) ]) ]) AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"]) diff -Nru vlc-3.0.17.4/contrib/src/aom/rules.mak vlc-3.0.18/contrib/src/aom/rules.mak --- vlc-3.0.17.4/contrib/src/aom/rules.mak 2022-02-15 17:24:38.000000000 +0000 +++ vlc-3.0.18/contrib/src/aom/rules.mak 2022-10-13 18:40:37.000000000 +0000 @@ -1,23 +1,19 @@ # aom -AOM_VERSION := v3.1.1 -AOM_GITURL := https://aomedia.googlesource.com/aom/+archive/$(AOM_VERSION).tar.gz +AOM_VERSION := 3.5.0 +AOM_URL := https://storage.googleapis.com/aom-releases/libaom-$(AOM_VERSION).tar.gz PKGS += aom ifeq ($(call need_pkg,"aom"),) PKGS_FOUND += aom endif -$(TARBALLS)/aom-$(AOM_VERSION).tar.gz: - $(call download_pkg,$(AOM_GITURL),aom) +$(TARBALLS)/libaom-$(AOM_VERSION).tar.gz: + $(call download_pkg,$(AOM_URL),aom) -.sum-aom: aom-$(AOM_VERSION).tar.gz - $(warning $@ not implemented) - touch $@ - -aom: aom-$(AOM_VERSION).tar.gz .sum-aom - rm -Rf $(UNPACK_DIR) $@ - mkdir -p $(UNPACK_DIR) - tar xvzfo "$<" -C $(UNPACK_DIR) +.sum-aom: libaom-$(AOM_VERSION).tar.gz + +aom: libaom-$(AOM_VERSION).tar.gz .sum-aom + $(UNPACK) ifdef HAVE_ANDROID $(APPLY) $(SRC)/aom/aom-android-pthreads.patch $(APPLY) $(SRC)/aom/aom-android-cpufeatures.patch @@ -40,12 +36,10 @@ -DENABLE_DOCS=OFF \ -DENABLE_EXAMPLES=OFF \ -DENABLE_TOOLS=OFF \ - -DCONFIG_UNIT_TESTS=0 \ - -DENABLE_TESTS=OFF \ - -DCONFIG_INSTALL_BINS=0 \ - -DCONFIG_INSTALL_DOCS=0 \ - -DCONFIG_DEPENDENCY_TRACKING=0 \ - -DCONFIG_AV1_ENCODER=0 + -DENABLE_TESTS=OFF + +# The aom module only supports decoding in 3.0.x +AOM_CONF += -DCONFIG_AV1_ENCODER=0 ifndef HAVE_WIN32 AOM_CONF += -DCONFIG_PIC=1 diff -Nru vlc-3.0.17.4/contrib/src/aom/SHA512SUMS vlc-3.0.18/contrib/src/aom/SHA512SUMS --- vlc-3.0.17.4/contrib/src/aom/SHA512SUMS 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/aom/SHA512SUMS 2022-10-13 18:40:37.000000000 +0000 @@ -0,0 +1 @@ +370c529a84d54c95f05c5a3b3edadd1cca95eeccd5a6b5454e574211c6dd9bf5bd33ab67b43587c6de37688fe546ea9e16de0ab2d721e965143b7e8c85db6fd4 libaom-3.5.0.tar.gz diff -Nru vlc-3.0.17.4/contrib/src/asdcplib/rules.mak vlc-3.0.18/contrib/src/asdcplib/rules.mak --- vlc-3.0.17.4/contrib/src/asdcplib/rules.mak 2021-10-30 12:43:45.000000000 +0000 +++ vlc-3.0.18/contrib/src/asdcplib/rules.mak 2022-09-22 18:08:33.000000000 +0000 @@ -16,6 +16,8 @@ PKGS_FOUND += asdcplib endif +ASDCPLIB_CXXFLAGS := $(CXXFLAGS) -std=gnu++98 + $(TARBALLS)/asdcplib-$(ASDCPLIB_VERSION).tar.gz: $(call download_pkg,$(ASDCPLIB_URL),asdcplib) @@ -34,6 +36,6 @@ .asdcplib: asdcplib $(RECONF) - cd $< && $(HOSTVARS) ./configure $(HOSTCONF) --enable-freedist --enable-dev-headers --with-nettle=$(PREFIX) + cd $< && $(HOSTVARS) CXXFLAGS="$(ASDCPLIB_CXXFLAGS)" ./configure $(HOSTCONF) --enable-freedist --enable-dev-headers --with-nettle=$(PREFIX) cd $< && $(MAKE) install touch $@ diff -Nru vlc-3.0.17.4/contrib/src/ass/0001-configure-add-Core-Text-and-DirectWrite-to-Libs.priv.patch vlc-3.0.18/contrib/src/ass/0001-configure-add-Core-Text-and-DirectWrite-to-Libs.priv.patch --- vlc-3.0.17.4/contrib/src/ass/0001-configure-add-Core-Text-and-DirectWrite-to-Libs.priv.patch 2022-02-15 17:24:38.000000000 +0000 +++ vlc-3.0.18/contrib/src/ass/0001-configure-add-Core-Text-and-DirectWrite-to-Libs.priv.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,48 +0,0 @@ -From 643829edd8408ec37182a04040fe5a7bf54dccc3 Mon Sep 17 00:00:00 2001 -From: Oleg Oshmyan -Date: Sat, 18 Sep 2021 03:04:15 +0300 -Subject: [PATCH] configure: add Core Text and DirectWrite to Libs.private - -Fixes https://github.com/libass/libass/issues/211. ---- - configure.ac | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/configure.ac b/configure.ac -index 89d5eb0..6ae78a1 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -126,6 +126,7 @@ AS_IF([test "x$enable_coretext" != xno], [ - [[CTFontDescriptorCopyAttribute(NULL, kCTFontURLAttribute);]] - ) - ], [ -+ pkg_libs="$pkg_libs -framework ApplicationServices -framework CoreFoundation" - LIBS="$LIBS -framework ApplicationServices -framework CoreFoundation" - AC_DEFINE(CONFIG_CORETEXT, 1, [found CoreText in ApplicationServices framework]) - coretext=true -@@ -137,6 +138,7 @@ AS_IF([test "x$enable_coretext" != xno], [ - [[CTFontDescriptorCopyAttribute(NULL, kCTFontURLAttribute);]] - ) - ], [ -+ pkg_libs="$pkg_libs -framework CoreText -framework CoreFoundation" - LIBS="$LIBS -framework CoreText -framework CoreFoundation" - AC_DEFINE(CONFIG_CORETEXT, 1, [found CoreText framework]) - coretext=true -@@ -171,12 +173,14 @@ AS_IF([test "x$enable_directwrite" != xno], [ - ], [ - # WinRT/UWP/app build: GDI and LoadLibrary are - # unavailable, but DirectWrite is always present -+ pkg_libs="$pkg_libs -ldwrite" - LIBS="$LIBS -ldwrite" - AC_DEFINE(CONFIG_DIRECTWRITE, 1, [found DirectWrite (WinRT/UWP)]) - AC_MSG_RESULT([no]) - ], [ - # Win32/desktop build: GDI is always present; - # DirectWrite is optional but can be loaded via LoadLibrary -+ pkg_libs="$pkg_libs -lgdi32" - LIBS="$LIBS -lgdi32" - AC_DEFINE(CONFIG_DIRECTWRITE, 1, [found DirectWrite and GDI (Win32)]) - AC_MSG_RESULT([yes]) --- -2.34.1 - diff -Nru vlc-3.0.17.4/contrib/src/ass/ass-macosx.patch vlc-3.0.18/contrib/src/ass/ass-macosx.patch --- vlc-3.0.17.4/contrib/src/ass/ass-macosx.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/ass/ass-macosx.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ ---- libass-0.13.0/libass/ass_fontconfig.c.orig 2015-10-06 16:03:01.104710780 +0200 -+++ libass-0.13.0/libass/ass_fontconfig.c 2015-10-06 16:03:00.216719387 +0200 -@@ -282,6 +282,9 @@ - "file found, using fallback."); - FcConfigDestroy(fc->config); - fc->config = FcInitLoadConfig(); -+ FcConfigAppFontAddDir(fc->config, "~/Library/Fonts"); -+ FcConfigAppFontAddDir(fc->config, "/Library/Fonts"); -+ FcConfigAppFontAddDir(fc->config, "/Network/Library/Fonts"); - } - if (fc->config) - rc = FcConfigBuildFonts(fc->config); diff -Nru vlc-3.0.17.4/contrib/src/ass/rules.mak vlc-3.0.18/contrib/src/ass/rules.mak --- vlc-3.0.17.4/contrib/src/ass/rules.mak 2022-02-15 17:24:38.000000000 +0000 +++ vlc-3.0.18/contrib/src/ass/rules.mak 2022-05-24 20:36:20.000000000 +0000 @@ -1,5 +1,5 @@ # ASS -ASS_VERSION := 0.15.2 +ASS_VERSION := 0.16.0 ASS_URL := https://github.com/libass/libass/releases/download/$(ASS_VERSION)/libass-$(ASS_VERSION).tar.gz PKGS += ass @@ -41,9 +41,6 @@ libass: libass-$(ASS_VERSION).tar.gz .sum-ass $(UNPACK) - $(APPLY) $(SRC)/ass/ass-macosx.patch - $(APPLY) $(SRC)/ass/0001-configure-add-Core-Text-and-DirectWrite-to-Libs.priv.patch - $(UPDATE_AUTOCONFIG) $(MOVE) DEPS_ass = freetype2 $(DEPS_freetype2) fribidi iconv $(DEPS_iconv) @@ -54,7 +51,7 @@ ASS_CONF += --disable-fontconfig --disable-require-system-font-provider endif -ifneq ($(WITH_DWRITE), 0) +ifeq ($(WITH_DWRITE), 1) ASS_CONF += --enable-directwrite endif @@ -75,7 +72,6 @@ endif .ass: libass - $(RECONF) cd $< && $(HOSTVARS) CFLAGS="$(CFLAGS) $(ASS_CFLAGS)" ./configure $(HOSTCONF) $(ASS_CONF) cd $< && $(MAKE) $(call pkg_static,"libass.pc") diff -Nru vlc-3.0.17.4/contrib/src/ass/SHA512SUMS vlc-3.0.18/contrib/src/ass/SHA512SUMS --- vlc-3.0.17.4/contrib/src/ass/SHA512SUMS 2022-02-15 17:24:38.000000000 +0000 +++ vlc-3.0.18/contrib/src/ass/SHA512SUMS 2022-05-24 20:36:20.000000000 +0000 @@ -1 +1 @@ -3b8022ca500d4a9e19e9b7106e29d23d4bca20012619c829bc3e77437bcb3c7bd8364800f7daeb3f2d8400afc7bbcaab487c7b30c429d9aed70e37ce4cb265a2 libass-0.15.2.tar.gz +1d2fd02fb2669de7f38ecfa0fe79e3c89da93e09c3cf6bf7b7b811a4808a06fd702da27ba1d9223c9a8a943198e7961b06c808a07e17d6cc6ba2ce70fd802300 libass-0.16.0.tar.gz diff -Nru vlc-3.0.17.4/contrib/src/ass/use-topendir.patch vlc-3.0.18/contrib/src/ass/use-topendir.patch --- vlc-3.0.17.4/contrib/src/ass/use-topendir.patch 2022-02-15 17:24:38.000000000 +0000 +++ vlc-3.0.18/contrib/src/ass/use-topendir.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,93 +0,0 @@ ---- a/libass/ass_fontselect.c.orig 2021-09-11 23:27:04.000000000 +0200 -+++ b/libass/ass_fontselect.c 2021-12-29 17:18:47.535670604 +0100 -@@ -47,6 +47,9 @@ - #include "ass_font.h" - #include "ass_string.h" - -+#include -+#include -+ - #define ABS(x) ((x) < 0 ? -(x) : (x)) - #define MAX_FULLNAME 100 - -@@ -166,21 +169,55 @@ - .destroy_font = destroy_font_ft, - }; - -+#ifdef _WIN32 -+static inline char *FromWide (const wchar_t *wide) -+{ -+ size_t len = WideCharToMultiByte (CP_UTF8, 0, wide, -1, NULL, 0, NULL, NULL); -+ if (len == 0) -+ return NULL; -+ -+ char *out = (char *)malloc (len); -+ -+ if (out) -+ WideCharToMultiByte (CP_UTF8, 0, wide, -1, out, len, NULL, NULL); -+ return out; -+} -+ -+static inline wchar_t *ToWide (const char *utf8) -+{ -+ int len = MultiByteToWideChar (CP_UTF8, 0, utf8, -1, NULL, 0); -+ if (len == 0) -+ return NULL; -+ -+ wchar_t *out = (wchar_t *)malloc (len * sizeof (wchar_t)); -+ -+ if (out) -+ MultiByteToWideChar (CP_UTF8, 0, utf8, -1, out, len); -+ return out; -+} -+#endif -+ - static void load_fonts_from_dir(ASS_Library *library, const char *dir) - { -- DIR *d = opendir(dir); -+ wchar_t *dirw = ToWide(dir); -+ _TDIR *d = _topendir(dirw); -+ free(dirw); - if (!d) - return; - size_t dirlen = strlen(dir); - size_t namemax = 0; - char *namebuf = NULL; - while (1) { -- struct dirent *entry = readdir(d); -+ struct _tdirent *entry = _treaddir(d); - if (!entry) - break; -+ char* d_name = FromWide(entry->d_name); - if (entry->d_name[0] == '.') -+ { -+ free(d_name); - continue; -- size_t namelen = dirlen + strlen(entry->d_name) + 2u; -+ } -+ size_t namelen = dirlen + strlen(d_name) + 2u; - if (namelen < 2 || namelen - 2 < dirlen) - continue; - if (namelen > namemax) { -@@ -190,17 +227,18 @@ - else - continue; - } -- snprintf(namebuf, namemax, "%s/%s", dir, entry->d_name); -+ _snprintf(namebuf, namemax, "%s/%s", dir, d_name); - size_t bufsize = 0; - ass_msg(library, MSGL_INFO, "Loading font file '%s'", namebuf); - void *data = read_file(library, namebuf, &bufsize); - if (data) { -- ass_add_font(library, entry->d_name, data, bufsize); -+ ass_add_font(library, d_name, data, bufsize); - free(data); - } -+ free(d_name); - } - free(namebuf); -- closedir(d); -+ _tclosedir(d); - } - - /** diff -Nru vlc-3.0.17.4/contrib/src/bluray/rules.mak vlc-3.0.18/contrib/src/bluray/rules.mak --- vlc-3.0.17.4/contrib/src/bluray/rules.mak 2022-04-18 22:10:15.000000000 +0000 +++ vlc-3.0.18/contrib/src/bluray/rules.mak 2022-08-24 17:41:43.000000000 +0000 @@ -1,6 +1,6 @@ # LIBBLURAY -BLURAY_VERSION := 1.3.0 +BLURAY_VERSION := 1.3.2 BLURAY_URL := $(VIDEOLAN)/libbluray/$(BLURAY_VERSION)/libbluray-$(BLURAY_VERSION).tar.bz2 ifdef BUILD_DISCS diff -Nru vlc-3.0.17.4/contrib/src/bluray/SHA512SUMS vlc-3.0.18/contrib/src/bluray/SHA512SUMS --- vlc-3.0.17.4/contrib/src/bluray/SHA512SUMS 2022-04-18 22:10:15.000000000 +0000 +++ vlc-3.0.18/contrib/src/bluray/SHA512SUMS 2022-08-24 17:41:43.000000000 +0000 @@ -1 +1 @@ -3d5145e6fd7de099c07f937282112c7abb12a5590b7c0b965b00bddee3837ddfd1a30076aaa6d6278d07a5beee3856f602125983ae075ab30eceb6ac1bd9bcdc libbluray-1.3.0.tar.bz2 +6f2d3a984809db33a99d2fe3618370a3fda3ef1c417b725d3c2e1f24ff21495f95a6a5f78b30b2b26bab47865f68dd08c08e8a554809d3a5225956da712dc064 libbluray-1.3.2.tar.bz2 diff -Nru vlc-3.0.17.4/contrib/src/caca/caca-fix-pkgconfig.patch vlc-3.0.18/contrib/src/caca/caca-fix-pkgconfig.patch --- vlc-3.0.17.4/contrib/src/caca/caca-fix-pkgconfig.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/caca/caca-fix-pkgconfig.patch 2022-05-28 15:42:33.000000000 +0000 @@ -0,0 +1,11 @@ +diff -Naur libcaca-0.99.beta17.a/caca/caca.pc.in libcaca-0.99.beta17.b/caca/caca.pc.in +--- libcaca-0.99.beta17.a/caca/caca.pc.in 2009-11-17 16:58:37.000000000 +0100 ++++ libcaca-0.99.beta17.b/caca/caca.pc.in 2019-10-09 09:04:48.297412878 +0200 +@@ -9,5 +9,5 @@ + Requires: + Conflicts: + Libs: -L${libdir} -lcaca +-Libs.private: @ZLIB_LIBS@ +-Cflags: -I${includedir} ++Libs.private: @ZLIB_LIBS@ @CACA_LIBS@ ++Cflags: -DCACA_STATIC -I${includedir} diff -Nru vlc-3.0.17.4/contrib/src/caca/caca-osx-sdkofourchoice.patch vlc-3.0.18/contrib/src/caca/caca-osx-sdkofourchoice.patch --- vlc-3.0.17.4/contrib/src/caca/caca-osx-sdkofourchoice.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/caca/caca-osx-sdkofourchoice.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,39 +0,0 @@ ---- libcaca/configure.orig 2010-02-08 14:46:58.000000000 +0100 -+++ libcaca/configure 2010-08-09 17:46:59.000000000 +0200 -@@ -16785,33 +16785,9 @@ - done - - if test "${ac_cv_my_have_cocoa}" = "yes"; then -- case x${target} in -- xpowerpc*darwin*) -- # 10.3 needed to link with X11 -- MACOSX_SDK="${MACOSX_SDK:-/Developer/SDKs/MacOSX10.3.9.sdk}" -- GCC_VERSION="${GCC_VERSION:-3.3}" -- ARCH="${ARCH:--arch ppc}" -- MACOSX_SDK_CFLAGS="${MACOSX_SDK_CFLAGS:--nostdinc -isystem ${MACOSX_SDK}/usr/include/gcc/darwin/${GCC_VERSION} -isystem ${MACOSX_SDK}/usr/include}" -- MACOSX_SDK_CXXFLAGS="${MACOSX_SDK_CXXFLAGS:--nostdinc++ -I${MACOSX_SDK}/usr/include/gcc/darwin/${GCC_VERSION}/c++ -I${MACOSX_SDK}/usr/include/gcc/darwin/${GCC_VERSION}/c++/ppc-darwin -I${MACOSX_SDK}/usr/include/gcc/darwin/${GCC_VERSION}/c++/backward}" -- MACOSX_SDK_LDFLAGS="${MACOSX_SDK_LDFLAGS:--L${MACOSX_SDK}/usr/lib/gcc/darwin -L${MACOSX_SDK}/usr/lib/gcc/darwin/${GCC_VERSION} -L${MACOSX_SDK}/usr/lib}" -- ;; -- x*86_64*darwin*) -- MACOSX_SDK="${MACOSX_SDK:-/Developer/SDKs/MacOSX10.5.sdk}" -- GCC_VERSION="${GCC_VERSION:-4.0}" -- ARCH="${ARCH:--arch i386}" -- MACOSX_SDK_CFLAGS="${MACOSX_SDK_CFLAGS:--isysroot ${MACOSX_SDK}}" -- MACOSX_SDK_CXXFLAGS="${MACOSX_SDK_CXXFLAGS:-${MACOSX_SDK_CFLAGS}}" -- ;; -- x*86*darwin*) -- MACOSX_SDK="${MACOSX_SDK:-/Developer/SDKs/MacOSX10.6.sdk}" -- GCC_VERSION="${GCC_VERSION:-4.0}" -- ARCH="${ARCH:--arch i386}" -- MACOSX_SDK_CFLAGS="${MACOSX_SDK_CFLAGS:--isysroot ${MACOSX_SDK}}" -- MACOSX_SDK_CXXFLAGS="${MACOSX_SDK_CXXFLAGS:-${MACOSX_SDK_CFLAGS}}" -- ;; -- esac -- CC="${CC:-gcc-${GCC_VERSION}}" -- CXX="${CXX:-g++-${GCC_VERSION}}" -+ MACOSX_SDK=/Developer/SDKs/MacOSX10.5.sdk -+ MACOSX_SDK_CFLAGS="-isysroot ${MACOSX_SDK}" -+ MACOSX_SDK_CXXFLAGS="${MACOSX_SDK_CFLAGS}" - MACOSX_SDK_FRAMEWORKS="${MACOSX_SDK_FRAMEWORKS:--F${MACOSX_SDK}/System/Library/Frameworks}" - CPPFLAGS="${CPPFLAGS} ${ARCH} ${MACOSX_SDK_FRAMEWORKS}" - CFLAGS="${CFLAGS} ${MACOSX_SDK_CFLAGS}" diff -Nru vlc-3.0.17.4/contrib/src/caca/caca-win32-static.patch vlc-3.0.18/contrib/src/caca/caca-win32-static.patch --- vlc-3.0.17.4/contrib/src/caca/caca-win32-static.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/caca/caca-win32-static.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ ---- libcaca/caca/caca.h 2010-02-08 13:34:28.000000000 +0100 -+++ libcaca.new/caca/caca.h 2010-08-24 19:27:39.000000000 +0200 -@@ -31,7 +31,7 @@ - #if defined _DOXYGEN_SKIP_ME - #elif defined _WIN32 && defined __LIBCACA__ && defined DLL_EXPORT - # define __extern extern __declspec(dllexport) --#elif defined _WIN32 && !defined __LIBCACA__ -+#elif defined _WIN32 && !defined __LIBCACA__ && defined __NULL - # define __extern extern __declspec(dllimport) - #else - # define __extern extern diff -Nru vlc-3.0.17.4/contrib/src/caca/rules.mak vlc-3.0.18/contrib/src/caca/rules.mak --- vlc-3.0.17.4/contrib/src/caca/rules.mak 2021-01-17 20:31:01.000000000 +0000 +++ vlc-3.0.18/contrib/src/caca/rules.mak 2022-05-28 15:42:33.000000000 +0000 @@ -1,6 +1,6 @@ # CACA -CACA_VERSION := 0.99.beta17 -CACA_URL := http://caca.zoy.org/files/libcaca/libcaca-$(CACA_VERSION).tar.gz +CACA_VERSION := 0.99.beta20 +CACA_URL := https://github.com/cacalabs/libcaca/releases/download/v$(CACA_VERSION)/libcaca-$(CACA_VERSION).tar.gz ifndef HAVE_DARWIN_OS ifndef HAVE_LINUX # see VLC Trac 17251 @@ -8,7 +8,7 @@ endif endif -ifeq ($(call need_pkg,"caca >= 0.99.beta14"),) +ifeq ($(call need_pkg,"caca >= 0.99.beta19"),) PKGS_FOUND += caca endif @@ -20,23 +20,44 @@ caca: libcaca-$(CACA_VERSION).tar.gz .sum-caca $(UNPACK) $(APPLY) $(SRC)/caca/caca-fix-compilation-llvmgcc.patch - $(APPLY) $(SRC)/caca/caca-llvm-weak-alias.patch - $(APPLY) $(SRC)/caca/caca-osx-sdkofourchoice.patch - $(APPLY) $(SRC)/caca/caca-win32-static.patch + $(APPLY) $(SRC)/caca/caca-fix-pkgconfig.patch + $(call pkg_static,"caca/caca.pc.in") $(UPDATE_AUTOCONFIG) $(MOVE) mv caca/config.sub caca/config.guess caca/.auto CACA_CONF := \ + --disable-gl \ --disable-imlib2 \ --disable-doc \ + --disable-cppunit \ + --disable-zzuf \ --disable-ruby \ --disable-csharp \ --disable-cxx \ - --disable-java + --disable-java \ + --disable-python \ + --disable-cocoa \ + --disable-network \ + --disable-vga \ + --disable-imlib2 ifdef HAVE_MACOSX CACA_CONF += --disable-x11 endif +ifdef HAVE_WIN32 +CACA_CONF += --disable-ncurses \ + ac_cv_func_vsnprintf_s=yes \ + ac_cv_func_sprintf_s=yes +endif +ifdef HAVE_LINUX +CACA_CONF += --disable-ncurses +endif + +CACA_CONF += \ + MACOSX_SDK=$(MACOSX_SDK) \ + MACOSX_SDK_CFLAGS=" " \ + MACOSX_SDK_CXXFLAGS=" " \ + CPPFLAGS="$(CPPFLAGS) -DCACA_STATIC" .caca: caca cd $< && $(HOSTVARS) ./configure $(HOSTCONF) $(CACA_CONF) diff -Nru vlc-3.0.17.4/contrib/src/caca/SHA512SUMS vlc-3.0.18/contrib/src/caca/SHA512SUMS --- vlc-3.0.17.4/contrib/src/caca/SHA512SUMS 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/caca/SHA512SUMS 2022-05-28 15:42:33.000000000 +0000 @@ -1 +1 @@ -1d08a45a742cbda2c80810e753b49588cb9073ef545a1d47537745c4e62dc79748a25907903ffee58676d9aa5b75c5e0658666429cf028e10c09157d418c8d19 libcaca-0.99.beta17.tar.gz +ab03e6c7d17fd152b2d5e9161799531f5e87322e174cb9d25874700f5bc1acfaf8bc2736e733998dad906f793c5a0304740dd39eec04a5e4c3d181bb109b4f23 libcaca-0.99.beta20.tar.gz diff -Nru vlc-3.0.17.4/contrib/src/crystalhd/callback_proto.patch vlc-3.0.18/contrib/src/crystalhd/callback_proto.patch --- vlc-3.0.17.4/contrib/src/crystalhd/callback_proto.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/crystalhd/callback_proto.patch 2022-08-24 17:42:00.000000000 +0000 @@ -0,0 +1,29 @@ +--- libcrystalhd/bc_dts_defs.h.orig 2019-07-12 07:02:21.393012000 +0200 ++++ libcrystalhd/bc_dts_defs.h 2019-07-12 07:01:48.787781100 +0200 +@@ -439,6 +439,8 @@ enum DECODER_CAP_FLAGS + BC_DEC_FLAGS_M4P2 = 0x08, //MPEG-4 Part 2: Divx, Xvid etc. + }; + ++typedef struct _BC_DTS_PROC_OUT BC_DTS_PROC_OUT; ++ + #if defined(__KERNEL__) || defined(__LINUX_USER__) + typedef BC_STATUS (*dts_pout_callback)(void *shnd, U32 width,U32 height, U32 stride, void *pOut); + #else +@@ -449,7 +451,7 @@ typedef BC_STATUS (*dts_pout_callback)(v + //User Data + #define MAX_UD_SIZE 1792 //1920 - 128 + +-typedef struct _BC_DTS_PROC_OUT{ ++struct _BC_DTS_PROC_OUT{ + U8 *Ybuff; /* Caller Supplied buffer for Y data */ + U32 YbuffSz; /* Caller Supplied Y buffer size */ + U32 YBuffDoneSz; /* Transferred Y datasize */ +@@ -478,7 +480,7 @@ typedef struct _BC_DTS_PROC_OUT{ + U8 bRevertScramble; + U32 StrideSzUV; /* Caller supplied Stride Size for UV data */ + +-}BC_DTS_PROC_OUT; ++}; + + typedef struct _BC_DTS_STATUS { + U8 ReadyListCount; /* Number of frames in ready list (reported by driver) */ diff -Nru vlc-3.0.17.4/contrib/src/crystalhd/rules.mak vlc-3.0.18/contrib/src/crystalhd/rules.mak --- vlc-3.0.17.4/contrib/src/crystalhd/rules.mak 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/crystalhd/rules.mak 2022-08-24 17:42:00.000000000 +0000 @@ -13,10 +13,16 @@ .sum-crystalhd: $(CRYSTAL_SOURCES) -.crystalhd: $(CRYSTAL_SOURCES) .sum-crystalhd - mkdir -p -- "$(PREFIX)/include/libcrystalhd" - unzip -o $< -d "$(PREFIX)/include/libcrystalhd" +libcrystalhd: $(CRYSTAL_SOURCES) .sum-crystalhd + $(RM) -R $(UNPACK_DIR) && unzip -o $< -d $(UNPACK_DIR) + chmod -R u+w $(UNPACK_DIR) + $(APPLY) $(SRC)/crystalhd/callback_proto.patch ifdef HAVE_WIN32 # we want dlopening on win32 - rm -rf $(PREFIX)/include/libcrystalhd/bc_drv_if.h + rm -rf $(UNPACK_DIR)/bc_drv_if.h endif + $(MOVE) + +.crystalhd: libcrystalhd + rm -Rf "$(PREFIX)/include/libcrystalhd" + cp -R $< "$(PREFIX)/include" touch $@ diff -Nru vlc-3.0.17.4/contrib/src/dav1d/rules.mak vlc-3.0.18/contrib/src/dav1d/rules.mak --- vlc-3.0.17.4/contrib/src/dav1d/rules.mak 2022-02-15 17:24:38.000000000 +0000 +++ vlc-3.0.18/contrib/src/dav1d/rules.mak 2022-05-24 20:36:20.000000000 +0000 @@ -1,6 +1,6 @@ # libdav1d -DAV1D_VERSION := 0.9.2 +DAV1D_VERSION := 1.0.0 DAV1D_URL := $(VIDEOLAN)/dav1d/$(DAV1D_VERSION)/dav1d-$(DAV1D_VERSION).tar.xz PKGS += dav1d @@ -12,7 +12,7 @@ $(TARBALLS)/dav1d-$(DAV1D_VERSION).tar.xz: $(call download_pkg,$(DAV1D_URL),dav1d) - #~ $(call download_git,$(DAV1D_URL),,$(DAV1D_HASH)) +# $(call download_git,$(DAV1D_GITURL),,$(DAV1D_HASH)) .sum-dav1d: dav1d-$(DAV1D_VERSION).tar.xz diff -Nru vlc-3.0.17.4/contrib/src/dav1d/SHA512SUMS vlc-3.0.18/contrib/src/dav1d/SHA512SUMS --- vlc-3.0.17.4/contrib/src/dav1d/SHA512SUMS 2022-02-15 17:24:38.000000000 +0000 +++ vlc-3.0.18/contrib/src/dav1d/SHA512SUMS 2022-05-24 20:36:20.000000000 +0000 @@ -1 +1 @@ -87026f8b14e408ff50fc8f137ec2ede4b14c5f69687e615d2359d0f718ae5cb5176522490786d9ae1f7838182f82615c2674f7c2961b6dcec83f1ee587c3af7c dav1d-0.9.2.tar.xz +a3a7e162e45181449cd42af3a4d36669a850a4ee9ab17641dcd63d84406444566e8ebc7caa55b0620ab581039f36d19a90218a40f52ebbe525b37ed9493fb3f3 dav1d-1.0.0.tar.xz diff -Nru vlc-3.0.17.4/contrib/src/dvdread/0001-ifo_types-avoid-forcing-a-higher-length-in-bitfield-.patch vlc-3.0.18/contrib/src/dvdread/0001-ifo_types-avoid-forcing-a-higher-length-in-bitfield-.patch --- vlc-3.0.17.4/contrib/src/dvdread/0001-ifo_types-avoid-forcing-a-higher-length-in-bitfield-.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/dvdread/0001-ifo_types-avoid-forcing-a-higher-length-in-bitfield-.patch 2022-08-24 17:42:00.000000000 +0000 @@ -0,0 +1,206 @@ +From c5c04a5b323e6390a8de91ca8dfd0e3aeacf1528 Mon Sep 17 00:00:00 2001 +From: Steve Lhomme +Date: Thu, 18 Aug 2022 14:44:33 +0200 +Subject: [PATCH] ifo_types: avoid forcing a higher length in bitfield + structures + +LLVM ends up using the size of an unsigned int if it's used in the bitfield. +In other places the bitfields are using unsigned char which always uses the +proper size in the packed structures. + +* multichannel_ext_t would end up having a size of 27 instead of 24 +* cell_playback_t would end up having a size of 26 instead of 24 +* pgci_srp_t would end up having a size of 11 instead of 8 +* playback_type_t would end up having a size of 4 instead of 1 +--- + src/dvdread/ifo_types.h | 146 ++++++++++++++++++++-------------------- + 1 file changed, 73 insertions(+), 73 deletions(-) + +diff --git a/src/dvdread/ifo_types.h b/src/dvdread/ifo_types.h +index fca1b8b..9293ce7 100644 +--- a/src/dvdread/ifo_types.h ++++ b/src/dvdread/ifo_types.h +@@ -132,29 +132,29 @@ typedef struct { + * MultiChannel Extension + */ + typedef struct { +- unsigned int zero1 : 7; +- unsigned int ach0_gme : 1; +- +- unsigned int zero2 : 7; +- unsigned int ach1_gme : 1; +- +- unsigned int zero3 : 4; +- unsigned int ach2_gv1e : 1; +- unsigned int ach2_gv2e : 1; +- unsigned int ach2_gm1e : 1; +- unsigned int ach2_gm2e : 1; +- +- unsigned int zero4 : 4; +- unsigned int ach3_gv1e : 1; +- unsigned int ach3_gv2e : 1; +- unsigned int ach3_gmAe : 1; +- unsigned int ach3_se2e : 1; +- +- unsigned int zero5 : 4; +- unsigned int ach4_gv1e : 1; +- unsigned int ach4_gv2e : 1; +- unsigned int ach4_gmBe : 1; +- unsigned int ach4_seBe : 1; ++ unsigned char zero1 : 7; ++ unsigned char ach0_gme : 1; ++ ++ unsigned char zero2 : 7; ++ unsigned char ach1_gme : 1; ++ ++ unsigned char zero3 : 4; ++ unsigned char ach2_gv1e : 1; ++ unsigned char ach2_gv2e : 1; ++ unsigned char ach2_gm1e : 1; ++ unsigned char ach2_gm2e : 1; ++ ++ unsigned char zero4 : 4; ++ unsigned char ach3_gv1e : 1; ++ unsigned char ach3_gv2e : 1; ++ unsigned char ach3_gmAe : 1; ++ unsigned char ach3_se2e : 1; ++ ++ unsigned char zero5 : 4; ++ unsigned char ach4_gv1e : 1; ++ unsigned char ach4_gv2e : 1; ++ unsigned char ach4_gmBe : 1; ++ unsigned char ach4_seBe : 1; + uint8_t zero6[19]; + } ATTRIBUTE_PACKED multichannel_ext_t; + +@@ -207,16 +207,16 @@ typedef uint8_t pgc_program_map_t; + * Cell Playback Information. + */ + typedef struct { +- unsigned int block_mode : 2; +- unsigned int block_type : 2; +- unsigned int seamless_play : 1; +- unsigned int interleaved : 1; +- unsigned int stc_discontinuity: 1; +- unsigned int seamless_angle : 1; +- unsigned int zero_1 : 1; +- unsigned int playback_mode : 1; /**< When set, enter StillMode after each VOBU */ +- unsigned int restricted : 1; /**< ?? drop out of fastforward? */ +- unsigned int cell_type : 5; /** for karaoke, reserved otherwise */ ++ unsigned char block_mode : 2; ++ unsigned char block_type : 2; ++ unsigned char seamless_play : 1; ++ unsigned char interleaved : 1; ++ unsigned char stc_discontinuity: 1; ++ unsigned char seamless_angle : 1; ++ unsigned char zero_1 : 1; ++ unsigned char playback_mode : 1; /**< When set, enter StillMode after each VOBU */ ++ unsigned char restricted : 1; /**< ?? drop out of fastforward? */ ++ unsigned char cell_type : 5; /** for karaoke, reserved otherwise */ + uint8_t still_time; + uint8_t cell_cmd_nr; + dvd_time_t playback_time; +@@ -247,35 +247,35 @@ typedef struct { + * User Operations. + */ + typedef struct { +- unsigned int zero : 7; /* 25-31 */ +- unsigned int video_pres_mode_change : 1; /* 24 */ +- +- unsigned int karaoke_audio_pres_mode_change : 1; /* 23 */ +- unsigned int angle_change : 1; +- unsigned int subpic_stream_change : 1; +- unsigned int audio_stream_change : 1; +- unsigned int pause_on : 1; +- unsigned int still_off : 1; +- unsigned int button_select_or_activate : 1; +- unsigned int resume : 1; /* 16 */ +- +- unsigned int chapter_menu_call : 1; /* 15 */ +- unsigned int angle_menu_call : 1; +- unsigned int audio_menu_call : 1; +- unsigned int subpic_menu_call : 1; +- unsigned int root_menu_call : 1; +- unsigned int title_menu_call : 1; +- unsigned int backward_scan : 1; +- unsigned int forward_scan : 1; /* 8 */ +- +- unsigned int next_pg_search : 1; /* 7 */ +- unsigned int prev_or_top_pg_search : 1; +- unsigned int time_or_chapter_search : 1; +- unsigned int go_up : 1; +- unsigned int stop : 1; +- unsigned int title_play : 1; +- unsigned int chapter_search_or_play : 1; +- unsigned int title_or_time_play : 1; /* 0 */ ++ unsigned char zero : 7; /* 25-31 */ ++ unsigned char video_pres_mode_change : 1; /* 24 */ ++ ++ unsigned char karaoke_audio_pres_mode_change : 1; /* 23 */ ++ unsigned char angle_change : 1; ++ unsigned char subpic_stream_change : 1; ++ unsigned char audio_stream_change : 1; ++ unsigned char pause_on : 1; ++ unsigned char still_off : 1; ++ unsigned char button_select_or_activate : 1; ++ unsigned char resume : 1; /* 16 */ ++ ++ unsigned char chapter_menu_call : 1; /* 15 */ ++ unsigned char angle_menu_call : 1; ++ unsigned char audio_menu_call : 1; ++ unsigned char subpic_menu_call : 1; ++ unsigned char root_menu_call : 1; ++ unsigned char title_menu_call : 1; ++ unsigned char backward_scan : 1; ++ unsigned char forward_scan : 1; /* 8 */ ++ ++ unsigned char next_pg_search : 1; /* 7 */ ++ unsigned char prev_or_top_pg_search : 1; ++ unsigned char time_or_chapter_search : 1; ++ unsigned char go_up : 1; ++ unsigned char stop : 1; ++ unsigned char title_play : 1; ++ unsigned char chapter_search_or_play : 1; ++ unsigned char title_or_time_play : 1; /* 0 */ + } ATTRIBUTE_PACKED user_ops_t; + + /** +@@ -312,9 +312,9 @@ typedef struct { + */ + typedef struct { + uint8_t entry_id; +- unsigned int block_mode : 2; +- unsigned int block_type : 2; +- unsigned int zero_1 : 4; ++ unsigned char block_mode : 2; ++ unsigned char block_type : 2; ++ unsigned char zero_1 : 4; + uint16_t ptl_id_mask; + uint32_t pgc_start_byte; + pgc_t *pgc; +@@ -440,14 +440,14 @@ typedef struct { + } ATTRIBUTE_PACKED vmgi_mat_t; + + typedef struct { +- unsigned int zero_1 : 1; +- unsigned int multi_or_random_pgc_title : 1; /* 0: one sequential pgc title */ +- unsigned int jlc_exists_in_cell_cmd : 1; +- unsigned int jlc_exists_in_prepost_cmd : 1; +- unsigned int jlc_exists_in_button_cmd : 1; +- unsigned int jlc_exists_in_tt_dom : 1; +- unsigned int chapter_search_or_play : 1; /* UOP 1 */ +- unsigned int title_or_time_play : 1; /* UOP 0 */ ++ unsigned char zero_1 : 1; ++ unsigned char multi_or_random_pgc_title : 1; /* 0: one sequential pgc title */ ++ unsigned char jlc_exists_in_cell_cmd : 1; ++ unsigned char jlc_exists_in_prepost_cmd : 1; ++ unsigned char jlc_exists_in_button_cmd : 1; ++ unsigned char jlc_exists_in_tt_dom : 1; ++ unsigned char chapter_search_or_play : 1; /* UOP 1 */ ++ unsigned char title_or_time_play : 1; /* UOP 0 */ + } ATTRIBUTE_PACKED playback_type_t; + + /** +-- +2.27.0.windows.1 + diff -Nru vlc-3.0.17.4/contrib/src/dvdread/0001-nav_types-make-btin_t-not-packed.patch vlc-3.0.18/contrib/src/dvdread/0001-nav_types-make-btin_t-not-packed.patch --- vlc-3.0.17.4/contrib/src/dvdread/0001-nav_types-make-btin_t-not-packed.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/dvdread/0001-nav_types-make-btin_t-not-packed.patch 2022-09-22 18:08:33.000000000 +0000 @@ -0,0 +1,32 @@ +From 76a4ad6d6bd2ceea14328004048bb07fbc8e65c5 Mon Sep 17 00:00:00 2001 +From: Steve Lhomme +Date: Mon, 22 Aug 2022 09:21:05 +0200 +Subject: [PATCH 1/2] nav_types: make btin_t not packed + +The use of bitfields of 10 bits makes the use of `unsigned char` impossible. +That means the compiler might use more bits than expected for the 4*12 bits. +This is the case with MS-compatible compilers. We cannot guarantee that the +btin_t will use the same 10 octets as used in the binary blob. + +In the end btin_t is not read as a packed structure but bit by bit in +navRead_PCI(). +--- + src/dvdread/nav_types.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/dvdread/nav_types.h b/src/dvdread/nav_types.h +index f6a500f..e9d0efd 100644 +--- a/src/dvdread/nav_types.h ++++ b/src/dvdread/nav_types.h +@@ -133,7 +133,7 @@ typedef struct { + unsigned int zero6 : 2; /**< reserved */ + unsigned int right : 6; /**< button index when pressing right */ + vm_cmd_t cmd; +-} ATTRIBUTE_PACKED btni_t; ++} btni_t; + + /** + * Highlight Information +-- +2.27.0.windows.1 + diff -Nru vlc-3.0.17.4/contrib/src/dvdread/0002-nav_types-make-hli_t-and-pci_t-not-packed.patch vlc-3.0.18/contrib/src/dvdread/0002-nav_types-make-hli_t-and-pci_t-not-packed.patch --- vlc-3.0.17.4/contrib/src/dvdread/0002-nav_types-make-hli_t-and-pci_t-not-packed.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/dvdread/0002-nav_types-make-hli_t-and-pci_t-not-packed.patch 2022-09-22 18:08:33.000000000 +0000 @@ -0,0 +1,38 @@ +From a5702da22dc74a272251e647f9f87434a81d09c4 Mon Sep 17 00:00:00 2001 +From: Steve Lhomme +Date: Mon, 22 Aug 2022 09:22:49 +0200 +Subject: [PATCH 2/2] nav_types: make hli_t and pci_t not packed + +They depends on the packing of btni_t. Since btni_t is no longer packed, they +cannot be packed anymore. + +This is not a problem as they are read bit by bit in navRead_PCI(). +--- + src/dvdread/nav_types.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/dvdread/nav_types.h b/src/dvdread/nav_types.h +index e9d0efd..6139e5e 100644 +--- a/src/dvdread/nav_types.h ++++ b/src/dvdread/nav_types.h +@@ -142,7 +142,7 @@ typedef struct { + hl_gi_t hl_gi; + btn_colit_t btn_colit; + btni_t btnit[36]; +-} ATTRIBUTE_PACKED hli_t; ++} hli_t; + + /** + * PCI packet +@@ -152,7 +152,7 @@ typedef struct { + nsml_agli_t nsml_agli; + hli_t hli; + uint8_t zero1[189]; +-} ATTRIBUTE_PACKED pci_t; ++} pci_t; + + + +-- +2.27.0.windows.1 + diff -Nru vlc-3.0.17.4/contrib/src/dvdread/rules.mak vlc-3.0.18/contrib/src/dvdread/rules.mak --- vlc-3.0.17.4/contrib/src/dvdread/rules.mak 2021-04-18 13:17:51.000000000 +0000 +++ vlc-3.0.18/contrib/src/dvdread/rules.mak 2022-09-22 18:08:33.000000000 +0000 @@ -1,5 +1,5 @@ # DVDREAD -LIBDVDREAD_VERSION := 6.1.2 +LIBDVDREAD_VERSION := 6.1.3 LIBDVDREAD_URL := $(VIDEOLAN)/libdvdread/$(LIBDVDREAD_VERSION)/libdvdread-$(LIBDVDREAD_VERSION).tar.bz2 ifdef BUILD_DISCS @@ -18,6 +18,9 @@ dvdread: libdvdread-$(LIBDVDREAD_VERSION).tar.bz2 .sum-dvdread $(UNPACK) + $(APPLY) $(SRC)/dvdread/0001-ifo_types-avoid-forcing-a-higher-length-in-bitfield-.patch + $(APPLY) $(SRC)/dvdread/0001-nav_types-make-btin_t-not-packed.patch + $(APPLY) $(SRC)/dvdread/0002-nav_types-make-hli_t-and-pci_t-not-packed.patch $(call pkg_static,"misc/dvdread.pc.in") $(MOVE) diff -Nru vlc-3.0.17.4/contrib/src/dvdread/SHA512SUMS vlc-3.0.18/contrib/src/dvdread/SHA512SUMS --- vlc-3.0.17.4/contrib/src/dvdread/SHA512SUMS 2021-04-18 13:17:51.000000000 +0000 +++ vlc-3.0.18/contrib/src/dvdread/SHA512SUMS 2022-05-31 16:10:59.000000000 +0000 @@ -1 +1 @@ -5cbee11ec701b7625d71184fd712de48a129f235b08797b499d0f5b06a1c73bfec1d0e52e897585017ab63b1d81b042257eab5ab1f19fb340b05b3e8d794f86c libdvdread-6.1.2.tar.bz2 +c98055829ccbbe2bb7b5df48f6e279cf6e91ecab39a35c37081581452f7df7531c1d7b8abd641c55eeee357235b2658b31478dbc307995cffdf8c011bd0dd0bc libdvdread-6.1.3.tar.bz2 diff -Nru vlc-3.0.17.4/contrib/src/dxvahd/dxvahd.idl vlc-3.0.18/contrib/src/dxvahd/dxvahd.idl --- vlc-3.0.17.4/contrib/src/dxvahd/dxvahd.idl 2022-04-18 22:10:15.000000000 +0000 +++ vlc-3.0.18/contrib/src/dxvahd/dxvahd.idl 1970-01-01 00:00:00.000000000 +0000 @@ -1,423 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -cpp_quote("#include ") -cpp_quote("") -cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") -cpp_quote("") -cpp_quote("#if (_WIN32_WINNT >= 0x0601)") - -import "unknwn.idl"; - -cpp_quote("#if 0") -interface IDirect3DSurface9; -interface IDirect3DDevice9Ex; -typedef DWORD D3DFORMAT; -typedef DWORD D3DPOOL; -typedef struct { char dummy; } D3DCOLOR; -cpp_quote("#endif") - -interface IDXVAHD_Device; -interface IDXVAHD_VideoProcessor; - -typedef enum _DXVAHD_ALPHA_FILL_MODE { - DXVAHD_ALPHA_FILL_MODE_OPAQUE = 0, - DXVAHD_ALPHA_FILL_MODE_BACKGROUND = 1, - DXVAHD_ALPHA_FILL_MODE_DESTINATION = 2, - DXVAHD_ALPHA_FILL_MODE_SOURCE_STREAM = 3 -} DXVAHD_ALPHA_FILL_MODE; - -typedef struct _DXVAHD_COLOR_YCbCrA { - FLOAT Y; - FLOAT Cb; - FLOAT Cr; - FLOAT A; -} DXVAHD_COLOR_YCbCrA; - -typedef struct _DXVAHD_COLOR_RGBA { - FLOAT R; - FLOAT G; - FLOAT B; - FLOAT A; -} DXVAHD_COLOR_RGBA; - -typedef union _DXVAHD_COLOR { - DXVAHD_COLOR_RGBA RGB; - DXVAHD_COLOR_YCbCrA YCbCr; -} DXVAHD_COLOR; - -typedef struct _DXVAHD_BLT_STATE_BACKGROUND_COLOR_DATA { - WINBOOL YCbCr; - DXVAHD_COLOR BackgroundColor; -} DXVAHD_BLT_STATE_BACKGROUND_COLOR_DATA; - -typedef enum _DXVAHD_BLT_STATE { - DXVAHD_BLT_STATE_TARGET_RECT = 0, - DXVAHD_BLT_STATE_BACKGROUND_COLOR = 1, - DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE = 2, - DXVAHD_BLT_STATE_ALPHA_FILL = 3, - DXVAHD_BLT_STATE_CONSTRICTION = 4, - DXVAHD_BLT_STATE_PRIVATE = 1000 -} DXVAHD_BLT_STATE; - -typedef enum _DXVAHD_DEVICE_CAPS { - DXVAHD_DEVICE_CAPS_LINEAR_SPACE = 0x1, - DXVAHD_DEVICE_CAPS_xvYCC = 0x2, - DXVAHD_DEVICE_CAPS_RGB_RANGE_CONVERSION = 0x4, - DXVAHD_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION = 0x8 -} DXVAHD_DEVICE_CAPS; - -typedef enum _DXVAHD_DEVICE_TYPE { - DXVAHD_DEVICE_TYPE_HARDWARE = 0, - DXVAHD_DEVICE_TYPE_SOFTWARE = 1, - DXVAHD_DEVICE_TYPE_REFERENCE = 2, - DXVAHD_DEVICE_TYPE_OTHER = 3 -} DXVAHD_DEVICE_TYPE; - -typedef enum _DXVAHD_DEVICE_USAGE { - DXVAHD_DEVICE_USAGE_PLAYBACK_NORMAL = 0, - DXVAHD_DEVICE_USAGE_OPTIMAL_SPEED = 1, - DXVAHD_DEVICE_USAGE_OPTIMAL_QUALITY = 2 -} DXVAHD_DEVICE_USAGE; - - -typedef enum _DXVAHD_FEATURE_CAPS { - DXVAHD_FEATURE_CAPS_ALPHA_FILL = 0x1, - DXVAHD_FEATURE_CAPS_CONSTRICTION = 0x2, - DXVAHD_FEATURE_CAPS_LUMA_KEY = 0x4, - DXVAHD_FEATURE_CAPS_ALPHA_PALETTE = 0x8 -} DXVAHD_FEATURE_CAPS; - -typedef enum _DXVAHD_FILTER { - DXVAHD_FILTER_BRIGHTNESS = 0, - DXVAHD_FILTER_CONTRAST = 1, - DXVAHD_FILTER_HUE = 2, - DXVAHD_FILTER_SATURATION = 3, - DXVAHD_FILTER_NOISE_REDUCTION = 4, - DXVAHD_FILTER_EDGE_ENHANCEMENT = 5, - DXVAHD_FILTER_ANAMORPHIC_SCALING = 6 -} DXVAHD_FILTER; - -typedef enum _DXVAHD_FILTER_CAPS { - DXVAHD_FILTER_CAPS_BRIGHTNESS = 0x1, - DXVAHD_FILTER_CAPS_CONTRAST = 0x2, - DXVAHD_FILTER_CAPS_HUE = 0x4, - DXVAHD_FILTER_CAPS_SATURATION = 0x8, - DXVAHD_FILTER_CAPS_NOISE_REDUCTION = 0x10, - DXVAHD_FILTER_CAPS_EDGE_ENHANCEMENT = 0x20, - DXVAHD_FILTER_CAPS_ANAMORPHIC_SCALING = 0x40 -} DXVAHD_FILTER_CAPS; - -typedef enum _DXVAHD_FRAME_FORMAT { - DXVAHD_FRAME_FORMAT_PROGRESSIVE = 0, - DXVAHD_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST = 1, - DXVAHD_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST = 2 -} DXVAHD_FRAME_FORMAT; - -typedef enum _DXVAHD_INPUT_FORMAT_CAPS { - DXVAHD_INPUT_FORMAT_CAPS_RGB_INTERLACED = 0x1, - DXVAHD_INPUT_FORMAT_CAPS_RGB_PROCAMP = 0x2, - DXVAHD_INPUT_FORMAT_CAPS_RGB_LUMA_KEY = 0x4, - DXVAHD_INPUT_FORMAT_CAPS_PALETTE_INTERLACED = 0x8 -} DXVAHD_INPUT_FORMAT_CAPS; - -typedef enum _DXVAHD_ITELECINE_CAPS { - DXVAHD_ITELECINE_CAPS_32 = 0x1, - DXVAHD_ITELECINE_CAPS_22 = 0x2, - DXVAHD_ITELECINE_CAPS_2224 = 0x4, - DXVAHD_ITELECINE_CAPS_2332 = 0x8, - DXVAHD_ITELECINE_CAPS_32322 = 0x10, - DXVAHD_ITELECINE_CAPS_55 = 0x20, - DXVAHD_ITELECINE_CAPS_64 = 0x40, - DXVAHD_ITELECINE_CAPS_87 = 0x80, - DXVAHD_ITELECINE_CAPS_222222222223 = 0x100, - DXVAHD_ITELECINE_CAPS_OTHER = 0x80000000 -} DXVAHD_ITELECINE_CAPS; - -typedef enum _DXVAHD_OUTPUT_RATE { - DXVAHD_OUTPUT_RATE_NORMAL = 0, - DXVAHD_OUTPUT_RATE_HALF = 1, - DXVAHD_OUTPUT_RATE_CUSTOM = 2 -} DXVAHD_OUTPUT_RATE; - -typedef enum _DXVAHD_PROCESSOR_CAPS { - DXVAHD_PROCESSOR_CAPS_DEINTERLACE_BLEND = 0x1, - DXVAHD_PROCESSOR_CAPS_DEINTERLACE_BOB = 0x2, - DXVAHD_PROCESSOR_CAPS_DEINTERLACE_ADAPTIVE = 0x4, - DXVAHD_PROCESSOR_CAPS_DEINTERLACE_MOTION_COMPENSATION = 0x8, - DXVAHD_PROCESSOR_CAPS_INVERSE_TELECINE = 0x10, - DXVAHD_PROCESSOR_CAPS_FRAME_RATE_CONVERSION = 0x20 -} DXVAHD_PROCESSOR_CAPS; - -typedef enum _DXVAHD_STREAM_STATE { - DXVAHD_STREAM_STATE_D3DFORMAT = 0, - DXVAHD_STREAM_STATE_FRAME_FORMAT = 1, - DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE = 2, - DXVAHD_STREAM_STATE_OUTPUT_RATE = 3, - DXVAHD_STREAM_STATE_SOURCE_RECT = 4, - DXVAHD_STREAM_STATE_DESTINATION_RECT = 5, - DXVAHD_STREAM_STATE_ALPHA = 6, - DXVAHD_STREAM_STATE_PALETTE = 7, - DXVAHD_STREAM_STATE_LUMA_KEY = 8, - DXVAHD_STREAM_STATE_ASPECT_RATIO = 9, - DXVAHD_STREAM_STATE_FILTER_BRIGHTNESS = 100, - DXVAHD_STREAM_STATE_FILTER_CONTRAST = 101, - DXVAHD_STREAM_STATE_FILTER_HUE = 102, - DXVAHD_STREAM_STATE_FILTER_SATURATION = 103, - DXVAHD_STREAM_STATE_FILTER_NOISE_REDUCTION = 104, - DXVAHD_STREAM_STATE_FILTER_EDGE_ENHANCEMENT = 105, - DXVAHD_STREAM_STATE_FILTER_ANAMORPHIC_SCALING = 106, - DXVAHD_STREAM_STATE_PRIVATE = 1000 -} DXVAHD_STREAM_STATE; - -typedef enum _DXVAHD_SURFACE_TYPE { - DXVAHD_SURFACE_TYPE_VIDEO_INPUT = 0, - DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE = 1, - DXVAHD_SURFACE_TYPE_VIDEO_OUTPUT = 2 -} DXVAHD_SURFACE_TYPE; - -typedef struct _DXVAHD_VPDEVCAPS { - DXVAHD_DEVICE_TYPE DeviceType; - UINT DeviceCaps; - UINT FeatureCaps; - UINT FilterCaps; - UINT InputFormatCaps; - D3DPOOL InputPool; - UINT OutputFormatCount; - UINT InputFormatCount; - UINT VideoProcessorCount; - UINT MaxInputStreams; - UINT MaxStreamStates; -} DXVAHD_VPDEVCAPS; - -typedef struct _DXVAHD_BLT_STATE_ALPHA_FILL_DATA { - DXVAHD_ALPHA_FILL_MODE Mode; - UINT StreamNumber; -} DXVAHD_BLT_STATE_ALPHA_FILL_DATA; - -typedef struct _DXVAHD_BLT_STATE_CONSTRICTION_DATA { - WINBOOL Enable; - SIZE Size; -} DXVAHD_BLT_STATE_CONSTRICTION_DATA; - -typedef struct _DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA { - UINT Usage :1; - UINT RGB_Range :1; - UINT YCbCr_Matrix :1; - UINT YCbCr_xvYCC :1; -} DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA; - -typedef struct _DXVAHD_BLT_STATE_PRIVATE_DATA { - GUID Guid; - UINT DataSize; - void *pData; -} DXVAHD_BLT_STATE_PRIVATE_DATA; - -typedef struct _DXVAHD_BLT_STATE_TARGET_RECT_DATA { - WINBOOL Enable; - RECT TargetRect; -} DXVAHD_BLT_STATE_TARGET_RECT_DATA; - -typedef struct _DXVAHD_RATIONAL { - UINT Numerator; - UINT Denominator; -} DXVAHD_RATIONAL; - -typedef struct _DXVAHD_CONTENT_DESC { - DXVAHD_FRAME_FORMAT InputFrameFormat; - DXVAHD_RATIONAL InputFrameRate; - UINT InputWidth; - UINT InputHeight; - DXVAHD_RATIONAL OutputFrameRate; - UINT OutputWidth; - UINT OutputHeight; -} DXVAHD_CONTENT_DESC; - -typedef struct _DXVAHD_CUSTOM_RATE_DATA { - DXVAHD_RATIONAL CustomRate; - UINT OutputFrames; - WINBOOL InputInterlaced; - UINT InputFramesOrFields; -} DXVAHD_CUSTOM_RATE_DATA; - -typedef struct _DXVAHD_FILTER_RANGE_DATA { - INT Minimum; - INT Maximum; - INT Default; - FLOAT Multiplier; -} DXVAHD_FILTER_RANGE_DATA; - -typedef struct _DXVAHD_STREAM_DATA { - WINBOOL Enable; - UINT OutputIndex; - UINT InputFrameOrField; - UINT PastFrames; - UINT FutureFrames; - IDirect3DSurface9 **ppPastSurfaces; - IDirect3DSurface9 *pInputSurface; - IDirect3DSurface9 **ppFutureSurfaces; -} DXVAHD_STREAM_DATA; - -typedef struct _DXVAHD_VPCAPS { - GUID VPGuid; - UINT PastFrames; - UINT FutureFrames; - UINT ProcessorCaps; - UINT ITelecineCaps; - UINT CustomRateCount; -} DXVAHD_VPCAPS; - -typedef struct _DXVAHD_STREAM_STATE_ALPHA_DATA { - WINBOOL Enable; - FLOAT Alpha; -} DXVAHD_STREAM_STATE_ALPHA_DATA; - -typedef struct _DXVAHD_STREAM_STATE_ASPECT_RATIO_DATA { - WINBOOL Enable; - DXVAHD_RATIONAL SourceAspectRatio; - DXVAHD_RATIONAL DestinationAspectRatio; -} DXVAHD_STREAM_STATE_ASPECT_RATIO_DATA; - -typedef struct _DXVAHD_STREAM_STATE_D3DFORMAT_DATA { - D3DFORMAT Format; -} DXVAHD_STREAM_STATE_D3DFORMAT_DATA; - -typedef struct _DXVAHD_STREAM_STATE_DESTINATION_RECT_DATA { - WINBOOL Enable; - RECT DestinationRect; -} DXVAHD_STREAM_STATE_DESTINATION_RECT_DATA; - -typedef struct _DXVAHD_STREAM_STATE_FILTER_DATA { - WINBOOL Enable; - INT Level; -} DXVAHD_STREAM_STATE_FILTER_DATA; - -typedef struct _DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA { - DXVAHD_FRAME_FORMAT FrameFormat; -} DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA; - -typedef struct _DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA { - UINT Type :1; - UINT RGB_Range :1; - UINT YCbCr_Matrix :1; - UINT YCbCr_xvYCC :1; -} DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA; - -typedef struct _DXVAHD_STREAM_STATE_LUMA_KEY_DATA { - WINBOOL Enable; - FLOAT Lower; - FLOAT Upper; -} DXVAHD_STREAM_STATE_LUMA_KEY_DATA; - -typedef struct _DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA { - WINBOOL RepeatFrame; - DXVAHD_OUTPUT_RATE OutputRate; - DXVAHD_RATIONAL CustomRate; -} DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA; - -typedef struct _DXVAHD_STREAM_STATE_SOURCE_RECT_DATA { - WINBOOL Enable; - RECT SourceRect; -} DXVAHD_STREAM_STATE_SOURCE_RECT_DATA; - -typedef struct _DXVAHD_STREAM_STATE_PRIVATE_IVTC_DATA { - WINBOOL Enable; - UINT ITelecineFlags; - UINT Frames; - UINT InputField; -} DXVAHD_STREAM_STATE_PRIVATE_IVTC_DATA; - -typedef struct _DXVAHD_STREAM_STATE_PRIVATE_DATA { - GUID Guid; - UINT DataSize; - void *pData; -} DXVAHD_STREAM_STATE_PRIVATE_DATA; - -typedef struct _DXVAHD_STREAM_STATE_PALETTE_DATA { - UINT Count; - D3DCOLOR *pEntries; -} DXVAHD_STREAM_STATE_PALETTE_DATA; - -cpp_quote("typedef HRESULT ( STDMETHODCALLTYPE *PDXVAHDSW_CreateDevice )(IDirect3DDevice9Ex *pD3DDevice,HANDLE *phDevice);") -cpp_quote("typedef HRESULT ( STDMETHODCALLTYPE *PDXVAHDSW_ProposeVideoPrivateFormat )(HANDLE hDevice,D3DFORMAT *pFormat);") -cpp_quote("typedef HRESULT ( STDMETHODCALLTYPE *PDXVAHDSW_GetVideoProcessorDeviceCaps )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,DXVAHD_VPDEVCAPS *pCaps);") -cpp_quote("typedef HRESULT ( STDMETHODCALLTYPE *PDXVAHDSW_GetVideoProcessorOutputFormats )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,UINT Count,D3DFORMAT *pFormats);") -cpp_quote("typedef HRESULT ( STDMETHODCALLTYPE *PDXVAHDSW_GetVideoProcessorInputFormats )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,UINT Count,D3DFORMAT *pFormats);") -cpp_quote("typedef HRESULT ( STDMETHODCALLTYPE *PDXVAHDSW_GetVideoProcessorCaps )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,UINT Count,DXVAHD_VPCAPS *pCaps);") -cpp_quote("typedef HRESULT ( STDMETHODCALLTYPE *PDXVAHDSW_GetVideoProcessorCustomRates )(HANDLE hDevice,const GUID *pVPGuid,UINT Count,DXVAHD_CUSTOM_RATE_DATA *pRates);") -cpp_quote("typedef HRESULT ( STDMETHODCALLTYPE *PDXVAHDSW_SetVideoProcessBltState )(HANDLE hVideoProcessor,DXVAHD_BLT_STATE State,UINT DataSize,const void *pData);") -cpp_quote("typedef HRESULT ( STDMETHODCALLTYPE *PDXVAHDSW_CreateVideoProcessor )(HANDLE hDevice,const GUID *pVPGuid,HANDLE *phVideoProcessor);") -cpp_quote("typedef HRESULT ( STDMETHODCALLTYPE *PDXVAHDSW_DestroyDevice )(HANDLE hDevice);") -cpp_quote("typedef HRESULT ( STDMETHODCALLTYPE *PDXVAHDSW_GetVideoProcessorFilterRange )(HANDLE hDevice,DXVAHD_FILTER Filter,DXVAHD_FILTER_RANGE_DATA *pRange);") -cpp_quote("typedef HRESULT ( STDMETHODCALLTYPE *PDXVAHDSW_DestroyVideoProcessor )(HANDLE hVideoProcessor);") -cpp_quote("typedef HRESULT ( STDMETHODCALLTYPE *PDXVAHDSW_VideoProcessBltHD )(HANDLE hVideoProcessor,IDirect3DSurface9 *pOutputSurface,UINT OutputFrame,UINT StreamCount,const DXVAHD_STREAM_DATA *pStreams);") -cpp_quote("typedef HRESULT ( STDMETHODCALLTYPE *PDXVAHDSW_GetVideoProcessStreamStatePrivate )(HANDLE hVideoProcessor,UINT StreamNumber,DXVAHD_STREAM_STATE_PRIVATE_DATA *pData);") -cpp_quote("typedef HRESULT ( STDMETHODCALLTYPE *PDXVAHDSW_SetVideoProcessStreamState )(HANDLE hVideoProcessor,UINT StreamNumber,DXVAHD_STREAM_STATE State,UINT DataSize,const void *pData);") -cpp_quote("typedef HRESULT ( STDMETHODCALLTYPE *PDXVAHDSW_GetVideoProcessBltStatePrivate )(HANDLE hVideoProcessor,DXVAHD_BLT_STATE_PRIVATE_DATA *pData);") -cpp_quote("typedef HRESULT ( STDMETHODCALLTYPE *PDXVAHDSW_Plugin )(UINT Size,void *pCallbacks);") -cpp_quote("") -cpp_quote("typedef struct _DXVAHDSW_CALLBACKS {") -cpp_quote(" PDXVAHDSW_CreateDevice CreateDevice;") -cpp_quote(" PDXVAHDSW_ProposeVideoPrivateFormat ProposeVideoPrivateFormat;") -cpp_quote(" PDXVAHDSW_GetVideoProcessorDeviceCaps GetVideoProcessorDeviceCaps;") -cpp_quote(" PDXVAHDSW_GetVideoProcessorOutputFormats GetVideoProcessorOutputFormats;") -cpp_quote(" PDXVAHDSW_GetVideoProcessorInputFormats GetVideoProcessorInputFormats;") -cpp_quote(" PDXVAHDSW_GetVideoProcessorCaps GetVideoProcessorCaps;") -cpp_quote(" PDXVAHDSW_GetVideoProcessorCustomRates GetVideoProcessorCustomRates;") -cpp_quote(" PDXVAHDSW_GetVideoProcessorFilterRange GetVideoProcessorFilterRange;") -cpp_quote(" PDXVAHDSW_DestroyDevice DestroyDevice;") -cpp_quote(" PDXVAHDSW_CreateVideoProcessor CreateVideoProcessor;") -cpp_quote(" PDXVAHDSW_SetVideoProcessBltState SetVideoProcessBltState;") -cpp_quote(" PDXVAHDSW_GetVideoProcessBltStatePrivate GetVideoProcessBltStatePrivate;") -cpp_quote(" PDXVAHDSW_SetVideoProcessStreamState SetVideoProcessStreamState;") -cpp_quote(" PDXVAHDSW_GetVideoProcessStreamStatePrivate GetVideoProcessStreamStatePrivate;") -cpp_quote(" PDXVAHDSW_VideoProcessBltHD VideoProcessBltHD;") -cpp_quote(" PDXVAHDSW_DestroyVideoProcessor DestroyVideoProcessor;") -cpp_quote("} DXVAHDSW_CALLBACKS;") -cpp_quote("") -cpp_quote("HRESULT DXVAHD_CreateDevice(IDirect3DDevice9Ex *pD3DDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,PDXVAHDSW_Plugin pPlugin,IDXVAHD_Device **ppDevice);") -cpp_quote("") -cpp_quote("#ifdef __GNUC__") -cpp_quote("#warning COM interfaces layout in this header has not been verified.") -cpp_quote("#warning COM interfaces with incorrect layout may not work at all.") -cpp_quote("__MINGW_BROKEN_INTERFACE(INTERFACE)") -cpp_quote("#endif") -[ - object, - local -] -interface IDXVAHD_Device : IUnknown -{ - HRESULT CreateVideoSurface(UINT Width,UINT Height,D3DFORMAT Format,D3DPOOL Pool,DWORD Usage,DXVAHD_SURFACE_TYPE Type,UINT NumSurfaces,IDirect3DSurface9 **ppSurfaces,HANDLE *pSharedHandle); - HRESULT GetVideoProcessorDeviceCaps(DXVAHD_VPDEVCAPS *pCaps); - HRESULT GetVideoProcessorOutputFormats(UINT Count,D3DFORMAT *pFormats); - HRESULT GetVideoProcessorInputFormats(UINT Count,D3DFORMAT *pFormats); - HRESULT GetVideoProcessorCaps(UINT Count,DXVAHD_VPCAPS *pCaps); - HRESULT GetVideoProcessorCustomRates(const GUID *pVPGuid,UINT Count,DXVAHD_CUSTOM_RATE_DATA *pRates); - HRESULT GetVideoProcessorFilterRange(DXVAHD_FILTER Filter,DXVAHD_FILTER_RANGE_DATA *pRange); - HRESULT CreateVideoProcessor(const GUID *pVPGuid,IDXVAHD_VideoProcessor **ppVideoProcessor); -}; - -cpp_quote("#ifdef __GNUC__") -cpp_quote("#warning COM interfaces layout in this header has not been verified.") -cpp_quote("#warning COM interfaces with incorrect layout may not work at all.") -cpp_quote("__MINGW_BROKEN_INTERFACE(INTERFACE)") -cpp_quote("#endif") -[ - object, - local -] -interface IDXVAHD_VideoProcessor : IUnknown -{ - HRESULT SetVideoProcessBltState(DXVAHD_BLT_STATE State,UINT DataSize,const void *pData); - HRESULT GetVideoProcessBltState(DXVAHD_BLT_STATE State,UINT DataSize,void *pData); - HRESULT SetVideoProcessStreamState(UINT StreamNumber,DXVAHD_STREAM_STATE State,UINT DataSize,const void *pData); - HRESULT GetVideoProcessStreamState(UINT StreamNumber,DXVAHD_STREAM_STATE State,UINT DataSize,void *pData); - HRESULT VideoProcessBltHD(IDirect3DSurface9 *pOutputSurface,UINT OutputFrame,UINT StreamCount,const DXVAHD_STREAM_DATA *pStreams); -}; - -cpp_quote("#endif /*(_WIN32_WINNT >= 0x0601)*/") -cpp_quote("#endif /*WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)*/") diff -Nru vlc-3.0.17.4/contrib/src/dxvahd/rules.mak vlc-3.0.18/contrib/src/dxvahd/rules.mak --- vlc-3.0.17.4/contrib/src/dxvahd/rules.mak 2022-04-18 22:10:15.000000000 +0000 +++ vlc-3.0.18/contrib/src/dxvahd/rules.mak 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,0 @@ -# generate Direct3D11 temporary include - -ifdef HAVE_CROSS_COMPILE -IDL_INCLUDES = -I/usr/include/wine/windows/ -I/usr/include/wine/wine/windows/ -else -#ugly way to get the default location of standard idl files -IDL_INCLUDES = -I/`echo $(MSYSTEM) | tr A-Z a-z`/$(BUILD)/include -endif - -DST_DXVAHD_H = $(PREFIX)/include/dxvahd.h - -ifdef HAVE_WIN32 -PKGS += dxvahd -endif - -.sum-dxvahd: $(TARBALLS)/dxvahd.idl - -$(TARBALLS)/dxvahd.idl: $(SRC)/dxvahd/dxvahd.idl - cp $< $@ - -$(DST_DXVAHD_H): $(TARBALLS)/dxvahd.idl .sum-dxvahd - mkdir -p -- "$(PREFIX)/include/" - $(WIDL) -DBOOL=WINBOOL -I$(PREFIX)/include $(IDL_INCLUDES) -h -o $@ $< - -.dxvahd: $(DST_DXVAHD_H) - touch $@ diff -Nru vlc-3.0.17.4/contrib/src/dxvahd/SHA512SUMS vlc-3.0.18/contrib/src/dxvahd/SHA512SUMS --- vlc-3.0.17.4/contrib/src/dxvahd/SHA512SUMS 2022-04-18 22:10:15.000000000 +0000 +++ vlc-3.0.18/contrib/src/dxvahd/SHA512SUMS 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -6c1ad18f38402751ec2bd8b9a1b4d669591de2f301205aa61431ba1671229cc38bf836f8fd1c87a488eeb603de671da7e27d0bb0a71599705a5cbbdab113e9df dxvahd.idl diff -Nru vlc-3.0.17.4/contrib/src/faad2/rules.mak vlc-3.0.18/contrib/src/faad2/rules.mak --- vlc-3.0.17.4/contrib/src/faad2/rules.mak 2020-07-27 08:31:07.000000000 +0000 +++ vlc-3.0.18/contrib/src/faad2/rules.mak 2022-05-26 08:14:32.000000000 +0000 @@ -1,6 +1,6 @@ # faad2 -FAAD2_VERSION := 2.9.2 +FAAD2_VERSION := 2.10.0 FAAD2_VERSION_FIXED := $(subst .,_,$(FAAD2_VERSION)) FAAD2_URL := $(GITHUB)/knik0/faad2/archive/$(FAAD2_VERSION_FIXED).tar.gz diff -Nru vlc-3.0.17.4/contrib/src/faad2/SHA512SUMS vlc-3.0.18/contrib/src/faad2/SHA512SUMS --- vlc-3.0.17.4/contrib/src/faad2/SHA512SUMS 2020-05-15 10:41:12.000000000 +0000 +++ vlc-3.0.18/contrib/src/faad2/SHA512SUMS 2022-05-26 08:14:32.000000000 +0000 @@ -1 +1 @@ -996c279a56c6abde13da964b91d4ff87ac4c611e889f1dd59882fa3898093dec68ab0714cf106db10a5e24952e2d6dddc049ec9bf4f07ff68378a705d5debee2 faad2-2_9_2.tar.gz +92c8b5e79f85b7a7caac9e7954959c26d74ef148a658dcb37e2c1b303fc2fcc5a0d12f21e7bd476870498109bdd03916a56c13f578186a69d6eceb103222e771 faad2-2_10_0.tar.gz diff -Nru vlc-3.0.17.4/contrib/src/ffmpeg/0001-dxva2_hevc-don-t-use-frames-as-reference-if-they-are.patch vlc-3.0.18/contrib/src/ffmpeg/0001-dxva2_hevc-don-t-use-frames-as-reference-if-they-are.patch --- vlc-3.0.17.4/contrib/src/ffmpeg/0001-dxva2_hevc-don-t-use-frames-as-reference-if-they-are.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/ffmpeg/0001-dxva2_hevc-don-t-use-frames-as-reference-if-they-are.patch 2022-05-24 20:35:27.000000000 +0000 @@ -0,0 +1,34 @@ +From b2e89bd9c548d899ec2fecfc1aa550e9ddfe9777 Mon Sep 17 00:00:00 2001 +From: Steve Lhomme +Date: Wed, 23 Mar 2022 14:52:31 +0100 +Subject: [PATCH] dxva2_hevc: don't use frames as reference if they are not + marked as such + +Similar to how a frame is considered for referencing for the RefPicList array. +This will do the same for RefPicSetStCurrBefore, RefPicSetStCurrAfter and +RefPicSetLtCurr. + +Fixes playback of http://www.gbbsoft.pl/!download/!/Film1.mp4 +Ref. VLC issue https://code.videolan.org/videolan/vlc/-/issues/26738 + +Signed-off-by: Steve Lhomme +--- + libavcodec/dxva2_hevc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libavcodec/dxva2_hevc.c b/libavcodec/dxva2_hevc.c +index 98b3e74bd7..28c0b26733 100644 +--- a/libavcodec/dxva2_hevc.c ++++ b/libavcodec/dxva2_hevc.c +@@ -249,7 +249,7 @@ static void fill_picture_parameters(const AVCodecContext *avctx, AVDXVAContext * + const HEVCFrame *frame = NULL; \ + while (!frame && j < rpl->nb_refs) \ + frame = rpl->ref[j++]; \ +- if (frame) \ ++ if (frame && frame->flags & (HEVC_FRAME_FLAG_LONG_REF | HEVC_FRAME_FLAG_SHORT_REF)) \ + pp->ref_list[i] = get_refpic_index(pp, ff_dxva2_get_surface_index(avctx, ctx, frame->frame)); \ + else \ + pp->ref_list[i] = 0xff; \ +-- +2.27.0.windows.1 + diff -Nru vlc-3.0.17.4/contrib/src/ffmpeg/rules.mak vlc-3.0.18/contrib/src/ffmpeg/rules.mak --- vlc-3.0.17.4/contrib/src/ffmpeg/rules.mak 2022-04-18 22:10:15.000000000 +0000 +++ vlc-3.0.18/contrib/src/ffmpeg/rules.mak 2022-09-30 07:59:11.000000000 +0000 @@ -5,7 +5,7 @@ #USE_FFMPEG ?= 1 ifndef USE_LIBAV -FFMPEG_HASH=dc91b913b6260e85e1304c74ff7bb3c22a8c9fb1 +FFMPEG_HASH=ec47a3b95f88fc3f820b900038ac439e4eb3fede FFMPEG_BRANCH=release/4.4 FFMPEG_SNAPURL := http://git.videolan.org/?p=ffmpeg.git;a=snapshot;h=$(FFMPEG_HASH);sf=tgz FFMPEG_GITURL := http://git.videolan.org/git/ffmpeg.git @@ -122,6 +122,11 @@ FFMPEGCONF += --arch=mips64 endif +# RISC-V stuff +ifneq ($(findstring $(ARCH),riscv32 riscv64),) +FFMPEGCONF += --arch=riscv +endif + # x86 stuff ifeq ($(ARCH),i386) ifndef HAVE_DARWIN_OS @@ -240,6 +245,7 @@ $(APPLY) $(SRC)/ffmpeg/0001-fix-MediaFoundation-compilation-if-WINVER-was-forced.patch $(APPLY) $(SRC)/ffmpeg/0001-bring-back-XP-support.patch $(APPLY) $(SRC)/ffmpeg/0001-avcodec-vp9-Do-not-destroy-uninitialized-mutexes-con.patch + $(APPLY) $(SRC)/ffmpeg/0001-dxva2_hevc-don-t-use-frames-as-reference-if-they-are.patch endif ifdef USE_LIBAV $(APPLY) $(SRC)/ffmpeg/libav_gsm.patch diff -Nru vlc-3.0.17.4/contrib/src/freetype2/0001-builds-windows-Add-support-for-legacy-UWP-builds.patch vlc-3.0.18/contrib/src/freetype2/0001-builds-windows-Add-support-for-legacy-UWP-builds.patch --- vlc-3.0.17.4/contrib/src/freetype2/0001-builds-windows-Add-support-for-legacy-UWP-builds.patch 2022-03-09 09:49:43.000000000 +0000 +++ vlc-3.0.18/contrib/src/freetype2/0001-builds-windows-Add-support-for-legacy-UWP-builds.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ -From 20ec99be7ecfd1a07e1ff7a7ef3e510203ea33bd Mon Sep 17 00:00:00 2001 -From: Steve Lhomme -Date: Thu, 17 Feb 2022 13:35:52 -0500 -Subject: [PATCH] [builds/windows] Add support for legacy UWP builds. - -* builds/windows/ftsystem.c: Add neccessary macro substitutions to -enable strict UWP builds. - -See !141. - -Co-authored-by: Alexei Podtelezhnikov ---- - builds/windows/ftsystem.c | 20 +++++++++++++++++++- - 1 file changed, 19 insertions(+), 1 deletion(-) - -diff --git a/builds/windows/ftsystem.c b/builds/windows/ftsystem.c -index 1c49f30db..d4fc95675 100644 ---- a/builds/windows/ftsystem.c -+++ b/builds/windows/ftsystem.c -@@ -196,7 +196,25 @@ - } - - --#ifdef _WIN32_WCE -+#if defined( NTDDI_VERSION ) && NTDDI_VERSION < 0x0A000007 && \ -+ defined( WINAPI_FAMILY_PARTITION ) && \ -+ !WINAPI_FAMILY_PARTITION( WINAPI_PARTITION_DESKTOP ) -+ -+#define PACK_DWORD64( hi, lo ) ( ( (DWORD64)(hi) << 32 ) | (DWORD)(lo) ) -+ -+#define CreateFileW( a, b, c, d, e, f, g ) \ -+ CreateFileFromAppW( a, b, c, d, e, f, g ) -+#define CreateFileMapping( a, b, c, d, e, f ) \ -+ CreateFileMappingFromApp( a, b, c, PACK_DWORD64( d, e ), f ) -+#define MapViewOfFile( a, b, c, d, e ) \ -+ MapViewOfFileFromApp( a, b, PACK_DWORD64( c, d ), e ) -+ -+#define UWP_LEGACY -+ -+#endif -+ -+ -+#if defined( _WIN32_WCE ) || defined( UWP_LEGACY ) - - FT_LOCAL_DEF( HANDLE ) - CreateFileA( LPCSTR lpFileName, --- -2.27.0.windows.1 - diff -Nru vlc-3.0.17.4/contrib/src/freetype2/0001-builds-windows-Guard-some-non-ancient-API.patch vlc-3.0.18/contrib/src/freetype2/0001-builds-windows-Guard-some-non-ancient-API.patch --- vlc-3.0.17.4/contrib/src/freetype2/0001-builds-windows-Guard-some-non-ancient-API.patch 2022-03-09 09:49:43.000000000 +0000 +++ vlc-3.0.18/contrib/src/freetype2/0001-builds-windows-Guard-some-non-ancient-API.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ -From 1f951898751365e9bd2a920ce76652f2a59c3305 Mon Sep 17 00:00:00 2001 -From: Cameron Cawley -Date: Mon, 6 Dec 2021 23:08:46 -0500 -Subject: [PATCH] [builds/windows] Guard some non-ancient API. - -We can support Windows 98 and NT 4.0 in principle... - -* builds/windows/ftdebug.c, builds/windows/ftsystem.c: Check for the -ancient SDK using _WIN32_WINDOWS, _WIN32_WCE, or _WIN32_WINNT. ---- - builds/windows/ftdebug.c | 6 ++++++ - builds/windows/ftsystem.c | 6 +++++- - 2 files changed, 11 insertions(+), 1 deletion(-) - -diff --git a/builds/windows/ftdebug.c b/builds/windows/ftdebug.c -index 94c22da75..ff5d4b481 100644 ---- a/builds/windows/ftdebug.c -+++ b/builds/windows/ftdebug.c -@@ -136,6 +136,8 @@ - - va_start( ap, fmt ); - vfprintf( stderr, fmt, ap ); -+#if ( defined( _WIN32_WINNT ) && _WIN32_WINNT >= 0x0400 ) || \ -+ ( defined( _WIN32_WCE ) && _WIN32_WCE >= 0x0600 ) - if ( IsDebuggerPresent() ) - { - static char buf[1024]; -@@ -144,6 +146,7 @@ - vsnprintf( buf, sizeof buf, fmt, ap ); - OutputDebugStringA( buf ); - } -+#endif - va_end( ap ); - } - -@@ -159,6 +162,8 @@ - - va_start( ap, fmt ); - vfprintf( stderr, fmt, ap ); -+#if ( defined( _WIN32_WINNT ) && _WIN32_WINNT >= 0x0400 ) || \ -+ ( defined( _WIN32_WCE ) && _WIN32_WCE >= 0x0600 ) - if ( IsDebuggerPresent() ) - { - static char buf[1024]; -@@ -167,6 +172,7 @@ - vsnprintf( buf, sizeof buf, fmt, ap ); - OutputDebugStringA( buf ); - } -+#endif - va_end( ap ); - - exit( EXIT_FAILURE ); -diff --git a/builds/windows/ftsystem.c b/builds/windows/ftsystem.c -index 1ebadd49f..0433d6151 100644 ---- a/builds/windows/ftsystem.c -+++ b/builds/windows/ftsystem.c -@@ -233,6 +233,10 @@ - dwFlagsAndAttributes, hTemplateFile ); - } - -+#endif -+ -+#if defined( _WIN32_WCE ) || defined ( _WIN32_WINDOWS ) || \ -+ !defined( _WIN32_WINNT ) || _WIN32_WINNT <= 0x0400 - - FT_LOCAL_DEF( BOOL ) - GetFileSizeEx( HANDLE hFile, -@@ -248,7 +252,7 @@ - return TRUE; - } - --#endif /* _WIN32_WCE */ -+#endif - - - /* documentation is in ftobjs.h */ --- -2.27.0.windows.1 - diff -Nru vlc-3.0.17.4/contrib/src/freetype2/rules.mak vlc-3.0.18/contrib/src/freetype2/rules.mak --- vlc-3.0.17.4/contrib/src/freetype2/rules.mak 2022-03-09 09:49:43.000000000 +0000 +++ vlc-3.0.18/contrib/src/freetype2/rules.mak 2022-05-31 16:10:59.000000000 +0000 @@ -1,6 +1,6 @@ # freetype2 -FREETYPE2_VERSION := 2.11.1 +FREETYPE2_VERSION := 2.12.1 FREETYPE2_URL := $(SF)/freetype/freetype2/$(FREETYPE2_VERSION)/freetype-$(FREETYPE2_VERSION).tar.xz PKGS += freetype2 @@ -15,8 +15,6 @@ freetype: freetype-$(FREETYPE2_VERSION).tar.xz .sum-freetype2 $(UNPACK) - $(APPLY) $(SRC)/freetype2/0001-builds-windows-Guard-some-non-ancient-API.patch - $(APPLY) $(SRC)/freetype2/0001-builds-windows-Add-support-for-legacy-UWP-builds.patch $(call pkg_static, "builds/unix/freetype2.in") $(MOVE) diff -Nru vlc-3.0.17.4/contrib/src/freetype2/SHA512SUMS vlc-3.0.18/contrib/src/freetype2/SHA512SUMS --- vlc-3.0.17.4/contrib/src/freetype2/SHA512SUMS 2022-02-15 17:24:38.000000000 +0000 +++ vlc-3.0.18/contrib/src/freetype2/SHA512SUMS 2022-05-31 16:10:59.000000000 +0000 @@ -1 +1 @@ -0848678482fbe20603a866f02da82c91122014d6f815ba4f1d9c03601c32e3ceb781f721c2b4427b6117d7c9742018af8dbb26566faf018595c70b50f8db3f08 freetype-2.11.1.tar.xz +6482de1748dc2cc01e033d21a3b492dadb1f039d13d9179685fdcf985e24d7f587cbca4c27ed8a7fdb7d9ad59612642ac5f4db062443154753295363f45c052f freetype-2.12.1.tar.xz diff -Nru vlc-3.0.17.4/contrib/src/fribidi/rules.mak vlc-3.0.18/contrib/src/fribidi/rules.mak --- vlc-3.0.17.4/contrib/src/fribidi/rules.mak 2022-02-15 17:24:38.000000000 +0000 +++ vlc-3.0.18/contrib/src/fribidi/rules.mak 2022-05-31 16:10:59.000000000 +0000 @@ -1,5 +1,5 @@ # FRIBIDI -FRIBIDI_VERSION := 1.0.11 +FRIBIDI_VERSION := 1.0.12 FRIBIDI_URL := https://github.com/fribidi/fribidi/releases/download/v$(FRIBIDI_VERSION)/fribidi-$(FRIBIDI_VERSION).tar.xz PKGS += fribidi diff -Nru vlc-3.0.17.4/contrib/src/fribidi/SHA512SUMS vlc-3.0.18/contrib/src/fribidi/SHA512SUMS --- vlc-3.0.17.4/contrib/src/fribidi/SHA512SUMS 2022-02-15 17:24:38.000000000 +0000 +++ vlc-3.0.18/contrib/src/fribidi/SHA512SUMS 2022-05-31 16:10:59.000000000 +0000 @@ -1 +1 @@ -6afde86784de06759f18235ccb44f23261a975f7cce0021b16755065a6a8ed84d7d5fb7fdcaadd691b48011efb4bfc2ee67555e5133a294a418cca1a0c85476c fribidi-1.0.11.tar.xz +cd624f519b270303e89139ced4020115abe3b6a0d774ba57f17fa69c6036edebd76c635a42c468786e76c6ffb0c7d63b435cd2663bc2fba08dec405840dd8e49 fribidi-1.0.12.tar.xz diff -Nru vlc-3.0.17.4/contrib/src/gme/add-libm.patch vlc-3.0.18/contrib/src/gme/add-libm.patch --- vlc-3.0.17.4/contrib/src/gme/add-libm.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/gme/add-libm.patch 2022-09-22 18:08:33.000000000 +0000 @@ -0,0 +1,8 @@ +--- game-music-emu-0.6.3/gme/libgme.pc.in.old 2022-08-26 08:35:03.000000000 +0200 ++++ game-music-emu-0.6.3/gme/libgme.pc.in 2022-08-26 08:35:18.000000000 +0200 +@@ -13,4 +13,4 @@ + Version: @GME_VERSION@ + Cflags: -I${includedir} + Libs: -L${libdir} -lgme +-Libs.private: -lstdc++ @PKG_CONFIG_ZLIB@ ++Libs.private: -lstdc++ -lm @PKG_CONFIG_ZLIB@ diff -Nru vlc-3.0.17.4/contrib/src/gme/gme-quotes.patch vlc-3.0.18/contrib/src/gme/gme-quotes.patch --- vlc-3.0.17.4/contrib/src/gme/gme-quotes.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/gme/gme-quotes.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ ---- game-music-emu/CMakeLists.txt 2013-03-17 03:13:46.000000000 +0100 -+++ game-music-emu.patched/CMakeLists.txt 2013-09-07 13:53:36.000000000 +0200 -@@ -67,14 +67,14 @@ - string (REGEX MATCH "[3-9]\\.[0-9]\\.[0-9]" _gcc_version "${_gcc_version_info}") - - # gcc <4.1 had poor support for symbol visibility -- if ((${_gcc_version} VERSION_GREATER "4.1") OR (${_gcc_version} VERSION_EQUAL "4.1")) -+ if (("${_gcc_version}" VERSION_GREATER "4.1") OR ("${_gcc_version}" VERSION_EQUAL "4.1")) - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden") - set (ENABLE_VISIBILITY ON) - add_definitions (-DLIBGME_VISIBILITY) - - # GCC >= 4.2 also correctly supports making inline members have hidden - # visibility by default. -- if ((${_gcc_version} VERSION_GREATER "4.2") OR (${_gcc_version} VERSION_EQUAL "4.2")) -+ if (("${_gcc_version}" VERSION_GREATER "4.2") OR ("${_gcc_version}" VERSION_EQUAL "4.2")) - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden") - endif() - endif() diff -Nru vlc-3.0.17.4/contrib/src/gme/gme-static.patch vlc-3.0.18/contrib/src/gme/gme-static.patch --- vlc-3.0.17.4/contrib/src/gme/gme-static.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/gme/gme-static.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ ---- game-music-emu/gme/CMakeLists.txt 2017-11-21 10:43:46.577551600 +0100 -+++ game-music-emu/gme/CMakeLists.txt.static 2017-11-21 10:43:22.791330000 +0100 -@@ -137,7 +137,7 @@ configure_file(${CMAKE_CURRENT_SOURCE_DI - # On some platforms we may need to change headers or whatnot based on whether - # we're building the library or merely using the library. The following is - # only defined when building the library to allow us to tell which is which. --add_definitions(-DBLARGG_BUILD_DLL) -+#add_definitions(-DBLARGG_BUILD_DLL) - - # For the gme_types.h - include_directories(${CMAKE_CURRENT_BINARY_DIR}) diff -Nru vlc-3.0.17.4/contrib/src/gme/mac-use-c-stdlib.patch vlc-3.0.18/contrib/src/gme/mac-use-c-stdlib.patch --- vlc-3.0.17.4/contrib/src/gme/mac-use-c-stdlib.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/gme/mac-use-c-stdlib.patch 2022-09-22 18:08:33.000000000 +0000 @@ -0,0 +1,8 @@ +--- game-music-emu/gme/libgme.pc.in.old 2022-08-25 21:46:36.000000000 +0200 ++++ game-music-emu/gme/libgme.pc.in 2022-08-25 21:46:57.000000000 +0200 +@@ -13,4 +13,4 @@ + Version: @GME_VERSION@ + Cflags: -I${includedir} + Libs: -L${libdir} -lgme +-Libs.private: -lstdc++ -lm @PKG_CONFIG_ZLIB@ ++Libs.private: -lc++ -lm @PKG_CONFIG_ZLIB@ diff -Nru vlc-3.0.17.4/contrib/src/gme/rules.mak vlc-3.0.18/contrib/src/gme/rules.mak --- vlc-3.0.17.4/contrib/src/gme/rules.mak 2021-01-17 20:31:01.000000000 +0000 +++ vlc-3.0.18/contrib/src/gme/rules.mak 2022-09-22 18:08:33.000000000 +0000 @@ -1,23 +1,28 @@ # Game Music Emu -GME_VERSION := 0.6.1 -GME_URL := https://bitbucket.org/mpyne/game-music-emu/downloads/game-music-emu-$(GME_VERSION).tar.bz2 +GME_VERSION := 0.6.3 +GME_URL := https://bitbucket.org/mpyne/game-music-emu/downloads/game-music-emu-$(GME_VERSION).tar.xz PKGS += gme -$(TARBALLS)/game-music-emu-$(GME_VERSION).tar.bz2: +$(TARBALLS)/game-music-emu-$(GME_VERSION).tar.xz: $(call download_pkg,$(GME_URL),gme) -.sum-gme: game-music-emu-$(GME_VERSION).tar.bz2 +DEPS_gme = zlib $(DEPS_zlib) -game-music-emu: game-music-emu-$(GME_VERSION).tar.bz2 .sum-gme +.sum-gme: game-music-emu-$(GME_VERSION).tar.xz + +game-music-emu: game-music-emu-$(GME_VERSION).tar.xz .sum-gme $(UNPACK) - $(APPLY) $(SRC)/gme/gme-quotes.patch $(APPLY) $(SRC)/gme/skip-underrun.patch - $(APPLY) $(SRC)/gme/gme-static.patch + $(APPLY) $(SRC)/gme/add-libm.patch +ifdef HAVE_MACOSX + $(APPLY) $(SRC)/gme/mac-use-c-stdlib.patch +endif + $(call pkg_static,"gme/libgme.pc.in") $(MOVE) .gme: game-music-emu toolchain.cmake - cd $< && $(HOSTVARS_PIC) $(CMAKE) . - cd $< && $(CMAKEBUILD) . --target install + cd $< && $(HOSTVARS_PIC) $(CMAKE) . -DENABLE_UBSAN=OFF + +$(CMAKEBUILD) $< --target install touch $@ diff -Nru vlc-3.0.17.4/contrib/src/gme/SHA512SUMS vlc-3.0.18/contrib/src/gme/SHA512SUMS --- vlc-3.0.17.4/contrib/src/gme/SHA512SUMS 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/gme/SHA512SUMS 2022-05-28 15:42:24.000000000 +0000 @@ -1 +1 @@ -06b3544086fae51361706b0417ae1bc3769863c7d060ebabdd09b930d37df973314c43afff32aedaa9ebb74cdeafdeadaac4aa5d448700ee961d79d7fc9012b4 game-music-emu-0.6.1.tar.bz2 +4b20c69ced696bb879c34bcb7ce0f5f276642458d4cebca8ede673eed7d50664e527626e2077f85a3411a26660f1b3f01e43cccd72945e1edb2994421efeb552 game-music-emu-0.6.3.tar.xz diff -Nru vlc-3.0.17.4/contrib/src/gnutls/0001-windows-Avoid-Wint-conversion-errors.patch vlc-3.0.18/contrib/src/gnutls/0001-windows-Avoid-Wint-conversion-errors.patch --- vlc-3.0.17.4/contrib/src/gnutls/0001-windows-Avoid-Wint-conversion-errors.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/gnutls/0001-windows-Avoid-Wint-conversion-errors.patch 2022-08-24 17:42:00.000000000 +0000 @@ -0,0 +1,60 @@ +From 88d79b964d88730e316919d6ccd17ca0fe9b3244 Mon Sep 17 00:00:00 2001 +From: Martin Storsjo +Date: Mon, 15 Aug 2022 23:50:16 +0300 +Subject: [PATCH] windows: Avoid -Wint-conversion errors + +Clang 15 made "incompatible pointer to integer conversion" an error +instead of a plain warning. This fixes errors like these: + +system/keys-win.c:257:13: error: incompatible pointer to integer conversion initializing 'HCRYPTHASH' (aka 'unsigned long') with an expression of type 'void *' [-Wint-conversion] + HCRYPTHASH hHash = NULL; + ^ ~~~~ + +Signed-off-by: Martin Storsjo +--- + lib/system/keys-win.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/lib/system/keys-win.c b/lib/system/keys-win.c +index 4463c3b2d7..a0fffe249e 100644 +--- a/lib/system/keys-win.c ++++ b/lib/system/keys-win.c +@@ -254,7 +254,7 @@ int capi_sign(gnutls_privkey_t key, void *userdata, + { + priv_st *priv = (priv_st *) userdata; + ALG_ID Algid; +- HCRYPTHASH hHash = NULL; ++ HCRYPTHASH hHash = 0; + uint8_t digest[MAX_HASH_SIZE]; + unsigned int digest_size; + gnutls_digest_algorithm_t algo; +@@ -441,7 +441,7 @@ static + int privkey_import_capi(gnutls_privkey_t pkey, const char *url, + priv_st *priv, CRYPT_KEY_PROV_INFO *kpi) + { +- HCRYPTPROV hCryptProv = NULL; ++ HCRYPTPROV hCryptProv = 0; + int ret, enc_too = 0; + DWORD i, dwErrCode = 0; + +@@ -702,7 +702,7 @@ int privkey_import_ncrypt(gnutls_privkey_t pkey, const char *url, + priv_st *priv, CRYPT_KEY_PROV_INFO *kpi, NCRYPT_PROV_HANDLE *sctx) + { + SECURITY_STATUS r; +- NCRYPT_KEY_HANDLE nc = NULL; ++ NCRYPT_KEY_HANDLE nc = 0; + int ret, enc_too = 0; + WCHAR algo_str[64]; + DWORD algo_str_size = 0; +@@ -786,7 +786,7 @@ int _gnutls_privkey_import_system_url(gnutls_privkey_t pkey, const char *url) + const CERT_CONTEXT *cert = NULL; + CRYPT_HASH_BLOB blob; + CRYPT_KEY_PROV_INFO *kpi = NULL; +- NCRYPT_PROV_HANDLE sctx = NULL; ++ NCRYPT_PROV_HANDLE sctx = 0; + DWORD kpi_size; + SECURITY_STATUS r; + int ret; +-- +2.25.1 + diff -Nru vlc-3.0.17.4/contrib/src/gnutls/gnutls-fix-aarch64-compilation-appleos.patch vlc-3.0.18/contrib/src/gnutls/gnutls-fix-aarch64-compilation-appleos.patch --- vlc-3.0.17.4/contrib/src/gnutls/gnutls-fix-aarch64-compilation-appleos.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/gnutls/gnutls-fix-aarch64-compilation-appleos.patch 2022-05-24 20:36:20.000000000 +0000 @@ -0,0 +1,12 @@ +diff -ru gnutls/lib/accelerated/aarch64/Makefile.in gnutls/lib/accelerated/aarch64/Makefile.in +--- gnutls/lib/accelerated/aarch64/Makefile.in 2021-05-24 10:05:49.000000000 +0200 ++++ gnutls/lib/accelerated/aarch64/Makefile.in 2022-03-28 15:06:23.000000000 +0200 +@@ -1634,7 +1634,7 @@ + -I$(srcdir)/../../ -I$(srcdir)/../ $(am__append_1) + + #ensure that we have all aarch64 instruction sets enabled for the assembler +-AM_CCASFLAGS = -Wa,-march=all ++AM_CCASFLAGS = -Wa + EXTRA_DIST = README + noinst_LTLIBRARIES = libaarch64.la + libaarch64_la_SOURCES = aarch64-common.c aarch64-common.h \ diff -Nru vlc-3.0.17.4/contrib/src/gnutls/rules.mak vlc-3.0.18/contrib/src/gnutls/rules.mak --- vlc-3.0.17.4/contrib/src/gnutls/rules.mak 2021-10-30 12:43:45.000000000 +0000 +++ vlc-3.0.18/contrib/src/gnutls/rules.mak 2022-08-24 17:42:00.000000000 +0000 @@ -1,6 +1,6 @@ # GnuTLS -GNUTLS_VERSION := 3.6.15 +GNUTLS_VERSION := 3.6.16 GNUTLS_URL := https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/gnutls-$(GNUTLS_VERSION).tar.xz ifdef BUILD_NETWORK @@ -41,6 +41,14 @@ $(APPLY) $(SRC)/gnutls/0001-fix-mingw64-detection.patch $(call pkg_static,"lib/gnutls.pc.in") + + # fix AArch64 builds for Apple OS by removing unsupported compiler flag (gnutls#1347, gnutls#1317) +ifdef HAVE_DARWIN_OS + $(APPLY) $(SRC)/gnutls/gnutls-fix-aarch64-compilation-appleos.patch +endif + + $(APPLY) $(SRC)/gnutls/0001-windows-Avoid-Wint-conversion-errors.patch + $(UPDATE_AUTOCONFIG) $(MOVE) diff -Nru vlc-3.0.17.4/contrib/src/gnutls/SHA512SUMS vlc-3.0.18/contrib/src/gnutls/SHA512SUMS --- vlc-3.0.17.4/contrib/src/gnutls/SHA512SUMS 2020-10-24 18:21:13.000000000 +0000 +++ vlc-3.0.18/contrib/src/gnutls/SHA512SUMS 2022-07-23 08:04:37.000000000 +0000 @@ -1 +1 @@ -f757d1532198f44bcad7b73856ce6a05bab43f6fb77fcc81c59607f146202f73023d0796d3e1e7471709cf792c8ee7d436e19407e0601bc0bda2f21512b3b01c gnutls-3.6.15.tar.xz +72c78d7fcb024393c1d15f2a1856608ae4460ba43cc5bbbb4c29b80508cae6cb822df4638029de2363437d110187e0a3cc19a7288c3b2f44b2f648399a028438 gnutls-3.6.16.tar.xz diff -Nru vlc-3.0.17.4/contrib/src/harfbuzz/0001-fix-OSAtomic-calls-for-AArch64.patch vlc-3.0.18/contrib/src/harfbuzz/0001-fix-OSAtomic-calls-for-AArch64.patch --- vlc-3.0.17.4/contrib/src/harfbuzz/0001-fix-OSAtomic-calls-for-AArch64.patch 2020-07-27 08:31:07.000000000 +0000 +++ vlc-3.0.18/contrib/src/harfbuzz/0001-fix-OSAtomic-calls-for-AArch64.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,40 +0,0 @@ -From f110dc32b2a0f3fccfc80007916efcc9f62c56fa Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= -Date: Fri, 15 May 2020 09:14:15 +0200 -Subject: [PATCH 1/3] fix OSAtomic calls for AArch64 - ---- - src/hb-atomic.hh | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -diff --git a/src/hb-atomic.hh b/src/hb-atomic.hh -index b3fb296b..20dae7e3 100644 ---- a/src/hb-atomic.hh -+++ b/src/hb-atomic.hh -@@ -164,10 +164,8 @@ static inline bool _hb_compare_and_swap_ptr (void **P, void *O, void *N) - #elif !defined(HB_NO_MT) && defined(__APPLE__) - - #include --#ifdef __MAC_OS_X_MIN_REQUIRED -+#ifdef __APPLE__ - #include --#elif defined(__IPHONE_OS_MIN_REQUIRED) --#include - #endif - - #define _hb_memory_barrier() OSMemoryBarrier () -@@ -175,7 +173,11 @@ static inline bool _hb_compare_and_swap_ptr (void **P, void *O, void *N) - #define hb_atomic_int_impl_add(AI, V) (OSAtomicAdd32Barrier ((V), (AI)) - (V)) - - #if (MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_4 || __IPHONE_VERSION_MIN_REQUIRED >= 20100) -+#if __aarch64__ -+#define hb_atomic_ptr_impl_cmpexch(P,O,N) OSAtomicCompareAndSwap64Barrier ((int64_t) (O), (int64_t) (N), (int64_t*) (P)) -+#else - #define hb_atomic_ptr_impl_cmpexch(P,O,N) OSAtomicCompareAndSwapPtrBarrier ((O), (N), (P)) -+#endif - #else - #if __ppc64__ || __x86_64__ || __aarch64__ - #define hb_atomic_ptr_impl_cmpexch(P,O,N) OSAtomicCompareAndSwap64Barrier ((int64_t) (O), (int64_t) (N), (int64_t*) (P)) --- -2.26.0.windows.1 - diff -Nru vlc-3.0.17.4/contrib/src/harfbuzz/0001-meson-Enable-big-objects-support-when-building-for-w.patch vlc-3.0.18/contrib/src/harfbuzz/0001-meson-Enable-big-objects-support-when-building-for-w.patch --- vlc-3.0.17.4/contrib/src/harfbuzz/0001-meson-Enable-big-objects-support-when-building-for-w.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/harfbuzz/0001-meson-Enable-big-objects-support-when-building-for-w.patch 2022-05-31 16:10:59.000000000 +0000 @@ -0,0 +1,30 @@ +From 38c155bd1edc9773fea287fcc80659f25d1b21eb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= +Date: Wed, 19 Jan 2022 11:53:02 +0100 +Subject: [PATCH] meson: Enable big objects support when building for windows + +Fix cross compilation when targetting win64 +--- + meson.build | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/meson.build b/meson.build +index 41344b3a3..8fb68f296 100644 +--- a/meson.build ++++ b/meson.build +@@ -57,6 +57,12 @@ if host_machine.cpu_family() == 'arm' and cpp.alignment('struct { char c; }') != + endif + endif + ++if host_machine.system() == 'windows' ++ add_project_arguments(cpp.get_supported_arguments([ ++ '-Wa,-mbig-obj' ++ ]), language : 'cpp') ++endif ++ + check_headers = [ + ['unistd.h'], + ['sys/mman.h'], +-- +2.34.1 + diff -Nru vlc-3.0.17.4/contrib/src/harfbuzz/0002-Update-the-bundled-ax_pthread.m4.patch vlc-3.0.18/contrib/src/harfbuzz/0002-Update-the-bundled-ax_pthread.m4.patch --- vlc-3.0.17.4/contrib/src/harfbuzz/0002-Update-the-bundled-ax_pthread.m4.patch 2020-07-27 08:31:07.000000000 +0000 +++ vlc-3.0.18/contrib/src/harfbuzz/0002-Update-the-bundled-ax_pthread.m4.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,309 +0,0 @@ -From dc5815a2cc756a29c01a85081e16e43131f18411 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Martin=20Storsj=C3=B6?= -Date: Fri, 15 May 2020 09:16:42 +0200 -Subject: [PATCH 2/3] Update the bundled ax_pthread.m4 - -This fixes building for Windows with clang, where the bundled -version of ax_pthread.m4 assumes that Clang doesn't need the -pthread option in LDFLAGS (assuming that a system that Clang -supports doesn't need an external library for pthreads). ---- - m4/ax_pthread.m4 | 224 ++++++++++++++++++++++++++--------------------- - 1 file changed, 123 insertions(+), 101 deletions(-) - -diff --git a/m4/ax_pthread.m4 b/m4/ax_pthread.m4 -index 5fbf9fe0..1598d077 100644 ---- a/m4/ax_pthread.m4 -+++ b/m4/ax_pthread.m4 -@@ -55,6 +55,7 @@ - # - # Copyright (c) 2008 Steven G. Johnson - # Copyright (c) 2011 Daniel Richard G. -+# Copyright (c) 2019 Marc Stevens - # - # This program is free software: you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by the -@@ -82,7 +83,7 @@ - # modified version of the Autoconf Macro, you may extend this special - # exception to the GPL to apply to your modified version as well. - --#serial 24 -+#serial 27 - - AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD]) - AC_DEFUN([AX_PTHREAD], [ -@@ -123,10 +124,12 @@ fi - # (e.g. DEC) have both -lpthread and -lpthreads, where one of the - # libraries is broken (non-POSIX). - --# Create a list of thread flags to try. Items starting with a "-" are --# C compiler flags, and other items are library names, except for "none" --# which indicates that we try without any flags at all, and "pthread-config" --# which is a program returning the flags for the Pth emulation library. -+# Create a list of thread flags to try. Items with a "," contain both -+# C compiler flags (before ",") and linker flags (after ","). Other items -+# starting with a "-" are C compiler flags, and remaining items are -+# library names, except for "none" which indicates that we try without -+# any flags at all, and "pthread-config" which is a program returning -+# the flags for the Pth emulation library. - - ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" - -@@ -194,14 +197,47 @@ case $host_os in - # that too in a future libc.) So we'll check first for the - # standard Solaris way of linking pthreads (-mt -lpthread). - -- ax_pthread_flags="-mt,pthread pthread $ax_pthread_flags" -+ ax_pthread_flags="-mt,-lpthread pthread $ax_pthread_flags" - ;; - esac - -+# Are we compiling with Clang? -+ -+AC_CACHE_CHECK([whether $CC is Clang], -+ [ax_cv_PTHREAD_CLANG], -+ [ax_cv_PTHREAD_CLANG=no -+ # Note that Autoconf sets GCC=yes for Clang as well as GCC -+ if test "x$GCC" = "xyes"; then -+ AC_EGREP_CPP([AX_PTHREAD_CC_IS_CLANG], -+ [/* Note: Clang 2.7 lacks __clang_[a-z]+__ */ -+# if defined(__clang__) && defined(__llvm__) -+ AX_PTHREAD_CC_IS_CLANG -+# endif -+ ], -+ [ax_cv_PTHREAD_CLANG=yes]) -+ fi -+ ]) -+ax_pthread_clang="$ax_cv_PTHREAD_CLANG" -+ -+ - # GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC) - -+# Note that for GCC and Clang -pthread generally implies -lpthread, -+# except when -nostdlib is passed. -+# This is problematic using libtool to build C++ shared libraries with pthread: -+# [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460 -+# [2] https://bugzilla.redhat.com/show_bug.cgi?id=661333 -+# [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555 -+# To solve this, first try -pthread together with -lpthread for GCC -+ - AS_IF([test "x$GCC" = "xyes"], -- [ax_pthread_flags="-pthread -pthreads $ax_pthread_flags"]) -+ [ax_pthread_flags="-pthread,-lpthread -pthread -pthreads $ax_pthread_flags"]) -+ -+# Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first -+ -+AS_IF([test "x$ax_pthread_clang" = "xyes"], -+ [ax_pthread_flags="-pthread,-lpthread -pthread"]) -+ - - # The presence of a feature test macro requesting re-entrant function - # definitions is, on some systems, a strong hint that pthreads support is -@@ -224,25 +260,86 @@ AS_IF([test "x$ax_pthread_check_macro" = "x--"], - [ax_pthread_check_cond=0], - [ax_pthread_check_cond="!defined($ax_pthread_check_macro)"]) - --# Are we compiling with Clang? - --AC_CACHE_CHECK([whether $CC is Clang], -- [ax_cv_PTHREAD_CLANG], -- [ax_cv_PTHREAD_CLANG=no -- # Note that Autoconf sets GCC=yes for Clang as well as GCC -- if test "x$GCC" = "xyes"; then -- AC_EGREP_CPP([AX_PTHREAD_CC_IS_CLANG], -- [/* Note: Clang 2.7 lacks __clang_[a-z]+__ */ --# if defined(__clang__) && defined(__llvm__) -- AX_PTHREAD_CC_IS_CLANG --# endif -- ], -- [ax_cv_PTHREAD_CLANG=yes]) -- fi -- ]) --ax_pthread_clang="$ax_cv_PTHREAD_CLANG" -+if test "x$ax_pthread_ok" = "xno"; then -+for ax_pthread_try_flag in $ax_pthread_flags; do -+ -+ case $ax_pthread_try_flag in -+ none) -+ AC_MSG_CHECKING([whether pthreads work without any flags]) -+ ;; -+ -+ *,*) -+ PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\1/"` -+ PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\2/"` -+ AC_MSG_CHECKING([whether pthreads work with "$PTHREAD_CFLAGS" and "$PTHREAD_LIBS"]) -+ ;; -+ -+ -*) -+ AC_MSG_CHECKING([whether pthreads work with $ax_pthread_try_flag]) -+ PTHREAD_CFLAGS="$ax_pthread_try_flag" -+ ;; -+ -+ pthread-config) -+ AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no]) -+ AS_IF([test "x$ax_pthread_config" = "xno"], [continue]) -+ PTHREAD_CFLAGS="`pthread-config --cflags`" -+ PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" -+ ;; -+ -+ *) -+ AC_MSG_CHECKING([for the pthreads library -l$ax_pthread_try_flag]) -+ PTHREAD_LIBS="-l$ax_pthread_try_flag" -+ ;; -+ esac -+ -+ ax_pthread_save_CFLAGS="$CFLAGS" -+ ax_pthread_save_LIBS="$LIBS" -+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS" -+ LIBS="$PTHREAD_LIBS $LIBS" -+ -+ # Check for various functions. We must include pthread.h, -+ # since some functions may be macros. (On the Sequent, we -+ # need a special flag -Kthread to make this header compile.) -+ # We check for pthread_join because it is in -lpthread on IRIX -+ # while pthread_create is in libc. We check for pthread_attr_init -+ # due to DEC craziness with -lpthreads. We check for -+ # pthread_cleanup_push because it is one of the few pthread -+ # functions on Solaris that doesn't have a non-functional libc stub. -+ # We try pthread_create on general principles. -+ -+ AC_LINK_IFELSE([AC_LANG_PROGRAM([#include -+# if $ax_pthread_check_cond -+# error "$ax_pthread_check_macro must be defined" -+# endif -+ static void *some_global = NULL; -+ static void routine(void *a) -+ { -+ /* To avoid any unused-parameter or -+ unused-but-set-parameter warning. */ -+ some_global = a; -+ } -+ static void *start_routine(void *a) { return a; }], -+ [pthread_t th; pthread_attr_t attr; -+ pthread_create(&th, 0, start_routine, 0); -+ pthread_join(th, 0); -+ pthread_attr_init(&attr); -+ pthread_cleanup_push(routine, 0); -+ pthread_cleanup_pop(0) /* ; */])], -+ [ax_pthread_ok=yes], -+ []) -+ -+ CFLAGS="$ax_pthread_save_CFLAGS" -+ LIBS="$ax_pthread_save_LIBS" -+ -+ AC_MSG_RESULT([$ax_pthread_ok]) -+ AS_IF([test "x$ax_pthread_ok" = "xyes"], [break]) -+ -+ PTHREAD_LIBS="" -+ PTHREAD_CFLAGS="" -+done -+fi - --ax_pthread_clang_warning=no - - # Clang needs special handling, because older versions handle the -pthread - # option in a rather... idiosyncratic way -@@ -261,11 +358,6 @@ if test "x$ax_pthread_clang" = "xyes"; then - # -pthread does define _REENTRANT, and while the Darwin headers - # ignore this macro, third-party headers might not.) - -- PTHREAD_CFLAGS="-pthread" -- PTHREAD_LIBS= -- -- ax_pthread_ok=yes -- - # However, older versions of Clang make a point of warning the user - # that, in an invocation where only linking and no compilation is - # taking place, the -pthread option has no effect ("argument unused -@@ -320,78 +412,7 @@ if test "x$ax_pthread_clang" = "xyes"; then - - fi # $ax_pthread_clang = yes - --if test "x$ax_pthread_ok" = "xno"; then --for ax_pthread_try_flag in $ax_pthread_flags; do -- -- case $ax_pthread_try_flag in -- none) -- AC_MSG_CHECKING([whether pthreads work without any flags]) -- ;; -- -- -mt,pthread) -- AC_MSG_CHECKING([whether pthreads work with -mt -lpthread]) -- PTHREAD_CFLAGS="-mt" -- PTHREAD_LIBS="-lpthread" -- ;; -- -- -*) -- AC_MSG_CHECKING([whether pthreads work with $ax_pthread_try_flag]) -- PTHREAD_CFLAGS="$ax_pthread_try_flag" -- ;; -- -- pthread-config) -- AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no]) -- AS_IF([test "x$ax_pthread_config" = "xno"], [continue]) -- PTHREAD_CFLAGS="`pthread-config --cflags`" -- PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" -- ;; - -- *) -- AC_MSG_CHECKING([for the pthreads library -l$ax_pthread_try_flag]) -- PTHREAD_LIBS="-l$ax_pthread_try_flag" -- ;; -- esac -- -- ax_pthread_save_CFLAGS="$CFLAGS" -- ax_pthread_save_LIBS="$LIBS" -- CFLAGS="$CFLAGS $PTHREAD_CFLAGS" -- LIBS="$PTHREAD_LIBS $LIBS" -- -- # Check for various functions. We must include pthread.h, -- # since some functions may be macros. (On the Sequent, we -- # need a special flag -Kthread to make this header compile.) -- # We check for pthread_join because it is in -lpthread on IRIX -- # while pthread_create is in libc. We check for pthread_attr_init -- # due to DEC craziness with -lpthreads. We check for -- # pthread_cleanup_push because it is one of the few pthread -- # functions on Solaris that doesn't have a non-functional libc stub. -- # We try pthread_create on general principles. -- -- AC_LINK_IFELSE([AC_LANG_PROGRAM([#include --# if $ax_pthread_check_cond --# error "$ax_pthread_check_macro must be defined" --# endif -- static void routine(void *a) { a = 0; } -- static void *start_routine(void *a) { return a; }], -- [pthread_t th; pthread_attr_t attr; -- pthread_create(&th, 0, start_routine, 0); -- pthread_join(th, 0); -- pthread_attr_init(&attr); -- pthread_cleanup_push(routine, 0); -- pthread_cleanup_pop(0) /* ; */])], -- [ax_pthread_ok=yes], -- []) -- -- CFLAGS="$ax_pthread_save_CFLAGS" -- LIBS="$ax_pthread_save_LIBS" -- -- AC_MSG_RESULT([$ax_pthread_ok]) -- AS_IF([test "x$ax_pthread_ok" = "xyes"], [break]) -- -- PTHREAD_LIBS="" -- PTHREAD_CFLAGS="" --done --fi - - # Various other checks: - if test "x$ax_pthread_ok" = "xyes"; then -@@ -438,7 +459,8 @@ if test "x$ax_pthread_ok" = "xyes"; then - AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT], - [ax_cv_PTHREAD_PRIO_INHERIT], - [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], -- [[int i = PTHREAD_PRIO_INHERIT;]])], -+ [[int i = PTHREAD_PRIO_INHERIT; -+ return i;]])], - [ax_cv_PTHREAD_PRIO_INHERIT=yes], - [ax_cv_PTHREAD_PRIO_INHERIT=no]) - ]) --- -2.26.0.windows.1 - diff -Nru vlc-3.0.17.4/contrib/src/harfbuzz/0003-Fix-winstore-app-detection-with-mingw64.patch vlc-3.0.18/contrib/src/harfbuzz/0003-Fix-winstore-app-detection-with-mingw64.patch --- vlc-3.0.17.4/contrib/src/harfbuzz/0003-Fix-winstore-app-detection-with-mingw64.patch 2021-04-07 09:59:31.000000000 +0000 +++ vlc-3.0.18/contrib/src/harfbuzz/0003-Fix-winstore-app-detection-with-mingw64.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ -From 6b1c0cb9a88424f4d1af769067acf1f6fea66ece Mon Sep 17 00:00:00 2001 -From: Steve Lhomme -Date: Fri, 3 Apr 2020 13:05:14 +0200 -Subject: [PATCH 3/3] Fix winstore app detection with mingw64 - -mingw64 doesn't have WINAPI_FAMILY_PC_APP and WINAPI_FAMILY_PHONE_APP but the -same detection can be achieved by testing WINAPI_PARTITION_DESKTOP. ---- - src/hb-blob.cc | 6 +++--- - src/hb-mutex.hh | 2 +- - src/hb.hh | 5 +++-- - 3 files changed, 7 insertions(+), 6 deletions(-) - -diff --git a/src/hb-blob.cc b/src/hb-blob.cc -index 2e72683c..609b87d8 100644 ---- a/src/hb-blob.cc -+++ b/src/hb-blob.cc -@@ -581,7 +581,7 @@ fail_without_close: - wchar_t * wchar_file_name = (wchar_t *) malloc (sizeof (wchar_t) * size); - if (unlikely (wchar_file_name == nullptr)) goto fail_without_close; - mbstowcs (wchar_file_name, file_name, size); --#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY==WINAPI_FAMILY_PC_APP || WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP) -+#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - { - CREATEFILE2_EXTENDED_PARAMETERS ceparams = { 0 }; - ceparams.dwSize = sizeof(CREATEFILE2_EXTENDED_PARAMETERS); -@@ -602,7 +602,7 @@ fail_without_close: - - if (unlikely (fd == INVALID_HANDLE_VALUE)) goto fail_without_close; - --#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY==WINAPI_FAMILY_PC_APP || WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP) -+#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - { - LARGE_INTEGER length; - GetFileSizeEx (fd, &length); -@@ -615,7 +615,7 @@ fail_without_close: - #endif - if (unlikely (file->mapping == nullptr)) goto fail; - --#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY==WINAPI_FAMILY_PC_APP || WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP) -+#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - file->contents = (char *) MapViewOfFileFromApp (file->mapping, FILE_MAP_READ, 0, 0); - #else - file->contents = (char *) MapViewOfFile (file->mapping, FILE_MAP_READ, 0, 0, 0); -diff --git a/src/hb-mutex.hh b/src/hb-mutex.hh -index e7f8b1c4..f48d6b29 100644 ---- a/src/hb-mutex.hh -+++ b/src/hb-mutex.hh -@@ -64,7 +64,7 @@ typedef pthread_mutex_t hb_mutex_impl_t; - #include - typedef CRITICAL_SECTION hb_mutex_impl_t; - #define HB_MUTEX_IMPL_INIT {0} --#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY==WINAPI_FAMILY_PC_APP || WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP) -+#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - #define hb_mutex_impl_init(M) InitializeCriticalSectionEx (M, 0, 0) - #else - #define hb_mutex_impl_init(M) InitializeCriticalSection (M) -diff --git a/src/hb.hh b/src/hb.hh -index fcbd3305..492b9848 100644 ---- a/src/hb.hh -+++ b/src/hb.hh -@@ -334,8 +334,9 @@ extern "C" void hb_free_impl(void *ptr); - # if defined(_WIN32_WINNT) && _WIN32_WINNT < 0x0600 - # undef _WIN32_WINNT - # endif -+# include - # ifndef _WIN32_WINNT --# if !defined(WINAPI_FAMILY) || !(WINAPI_FAMILY==WINAPI_FAMILY_PC_APP || WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP) -+# if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - # define _WIN32_WINNT 0x0600 - # endif - # endif -@@ -356,7 +357,7 @@ extern "C" void hb_free_impl(void *ptr); - # define HB_NO_SETLOCALE - # define HB_NO_ERRNO - # endif --# elif defined(WINAPI_FAMILY) && (WINAPI_FAMILY==WINAPI_FAMILY_PC_APP || WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP) -+# elif !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - # ifndef HB_NO_GETENV - # define HB_NO_GETENV - # endif --- -2.26.0.windows.1 - diff -Nru vlc-3.0.17.4/contrib/src/harfbuzz/0004-Don-t-treat-Wunused-as-an-error.patch vlc-3.0.18/contrib/src/harfbuzz/0004-Don-t-treat-Wunused-as-an-error.patch --- vlc-3.0.17.4/contrib/src/harfbuzz/0004-Don-t-treat-Wunused-as-an-error.patch 2021-06-10 20:07:23.000000000 +0000 +++ vlc-3.0.18/contrib/src/harfbuzz/0004-Don-t-treat-Wunused-as-an-error.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -From 130296d079a65b26b15acb9d0a69ef9497fad701 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Martin=20Storsj=C3=B6?= -Date: Wed, 2 Jun 2021 09:49:24 +0300 -Subject: [PATCH 4/4] Don't treat -Wunused as an error - -This is a fragile warning - newer compilers can add warnings to cases -that weren't there before. - -Clang 13 got support for the -Wunused-but-set-variable warning, which -gets enabled implicitly via -Wunused, and it warns on one variable -like this: - -hb-subset-cff1.cc:405:33: error: variable 'supp_size' set but not used [-Werror, --Wunused-but-set-variable] - unsigned int size0, size1, supp_size; - ^ ---- - src/hb.hh | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/hb.hh b/src/hb.hh -index e46aa0b6e..b0beaaa81 100644 ---- a/src/hb.hh -+++ b/src/hb.hh -@@ -86,10 +86,8 @@ - #pragma GCC diagnostic error "-Wswitch-enum" - #pragma GCC diagnostic error "-Wtautological-overlap-compare" - #pragma GCC diagnostic error "-Wunneeded-internal-declaration" --#pragma GCC diagnostic error "-Wunused" - #pragma GCC diagnostic error "-Wunused-local-typedefs" - #pragma GCC diagnostic error "-Wunused-value" --#pragma GCC diagnostic error "-Wunused-variable" - #pragma GCC diagnostic error "-Wvla" - #pragma GCC diagnostic error "-Wwrite-strings" - #endif -@@ -107,6 +105,8 @@ - #pragma GCC diagnostic warning "-Wmaybe-uninitialized" - #pragma GCC diagnostic warning "-Wmissing-format-attribute" - #pragma GCC diagnostic warning "-Wundef" -+#pragma GCC diagnostic warning "-Wunused" -+#pragma GCC diagnostic warning "-Wunused-variable" - #endif - - /* Ignored currently, but should be fixed at some point. */ --- -2.25.1 - diff -Nru vlc-3.0.17.4/contrib/src/harfbuzz/rules.mak vlc-3.0.18/contrib/src/harfbuzz/rules.mak --- vlc-3.0.17.4/contrib/src/harfbuzz/rules.mak 2021-06-10 20:07:23.000000000 +0000 +++ vlc-3.0.18/contrib/src/harfbuzz/rules.mak 2022-05-31 16:10:59.000000000 +0000 @@ -1,6 +1,6 @@ # HARFBUZZ -HARFBUZZ_VERSION := 2.6.8 +HARFBUZZ_VERSION := 3.4.0 HARFBUZZ_URL := https://github.com/harfbuzz/harfbuzz/releases/download/$(HARFBUZZ_VERSION)/harfbuzz-$(HARFBUZZ_VERSION).tar.xz PKGS += harfbuzz ifeq ($(call need_pkg,"harfbuzz"),) @@ -14,23 +14,23 @@ harfbuzz: harfbuzz-$(HARFBUZZ_VERSION).tar.xz .sum-harfbuzz $(UNPACK) - $(APPLY) $(SRC)/harfbuzz/0001-fix-OSAtomic-calls-for-AArch64.patch - $(APPLY) $(SRC)/harfbuzz/0002-Update-the-bundled-ax_pthread.m4.patch - $(APPLY) $(SRC)/harfbuzz/0003-Fix-winstore-app-detection-with-mingw64.patch - $(APPLY) $(SRC)/harfbuzz/0004-Don-t-treat-Wunused-as-an-error.patch + $(APPLY) $(SRC)/harfbuzz/0001-meson-Enable-big-objects-support-when-building-for-w.patch $(MOVE) DEPS_harfbuzz = freetype2 $(DEPS_freetype2) -HARFBUZZ_CONF := --with-freetype \ - --without-glib +HARFBUZZ_CONF := -Dfreetype=enabled \ + -Dglib=disabled \ + -Dgobject=disabled \ + -Ddocs=disabled \ + -Dtests=disabled ifdef HAVE_DARWIN_OS -HARFBUZZ_CONF += --with-coretext +HARFBUZZ_CONF += -Dcoretext=enabled endif -.harfbuzz: harfbuzz - $(RECONF) - cd $< && $(HOSTVARS_PIC) ./configure $(HOSTCONF) $(HARFBUZZ_CONF) ICU_CONFIG=false - cd $< && $(MAKE) install +.harfbuzz: harfbuzz crossfile.meson + cd $< && rm -rf ./build + cd $< && $(HOSTVARS_MESON) $(MESON) $(HARFBUZZ_CONF) build + cd $< && cd build && ninja install touch $@ diff -Nru vlc-3.0.17.4/contrib/src/harfbuzz/SHA512SUMS vlc-3.0.18/contrib/src/harfbuzz/SHA512SUMS --- vlc-3.0.17.4/contrib/src/harfbuzz/SHA512SUMS 2021-06-07 09:06:03.000000000 +0000 +++ vlc-3.0.18/contrib/src/harfbuzz/SHA512SUMS 2022-05-31 16:10:59.000000000 +0000 @@ -1 +1 @@ -651b23d7d4fab6fef472ee57db39bbaebc31c2f40ea3a482c1499ad1a7b549b86a2bccbe9da191c8e9ecdf464191dd3c9a7485546b51695ad8ab3c0329732d9d harfbuzz-2.6.8.tar.xz +f300d041aa4af8f7957d5b352af399b9e411804a33ac710b3728247e23a02b867514537cc2b6fcf00746e71ac7a5a2a4b1392253bb5a888baa39b8a0193144c0 harfbuzz-3.4.0.tar.xz diff -Nru vlc-3.0.17.4/contrib/src/libarchive/rules.mak vlc-3.0.18/contrib/src/libarchive/rules.mak --- vlc-3.0.17.4/contrib/src/libarchive/rules.mak 2022-02-21 09:19:25.000000000 +0000 +++ vlc-3.0.18/contrib/src/libarchive/rules.mak 2022-07-23 11:01:40.000000000 +0000 @@ -1,5 +1,5 @@ # LIBARCHIVE -LIBARCHIVE_VERSION := 3.6.0 +LIBARCHIVE_VERSION := 3.6.1 LIBARCHIVE_URL := http://www.libarchive.org/downloads/libarchive-$(LIBARCHIVE_VERSION).tar.gz PKGS += libarchive diff -Nru vlc-3.0.17.4/contrib/src/libarchive/SHA512SUMS vlc-3.0.18/contrib/src/libarchive/SHA512SUMS --- vlc-3.0.17.4/contrib/src/libarchive/SHA512SUMS 2022-02-21 09:19:25.000000000 +0000 +++ vlc-3.0.18/contrib/src/libarchive/SHA512SUMS 2022-07-23 11:01:40.000000000 +0000 @@ -1 +1 @@ -700579c5dd15b61333cc4dbf01ebfbd26d6e8c20d5cbe6525683634418fec5c87a5a1e28a81cc59ad7c94218682e406aa3b55d81036bd9fa31d83d989c6d764c libarchive-3.6.0.tar.gz +58f7ac0c52116f73326a07dec10ff232be33b318862078785dc39f1fb2f8773b5194eabfa14764bb51ce6a5a1aa8820526e7f4c76087a6f4fcbe7789a22275b4 libarchive-3.6.1.tar.gz diff -Nru vlc-3.0.17.4/contrib/src/libdsm/rules.mak vlc-3.0.18/contrib/src/libdsm/rules.mak --- vlc-3.0.17.4/contrib/src/libdsm/rules.mak 2021-07-03 11:08:08.000000000 +0000 +++ vlc-3.0.18/contrib/src/libdsm/rules.mak 2022-07-23 08:04:37.000000000 +0000 @@ -1,14 +1,13 @@ # libdsm -#LIBDSM_GITURL := git://github.com/videolabs/libdsm.git -LIBDSM_VERSION := 0.3.2 -LIBDSM_URL := https://github.com/videolabs/libdsm/releases/download/v$(LIBDSM_VERSION)/libdsm-$(LIBDSM_VERSION).tar.gz +LIBDSM_VERSION := 0.4.3 +LIBDSM_URL := https://github.com/videolabs/libdsm/releases/download/v$(LIBDSM_VERSION)/libdsm-$(LIBDSM_VERSION).tar.xz ifeq ($(call need_pkg,"libdsm >= 0.2.0"),) PKGS_FOUND += libdsm endif -$(TARBALLS)/libdsm-$(LIBDSM_VERSION).tar.gz: +$(TARBALLS)/libdsm-$(LIBDSM_VERSION).tar.xz: $(call download_pkg,$(LIBDSM_URL),libdsm) LIBDSM_CONF = $(HOSTCONF) @@ -16,9 +15,9 @@ ifndef WITH_OPTIMIZATION LIBDSM_CONF += --enable-debug endif -.sum-libdsm: libdsm-$(LIBDSM_VERSION).tar.gz +.sum-libdsm: libdsm-$(LIBDSM_VERSION).tar.xz -libdsm: libdsm-$(LIBDSM_VERSION).tar.gz .sum-libdsm +libdsm: libdsm-$(LIBDSM_VERSION).tar.xz .sum-libdsm $(UNPACK) $(MOVE) @@ -27,11 +26,8 @@ DEPS_libdsm += pthreads $(DEPS_pthreads) endif -.libdsm: libdsm - cd $< && touch "config.rpath" - $(RECONF) - cd $< && $(HOSTVARS_PIC) ./configure --disable-programs $(LIBDSM_CONF) - cd $< && $(MAKE) - $(call pkg_static,"libdsm.pc") - cd $< && $(MAKE) install +.libdsm: libdsm crossfile.meson + cd $< && rm -rf ./build + cd $< && $(HOSTVARS_MESON) $(MESON) -Dauto_features=disabled -Dbinaries=false build + cd $< && cd build && ninja install touch $@ diff -Nru vlc-3.0.17.4/contrib/src/libdsm/SHA512SUMS vlc-3.0.18/contrib/src/libdsm/SHA512SUMS --- vlc-3.0.17.4/contrib/src/libdsm/SHA512SUMS 2020-03-24 10:52:09.000000000 +0000 +++ vlc-3.0.18/contrib/src/libdsm/SHA512SUMS 2022-07-23 08:04:37.000000000 +0000 @@ -1 +1 @@ -59963c1d12839004c7e3717cf5f029ffc5f10d72b133d88c33c1367f4343befb170c2b10f7cbc690d1700b380e298436e34b80fc214546f6ded104c649ee21eb libdsm-0.3.2.tar.gz +4abe2318aa5d63397404ce87fc42be30d364dffef3bdf6e081a2bb3ac4f011f39fa8acb5ba06361e94795a308df321b077e7a3cf2ec10d5e1e6c9b912cbbd8ba libdsm-0.4.3.tar.xz diff -Nru vlc-3.0.17.4/contrib/src/libxml2/bins.patch vlc-3.0.18/contrib/src/libxml2/bins.patch --- vlc-3.0.17.4/contrib/src/libxml2/bins.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/libxml2/bins.patch 2022-05-31 16:10:44.000000000 +0000 @@ -1,17 +1,17 @@ ---- libxml2/Makefile.am.orig 2013-08-20 13:57:37.911178174 +0200 -+++ libxml2/Makefile.am 2013-08-20 13:57:44.543177895 +0200 +--- libxml2-2.9.14/Makefile.am.orig 2022-05-02 12:52:41.000000000 +0200 ++++ libxml2-2.9.14/Makefile.am 2022-05-26 19:38:23.251503583 +0200 @@ -2,7 +2,7 @@ ACLOCAL_AMFLAGS = -I m4 --SUBDIRS = include . doc example xstc $(PYTHON_SUBDIR) -+SUBDIRS = include . xstc $(PYTHON_SUBDIR) +-SUBDIRS = include . doc example fuzz xstc $(PYTHON_SUBDIR) ++SUBDIRS = include . fuzz xstc $(PYTHON_SUBDIR) - DIST_SUBDIRS = include . doc example python xstc + DIST_SUBDIRS = include . doc example fuzz python xstc @@ -15,7 +15,7 @@ - # testReader testapi testModule runtest runsuite testchar \ - # testdict runxmlconf testrecurse testlimits + testReader testapi testModule runtest runsuite testchar \ + testdict runxmlconf testrecurse testlimits -bin_PROGRAMS = xmllint xmlcatalog +bin_PROGRAMS = diff -Nru vlc-3.0.17.4/contrib/src/libxml2/pthread.patch vlc-3.0.18/contrib/src/libxml2/pthread.patch --- vlc-3.0.17.4/contrib/src/libxml2/pthread.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/libxml2/pthread.patch 2022-05-31 16:10:44.000000000 +0000 @@ -1,6 +1,6 @@ ---- libxml2-2.9.2/configure.ac 2015-01-21 10:40:13.706152933 +0100 -+++ libxml2-2.9.2/configure.ac.new 2015-01-21 10:39:36.014876563 +0100 -@@ -1049,12 +1049,17 @@ +--- libxml2-2.9.14/configure.ac.orig 2022-05-02 13:12:33.000000000 +0200 ++++ libxml2-2.9.14/configure.ac 2022-05-26 19:45:13.697273909 +0200 +@@ -1036,11 +1036,16 @@ dnl Use pthread by default in other cases if test -z "$THREADS_W32"; then if test "$with_threads" = "pthread" || test "$with_threads" = "" || test "$with_threads" = "yes" ; then @@ -13,7 +13,6 @@ + if test "$THREAD_LIBS" = "none required"; then + THREAD_LIBS="" + fi - AC_DEFINE([HAVE_LIBPTHREAD], [], [Define if pthread library is there (-lpthread)]) AC_DEFINE([HAVE_PTHREAD_H], [], [Define if is there]) WITH_THREADS="1"])) + LIBS="$LIBS_saved" diff -Nru vlc-3.0.17.4/contrib/src/libxml2/rules.mak vlc-3.0.18/contrib/src/libxml2/rules.mak --- vlc-3.0.17.4/contrib/src/libxml2/rules.mak 2018-03-14 22:07:38.000000000 +0000 +++ vlc-3.0.18/contrib/src/libxml2/rules.mak 2022-05-31 16:10:44.000000000 +0000 @@ -1,17 +1,17 @@ # libxml2 -LIBXML2_VERSION := 2.9.8 -LIBXML2_URL := http://xmlsoft.org/sources/libxml2-$(LIBXML2_VERSION).tar.gz +LIBXML2_VERSION := 2.9.14 +LIBXML2_URL := https://download.gnome.org/sources/libxml2/2.9/libxml2-$(LIBXML2_VERSION).tar.xz PKGS += libxml2 ifeq ($(call need_pkg,"libxml-2.0"),) PKGS_FOUND += libxml2 endif -$(TARBALLS)/libxml2-$(LIBXML2_VERSION).tar.gz: +$(TARBALLS)/libxml2-$(LIBXML2_VERSION).tar.xz: $(call download_pkg,$(LIBXML2_URL),libxml2) -.sum-libxml2: libxml2-$(LIBXML2_VERSION).tar.gz +.sum-libxml2: libxml2-$(LIBXML2_VERSION).tar.xz XMLCONF = --with-minimal \ --with-catalog \ @@ -35,7 +35,7 @@ XMLCONF+= --without-debug endif -libxml2: libxml2-$(LIBXML2_VERSION).tar.gz .sum-libxml2 +libxml2: libxml2-$(LIBXML2_VERSION).tar.xz .sum-libxml2 $(UNPACK) $(APPLY) $(SRC)/libxml2/win32.patch $(APPLY) $(SRC)/libxml2/bins.patch diff -Nru vlc-3.0.17.4/contrib/src/libxml2/SHA512SUMS vlc-3.0.18/contrib/src/libxml2/SHA512SUMS --- vlc-3.0.17.4/contrib/src/libxml2/SHA512SUMS 2018-03-14 22:07:38.000000000 +0000 +++ vlc-3.0.18/contrib/src/libxml2/SHA512SUMS 2022-05-31 16:10:44.000000000 +0000 @@ -1 +1 @@ -28903282c7672206effa1362fd564cbe4cf5be44264b083a7d14e383f73bccd1b81bcafb5f4f2f56f5e7e05914c660e27668c9ce91b1b9f256ef5358d55ba917 libxml2-2.9.8.tar.gz +d08e6cafb289c499fdc5b3a12181e032a34f7a249bc66758859f964d3e71e19fd69be79921e1a9d8ab1e692d15b13f5fae95eeb10c3236974d89e218f5107606 libxml2-2.9.14.tar.xz diff -Nru vlc-3.0.17.4/contrib/src/live555/no-gettimeofday.patch vlc-3.0.18/contrib/src/live555/no-gettimeofday.patch --- vlc-3.0.17.4/contrib/src/live555/no-gettimeofday.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/live555/no-gettimeofday.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ ---- live555/groupsock/GroupsockHelper.cpp.orig 2016-03-31 10:17:46.284928287 +0200 -+++ live555/groupsock/GroupsockHelper.cpp 2016-03-31 10:20:20.428341877 +0200 -@@ -27,6 +27,7 @@ - #include - #include - #include -+#include - #define initializeWinsockIfNecessary() 1 - #endif - #if defined(__WIN32__) || defined(_WIN32) || defined(_QNX4) ---- live555/groupsock/include/GroupsockHelper.hh.orig 2016-03-31 10:22:56.667834195 +0200 -+++ live555/groupsock/include/GroupsockHelper.hh 2016-03-31 10:23:37.411710728 +0200 -@@ -133,6 +133,8 @@ - #if (defined(__WIN32__) || defined(_WIN32)) && !defined(__MINGW32__) - // For Windoze, we need to implement our own gettimeofday() - extern int gettimeofday(struct timeval*, int*); -+#else -+#include - #endif - - // The following are implemented in inet.c: diff -Nru vlc-3.0.17.4/contrib/src/main.mak vlc-3.0.18/contrib/src/main.mak --- vlc-3.0.17.4/contrib/src/main.mak 2022-04-18 22:10:15.000000000 +0000 +++ vlc-3.0.18/contrib/src/main.mak 2022-05-31 16:10:59.000000000 +0000 @@ -142,9 +142,12 @@ LN_S = ln -s ifdef HAVE_WIN32 -ifneq ($(shell $(CC) $(CFLAGS) -E -dM -include _mingw.h - < /dev/null | grep -E __MINGW64_VERSION_MAJOR),) +MINGW_W64_VERSION := $(shell echo "__MINGW64_VERSION_MAJOR" | $(CC) $(CFLAGS) -E -include _mingw.h - | tail -n 1) +ifneq ($(MINGW_W64_VERSION),) HAVE_MINGW_W64 := 1 +mingw_at_least = $(shell [ $(MINGW_W64_VERSION) -gt $(1) ] && echo true) endif +HAVE_WINPTHREAD := $(shell $(CC) $(CFLAGS) -E -dM -include pthread.h - < /dev/null >/dev/null 2>&1 || echo FAIL) ifndef HAVE_CROSS_COMPILE LN_S = cp -R endif @@ -184,6 +187,10 @@ HAVE_FPU = 1 endif endif +else ifneq ($(filter riscv%, $(ARCH)),) +ifneq ($(call cppcheck, __riscv_flen),) +HAVE_FPU = 1 +endif else ifneq ($(call cppcheck, __mips_hard_float),) HAVE_FPU = 1 endif @@ -381,7 +388,8 @@ CMAKEBUILD := cmake --build CMAKE = cmake . -DCMAKE_TOOLCHAIN_FILE=$(abspath toolchain.cmake) \ -DCMAKE_INSTALL_PREFIX:STRING=$(PREFIX) \ - -DBUILD_SHARED_LIBS:BOOL=OFF + -DBUILD_SHARED_LIBS:BOOL=OFF \ + -DCMAKE_INSTALL_LIBDIR:STRING=lib ifdef HAVE_WIN32 CMAKE += -DCMAKE_DEBUG_POSTFIX:STRING= endif diff -Nru vlc-3.0.17.4/contrib/src/modplug/rules.mak vlc-3.0.18/contrib/src/modplug/rules.mak --- vlc-3.0.17.4/contrib/src/modplug/rules.mak 2020-05-18 09:26:57.000000000 +0000 +++ vlc-3.0.18/contrib/src/modplug/rules.mak 2022-09-22 18:08:33.000000000 +0000 @@ -8,6 +8,8 @@ PKGS_FOUND += modplug endif +MODPLUG_CXXFLAGS := $(CXXFLAGS) -std=gnu++98 + $(TARBALLS)/libmodplug-$(MODPLUG_VERSION).tar.gz: $(call download_pkg,$(MODPLUG_URL),modplug) @@ -26,6 +28,6 @@ .modplug: libmodplug $(RECONF) - cd $< && $(HOSTVARS) ./configure $(HOSTCONF) + cd $< && $(HOSTVARS) CXXFLAGS="$(MODPLUG_CXXFLAGS)" ./configure $(HOSTCONF) cd $< && $(MAKE) install touch $@ diff -Nru vlc-3.0.17.4/contrib/src/mpg123/rules.mak vlc-3.0.18/contrib/src/mpg123/rules.mak --- vlc-3.0.17.4/contrib/src/mpg123/rules.mak 2022-02-21 09:19:25.000000000 +0000 +++ vlc-3.0.18/contrib/src/mpg123/rules.mak 2022-07-23 11:00:52.000000000 +0000 @@ -1,5 +1,5 @@ # mpg123 -MPG123_VERSION := 1.29.3 +MPG123_VERSION := 1.30.1 MPG123_URL := $(SF)/mpg123/mpg123/$(MPG123_VERSION)/mpg123-$(MPG123_VERSION).tar.bz2 PKGS += mpg123 diff -Nru vlc-3.0.17.4/contrib/src/mpg123/SHA512SUMS vlc-3.0.18/contrib/src/mpg123/SHA512SUMS --- vlc-3.0.17.4/contrib/src/mpg123/SHA512SUMS 2022-02-21 09:19:25.000000000 +0000 +++ vlc-3.0.18/contrib/src/mpg123/SHA512SUMS 2022-07-23 11:00:52.000000000 +0000 @@ -1 +1 @@ -0d8db63f9bae1507887bc5241a56abccfeb767b7ba8362eb0fce9de2f63369e57fdd6f25a953f8ef5f9ead4f400237db51914816e278566fdf8e6f205ebca5d6 mpg123-1.29.3.tar.bz2 +098fcecc6a570e32ccd164b62428417186265905d148d009ea592c948a02027d67fc43e015ece21cf900008f31bbe35b3ec770faba5ae0b914db0022cb6b37fd mpg123-1.30.1.tar.bz2 diff -Nru vlc-3.0.17.4/contrib/src/nettle/fix-cc-for-build.patch vlc-3.0.18/contrib/src/nettle/fix-cc-for-build.patch --- vlc-3.0.17.4/contrib/src/nettle/fix-cc-for-build.patch 2021-01-17 20:31:01.000000000 +0000 +++ vlc-3.0.18/contrib/src/nettle/fix-cc-for-build.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ -From 91df68136ad1562cf9217599254706d8cfa970ea Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Adrien=20B=C3=A9raud?= -Date: Sun, 20 Sep 2020 19:35:54 +0200 -Subject: [PATCH] m4: follow GMP changes for GMP_PROG_CC_FOR_BUILD - ---- - aclocal.m4 | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/aclocal.m4 b/aclocal.m4 -index 513b2df4..e81e0351 100644 ---- a/aclocal.m4 -+++ b/aclocal.m4 -@@ -369,7 +369,7 @@ cat >conftest.c <= 2.7"),) @@ -20,7 +20,6 @@ nettle: nettle-$(NETTLE_VERSION).tar.gz .sum-nettle $(UNPACK) - $(APPLY) $(SRC)/nettle/fix-cc-for-build.patch $(MOVE) DEPS_nettle = gmp $(DEPS_gmp) diff -Nru vlc-3.0.17.4/contrib/src/nettle/SHA512SUMS vlc-3.0.18/contrib/src/nettle/SHA512SUMS --- vlc-3.0.17.4/contrib/src/nettle/SHA512SUMS 2020-07-27 08:31:07.000000000 +0000 +++ vlc-3.0.18/contrib/src/nettle/SHA512SUMS 2022-07-23 08:04:37.000000000 +0000 @@ -1 +1 @@ -26aefbbe9927e90e28f271e56d2ba876611831222d0e1e1a58bdb75bbd50934fcd84418a4fe47b845f557e60a9786a72a4de2676c930447b104f2256aca7a54f nettle-3.4.1.tar.gz +9901eba305421adff6d551ac7f478dff3f68a339d444c776724ab0b977fe6be792b1d2950c8705acbe76bd924fd6d898a65eded546777884be3b436d0e052437 nettle-3.7.3.tar.gz diff -Nru vlc-3.0.17.4/contrib/src/postproc/rules.mak vlc-3.0.18/contrib/src/postproc/rules.mak --- vlc-3.0.17.4/contrib/src/postproc/rules.mak 2021-01-17 20:31:01.000000000 +0000 +++ vlc-3.0.18/contrib/src/postproc/rules.mak 2022-05-31 16:10:59.000000000 +0000 @@ -50,6 +50,11 @@ POSTPROCCONF += --arch=mips64 endif +# RISC-V stuff +ifneq ($(findstring $(ARCH),riscv32 riscv64),) +POSTPROCCONF += --arch=riscv +endif + # x86 stuff ifeq ($(ARCH),i386) POSTPROCCONF += --arch=x86 diff -Nru vlc-3.0.17.4/contrib/src/projectM/missing-includes.patch vlc-3.0.18/contrib/src/projectM/missing-includes.patch --- vlc-3.0.17.4/contrib/src/projectM/missing-includes.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/projectM/missing-includes.patch 2022-05-24 20:36:20.000000000 +0000 @@ -0,0 +1,10 @@ +--- projectM/Renderer/Waveform.cpp.orig 2022-04-27 10:54:35.706616587 +0300 ++++ projectM/Renderer/Waveform.cpp 2022-04-27 10:54:43.374663065 +0300 +@@ -17,6 +17,7 @@ + + #include "Waveform.hpp" + #include ++#include + #include "BeatDetect.hpp" + + Waveform::Waveform(int samples) diff -Nru vlc-3.0.17.4/contrib/src/projectM/rules.mak vlc-3.0.18/contrib/src/projectM/rules.mak --- vlc-3.0.17.4/contrib/src/projectM/rules.mak 2021-01-17 20:31:01.000000000 +0000 +++ vlc-3.0.18/contrib/src/projectM/rules.mak 2022-09-22 18:08:33.000000000 +0000 @@ -28,6 +28,7 @@ endif $(APPLY) $(SRC)/projectM/gcc6.patch $(APPLY) $(SRC)/projectM/clang6.patch + $(APPLY) $(SRC)/projectM/missing-includes.patch $(MOVE) DEPS_projectM = glew $(DEPS_glew) @@ -35,6 +36,7 @@ .projectM: projectM toolchain.cmake cd $< && rm -f CMakeCache.txt cd $< && $(HOSTVARS) $(CMAKE) \ + -DCMAKE_CXX_STANDARD=98 \ -DINCLUDE-PROJECTM-LIBVISUAL:BOOL=OFF \ -DDISABLE_NATIVE_PRESETS:BOOL=ON \ -DUSE_FTGL:BOOL=OFF \ diff -Nru vlc-3.0.17.4/contrib/src/pthreads/rules.mak vlc-3.0.18/contrib/src/pthreads/rules.mak --- vlc-3.0.17.4/contrib/src/pthreads/rules.mak 2022-04-18 22:10:15.000000000 +0000 +++ vlc-3.0.18/contrib/src/pthreads/rules.mak 2022-05-24 20:35:27.000000000 +0000 @@ -1,18 +1,39 @@ -# winpthreads +# winpthreads, dxvahd -WINPTHREADS_VERSION := 7.0.0 -WINPTHREADS_URL := https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/mingw-w64-v$(WINPTHREADS_VERSION).tar.bz2/download +MINGW64_VERSION := 9.0.0 +MINGW64_URL := https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/mingw-w64-v$(MINGW64_VERSION).tar.bz2/download +MINGW64_HASH=2c35e8ff0d33916bd490e8932cba2049cd1af3d0 +MINGW64_GITURL := https://git.code.sf.net/p/mingw-w64/mingw-w64 ifdef HAVE_WIN32 PKGS += pthreads + +ifndef HAVE_VISUALSTUDIO +PKGS += dxva dxvahd +PKGS_ALL += dxva dxvahd +ifeq ($(call mingw_at_least, 8), true) +PKGS_FOUND += dxvahd +endif # MINGW 8 +ifeq ($(call mingw_at_least, 10), true) +PKGS_FOUND += dxva +endif # MINGW 10 +ifeq ($(HAVE_WINPTHREAD),) +PKGS_FOUND += pthreads endif +endif # !HAVE_VISUALSTUDIO +endif # HAVE_WIN32 + +$(TARBALLS)/mingw-w64-$(MINGW64_HASH).tar.xz: + $(call download_git,$(MINGW64_GITURL),,$(MINGW64_HASH)) -$(TARBALLS)/mingw-w64-v$(WINPTHREADS_VERSION).tar.bz2: - $(call download_pkg,$(WINPTHREADS_URL),winpthreads) +$(TARBALLS)/mingw-w64-v$(MINGW64_VERSION).tar.bz2: + $(call download_pkg,$(MINGW64_URL),winpthreads) -.sum-pthreads: mingw-w64-v$(WINPTHREADS_VERSION).tar.bz2 +# .sum-pthreads: mingw-w64-v$(MINGW64_VERSION).tar.bz2 +.sum-pthreads: mingw-w64-$(MINGW64_HASH).tar.xz -pthreads: mingw-w64-v$(WINPTHREADS_VERSION).tar.bz2 .sum-pthreads +# pthreads: mingw-w64-v$(MINGW64_VERSION).tar.bz2 .sum-pthreads +pthreads: mingw-w64-$(MINGW64_HASH).tar.xz .sum-pthreads $(UNPACK) $(MOVE) @@ -20,3 +41,20 @@ cd $ +Date: Tue, 8 May 2018 10:54:24 -0700 +Subject: [PATCH 14/14] QtTest: compile in C++17 mode: no more + std::unary_function + +Change-Id: I5d0ee9389a794d80983efffd152cbce4da448ddf +Reviewed-by: Olivier Goffart (Woboq GmbH) +Backport-Of: 2c93ff91bebaffec5d1adc6575521f0d4507fe8a (v5.11.1) +--- + src/testlib/qtesttable.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/testlib/qtesttable.cpp b/src/testlib/qtesttable.cpp +index 05cce37a47..4e50089898 100644 +--- a/src/testlib/qtesttable.cpp ++++ b/src/testlib/qtesttable.cpp +@@ -132,7 +132,7 @@ QTestData *QTestTable::testData(int index) const + return size_t(index) < d->dataList.size() ? d->dataList[index] : Q_NULLPTR; + } + +-class NamePredicate : public std::unary_function ++class NamePredicate + { + public: + explicit NamePredicate(const char *needle) : m_needle(needle) {} +-- +2.25.1 + diff -Nru vlc-3.0.17.4/contrib/src/qt/0015-foreach-remove-implementations-not-using-decltype.patch vlc-3.0.18/contrib/src/qt/0015-foreach-remove-implementations-not-using-decltype.patch --- vlc-3.0.17.4/contrib/src/qt/0015-foreach-remove-implementations-not-using-decltype.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/qt/0015-foreach-remove-implementations-not-using-decltype.patch 2022-08-24 17:42:00.000000000 +0000 @@ -0,0 +1,113 @@ +From 26c3a74b6a0b1e904e8fe88e938ce701ee1cc441 Mon Sep 17 00:00:00 2001 +From: Olivier Goffart +Date: Sat, 7 Nov 2015 13:08:16 +0100 +Subject: [PATCH 15/18] foreach: remove implementations not using decltype + +decltype is mandatory now so we can remove the implementations +of Q_FOREACH that are not using decltype + +Change-Id: If42a7fb078230ee7bdb55a9442125d7af70913e6 +Reviewed-by: Thiago Macieira +Backport-Of: ae35b2dc62625341517caadca27cc6ec40890f7d (v5.7.0) +--- + src/corelib/global/qglobal.h | 66 ++---------------------------------- + 1 file changed, 2 insertions(+), 64 deletions(-) + +diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h +index 27a14e2b66..baa9053876 100644 +--- a/src/corelib/global/qglobal.h ++++ b/src/corelib/global/qglobal.h +@@ -924,8 +924,6 @@ QT_WARNING_DISABLE_MSVC(4530) /* C++ exception handler used, but unwind semantic + # endif + #endif + +-#if defined(Q_COMPILER_DECLTYPE) || defined(Q_CC_GNU) +-/* make use of decltype or GCC's __typeof__ extension */ + template + class QForeachContainer { + QForeachContainer &operator=(const QForeachContainer &) Q_DECL_EQ_DELETE; +@@ -936,17 +934,6 @@ public: + int control; + }; + +-// We need to use __typeof__ if we don't have decltype or if the compiler +-// hasn't been updated to the fix of Core Language Defect Report 382 +-// (http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#382). +-// GCC 4.3 and 4.4 have support for decltype, but are affected by DR 382. +-# if defined(Q_COMPILER_DECLTYPE) && \ +- (defined(Q_CC_CLANG) || defined(Q_CC_INTEL) || !defined(Q_CC_GNU) || Q_CC_GNU >= 405) +-# define QT_FOREACH_DECLTYPE(x) typename QtPrivate::remove_reference::type +-# else +-# define QT_FOREACH_DECLTYPE(x) __typeof__((x)) +-# endif +- + // Explanation of the control word: + // - it's initialized to 1 + // - that means both the inner and outer loops start +@@ -956,61 +943,12 @@ public: + // the outer loop to continue executing + // - if there was a break inside the inner loop, it will exit with control still + // set to 1; in that case, the outer loop will invert it to 0 and will exit too +-# define Q_FOREACH(variable, container) \ +-for (QForeachContainer _container_((container)); \ ++#define Q_FOREACH(variable, container) \ ++for (QForeachContainer::type> _container_((container)); \ + _container_.control && _container_.i != _container_.e; \ + ++_container_.i, _container_.control ^= 1) \ + for (variable = *_container_.i; _container_.control; _container_.control = 0) + +-#else +- +-struct QForeachContainerBase {}; +- +-template +-class QForeachContainer : public QForeachContainerBase { +- QForeachContainer &operator=(const QForeachContainer &) Q_DECL_EQ_DELETE; +-public: +- inline QForeachContainer(const T& t): c(t), brk(0), i(c.begin()), e(c.end()){} +- QForeachContainer(const QForeachContainer &other) +- : c(other.c), brk(other.brk), i(other.i), e(other.e) {} +- const T c; +- mutable int brk; +- mutable typename T::const_iterator i, e; +- inline bool condition() const { return (!brk++ && i != e); } +-}; +- +-template inline T *qForeachPointer(const T &) { return 0; } +- +-template inline QForeachContainer qForeachContainerNew(const T& t) +-{ return QForeachContainer(t); } +- +-template +-inline const QForeachContainer *qForeachContainer(const QForeachContainerBase *base, const T *) +-{ return static_cast *>(base); } +- +-#if defined(Q_CC_DIAB) +-// VxWorks DIAB generates unresolvable symbols, if container is a function call +-# define Q_FOREACH(variable,container) \ +- if(0){}else \ +- for (const QForeachContainerBase &_container_ = qForeachContainerNew(container); \ +- qForeachContainer(&_container_, (__typeof__(container) *) 0)->condition(); \ +- ++qForeachContainer(&_container_, (__typeof__(container) *) 0)->i) \ +- for (variable = *qForeachContainer(&_container_, (__typeof__(container) *) 0)->i; \ +- qForeachContainer(&_container_, (__typeof__(container) *) 0)->brk; \ +- --qForeachContainer(&_container_, (__typeof__(container) *) 0)->brk) +- +-#else +-# define Q_FOREACH(variable, container) \ +- for (const QForeachContainerBase &_container_ = qForeachContainerNew(container); \ +- qForeachContainer(&_container_, true ? 0 : qForeachPointer(container))->condition(); \ +- ++qForeachContainer(&_container_, true ? 0 : qForeachPointer(container))->i) \ +- for (variable = *qForeachContainer(&_container_, true ? 0 : qForeachPointer(container))->i; \ +- qForeachContainer(&_container_, true ? 0 : qForeachPointer(container))->brk; \ +- --qForeachContainer(&_container_, true ? 0 : qForeachPointer(container))->brk) +-#endif // MSVC6 || MIPSpro +- +-#endif +- + #define Q_FOREVER for(;;) + #ifndef QT_NO_KEYWORDS + # ifndef foreach +-- +2.25.1 + diff -Nru vlc-3.0.17.4/contrib/src/qt/0016-Replace-custom-type-traits-with-std-one-s.patch vlc-3.0.18/contrib/src/qt/0016-Replace-custom-type-traits-with-std-one-s.patch --- vlc-3.0.17.4/contrib/src/qt/0016-Replace-custom-type-traits-with-std-one-s.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/qt/0016-Replace-custom-type-traits-with-std-one-s.patch 2022-08-24 17:42:00.000000000 +0000 @@ -0,0 +1,1148 @@ +From 2c12688e30f2e38c9d7ff9ab8718d6580b2eeb34 Mon Sep 17 00:00:00 2001 +From: Kai Koehne +Date: Fri, 5 Aug 2016 10:12:12 +0200 +Subject: [PATCH 16/18] Replace custom type traits with std one's + +Remove most type traits from qtypetraits.h, but keep the custom +implementation of is_signed/is_unsigned. This gets rid of +BSD-3 licensed code from Google in a public header (hugh!). + +The custom implementations for is_signed/is_unsigned are kept +because the implementations in gcc's standard headers do not +work as we expect for enums - both is_signed and is_unsigned +always returns false there - see also + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59027 + +[ChangeLog][QtCore][General] Qt now relies on type traits from +the C++ standard library. + +Change-Id: I3f2188b46949f04ca4482a6ac9afd3482103f0e1 +Reviewed-by: Thiago Macieira +Backport-Of: ed7f77071dcca996a8c8147fd66344090666e60c (v5.8.0) +--- + src/corelib/global/qflags.h | 2 +- + src/corelib/global/qglobal.h | 3 +- + src/corelib/global/qisenum.h | 3 +- + src/corelib/global/qnumeric_p.h | 4 +- + src/corelib/global/qtypeinfo.h | 7 +- + src/corelib/global/qtypetraits.h | 450 +----------------- + src/corelib/kernel/qmetatype.h | 9 +- + src/corelib/kernel/qobject.h | 12 +- + src/corelib/kernel/qpointer.h | 2 +- + src/corelib/kernel/qtimer.h | 8 +- + src/corelib/kernel/qvariant_p.h | 10 +- + src/corelib/thread/qmutex.cpp | 3 +- + src/corelib/tools/qbytearray_p.h | 3 +- + src/corelib/tools/qhash.h | 2 +- + src/corelib/tools/qlist.h | 4 +- + src/corelib/tools/qmap.h | 7 +- + src/corelib/tools/qsharedpointer_impl.h | 2 +- + src/corelib/tools/qstringalgorithms_p.h | 4 +- + src/testlib/qtestcase.h | 3 +- + src/widgets/graphicsview/qgraphicsitem.h | 4 +- + src/widgets/styles/qstyleoption.h | 8 +- + src/widgets/widgets/qmenu.h | 4 +- + src/widgets/widgets/qtoolbar.h | 4 +- + .../corelib/global/qglobal/tst_qglobal.cpp | 5 +- + .../qhashfunctions/tst_qhashfunctions.cpp | 3 +- + 25 files changed, 58 insertions(+), 508 deletions(-) + +diff --git a/src/corelib/global/qflags.h b/src/corelib/global/qflags.h +index f434e87c85..d2a6b51d90 100644 +--- a/src/corelib/global/qflags.h ++++ b/src/corelib/global/qflags.h +@@ -96,7 +96,7 @@ public: + // the definition below is too complex for qdoc + typedef int Int; + #else +- typedef typename QtPrivate::if_< ++ typedef typename std::conditional< + QtPrivate::is_unsigned::value, + unsigned int, + signed int +diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h +index baa9053876..d35963dff3 100644 +--- a/src/corelib/global/qglobal.h ++++ b/src/corelib/global/qglobal.h +@@ -36,6 +36,7 @@ + #define QGLOBAL_H + + #ifdef __cplusplus ++# include + # include + #endif + +@@ -944,7 +945,7 @@ public: + // - if there was a break inside the inner loop, it will exit with control still + // set to 1; in that case, the outer loop will invert it to 0 and will exit too + #define Q_FOREACH(variable, container) \ +-for (QForeachContainer::type> _container_((container)); \ ++for (QForeachContainer::type> _container_((container)); \ + _container_.control && _container_.i != _container_.e; \ + ++_container_.i, _container_.control ^= 1) \ + for (variable = *_container_.i; _container_.control; _container_.control = 0) +diff --git a/src/corelib/global/qisenum.h b/src/corelib/global/qisenum.h +index 3a05297bd6..e5f3f9c00c 100644 +--- a/src/corelib/global/qisenum.h ++++ b/src/corelib/global/qisenum.h +@@ -49,8 +49,7 @@ + #endif + + #ifndef Q_IS_ENUM +-# include +-# define Q_IS_ENUM(x) QtPrivate::is_enum::value ++# define Q_IS_ENUM(x) std::is_enum::value + #endif + + // shut up syncqt +diff --git a/src/corelib/global/qnumeric_p.h b/src/corelib/global/qnumeric_p.h +index c29ec0ea7b..24a51fd911 100644 +--- a/src/corelib/global/qnumeric_p.h ++++ b/src/corelib/global/qnumeric_p.h +@@ -201,7 +201,7 @@ static inline bool qt_is_finite(float d) + // Overflow math + // + namespace { +-template inline typename QtPrivate::QEnableIf::value, bool>::Type ++template inline typename QtPrivate::QEnableIf::value, bool>::Type + add_overflow(T v1, T v2, T *r) + { + // unsigned additions are well-defined +@@ -209,7 +209,7 @@ add_overflow(T v1, T v2, T *r) + return v1 > T(v1 + v2); + } + +-template inline typename QtPrivate::QEnableIf::value, bool>::Type ++template inline typename QtPrivate::QEnableIf::value, bool>::Type + mul_overflow(T v1, T v2, T *r) + { + // use the next biggest type +diff --git a/src/corelib/global/qtypeinfo.h b/src/corelib/global/qtypeinfo.h +index f5fc311a22..5d60f1f83b 100644 +--- a/src/corelib/global/qtypeinfo.h ++++ b/src/corelib/global/qtypeinfo.h +@@ -31,12 +31,13 @@ + ** + ****************************************************************************/ + +-#include + #include + + #ifndef QTYPEINFO_H + #define QTYPEINFO_H + ++#include ++ + QT_BEGIN_NAMESPACE + + /* +@@ -53,7 +54,7 @@ class QTypeInfo + public: + enum { + isPointer = false, +- isIntegral = QtPrivate::is_integral::value, ++ isIntegral = std::is_integral::value, + isComplex = true, + isStatic = true, + isRelocatable = Q_IS_ENUM(T), +@@ -214,7 +215,7 @@ public: \ + isRelocatable = !isStatic || ((FLAGS) & Q_RELOCATABLE_TYPE), \ + isLarge = (sizeof(TYPE)>sizeof(void*)), \ + isPointer = false, \ +- isIntegral = QtPrivate::is_integral< TYPE >::value, \ ++ isIntegral = std::is_integral< TYPE >::value, \ + isDummy = (((FLAGS) & Q_DUMMY_TYPE) != 0), \ + sizeOf = sizeof(TYPE) \ + }; \ +diff --git a/src/corelib/global/qtypetraits.h b/src/corelib/global/qtypetraits.h +index 488e257e0f..86593f7b11 100644 +--- a/src/corelib/global/qtypetraits.h ++++ b/src/corelib/global/qtypetraits.h +@@ -31,451 +31,28 @@ + ** + ****************************************************************************/ + +-// BEGIN Google Code +- +-// Copyright (c) 2006, Google Inc. +-// All rights reserved. +-// +-// Redistribution and use in source and binary forms, with or without +-// modification, are permitted provided that the following conditions are +-// met: +-// +-// * Redistributions of source code must retain the above copyright +-// notice, this list of conditions and the following disclaimer. +-// * Redistributions in binary form must reproduce the above +-// copyright notice, this list of conditions and the following disclaimer +-// in the documentation and/or other materials provided with the +-// distribution. +-// * Neither the name of Google Inc. nor the names of its +-// contributors may be used to endorse or promote products derived from +-// this software without specific prior written permission. +-// +-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- +-// ---- +-// +-// This code is compiled directly on many platforms, including client +-// platforms like Windows, Mac, and embedded systems. Before making +-// any changes here, make sure that you're not breaking any platforms. +-// +-// Define a small subset of tr1 type traits. The traits we define are: +-// is_integral +-// is_floating_point +-// is_pointer +-// is_enum +-// is_reference +-// is_const +-// is_volatile +-// is_pod +-// has_trivial_constructor +-// has_trivial_copy +-// has_trivial_assign +-// has_trivial_destructor +-// is_signed +-// is_unsigned +-// remove_const +-// remove_volatile +-// remove_cv +-// remove_reference +-// add_reference +-// remove_pointer +-// is_same +-// is_convertible +-// We can add more type traits as required. +- +-// Changes from the original implementation: +-// - Move base types from template_util.h directly into this header. +-// - Use Qt macros for long long type differences on Windows. +-// - Enclose in QtPrivate namespace. +- + #include "QtCore/qglobal.h" + + #ifndef QTYPETRAITS_H + #define QTYPETRAITS_H + +-#include // For pair +- + QT_BEGIN_NAMESPACE + + namespace QtPrivate { + +-// Types small_ and big_ are guaranteed such that sizeof(small_) < +-// sizeof(big_) +-typedef char small_; +- +-struct big_ { +- char dummy[2]; +-}; +- +-// Identity metafunction. +-template +-struct identity_ { +- typedef T type; +-}; +- +-// integral_constant, defined in tr1, is a wrapper for an integer +-// value. We don't really need this generality; we could get away +-// with hardcoding the integer type to bool. We use the fully +-// general integer_constant for compatibility with tr1. +- +-template +-struct integral_constant { +- static const T value = v; +- typedef T value_type; +- typedef integral_constant type; +-}; +- +-template const T integral_constant::value; +- +- +-// Abbreviations: true_type and false_type are structs that represent boolean +-// true and false values. Also define the boost::mpl versions of those names, +-// true_ and false_. +-typedef integral_constant true_type; +-typedef integral_constant false_type; +-typedef true_type true_; +-typedef false_type false_; +- +-// if_ is a templatized conditional statement. +-// if_ is a compile time evaluation of cond. +-// if_<>::type contains A if cond is true, B otherwise. +-template +-struct if_{ +- typedef A type; +-}; +- +-template +-struct if_ { +- typedef B type; +-}; +- +- +-// type_equals_ is a template type comparator, similar to Loki IsSameType. +-// type_equals_::value is true iff "A" is the same type as "B". + // +-// New code should prefer base::is_same, defined in base/type_traits.h. +-// It is functionally identical, but is_same is the standard spelling. +-template +-struct type_equals_ : public false_ { +-}; +- +-template +-struct type_equals_ : public true_ { +-}; +- +-// and_ is a template && operator. +-// and_::value evaluates "A::value && B::value". +-template +-struct and_ : public integral_constant { +-}; +- +-// or_ is a template || operator. +-// or_::value evaluates "A::value || B::value". +-template +-struct or_ : public integral_constant { +-}; +- +-template struct is_integral; +-template struct is_floating_point; +-template struct is_pointer; +-// MSVC can't compile this correctly, and neither can gcc 3.3.5 (at least) +-#if !defined(_MSC_VER) && !(defined(__GNUC__) && __GNUC__ <= 3) +-// is_enum uses is_convertible, which is not available on MSVC. +-template struct is_enum; +-#endif +-template struct is_reference; +-template struct is_pod; +-template struct has_trivial_constructor; +-template struct has_trivial_copy; +-template struct has_trivial_assign; +-template struct has_trivial_destructor; +-template struct remove_const; +-template struct remove_volatile; +-template struct remove_cv; +-template struct remove_reference; +-template struct add_reference; +-template struct remove_pointer; +-template struct is_same; +-#if !defined(_MSC_VER) && !(defined(__GNUC__) && __GNUC__ <= 3) +-template struct is_convertible; +-#endif +- +-// is_integral is false except for the built-in integer types. A +-// cv-qualified type is integral if and only if the underlying type is. +-template struct is_integral : false_type { }; +-template<> struct is_integral : true_type { }; +-template<> struct is_integral : true_type { }; +-template<> struct is_integral : true_type { }; +-template<> struct is_integral : true_type { }; +-#if defined(_MSC_VER) +-// wchar_t is not by default a distinct type from unsigned short in +-// Microsoft C. +-// See http://msdn2.microsoft.com/en-us/library/dh8che7s(VS.80).aspx +-template<> struct is_integral<__wchar_t> : true_type { }; +-#else +-template<> struct is_integral : true_type { }; +-#endif +-template<> struct is_integral : true_type { }; +-template<> struct is_integral : true_type { }; +-template<> struct is_integral : true_type { }; +-template<> struct is_integral : true_type { }; +-template<> struct is_integral : true_type { }; +-template<> struct is_integral : true_type { }; +-#if defined(Q_OS_WIN) && !defined(Q_CC_GNU) +-template<> struct is_integral<__int64> : true_type { }; +-template<> struct is_integral : true_type { }; +-#else +-template<> struct is_integral : true_type { }; +-template<> struct is_integral : true_type { }; +-#endif +-template struct is_integral : is_integral { }; +-template struct is_integral : is_integral { }; +-template struct is_integral : is_integral { }; +-#if defined (Q_COMPILER_UNICODE_STRINGS) +-template<> struct is_integral : true_type { }; +-template<> struct is_integral : true_type { }; +-#endif +- +-// is_floating_point is false except for the built-in floating-point types. +-// A cv-qualified type is integral if and only if the underlying type is. +-template struct is_floating_point : false_type { }; +-template<> struct is_floating_point : true_type { }; +-template<> struct is_floating_point : true_type { }; +-template<> struct is_floating_point : true_type { }; +-template struct is_floating_point +- : is_floating_point { }; +-template struct is_floating_point +- : is_floating_point { }; +-template struct is_floating_point +- : is_floating_point { }; +- +-// is_pointer is false except for pointer types. A cv-qualified type (e.g. +-// "int* const", as opposed to "int const*") is cv-qualified if and only if +-// the underlying type is. +-template struct is_pointer : false_type { }; +-template struct is_pointer : true_type { }; +-template struct is_pointer : is_pointer { }; +-template struct is_pointer : is_pointer { }; +-template struct is_pointer : is_pointer { }; +- +-#if !defined(_MSC_VER) && !(defined(__GNUC__) && __GNUC__ <= 3) +- +-namespace internal { +- +-template struct is_class_or_union { +- template static small_ tester(void (U::*)()); +- template static big_ tester(...); +- static const bool value = sizeof(tester(0)) == sizeof(small_); +-}; +- +-// is_convertible chokes if the first argument is an array. That's why +-// we use add_reference here. +-template struct is_enum_impl +- : is_convertible::type, int> { }; +- +-template struct is_enum_impl : false_type { }; +- +-} // namespace internal +- +-// Specified by TR1 [4.5.1] primary type categories. +- +-// Implementation note: ++// define custom is_signed, is_unsigned that also works with enum's + // +-// Each type is either void, integral, floating point, array, pointer, +-// reference, member object pointer, member function pointer, enum, +-// union or class. Out of these, only integral, floating point, reference, +-// class and enum types are potentially convertible to int. Therefore, +-// if a type is not a reference, integral, floating point or class and +-// is convertible to int, it's a enum. Adding cv-qualification to a type +-// does not change whether it's an enum. +-// +-// Is-convertible-to-int check is done only if all other checks pass, +-// because it can't be used with some types (e.g. void or classes with +-// inaccessible conversion operators). +-template struct is_enum +- : internal::is_enum_impl< +- is_same::value || +- is_integral::value || +- is_floating_point::value || +- is_reference::value || +- internal::is_class_or_union::value, +- T> { }; +- +-template struct is_enum : is_enum { }; +-template struct is_enum : is_enum { }; +-template struct is_enum : is_enum { }; +- +-#endif +- +-// is_reference is false except for reference types. +-template struct is_reference : false_type {}; +-template struct is_reference : true_type {}; +- +-// Specified by TR1 [4.5.3] Type Properties +-template struct is_const : false_type {}; +-template struct is_const : true_type {}; +-template struct is_volatile : false_type {}; +-template struct is_volatile : true_type {}; +- +-// We can't get is_pod right without compiler help, so fail conservatively. +-// We will assume it's false except for arithmetic types, enumerations, +-// pointers and cv-qualified versions thereof. Note that std::pair +-// is not a POD even if T and U are PODs. +-template struct is_pod +- : integral_constant::value || +- is_floating_point::value || +-#if !defined(_MSC_VER) && !(defined(__GNUC__) && __GNUC__ <= 3) +- // is_enum is not available on MSVC. +- is_enum::value || +-#endif +- is_pointer::value)> { }; +-template struct is_pod : is_pod { }; +-template struct is_pod : is_pod { }; +-template struct is_pod : is_pod { }; +- +- +-// We can't get has_trivial_constructor right without compiler help, so +-// fail conservatively. We will assume it's false except for: (1) types +-// for which is_pod is true. (2) std::pair of types with trivial +-// constructors. (3) array of a type with a trivial constructor. +-// (4) const versions thereof. +-template struct has_trivial_constructor : is_pod { }; +-template struct has_trivial_constructor > +- : integral_constant::value && +- has_trivial_constructor::value)> { }; +-template struct has_trivial_constructor +- : has_trivial_constructor { }; +-template struct has_trivial_constructor +- : has_trivial_constructor { }; +- +-// We can't get has_trivial_copy right without compiler help, so fail +-// conservatively. We will assume it's false except for: (1) types +-// for which is_pod is true. (2) std::pair of types with trivial copy +-// constructors. (3) array of a type with a trivial copy constructor. +-// (4) const versions thereof. +-template struct has_trivial_copy : is_pod { }; +-template struct has_trivial_copy > +- : integral_constant::value && +- has_trivial_copy::value)> { }; +-template struct has_trivial_copy +- : has_trivial_copy { }; +-template struct has_trivial_copy : has_trivial_copy { }; +- +-// We can't get has_trivial_assign right without compiler help, so fail +-// conservatively. We will assume it's false except for: (1) types +-// for which is_pod is true. (2) std::pair of types with trivial copy +-// constructors. (3) array of a type with a trivial assign constructor. +-template struct has_trivial_assign : is_pod { }; +-template struct has_trivial_assign > +- : integral_constant::value && +- has_trivial_assign::value)> { }; +-template struct has_trivial_assign +- : has_trivial_assign { }; +- +-// We can't get has_trivial_destructor right without compiler help, so +-// fail conservatively. We will assume it's false except for: (1) types +-// for which is_pod is true. (2) std::pair of types with trivial +-// destructors. (3) array of a type with a trivial destructor. +-// (4) const versions thereof. +-template struct has_trivial_destructor : is_pod { }; +-template struct has_trivial_destructor > +- : integral_constant::value && +- has_trivial_destructor::value)> { }; +-template struct has_trivial_destructor +- : has_trivial_destructor { }; +-template struct has_trivial_destructor +- : has_trivial_destructor { }; +- +-// Specified by TR1 [4.7.1] +-template struct remove_const { typedef T type; }; +-template struct remove_const { typedef T type; }; +-template struct remove_volatile { typedef T type; }; +-template struct remove_volatile { typedef T type; }; +-template struct remove_cv { +- typedef typename remove_const::type>::type type; +-}; +- +- +-// Specified by TR1 [4.7.2] Reference modifications. +-template struct remove_reference { typedef T type; }; +-template struct remove_reference { typedef T type; }; +- +-template struct add_reference { typedef T& type; }; +-template struct add_reference { typedef T& type; }; +- +-// Specified by TR1 [4.7.4] Pointer modifications. +-template struct remove_pointer { typedef T type; }; +-template struct remove_pointer { typedef T type; }; +-template struct remove_pointer { typedef T type; }; +-template struct remove_pointer { typedef T type; }; +-template struct remove_pointer { +- typedef T type; }; +- +-// Specified by TR1 [4.6] Relationships between types +-template struct is_same : public false_type { }; +-template struct is_same : public true_type { }; +- +-// Specified by TR1 [4.6] Relationships between types +-#if !defined(_MSC_VER) && !(defined(__GNUC__) && __GNUC__ <= 3) +-namespace internal { +- +-// This class is an implementation detail for is_convertible, and you +-// don't need to know how it works to use is_convertible. For those +-// who care: we declare two different functions, one whose argument is +-// of type To and one with a variadic argument list. We give them +-// return types of different size, so we can use sizeof to trick the +-// compiler into telling us which function it would have chosen if we +-// had called it with an argument of type From. See Alexandrescu's +-// _Modern C++ Design_ for more details on this sort of trick. +- +-template +-struct ConvertHelper { +- static small_ Test(To); +- static big_ Test(...); +- static From Create(); +-}; +-} // namespace internal +- +-// Inherits from true_type if From is convertible to To, false_type otherwise. +-template +-struct is_convertible +- : integral_constant::Test( +- internal::ConvertHelper::Create())) +- == sizeof(small_)> { +-}; +-#endif +- +-// END Google Code + + // a metafunction to invert an integral_constant: + template + struct not_ +- : integral_constant {}; +- +-// same, with a bool argument: +-template +-struct not_c +- : integral_constant {}; ++ : std::integral_constant {}; + + // Checks whether a type is unsigned (T must be convertible to unsigned int): + template + struct is_unsigned +- : integral_constant {}; ++ : std::integral_constant {}; + + // Checks whether a type is signed (T must be convertible to int): + template +@@ -506,27 +83,6 @@ Q_STATIC_ASSERT((!is_unsigned::value)); + Q_STATIC_ASSERT((!is_signed::value)); + Q_STATIC_ASSERT(( is_signed::value)); + +-template struct is_default_constructible; +- +-template<> struct is_default_constructible +-{ +-protected: +- template struct test { typedef char type; }; +-public: +- static bool const value = false; +-}; +-template<> struct is_default_constructible<>::test { typedef double type; }; +- +-template struct is_default_constructible : is_default_constructible<> +-{ +-private: +- template static typename test::type sfinae(U*); +- template static char sfinae(...); +-public: +- static bool const value = sizeof(sfinae(0)) > 1; +-}; +- +- + } // namespace QtPrivate + + QT_END_NAMESPACE +diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h +index b6cfad56b5..27fd710ff7 100644 +--- a/src/corelib/kernel/qmetatype.h ++++ b/src/corelib/kernel/qmetatype.h +@@ -40,7 +40,6 @@ + #include + #include + #include +-#include + #ifndef QT_NO_QOBJECT + #include + #endif +@@ -880,7 +879,7 @@ private: + // is void* to avoid overloads conflicts. We do it by injecting unaccessible Dummy + // type as part of the overload signature. + struct Dummy {}; +- typedef typename QtPrivate::if_::value, Dummy, value_type>::type value_type_OR_Dummy; ++ typedef typename std::conditional::value, Dummy, value_type>::type value_type_OR_Dummy; + public: + static void assign(void **ptr, const value_type_OR_Dummy *iterator ) + { +@@ -1085,7 +1084,7 @@ struct QSequentialIterableConvertFunctor + } + + namespace QtMetaTypePrivate { +-template::value> ++template::value> + struct AssociativeContainerAccessor + { + static const typename T::key_type& getKey(const typename T::const_iterator &it) +@@ -1099,7 +1098,7 @@ struct AssociativeContainerAccessor + } + }; + +-template >::value> ++template >::value> + struct StlStyleAssociativeContainerAccessor; + + template +@@ -1787,7 +1786,7 @@ template + struct QMetaTypeIdQObject + { + enum { +- Defined = QtPrivate::is_default_constructible::value ++ Defined = std::is_default_constructible::value + }; + + static int qt_metatype_id() +diff --git a/src/corelib/kernel/qobject.h b/src/corelib/kernel/qobject.h +index b39eefa795..49a6996313 100644 +--- a/src/corelib/kernel/qobject.h ++++ b/src/corelib/kernel/qobject.h +@@ -149,14 +149,14 @@ public: + template + inline T findChild(const QString &aName = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const + { +- typedef typename QtPrivate::remove_cv::type>::type ObjType; ++ typedef typename std::remove_cv::type>::type ObjType; + return static_cast(qt_qFindChild_helper(this, aName, ObjType::staticMetaObject, options)); + } + + template + inline QList findChildren(const QString &aName = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const + { +- typedef typename QtPrivate::remove_cv::type>::type ObjType; ++ typedef typename std::remove_cv::type>::type ObjType; + QList list; + qt_qFindChildren_helper(this, aName, ObjType::staticMetaObject, + reinterpret_cast *>(&list), options); +@@ -167,7 +167,7 @@ public: + template + inline QList findChildren(const QRegExp &re, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const + { +- typedef typename QtPrivate::remove_cv::type>::type ObjType; ++ typedef typename std::remove_cv::type>::type ObjType; + QList list; + qt_qFindChildren_helper(this, re, ObjType::staticMetaObject, + reinterpret_cast *>(&list), options); +@@ -179,7 +179,7 @@ public: + template + inline QList findChildren(const QRegularExpression &re, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const + { +- typedef typename QtPrivate::remove_cv::type>::type ObjType; ++ typedef typename std::remove_cv::type>::type ObjType; + QList list; + qt_qFindChildren_helper(this, re, ObjType::staticMetaObject, + reinterpret_cast *>(&list), options); +@@ -514,7 +514,7 @@ inline QT_DEPRECATED QList qFindChildren(const QObject *o, const QRegExp &re) + template + inline T qobject_cast(QObject *object) + { +- typedef typename QtPrivate::remove_cv::type>::type ObjType; ++ typedef typename std::remove_cv::type>::type ObjType; + Q_STATIC_ASSERT_X(QtPrivate::HasQ_OBJECT_Macro::Value, + "qobject_cast requires the type to have a Q_OBJECT macro"); + return static_cast(ObjType::staticMetaObject.cast(object)); +@@ -523,7 +523,7 @@ inline T qobject_cast(QObject *object) + template + inline T qobject_cast(const QObject *object) + { +- typedef typename QtPrivate::remove_cv::type>::type ObjType; ++ typedef typename std::remove_cv::type>::type ObjType; + Q_STATIC_ASSERT_X(QtPrivate::HasQ_OBJECT_Macro::Value, + "qobject_cast requires the type to have a Q_OBJECT macro"); + return static_cast(ObjType::staticMetaObject.cast(object)); +diff --git a/src/corelib/kernel/qpointer.h b/src/corelib/kernel/qpointer.h +index 52bd368301..13af0bc015 100644 +--- a/src/corelib/kernel/qpointer.h ++++ b/src/corelib/kernel/qpointer.h +@@ -46,7 +46,7 @@ class QVariant; + template + class QPointer + { +- Q_STATIC_ASSERT_X(!QtPrivate::is_pointer::value, "QPointer's template type must not be a pointer type"); ++ Q_STATIC_ASSERT_X(!std::is_pointer::value, "QPointer's template type must not be a pointer type"); + + template + struct TypeSelector +diff --git a/src/corelib/kernel/qtimer.h b/src/corelib/kernel/qtimer.h +index 889f5d7f70..2fc056a281 100644 +--- a/src/corelib/kernel/qtimer.h ++++ b/src/corelib/kernel/qtimer.h +@@ -103,14 +103,14 @@ public: + // singleShot to a functor or function pointer (without context) + template + static inline typename QtPrivate::QEnableIf::IsPointerToMemberFunction && +- !QtPrivate::is_same::value, void>::Type ++ !std::is_same::value, void>::Type + singleShot(int msec, Func1 slot) + { + singleShot(msec, msec >= 2000 ? Qt::CoarseTimer : Qt::PreciseTimer, Q_NULLPTR, slot); + } + template + static inline typename QtPrivate::QEnableIf::IsPointerToMemberFunction && +- !QtPrivate::is_same::value, void>::Type ++ !std::is_same::value, void>::Type + singleShot(int msec, Qt::TimerType timerType, Func1 slot) + { + singleShot(msec, timerType, Q_NULLPTR, slot); +@@ -118,14 +118,14 @@ public: + // singleShot to a functor or function pointer (with context) + template + static inline typename QtPrivate::QEnableIf::IsPointerToMemberFunction && +- !QtPrivate::is_same::value, void>::Type ++ !std::is_same::value, void>::Type + singleShot(int msec, QObject *context, Func1 slot) + { + singleShot(msec, msec >= 2000 ? Qt::CoarseTimer : Qt::PreciseTimer, context, slot); + } + template + static inline typename QtPrivate::QEnableIf::IsPointerToMemberFunction && +- !QtPrivate::is_same::value, void>::Type ++ !std::is_same::value, void>::Type + singleShot(int msec, Qt::TimerType timerType, QObject *context, Func1 slot) + { + //compilation error if the slot has arguments. +diff --git a/src/corelib/kernel/qvariant_p.h b/src/corelib/kernel/qvariant_p.h +index 337e1406ec..18fda7bae1 100644 +--- a/src/corelib/kernel/qvariant_p.h ++++ b/src/corelib/kernel/qvariant_p.h +@@ -60,7 +60,7 @@ struct QVariantIntegrator + { + static const bool CanUseInternalSpace = sizeof(T) <= sizeof(QVariant::Private::Data) + && ((QTypeInfoQuery::isRelocatable) || Q_IS_ENUM(T)); +- typedef QtPrivate::integral_constant CanUseInternalSpace_t; ++ typedef std::integral_constant CanUseInternalSpace_t; + }; + Q_STATIC_ASSERT(QVariantIntegrator::CanUseInternalSpace); + Q_STATIC_ASSERT(QVariantIntegrator::CanUseInternalSpace); +@@ -112,28 +112,28 @@ private: + }; + + template +-inline void v_construct_helper(QVariant::Private *x, const T &t, QtPrivate::true_type) ++inline void v_construct_helper(QVariant::Private *x, const T &t, std::true_type) + { + new (&x->data) T(t); + x->is_shared = false; + } + + template +-inline void v_construct_helper(QVariant::Private *x, const T &t, QtPrivate::false_type) ++inline void v_construct_helper(QVariant::Private *x, const T &t, std::false_type) + { + x->data.shared = new QVariantPrivateSharedEx(t); + x->is_shared = true; + } + + template +-inline void v_construct_helper(QVariant::Private *x, QtPrivate::true_type) ++inline void v_construct_helper(QVariant::Private *x, std::true_type) + { + new (&x->data) T(); + x->is_shared = false; + } + + template +-inline void v_construct_helper(QVariant::Private *x, QtPrivate::false_type) ++inline void v_construct_helper(QVariant::Private *x, std::false_type) + { + x->data.shared = new QVariantPrivateSharedEx; + x->is_shared = true; +diff --git a/src/corelib/thread/qmutex.cpp b/src/corelib/thread/qmutex.cpp +index e9709e34c5..5a6efad7fa 100644 +--- a/src/corelib/thread/qmutex.cpp ++++ b/src/corelib/thread/qmutex.cpp +@@ -42,7 +42,6 @@ + #include "qelapsedtimer.h" + #include "qthread.h" + #include "qmutex_p.h" +-#include "qtypetraits.h" + + #ifndef QT_LINUX_FUTEX + #include "private/qfreelist_p.h" +@@ -71,7 +70,7 @@ public: + + // written to by the thread that first owns 'mutex'; + // read during attempts to acquire ownership of 'mutex' from any other thread: +- QAtomicPointer::type> owner; ++ QAtomicPointer::type> owner; + + // only ever accessed from the thread that owns 'mutex': + uint count; +diff --git a/src/corelib/tools/qbytearray_p.h b/src/corelib/tools/qbytearray_p.h +index 78c667aa90..584f8ff801 100644 +--- a/src/corelib/tools/qbytearray_p.h ++++ b/src/corelib/tools/qbytearray_p.h +@@ -46,14 +46,13 @@ + // + + #include +-#include + #include "qtools_p.h" + + QT_BEGIN_NAMESPACE + + enum { + // Define as enum to force inlining. Don't expose MaxAllocSize in a public header. +- MaxByteArraySize = MaxAllocSize - sizeof(QtPrivate::remove_pointer::type) ++ MaxByteArraySize = MaxAllocSize - sizeof(std::remove_pointer::type) + }; + + QT_END_NAMESPACE +diff --git a/src/corelib/tools/qhash.h b/src/corelib/tools/qhash.h +index c181de94bb..28aeafe845 100644 +--- a/src/corelib/tools/qhash.h ++++ b/src/corelib/tools/qhash.h +@@ -747,7 +747,7 @@ Q_INLINE_TEMPLATE typename QHash::iterator QHash::insert(const K + return iterator(createNode(h, akey, avalue, node)); + } + +- if (!QtPrivate::is_same::value) ++ if (!std::is_same::value) + (*node)->value = avalue; + return iterator(*node); + } +diff --git a/src/corelib/tools/qlist.h b/src/corelib/tools/qlist.h +index 381875e96f..df79ac0d98 100644 +--- a/src/corelib/tools/qlist.h ++++ b/src/corelib/tools/qlist.h +@@ -116,10 +116,10 @@ class QList : public QListSpecialMethods + { + public: + struct MemoryLayout +- : QtPrivate::if_< ++ : std::conditional< + QTypeInfo::isStatic || QTypeInfo::isLarge, + QListData::IndirectLayout, +- typename QtPrivate::if_< ++ typename std::conditional< + sizeof(T) == sizeof(void*), + QListData::ArrayCompatibleLayout, + QListData::InlineWithPaddingLayout +diff --git a/src/corelib/tools/qmap.h b/src/corelib/tools/qmap.h +index 08565dfe9b..5b6382fa8f 100644 +--- a/src/corelib/tools/qmap.h ++++ b/src/corelib/tools/qmap.h +@@ -38,7 +38,6 @@ + #include + #include + #include +-#include + + #ifdef Q_MAP_DEBUG + #include +@@ -124,15 +123,15 @@ struct QMapNode : public QMapNodeBase + { + callDestructorIfNecessary(key); + callDestructorIfNecessary(value); +- doDestroySubTree(QtPrivate::integral_constant::isComplex || QTypeInfo::isComplex>()); ++ doDestroySubTree(std::integral_constant::isComplex || QTypeInfo::isComplex>()); + } + + QMapNode *lowerBound(const Key &key); + QMapNode *upperBound(const Key &key); + + private: +- void doDestroySubTree(QtPrivate::false_type) {} +- void doDestroySubTree(QtPrivate::true_type) ++ void doDestroySubTree(std::false_type) {} ++ void doDestroySubTree(std::true_type) + { + if (left) + leftNode()->destroySubTree(); +diff --git a/src/corelib/tools/qsharedpointer_impl.h b/src/corelib/tools/qsharedpointer_impl.h +index c408f54b04..6d3a1deb52 100644 +--- a/src/corelib/tools/qsharedpointer_impl.h ++++ b/src/corelib/tools/qsharedpointer_impl.h +@@ -499,7 +499,7 @@ private: + template + inline void enableSharedFromThis(const QEnableSharedFromThis *ptr) + { +- ptr->initializeFromSharedPointer(constCast::type>()); ++ ptr->initializeFromSharedPointer(constCast::type>()); + } + + inline void enableSharedFromThis(...) {} +diff --git a/src/corelib/tools/qstringalgorithms_p.h b/src/corelib/tools/qstringalgorithms_p.h +index a12874f567..d802995528 100644 +--- a/src/corelib/tools/qstringalgorithms_p.h ++++ b/src/corelib/tools/qstringalgorithms_p.h +@@ -54,8 +54,8 @@ template struct QStringAlgorithms + { + typedef typename StringType::value_type Char; + typedef typename StringType::size_type size_type; +- typedef typename QtPrivate::remove_cv::type NakedStringType; +- static const bool isConst = QtPrivate::is_const::value; ++ typedef typename std::remove_cv::type NakedStringType; ++ static const bool isConst = std::is_const::value; + + static inline bool isSpace(char ch) { return ascii_isspace(ch); } + static inline bool isSpace(QChar ch) { return ch.isSpace(); } +diff --git a/src/testlib/qtestcase.h b/src/testlib/qtestcase.h +index a099aaa3d1..776647ae3d 100644 +--- a/src/testlib/qtestcase.h ++++ b/src/testlib/qtestcase.h +@@ -40,7 +40,6 @@ + #include + #include + #include +-#include + #include + #include + +@@ -306,7 +305,7 @@ namespace QTest + template + inline void addColumn(const char *name, T * = Q_NULLPTR) + { +- typedef QtPrivate::is_same QIsSameTConstChar; ++ typedef std::is_same QIsSameTConstChar; + Q_STATIC_ASSERT_X(!QIsSameTConstChar::value, "const char* is not allowed as a test data format."); + addColumnInternal(qMetaTypeId(), name); + } +diff --git a/src/widgets/graphicsview/qgraphicsitem.h b/src/widgets/graphicsview/qgraphicsitem.h +index b2f8fcbe74..ad16fffa7e 100644 +--- a/src/widgets/graphicsview/qgraphicsitem.h ++++ b/src/widgets/graphicsview/qgraphicsitem.h +@@ -1018,14 +1018,14 @@ private: + + template inline T qgraphicsitem_cast(QGraphicsItem *item) + { +- typedef typename QtPrivate::remove_cv::type>::type Item; ++ typedef typename std::remove_cv::type>::type Item; + return int(Item::Type) == int(QGraphicsItem::Type) + || (item && int(Item::Type) == item->type()) ? static_cast(item) : 0; + } + + template inline T qgraphicsitem_cast(const QGraphicsItem *item) + { +- typedef typename QtPrivate::remove_cv::type>::type Item; ++ typedef typename std::remove_cv::type>::type Item; + return int(Item::Type) == int(QGraphicsItem::Type) + || (item && int(Item::Type) == item->type()) ? static_cast(item) : 0; + } +diff --git a/src/widgets/styles/qstyleoption.h b/src/widgets/styles/qstyleoption.h +index 74dd35cc4a..e7151d0f23 100644 +--- a/src/widgets/styles/qstyleoption.h ++++ b/src/widgets/styles/qstyleoption.h +@@ -658,7 +658,7 @@ protected: + template + T qstyleoption_cast(const QStyleOption *opt) + { +- typedef typename QtPrivate::remove_cv::type>::type Opt; ++ typedef typename std::remove_cv::type>::type Opt; + if (opt && opt->version >= Opt::Version && (opt->type == Opt::Type + || int(Opt::Type) == QStyleOption::SO_Default + || (int(Opt::Type) == QStyleOption::SO_Complex +@@ -670,7 +670,7 @@ T qstyleoption_cast(const QStyleOption *opt) + template + T qstyleoption_cast(QStyleOption *opt) + { +- typedef typename QtPrivate::remove_cv::type>::type Opt; ++ typedef typename std::remove_cv::type>::type Opt; + if (opt && opt->version >= Opt::Version && (opt->type == Opt::Type + || int(Opt::Type) == QStyleOption::SO_Default + || (int(Opt::Type) == QStyleOption::SO_Complex +@@ -721,7 +721,7 @@ public: + template + T qstyleoption_cast(const QStyleHintReturn *hint) + { +- typedef typename QtPrivate::remove_cv::type>::type Opt; ++ typedef typename std::remove_cv::type>::type Opt; + if (hint && hint->version <= Opt::Version && + (hint->type == Opt::Type || int(Opt::Type) == QStyleHintReturn::SH_Default)) + return static_cast(hint); +@@ -731,7 +731,7 @@ T qstyleoption_cast(const QStyleHintReturn *hint) + template + T qstyleoption_cast(QStyleHintReturn *hint) + { +- typedef typename QtPrivate::remove_cv::type>::type Opt; ++ typedef typename std::remove_cv::type>::type Opt; + if (hint && hint->version <= Opt::Version && + (hint->type == Opt::Type || int(Opt::Type) == QStyleHintReturn::SH_Default)) + return static_cast(hint); +diff --git a/src/widgets/widgets/qmenu.h b/src/widgets/widgets/qmenu.h +index 6bbe54186e..c33cb889b2 100644 +--- a/src/widgets/widgets/qmenu.h ++++ b/src/widgets/widgets/qmenu.h +@@ -88,7 +88,7 @@ public: + #else + // addAction(QString): Connect to a QObject slot / functor or function pointer (with context) + template +- inline typename QtPrivate::QEnableIf::value ++ inline typename QtPrivate::QEnableIf::value + && QtPrivate::IsPointerToTypeDerivedFromQObject::Value, QAction *>::Type + addAction(const QString &text, const Obj *object, Func1 slot, const QKeySequence &shortcut = 0) + { +@@ -116,7 +116,7 @@ public: + } + // addAction(QIcon, QString): Connect to a QObject slot / functor or function pointer (with context) + template +- inline typename QtPrivate::QEnableIf::value ++ inline typename QtPrivate::QEnableIf::value + && QtPrivate::IsPointerToTypeDerivedFromQObject::Value, QAction *>::Type + addAction(const QIcon &actionIcon, const QString &text, const Obj *object, Func1 slot, const QKeySequence &shortcut = 0) + { +diff --git a/src/widgets/widgets/qtoolbar.h b/src/widgets/widgets/qtoolbar.h +index 9eeb7ccd71..4bd3bc2b21 100644 +--- a/src/widgets/widgets/qtoolbar.h ++++ b/src/widgets/widgets/qtoolbar.h +@@ -103,7 +103,7 @@ public: + #else + // addAction(QString): Connect to a QObject slot / functor or function pointer (with context) + template +- inline typename QtPrivate::QEnableIf::value ++ inline typename QtPrivate::QEnableIf::value + && QtPrivate::IsPointerToTypeDerivedFromQObject::Value, QAction *>::Type + addAction(const QString &text, const Obj *object, Func1 slot) + { +@@ -121,7 +121,7 @@ public: + } + // addAction(QString): Connect to a QObject slot / functor or function pointer (with context) + template +- inline typename QtPrivate::QEnableIf::value ++ inline typename QtPrivate::QEnableIf::value + && QtPrivate::IsPointerToTypeDerivedFromQObject::Value, QAction *>::Type + addAction(const QIcon &actionIcon, const QString &text, const Obj *object, Func1 slot) + { +diff --git a/tests/auto/corelib/global/qglobal/tst_qglobal.cpp b/tests/auto/corelib/global/qglobal/tst_qglobal.cpp +index 00f70f5380..758c0ff6b4 100644 +--- a/tests/auto/corelib/global/qglobal/tst_qglobal.cpp ++++ b/tests/auto/corelib/global/qglobal/tst_qglobal.cpp +@@ -33,7 +33,6 @@ + + + #include +-#include + + #include + #include +@@ -380,8 +379,8 @@ void tst_QGlobal::isEnum() + #define IS_ENUM_TRUE(x) (Q_IS_ENUM(x) == true) + #define IS_ENUM_FALSE(x) (Q_IS_ENUM(x) == false) + #else +-#define IS_ENUM_TRUE(x) (Q_IS_ENUM(x) == true && QtPrivate::is_enum::value == true) +-#define IS_ENUM_FALSE(x) (Q_IS_ENUM(x) == false && QtPrivate::is_enum::value == false) ++#define IS_ENUM_TRUE(x) (Q_IS_ENUM(x) == true && std::is_enum::value == true) ++#define IS_ENUM_FALSE(x) (Q_IS_ENUM(x) == false && std::is_enum::value == false) + #endif + + QVERIFY(IS_ENUM_TRUE(isEnum_B_Byte)); +diff --git a/tests/auto/corelib/tools/qhashfunctions/tst_qhashfunctions.cpp b/tests/auto/corelib/tools/qhashfunctions/tst_qhashfunctions.cpp +index 4d61bc393d..e3d3a4b4e8 100644 +--- a/tests/auto/corelib/tools/qhashfunctions/tst_qhashfunctions.cpp ++++ b/tests/auto/corelib/tools/qhashfunctions/tst_qhashfunctions.cpp +@@ -34,7 +34,6 @@ + #include + + #include +-#include + + #include + #include +@@ -186,7 +185,7 @@ void tst_QHashFunctions::range() + { + // verify that the input iterator category suffices: + std::stringstream sstream; +- Q_STATIC_ASSERT((QtPrivate::is_same::iterator_category>::value)); ++ Q_STATIC_ASSERT((std::is_same::iterator_category>::value)); + std::copy(ints, ints + numInts, std::ostream_iterator(sstream, " ")); + sstream.seekg(0); + std::istream_iterator it(sstream), end; +-- +2.25.1 + diff -Nru vlc-3.0.17.4/contrib/src/qt/0017-Rename-QtPrivate-is_-un-signed-to-QtPrivate-Is-Un-si.patch vlc-3.0.18/contrib/src/qt/0017-Rename-QtPrivate-is_-un-signed-to-QtPrivate-Is-Un-si.patch --- vlc-3.0.17.4/contrib/src/qt/0017-Rename-QtPrivate-is_-un-signed-to-QtPrivate-Is-Un-si.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/qt/0017-Rename-QtPrivate-is_-un-signed-to-QtPrivate-Is-Un-si.patch 2022-08-24 17:42:00.000000000 +0000 @@ -0,0 +1,125 @@ +From 4e57e3d915557dc00b4931727cf162a1742e73a2 Mon Sep 17 00:00:00 2001 +From: Kai Koehne +Date: Mon, 8 Aug 2016 09:41:57 +0200 +Subject: [PATCH 17/18] Rename QtPrivate::is_[un]signed to + QtPrivate::Is[Un]signedEnum + +Any other use than for enums should use std::is_[un]signed. Make this +explicit by renaming the type traits. + +Change-Id: I494158563c95c710e710d0d337f4e547006df171 +Reviewed-by: Thiago Macieira +Backport-Of: 615270a3008cfc1314a3c983b7e69006dc4184b4 (v5.8.0) +--- + src/corelib/global/qflags.h | 2 +- + src/corelib/global/qtypetraits.h | 41 ++++++++++--------- + .../auto/corelib/global/qflags/tst_qflags.cpp | 8 ++-- + 3 files changed, 26 insertions(+), 25 deletions(-) + +diff --git a/src/corelib/global/qflags.h b/src/corelib/global/qflags.h +index d2a6b51d90..dc0873aaad 100644 +--- a/src/corelib/global/qflags.h ++++ b/src/corelib/global/qflags.h +@@ -97,7 +97,7 @@ public: + typedef int Int; + #else + typedef typename std::conditional< +- QtPrivate::is_unsigned::value, ++ QtPrivate::QIsUnsignedEnum::value, + unsigned int, + signed int + >::type Int; +diff --git a/src/corelib/global/qtypetraits.h b/src/corelib/global/qtypetraits.h +index 86593f7b11..c5d7cacd8d 100644 +--- a/src/corelib/global/qtypetraits.h ++++ b/src/corelib/global/qtypetraits.h +@@ -41,7 +41,8 @@ QT_BEGIN_NAMESPACE + namespace QtPrivate { + + // +-// define custom is_signed, is_unsigned that also works with enum's ++// Define QIsUnsignedEnum, QIsSignedEnum - ++// std::is_signed, std::is_unsigned does not work for enum's + // + + // a metafunction to invert an integral_constant: +@@ -51,37 +52,37 @@ struct not_ + + // Checks whether a type is unsigned (T must be convertible to unsigned int): + template +-struct is_unsigned ++struct QIsUnsignedEnum + : std::integral_constant {}; + + // Checks whether a type is signed (T must be convertible to int): + template +-struct is_signed +- : not_< is_unsigned > {}; ++struct QIsSignedEnum ++ : not_< QIsUnsignedEnum > {}; + +-Q_STATIC_ASSERT(( is_unsigned::value)); +-Q_STATIC_ASSERT((!is_unsigned::value)); ++Q_STATIC_ASSERT(( QIsUnsignedEnum::value)); ++Q_STATIC_ASSERT((!QIsUnsignedEnum::value)); + +-Q_STATIC_ASSERT((!is_signed::value)); +-Q_STATIC_ASSERT(( is_signed::value)); ++Q_STATIC_ASSERT((!QIsSignedEnum::value)); ++Q_STATIC_ASSERT(( QIsSignedEnum::value)); + +-Q_STATIC_ASSERT(( is_unsigned::value)); +-Q_STATIC_ASSERT((!is_unsigned::value)); ++Q_STATIC_ASSERT(( QIsUnsignedEnum::value)); ++Q_STATIC_ASSERT((!QIsUnsignedEnum::value)); + +-Q_STATIC_ASSERT((!is_signed::value)); +-Q_STATIC_ASSERT(( is_signed::value)); ++Q_STATIC_ASSERT((!QIsSignedEnum::value)); ++Q_STATIC_ASSERT(( QIsSignedEnum::value)); + +-Q_STATIC_ASSERT(( is_unsigned::value)); +-Q_STATIC_ASSERT((!is_unsigned::value)); ++Q_STATIC_ASSERT(( QIsUnsignedEnum::value)); ++Q_STATIC_ASSERT((!QIsUnsignedEnum::value)); + +-Q_STATIC_ASSERT((!is_signed::value)); +-Q_STATIC_ASSERT(( is_signed::value)); ++Q_STATIC_ASSERT((!QIsSignedEnum::value)); ++Q_STATIC_ASSERT(( QIsSignedEnum::value)); + +-Q_STATIC_ASSERT(( is_unsigned::value)); +-Q_STATIC_ASSERT((!is_unsigned::value)); ++Q_STATIC_ASSERT(( QIsUnsignedEnum::value)); ++Q_STATIC_ASSERT((!QIsUnsignedEnum::value)); + +-Q_STATIC_ASSERT((!is_signed::value)); +-Q_STATIC_ASSERT(( is_signed::value)); ++Q_STATIC_ASSERT((!QIsSignedEnum::value)); ++Q_STATIC_ASSERT(( QIsSignedEnum::value)); + + } // namespace QtPrivate + +diff --git a/tests/auto/corelib/global/qflags/tst_qflags.cpp b/tests/auto/corelib/global/qflags/tst_qflags.cpp +index 1f2e7ca0cd..f16b5c4cf7 100644 +--- a/tests/auto/corelib/global/qflags/tst_qflags.cpp ++++ b/tests/auto/corelib/global/qflags/tst_qflags.cpp +@@ -138,11 +138,11 @@ void tst_QFlags::signedness() + // underlying type is implementation-defined, we need to allow for + // a different signedness, so we only check that the relative + // signedness of the types matches: +- Q_STATIC_ASSERT((QtPrivate::is_unsigned::value == +- QtPrivate::is_unsigned::value)); ++ Q_STATIC_ASSERT((QtPrivate::QIsUnsignedEnum::value == ++ QtPrivate::QIsUnsignedEnum::value)); + +- Q_STATIC_ASSERT((QtPrivate::is_signed::value == +- QtPrivate::is_signed::value)); ++ Q_STATIC_ASSERT((QtPrivate::QIsSignedEnum::value == ++ QtPrivate::QIsSignedEnum::value)); + } + + #if defined(Q_COMPILER_CLASS_ENUM) +-- +2.25.1 + diff -Nru vlc-3.0.17.4/contrib/src/qt/0018-Remove-qtypetraits.h-s-contents-altogether.patch vlc-3.0.18/contrib/src/qt/0018-Remove-qtypetraits.h-s-contents-altogether.patch --- vlc-3.0.17.4/contrib/src/qt/0018-Remove-qtypetraits.h-s-contents-altogether.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/qt/0018-Remove-qtypetraits.h-s-contents-altogether.patch 2022-08-24 17:42:00.000000000 +0000 @@ -0,0 +1,354 @@ +From bd851ae37c6dbd7b770bd5cab771f19c2da66a87 Mon Sep 17 00:00:00 2001 +From: Giuseppe D'Angelo +Date: Thu, 3 Nov 2016 16:08:55 +0000 +Subject: [PATCH 18/18] Remove qtypetraits.h's contents altogether + +So that QFlags can use an (un)signed int matching the +underlying type as identified by the compiler and not by us. + +Requires fixing a few warnings about sign conversion due to +QFlags misusages in qtbase that were either plain wrong, or +were relying on the enum being backed by an (un)signed int +when it wasn't. + +Keep qtypetraits.h in the source tree in order to prevent +source breaks if some downstream #includes it (note however +that it did not contain any public API). + +Change-Id: Ib3a92b98db7031e793a088fb2a3b306eff4d7a3c +Reviewed-by: Thiago Macieira +Backport-Of: 6255cb893d411b055758f2e64e94fde0bce91ea8 (v5.9.0) +--- + src/corelib/global/qflags.h | 9 +-- + src/corelib/global/qtypetraits.h | 55 +++---------------- + src/corelib/io/qurl.h | 4 +- + src/corelib/itemmodels/qabstractitemmodel.cpp | 2 +- + src/corelib/kernel/qmetatype.cpp | 2 +- + src/corelib/kernel/qmetatype_p.h | 2 +- + src/gui/opengl/qopengltexturecache.cpp | 2 +- + src/gui/opengl/qopengltexturecache_p.h | 28 +++++----- + src/widgets/kernel/qwidgetwindow.cpp | 4 +- + src/widgets/styles/qfusionstyle.cpp | 4 +- + src/widgets/styles/qmacstyle_mac.mm | 4 +- + .../auto/corelib/global/qflags/tst_qflags.cpp | 8 +-- + tests/auto/other/modeltest/modeltest.cpp | 2 +- + 13 files changed, 44 insertions(+), 82 deletions(-) + +diff --git a/src/corelib/global/qflags.h b/src/corelib/global/qflags.h +index dc0873aaad..3faf8d5a65 100644 +--- a/src/corelib/global/qflags.h ++++ b/src/corelib/global/qflags.h +@@ -36,13 +36,12 @@ + #ifndef QFLAGS_H + #define QFLAGS_H + +-#include +-#include +- + #ifdef Q_COMPILER_INITIALIZER_LISTS + #include + #endif + ++#include ++ + QT_BEGIN_NAMESPACE + + class QFlag +@@ -88,6 +87,8 @@ class QFlags + Q_STATIC_ASSERT_X((sizeof(Enum) <= sizeof(int)), + "QFlags uses an int as storage, so an enum with underlying " + "long long will overflow."); ++ Q_STATIC_ASSERT_X((std::is_enum::value), "QFlags is only usable on enumeration types."); ++ + struct Private; + typedef int (Private::*Zero); + public: +@@ -97,7 +98,7 @@ public: + typedef int Int; + #else + typedef typename std::conditional< +- QtPrivate::QIsUnsignedEnum::value, ++ std::is_unsigned::type>::value, + unsigned int, + signed int + >::type Int; +diff --git a/src/corelib/global/qtypetraits.h b/src/corelib/global/qtypetraits.h +index c5d7cacd8d..f7badd9aee 100644 +--- a/src/corelib/global/qtypetraits.h ++++ b/src/corelib/global/qtypetraits.h +@@ -31,6 +31,12 @@ + ** + ****************************************************************************/ + ++// ### Qt 6: remove this header ++// ++// This header is deliberately empty. Although it did not contain any public API, ++// it was accidentally made public in Qt 5. So: do not remove it for the moment ++// being, to prevent #include breaks in downstreams. ++ + #include "QtCore/qglobal.h" + + #ifndef QTYPETRAITS_H +@@ -38,53 +44,6 @@ + + QT_BEGIN_NAMESPACE + +-namespace QtPrivate { +- +-// +-// Define QIsUnsignedEnum, QIsSignedEnum - +-// std::is_signed, std::is_unsigned does not work for enum's +-// +- +-// a metafunction to invert an integral_constant: +-template +-struct not_ +- : std::integral_constant {}; +- +-// Checks whether a type is unsigned (T must be convertible to unsigned int): +-template +-struct QIsUnsignedEnum +- : std::integral_constant {}; +- +-// Checks whether a type is signed (T must be convertible to int): +-template +-struct QIsSignedEnum +- : not_< QIsUnsignedEnum > {}; +- +-Q_STATIC_ASSERT(( QIsUnsignedEnum::value)); +-Q_STATIC_ASSERT((!QIsUnsignedEnum::value)); +- +-Q_STATIC_ASSERT((!QIsSignedEnum::value)); +-Q_STATIC_ASSERT(( QIsSignedEnum::value)); +- +-Q_STATIC_ASSERT(( QIsUnsignedEnum::value)); +-Q_STATIC_ASSERT((!QIsUnsignedEnum::value)); +- +-Q_STATIC_ASSERT((!QIsSignedEnum::value)); +-Q_STATIC_ASSERT(( QIsSignedEnum::value)); +- +-Q_STATIC_ASSERT(( QIsUnsignedEnum::value)); +-Q_STATIC_ASSERT((!QIsUnsignedEnum::value)); +- +-Q_STATIC_ASSERT((!QIsSignedEnum::value)); +-Q_STATIC_ASSERT(( QIsSignedEnum::value)); +- +-Q_STATIC_ASSERT(( QIsUnsignedEnum::value)); +-Q_STATIC_ASSERT((!QIsUnsignedEnum::value)); +- +-Q_STATIC_ASSERT((!QIsSignedEnum::value)); +-Q_STATIC_ASSERT(( QIsSignedEnum::value)); +- +-} // namespace QtPrivate +- + QT_END_NAMESPACE ++ + #endif // QTYPETRAITS_H +diff --git a/src/corelib/io/qurl.h b/src/corelib/io/qurl.h +index e6c570d1db..84be6f0d60 100644 +--- a/src/corelib/io/qurl.h ++++ b/src/corelib/io/qurl.h +@@ -65,8 +65,8 @@ public: + Q_DECL_CONSTEXPR inline QUrlTwoFlags(E1 f) : i(f) {} + Q_DECL_CONSTEXPR inline QUrlTwoFlags(E2 f) : i(f) {} + Q_DECL_CONSTEXPR inline QUrlTwoFlags(QFlag f) : i(f) {} +- Q_DECL_CONSTEXPR inline QUrlTwoFlags(QFlags f) : i(f.operator int()) {} +- Q_DECL_CONSTEXPR inline QUrlTwoFlags(QFlags f) : i(f.operator int()) {} ++ Q_DECL_CONSTEXPR inline QUrlTwoFlags(QFlags f) : i(f.operator typename QFlags::Int()) {} ++ Q_DECL_CONSTEXPR inline QUrlTwoFlags(QFlags f) : i(f.operator typename QFlags::Int()) {} + Q_DECL_CONSTEXPR inline QUrlTwoFlags(Zero = 0) : i(0) {} + + inline QUrlTwoFlags &operator&=(int mask) { i &= mask; return *this; } +diff --git a/src/corelib/itemmodels/qabstractitemmodel.cpp b/src/corelib/itemmodels/qabstractitemmodel.cpp +index e35454346b..f794fb4bf2 100644 +--- a/src/corelib/itemmodels/qabstractitemmodel.cpp ++++ b/src/corelib/itemmodels/qabstractitemmodel.cpp +@@ -1959,7 +1959,7 @@ Qt::DropActions QAbstractItemModel::supportedDropActions() const + Qt::DropActions QAbstractItemModel::supportedDragActions() const + { + Q_D(const QAbstractItemModel); +- if (d->supportedDragActions != -1) ++ if (d->supportedDragActions != Qt::IgnoreAction) + return d->supportedDragActions; + return supportedDropActions(); + } +diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp +index 59d75c182f..b51850cad0 100644 +--- a/src/corelib/kernel/qmetatype.cpp ++++ b/src/corelib/kernel/qmetatype.cpp +@@ -1012,7 +1012,7 @@ int QMetaType::registerNormalizedType(const NS(QByteArray) &normalizedTypeName, + normalizedTypeName.size()); + + int previousSize = 0; +- int previousFlags = 0; ++ QMetaType::TypeFlags::Int previousFlags = 0; + if (idx == UnknownType) { + QWriteLocker locker(customTypesLock()); + int posInVector = -1; +diff --git a/src/corelib/kernel/qmetatype_p.h b/src/corelib/kernel/qmetatype_p.h +index 7c0c984c9c..61be08ff24 100644 +--- a/src/corelib/kernel/qmetatype_p.h ++++ b/src/corelib/kernel/qmetatype_p.h +@@ -119,7 +119,7 @@ public: + QMetaType::Constructor constructor; + QMetaType::Destructor destructor; + int size; +- quint32 flags; // same as QMetaType::TypeFlags ++ QMetaType::TypeFlags::Int flags; + const QMetaObject *metaObject; + }; + +diff --git a/src/gui/opengl/qopengltexturecache.cpp b/src/gui/opengl/qopengltexturecache.cpp +index 72df636f5f..fbbca35b97 100644 +--- a/src/gui/opengl/qopengltexturecache.cpp ++++ b/src/gui/opengl/qopengltexturecache.cpp +@@ -365,7 +365,7 @@ static void freeTexture(QOpenGLFunctions *funcs, GLuint id) + funcs->glDeleteTextures(1, &id); + } + +-QOpenGLCachedTexture::QOpenGLCachedTexture(GLuint id, int options, QOpenGLContext *context) : m_options(options) ++QOpenGLCachedTexture::QOpenGLCachedTexture(GLuint id, QOpenGLTextureCache::BindOptions options, QOpenGLContext *context) : m_options(options) + { + m_resource = new QOpenGLSharedResourceGuard(context, id, freeTexture); + } +diff --git a/src/gui/opengl/qopengltexturecache_p.h b/src/gui/opengl/qopengltexturecache_p.h +index 40f033df43..849f3229b7 100644 +--- a/src/gui/opengl/qopengltexturecache_p.h ++++ b/src/gui/opengl/qopengltexturecache_p.h +@@ -53,19 +53,7 @@ + + QT_BEGIN_NAMESPACE + +-class QOpenGLCachedTexture +-{ +-public: +- QOpenGLCachedTexture(GLuint id, int options, QOpenGLContext *context); +- ~QOpenGLCachedTexture() { m_resource->free(); } +- +- GLuint id() const { return m_resource->id(); } +- int options() const { return m_options; } +- +-private: +- QOpenGLSharedResourceGuard *m_resource; +- int m_options; +-}; ++class QOpenGLCachedTexture; + + class Q_GUI_EXPORT QOpenGLTextureCache : public QOpenGLSharedResource + { +@@ -99,6 +87,20 @@ private: + + Q_DECLARE_OPERATORS_FOR_FLAGS(QOpenGLTextureCache::BindOptions) + ++class QOpenGLCachedTexture ++{ ++public: ++ QOpenGLCachedTexture(GLuint id, QOpenGLTextureCache::BindOptions options, QOpenGLContext *context); ++ ~QOpenGLCachedTexture() { m_resource->free(); } ++ ++ GLuint id() const { return m_resource->id(); } ++ QOpenGLTextureCache::BindOptions options() const { return m_options; } ++ ++private: ++ QOpenGLSharedResourceGuard *m_resource; ++ QOpenGLTextureCache::BindOptions m_options; ++}; ++ + QT_END_NAMESPACE + + #endif +diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp +index 40c488857e..c0a3a670eb 100644 +--- a/src/widgets/kernel/qwidgetwindow.cpp ++++ b/src/widgets/kernel/qwidgetwindow.cpp +@@ -947,8 +947,8 @@ void QWidgetWindow::handleWindowStateChangedEvent(QWindowStateChangeEvent *event + + // Sent event if the state changed (that is, it is not triggered by + // QWidget::setWindowState(), which also sends an event to the widget). +- if (widgetState != int(m_widget->data->window_state)) { +- m_widget->data->window_state = widgetState; ++ if (widgetState != Qt::WindowStates::Int(m_widget->data->window_state)) { ++ m_widget->data->window_state = uint(widgetState); + QWindowStateChangeEvent widgetEvent(eventState); + QGuiApplication::sendSpontaneousEvent(m_widget, &widgetEvent); + } +diff --git a/src/widgets/styles/qfusionstyle.cpp b/src/widgets/styles/qfusionstyle.cpp +index dcc99496e3..2d8561219c 100644 +--- a/src/widgets/styles/qfusionstyle.cpp ++++ b/src/widgets/styles/qfusionstyle.cpp +@@ -2413,7 +2413,7 @@ void QFusionStyle::drawComplexControl(ComplexControl control, const QStyleOption + int oldMin = styleObject->property("_q_stylemin").toInt(); + int oldMax = styleObject->property("_q_stylemax").toInt(); + QRect oldRect = styleObject->property("_q_stylerect").toRect(); +- int oldState = styleObject->property("_q_stylestate").toInt(); ++ QStyle::State oldState = static_cast(styleObject->property("_q_stylestate").value()); + uint oldActiveControls = styleObject->property("_q_stylecontrols").toUInt(); + + // a scrollbar is transient when the the scrollbar itself and +@@ -2436,7 +2436,7 @@ void QFusionStyle::drawComplexControl(ComplexControl control, const QStyleOption + styleObject->setProperty("_q_stylemin", scrollBar->minimum); + styleObject->setProperty("_q_stylemax", scrollBar->maximum); + styleObject->setProperty("_q_stylerect", scrollBar->rect); +- styleObject->setProperty("_q_stylestate", static_cast(scrollBar->state)); ++ styleObject->setProperty("_q_stylestate", static_cast(scrollBar->state)); + styleObject->setProperty("_q_stylecontrols", static_cast(scrollBar->activeSubControls)); + + #ifndef QT_NO_ANIMATION +diff --git a/src/widgets/styles/qmacstyle_mac.mm b/src/widgets/styles/qmacstyle_mac.mm +index 84445bfce4..fa4ea7f35a 100644 +--- a/src/widgets/styles/qmacstyle_mac.mm ++++ b/src/widgets/styles/qmacstyle_mac.mm +@@ -5437,7 +5437,7 @@ void QMacStyle::drawComplexControl(ComplexControl cc, const QStyleOptionComplex + int oldMin = styleObject->property("_q_stylemin").toInt(); + int oldMax = styleObject->property("_q_stylemax").toInt(); + QRect oldRect = styleObject->property("_q_stylerect").toRect(); +- int oldState = styleObject->property("_q_stylestate").toInt(); ++ QStyle::State oldState = static_cast(styleObject->property("_q_stylestate").value()); + uint oldActiveControls = styleObject->property("_q_stylecontrols").toUInt(); + + // a scrollbar is transient when the scrollbar itself and +@@ -5460,7 +5460,7 @@ void QMacStyle::drawComplexControl(ComplexControl cc, const QStyleOptionComplex + styleObject->setProperty("_q_stylemin", slider->minimum); + styleObject->setProperty("_q_stylemax", slider->maximum); + styleObject->setProperty("_q_stylerect", slider->rect); +- styleObject->setProperty("_q_stylestate", static_cast(slider->state)); ++ styleObject->setProperty("_q_stylestate", static_cast(slider->state)); + styleObject->setProperty("_q_stylecontrols", static_cast(slider->activeSubControls)); + + QScrollbarStyleAnimation *anim = qobject_cast(d->animation(styleObject)); +diff --git a/tests/auto/corelib/global/qflags/tst_qflags.cpp b/tests/auto/corelib/global/qflags/tst_qflags.cpp +index f16b5c4cf7..562a7a28d0 100644 +--- a/tests/auto/corelib/global/qflags/tst_qflags.cpp ++++ b/tests/auto/corelib/global/qflags/tst_qflags.cpp +@@ -138,11 +138,11 @@ void tst_QFlags::signedness() + // underlying type is implementation-defined, we need to allow for + // a different signedness, so we only check that the relative + // signedness of the types matches: +- Q_STATIC_ASSERT((QtPrivate::QIsUnsignedEnum::value == +- QtPrivate::QIsUnsignedEnum::value)); ++ Q_STATIC_ASSERT((std::is_unsigned::type>::value == ++ std::is_unsigned::value)); + +- Q_STATIC_ASSERT((QtPrivate::QIsSignedEnum::value == +- QtPrivate::QIsSignedEnum::value)); ++ Q_STATIC_ASSERT((std::is_signed::type>::value == ++ std::is_signed::value)); + } + + #if defined(Q_COMPILER_CLASS_ENUM) +diff --git a/tests/auto/other/modeltest/modeltest.cpp b/tests/auto/other/modeltest/modeltest.cpp +index c119fdaa4e..55290a8402 100644 +--- a/tests/auto/other/modeltest/modeltest.cpp ++++ b/tests/auto/other/modeltest/modeltest.cpp +@@ -443,7 +443,7 @@ void ModelTest::data() + // Check that the alignment is one we know about + QVariant textAlignmentVariant = model->data ( model->index ( 0, 0 ), Qt::TextAlignmentRole ); + if ( textAlignmentVariant.isValid() ) { +- int alignment = textAlignmentVariant.toInt(); ++ Qt::Alignment alignment = textAlignmentVariant.value(); + QCOMPARE( alignment, ( alignment & ( Qt::AlignHorizontal_Mask | Qt::AlignVertical_Mask ) ) ); + } + +-- +2.25.1 + diff -Nru vlc-3.0.17.4/contrib/src/qt/rules.mak vlc-3.0.18/contrib/src/qt/rules.mak --- vlc-3.0.17.4/contrib/src/qt/rules.mak 2020-10-24 18:21:13.000000000 +0000 +++ vlc-3.0.18/contrib/src/qt/rules.mak 2022-08-24 17:42:00.000000000 +0000 @@ -35,6 +35,11 @@ $(APPLY) $(SRC)/qt/0011-qCount-Leading-Trailing-ZeroBits-Use-__builtin_clzs-.patch $(APPLY) $(SRC)/qt/0012-Remove-_bit_scan_-forward-reverse.patch $(APPLY) $(SRC)/qt/0013-qsimd-Fix-compilation-with-trunk-clang-for-mingw.patch + $(APPLY) $(SRC)/qt/0014-QtTest-compile-in-C-17-mode-no-more-std-unary_functi.patch + $(APPLY) $(SRC)/qt/0015-foreach-remove-implementations-not-using-decltype.patch + $(APPLY) $(SRC)/qt/0016-Replace-custom-type-traits-with-std-one-s.patch + $(APPLY) $(SRC)/qt/0017-Rename-QtPrivate-is_-un-signed-to-QtPrivate-Is-Un-si.patch + $(APPLY) $(SRC)/qt/0018-Remove-qtypetraits.h-s-contents-altogether.patch $(APPLY) $(SRC)/qt/systray-no-sound.patch $(MOVE) diff -Nru vlc-3.0.17.4/contrib/src/regex/decls.patch vlc-3.0.18/contrib/src/regex/decls.patch --- vlc-3.0.17.4/contrib/src/regex/decls.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/regex/decls.patch 2022-05-24 20:36:20.000000000 +0000 @@ -0,0 +1,11 @@ +--- regex/regex.c.orig 2022-04-21 17:46:06.786845467 +0300 ++++ regex/regex.c 2022-04-21 16:46:41.670051683 +0300 +@@ -127,6 +127,8 @@ + # else + char *malloc (); + char *realloc (); ++void abort (); ++void free (); + # endif + + /* When used in Emacs's lib-src, we need to get bzero and bcopy somehow. diff -Nru vlc-3.0.17.4/contrib/src/regex/rules.mak vlc-3.0.18/contrib/src/regex/rules.mak --- vlc-3.0.17.4/contrib/src/regex/rules.mak 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/regex/rules.mak 2022-05-24 20:36:20.000000000 +0000 @@ -15,6 +15,7 @@ regex: regex-$(REGEX_VERSION).tar.gz .sum-regex $(UNPACK) $(APPLY) $(SRC)/regex/no-docs.patch + $(APPLY) $(SRC)/regex/decls.patch $(MOVE) .regex: regex diff -Nru vlc-3.0.17.4/contrib/src/shout/rules.mak vlc-3.0.18/contrib/src/shout/rules.mak --- vlc-3.0.17.4/contrib/src/shout/rules.mak 2020-07-27 08:31:07.000000000 +0000 +++ vlc-3.0.18/contrib/src/shout/rules.mak 2022-05-24 20:36:20.000000000 +0000 @@ -29,6 +29,7 @@ $(APPLY) $(SRC)/shout/no-examples.patch $(APPLY) $(SRC)/shout/no-force-libwsock.patch $(APPLY) $(SRC)/shout/should-win32-ws2tcpip.patch + $(APPLY) $(SRC)/shout/win32-gettimeofday.patch $(call pkg_static,"shout.pc.in") $(UPDATE_AUTOCONFIG) $(MOVE) diff -Nru vlc-3.0.17.4/contrib/src/shout/win32-gettimeofday.patch vlc-3.0.18/contrib/src/shout/win32-gettimeofday.patch --- vlc-3.0.17.4/contrib/src/shout/win32-gettimeofday.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/shout/win32-gettimeofday.patch 2022-05-24 20:36:20.000000000 +0000 @@ -0,0 +1,22 @@ +--- libshout/src/common/timing/timing.c.orig 2022-04-21 15:00:39.729501137 +0300 ++++ libshout/src/common/timing/timing.c 2022-04-21 15:00:43.565527749 +0300 +@@ -37,6 +37,9 @@ + #include + #include + #else ++#include ++#endif ++ + #ifdef TIME_WITH_SYS_TIME + # include + # include +@@ -48,9 +51,6 @@ + # endif + #endif + +-#include +-#endif +- + #ifdef HAVE_SYS_SELECT_H + #include + #endif diff -Nru vlc-3.0.17.4/contrib/src/smb2/rules.mak vlc-3.0.18/contrib/src/smb2/rules.mak --- vlc-3.0.17.4/contrib/src/smb2/rules.mak 2022-02-15 17:24:38.000000000 +0000 +++ vlc-3.0.18/contrib/src/smb2/rules.mak 2022-05-24 20:36:20.000000000 +0000 @@ -1,6 +1,6 @@ # SMB2 -SMB2_VERSION := 08c1682f44b00fa694836703ed16ec74987f77d2 -SMB2_URL := https://github.com/sahlberg/libsmb2/archive/$(SMB2_VERSION).tar.gz +SMB2_VERSION := 4.0.0 +SMB2_URL := https://github.com/sahlberg/libsmb2/archive/v$(SMB2_VERSION).tar.gz ifeq ($(call need_pkg,"smb2"),) PKGS_FOUND += smb2 diff -Nru vlc-3.0.17.4/contrib/src/smb2/SHA512SUMS vlc-3.0.18/contrib/src/smb2/SHA512SUMS --- vlc-3.0.17.4/contrib/src/smb2/SHA512SUMS 2022-02-15 17:24:38.000000000 +0000 +++ vlc-3.0.18/contrib/src/smb2/SHA512SUMS 2022-05-24 20:36:20.000000000 +0000 @@ -1 +1 @@ -ba70459966ec2a927058d16870f5dd73960d38a36c28500b9f1186ad7aca94449b0e8908e4c7ce46cafb8d05a8e93517df615c3ef2dbd559fd409ba98bd3a824 libsmb2-08c1682f44b00fa694836703ed16ec74987f77d2.tar.gz +d62d05f946d104995faefa8e4fdb3a9121f697a29aac031ddd6f2c3ec9ce97edbd18d84ace56103c19e0f56356b531f7d2db826428aff52abb4930603a5fb50f libsmb2-4.0.0.tar.gz diff -Nru vlc-3.0.17.4/contrib/src/speex/rules.mak vlc-3.0.18/contrib/src/speex/rules.mak --- vlc-3.0.17.4/contrib/src/speex/rules.mak 2021-07-03 11:08:08.000000000 +0000 +++ vlc-3.0.18/contrib/src/speex/rules.mak 2022-07-23 11:02:17.000000000 +0000 @@ -1,6 +1,6 @@ # speex -SPEEX_VERSION := 1.2.0 +SPEEX_VERSION := 1.2.1 SPEEX_URL := http://downloads.us.xiph.org/releases/speex/speex-$(SPEEX_VERSION).tar.gz PKGS += speex diff -Nru vlc-3.0.17.4/contrib/src/speex/SHA512SUMS vlc-3.0.18/contrib/src/speex/SHA512SUMS --- vlc-3.0.17.4/contrib/src/speex/SHA512SUMS 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/speex/SHA512SUMS 2022-07-23 11:02:17.000000000 +0000 @@ -1 +1 @@ -7fe10838c7d1bafcbe42295b82b79262420dba793b8a4388e2f73a3007850b5572face1b5308d9f4e8d7dfc9cb1c016cbad88cd65b2892667986107ed946836b speex-1.2.0.tar.gz +52e00300df82e1c7fb527b245af02b99a1f37faef74d004b7cd981052f1aa22a412cb18f5c7a5618df4c958f727c97eb7385beec99d68548d5b02e76192d4e0a speex-1.2.1.tar.gz diff -Nru vlc-3.0.17.4/contrib/src/speexdsp/rules.mak vlc-3.0.18/contrib/src/speexdsp/rules.mak --- vlc-3.0.17.4/contrib/src/speexdsp/rules.mak 2021-07-03 11:08:08.000000000 +0000 +++ vlc-3.0.18/contrib/src/speexdsp/rules.mak 2022-08-03 10:56:27.000000000 +0000 @@ -1,6 +1,6 @@ # speexdsp -SPEEXDSP_VERSION := 1.2rc3 +SPEEXDSP_VERSION := 1.2.1 SPEEXDSP_URL := http://downloads.us.xiph.org/releases/speex/speexdsp-$(SPEEXDSP_VERSION).tar.gz PKGS += speexdsp diff -Nru vlc-3.0.17.4/contrib/src/speexdsp/SHA512SUMS vlc-3.0.18/contrib/src/speexdsp/SHA512SUMS --- vlc-3.0.17.4/contrib/src/speexdsp/SHA512SUMS 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/speexdsp/SHA512SUMS 2022-08-03 10:56:27.000000000 +0000 @@ -1 +1 @@ -29dfa8345df025eeb076561648a9b5c0485692be699b6da3c2a3734b4329187a1c2eb181252f4df12b21f1309ecdf59797437dfb123d160fd723491ab216e858 speexdsp-1.2rc3.tar.gz +41b5f37b48db5cb8c5a0f6437a4a8266d2627a5b7c1088de8549fe0bf0bb3105b7df8024fe207eef194096e0726ea73e2b53e0a4293d8db8e133baa0f8a3bad3 speexdsp-1.2.1.tar.gz diff -Nru vlc-3.0.17.4/contrib/src/ssh2/0001-Add-lgpg-error-to-.pc-to-facilitate-static-linking.patch vlc-3.0.18/contrib/src/ssh2/0001-Add-lgpg-error-to-.pc-to-facilitate-static-linking.patch --- vlc-3.0.17.4/contrib/src/ssh2/0001-Add-lgpg-error-to-.pc-to-facilitate-static-linking.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/ssh2/0001-Add-lgpg-error-to-.pc-to-facilitate-static-linking.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -From 2fc4ef54ec61e98e757a49719b859d8ee59af952 Mon Sep 17 00:00:00 2001 -From: Mikhail Gusarov -Date: Wed, 3 Sep 2014 15:47:19 +0200 -Subject: [PATCH] Add -lgpg-error to .pc to facilitate static linking - -Note that this patch is Debian-specific as we know that libssh2 is linked -to gcrypt. - -Patching configure.ac to add gpg-error as a dependent library is not good, as it -would cause overlinking of libssh2, and there is no separate variable for -"static dependencies". - -All this mess ought to be solved in gcrypt inself by providing .pc file, -but it is not. - ---- - libssh2.pc.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: libssh2/libssh2.pc.in -=================================================================== ---- libssh2.orig/libssh2.pc.in -+++ libssh2/libssh2.pc.in -@@ -13,5 +13,5 @@ Description: Library for SSH-based commu - Version: @LIBSSH2VER@ - Requires.private: @LIBSREQUIRED@ - Libs: -L${libdir} -lssh2 @LIBS@ --Libs.private: @LIBS@ -+Libs.private: @LIBS@ -lgpg-error - Cflags: -I${includedir} diff -Nru vlc-3.0.17.4/contrib/src/ssh2/0001-fix-gcrypt-linking.patch vlc-3.0.18/contrib/src/ssh2/0001-fix-gcrypt-linking.patch --- vlc-3.0.17.4/contrib/src/ssh2/0001-fix-gcrypt-linking.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/ssh2/0001-fix-gcrypt-linking.patch 2022-07-23 11:04:18.000000000 +0000 @@ -0,0 +1,10 @@ +--- ssh2/acinclude.m4.orig 2022-05-08 22:01:39.704273920 +0200 ++++ ssh2/acinclude.m4 2022-05-27 15:24:17.697253672 +0200 +@@ -434,6 +434,7 @@ + [libgcrypt], [ + LIBSSH2_LIB_HAVE_LINKFLAGS([gcrypt], [], [#include ], [ + AC_DEFINE(LIBSSH2_LIBGCRYPT, 1, [Use $1]) ++ LIBS="$LIBS -lgcrypt -lgpg-error" + found_crypto="$1" + ]) + ], diff -Nru vlc-3.0.17.4/contrib/src/ssh2/ced924b78a40126606797ef57a74066eb3b4b83f.patch vlc-3.0.18/contrib/src/ssh2/ced924b78a40126606797ef57a74066eb3b4b83f.patch --- vlc-3.0.17.4/contrib/src/ssh2/ced924b78a40126606797ef57a74066eb3b4b83f.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/ssh2/ced924b78a40126606797ef57a74066eb3b4b83f.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ -From ced924b78a40126606797ef57a74066eb3b4b83f Mon Sep 17 00:00:00 2001 -From: Sergei Trofimovich -Date: Mon, 31 Oct 2016 09:04:33 +0000 -Subject: [PATCH] acinclude.m4: fix ./configure --with-libgcrypt - -The change fixes passing of bogus gcrypt prefix. -Reproducible as: - - $ ./configure --with-libgcrypt - $ make V=1 - ... - /bin/sh ../libtool --tag=CC --mode=link gcc -g -O2 -Iyes/include -version-info 1:1:0 -no-undefined -export-symbols-regex '^libssh2_.*' -lgcrypt -lz -Lyes/lib -o libssh2.la -rpath /usr/local/lib channel.lo comp.lo crypt.lo hostkey.lo kex.lo mac.lo misc.lo packet.lo publickey.lo scp.lo session.lo sftp.lo userauth.lo transport.lo version.lo knownhost.lo agent.lo libgcrypt.lo pem.lo keepalive.lo global.lo -lgcrypt - ../libtool: line 7475: cd: yes/lib: No such file or directory - libtool: error: cannot determine absolute directory name of 'yes/lib' - -These - -Iyes/include - -Lyes/lib -come from libgcrypt code autodetection: - if test -n "$use_libgcrypt" && test "$use_libgcrypt" != "no"; then - LDFLAGS="$LDFLAGS -L$use_libgcrypt/lib" - CFLAGS="$CFLAGS -I$use_libgcrypt/include" - -I assume it's a typo to use yes/no flag as a prefix and changed -it to '$with_libgcrypt_prefix'. - -Reported-by: Mikhail Pukhlikov -Signed-off-by: Sergei Trofimovich ---- - acinclude.m4 | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/acinclude.m4 b/acinclude.m4 -index 734ef07..c78260c 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -412,9 +412,9 @@ AC_DEFUN([LIBSSH2_CHECKFOR_GCRYPT], [ - - old_LDFLAGS=$LDFLAGS - old_CFLAGS=$CFLAGS -- if test -n "$use_libgcrypt" && test "$use_libgcrypt" != "no"; then -- LDFLAGS="$LDFLAGS -L$use_libgcrypt/lib" -- CFLAGS="$CFLAGS -I$use_libgcrypt/include" -+ if test -n "$with_libgcrypt_prefix" && test "$use_libgcrypt" != "no"; then -+ LDFLAGS="$LDFLAGS -L$with_libgcrypt_prefix/lib" -+ CFLAGS="$CFLAGS -I$with_libgcrypt_prefix/include" - fi - AC_LIB_HAVE_LINKFLAGS([gcrypt], [], [ - #include diff -Nru vlc-3.0.17.4/contrib/src/ssh2/rules.mak vlc-3.0.18/contrib/src/ssh2/rules.mak --- vlc-3.0.17.4/contrib/src/ssh2/rules.mak 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/ssh2/rules.mak 2022-07-23 11:04:18.000000000 +0000 @@ -1,6 +1,6 @@ # ssh2 -LIBSSH2_VERSION := 1.8.0 +LIBSSH2_VERSION := 1.10.0 LIBSSH2_URL := http://www.libssh2.org/download/libssh2-$(LIBSSH2_VERSION).tar.gz ifdef BUILD_NETWORK @@ -22,8 +22,7 @@ ssh2: libssh2-$(LIBSSH2_VERSION).tar.gz .sum-ssh2 $(UNPACK) $(APPLY) $(SRC)/ssh2/no-tests.patch - $(APPLY) $(SRC)/ssh2/ced924b78a40126606797ef57a74066eb3b4b83f.patch - $(APPLY) $(SRC)/ssh2/0001-Add-lgpg-error-to-.pc-to-facilitate-static-linking.patch + $(APPLY) $(SRC)/ssh2/0001-fix-gcrypt-linking.patch $(call pkg_static,"libssh2.pc.in") ifdef HAVE_WINSTORE $(APPLY) $(SRC)/ssh2/winrt-no-agent.patch diff -Nru vlc-3.0.17.4/contrib/src/ssh2/SHA512SUMS vlc-3.0.18/contrib/src/ssh2/SHA512SUMS --- vlc-3.0.17.4/contrib/src/ssh2/SHA512SUMS 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/ssh2/SHA512SUMS 2022-07-23 11:04:18.000000000 +0000 @@ -1 +1 @@ -289aa45c4f99653bebf5f99565fe9c519abc204feb2084b47b7cc3badc8bf4ecdedd49ea6acdce8eb902b3c00995d5f92a3ca77b2508b92f04ae0e7de7287558 libssh2-1.8.0.tar.gz +e064ee1089eb8e6cd5fa2617f4fd8ff56c2721c5476775a98bdb68c6c4ee4d05c706c3bb0eb479a27a8ec0b17a8a5ef43e1d028ad3f134519aa582d3981a3a30 libssh2-1.10.0.tar.gz diff -Nru vlc-3.0.17.4/contrib/src/ssh2/winrt-no-agent.patch vlc-3.0.18/contrib/src/ssh2/winrt-no-agent.patch --- vlc-3.0.17.4/contrib/src/ssh2/winrt-no-agent.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/ssh2/winrt-no-agent.patch 2022-07-23 11:04:18.000000000 +0000 @@ -18,3 +18,14 @@ {"Pageant", &agent_ops_pageant}, #endif /* WIN32 */ #ifdef PF_UNIX +--- ssh2/src/agent_win.c.orig 2022-05-27 20:17:14.311901449 +0200 ++++ ssh2/src/agent_win.c 2022-05-27 20:16:25.851861610 +0200 +@@ -55,7 +55,7 @@ + #include + #endif + +-#ifdef WIN32 ++#if defined(WIN32) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + /* Code to talk to OpenSSH was taken and modified from the Win32 port of + * Portable OpenSSH by the PowerShell team. Commit + * 8ab565c53f3619d6a1f5ac229e212cad8a52852c of diff -Nru vlc-3.0.17.4/contrib/src/upnp/0001-Do-not-try-to-detach-detached-thread-the-result-is-u.patch vlc-3.0.18/contrib/src/upnp/0001-Do-not-try-to-detach-detached-thread-the-result-is-u.patch --- vlc-3.0.17.4/contrib/src/upnp/0001-Do-not-try-to-detach-detached-thread-the-result-is-u.patch 2022-03-22 15:27:56.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/0001-Do-not-try-to-detach-detached-thread-the-result-is-u.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -From de5cd603acd5c81ec947fd9664817231a3d2c418 Mon Sep 17 00:00:00 2001 -From: Jean-Francois Dockes -Date: Sun, 27 Jan 2019 10:44:17 +0100 -Subject: [PATCH] Do not try to detach detached thread, the result is - undefined. Fixes issue #102 - -(cherry picked from commit 386b7ed79146ecf7a3bba49f48cb8f41a9b49170) ---- - threadutil/src/ThreadPool.c | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/threadutil/src/ThreadPool.c b/threadutil/src/ThreadPool.c -index fcf71087..8c6cd092 100644 ---- a/threadutil/src/ThreadPool.c -+++ b/threadutil/src/ThreadPool.c -@@ -651,11 +651,6 @@ static int CreateWorker( - rc = ithread_create(&temp, &attr, WorkerThread, tp); - ithread_attr_destroy(&attr); - if (rc == 0) { -- rc = ithread_detach(temp); -- /* ithread_detach will return EINVAL if thread has been -- successfully detached by ithread_create */ -- if (rc == EINVAL) -- rc = 0; - tp->pendingWorkerThreadStart = 1; - /* wait until the new worker thread starts */ - while (tp->pendingWorkerThreadStart) { --- -2.27.0.windows.1 - diff -Nru vlc-3.0.17.4/contrib/src/upnp/0001-ThreadPool-Fix-non-UCRT-builds.patch vlc-3.0.18/contrib/src/upnp/0001-ThreadPool-Fix-non-UCRT-builds.patch --- vlc-3.0.17.4/contrib/src/upnp/0001-ThreadPool-Fix-non-UCRT-builds.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/0001-ThreadPool-Fix-non-UCRT-builds.patch 2022-08-24 17:42:00.000000000 +0000 @@ -0,0 +1,32 @@ +From 3560d8d3f1a5b7e88b9d6282c09b2caf37beedc8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= +Date: Thu, 4 Aug 2022 15:55:55 +0200 +Subject: [PATCH] ThreadPool: Fix non UCRT builds + +--- + upnp/src/threadutil/ThreadPool.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/upnp/src/threadutil/ThreadPool.c b/upnp/src/threadutil/ThreadPool.c +index 49fa8486..e5883d31 100644 +--- a/upnp/src/threadutil/ThreadPool.c ++++ b/upnp/src/threadutil/ThreadPool.c +@@ -1297,10 +1297,15 @@ int gettimeofday(struct timeval *tv, struct timezone *tz) + _tzset(); + tzflag++; + } ++#ifdef _UCRT + long itz = 0; + _get_timezone(&itz); + tz->tz_minuteswest = (int)(itz / 60); + _get_daylight(&tz->tz_dsttime); ++#else ++ tz->tz_minuteswest = _timezone / 60; ++ tz->tz_dsttime = _daylight; ++#endif + } + + return 0; +-- +2.35.1 + diff -Nru vlc-3.0.17.4/contrib/src/upnp/dont_use_down_intf.patch vlc-3.0.18/contrib/src/upnp/dont_use_down_intf.patch --- vlc-3.0.17.4/contrib/src/upnp/dont_use_down_intf.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/dont_use_down_intf.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ ---- upnp_clean/upnp/src/api/upnpapi.c 2015-05-11 18:04:45.054340200 +0200 -+++ libupnp-1.6.19/upnp/src/api/upnpapi.c 2015-05-11 18:11:37.438360600 +0200 -@@ -3258,7 +3258,8 @@ - ifname_found = 1; - } - for (adapts_item = adapts; adapts_item != NULL; adapts_item = adapts_item->Next) { -- if (adapts_item->Flags & IP_ADAPTER_NO_MULTICAST) { -+ if (adapts_item->Flags & IP_ADAPTER_NO_MULTICAST || -+ adapts_item->OperStatus != IfOperStatusUp) { - continue; - } - if (ifname_found == 0) { diff -Nru vlc-3.0.17.4/contrib/src/upnp/fix_infinite_loop.patch vlc-3.0.18/contrib/src/upnp/fix_infinite_loop.patch --- vlc-3.0.17.4/contrib/src/upnp/fix_infinite_loop.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/fix_infinite_loop.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ ---- upnp_clean/upnp/src/api/upnpapi.c 2015-05-11 17:59:17.892347500 +0200 -+++ upnp/upnp/src/api/upnpapi.c 2015-05-11 18:01:05.000083700 +0200 -@@ -3257,8 +3257,7 @@ - strncpy(gIF_NAME, IfName, sizeof(gIF_NAME) - 1); - ifname_found = 1; - } -- adapts_item = adapts; -- while (adapts_item != NULL) { -+ for (adapts_item = adapts; adapts_item != NULL; adapts_item = adapts_item->Next) { - if (adapts_item->Flags & IP_ADAPTER_NO_MULTICAST) { - continue; - } -@@ -3345,8 +3344,6 @@ - gIF_INDEX = adapts_item->IfIndex; - break; - } -- /* Next adapter. */ -- adapts_item = adapts_item->Next; - } - /* Failed to find a valid interface, or valid address. */ - if (ifname_found == 0 || valid_addr_found == 0) { diff -Nru vlc-3.0.17.4/contrib/src/upnp/libpthread.patch vlc-3.0.18/contrib/src/upnp/libpthread.patch --- vlc-3.0.17.4/contrib/src/upnp/libpthread.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/libpthread.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -On GNU/Linux, -pthread does not work properly when linking a static -library that depends on POSIX threads. -lpthread must be checked first. - -diff -Nru upnp.orig/m4/acx_pthread.m4 upnp/m4/acx_pthread.m4 ---- upnp.orig/m4/acx_pthread.m4 2016-08-06 11:54:20.990800226 +0300 -+++ upnp/m4/acx_pthread.m4 2016-08-06 11:54:37.909800395 +0300 -@@ -123,7 +123,7 @@ - # which indicates that we try without any flags at all, and "pthread-config" - # which is a program returning the flags for the Pth emulation library. - --acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" -+acx_pthread_flags="pthreads none -Kthread -kthread lthread -lpthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" - - # The ordering *is* (sometimes) important. Some notes on the - # individual items follow: diff -Nru vlc-3.0.17.4/contrib/src/upnp/libupnp-ipv6.patch vlc-3.0.18/contrib/src/upnp/libupnp-ipv6.patch --- vlc-3.0.17.4/contrib/src/upnp/libupnp-ipv6.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/libupnp-ipv6.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ -From 438ace99538713fb1370411188e0f370069a1818 Mon Sep 17 00:00:00 2001 -From: Konstantin Pavlov -Date: Tue, 29 May 2012 10:18:40 +0400 -Subject: [PATCH] Fix compile under mingw with IPv6 enabled. - ---- - upnp/src/genlib/miniserver/miniserver.c | 7 +++++++ - upnp/src/ssdp/ssdp_server.c | 7 +++++++ - 2 files changed, 14 insertions(+) - -diff --git a/upnp/src/genlib/miniserver/miniserver.c b/upnp/src/genlib/miniserver/miniserver.c -index af310ca..1ae422f 100644 ---- a/upnp/src/genlib/miniserver/miniserver.c -+++ b/upnp/src/genlib/miniserver/miniserver.c -@@ -68,6 +68,13 @@ - /*! . */ - #define APPLICATION_LISTENING_PORT 49152 - -+/* IPV6_V6ONLY is missing from MinGW, hack taken from -+ * http://svn.apache.org/repos/asf/apr/apr/trunk/network_io/win32/sockopt.c -+ */ -+#ifndef IPV6_V6ONLY -+#define IPV6_V6ONLY 27 -+#endif -+ - struct mserv_request_t { - /*! Connection handle. */ - SOCKET connfd; -diff --git a/upnp/src/ssdp/ssdp_server.c b/upnp/src/ssdp/ssdp_server.c -index 231c2c5..6a9c27f 100644 ---- a/upnp/src/ssdp/ssdp_server.c -+++ b/upnp/src/ssdp/ssdp_server.c -@@ -69,6 +69,13 @@ - #endif /* UPNP_ENABLE_IPV6 */ - #endif /* INCLUDE_CLIENT_APIS */ - -+/* IPV6_V6ONLY is missing from MinGW, hack taken from -+ * http://svn.apache.org/repos/asf/apr/apr/trunk/network_io/win32/sockopt.c -+ */ -+#ifndef IPV6_V6ONLY -+#define IPV6_V6ONLY 27 -+#endif -+ - void RequestHandler(); - - enum Listener { --- -1.7.9.7 - diff -Nru vlc-3.0.17.4/contrib/src/upnp/libupnp-pthread-force.patch vlc-3.0.18/contrib/src/upnp/libupnp-pthread-force.patch --- vlc-3.0.17.4/contrib/src/upnp/libupnp-pthread-force.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/libupnp-pthread-force.patch 2022-05-24 20:36:20.000000000 +0000 @@ -0,0 +1,10 @@ +--- upnp/configure.ac.pthread-w32 2018-05-17 11:51:47.115502500 +0200 ++++ upnp/configure.ac 2018-05-17 12:49:30.371786100 +0200 +@@ -667,6 +667,7 @@ ACX_PTHREAD( + # + # Update environment variables for pthreads + # ++PTHREAD_LIBS="-lpthread -pthread" + CC="$PTHREAD_CC" + CFLAGS="$PTHREAD_CFLAGS $CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" diff -Nru vlc-3.0.17.4/contrib/src/upnp/libupnp-pthread-w32-checks.patch vlc-3.0.18/contrib/src/upnp/libupnp-pthread-w32-checks.patch --- vlc-3.0.17.4/contrib/src/upnp/libupnp-pthread-w32-checks.patch 2022-02-15 17:24:38.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/libupnp-pthread-w32-checks.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,54 +0,0 @@ ---- upnp/threadutil/src/ThreadPool.c.pthread-w32 2018-05-17 10:53:48.438587300 +0200 -+++ upnp/threadutil/src/ThreadPool.c 2018-05-17 10:54:03.696907300 +0200 -@@ -34,7 +34,7 @@ - * \file - */ - --#if !defined(WIN32) -+#if !defined(WIN32) || !defined(_MSC_VER) - #include - #endif - -@@ -263,8 +263,16 @@ static int SetPolicyType( - #elif defined(__OSX__) || defined(__APPLE__) || defined(__NetBSD__) - setpriority(PRIO_PROCESS, 0, 0); - retVal = 0; --#elif defined(WIN32) -+#elif defined(PTW32_LEVEL) - retVal = sched_setscheduler(0, in); -+#elif defined(WIN32) -+ struct sched_param current; -+ int sched_result; -+ -+ memset(¤t, 0, sizeof(current)); -+ current.sched_priority = sched_get_priority_min(DEFAULT_POLICY); -+ sched_result = sched_setscheduler(0, in, ¤t); -+ retVal = (sched_result != -1 || errno == EPERM) ? 0 : errno; - #elif defined(_POSIX_PRIORITY_SCHEDULING) && _POSIX_PRIORITY_SCHEDULING > 0 - struct sched_param current; - int sched_result; -@@ -415,11 +423,11 @@ static void SetSeed(void) - struct timeval t; - - gettimeofday(&t, NULL); --#if defined(WIN32) -+#if defined(PTW32_LEVEL) - srand((unsigned int)t.tv_usec + (unsigned int)ithread_get_current_thread_id().p); - #elif defined(BSD) || defined(__OSX__) || defined(__APPLE__) || defined(__FreeBSD_kernel__) - srand((unsigned int)t.tv_usec + (unsigned int)ithread_get_current_thread_id()); --#elif defined(__linux__) || defined(__sun) || defined(__CYGWIN__) || defined(__GLIBC__) -+#elif defined(__linux__) || defined(__sun) || defined(__CYGWIN__) || defined(__GLIBC__) || defined(WIN32) - srand((unsigned int)t.tv_usec + (unsigned int)ithread_get_current_thread_id()); - #else - { ---- upnp/upnp/src/api/upnpdebug.c.pthread-w32 2018-05-17 10:53:05.030173700 +0200 -+++ upnp/upnp/src/api/upnpdebug.c 2018-05-17 10:53:44.686358100 +0200 -@@ -183,7 +183,7 @@ void UpnpDisplayFileAndLine(FILE *fd, co - lines[i] = buf[i]; - /* Put the debug lines in the buffer */ - sprintf(buf[0], "DEBUG - THREAD ID: 0x%lX", --#ifdef WIN32 -+#if defined(PTW32_LEVEL) - (unsigned long int)ithread_self().p - #else - (unsigned long int)ithread_self() diff -Nru vlc-3.0.17.4/contrib/src/upnp/libupnp-pthread-w32-force.patch vlc-3.0.18/contrib/src/upnp/libupnp-pthread-w32-force.patch --- vlc-3.0.17.4/contrib/src/upnp/libupnp-pthread-w32-force.patch 2022-02-15 17:24:38.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/libupnp-pthread-w32-force.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ ---- upnp/configure.ac.pthread-w32 2018-05-17 11:51:47.115502500 +0200 -+++ upnp/configure.ac 2018-05-17 12:49:30.371786100 +0200 -@@ -667,6 +667,7 @@ ACX_PTHREAD( - # - # Update environment variables for pthreads - # -+PTHREAD_LIBS="-lpthread" - CC="$PTHREAD_CC" - CFLAGS="$PTHREAD_CFLAGS $CFLAGS" - LIBS="$PTHREAD_LIBS $LIBS" diff -Nru vlc-3.0.17.4/contrib/src/upnp/libupnp-win32-exports.patch vlc-3.0.18/contrib/src/upnp/libupnp-win32-exports.patch --- vlc-3.0.17.4/contrib/src/upnp/libupnp-win32-exports.patch 2022-02-15 17:24:38.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/libupnp-win32-exports.patch 2022-05-24 20:36:20.000000000 +0000 @@ -1,31 +1,35 @@ ---- upnp/configure.ac.win32 2013-11-15 17:18:45.000000000 +0100 -+++ upnp/configure.ac 2018-05-17 11:41:56.647083600 +0200 -@@ -670,6 +670,17 @@ ACX_PTHREAD( +--- + configure.ac | 7 +++++++ + libupnp.pc.in | 2 +- + 2 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 35c060cc..76f48486 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -509,6 +509,13 @@ AX_PTHREAD( CC="$PTHREAD_CC" CFLAGS="$PTHREAD_CFLAGS $CFLAGS" LIBS="$PTHREAD_LIBS $LIBS" + -+PC_CFLAGS="$PTHREAD_CFLAGS" -+ +# WIN32 specific +if test "$ac_cv_win32" = "yes"; then +WIN32_LIBS="-liphlpapi -lws2_32" -+PC_CFLAGS="$PC_CFLAGS -DUPNP_STATIC_LIB" +fi -+AC_SUBST(PC_CFLAGS) +AC_SUBST(WIN32_LIBS) + # # Determine if pthread_rwlock_t is available # ---- upnp/libupnp.pc.in.win32 2010-12-23 21:24:05.000000000 +0100 -+++ upnp/libupnp.pc.in 2018-05-17 11:43:06.014745400 +0200 -@@ -6,6 +6,6 @@ includedir=@includedir@ +diff --git a/libupnp.pc.in b/libupnp.pc.in +index 8c6fc22f..ccdaf871 100644 +--- a/libupnp.pc.in ++++ b/libupnp.pc.in +@@ -6,7 +6,7 @@ includedir=@includedir@ Name: libupnp Description: Linux SDK for UPnP Devices Version: @VERSION@ --Libs: @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ -L${libdir} -lupnp -lthreadutil -lixml --Cflags: @PTHREAD_CFLAGS@ -I${includedir}/upnp -+Libs: -L${libdir} -lupnp -lthreadutil -lixml @PTHREAD_LIBS@ @WIN32_LIBS@ -+Cflags: @PC_CFLAGS@ -I${includedir}/upnp - +-Libs: @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ -L${libdir} -lupnp -lixml ++Libs: -L${libdir} -lupnp -lixml @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ @WIN32_LIBS@ + Libs.private: @OPENSSL_LIBS@ + Cflags: @PTHREAD_CFLAGS@ -I${includedir}/upnp diff -Nru vlc-3.0.17.4/contrib/src/upnp/libupnp-win32.patch vlc-3.0.18/contrib/src/upnp/libupnp-win32.patch --- vlc-3.0.17.4/contrib/src/upnp/libupnp-win32.patch 2022-02-15 17:24:38.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/libupnp-win32.patch 2022-08-24 17:42:00.000000000 +0000 @@ -1,25 +1,13 @@ ---- libupnp/upnp/src/inc/upnputil.h 2010-12-23 21:24:06.000000000 +0100 -+++ libupnp.new/upnp/src/inc/upnputil.h 2011-02-13 08:24:24.000000000 +0100 -@@ -125,7 +125,7 @@ - #define strncasecmp strnicmp - #define sleep(a) Sleep((a)*1000) - #define usleep(a) Sleep((a)/1000) -- #define strerror_r(a,b,c) (strerror_s((b),(c),(a))) -+ #define strerror_r(a,b,c) strncpy( b, strerror(a), c) +diff --git a/upnp/src/inc/upnputil.h b/upnp/src/inc/upnputil.h +index 2f18422b..ffc79254 100644 +--- a/upnp/src/inc/upnputil.h ++++ b/upnp/src/inc/upnputil.h +@@ -106,7 +106,7 @@ void linecopylen( + #endif + #define sleep(a) Sleep((a)*1000) + #define usleep(a) Sleep((a) / 1000) +- #define strerror_r(a, b, c) (strerror_s((b), (c), (a))) ++ #define strerror_r(a, b, c) strncpy(b, strerror(a), c) #else - #define max(a, b) (((a)>(b))? (a):(b)) - #define min(a, b) (((a)<(b))? (a):(b)) ---- upnp/upnp/inc/UpnpInet.h 2011-04-03 04:50:36.000000000 +0200 -+++ upnp.neww/upnp/inc/UpnpInet.h 2011-11-18 01:54:45.418529337 +0100 -@@ -15,11 +15,6 @@ - - #ifdef WIN32 - #include -- #ifndef UPNP_USE_MSVCPP -- /* Removed: not required (and cause compilation issues) */ -- #include -- #include -- #endif - #include - #include - #include + #define max(a, b) (((a) > (b)) ? (a) : (b)) + #define min(a, b) (((a) < (b)) ? (a) : (b)) diff -Nru vlc-3.0.17.4/contrib/src/upnp/libupnp-win64.patch vlc-3.0.18/contrib/src/upnp/libupnp-win64.patch --- vlc-3.0.17.4/contrib/src/upnp/libupnp-win64.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/libupnp-win64.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ ---- libupnp/threadutil/inc/ThreadPool.h 2011-01-20 07:46:57.000000000 +0100 -+++ libupnp.new/threadutil/inc/ThreadPool.h 2011-09-23 01:36:12.000000000 +0200 -@@ -45,6 +45,7 @@ - #include - - #ifdef WIN32 -+ #ifndef _TIMEZONE_DEFINED - #include - struct timezone - { -@@ -52,6 +53,7 @@ - int tz_dsttime; /* type of dst correction */ - }; - int gettimeofday(struct timeval *tv, struct timezone *tz); -+ #endif - #else /* WIN32 */ - #include - #include /* for gettimeofday() */ ---- libupnp-1.6.16/upnp/inc/upnp.h.orig 2012-03-22 00:15:38.000000000 +0100 -+++ libupnp-1.6.16/upnp/inc/upnp.h 2012-03-28 18:58:55.043642000 +0200 -@@ -61,6 +61,20 @@ - /* Other systems ??? */ - #endif - -+# if defined( __MINGW32__ ) -+# if !defined( _OFF_T_ ) -+ typedef long long _off_t; -+ typedef _off_t off_t; -+# define _OFF_T_ -+# else -+# ifdef off_t -+# undef off_t -+# endif -+# define off_t long long -+# endif -+# endif -+ -+ - #define LINE_SIZE (size_t)180 - #define NAME_SIZE (size_t)256 - #define MNFT_NAME_SIZE 64 diff -Nru vlc-3.0.17.4/contrib/src/upnp/miniserver.patch vlc-3.0.18/contrib/src/upnp/miniserver.patch --- vlc-3.0.17.4/contrib/src/upnp/miniserver.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/miniserver.patch 2022-05-24 20:36:20.000000000 +0000 @@ -1,17 +1,31 @@ ---- upnp/upnp/src/api/upnpapi.c.orig 2013-04-08 00:23:46.000000000 +0200 -+++ upnp/upnp/src/api/upnpapi.c 2013-04-08 00:25:49.000000000 +0200 -@@ -358,13 +358,13 @@ +From e238e20db9153d4a066cbcce1fdb5f95ada45fbf Mon Sep 17 00:00:00 2001 +From: Alaric Senat +Date: Wed, 10 Mar 2021 12:01:18 +0100 +Subject: miniserver + +--- + upnp/src/api/upnpapi.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/upnp/src/api/upnpapi.c b/upnp/src/api/upnpapi.c +index 3ad4658..b0ee7db 100644 +--- a/upnp/src/api/upnpapi.c ++++ b/upnp/src/api/upnpapi.c +@@ -387,13 +387,13 @@ static int UpnpInitPreamble(void) return retVal; } +#ifdef INTERNAL_WEB_SERVER #ifdef INCLUDE_DEVICE_APIS - #if EXCLUDE_SOAP == 0 + #if EXCLUDE_SOAP == 0 SetSoapCallback(soap_device_callback); - #endif + #endif #endif /* INCLUDE_DEVICE_APIS */ -#ifdef INTERNAL_WEB_SERVER - #if EXCLUDE_GENA == 0 + #if EXCLUDE_GENA == 0 SetGenaCallback(genaCallback); - #endif + #endif +-- +2.29.2 + diff -Nru vlc-3.0.17.4/contrib/src/upnp/missing_win32.patch vlc-3.0.18/contrib/src/upnp/missing_win32.patch --- vlc-3.0.17.4/contrib/src/upnp/missing_win32.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/missing_win32.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ ---- upnp_clean/upnp/inc/upnp.h 2015-04-30 14:37:26.962425889 +0200 -+++ upnp/upnp/inc/upnp.h 2015-04-30 14:41:48.099528162 +0200 -@@ -41,6 +41,10 @@ - * \file - */ - -+#ifdef _WIN32 -+# define WIN32 -+#endif -+ - #include "ixml.h" - #include "upnpconfig.h" - #include "UpnpGlobal.h" diff -Nru vlc-3.0.17.4/contrib/src/upnp/no-getifinfo.patch vlc-3.0.18/contrib/src/upnp/no-getifinfo.patch --- vlc-3.0.17.4/contrib/src/upnp/no-getifinfo.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/no-getifinfo.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ ---- upnp/upnp/src/api/upnpapi.c.orig 2016-05-10 10:39:59.757852761 +0200 -+++ upnp/upnp/src/api/upnpapi.c 2016-05-10 10:40:24.885603353 +0200 -@@ -3205,6 +3205,7 @@ - } - - -+#ifdef UPNP_ENABLE_IPV6 - int UpnpGetIfInfo(const char *IfName) - { - #ifdef WIN32 -@@ -3587,6 +3588,7 @@ - - return UPNP_E_SUCCESS; - } -+#endif - - - /*! diff -Nru vlc-3.0.17.4/contrib/src/upnp/revert-ifaddrs.patch vlc-3.0.18/contrib/src/upnp/revert-ifaddrs.patch --- vlc-3.0.17.4/contrib/src/upnp/revert-ifaddrs.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/revert-ifaddrs.patch 2022-05-24 20:36:20.000000000 +0000 @@ -0,0 +1,272 @@ +From 1a6b54b37ac16d91d3d75ef1017a6ee5971a855f Mon Sep 17 00:00:00 2001 +From: Alaric Senat +Date: Tue, 15 Jun 2021 16:29:07 +0200 +Subject: [PATCH] Revert "upnpapi.c: assume that getifaddrs is available" + +This reverts commit aa0166c9a87a6f02632a0c55fb6174b6a1bf8289. +--- + upnp/src/api/upnpapi.c | 227 ++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 225 insertions(+), 2 deletions(-) + +diff --git a/upnp/src/api/upnpapi.c b/upnp/src/api/upnpapi.c +index 2e95bbfc..3d524941 100644 +--- a/upnp/src/api/upnpapi.c ++++ b/upnp/src/api/upnpapi.c +@@ -3558,6 +3558,7 @@ int UpnpDownloadXmlDoc(const char *url, IXML_Document **xmlDoc) + } + } + ++#if (defined(BSD) && BSD >= 199306) || defined(__FreeBSD_kernel__) + /*! + * \brief Computes prefix length from IPv6 netmask. + * +@@ -3580,6 +3581,7 @@ static unsigned UpnpComputeIpv6PrefixLength(struct sockaddr_in6 *Netmask) + + return prefix_length; + } ++#endif + + int UpnpGetIfInfo(const char *IfName) + { +@@ -3743,7 +3745,8 @@ int UpnpGetIfInfo(const char *IfName) + } + inet_ntop(AF_INET, &v4_addr, gIF_IPV4, sizeof(gIF_IPV4)); + inet_ntop(AF_INET6, &v6_addr, gIF_IPV6, sizeof(gIF_IPV6)); +-#else ++#elif (defined(BSD) && BSD >= 199306) || \ ++ defined(__FreeBSD_kernel__) /* _WIN32 */ + struct ifaddrs *ifap, *ifa; + struct in_addr v4_addr = {0}; + struct in_addr v4_netmask = {0}; +@@ -3904,7 +3907,227 @@ int UpnpGetIfInfo(const char *IfName) + gIF_IPV6_ULA_GUA_PREFIX_LENGTH = v6ulagua_prefix; + } + } +-#endif ++#else /* (defined(BSD) && BSD >= 199306) || defined(__FreeBSD_kernel__) */ /* _WIN32 */ ++ struct ifreq ifArray[MAX_INTERFACES]; ++ struct ifconf ifConf; ++ struct ifreq ifReq; ++ FILE *inet6_procfd; ++ int i; ++ int LocalSock; ++ struct in6_addr v6_addr; ++ unsigned if_idx; ++ unsigned if_prefix; ++ char addr6[8][5]; ++ char buf[INET6_ADDRSTRLEN]; ++ int ifname_found = 0; ++ int valid_addr_found = 0; ++ ++ /* Copy interface name, if it was provided. */ ++ if (IfName != NULL) { ++ if (strlen(IfName) > sizeof(gIF_NAME)) ++ return UPNP_E_INVALID_INTERFACE; ++ ++ memset(gIF_NAME, 0, sizeof(gIF_NAME)); ++ strncpy(gIF_NAME, IfName, sizeof(gIF_NAME) - 1); ++ ifname_found = 1; ++ } ++ /* Create an unbound datagram socket to do the SIOCGIFADDR ioctl on. */ ++ if ((LocalSock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == ++ INVALID_SOCKET) { ++ UpnpPrintf(UPNP_ALL, ++ API, ++ __FILE__, ++ __LINE__, ++ "Can't create addrlist socket\n"); ++ return UPNP_E_INIT; ++ } ++ /* Get the interface configuration information... */ ++ ifConf.ifc_len = (int)sizeof ifArray; ++ ifConf.ifc_ifcu.ifcu_buf = (char *)ifArray; ++ ++ if (ioctl(LocalSock, SIOCGIFCONF, &ifConf) < 0) { ++ UpnpPrintf(UPNP_ALL, ++ API, ++ __FILE__, ++ __LINE__, ++ "DiscoverInterfaces: SIOCGIFCONF returned error\n"); ++ close(LocalSock); ++ return UPNP_E_INIT; ++ } ++ if (ifConf.ifc_len == sizeof ifArray) { ++ UpnpPrintf(UPNP_ALL, ++ API, ++ __FILE__, ++ __LINE__, ++ "DiscoverInterfaces: ifConf.ifc_len == sizeof ifArray, " ++ "an overflow might have occurred, " ++ "operation should be retried with a bigger buffer.\n"); ++ } ++ /* Cycle through the list of interfaces looking for IP addresses. */ ++ for (i = 0; i < ifConf.ifc_len; i += (int)(sizeof(struct ifreq))) { ++ struct ifreq *pifReq = (struct ifreq *)(ifConf.ifc_buf + i); ++ /* See if this is the sort of interface we want to deal with. */ ++ memset(ifReq.ifr_name, 0, sizeof(ifReq.ifr_name)); ++ strncpy(ifReq.ifr_name, ++ pifReq->ifr_name, ++ sizeof(ifReq.ifr_name) - 1); ++ if (ioctl(LocalSock, SIOCGIFFLAGS, &ifReq) < 0) { ++ UpnpPrintf(UPNP_ALL, ++ API, ++ __FILE__, ++ __LINE__, ++ "Can't get interface flags for %s:\n", ++ ifReq.ifr_name); ++ } ++ /* Skip LOOPBACK interfaces, DOWN interfaces and interfaces that ++ * don't support MULTICAST. */ ++ if ((ifReq.ifr_flags & IFF_LOOPBACK) || ++ (!(ifReq.ifr_flags & IFF_UP)) || ++ (!(ifReq.ifr_flags & IFF_MULTICAST))) { ++ continue; ++ } ++ if (ifname_found == 0) { ++ /* We have found a valid interface name. Keep it. */ ++ memset(gIF_NAME, 0, sizeof(gIF_NAME)); ++ strncpy(gIF_NAME, ++ pifReq->ifr_name, ++ sizeof(gIF_NAME) - 1); ++ ifname_found = 1; ++ } else { ++ if (strncmp(gIF_NAME, ++ pifReq->ifr_name, ++ sizeof(gIF_NAME)) != 0) { ++ /* This is not the interface we're looking for. ++ */ ++ continue; ++ } ++ } ++ /* Check address family. */ ++ if (pifReq->ifr_addr.sa_family == AF_INET) { ++ /* Copy interface name, IPv4 address, IPv4 netmask and ++ * interface index. */ ++ memset(gIF_NAME, 0, sizeof(gIF_NAME)); ++ strncpy(gIF_NAME, ++ pifReq->ifr_name, ++ sizeof(gIF_NAME) - 1); ++ inet_ntop(AF_INET, ++ &((struct sockaddr_in *)&pifReq->ifr_addr) ++ ->sin_addr, ++ gIF_IPV4, ++ sizeof(gIF_IPV4)); ++ if (ioctl(LocalSock, SIOCGIFNETMASK, &ifReq) < 0) { ++ UpnpPrintf(UPNP_ALL, ++ API, ++ __FILE__, ++ __LINE__, ++ "Can't get interface netmask for %s:\n", ++ ifReq.ifr_name); ++ } ++ inet_ntop(AF_INET, ++ &((struct sockaddr_in *)&ifReq.ifr_netmask) ++ ->sin_addr, ++ gIF_IPV4_NETMASK, ++ sizeof(gIF_IPV4_NETMASK)); ++ gIF_INDEX = if_nametoindex(gIF_NAME); ++ valid_addr_found = 1; ++ break; ++ } else { ++ /* Address is not IPv4 */ ++ ifname_found = 0; ++ } ++ } ++ close(LocalSock); ++ /* Failed to find a valid interface, or valid address. */ ++ if (ifname_found == 0 || valid_addr_found == 0) { ++ UpnpPrintf(UPNP_CRITICAL, ++ API, ++ __FILE__, ++ __LINE__, ++ "Failed to find an adapter with valid IP addresses for " ++ "use.\n"); ++ ++ return UPNP_E_INVALID_INTERFACE; ++ } ++ /* Try to get the IPv6 address for the same interface */ ++ /* from "/proc/net/if_inet6", if possible. */ ++ inet6_procfd = fopen("/proc/net/if_inet6", "r"); ++ if (inet6_procfd) { ++ while (fscanf(inet6_procfd, ++ "%4s%4s%4s%4s%4s%4s%4s%4s %02x %02x %*02x " ++ "%*02x %*20s\n", ++ addr6[0], ++ addr6[1], ++ addr6[2], ++ addr6[3], ++ addr6[4], ++ addr6[5], ++ addr6[6], ++ addr6[7], ++ &if_idx, ++ &if_prefix) != EOF) { ++ /* Get same interface as IPv4 address retrieved. */ ++ if (gIF_INDEX == if_idx) { ++ snprintf(buf, ++ sizeof(buf), ++ "%s:%s:%s:%s:%s:%s:%s:%s", ++ addr6[0], ++ addr6[1], ++ addr6[2], ++ addr6[3], ++ addr6[4], ++ addr6[5], ++ addr6[6], ++ addr6[7]); ++ /* Validate formed address and check for ++ * link-local. */ ++ if (inet_pton(AF_INET6, buf, &v6_addr) > 0) { ++ if (IN6_IS_ADDR_ULA(&v6_addr)) { ++ /* Got valid IPv6 ula. */ ++ memset(gIF_IPV6_ULA_GUA, ++ 0, ++ sizeof(gIF_IPV6_ULA_GUA)); ++ strncpy(gIF_IPV6_ULA_GUA, ++ buf, ++ sizeof(gIF_IPV6_ULA_GUA) - ++ 1); ++ gIF_IPV6_ULA_GUA_PREFIX_LENGTH = ++ if_prefix; ++ } else if (IN6_IS_ADDR_GLOBAL( ++ &v6_addr) && ++ strlen(gIF_IPV6_ULA_GUA) == ++ (size_t)0) { ++ /* got a GUA, should store it ++ * while no ULA is found */ ++ memset(gIF_IPV6_ULA_GUA, ++ 0, ++ sizeof(gIF_IPV6_ULA_GUA)); ++ strncpy(gIF_IPV6_ULA_GUA, ++ buf, ++ sizeof(gIF_IPV6_ULA_GUA) - ++ 1); ++ gIF_IPV6_ULA_GUA_PREFIX_LENGTH = ++ if_prefix; ++ } else if (IN6_IS_ADDR_LINKLOCAL( ++ &v6_addr) && ++ strlen(gIF_IPV6) == ++ (size_t)0) { ++ /* got a Link local IPv6 ++ * address. */ ++ memset(gIF_IPV6, ++ 0, ++ sizeof(gIF_IPV6)); ++ strncpy(gIF_IPV6, ++ buf, ++ sizeof(gIF_IPV6) - 1); ++ gIF_IPV6_PREFIX_LENGTH = ++ if_prefix; ++ } ++ } ++ } ++ } ++ fclose(inet6_procfd); ++ } ++#endif /* (defined(BSD) && BSD >= 199306) || defined(__FreeBSD_kernel__) */ /* _WIN32 */ + UpnpPrintf(UPNP_INFO, + API, + __FILE__, +-- +2.31.1 + diff -Nru vlc-3.0.17.4/contrib/src/upnp/rules.mak vlc-3.0.18/contrib/src/upnp/rules.mak --- vlc-3.0.17.4/contrib/src/upnp/rules.mak 2022-03-22 15:27:56.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/rules.mak 2022-09-22 18:08:33.000000000 +0000 @@ -1,59 +1,59 @@ # UPNP -UPNP_VERSION := 1.6.19 +UPNP_VERSION := 1.14.13 UPNP_URL := $(GITHUB)/pupnp/pupnp/archive/refs/tags/release-$(UPNP_VERSION).tar.gz ifdef BUILD_NETWORK PKGS += upnp endif -ifeq ($(call need_pkg,"libupnp >= 1.6.18"),) +ifeq ($(call need_pkg,"libupnp >= 1.6.19"),) PKGS_FOUND += upnp endif -$(TARBALLS)/libupnp-$(UPNP_VERSION).tar.bz2: +$(TARBALLS)/pupnp-release-$(UPNP_VERSION).tar.gz: $(call download_pkg,$(UPNP_URL),upnp) -.sum-upnp: libupnp-$(UPNP_VERSION).tar.bz2 +.sum-upnp: pupnp-release-$(UPNP_VERSION).tar.gz + +UPNP_CFLAGS := $(CFLAGS) -DUPNP_STATIC_LIB +UPNP_CXXFLAGS := $(CXXFLAGS) -DUPNP_STATIC_LIB +UPNP_CONF := --disable-samples --disable-device --disable-webserver ifdef HAVE_WIN32 DEPS_upnp += pthreads $(DEPS_pthreads) endif ifdef HAVE_WINSTORE -CONFIGURE_ARGS=--disable-ipv6 --enable-unspecified_server +UPNP_CONF += --disable-ipv6 --enable-unspecified_server else -CONFIGURE_ARGS=--enable-ipv6 +UPNP_CONF += --enable-ipv6 endif ifndef WITH_OPTIMIZATION -CONFIGURE_ARGS += --enable-debug +UPNP_CONF += --enable-debug endif -upnp: libupnp-$(UPNP_VERSION).tar.bz2 .sum-upnp +upnp: pupnp-release-$(UPNP_VERSION).tar.gz .sum-upnp $(UNPACK) - $(APPLY) $(SRC)/upnp/0001-Do-not-try-to-detach-detached-thread-the-result-is-u.patch ifdef HAVE_WIN32 + $(APPLY) $(SRC)/upnp/libupnp-pthread-force.patch + $(APPLY) $(SRC)/upnp/libupnp-win32-exports.patch $(APPLY) $(SRC)/upnp/libupnp-win32.patch - $(APPLY) $(SRC)/upnp/libupnp-win64.patch - $(APPLY) $(SRC)/upnp/windows-random.patch $(APPLY) $(SRC)/upnp/windows-version-inet.patch - $(APPLY) $(SRC)/upnp/libupnp-win32-exports.patch - $(APPLY) $(SRC)/upnp/libupnp-pthread-w32-checks.patch - $(APPLY) $(SRC)/upnp/libupnp-pthread-w32-force.patch -ifdef HAVE_WINSTORE - $(APPLY) $(SRC)/upnp/no-getifinfo.patch + $(APPLY) $(SRC)/upnp/0001-ThreadPool-Fix-non-UCRT-builds.patch + $(APPLY) $(SRC)/upnp/win32-remove-wrong-safe-wrappers.patch +endif +ifdef HAVE_LINUX +ifndef HAVE_ANDROID + $(APPLY) $(SRC)/upnp/libupnp-pthread-force.patch +endif endif +ifdef HAVE_ANDROID + $(APPLY) $(SRC)/upnp/revert-ifaddrs.patch endif - $(APPLY) $(SRC)/upnp/libpthread.patch - $(APPLY) $(SRC)/upnp/libupnp-ipv6.patch $(APPLY) $(SRC)/upnp/miniserver.patch - $(APPLY) $(SRC)/upnp/missing_win32.patch - $(APPLY) $(SRC)/upnp/fix_infinite_loop.patch - $(APPLY) $(SRC)/upnp/dont_use_down_intf.patch - $(APPLY) $(SRC)/upnp/upnp-no-debugfile.patch - $(APPLY) $(SRC)/upnp/use-unicode.patch - $(UPDATE_AUTOCONFIG) && cd $(UNPACK_DIR) && mv config.guess config.sub build-aux/ + $(UPDATE_AUTOCONFIG) $(MOVE) .upnp: upnp $(RECONF) - cd $< && $(HOSTVARS) CFLAGS="$(CFLAGS) -DUPNP_STATIC_LIB" ./configure --disable-samples --without-documentation $(CONFIGURE_ARGS) $(HOSTCONF) + cd $< && $(HOSTVARS) CFLAGS="$(UPNP_CFLAGS)" CXXFLAGS="$(UPNP_CXXFLAGS)" ./configure $(UPNP_CONF) $(HOSTCONF) cd $< && $(MAKE) install touch $@ diff -Nru vlc-3.0.17.4/contrib/src/upnp/SHA512SUMS vlc-3.0.18/contrib/src/upnp/SHA512SUMS --- vlc-3.0.17.4/contrib/src/upnp/SHA512SUMS 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/SHA512SUMS 2022-08-24 17:42:00.000000000 +0000 @@ -1 +1 @@ -97af62a7483cc19cfe80157cbc3383c1b4b7c9c39b848f4ed063784b74df0b9b0527f7b467e01451e0a44dbf9e8a9eab510619146a6ee1e3dce46f3e4af6e661 libupnp-1.6.19.tar.bz2 +ae6ae72a5e784a0f9508af94c4070627e791660fa37966e9825643fd0f88b171826bda9a2ec872d4961bf3454e5a9cd716127f0bdf6e63c789c4e22aab0b7e71 pupnp-release-1.14.13.tar.gz diff -Nru vlc-3.0.17.4/contrib/src/upnp/upnp-no-debugfile.patch vlc-3.0.18/contrib/src/upnp/upnp-no-debugfile.patch --- vlc-3.0.17.4/contrib/src/upnp/upnp-no-debugfile.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/upnp-no-debugfile.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ ---- upnp/upnp/src/inc/config.h 2016-05-27 21:10:05.804950200 +0200 -+++ upnp/upnp/src/inc/config.h.debug 2016-05-27 20:59:31.808017700 +0200 -@@ -383,7 +383,7 @@ - * - * @{ - */ --#define DEBUG_TARGET 1 -+#define DEBUG_TARGET 0 - /* @} */ - - diff -Nru vlc-3.0.17.4/contrib/src/upnp/use-unicode.patch vlc-3.0.18/contrib/src/upnp/use-unicode.patch --- vlc-3.0.17.4/contrib/src/upnp/use-unicode.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/use-unicode.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ ---- upnp/upnp/src/api/upnpapi.c.orig 2017-03-17 17:21:09.510544751 +0100 -+++ upnp/upnp/src/api/upnpapi.c 2017-03-17 17:21:32.742531559 +0100 -@@ -3264,31 +3264,10 @@ - } - if (ifname_found == 0) { - /* We have found a valid interface name. Keep it. */ --#ifdef UPNP_USE_MSVCPP -- /* -- * Partial fix for VC - friendly name is wchar string, -- * but currently gIF_NAME is char string. For now try -- * to convert it, which will work with many (but not -- * all) adapters. A full fix would require a lot of -- * big changes (gIF_NAME to wchar string?). -- */ - wcstombs(gIF_NAME, adapts_item->FriendlyName, - sizeof(gIF_NAME)); --#else -- memset(gIF_NAME, 0, sizeof(gIF_NAME)); -- strncpy(gIF_NAME, adapts_item->FriendlyName, -- sizeof(gIF_NAME) - 1); --#endif - ifname_found = 1; - } else { --#ifdef UPNP_USE_MSVCPP -- /* -- * Partial fix for VC - friendly name is wchar string, -- * but currently gIF_NAME is char string. For now try -- * to convert it, which will work with many (but not -- * all) adapters. A full fix would require a lot of -- * big changes (gIF_NAME to wchar string?). -- */ - char tmpIfName[LINE_SIZE] = { 0 }; - wcstombs(tmpIfName, adapts_item->FriendlyName, - sizeof(tmpIfName)); -@@ -3298,14 +3277,6 @@ - /* This is not the interface we're looking for. */ - continue; - } --#else -- if (strncmp -- (gIF_NAME, adapts_item->FriendlyName, -- sizeof(gIF_NAME)) != 0) { -- /* This is not the interface we're looking for. */ -- continue; -- } --#endif - } - /* Loop thru this adapter's unicast IP addresses. */ - uni_addr = adapts_item->FirstUnicastAddress; diff -Nru vlc-3.0.17.4/contrib/src/upnp/win32-remove-wrong-safe-wrappers.patch vlc-3.0.18/contrib/src/upnp/win32-remove-wrong-safe-wrappers.patch --- vlc-3.0.17.4/contrib/src/upnp/win32-remove-wrong-safe-wrappers.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/win32-remove-wrong-safe-wrappers.patch 2022-09-22 18:08:33.000000000 +0000 @@ -0,0 +1,35 @@ +From 90dee7da8ed96ea6e2ade2dd0f085bfb575449b3 Mon Sep 17 00:00:00 2001 +From: Alaric Senat +Date: Tue, 13 Sep 2022 19:48:09 +0200 +Subject: [PATCH] win32: remove wrong safe wrappers + +Theses wrapper were too naively written and are causing a lot of +regressions on windows. + +This has been addressed upstream [1]. And is simply reverted for now, +waiting for a new release. + +[1] https://github.com/pupnp/pupnp/issues/411 +--- + ixml/inc/posix_overwrites.h | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/ixml/inc/posix_overwrites.h b/ixml/inc/posix_overwrites.h +index a9c49e3f..7e37a355 100644 +--- a/ixml/inc/posix_overwrites.h ++++ b/ixml/inc/posix_overwrites.h +@@ -11,11 +11,5 @@ + #define strncasecmp strnicmp + #define strnicmp _strnicmp + +- /* Secure versions of functions */ +- #define strcat(arg1, arg2) strcat_s(arg1, sizeof(arg1), arg2) +- #define strcpy(arg1, arg2) strcpy_s(arg1, _countof(arg1), arg2) +- #define strncpy(arg1, arg2, arg3) strncpy_s(arg1, arg3, arg2, arg3) +- #define sprintf(arg1, ...) sprintf_s(arg1, sizeof(arg1), __VA_ARGS__) +- + #endif /* _WIN32 */ + #endif /* POSIX_OVERWRTIES_H */ +-- +2.35.1 + diff -Nru vlc-3.0.17.4/contrib/src/upnp/windows-random.patch vlc-3.0.18/contrib/src/upnp/windows-random.patch --- vlc-3.0.17.4/contrib/src/upnp/windows-random.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/windows-random.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ -diff -ruN upnp/upnp/src/uuid/sysdep.c upnp.new/upnp/src/uuid/sysdep.c ---- upnp/upnp/src/uuid/sysdep.c 2011-04-03 04:50:36.000000000 +0200 -+++ upnp.new/upnp/src/uuid/sysdep.c 2016-05-09 19:08:15.225581588 +0200 -@@ -23,6 +23,8 @@ - - #include "config.h" - -+#define _CRT_RAND_S -+ - #include "sysdep.h" - - #include "UpnpInet.h" -@@ -78,6 +80,7 @@ - - void get_random_info(unsigned char seed[16]) - { -+#if 0 - MD5_CTX c; - typedef struct { - MEMORYSTATUS m; -@@ -108,6 +111,13 @@ - MD5Init(&c); - MD5Update(&c, (unsigned char *)(&r), sizeof r); - MD5Final(seed, &c); -+#endif -+ for( int i = 0; i < 16; i++ ) -+ { -+ unsigned int number; -+ rand_s(&number); -+ seed[i] = number; -+ } - }; - - #else /* WIN32 */ diff -Nru vlc-3.0.17.4/contrib/src/upnp/windows-version-inet.patch vlc-3.0.18/contrib/src/upnp/windows-version-inet.patch --- vlc-3.0.17.4/contrib/src/upnp/windows-version-inet.patch 2020-07-27 08:31:07.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/windows-version-inet.patch 2022-08-24 17:42:00.000000000 +0000 @@ -1,15 +1,26 @@ -diff -urN upnp-orig/upnp/src/inc/inet_pton.h upnp/upnp/src/inc/inet_pton.h ---- upnp-orig/upnp/src/inc/inet_pton.h 2010-12-23 22:24:06.000000000 +0200 -+++ upnp/upnp/src/inc/inet_pton.h 2018-02-24 23:44:22.359676036 +0200 +From a66d4779723f9aef75622157c76f5dc1ed1a33a3 Mon Sep 17 00:00:00 2001 +From: Alaric Senat +Date: Wed, 10 Mar 2021 15:59:43 +0100 +Subject: windows version inet + +--- + upnp/src/inc/inet_pton.h | 6 ++++++ + upnp/src/inet_pton.c | 5 +++++ + 2 files changed, 11 insertions(+) + +diff --git a/upnp/src/inc/inet_pton.h b/upnp/src/inc/inet_pton.h +index f3e08a5..e6233b5 100644 +--- a/upnp/src/inc/inet_pton.h ++++ b/upnp/src/inc/inet_pton.h @@ -3,6 +3,8 @@ - #ifdef WIN32 + #ifdef _WIN32 +#include "autoconfig.h" + - #ifdef IPV6_ - #define INET_IPV6 - #endif + #ifdef IPV6_ + #define INET_IPV6 + #endif @@ -13,6 +15,8 @@ #include #include @@ -19,31 +30,36 @@ /*! * \file * -@@ -45,6 +49,8 @@ +@@ -45,6 +49,8 @@ extern const char *inet_ntop(int af, const void *src, char *dst, */ extern int inet_pton(int af, const char *src, void *dst); +#endif /* _WIN32_WINNT < 0x600 */ + - #endif /* WIN32 */ + #endif /* _WIN32 */ #endif /* INET_PTON */ -diff -urN upnp-orig/upnp/src/inet_pton.c upnp/upnp/src/inet_pton.c ---- upnp-orig/upnp/src/inet_pton.c 2010-12-23 22:24:06.000000000 +0200 -+++ upnp/upnp/src/inet_pton.c 2018-02-24 23:44:16.771807657 +0200 -@@ -24,6 +24,8 @@ +diff --git a/upnp/src/inet_pton.c b/upnp/src/inet_pton.c +index e2a243b..73c0a16 100644 +--- a/upnp/src/inet_pton.c ++++ b/upnp/src/inet_pton.c +@@ -24,6 +24,9 @@ - #include "inet_pton.h" + #include "inet_pton.h" +#if _WIN32_WINNT < 0x600 + ++ /*! * \brief format an IPv4 address * -@@ -320,4 +322,6 @@ +@@ -324,4 +327,6 @@ int inet_pton(int af, const char *src, void *dst) /* NOTREACHED */ } +#endif /* _WIN32_WINNT < 0x600 */ + - #endif /* WIN32 */ + #endif /* _WIN32 */ +-- +2.29.2 + diff -Nru vlc-3.0.17.4/contrib/src/upnp/winrt-dont-force-win32-winnt.patch vlc-3.0.18/contrib/src/upnp/winrt-dont-force-win32-winnt.patch --- vlc-3.0.17.4/contrib/src/upnp/winrt-dont-force-win32-winnt.patch 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/upnp/winrt-dont-force-win32-winnt.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ ---- upnp/configure.ac.orig 2016-05-10 11:28:35.866723477 +0200 -+++ upnp/configure.ac 2016-05-10 11:28:58.186564849 +0200 -@@ -676,7 +676,6 @@ - AC_SUBST(PTHREAD_CFLAGS) - AC_SUBST(PTHREAD_CC) - --AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows 2000 APIs.]) - # - # Determine if pthread_rwlock_t is available - # diff -Nru vlc-3.0.17.4/contrib/src/vpx/libvpx-ios.patch vlc-3.0.18/contrib/src/vpx/libvpx-ios.patch --- vlc-3.0.17.4/contrib/src/vpx/libvpx-ios.patch 2021-01-17 20:31:01.000000000 +0000 +++ vlc-3.0.18/contrib/src/vpx/libvpx-ios.patch 2022-08-24 17:42:00.000000000 +0000 @@ -1,7 +1,8 @@ -diff -ru libvpx-1.9.0/build/make/configure.sh libvpx-1.9.0/build/make/configure.sh ---- libvpx-1.9.0/build/make/configure.sh 2020-07-30 21:59:15.000000000 +0200 -+++ libvpx-1.9.0/build/make/configure.sh 2020-11-29 18:05:12.000000000 +0100 -@@ -832,96 +832,6 @@ +diff --git a/build/make/configure.sh b/build/make/configure.sh +index 581042e38..5b282d666 100644 +--- a/build/make/configure.sh ++++ b/build/make/configure.sh +@@ -861,100 +861,6 @@ process_common_toolchain() { # PIC is probably what we want when building shared libs enabled shared && soft_enable pic @@ -18,7 +19,7 @@ - # Handle darwin variants. Newer SDKs allow targeting older - # platforms, so use the newest one available. - case ${toolchain} in -- arm*-darwin*) +- arm*-darwin-*) - add_cflags "-miphoneos-version-min=${IOS_VERSION_MIN}" - iphoneos_sdk_dir="$(show_darwin_sdk_path iphoneos)" - if [ -d "${iphoneos_sdk_dir}" ]; then @@ -26,7 +27,7 @@ - add_ldflags "-isysroot ${iphoneos_sdk_dir}" - fi - ;; -- x86*-darwin*) +- *-darwin*) - osx_sdk_dir="$(show_darwin_sdk_path macosx)" - if [ -d "${osx_sdk_dir}" ]; then - add_cflags "-isysroot ${osx_sdk_dir}" @@ -84,6 +85,10 @@ - add_cflags "-mmacosx-version-min=10.15" - add_ldflags "-mmacosx-version-min=10.15" - ;; +- *-darwin2[0-1]-*) +- add_cflags "-arch ${toolchain%%-*}" +- add_ldflags "-arch ${toolchain%%-*}" +- ;; - *-iphonesimulator-*) - add_cflags "-miphoneos-version-min=${IOS_VERSION_MIN}" - add_ldflags "-miphoneos-version-min=${IOS_VERSION_MIN}" @@ -98,7 +103,7 @@ # Handle Solaris variants. Solaris 10 needs -lposix4 case ${toolchain} in sparc-solaris-*) -@@ -1110,12 +1020,6 @@ +@@ -1143,12 +1049,6 @@ EOF add_cflags -isysroot ${alt_libc} fi diff -Nru vlc-3.0.17.4/contrib/src/vpx/rules.mak vlc-3.0.18/contrib/src/vpx/rules.mak --- vlc-3.0.17.4/contrib/src/vpx/rules.mak 2022-02-15 17:24:38.000000000 +0000 +++ vlc-3.0.18/contrib/src/vpx/rules.mak 2022-09-22 18:08:33.000000000 +0000 @@ -1,6 +1,6 @@ # libvpx -VPX_VERSION := 1.9.0 +VPX_VERSION := 1.12.0 VPX_URL := http://github.com/webmproject/libvpx/archive/v${VPX_VERSION}.tar.gz PKGS += vpx @@ -130,11 +130,7 @@ VPX_CONF += --enable-vp8-decoder --disable-tools VPX_CONF += --extra-cflags="$(CFLAGS) $(EXTRA_CFLAGS)" ifdef HAVE_IOS -ifdef HAVE_TVOS -VPX_LDFLAGS := -L$(IOS_SDK)/usr/lib -isysroot $(IOS_SDK) -mtvos-version-min=9.0 -else -VPX_LDFLAGS := -L$(IOS_SDK)/usr/lib -isysroot $(IOS_SDK) -miphoneos-version-min=8.4 -endif +VPX_LDFLAGS := -L$(IOS_SDK)/usr/lib -isysroot $(IOS_SDK) $(LDFLAGS) endif ifdef HAVE_MACOSX VPX_LDFLAGS := -L$(MACOSX_SDK)/usr/lib -isysroot $(MACOSX_SDK) -mmacosx-version-min=10.7 @@ -142,11 +138,6 @@ VPX_LDFLAGS += -arch $(PLATFORM_SHORT_ARCH) endif -ifneq ($(filter i386 x86_64,$(ARCH)),) -# broken text relocations or invalid register for .seh_savexmm with gcc8 -VPX_CONF += --disable-mmx -endif - ifndef WITH_OPTIMIZATION VPX_CONF += --enable-debug --disable-optimizations endif diff -Nru vlc-3.0.17.4/contrib/src/vpx/SHA512SUMS vlc-3.0.18/contrib/src/vpx/SHA512SUMS --- vlc-3.0.17.4/contrib/src/vpx/SHA512SUMS 2020-10-24 18:21:13.000000000 +0000 +++ vlc-3.0.18/contrib/src/vpx/SHA512SUMS 2022-08-24 17:42:00.000000000 +0000 @@ -1 +1 @@ -8d544552b35000ea5712aec220b78bb5f7dc210704b2f609365214cb95a4f5a0e343b362723d829cb4a9ac203b10d5443700ba84b28fd6b2fefbabb40663e298 libvpx-1.9.0.tar.gz +dc059bc3102b75524ae29989372334b3e0f2acf1520e5a4daa4073831bb55949d82897c498fb9d2d38b59f1a66bb0ad24407d0d086b1e3a8394a4933f04f2ed0 libvpx-1.12.0.tar.gz diff -Nru vlc-3.0.17.4/contrib/src/x265/rules.mak vlc-3.0.18/contrib/src/x265/rules.mak --- vlc-3.0.17.4/contrib/src/x265/rules.mak 2022-04-18 22:10:15.000000000 +0000 +++ vlc-3.0.18/contrib/src/x265/rules.mak 2022-05-24 20:35:27.000000000 +0000 @@ -1,8 +1,8 @@ # x265 #X265_GITURL := https://github.com/videolan/x265 -X265_VERSION := 2.7 -X265_SNAPURL := https://bitbucket.org/multicoreware/x265/get/$(X265_VERSION).tar.bz2 +X265_VERSION := 2.9 +X265_SNAPURL := https://bitbucket.org/multicoreware/x265_git/downloads/x265_$(X265_VERSION).tar.gz ifdef BUILD_ENCODERS ifdef GPL @@ -17,17 +17,16 @@ $(TARBALLS)/x265-git.tar.xz: $(call download_git,$(X265_GITURL)) -$(TARBALLS)/x265-$(X265_VERSION).tar.bz2: +$(TARBALLS)/x265_$(X265_VERSION).tar.gz: $(call download_pkg,$(X265_SNAPURL),x265) -.sum-x265: x265-$(X265_VERSION).tar.bz2 +.sum-x265: x265_$(X265_VERSION).tar.gz -x265: x265-$(X265_VERSION).tar.bz2 .sum-x265 - rm -Rf $@-$(X265_VERSION) - mkdir -p $@-$(X265_VERSION) - tar xvjfo "$<" --strip-components=1 -C $@-$(X265_VERSION) +x265: x265_$(X265_VERSION).tar.gz .sum-x265 + $(UNPACK) $(APPLY) $(SRC)/x265/x265-ldl-linking.patch $(APPLY) $(SRC)/x265/x265-no-pdb-install.patch + $(APPLY) $(SRC)/x265/x265-enable-detect512.patch $(call pkg_static,"source/x265.pc.in") ifndef HAVE_WIN32 $(APPLY) $(SRC)/x265/x265-pkg-libs.patch diff -Nru vlc-3.0.17.4/contrib/src/x265/SHA512SUMS vlc-3.0.18/contrib/src/x265/SHA512SUMS --- vlc-3.0.17.4/contrib/src/x265/SHA512SUMS 2022-04-18 22:10:15.000000000 +0000 +++ vlc-3.0.18/contrib/src/x265/SHA512SUMS 2022-05-24 20:35:27.000000000 +0000 @@ -1 +1 @@ -a808ffe0da5e13bba42e8f6d6e1bc5bd7e3dfe8515a8177b315565461a5830ce4cb40888e84240521064ba38c0b6676eeb0ecc371a6ca9407b22b90481937350 x265-2.7.tar.bz2 +270818c7fd84947fde371e32bef225c1880cfb0bcd95378d95b51f50577a134d7cd585fcdfa43b103a24d76c5ad826b09509a07eb9e208e8f2b56f2f77365cf3 x265_2.9.tar.gz diff -Nru vlc-3.0.17.4/contrib/src/x265/x265-enable-detect512.patch vlc-3.0.18/contrib/src/x265/x265-enable-detect512.patch --- vlc-3.0.17.4/contrib/src/x265/x265-enable-detect512.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/x265/x265-enable-detect512.patch 2022-05-24 20:35:27.000000000 +0000 @@ -0,0 +1,26 @@ +This function is used on all architectures, not just X86. + +--- x265/source/common/cpu.cpp ++++ x265/source/common/cpu.cpp +@@ -110,6 +110,11 @@ + { "", 0 }, + }; + ++bool detect512() ++{ ++ return(enable512); ++} ++ + #if X265_ARCH_X86 + + extern "C" { +@@ -123,10 +128,6 @@ + #pragma warning(disable: 4309) // truncation of constant value + #endif + +-bool detect512() +-{ +- return(enable512); +-} + uint32_t cpu_detect(bool benableavx512 ) + { diff -Nru vlc-3.0.17.4/contrib/src/x265/x265-ldl-linking.patch vlc-3.0.18/contrib/src/x265/x265-ldl-linking.patch --- vlc-3.0.17.4/contrib/src/x265/x265-ldl-linking.patch 2022-04-18 22:10:15.000000000 +0000 +++ vlc-3.0.18/contrib/src/x265/x265-ldl-linking.patch 2022-05-24 20:35:27.000000000 +0000 @@ -1,6 +1,6 @@ ---- x265-1.9/source/CMakeLists.txt.orig 2016-01-25 06:16:50.000000000 +0100 -+++ x265-1.9/source/CMakeLists.txt 2016-07-10 13:36:14.759323966 +0200 -@@ -566,7 +566,7 @@ +--- x265/source/CMakeLists.txt.orig 2022-03-20 16:40:01.560434700 +0000 ++++ x265/source/CMakeLists.txt 2022-03-20 16:41:20.563787600 +0000 +@@ -713,7 +713,7 @@ if(WIN32 OR NOT ENABLE_SHARED OR INTEL_CXX) # The CLI cannot link to the shared library on Windows, it # requires internal APIs not exported from the DLL diff -Nru vlc-3.0.17.4/contrib/src/x265/x265-no-pdb-install.patch vlc-3.0.18/contrib/src/x265/x265-no-pdb-install.patch --- vlc-3.0.17.4/contrib/src/x265/x265-no-pdb-install.patch 2022-04-18 22:10:15.000000000 +0000 +++ vlc-3.0.18/contrib/src/x265/x265-no-pdb-install.patch 2022-05-24 20:35:27.000000000 +0000 @@ -1,11 +1,11 @@ ---- x265/source/CMakeLists.txt.nopdb 2018-05-18 16:28:43.150790700 +0200 -+++ x265/source/CMakeLists.txt 2018-05-18 16:28:53.838634400 +0200 -@@ -546,7 +546,7 @@ if(ENABLE_HDR10_PLUS) +--- x265/source/CMakeLists.txt.nopdb 2022-03-20 16:50:06.435395700 +0000 ++++ x265/source/CMakeLists.txt 2022-03-20 16:50:23.988474200 +0000 +@@ -554,7 +554,7 @@ ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) endif() install(FILES x265.h "${PROJECT_BINARY_DIR}/x265_config.h" DESTINATION include) --if(WIN32) -+if(WIN32 AND MSVC_IDE) +-if((WIN32 AND ENABLE_CLI) OR (WIN32 AND ENABLE_SHARED)) ++if((WIN32 AND ENABLE_CLI AND MSVC_IDE) OR (WIN32 AND ENABLE_SHARED AND MSVC_IDE)) if(MSVC_IDE) install(FILES "${PROJECT_BINARY_DIR}/Debug/x265.pdb" DESTINATION ${BIN_INSTALL_DIR} CONFIGURATIONS Debug) install(FILES "${PROJECT_BINARY_DIR}/RelWithDebInfo/x265.pdb" DESTINATION ${BIN_INSTALL_DIR} CONFIGURATIONS RelWithDebInfo) diff -Nru vlc-3.0.17.4/contrib/src/zlib/rules.mak vlc-3.0.18/contrib/src/zlib/rules.mak --- vlc-3.0.17.4/contrib/src/zlib/rules.mak 2021-10-30 12:43:45.000000000 +0000 +++ vlc-3.0.18/contrib/src/zlib/rules.mak 2022-05-28 20:21:20.000000000 +0000 @@ -1,6 +1,6 @@ # ZLIB -ZLIB_VERSION := 1.2.11 -ZLIB_URL := $(SF)/libpng/zlib-$(ZLIB_VERSION).tar.gz +ZLIB_VERSION := 1.2.12 +ZLIB_URL := https://www.zlib.net/zlib-$(ZLIB_VERSION).tar.gz PKGS += zlib ifeq ($(call need_pkg,"zlib"),) diff -Nru vlc-3.0.17.4/contrib/src/zlib/SHA512SUMS vlc-3.0.18/contrib/src/zlib/SHA512SUMS --- vlc-3.0.17.4/contrib/src/zlib/SHA512SUMS 2017-11-24 15:29:17.000000000 +0000 +++ vlc-3.0.18/contrib/src/zlib/SHA512SUMS 2022-05-28 20:21:20.000000000 +0000 @@ -1 +1 @@ -73fd3fff4adeccd4894084c15ddac89890cd10ef105dd5e1835e1e9bbb6a49ff229713bd197d203edfa17c2727700fce65a2a235f07568212d820dca88b528ae zlib-1.2.11.tar.gz +cc2366fa45d5dfee1f983c8c51515e0cff959b61471e2e8d24350dea22d3f6fcc50723615a911b046ffc95f51ba337d39ae402131a55e6d1541d3b095d6c0a14 zlib-1.2.12.tar.gz diff -Nru vlc-3.0.17.4/contrib/src/zvbi/rules.mak vlc-3.0.18/contrib/src/zvbi/rules.mak --- vlc-3.0.17.4/contrib/src/zvbi/rules.mak 2022-02-15 17:24:38.000000000 +0000 +++ vlc-3.0.18/contrib/src/zvbi/rules.mak 2022-05-24 20:36:20.000000000 +0000 @@ -20,6 +20,7 @@ $(APPLY) $(SRC)/zvbi/zvbi-fix-static-linking.patch ifdef HAVE_WIN32 $(APPLY) $(SRC)/zvbi/zvbi-win32.patch + $(APPLY) $(SRC)/zvbi/zvbi-win32-undefined.patch endif $(APPLY) $(SRC)/zvbi/zvbi-fix-clang-support.patch ifdef HAVE_ANDROID diff -Nru vlc-3.0.17.4/contrib/src/zvbi/zvbi-win32-undefined.patch vlc-3.0.18/contrib/src/zvbi/zvbi-win32-undefined.patch --- vlc-3.0.17.4/contrib/src/zvbi/zvbi-win32-undefined.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/contrib/src/zvbi/zvbi-win32-undefined.patch 2022-05-24 20:36:20.000000000 +0000 @@ -0,0 +1,88 @@ +--- zvbi/src/io.h.orig 2022-04-27 13:12:22.154124296 +0300 ++++ zvbi/src/io.h 2022-04-27 13:12:54.706349113 +0300 +@@ -28,6 +28,12 @@ + #include "decoder.h" + #include "bit_slicer.h" + ++#if defined(_WIN32) && defined(__has_include_next) ++# if __has_include_next() ++# include_next ++# endif ++#endif ++ + /* Public */ + + #include /* struct timeval */ +--- zvbi/src/io.c.orig 2022-04-21 14:52:30.294105422 +0300 ++++ zvbi/src/io.c 2022-04-21 14:39:26.424663785 +0300 +@@ -556,7 +556,6 @@ + return ret; + } + } +-#endif + /* Helper functions to log the communication between the library and drivers. + FIXME remove fp arg, call user log function instead (0.3). */ + +@@ -777,7 +776,6 @@ + return err; + } + +-#ifndef _WIN32 + /** + * @internal + * Drop-in for mmap(). Logs the request on fp if not NULL. +@@ -827,7 +825,7 @@ + + return r; + } +-#endif ++ + /** + * @internal + * Drop-in for munmap(). Logs the request on fp if not NULL. +@@ -860,6 +858,7 @@ + + return r; + } ++#endif + + /* + Local variables: +--- zvbi/src/page_table.c.orig 2022-04-21 14:52:22.018047995 +0300 ++++ zvbi/src/page_table.c 2022-04-21 14:48:38.224494983 +0300 +@@ -35,6 +35,17 @@ + #include "misc.h" + #include "page_table.h" + ++#ifdef _WIN32 ++#include ++static inline int ffs(int value) { ++ unsigned long index; ++ if (value == 0) ++ return 0; ++ _BitScanForward(&index, value); ++ return index + 1; ++} ++#endif ++ + /** + * addtogroup PageTable Teletext Page Number Table + * ingroup LowDec +--- zvbi/src/pdc.c.orig 2022-04-21 14:52:12.297980549 +0300 ++++ zvbi/src/pdc.c 2022-04-21 14:51:40.529760109 +0300 +@@ -35,6 +35,7 @@ + #include "pdc.h" + #include "conv.h" + ++#ifndef _WIN32 + /** + * @addtogroup ProgramID VPS/PDC Program ID + * @ingroup LowDec +@@ -1460,6 +1461,7 @@ + } + } + } ++#endif + + /* + Local variables: diff -Nru vlc-3.0.17.4/debian/changelog vlc-3.0.18/debian/changelog --- vlc-3.0.17.4/debian/changelog 2022-10-03 20:07:16.000000000 +0000 +++ vlc-3.0.18/debian/changelog 2023-02-18 00:20:37.000000000 +0000 @@ -1,8 +1,39 @@ +vlc (3.0.18-2build1~bpo22.10.1~ppa1) kinetic; urgency=medium + + * No-change backport to kinetic. + + -- Justin Geibel Fri, 17 Feb 2023 19:20:37 -0500 + +vlc (3.0.18-2build1) lunar; urgency=medium + + * Rebuild against new libprotobuf32. + + -- Gianfranco Costamagna Wed, 04 Jan 2023 17:50:08 +0100 + +vlc (3.0.18-2) unstable; urgency=medium + + * debian/patches: Apply upstream patch for flac playback issues + + -- Sebastian Ramacher Sun, 04 Dec 2022 22:11:55 +0100 + +vlc (3.0.18-1) unstable; urgency=medium + + * New upstream version 3.0.18 + + -- Mateusz Łukasik Wed, 23 Nov 2022 19:50:35 +0100 + +vlc (3.0.18~rc2-1) unstable; urgency=medium + + * New upstream version 3.0.18~rc2 + * debian/control: Remove patches included upstream + + -- Sebastian Ramacher Mon, 10 Oct 2022 08:44:18 +0200 + vlc (3.0.17.4-5) unstable; urgency=medium * debian/rules: - Revert "Disable libva support" - - Do not pass any libva flags (Closes: #1021032) (LP: #1991457) + - Do not pass any libva flags (Closes: #1021032) (LP: #1991418) -- Sebastian Ramacher Mon, 03 Oct 2022 22:07:16 +0200 diff -Nru vlc-3.0.17.4/debian/control vlc-3.0.18/debian/control --- vlc-3.0.17.4/debian/control 2022-10-03 20:06:28.000000000 +0000 +++ vlc-3.0.18/debian/control 2022-12-04 20:58:12.000000000 +0000 @@ -86,7 +86,6 @@ libshout-dev, libsidplay2-dev, libsmbclient-dev [!hurd-any], - libsndio-dev, libsoxr-dev (>= 0.1.2), libspatialaudio-dev, libspeex-dev (>= 1.0.5), diff -Nru vlc-3.0.17.4/debian/patches/0001-configure-fix-linking-on-RISC-V-ISA.patch vlc-3.0.18/debian/patches/0001-configure-fix-linking-on-RISC-V-ISA.patch --- vlc-3.0.17.4/debian/patches/0001-configure-fix-linking-on-RISC-V-ISA.patch 2022-06-18 13:59:40.000000000 +0000 +++ vlc-3.0.18/debian/patches/0001-configure-fix-linking-on-RISC-V-ISA.patch 2022-12-04 21:09:40.000000000 +0000 @@ -7,7 +7,7 @@ 1 file changed, 1 insertion(+) diff --git a/configure.ac b/configure.ac -index 2037a9e..df26367 100644 +index e8c7529..db12d28 100644 --- a/configure.ac +++ b/configure.ac @@ -113,6 +113,7 @@ case "${host_os}" in diff -Nru vlc-3.0.17.4/debian/patches/0003-dav1d-fix-compilation-with-upcoming-dav1d-1.0.patch vlc-3.0.18/debian/patches/0003-dav1d-fix-compilation-with-upcoming-dav1d-1.0.patch --- vlc-3.0.17.4/debian/patches/0003-dav1d-fix-compilation-with-upcoming-dav1d-1.0.patch 2022-06-23 08:37:32.000000000 +0000 +++ vlc-3.0.18/debian/patches/0003-dav1d-fix-compilation-with-upcoming-dav1d-1.0.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ -From: Steve Lhomme -Date: Fri, 18 Mar 2022 11:42:49 +0100 -Subject: dav1d: fix compilation with (upcoming) dav1d 1.0 - -(cherry picked from commit dbf45cea2a8abdfbef897b8a71f3eb782bb1b712) (edited) -edited: -- 3.0 has the 128 pixels padding elsewhere -- 3.0 has an extra parameter for add_integer_with_range() -- 3.0 was setting i_extra_picture_buffers further down in the code -- 3.0 uses 16 threads max - -Signed-off-by: Steve Lhomme ---- - modules/codec/dav1d.c | 22 +++++++++++++++++++++- - 1 file changed, 21 insertions(+), 1 deletion(-) - -diff --git a/modules/codec/dav1d.c b/modules/codec/dav1d.c -index 039165f..cfabbc2 100644 ---- a/modules/codec/dav1d.c -+++ b/modules/codec/dav1d.c -@@ -63,10 +63,16 @@ vlc_module_begin () - set_category(CAT_INPUT) - set_subcategory(SUBCAT_INPUT_VCODEC) - -+#if DAV1D_API_VERSION_MAJOR >= 6 -+ add_integer_with_range("dav1d-thread-frames", 0, 0, DAV1D_MAX_THREADS, -+ THREAD_FRAMES_TEXT, THREAD_FRAMES_LONGTEXT, false) -+ add_obsolete_string("dav1d-thread-tiles") // unused with dav1d 1.0 -+#else - add_integer_with_range("dav1d-thread-frames", 0, 0, DAV1D_MAX_FRAME_THREADS, - THREAD_FRAMES_TEXT, THREAD_FRAMES_LONGTEXT, false) - add_integer_with_range("dav1d-thread-tiles", 0, 0, DAV1D_MAX_TILE_THREADS, - THREAD_TILES_TEXT, THREAD_TILES_LONGTEXT, false) -+#endif - vlc_module_end () - - /***************************************************************************** -@@ -294,6 +300,11 @@ static int OpenDecoder(vlc_object_t *p_this) - return VLC_ENOMEM; - - dav1d_default_settings(&p_sys->s); -+#if DAV1D_API_VERSION_MAJOR >= 6 -+ p_sys->s.n_threads = var_InheritInteger(p_this, "dav1d-thread-frames"); -+ if (p_sys->s.n_threads == 0) -+ p_sys->s.n_threads = (i_core_count < 16) ? i_core_count : 16; -+#else - p_sys->s.n_tile_threads = var_InheritInteger(p_this, "dav1d-thread-tiles"); - if (p_sys->s.n_tile_threads == 0) - p_sys->s.n_tile_threads = -@@ -303,6 +314,7 @@ static int OpenDecoder(vlc_object_t *p_this) - p_sys->s.n_frame_threads = var_InheritInteger(p_this, "dav1d-thread-frames"); - if (p_sys->s.n_frame_threads == 0) - p_sys->s.n_frame_threads = (i_core_count < 16) ? i_core_count : 16; -+#endif - p_sys->s.allocator.cookie = dec; - p_sys->s.allocator.alloc_picture_callback = NewPicture; - p_sys->s.allocator.release_picture_callback = FreePicture; -@@ -313,12 +325,20 @@ static int OpenDecoder(vlc_object_t *p_this) - return VLC_EGENERIC; - } - -+#if DAV1D_API_VERSION_MAJOR >= 6 -+ msg_Dbg(p_this, "Using dav1d version %s with %d threads", -+ dav1d_version(), p_sys->s.n_threads); -+ -+ dec->i_extra_picture_buffers = (p_sys->s.n_threads - 1); -+#else - msg_Dbg(p_this, "Using dav1d version %s with %d/%d frame/tile threads", - dav1d_version(), p_sys->s.n_frame_threads, p_sys->s.n_tile_threads); - -+ dec->i_extra_picture_buffers = (p_sys->s.n_frame_threads - 1); -+#endif -+ - dec->pf_decode = Decode; - dec->pf_flush = FlushDecoder; -- dec->i_extra_picture_buffers = (p_sys->s.n_frame_threads - 1); - - dec->fmt_out.video.i_width = dec->fmt_in.video.i_width; - dec->fmt_out.video.i_height = dec->fmt_in.video.i_height; diff -Nru vlc-3.0.17.4/debian/patches/0003-packetizer-flac-fix-CRC-from-emulated-sync.patch vlc-3.0.18/debian/patches/0003-packetizer-flac-fix-CRC-from-emulated-sync.patch --- vlc-3.0.17.4/debian/patches/0003-packetizer-flac-fix-CRC-from-emulated-sync.patch 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/debian/patches/0003-packetizer-flac-fix-CRC-from-emulated-sync.patch 2022-12-04 21:09:40.000000000 +0000 @@ -0,0 +1,88 @@ +From: Francois Cartegnie +Date: Mon, 7 Nov 2022 15:02:57 +0100 +Subject: packetizer: flac: fix CRC from emulated sync + +also skips some memcpy + +refs #27454 #27477 + +(cherry picked from commit c14b5aa6a7bd3aa25fa951e2b4136aff70f5702a) +--- + modules/packetizer/flac.c | 13 +++++++++++-- + 1 file changed, 11 insertions(+), 2 deletions(-) + +diff --git a/modules/packetizer/flac.c b/modules/packetizer/flac.c +index 7c7bc06..02a43f7 100644 +--- a/modules/packetizer/flac.c ++++ b/modules/packetizer/flac.c +@@ -78,6 +78,7 @@ struct decoder_sys_t + + size_t i_last_frame_size; + uint16_t crc; ++ size_t i_buf_offset; /* in final buffer before crc check / validation / retry */ + size_t i_buf; + uint8_t *p_buf; + +@@ -386,6 +387,7 @@ static block_t *Packetize(decoder_t *p_dec, block_t **pp_block) + p_sys->headerinfo = headerinfo; + p_sys->i_state = STATE_NEXT_SYNC; + p_sys->i_offset = FLAC_FRAME_SIZE_MIN; ++ p_sys->i_buf_offset = 0; + p_sys->crc = 0; + + /* We have to read until next frame sync code to compute current frame size +@@ -461,6 +463,7 @@ static block_t *Packetize(decoder_t *p_dec, block_t **pp_block) + block_SkipBytes( &p_sys->bytestream, FLAC_HEADER_SIZE_MAX + 2 ); + block_BytestreamFlush( &p_sys->bytestream ); + p_sys->crc = 0; ++ p_sys->i_buf_offset = 0; + p_sys->i_offset = 0; + p_sys->i_state = STATE_NOSYNC; + p_sys->i_next_block_flags |= BLOCK_FLAG_DISCONTINUITY; +@@ -484,10 +487,12 @@ static block_t *Packetize(decoder_t *p_dec, block_t **pp_block) + } + + /* Copy from previous sync point up to to current (offset) */ +- block_PeekOffsetBytes( &p_sys->bytestream, 0, p_sys->p_buf, p_sys->i_offset ); ++ block_PeekOffsetBytes( &p_sys->bytestream, p_sys->i_buf_offset, ++ &p_sys->p_buf[p_sys->i_buf_offset], ++ p_sys->i_offset - p_sys->i_buf_offset ); + + /* update crc to include this data chunk */ +- for( size_t i = 0; i < p_sys->i_offset - 2; i++ ) ++ for( size_t i = p_sys->i_buf_offset; i < p_sys->i_offset - 2; i++ ) + p_sys->crc = flac_crc16( p_sys->crc, p_sys->p_buf[i] ); + + uint16_t stream_crc = GetWBE(&p_sys->p_buf[p_sys->i_offset - 2]); +@@ -497,6 +502,7 @@ static block_t *Packetize(decoder_t *p_dec, block_t **pp_block) + /* Add the 2 last bytes which were not the CRC sum, and go for next sync point */ + p_sys->crc = flac_crc16( p_sys->crc, p_sys->p_buf[p_sys->i_offset - 2] ); + p_sys->crc = flac_crc16( p_sys->crc, p_sys->p_buf[p_sys->i_offset - 1] ); ++ p_sys->i_buf_offset = p_sys->i_offset; + p_sys->i_offset += 1; + p_sys->i_state = !pp_block ? STATE_NOSYNC : STATE_NEXT_SYNC; + break; /* continue */ +@@ -513,6 +519,7 @@ static block_t *Packetize(decoder_t *p_dec, block_t **pp_block) + block_BytestreamFlush( &p_sys->bytestream ); + p_sys->i_offset = 0; + p_sys->crc = 0; ++ p_sys->i_buf_offset = 0; + + if( block_BytestreamRemaining(&p_sys->bytestream) > 0 || pp_block == NULL /* drain */) + p_sys->i_state = STATE_SEND_DATA; +@@ -553,6 +560,7 @@ static block_t *Packetize(decoder_t *p_dec, block_t **pp_block) + else + free( p_sys->p_buf ); + ++ p_sys->i_buf_offset = 0; + p_sys->i_buf = 0; + p_sys->p_buf = NULL; + p_sys->i_offset = 0; +@@ -587,6 +595,7 @@ static int Open(vlc_object_t *p_this) + p_sys->b_stream_info = false; + p_sys->i_last_frame_size = FLAC_FRAME_SIZE_MIN; + p_sys->headerinfo.i_pts = VLC_TS_INVALID; ++ p_sys->i_buf_offset = 0; + p_sys->i_buf = 0; + p_sys->p_buf = NULL; + p_sys->i_next_block_flags = 0; diff -Nru vlc-3.0.17.4/debian/patches/0004-dav1d-limit-the-number-of-extra-frames-needed-by-the.patch vlc-3.0.18/debian/patches/0004-dav1d-limit-the-number-of-extra-frames-needed-by-the.patch --- vlc-3.0.17.4/debian/patches/0004-dav1d-limit-the-number-of-extra-frames-needed-by-the.patch 2022-06-23 08:37:32.000000000 +0000 +++ vlc-3.0.18/debian/patches/0004-dav1d-limit-the-number-of-extra-frames-needed-by-the.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,60 +0,0 @@ -From: Steve Lhomme -Date: Mon, 21 Mar 2022 15:53:52 +0100 -Subject: dav1d: limit the number of extra frames needed by the decoder - -The i_extra_picture_buffers is used to add pictures to the pool that the core -will allocate. dav1d is actually using n_threads frames. And the core is -allocating 10 frames per default for AV1. So we need to add the missing ones. - -(cherry picked from commit a32031dc0f5f32083fc54a21397bce732742ccbe) (rebased) -rebased: -- the code dav1d 1.0.0 in 3.0 uses different max versions - -Signed-off-by: Steve Lhomme ---- - modules/codec/dav1d.c | 25 +++++++++++++++++++++++-- - 1 file changed, 23 insertions(+), 2 deletions(-) - -diff --git a/modules/codec/dav1d.c b/modules/codec/dav1d.c -index cfabbc2..8a439ce 100644 ---- a/modules/codec/dav1d.c -+++ b/modules/codec/dav1d.c -@@ -304,7 +304,28 @@ static int OpenDecoder(vlc_object_t *p_this) - p_sys->s.n_threads = var_InheritInteger(p_this, "dav1d-thread-frames"); - if (p_sys->s.n_threads == 0) - p_sys->s.n_threads = (i_core_count < 16) ? i_core_count : 16; --#else -+ -+#if DAV1D_API_VERSION_MAJOR > 6 || DAV1D_API_VERSION_MINOR >= 7 -+ // after dav1d 1.0.0 -+ p_sys->s.max_frame_delay = dav1d_get_frame_delay( &p_sys->s ); -+#else // 1.0.0 -+ // corresponds to c->n_fc when max_frame_delay is 0 in dav1d 1.0.0 -+ static const uint8_t fc_lut[49] = { -+ 1, /* 1 */ -+ 2, 2, 2, /* 2- 4 */ -+ 3, 3, 3, 3, 3, /* 5- 9 */ -+ 4, 4, 4, 4, 4, 4, 4, /* 10-16 */ -+ 5, 5, 5, 5, 5, 5, 5, 5, 5, /* 17-25 */ -+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, /* 26-36 */ -+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, /* 37-49 */ -+ }; -+ if (p_sys->s.n_threads >= 50) -+ p_sys->s.max_frame_delay = 8; -+ else -+ p_sys->s.max_frame_delay = fc_lut[p_sys->s.n_threads - 1]; -+#endif -+ -+#else // before dav1d 1.0.0 - p_sys->s.n_tile_threads = var_InheritInteger(p_this, "dav1d-thread-tiles"); - if (p_sys->s.n_tile_threads == 0) - p_sys->s.n_tile_threads = -@@ -329,7 +350,7 @@ static int OpenDecoder(vlc_object_t *p_this) - msg_Dbg(p_this, "Using dav1d version %s with %d threads", - dav1d_version(), p_sys->s.n_threads); - -- dec->i_extra_picture_buffers = (p_sys->s.n_threads - 1); -+ dec->i_extra_picture_buffers = p_sys->s.max_frame_delay; - #else - msg_Dbg(p_this, "Using dav1d version %s with %d/%d frame/tile threads", - dav1d_version(), p_sys->s.n_frame_threads, p_sys->s.n_tile_threads); diff -Nru vlc-3.0.17.4/debian/patches/0005-caca-fix-to-newer-version.patch vlc-3.0.18/debian/patches/0005-caca-fix-to-newer-version.patch --- vlc-3.0.17.4/debian/patches/0005-caca-fix-to-newer-version.patch 2022-06-23 08:37:32.000000000 +0000 +++ vlc-3.0.18/debian/patches/0005-caca-fix-to-newer-version.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,108 +0,0 @@ -From: Jean-Baptiste Kempf -Date: Thu, 26 May 2022 16:52:11 +0200 -Subject: caca: fix to newer version - -Manual backport of 2c7b5e004f1a968077973b4105d7d65dca7539e9 ---- - modules/video_output/caca.c | 30 +++++++++++++++--------------- - 1 file changed, 15 insertions(+), 15 deletions(-) - -diff --git a/modules/video_output/caca.c b/modules/video_output/caca.c -index e4ed0d5..4a9a11d 100644 ---- a/modules/video_output/caca.c -+++ b/modules/video_output/caca.c -@@ -74,9 +74,9 @@ static void Place(vout_display_t *, vout_display_place_t *); - - /* */ - struct vout_display_sys_t { -- cucul_canvas_t *cv; -+ caca_canvas_t *cv; - caca_display_t *dp; -- cucul_dither_t *dither; -+ caca_dither_t *dither; - - picture_pool_t *pool; - vout_display_event_thread_t *et; -@@ -153,9 +153,9 @@ static int Open(vlc_object_t *object) - if (!sys) - goto error; - -- sys->cv = cucul_create_canvas(0, 0); -+ sys->cv = caca_create_canvas(0, 0); - if (!sys->cv) { -- msg_Err(vd, "cannot initialize libcucul"); -+ msg_Err(vd, "cannot initialize libcaca"); - goto error; - } - -@@ -209,11 +209,11 @@ error: - if (sys->pool) - picture_pool_Release(sys->pool); - if (sys->dither) -- cucul_free_dither(sys->dither); -+ caca_free_dither(sys->dither); - if (sys->dp) - caca_free_display(sys->dp); - if (sys->cv) -- cucul_free_canvas(sys->cv); -+ caca_free_canvas(sys->cv); - - free(sys); - } -@@ -235,9 +235,9 @@ static void Close(vlc_object_t *object) - if (sys->pool) - picture_pool_Release(sys->pool); - if (sys->dither) -- cucul_free_dither(sys->dither); -+ caca_free_dither(sys->dither); - caca_free_display(sys->dp); -- cucul_free_canvas(sys->cv); -+ caca_free_canvas(sys->cv); - - #if defined(_WIN32) - FreeConsole(); -@@ -266,7 +266,7 @@ static void Prepare(vout_display_t *vd, picture_t *picture, subpicture_t *subpic - - if (!sys->dither) { - /* Create the libcaca dither object */ -- sys->dither = cucul_create_dither(32, -+ sys->dither = caca_create_dither(32, - vd->source.i_visible_width, - vd->source.i_visible_height, - picture->p[0].i_pitch, -@@ -284,12 +284,12 @@ static void Prepare(vout_display_t *vd, picture_t *picture, subpicture_t *subpic - vout_display_place_t place; - Place(vd, &place); - -- cucul_set_color_ansi(sys->cv, CUCUL_COLOR_DEFAULT, CUCUL_COLOR_BLACK); -- cucul_clear_canvas(sys->cv); -+ caca_set_color_ansi(sys->cv, CACA_DEFAULT, CACA_BLACK); -+ caca_clear_canvas(sys->cv); - - const int crop_offset = vd->source.i_y_offset * picture->p->i_pitch + - vd->source.i_x_offset * picture->p->i_pixel_pitch; -- cucul_dither_bitmap(sys->cv, place.x, place.y, -+ caca_dither_bitmap(sys->cv, place.x, place.y, - place.width, place.height, - sys->dither, - &picture->p->p_pixels[crop_offset]); -@@ -328,7 +328,7 @@ static int Control(vout_display_t *vd, int query, va_list args) - - case VOUT_DISPLAY_CHANGE_SOURCE_CROP: - if (sys->dither) -- cucul_free_dither(sys->dither); -+ caca_free_dither(sys->dither); - sys->dither = NULL; - return VLC_SUCCESS; - -@@ -366,8 +366,8 @@ static void Place(vout_display_t *vd, vout_display_place_t *place) - - vout_display_PlacePicture(place, &vd->source, vd->cfg, false); - -- const int canvas_width = cucul_get_canvas_width(sys->cv); -- const int canvas_height = cucul_get_canvas_height(sys->cv); -+ const int canvas_width = caca_get_canvas_width(sys->cv); -+ const int canvas_height = caca_get_canvas_height(sys->cv); - const int display_width = caca_get_display_width(sys->dp); - const int display_height = caca_get_display_height(sys->dp); - diff -Nru vlc-3.0.17.4/debian/patches/series vlc-3.0.18/debian/patches/series --- vlc-3.0.17.4/debian/patches/series 2022-06-23 08:37:32.000000000 +0000 +++ vlc-3.0.18/debian/patches/series 2022-12-04 21:09:40.000000000 +0000 @@ -1,5 +1,3 @@ 0001-configure-fix-linking-on-RISC-V-ISA.patch 0002-Do-not-generate-cache-during-build.patch -0003-dav1d-fix-compilation-with-upcoming-dav1d-1.0.patch -0004-dav1d-limit-the-number-of-extra-frames-needed-by-the.patch -0005-caca-fix-to-newer-version.patch +0003-packetizer-flac-fix-CRC-from-emulated-sync.patch diff -Nru vlc-3.0.17.4/debian/rules vlc-3.0.18/debian/rules --- vlc-3.0.17.4/debian/rules 2022-10-03 20:07:16.000000000 +0000 +++ vlc-3.0.18/debian/rules 2022-12-04 20:58:12.000000000 +0000 @@ -75,7 +75,6 @@ --enable-shine \ --enable-shout \ --enable-skins2 \ - --enable-sndio \ --enable-soxr \ --enable-spatialaudio \ --enable-speex \ @@ -110,11 +109,12 @@ # libtar: security issue (#737534) # live555: non-free code from RFC 3550 (#981439) # macosx*: MacOX only -# microdns: functionality already provided by avahi # mfx: currently not supported on Linux +# microdns: functionality already provided by avahi # opencv: developer plugin not required by end users # projectm: broken # schroedinger: removed from Debian (#845037) +# sndio: NMU maintained key package # sparkle: MacOS X only # telx: incompatible with zvbi # vpx: not needed when having libavcodec @@ -143,6 +143,7 @@ --disable-opencv \ --disable-projectm \ --disable-schroedinger \ + --disable-sndio \ --disable-sparkle \ --disable-telx \ --disable-vpx \ diff -Nru vlc-3.0.17.4/debian/upstream/metadata vlc-3.0.18/debian/upstream/metadata --- vlc-3.0.17.4/debian/upstream/metadata 2021-06-11 18:56:47.000000000 +0000 +++ vlc-3.0.18/debian/upstream/metadata 2022-12-04 20:58:12.000000000 +0000 @@ -1,6 +1,6 @@ -Bug-Database: https://trac.videolan.org/vlc +Bug-Database: https://code.videolan.org/videolan/vlc/-/issues Contact: https://forum.videolan.org/ FAQ: https://wiki.videolan.org/Frequently_Asked_Questions/ -Repository: https://git.videolan.org/git/vlc/vlc-3.0.git -Repository-Browse: https://git.videolan.org/?p=vlc/vlc-3.0.git +Repository: https://code.videolan.org/videolan/vlc.git +Repository-Browse: https://code.videolan.org/videolan/vlc/-/tree/3.0.x Donation: https://www.videolan.org/contribute.html#money diff -Nru vlc-3.0.17.4/debian/vlc-plugin-base.install vlc-3.0.18/debian/vlc-plugin-base.install --- vlc-3.0.17.4/debian/vlc-plugin-base.install 2022-06-23 08:37:32.000000000 +0000 +++ vlc-3.0.18/debian/vlc-plugin-base.install 2022-12-04 20:58:12.000000000 +0000 @@ -57,7 +57,6 @@ usr/lib/*/vlc/plugins/audio_output/libamem_plugin.so usr/lib/*/vlc/plugins/audio_output/liboss_plugin.so [oss] usr/lib/*/vlc/plugins/audio_output/libpulse_plugin.so -usr/lib/*/vlc/plugins/audio_output/libsndio_plugin.so usr/lib/*/vlc/plugins/codec/liba52_plugin.so usr/lib/*/vlc/plugins/codec/libadpcm_plugin.so usr/lib/*/vlc/plugins/codec/libaes3_plugin.so diff -Nru vlc-3.0.17.4/doc/ChangeLog-2003 vlc-3.0.18/doc/ChangeLog-2003 --- vlc-3.0.17.4/doc/ChangeLog-2003 2022-02-28 09:55:02.000000000 +0000 +++ vlc-3.0.18/doc/ChangeLog-2003 2022-08-03 11:59:20.000000000 +0000 @@ -22562,13 +22562,3 @@ i_bytes_per_frame and i_frame_length in each audio decoder. * src/audio_output/dec.c: proper fix to correctly set i_bytes_per_frame and i_frame_length. - -commit 08f42608b73bdc422eed24cf0915888417ff5a38 -Author: Jon Lech Johansen -Date: Wed Jan 1 11:14:50 2003 +0000 - - * ./modules/gui/macosx/aout.m: cleaned up the code, removed intf dep. - * ./src/misc/darwin_specific.m: fixed segfault (o_enumerator was being - released twice) and memory leak. - - Bonne Ann�e! diff -Nru vlc-3.0.17.4/doc/ChangeLog-2008 vlc-3.0.18/doc/ChangeLog-2008 --- vlc-3.0.17.4/doc/ChangeLog-2008 2022-02-28 09:55:03.000000000 +0000 +++ vlc-3.0.18/doc/ChangeLog-2008 2022-08-03 11:59:20.000000000 +0000 @@ -8482,7 +8482,7 @@ WinCE: more missing functions fixes commit 07faebaf35bfa682913ac99f11562ecd8b974021 -Merge: b973e326f2 938c3c464f +Merge: b973e326f27 938c3c464fd Author: Geoffroy Couprie Date: Tue Sep 30 12:08:41 2008 +0200 @@ -16931,7 +16931,7 @@ Use FIND_CHILD when possible to look for the vout as suggested by dionoea and nefrir commit b38e99dd1389bc6b9a7579dd3fa872fdc59e88c1 -Merge: e40db6d8bb 2d5437cec8 +Merge: e40db6d8bb7 2d5437cec89 Author: Loïc Minier Date: Fri Aug 22 23:50:02 2008 +0200 @@ -18250,7 +18250,7 @@ mkv: bool spacing cleanup commit 75348facc56350e53eb336252c496876a5d04c09 -Merge: 0b301104d4 7b3f256f61 +Merge: 0b301104d48 7b3f256f61c Author: Pierre d'Herbemont Date: Fri Aug 15 00:59:10 2008 +0200 @@ -19674,7 +19674,7 @@ Signed-off-by: Rémi Denis-Courmont commit 6ebae83db81a80cdc3cead264455074702223ac0 -Merge: 626d109e73 684179744f +Merge: 626d109e739 684179744fa Author: Derk-Jan Hartman Date: Sat Aug 9 02:07:55 2008 +0200 @@ -21297,7 +21297,7 @@ pda gui: Set prio to 0, so it is not eligible for automatic selection. This is bad since it's a GTK module, and with our Qt switch and demise of wxGTK module, this module might be selected more often. It is not for the average user, and 0 tested under 0.9.0. Relates to #1798 commit 35824733e305214dfada18dd6362cfa02a86dcd3 -Merge: ec6ed81c26 7ca75b8a23 +Merge: ec6ed81c26a 7ca75b8a239 Author: Derk-Jan Hartman Date: Fri Aug 1 00:41:33 2008 +0200 @@ -23154,7 +23154,7 @@ Use pl_Locked and pl_Unlocked. commit cd4c4f1dadf2a9b595948da6d70ac2eaad93c990 -Merge: 344b1df555 9525c2bdc4 +Merge: 344b1df5552 9525c2bdc42 Author: Derk-Jan Hartman Date: Mon Jul 21 02:35:21 2008 +0200 @@ -27181,7 +27181,7 @@ Remove dummy $Id$ commit e2a614c82b502ea6c3cdee7d0fc39cbb9627041e -Merge: 51f898a0eb c617646c2e +Merge: 51f898a0eb6 c617646c2e1 Author: Ilkka Ollakka Date: Thu Jun 26 10:38:53 2008 +0300 @@ -27249,7 +27249,7 @@ If you are unpleased about that, fix the core (threading and networking). commit 84e0f97a07c049c9c7082032699d54f9b4e5708a -Merge: 2f53d49924 12b188309d +Merge: 2f53d49924d 12b188309df Author: Jean-Baptiste Kempf Date: Wed Jun 25 12:49:51 2008 -0700 @@ -32726,7 +32726,7 @@ Fix [95e3bb2eaf22929dac3e2c37a26a23e9a0619333] commit 975a356c965b7f84586b929b14ea8a70c6535beb -Merge: b4fdd335a4 e41bccdf88 +Merge: b4fdd335a49 e41bccdf881 Author: Jean-Paul Saman Date: Wed May 28 18:12:49 2008 +0200 @@ -32764,7 +32764,7 @@ This case is already handled in vlc_object_find() commit dd61f37b57429f10db99ffef010ec1c4e2fa0498 -Merge: e1629c217e c807dafe39 +Merge: e1629c217e6 c807dafe39e Author: Jean-Paul Saman Date: Wed May 28 17:33:49 2008 +0200 @@ -38442,7 +38442,7 @@ Signed-off-by: Meuuh the cow commit df61d33b06e2b3cbbe746b2f5a9bea5b370c24ff -Merge: cb23a8236a 0311983688 +Merge: cb23a8236a2 0311983688a Author: Jean-Paul Saman Date: Mon Apr 14 15:44:31 2008 +0200 @@ -38789,7 +38789,7 @@ Compile fix. commit dff434365d951b38be69859dc8c3b210c82e019f -Merge: c72f2f9dcd 87db766dfd +Merge: c72f2f9dcdc 87db766dfd9 Author: Jean-Paul Saman Date: Fri Apr 11 10:53:45 2008 +0200 @@ -38903,7 +38903,7 @@ more VLM tests commit 1ac8441a1c11c1c242a4c5ad7ed9918fbf14da37 -Merge: 665cd9209c 569f294d6a +Merge: 665cd9209c6 569f294d6aa Author: Jean-Paul Saman Date: Wed Apr 9 12:45:24 2008 +0200 @@ -41840,7 +41840,7 @@ Do not allocate arbitrary length on the stack commit c8e6c21dc43999ad81e6801011c57553a07e85ab -Merge: 05278162c6 e5189c41aa +Merge: 05278162c64 e5189c41aa4 Author: Rafaël Carré Date: Sun Mar 23 22:28:03 2008 +0000 @@ -42249,7 +42249,7 @@ missing \param and \return tags (though a lot remains to be done). commit 4e0e4d6d4a3421ccf21715b0705b582826b0d62e -Merge: cfc98288ba 3b0534ea2c +Merge: cfc98288bab 3b0534ea2cd Author: Sam Hocevar Date: Thu Mar 20 17:38:00 2008 +0000 @@ -44963,7 +44963,7 @@ Signed-off-by: Rémi Denis-Courmont commit 132bf65db16a3496f2b14bb219b90695bdec3b86 -Merge: 79223aaeaf bd9f77136f +Merge: 79223aaeafe bd9f77136ff Author: André Weber Date: Sun Mar 2 18:37:32 2008 +0100 diff -Nru vlc-3.0.17.4/doc/ChangeLog-2009 vlc-3.0.18/doc/ChangeLog-2009 --- vlc-3.0.17.4/doc/ChangeLog-2009 2022-02-28 09:55:03.000000000 +0000 +++ vlc-3.0.18/doc/ChangeLog-2009 2022-08-03 11:59:20.000000000 +0000 @@ -22654,7 +22654,7 @@ Fixed flicker with overlapped subtitles in ssa. commit 108053ff0921f359fd01c1c6988ce4fa0dc49f3f -Merge: 82633df33d ccfb6c20d6 +Merge: 82633df33d7 ccfb6c20d6d Author: JP Dinger Date: Fri Jul 24 17:24:46 2009 +0200 @@ -22803,7 +22803,7 @@ Use VLC_VAR_CLASS when applicable. commit bf8d85d77b6fc8c47704a0b787aca8ee8d72bb47 -Merge: 8baae61a21 aae7dd03ae +Merge: 8baae61a21c aae7dd03aee Author: JP Dinger Date: Fri Jul 24 13:38:22 2009 +0200 @@ -28789,7 +28789,7 @@ changes made to 7079b91c24f7c8032025576407f1386350cae58f. commit 3eeab0d3a064349bbd0f65b9a890a3cfc82f6283 -Merge: 7079b91c24 4b44912ce0 +Merge: 7079b91c24f 4b44912ce08 Author: Rémi Denis-Courmont Date: Sun May 31 22:32:09 2009 +0300 @@ -28804,7 +28804,7 @@ This reverts commit 8d812e0a8417d97334ad008185cd9ece30294ab3. commit 4b44912ce0888ed40d35aa5d782cd17cbf7e9c6b -Merge: 8d812e0a84 6520db28dd +Merge: 8d812e0a841 6520db28ddf Author: Rémi Denis-Courmont Date: Sun May 31 22:30:31 2009 +0300 @@ -29263,7 +29263,7 @@ Signed-off-by: Rémi Denis-Courmont commit 55c960749e8f91763e720ac610d5dd56f90fcde1 -Merge: b74ce937e0 8e4c60f63e +Merge: b74ce937e05 8e4c60f63eb Author: Rémi Denis-Courmont Date: Wed May 27 18:50:03 2009 +0300 @@ -29432,7 +29432,7 @@ Fix compilation on Windows commit ad77d955a5dc051976d94d6e08ee0f717ec3a938 -Merge: 3bc0ec0777 4db7858c80 +Merge: 3bc0ec07775 4db7858c806 Author: Rémi Denis-Courmont Date: Tue May 26 19:37:54 2009 +0300 @@ -29498,7 +29498,7 @@ macosx: fixed regressions from merges with the 1.0-bugfix branch commit 74e5a0727b83ea8bd5ee87dbce7596b990ef14c1 -Merge: c5c06b64c8 8d5c75701a +Merge: c5c06b64c80 8d5c75701a7 Author: Derk-Jan Hartman Date: Tue May 26 16:10:57 2009 +0200 @@ -29513,7 +29513,7 @@ This was broken in [3d5ff7dc53d5ac154fd56faca23a3b6364037aa2] commit c5c06b64c806052086e5772d64e540a8db7e4a9b -Merge: ca07b0f932 622c64a18a +Merge: ca07b0f9329 622c64a18a8 Author: Rémi Duraffort Date: Tue May 26 15:50:52 2009 +0200 @@ -29591,7 +29591,7 @@ Signed-off-by: Jean-Baptiste Kempf commit 14f37b2101842fa6e427f962f689db74eff6faba -Merge: c65eebb30a 46a33c34dc +Merge: c65eebb30a7 46a33c34dcc Author: Rémi Duraffort Date: Tue May 26 12:58:18 2009 +0200 @@ -29646,7 +29646,7 @@ Small fix in NEWS. commit 658686029ee756fbf4beb8e0cdcc4b0bc5dd18ed -Merge: 13a41fa0f3 aeb955d83e +Merge: 13a41fa0f38 aeb955d83e1 Author: Jean-Baptiste Kempf Date: Tue May 26 01:57:08 2009 +0200 @@ -29687,7 +29687,7 @@ Fix conflicts. commit 66bd92014e5d721d8fe74bfd69f601bfd228012a -Merge: 1319c5c570 f02742c79f +Merge: 1319c5c5700 f02742c79fc Author: Jean-Baptiste Kempf Date: Tue May 26 00:51:06 2009 +0200 @@ -30023,7 +30023,7 @@ This fix all the dialogs (Fix AVI, HTTP login) that didn't show in skins interface. commit 9d5e75a7a5643a2144dc561fc246a7a3ca7e5fb0 -Merge: b13a8009cc f56161ec9f +Merge: b13a8009cc2 f56161ec9f0 Author: Rémi Denis-Courmont Date: Sat May 23 22:39:20 2009 +0300 @@ -30154,7 +30154,7 @@ Remove dummy debug commit 152b1687c0ec112f3ab1360006d048d6b9cf7258 -Merge: 4d4f701e03 0577234ca3 +Merge: 4d4f701e03e 0577234ca3d Author: Rémi Denis-Courmont Date: Sat May 23 17:01:32 2009 +0300 @@ -30221,7 +30221,7 @@ Missing space commit 52c18c4dec68158eedd655e0502820b7d7b6128f -Merge: 49d534e020 deb3a85153 +Merge: 49d534e0209 deb3a851530 Author: Rémi Denis-Courmont Date: Sat May 23 12:43:00 2009 +0300 @@ -30451,7 +30451,7 @@ Fix mouse key strings commit 51bbf793131496c6f31f70953ff434f17be80d63 -Merge: 0f2826187d 83116c1c92 +Merge: 0f2826187da 83116c1c926 Author: Rémi Denis-Courmont Date: Thu May 21 18:30:26 2009 +0300 @@ -30640,7 +30640,7 @@ Factorization. commit 78d87996ccb92d1dc91c9987685f976ed3be08a6 -Merge: a4bcd514cc b36b614a14 +Merge: a4bcd514cc7 b36b614a146 Author: Rémi Duraffort Date: Wed May 20 21:53:35 2009 +0200 @@ -30690,7 +30690,7 @@ Remove unwanted "\v". commit 7f12470415d98e9e0ac725f2bb96b5fa74ef27f1 -Merge: a516ab36c1 63980c43dd +Merge: a516ab36c18 63980c43dd7 Author: Rémi Denis-Courmont Date: Wed May 20 19:46:41 2009 +0300 @@ -31408,7 +31408,7 @@ (and add ftp and smb to the list) commit 24cddfa0efa80557f538d6dbf08f9b0b4b4d52a4 -Merge: d1d3d7b413 6dce48f670 +Merge: d1d3d7b413a 6dce48f670a Author: Laurent Aimar Date: Sat May 16 23:26:19 2009 +0200 @@ -31591,7 +31591,7 @@ Qt4: remove dead code commit 174f75debc6ff4b0b3a7037bc21e7b77bfe2a9d8 -Merge: cc321882c2 0bbc1eeee3 +Merge: cc321882c23 0bbc1eeee3f Author: Rémi Denis-Courmont Date: Sat May 16 20:07:46 2009 +0300 @@ -31701,7 +31701,7 @@ doSomehting() is not a good function name. commit 89b6530d8abd99b96b9f33af022022241fe97ee2 -Merge: e169fa3a37 da62e6d3fd +Merge: e169fa3a378 da62e6d3fd7 Author: Laurent Aimar Date: Sat May 16 01:09:40 2009 +0200 @@ -31874,7 +31874,7 @@ Signed-off-by: Rémi Duraffort commit ec6a7b8ec1fc9f070d1d5242836b1d643f9f2dd8 -Merge: 97ada6d92f e936fbd617 +Merge: 97ada6d92f4 e936fbd6171 Author: Jean-Baptiste Kempf Date: Thu May 14 23:20:40 2009 +0200 @@ -32050,7 +32050,7 @@ Well, only those that VLC knows anyway. commit fd7f8f854a13f7b65cb2b8622755aa47ee932919 -Merge: 8e1f14148b 0dec2f724e +Merge: 8e1f14148bf 0dec2f724e0 Author: Rémi Denis-Courmont Date: Thu May 14 18:54:17 2009 +0300 @@ -32160,7 +32160,7 @@ Require XCB so we always have a window provider (fixes #2736) commit 2151d6fe01a3b730b6d241b561ce18f5cc424faf -Merge: 43087f360f 548f78df2e +Merge: 43087f360f4 548f78df2e9 Author: Rémi Denis-Courmont Date: Wed May 13 23:32:57 2009 +0300 @@ -32347,7 +32347,7 @@ Don't hesitate if you have any comments. commit c6d2ba8aa42a6b2fdb3e10db38c3ef053f65b19d -Merge: 9c1f8ba149 2d4241a1f7 +Merge: 9c1f8ba1495 2d4241a1f7a Author: Rémi Denis-Courmont Date: Wed May 13 21:57:34 2009 +0300 @@ -32383,7 +32383,7 @@ Use input_GetVout() instead of vlc_object_find() commit 9c1f8ba149532713c7912eb233409b283c150155 -Merge: 03b85ce331 42043990d3 +Merge: 03b85ce331b 42043990d34 Author: Rémi Denis-Courmont Date: Wed May 13 21:08:54 2009 +0300 @@ -32453,7 +32453,7 @@ fbosd: fix compilation with the changes of text_style_* commit b65308f0b9f038e8f56aebbee784d128be7b0f7e -Merge: 44f031cb1d 9a1855005d +Merge: 44f031cb1db 9a1855005d5 Author: Rémi Denis-Courmont Date: Wed May 13 18:52:30 2009 +0300 @@ -32511,7 +32511,7 @@ and sues internal types commit 272817e4e8be36e209ea64e5de1784f951bc8ebb -Merge: 1403f3a061 9b9051c4c1 +Merge: 1403f3a061c 9b9051c4c1a Author: Rémi Denis-Courmont Date: Tue May 12 19:13:38 2009 +0300 @@ -32524,7 +32524,7 @@ Syntax error commit 1403f3a061c3c1eaff53e2e077d46d84bab30201 -Merge: 224e96f2ae a11122ee5f +Merge: 224e96f2aef a11122ee5f8 Author: Rémi Denis-Courmont Date: Tue May 12 18:46:25 2009 +0300 @@ -32679,7 +32679,7 @@ Removed dead code. commit 1ac10ca36325552f134fdc0d93512bbc35b808a7 -Merge: 7692ffe0ad 8766feda41 +Merge: 7692ffe0ad8 8766feda419 Author: Rémi Denis-Courmont Date: Mon May 11 22:22:52 2009 +0300 @@ -32712,7 +32712,7 @@ qt4: remove double check of isFullScreen commit 33d7f71f6907172c063d9383102de00abc6a3b30 -Merge: e83df29b1f 109900f90d +Merge: e83df29b1f3 109900f90d2 Author: Rémi Denis-Courmont Date: Mon May 11 19:30:53 2009 +0300 @@ -32748,7 +32748,7 @@ Signed-off-by: Rémi Denis-Courmont commit 0036da65250f7f6b785da2be9f68af0bb9275600 -Merge: c48ac54880 2b4e12cdbe +Merge: c48ac54880b 2b4e12cdbe7 Author: Rémi Denis-Courmont Date: Sun May 10 18:40:42 2009 +0300 @@ -32791,7 +32791,7 @@ HTTP: use DIR_SEP(_CHAR) commit c48ac54880b101834b5106bca116024999067db2 -Merge: 600d029594 7a0efcc709 +Merge: 600d029594f 7a0efcc7090 Author: Rémi Denis-Courmont Date: Sun May 10 15:32:30 2009 +0300 @@ -32834,7 +32834,7 @@ Remove static prototypes from header file commit 600d029594f32258567f27a875e4b956e0949a46 -Merge: d93246d2d3 b8f23ea716 +Merge: d93246d2d33 b8f23ea7166 Author: Rémi Denis-Courmont Date: Sun May 10 12:41:17 2009 +0300 @@ -34819,7 +34819,7 @@ Libass: set more debug messages. commit 6907b236982ed549573879d2590c5cb7e565ac9a -Merge: fcae9e71e8 a67c1100d0 +Merge: fcae9e71e8c a67c1100d0b Author: Jean-Baptiste Kempf Date: Fri Apr 24 18:22:14 2009 +0200 @@ -35687,7 +35687,7 @@ Compile fix commit 6511df53b2ea6320b5cf36a539ea6cffa99dffb9 -Merge: 665ba71427 e503012189 +Merge: 665ba714270 e5030121893 Author: Rémi Denis-Courmont Date: Wed Apr 15 23:27:33 2009 +0300 @@ -36225,7 +36225,7 @@ mkv: remove unmatche #endif introduced [b870bc9ddf45f01d24adb398b5f442ddc87a00ae] commit d3c449f26a72761b20dc8cb8334fdd5622acd1f2 -Merge: 8186391531 5c30d75fcc +Merge: 81863915310 5c30d75fcc2 Author: Rémi Denis-Courmont Date: Fri Apr 10 22:19:20 2009 +0300 @@ -37786,7 +37786,7 @@ Signed-off-by: Laurent Aimar commit 1c56e0ed3e363aa8c581c7e2880ac3e9bc51c674 -Merge: 0d358ba08a 5b963efaee +Merge: 0d358ba08ae 5b963efaee9 Author: Jean-Baptiste Kempf Date: Sun Mar 29 19:23:14 2009 +0200 @@ -41861,7 +41861,7 @@ Qt: use the new lock icon. commit 4362a469b5203cc57a17d4acb9354e8d03925478 -Merge: 10f1c32dbd 36ed9b0799 +Merge: 10f1c32dbd8 36ed9b07993 Author: Jean-Baptiste Kempf Date: Tue Feb 24 11:15:50 2009 +0100 @@ -43181,7 +43181,7 @@ Stay polite commit 31a51c3e45d72159defca0aaf95a5b599fc7cc5d -Merge: 1a11a808f3 0f594de02d +Merge: 1a11a808f3b 0f594de02d5 Author: Rémi Denis-Courmont Date: Sun Feb 15 19:26:12 2009 +0200 @@ -46128,7 +46128,7 @@ Missing vlc_savecancel() commit ff283ead4a3ec930becc2b382a175df13dee8cb9 -Merge: 72218fb9b9 3e97bc6eaf +Merge: 72218fb9b9b 3e97bc6eafb Author: Rémi Denis-Courmont Date: Sun Jan 25 20:31:21 2009 +0200 diff -Nru vlc-3.0.17.4/doc/ChangeLog-2010 vlc-3.0.18/doc/ChangeLog-2010 --- vlc-3.0.17.4/doc/ChangeLog-2010 2022-02-28 09:55:03.000000000 +0000 +++ vlc-3.0.18/doc/ChangeLog-2010 2022-08-03 11:59:20.000000000 +0000 @@ -11389,7 +11389,7 @@ Disable swscale if avcodec is disabled commit 1c6ac615a82aa1d8bab6295c828238e126ad201a -Merge: c1cf203b27 a81518d6c9 +Merge: c1cf203b272 a81518d6c9f Author: Jean-Baptiste Kempf Date: Wed Jul 21 18:16:32 2010 +0200 @@ -25249,7 +25249,7 @@ kilobit is kb, not kB commit 778a6f0719a6bf547917ff9f2ef7fd84769fd901 -Merge: 8d76c39a23 f8aeca6aea +Merge: 8d76c39a239 f8aeca6aea3 Author: Rémi Denis-Courmont Date: Wed Mar 3 20:09:49 2010 +0200 @@ -31900,7 +31900,7 @@ macosx/framework: Get rid of VLCMediaListAspect, and remove a bunch of exception. commit cb9e605beef6ce4134bec22a90aa54746444e667 -Merge: 0afbf87808 58b047635b +Merge: 0afbf878082 58b047635b7 Author: JP Dinger Date: Mon Feb 1 01:57:41 2010 +0100 diff -Nru vlc-3.0.17.4/doc/ChangeLog-2014 vlc-3.0.18/doc/ChangeLog-2014 --- vlc-3.0.17.4/doc/ChangeLog-2014 2022-02-28 09:55:03.000000000 +0000 +++ vlc-3.0.18/doc/ChangeLog-2014 2022-08-03 11:59:21.000000000 +0000 @@ -28355,9 +28355,3 @@ Date: Wed Jan 1 17:57:26 2014 +0200 Remove stray comment - -commit 33d54e40ebfc58ecffe482a25f817c0b550c63b9 -Author: Jean-Baptiste Kempf -Date: Wed Jan 1 11:31:17 2014 +0100 - - Happy New Year 2014! diff -Nru vlc-3.0.17.4/doc/ChangeLog-2022 vlc-3.0.18/doc/ChangeLog-2022 --- vlc-3.0.17.4/doc/ChangeLog-2022 2022-02-28 09:55:03.000000000 +0000 +++ vlc-3.0.18/doc/ChangeLog-2022 2022-08-03 11:59:21.000000000 +0000 @@ -1,3 +1,3715 @@ +commit 941e4373017d71ae33d901f42adbd4222d00ecb4 +Author: Jean-Baptiste Kempf +Date: Sat Jul 30 23:07:50 2022 +0200 + + Contrib: update libbluray to 1.3.2 + + (cherry picked from commit d0b87b53ac8ac941883c950c13f77abc964c7f22) + Signed-off-by: Jean-Baptiste Kempf + +commit cdcf450c8ef00c682af82a66e889022bfdb91d39 +Author: Francois Cartegnie +Date: Wed Jul 27 00:02:41 2022 +0200 + + demux: dash: have startnumber default when parsing timelines + + refs #27164 + + (cherry picked from commit 9ba23e7d581144ffe3e3fad00d2d43ccdce21d43) + Signed-off-by: Hugo Beauzée-Luyssen + +commit 7c897c4dd89ce8593b5c3c26a1192a927f6b95b0 +Author: Thomas Guillem +Date: Thu Jul 28 15:35:59 2022 +0200 + + avcodec: vaapi: use profile from AVCodecContext + + Like it's done in other part of the GetVaProfile() function. + + For the current issue, the extra data is set midstream by lavc (and not + by our mkv demux). + + The 4.0 branch does not need this patch since the VAAPI initialisation + is done by lavc. + + Thanks Steve for the hint. + + Co-authored-by: Steve Lhomme + + Fixes #27163 + +commit d4dd33720a8fbf83feaf2e70970246f62910e313 +Author: Marvin Scholz +Date: Mon Jul 25 18:07:57 2022 +0200 + + access: file: properly report local files on Darwin + + While Darwin implements fstatvfs, the statvfs structures f_flag + field is only defined to contain two flags, ST_RDONLY and ST_NOSUID. + So the check for MNT_LOCAL would always be false, reporting all files + as non-local. + + To mitigate that, on Darwin we can just use fstatfs and check + statfs.f_flags for MNT_LOCAL. + + (cherry picked from commit 132ef662489942d81cf1d974690cf6f10589ce7f) + Signed-off-by: Marvin Scholz + +commit acae96e091320da18730345d6eef7257fcb595ba +Author: Francois Cartegnie +Date: Thu Jul 21 18:46:13 2022 +0200 + + demux: oggseek: remove bos optimization + + prevents blind seek to start of stream as granule is never read + + (cherry picked from commit cd79514d7bfe666f72b1e88777ed69612bc7aec7) + +commit 382cc2ee4bb12ad24d8bb95ef9ef251d74a71dbf +Author: Francois Cartegnie +Date: Mon Jul 11 10:23:16 2022 +0200 + + demux: ogg: rename ambiguous member + + (cherry picked from commit 125a46cc6c8c60a5923084b525b02b509e8a9d7f) + +commit 2e71199f6727e5c6e2f33a2a16d83341006b632b +Author: Francois Cartegnie +Date: Thu Jun 16 16:07:22 2022 +0200 + + demux: ogg: store length as microseconds + + (cherry picked from commit ac81e531acee716fa6f9a73f84b3af4573726003) + +commit ebfe150e1725cc1796b58ea46406e51632be23db +Author: Francois Cartegnie +Date: Thu Jun 16 16:03:26 2022 +0200 + + demux: ogg: limit indexes + + (cherry picked from commit fc94fb4e0b2bb52f2e0ad38ae27a6122cf651c74) + (cherry picked from commit 6a995af679cd9b5d144afe1096865fd29fe0b667) + +commit 031f1f498f7418d6fada888266f9bcac77d474af +Author: Francois Cartegnie +Date: Thu Jun 16 15:13:38 2022 +0200 + + demux: ogg: simplify index stuff + + (cherry picked from commit 9a42c5312ad6f9ae4634371017b042d53eec954e) + +commit 38fbf97ebde3d6ed8b90143f3ac568196dea944c +Author: Francois Cartegnie +Date: Wed Jun 15 21:49:46 2022 +0200 + + oggseek: remove unused members + + (cherry picked from commit 3783f868b9427a1e16fd0d61a293ffd49973ba51) + +commit 2146bad1cbc8ab8de7ea8c471fcfe28cee215488 +Author: Francois Cartegnie +Date: Wed Jun 15 10:06:41 2022 +0200 + + demux: ogg: fix bisect lowest bound/index result + + (cherry picked from commit f3228de74c45b54f3b76e41edbb3bcaa395b56ea) + +commit 28c8dece28316fa9c5d252ce93c007b6f952e0e3 +Author: Francois Cartegnie +Date: Wed Jun 15 13:57:44 2022 +0200 + + demux: ogg: set index on granule time instead of seek time + + (cherry picked from commit 22bd3d8beeb7f49e1fcbbf755078be10955eeea8) + +commit 704f40be73de1e3626b3897663cdafa11f6706f8 +Author: Johannes Kauffmann +Date: Sun Jul 17 22:15:58 2022 +0000 + + contrib: live555: remove unused patch + + The currently used live555 version already includes this patch. It + hasn't been applied since 8297724513df61423258c75d4b16a609a8a2eb2c. + + (cherry picked from commit d882aa8718586970f3fdb8f9ffefab823ea10682) + +commit af6a5e0c985dd40495a385e7397397fdcdcb775a +Author: Jean-Baptiste Kempf +Date: Sun May 8 22:06:20 2022 +0200 + + Contribs: update ssh2 to 1.10.0 + + See #26921 + + (cherry picked from commit aecaaec7fa874a2f3c76f4c99142b1bee4697bae) + Signed-off-by: Jean-Baptiste Kempf + +commit f036e74382c086ca37c112f29fffb098180b88e9 +Author: Tristan Matthews +Date: Mon Jun 27 18:19:14 2022 -0400 + + contrib: speexdsp: update to 1.2.1 + + (cherry picked from commit 989a6ac84a412e2cbda289a851876561544f028f) + Signed-off-by: Jean-Baptiste Kempf + +commit b101db1533b46757dd5f89ff159b6e180b99a53b +Author: Tristan Matthews +Date: Fri Jun 7 14:31:38 2019 -0400 + + contrib: update to SpeexDSP 1.2.0 + + (cherry picked from commit 01297f16723e0fa70778d4e7fca376a9c115195d) + Signed-off-by: Jean-Baptiste Kempf + +commit 0c1a0885133d702cbbfdf9737b93a4a66f04248f +Author: Tristan Matthews +Date: Mon Jun 27 18:17:56 2022 -0400 + + contrib: speex: update to 1.2.1 + + (cherry picked from commit 8ded42d7754161ea8968ff5659c12866ccd60024) + Signed-off-by: Jean-Baptiste Kempf + +commit c9ebb18bf533884eaa74677b525f690eb678fd55 +Author: Jean-Baptiste Kempf +Date: Sat Jun 11 17:59:53 2022 +0200 + + Contribs: update libarchive to 3.6.1 + + Multiple OOB-read, heap buffer overflow and user after frees + + (cherry picked from commit 8ba00fbeaa8d8338e6d66ed662f08709d11c5128) + Signed-off-by: Jean-Baptiste Kempf + +commit b9952013d2a5456076238bbd37c9adbc496e5186 +Author: Jean-Baptiste Kempf +Date: Sun Jul 17 10:37:42 2022 +0200 + + Contribs: update mpg123 to 1.30.1 + + (cherry picked from commit 3a1a8d1d2466007b3a7bcab2e96e907d03afb2f7) + Signed-off-by: Jean-Baptiste Kempf + +commit 97244141017e4f1cf8ee5f7943d571f4ee951c28 +Author: Sebastian Keller +Date: Fri Jun 10 17:48:39 2022 +0200 + + qt: unmap indirection X11 window before reparenting it back to root + + Reparenting a mapped window to root causes it to become a toplevel + window and can cause window managers to reparent the window themselves + to show their decorations. + + This could happen in two situations: + + 1. Theoretically it could happen briefly between WindowReleased and + WindowClose. + 2. It could trigger a race between VLC and the WM if there is a quick + sequence of WindowOpen -> WindowReleased -> WindowClose -> WindowOpen + such as when using single instance mode. If the X-server in this + situation happens to re-use the XID of the X11 indirection window + from the first WindowOpen for the second WindowOpen, this could + result in the following race: + - VLC creates a new X11 indirection window, reparents and maps it + - VLC reparents it to root + - VLC closes the connection, freeing the XID + - VLC opens a new connection + - VLC creates a new indirection window with the same XID as before + and reparents and maps it + - The X-server sends a MapRequest for the *first* X11 indirection + window caused by the reparent to root to the WM + - The WM sees a new toplevel window and reparents it. Because the XID + used by that reparent request is the same as of the newly created + indirection window, the new window ends up getting reparented. + This then would result in the indirection window remaining as + toplevel window. The exact order might change slightly between the + different processes, but as long as the reparent request by the WM is + the last one, the issue will trigger. + + Closes #25692 + +commit 06ae3cf5962550e916e694e42a28bdffbe5ac5a0 +Author: Jean-Baptiste Kempf +Date: Sun Jul 17 10:23:29 2022 +0200 + + Contribs: udpate GnuTLS to 3.6.16 + + (cherry picked from commit f133190aedd7d65d4d34534496a15c41115d10a0) + Signed-off-by: Thomas Guillem + +commit a07879c67f012eec0d8e0c589424371455f557ac +Author: Marvin Scholz +Date: Wed Feb 23 17:52:22 2022 +0100 + + contrib: update nettle to 3.7.3 + + (cherry picked from commit 263b3cbbf6c9dcb8978f355f5f28080525d6a856) + Signed-off-by: Thomas Guillem + +commit 05445b74a38d045cb28f71f96ccbe882445a031e +Author: Johannes Kauffmann +Date: Wed Jul 13 18:21:28 2022 +0000 + + access: live555: Adapt to 2020.12.11+ API changes + + Since live555 2020.12.11, the API has changed. This should fix builds + with the latest version while still allowing contribs to pass. + + Ref !1897. + Fixes #25473. + + Co-authored-by: Dominic Mayers + Co-authored-by: Pei Jia + (cherry picked from commit 70fedf2523a3ae5b3c41234f0bf37cd6e57e01a6) + +commit e41f0913ef155072a35d87d4c6b3eb6a1270e835 +Author: Tun Fenng +Date: Fri May 13 00:59:01 2022 +0000 + + mux: avi: fix HDRL length + + AVI files recorded by vlc cannot be played in Windows Media Player + because the HDRL length is calculated by 4 bytes more. + + Signed-off-by: Rémi Denis-Courmont + (cherry picked from commit 0e1fbc77fe55dd763d5a7767b09e596c5a7d7989) + +commit 8761dbe132bcd6f8b4bc9a5c29672f9937eeedae +Author: Thomas Guillem +Date: Tue Jul 5 15:10:40 2022 +0200 + + Revert "smb2: fix anonymous login" + + This reverts commit 205963ad09401ab3cbe5bf92c7f9b109092f87f4. + + According to git blame on libsmb2, anonymous login was always enabled + with a NULL password. + + I don't know what happened when I tested this reverted commit, I may + have mix up VLC or/and smb/smb2/dsm builds. + + For future reference, see libsmb2/lib/ntlmssp.c: + ... + encode_ntlm_auth(...) + { + ... + if (auth_data->password == NULL) { + anonymous = 1; + goto encode; + } + ... + } + + Fixes #27113 + +commit 1584eaa5b4389adbb3b53a81977650171cada3b8 +Author: Maxime Chapelet +Date: Thu Jun 30 09:26:52 2022 +0200 + + vout ios : use the mouse-events var to activate tap gestures driven mouse events + + backport !2167 + +commit 3a8e8002d371d31f694a79d616d25132ac614228 +Author: Francois Cartegnie +Date: Thu Jun 30 11:52:31 2022 +0200 + + demux: flac: simplify condition + + (cherry picked from commit 61a05c739b2b4ccc4a4515269ec65207ed03acbe) + +commit 719e63f613e74eb1d4f96008a85073bd61bdbd1c +Author: Francois Cartegnie +Date: Thu Jun 30 14:03:09 2022 +0200 + + packetizer: flac: fix leak on error + + (cherry picked from commit 5a3b687bf165656a6697b053d3499f7376d61ec8) + +commit 47243c4a85d0cc0a8ff5a54f775e314c71fa7199 +Author: Francois Cartegnie +Date: Mon Apr 27 19:23:49 2020 +0200 + + packetizer: flac: allow to parse smaller than max header sized blocks + + (cherry picked from commit 0337ab24f41197f9ab5b7c7e8fe4c4b248e23609) + +commit dcce8e52b9ef4584e7db289b4f397ff2c3bcf6bf +Author: Thomas Guillem +Date: Tue Jun 28 15:13:51 2022 +0200 + + ci_filters: add P010 support + + CI filters don't work directly with P010, but the module will use a + P010->RGBA GPU converter automatically. + + Fixes #27100 + + (cherry picked from commit 08894288cd66f09aaf621b03c467bdc97b80c80b) + Signed-off-by: Thomas Guillem + +commit 98ccd7a722f9db0493ee0557b90be0318ff585b4 +Author: Hugo Beauzée-Luyssen +Date: Thu Jun 30 09:47:06 2022 +0200 + + modules: Fix leak on error path + +commit bdeae9ac5eb9b1fb6ab6703b35c16870886cc0e1 +Author: Steve Lhomme +Date: Tue Jun 21 16:22:52 2022 +0200 + + doc: libvlc: add the CMakeLists.txt to the tarball + + (cherry picked from commit 090b5ee9d29cbb55fd9d4d4e34c8bc33b1513d7c) + + Signed-off-by: Steve Lhomme + +commit 9deff7e00d1633dd877a38de8b887f21b7f055e1 +Author: Steve Lhomme +Date: Thu Jul 2 10:33:03 2020 +0200 + + doc: add the libvlc set_hwnd sample code + + (cherry picked from commit 1c4ec06836a7002ac9378a1d45fefc48711c0572) (rebased) + rebased: + - 3.0 doesn't d3d callback examples + + Signed-off-by: Steve Lhomme + +commit 797db11c29af7a4805353adf6c74d8b5c1439b68 +Author: Steve Lhomme +Date: Tue Jun 21 15:50:55 2022 +0200 + + doc: libvlc: fix MSVC build + + `ssize_t` doesn't exist in MSVC and is not used in included headers on 4.0. + +commit 214a24cc6bdfa4a8059f288663ee81fb799b69e1 +Author: Steve Lhomme +Date: Mon Feb 28 15:32:22 2022 +0100 + + doc: libvlc: add a CMake makefile to build the win32 samples + + CMake has good integration with VSCode which makes it as easy as just loading + the folder in VSCode, set the SDK folder and build. + + (cherry picked from commit e70bb0163093c2f7d846de902f0dad8591c40823) (edited) + edited: + - 3.0 doesn't d3d callback examples + + Signed-off-by: Steve Lhomme + +commit 58a4b93a02f17aebb4c47a795a440208ba919628 +Author: Steve Lhomme +Date: Tue Mar 1 14:37:05 2022 +0100 + + doc: libvlc: fix type casting + + (cherry picked from commit db6ad1bc86580290eb27013e126b3e031d3aa5df) (edited) + edited: + - 3.0 doesn't d3d callback examples + + Signed-off-by: Steve Lhomme + +commit da51e70eb556236f9dc614ee5fdf1027a573e85c +Author: Steve Lhomme +Date: Mon Feb 28 15:02:59 2022 +0100 + + doc: libvlc: use _strdup() on Windows samples + + strdup() is issuing a deprecated warning with the MS SDK. + + (cherry picked from commit 4bad605e3b98ea48a91d422775ee2bb3500593cc) (edited) + edited: + - 3.0 doesn't d3d callback examples + + Signed-off-by: Steve Lhomme + +commit be49e6646a4a6a35c6a079fa1012029446cb3bd1 +Author: Steve Lhomme +Date: Mon Oct 12 11:37:23 2020 +0200 + + doc: win32: handle 'a' keyboard key to change the aspect ratio in sample apps + + Use the same shortcuts and values as in VLC. + + (cherry picked from commit 7d00336823c380b89bd8a95e7c953a3b7526d2ed) (edited) + edited: + - 3.0 doesn't d3d callback examples + + Signed-off-by: Steve Lhomme + +commit 2f111e0244d1278c460ef9205305f6b6bc1df219 +Author: Steve Lhomme +Date: Thu Jul 2 11:36:10 2020 +0200 + + doc: libvlc: add drag and drop support to the basic set_hwnd sample app + + (cherry picked from commit e44940dd92337df4c8a33b91b97a7e54121347f3) (edited) + edited: + - in 3.0 libvlc_media_player_stop_async() doesn't exist + + Signed-off-by: Steve Lhomme + +commit 3e6cf18f1e2dd4d69fc2a3095e1d7b475c2a9b0e +Author: Steve Lhomme +Date: Tue May 5 15:27:41 2020 +0200 + + doc: libvlc: add a simple win32 app using set_hwnd() + + (cherry picked from commit 4a91e760ae232de0eb58cf4fe1c380bf61aa981a) (edited) + edited: + - in 3.0 libvlc_media_player_stop_async() doesn't exist + + Signed-off-by: Steve Lhomme + +commit c4150b4d03467d336aa7590efd501bee51d7042e +Author: Martin Storsjö +Date: Thu Jun 23 10:51:58 2022 +0300 + + contrib: qt: Backport a patch to fix compiling with latest libc++ + + The class std::unary_function was deprecated in C++11 and is removed + in C++17. The latest libc++ has caught up with this and now hides + this class when building in C++17 or C++20 mode. + + Backport a patch from Qt v5.11.1 that removes usage of this class. + +commit 3b3cb6287c9b9f06cc73b58b276fabaff7bde4e8 +Author: Felix Paul Kühne +Date: Sat Jun 25 09:42:39 2022 +0200 + + CI: use monterey builder for macOS-arm64 + + This updates the tag for CI jobs for macOS to match the current + infrastructure as there are no catalina builders left. + + This change does not update the used SDK or Xcode version, it just + reflects the change of tag names. + +commit 327a9cf0300232d298be89887fa321b883f27a67 +Author: Rémi Denis-Courmont +Date: Tue Jun 21 20:14:50 2022 +0300 + + qt: do not normally reparent the video + + When the video window is closed normally, there are no needs to + reparent it. In this case, we can retain the pre-3.0.13 behaviour + whence we simply close the video window as a children of the Qt UI. + + This fixes a transient visual glitch when stopping playback or + disabling the video track. This also saves one full round-trip through + the X server at that time as XSync(). + +commit 958be95e2aeaefa9127f15e8d4d90dacca36a06d +Author: Rémi Denis-Courmont +Date: Tue Jun 21 20:11:40 2022 +0300 + + qt: add flag to orphan the video + + The video widget is normally released when the window provider is + closed. But it can also be released when the main UI is closed, even + though the window provider is still active. + +commit 8924d194809c4d8def87ab85399648357acb6e2c +Author: Rémi Denis-Courmont +Date: Tue Jun 21 19:45:21 2022 +0300 + + qt: remove write-only field + +commit 68e5d977277f874861916286b4dcc58535a9f7a0 +Author: Thomas Guillem +Date: Fri Jun 3 07:59:58 2022 +0200 + + smb2: explicitly handle -EINTR + + Even if it is redundant with vlc_killed() (but not all APIs return + -EINTR when killed). + + (cherry picked from commit 797e1f3b979fca463030608db1513a81228c624c) + Signed-off-by: Thomas Guillem + +commit 20374d30a1331b6224f8ab6f49212ff87b10c05c +Author: Thomas Guillem +Date: Fri Jun 3 07:59:10 2022 +0200 + + smb2: handle vlc_smb2_resolve interruption + + (cherry picked from commit fea7a18a91cee9edaf629589980bff5ea0192573) + Signed-off-by: Thomas Guillem + +commit 9c3dacd9e9f052dbe6e8a062f5d8ef3eb271756f +Author: Thomas Guillem +Date: Fri Jun 3 07:56:18 2022 +0200 + + smb2: vlc_smb2_resolve: return -EINTR when interrupted + + (cherry picked from commit bb33734cdf2a0f1f5ea19e42b6596208395ea1f3) + Signed-off-by: Thomas Guillem + +commit a2d420086f222af524d2b39f0c660a689af0c6e9 +Author: Thomas Guillem +Date: Fri Jun 3 08:06:24 2022 +0200 + + smb2: forward the vlc_interrupt_unregister() return value + + (cherry picked from commit 99a4deaf06ae57383fc887ec976f1e510aef6978) + Signed-off-by: Thomas Guillem + +commit f7ff0361992a4c0a83e3ca8331ff94cc3ea0fe96 +Author: Thomas Guillem +Date: Fri Jun 3 07:53:36 2022 +0200 + + smb2: vlc_smb2_resolve: return an error code + + (cherry picked from commit cbf16982cfa4457bd2f319e5d399e0455c512a16) + Signed-off-by: Thomas Guillem + +commit 6136d0e59afbedb5602005c4f455adfd540c2e40 +Author: Thomas Guillem +Date: Thu Jun 2 07:14:10 2022 +0200 + + contrib: libdsm: update to 0.4.3 + + Fix connect() not interruptible on Linux. + + Fixes #27027 + + (cherry picked from commit 7ea6ce343341a4170234364f80987bbd7f64d005) + Signed-off-by: Thomas Guillem + +commit 0a9127646d297337d9ec04d7b77c19cdb421877c +Author: Thomas Guillem +Date: Wed Jun 1 16:43:33 2022 +0200 + + dsm: abort if netbios_ns_inverse is interrupted + + (cherry picked from commit 30eb1b27cde532d8c9ab6dee2f4cc6cdd1cdcf41) + Signed-off-by: Thomas Guillem + +commit f026d55f3cc008c43a60b78a74f0cae33028b0bc +Author: Thomas Guillem +Date: Fri Jun 3 08:18:51 2022 +0200 + + dsm: handle missing smb_session interruptions + + (cherry picked from commit bdc351dfe5df180dcacda06e54527f9c8d04226d) + Signed-off-by: Thomas Guillem + +commit e85012d051b957dda85abd0ebafde52f5094bc49 +Author: Thomas Guillem +Date: Fri Jun 3 08:09:46 2022 +0200 + + dsm: forward the vlc_interrupt_unregister() return value + + (cherry picked from commit 26af61217bf0d8cd85aa811a98ec403a0951a29c) + Signed-off-by: Thomas Guillem + +commit 8e5e07661fe5baab92d97230b8226ba47ef3540d +Author: Rémi Denis-Courmont +Date: Fri Jun 17 18:29:44 2022 +0300 + + Bump SO revisions + + As per the built-in release how-to. + +commit d68b590f6735436e54ab717e7b47de881bdacb2b +Author: Eugene Popov +Date: Mon Jun 13 23:33:31 2022 +0300 + + Fix the playback bar is not aligned to the bottom in the FSM on Linux + + The reason why the playback panel is not aligned to the bottom in fullscreen mode on Linux is because the desktop environment panels (like taskbar, topbar, etc.) set `struts` that limit the area over which the top-level window can be moved programmatically. To get around this, we need to tell the window to ignore window manager hints (by setting the Qt::X11BypassWindowManagerHint flag) and manually limit its movement. + + BUG: 22563 + +commit e0a99d6364f4a0e57cdbd81a71c9fa04f052a260 +Author: Alaric Senat +Date: Tue May 17 16:01:30 2022 +0200 + + contrib: upnp: disable webserver and device handling + + VLC 3.0 uses libupnp exclusively as a client. LibUpnp internals are + quite opaque and it has been observed that a webserver thread is still + running on idle with open sockets even if the library is used as a + client only. + + The recent bump to 1.14 introduces regressions in libupnp's webserver + socket initialization [1] on windows. Since the bug is still not + corrected upstream and we don't have any use of the webserver for 3.0 + anyway, let's just disable it. + + [1] https://github.com/pupnp/pupnp/issues/195 + + Fixes videolan/vlc#27001 + +commit 39638035876cdd254c6dab8c4989cc3e73b1054e +Author: Romain Roffé +Date: Thu Jun 2 10:07:20 2022 +0200 + + package/macosx: Fix plugin installation + + Backported from VLC 4 (RTP plugin weren't included). + + (cherry picked from commit b4d191ddbcaa7031547dcabad2fe589e35defc12) + +commit 095bfffb29fbe0fa4cb0542f3654139738df6c88 +Author: Pierre Lamot +Date: Fri May 29 10:22:47 2020 +0200 + + smb2: support browsing files when running on a non standard port + + (cherry picked from commit b967d0a028f138c8d10aa7b0ce8d865691b6855e) + +commit 0ab339eae8437b60c78ca3b61dd9801caa1b0870 +Author: Pierre Lamot +Date: Thu May 28 15:34:56 2020 +0200 + + smb2: build smb2 urls using memstream rather than complex printf construct + + (cherry picked from commit 9775ae34a9a44156b7de21d98f3662381c22df47) + +commit 0f7d74a4ac554aa4c6ce68dac83b678b840d5c06 +Author: Jean-Baptiste Kempf +Date: Tue Jun 7 17:57:53 2022 +0200 + + Update NEWS for 3.0.18 + +commit 34d3341b7998f6c72e4bb6b2f4b86fbdb8a24c18 +Author: Rémi Denis-Courmont +Date: Sat Jun 4 15:07:58 2022 +0300 + + vdpau/display: fix SPU blending offsets + + (cherry picked from commit 329bd3c8a3d73b77263b5d98e4e0d2a9e3f9e638) + +commit b82adb0506d549d5824395e293b76484b396e5a1 +Author: Rémi Denis-Courmont +Date: Wed Jun 1 18:15:20 2022 +0300 + + wall: fix non-first abscissa of non-8-bit samples + + The X and Y values are pixel coordinates in the potentially subsampled + plane resolution. This must be converted to an octet offset as the type + of the pixel plane pointer is pointer-to-uint8_t. + + So the X value must be multiplied by the sample size. The current code + was instead rounding the value down to a multiple of the sample size. + + Bug reported by Philipp Marek on IRC. + + (cherry picked from commit 87733c5011912e3f46e48948b0fe116b72bfa83f) + +commit ac99644169fec8213b6f0395807be2f76dd36106 +Author: Jean-Baptiste Kempf +Date: Thu May 26 19:25:39 2022 +0200 + + Contribs: update libxml2 to 2.9.14 + + Fixes notably: + CVE-2018-9251 CVE-2018-14567 CVE-2018-14404 + CVE-2021-3541 CVE-2022-23308 CVE-2022-29824 + + And move to the official Gnome Infrastructure + + (cherry picked from commit 471fd489f3f38c04b131689933d3e7129e5d274a) + Signed-off-by: Jean-Baptiste Kempf + +commit 6fe773f8a7d69fc265f1bd1dab96b6c34ce9f8cc +Author: Jean-Baptiste Kempf +Date: Thu May 26 15:33:24 2022 +0200 + + Contribs: update dvdread to 6.1.3 + + (cherry picked from commit 7cb4924ed9061d3e92af0d2d5d3ed14ed3c4d573) + Signed-off-by: Jean-Baptiste Kempf + +commit e281e5ac20c72c4b336e58fd7a1b478db1306b44 +Author: Jean-Baptiste Kempf +Date: Thu May 26 18:24:49 2022 +0200 + + Contribs: update harfbuzz to 3.4.0 + + The next release, 4.0, is a massive API change + + (cherry picked from commit 6e3bfdbf1157133dc41ebcdb65d9d7b56e182ec2) + Signed-off-by: Jean-Baptiste Kempf + +commit d4239318517901f5fa0bdacbb5b818bcd44ffbf5 +Author: Hugo Beauzée-Luyssen +Date: Wed Jan 19 14:32:35 2022 +0100 + + contribs: harfbuzz: Disable some unneeded components + + (cherry picked from commit 02eb6943cb8c8b548fcb93be050be07925b5b960) + Signed-off-by: Jean-Baptiste Kempf + +commit 18b76d896ccf50bc76cef9920d6386eb51583c9d +Author: Hugo Beauzée-Luyssen +Date: Wed Jan 19 09:47:51 2022 +0100 + + contribs: harfbuzz: Switch to meson + + (cherry picked from commit 6d6330303d198b46b9344b87ad9d899610a9f199) + Signed-off-by: Jean-Baptiste Kempf + +commit 5305f19d3861480cc8aa7795613552671c46d678 +Author: Hugo Beauzée-Luyssen +Date: Wed Jan 19 09:34:33 2022 +0100 + + contrib: Bump harfbuzz to 3.2.0 + + (cherry picked from commit fa081b46cd8d0db0e8b784f4999d75fab90b0559) + Signed-off-by: Jean-Baptiste Kempf + +commit 4042eb23064e396000b8ac14af867e96345436d5 +Author: Martin Storsjö +Date: Wed Jul 7 12:49:20 2021 +0300 + + contrib: harfbuzz: Reapply fix for building with Clang 13 + + The previous fix was dropped in 233747ab4c59338b48a986f174a0555b7923cd57 + when updating harfbuzz. The previous (local) patch for fixing the matter + didn't fit without conflicts - instead of updating that patch, backport + the upstream fix (removing the unused variable - our previous fix was to + remove -Werror for -Wunused). + + (cherry picked from commit 3d38357a4bc65bb7b234866af4a93dda51b8d7e2) + Signed-off-by: Jean-Baptiste Kempf + +commit 0a56d0839faf9b873c016cafd262c087e1ff325e +Author: Jean-Baptiste Kempf +Date: Sat Jul 3 13:58:01 2021 +0200 + + Contribs: update harfbuzz to 2.7.4 + + (cherry picked from commit 233747ab4c59338b48a986f174a0555b7923cd57) + Signed-off-by: Jean-Baptiste Kempf + +commit 821ab225783efbe84d2e2b33fbd1333e008b903d +Author: Jean-Baptiste Kempf +Date: Thu May 26 18:18:41 2022 +0200 + + Contribs: update Freetype to 2.12.1 + + (cherry picked from commit 8b041de7ddf03f7342f159b4333fae48272d9aa4) + Signed-off-by: Jean-Baptiste Kempf + +commit 1dbd441161c3b2f10f15bebf4296bd7389fd1da1 +Author: Jean-Baptiste Kempf +Date: Thu May 26 18:20:39 2022 +0200 + + Contribs: update fribidi to 1.0.12 + + Fuzzing fixes... + + (cherry picked from commit d6294b20cfafb070fcfa9663c3d3184d44994f50) + Signed-off-by: Jean-Baptiste Kempf + +commit 47776b7ff15195915eddf52fd28e4f0d25a987d1 +Author: Marvin Scholz +Date: Sat May 28 22:28:19 2022 +0200 + + codec: videotoolbox: handle kVTVideoDecoderReferenceMissingErr + + The kVTVideoDecoderReferenceMissingErr error is not a critical one, + but without it being handled here, it would lead to aborting with + VideoToolbox and falling back to Software. + + Reproduced this with a sample provided by zhilizhao(赵志立), + related to !1790. + + I assume that before this error code was introduced in macOS 12/iOS 15, + VT did just return the NULL image buffer with a success status code, + leading to the issue seen in !1790. + + (cherry picked from commit f7434e60fc38e78b9356600d1452e850eb5ec2d9) + Signed-off-by: Marvin Scholz + +commit 21952d524f25504d10f43089058a0ddf8ec9e67c +Author: Marvin Scholz +Date: Thu Apr 7 23:11:47 2022 +0200 + + ftp: properly parse MLST facts + + Fix #26046 + + (cherry picked from commit c8713775c899ac4704e697021a0d6fb117fe4b54) + Signed-off-by: Marvin Scholz + +commit dd4d83b9605c42f58dfb50dce100e721e958a1e7 +Author: Jean-Baptiste Kempf +Date: Sat May 28 16:02:19 2022 +0200 + + Revert "configure: rectify minimum libdvdnav version" + + This reverts commit 794d986264f6f98107abf1d8569208d2360b299e. + +commit 272dbce8e36cd7eb122001a7592fd44573e48e80 +Author: Rémi Denis-Courmont +Date: Sat Jan 29 16:38:35 2022 +0200 + + cpu: compile-time RISC-V FPU detection + + (cherry picked from commit 96ae63596e4715259e607d3f88f005f0128cb5e3) + +commit 9e07e155a93d53478098e00af963f85206bdc617 +Author: Rémi Denis-Courmont +Date: Wed Jan 26 17:52:15 2022 +0200 + + linux: use futex_time64 where applicable + + This adds support for 32-bit RISC-V, which only supports 64-bit time_t, + and thus lacks a plain futex system call. This also adds (future) + support for building with a 64-bit time_t ABI on a 32-bit platform. + + (cherry picked from commit 949fb1d03d57d18009e20bb821f9d3e70db17ab8) + +commit 1f523e7d9f228027dbd60bee0be6e7511dacfffe +Author: Rémi Denis-Courmont +Date: Thu May 26 10:27:38 2022 +0300 + + linux: include + + Needed for following backport. + +commit d82e6673f6210cde726310e976b16744eb8f584c +Author: Rémi Denis-Courmont +Date: Sat Jan 22 13:09:57 2022 +0200 + + contrib: check for FPU on RISC-V + + (cherry picked from commit e0c0e00927ca65f1f4ed7edddf312a58d2bbac94) + +commit 57f68f4a2fa2a05c17c66b0caabcf2a233e94127 +Author: Rémi Denis-Courmont +Date: Tue Jan 18 23:01:49 2022 +0200 + + contrib: postproc: add RISC-V + + (cherry picked from commit 197442ca280865815d3b55882bd3813fbdc8753f) + +commit e9bc5aea5eb0362e3d730cb9ece475e6a43f3471 +Author: Rémi Denis-Courmont +Date: Tue Jan 18 23:00:54 2022 +0200 + + contrib: ffmpeg: add RISC-V + + Note that a newer version of FFmpeg is necessary to get actual + platform-specific acceleration. This merely allows plain C build. + + (cherry picked from commit 13bfd3b4b89d89bd323a64b2fcb798e511d8f01c) + +commit 22f6fdb9d4a754aa93fd610ea3c4f41ca5e1f990 +Author: Jean-Baptiste Kempf +Date: Tue May 24 20:00:08 2022 +0200 + + Contribs: update zlib to 1.2.12 + + Close #26774 + + (cherry picked from commit ff7ab55ff1688c018077f230a471d9332514d523) + Signed-off-by: Jean-Baptiste Kempf + +commit cec83d0bc7a481762a88e6a6cd1629d7a5a1bdef +Author: Alexandre Janniaux +Date: Sat Nov 13 18:20:07 2021 +0100 + + caca: update contrib to 0.99.beta20 + + The new contrib fixes a bunch of reported CVE: + + CVE-2021-30498 (tga export, not concerned) + CVE-2021-30499 (troff export, not concerned) + CVE-2021-3410 (canvas.c, v0.99.beta19) + CVE-2018-20546 (dither.c, v0.99.beta19) + CVE-2018-20547 (dither.c, v0.99.beta19) + CVE-2018-20545 (load_image, v0.99.beta19) + CVE-2018-20548 (load_image, v0.99.beta19) + CVE-2018-20549 (caca_file_read, 0.99.beta19, not concerned) + + See release note[^1] on the github project. + + It also allow to migrate the use of the new API instead of libcucul, + which has been merged into libcaca since 0.99.beta15: + + commit f61816ceb7445f8bf818936151554ac060764b39 + Author: Sam Hocevar + Date: Sat Sep 27 13:12:46 2008 +0000 + + Starting refactoring to get rid of libcucul. The initial reason for the + split is rendered moot by the plugin system: when enabled, binaries do + not link directly with libX11 or libGL. I hope this is a step towards + more consisteny and clarity. + + It was then completely wiped out by the following commit, which is part + of v0.99.beta20: + + commit 5f0ec215f8c9915ed028324a8ecac8212f68e18d + Author: Sam Hocevar + Date: Thu May 3 10:33:30 2018 +0200 + + Remove legacy code from 10 years ago. + + Check NEWS for details: + + \section news0_99_beta15 Changes between 0.99.beta15 and 0.99.beta14 + + - libcucul was merged back into libcaca for more clarity + + [^1]: https://github.com/cacalabs/libcaca/releases/tag/v0.99.beta20 + + (cherry picked from commit 2d5974555729b0915e9280e822cf66c2dd3304f8) + Signed-off-by: Jean-Baptiste Kempf + +commit 649fb5fd0964cabd7a101231458ae09530129af1 +Author: Thomas Guillem +Date: Wed Oct 9 09:11:16 2019 +0200 + + contrib: caca: fix missing libs when linking + + On linux, -lslang was not added on LDLIB + + Fixes #17251 + + (cherry picked from commit 47b1670197fd74473ed31048529c4567ef0a27ce) + Signed-off-by: Jean-Baptiste Kempf + +commit 248ddd7e561378357781977867adf1ebe4e24ba4 +Author: Thomas Guillem +Date: Wed Oct 9 08:59:55 2019 +0200 + + contrib: caca: call pkg_static + + This fixes -lz that is not added in ldlib on linux. + + Refs #17251 + + (cherry picked from commit a6534de9f64ae8801c14c6472a22006cf6e22946) + Signed-off-by: Jean-Baptiste Kempf + +commit 4e28a05f2b66404bc7c9bf35e2764fb587d5651e +Author: Rémi Denis-Courmont +Date: Tue Oct 8 20:36:29 2019 +0300 + + contrib: caca: disable ncurses on Linux + + It does not compile. + + Signed-off-by: Thomas Guillem + (cherry picked from commit 7330c600b04894a23c031f3850ee27103f7dd550) + Signed-off-by: Jean-Baptiste Kempf + +commit bb9786f2b48e1087b59730e6ab4002d2818da6d7 +Author: Rémi Denis-Courmont +Date: Tue Oct 8 20:36:28 2019 +0300 + + contrib: coloured ASCII art: disable GL support + + Otherwise it is autodetected, which leads to nonreproducible builds: + depending if GLUT is available or not, OpenGL is enabled or not. + + This also might fix #20543 (cannot be verified due to #17251). + + Signed-off-by: Thomas Guillem + (cherry picked from commit 33e119bf9fd223ca3f8bf1f4790d2a8f83be08a3) + Signed-off-by: Jean-Baptiste Kempf + +commit a53365101e1330d7400fda1c68852d92172e8f33 +Author: Steve Lhomme +Date: Wed May 16 16:58:55 2018 +0200 + + contrib: caca: fix ln -s calls on Windows + + autoconf detects what the system should use to link files + + (cherry picked from commit 85e51c1c769f46faa7e5ddb0ce332c8e85056cfb) + Signed-off-by: Jean-Baptiste Kempf + +commit da98390d8569b985ab830e7d14cf1036d28c6ce3 +Author: Steve Lhomme +Date: Fri Oct 28 09:54:08 2016 +0200 + + contrib: caca: build without ncurses on Windows + + That's what the bot does and it fails otherwise. + + (cherry picked from commit 2ab65c0a35b8023a9b293241561f36c67140bbf5) + Signed-off-by: Jean-Baptiste Kempf + +commit b689202d9f1621e82acb0976b6bb31455735a535 +Author: Jean-Baptiste Kempf +Date: Thu May 26 16:52:11 2022 +0200 + + caca: fix to newer version + + Manual backport of 2c7b5e004f1a968077973b4105d7d65dca7539e9 + +commit a11c2e35d2efbf395fed71fc085a1182067ffc48 +Author: Jean-Baptiste Kempf +Date: Thu May 26 10:15:21 2022 +0200 + + DVDNAV: provide a compatibility Macro for older releases + + Close #26479 + +commit df371fc20a7847f59433af1876dcb39d59042bc8 +Author: Mehdi Sabwat +Date: Wed Apr 13 10:56:02 2022 +0200 + + contrib: disable ubsan in gme + + ubsan is enabled in the contrib recipe : + https://bitbucket.org/mpyne/game-music-emu/src/b3d158a30492181fd7c38ef795c8d4dcfd77eaa9/CMakeLists.txt#lines-67 + + This will require vlc to be always built with ubsan and we don't want this in production. + + (cherry picked from commit 2355d2cf3fd5d858e47c11191cf125f0e25fa21f) + Signed-off-by: Jean-Baptiste Kempf + +commit c430af92845c83d9236ca52d5405e199a15cdec7 +Author: Alexandre Janniaux +Date: Mon Apr 11 10:26:01 2022 +0200 + + contrib: bump game-music-emu to 0.6.3 + + (cherry picked from commit bd03115677c3352b4bd0e7977926d18e2fd240a8) + Signed-off-by: Jean-Baptiste Kempf + +commit 5124982e850bb7ec54b40ad4f099407f7de70201 +Author: Hugo Beauzée-Luyssen +Date: Wed Feb 16 10:30:43 2022 +0100 + + contrib: gme: Allow make to communicate with jobserver + + (cherry picked from commit 04170339b27b6327a735d73f664c0bdffd13cdec) + Signed-off-by: Jean-Baptiste Kempf + +commit 6cf94188f8c9ed1bffee19766f84d7537220cae5 +Author: Jean-Baptiste Kempf +Date: Tue May 24 23:05:01 2022 +0200 + + Update NEWS for 3.0.18 + +commit bddfcc9a582573c89025e6e048461ae62d2a14e9 +Author: Francois Cartegnie +Date: Fri May 20 15:04:36 2022 +0200 + + demux: ogg: fix non fastseek lookup issues with small files + + (cherry picked from commit 9a0b28b1894f60c81d3abfd52babd40f4dec21b9) + +commit 865099e2baa8655afaeab582df7b01d0f686e809 +Author: Francois Cartegnie +Date: Mon May 23 10:20:06 2022 +0200 + + osd: epg: fix null deref on missing next event + + refs #26905 + + (cherry picked from commit 1c3fc96a3446d26879cfc190100a0c87fc954dbc) + +commit a13156775c65a0a6faf9dde8cd1abe6a040f7937 +Author: Hugo Beauzée-Luyssen +Date: Mon Mar 28 08:58:30 2022 +0200 + + contrib: Bump faad2 to 2.10.0 + + (cherry picked from commit e2988d70a8c3ce61b1cdb13b983f73afc1a74c1d) + Signed-off-by: Jean-Baptiste Kempf + +commit f9f802a4d6a9391df4d0e4dbcdffbd575a01e5e8 +Author: Steve Lhomme +Date: Mon May 23 11:34:15 2022 +0200 + + demux: mkv: allow reading v3 and v4 files + + There's no requirement in v3 and v4 that we don't support. + v5 doesn't exist yet. + + Ref. #26999 + + (cherry picked from commit 6fd29e31d7b7166411fa11b2b84d1a865cc4ee3d) + + Signed-off-by: Steve Lhomme + +commit 902842750b287847ba7b675d10176dd48de2bf35 +Author: Steve Lhomme +Date: Tue May 17 14:41:15 2022 +0200 + + direct3d9: fix the texture stretching + + The destination texture (sys->sceneTexture) has the visible dimensions, not the + decoder dimensions. + + Factorize the size processing for the stretching and the vertex computing. + + Ref. https://forum.videolan.org/viewtopic.php?f=14&t=159861 + + (cherry picked from commit 86846565053ae759cf0215d0670d5e603aee2de5) (edited) + - 3.0 is based on the rectangles computed in the common code + + Signed-off-by: Steve Lhomme + +commit 20e6ea23d49ffa061e4a10f53153d8404e3f032c +Author: Steve Lhomme +Date: Wed Apr 17 13:29:53 2019 +0200 + + direct3d9: create the scene texture with the visible size + + We will never copy more than the visible area (plus one if the source is an + odd dimension). + + (cherry picked from commit 70a2dab831b9e40d3612c16b206b11f98eedaf00) (edited) + - 3.0 is based on the rectangles computed in the common code + + Signed-off-by: Steve Lhomme + +commit b6f79ee6dfbeb4d8814077ec65419a6a578d653a +Author: Steve Lhomme +Date: Wed Apr 17 13:27:43 2019 +0200 + + direct3d9: renaming and cleaning + + (cherry picked from commit d7e9562be34d10cf0f91e363b423d0447ff49f36) (edited) + edited: + - 3.0 is based on the rectangles computed in the common code + + Signed-off-by: Steve Lhomme + +commit 6c5ed18a6bb06cc55afe0eaa7e2134fb090bf5d5 +Author: Rémi Denis-Courmont +Date: Tue May 17 17:35:36 2022 +0300 + + configure: do not force AltiVec on everything + + Fixes Debian #842513. + + (cherry picked from commit 5a236388dea5f9e95f95204829050e89318e1d9c) + +commit 78e41c72eb8c7021827a6088169a4ec205ac3583 +Author: Rémi Denis-Courmont +Date: Tue May 17 17:34:10 2022 +0300 + + deinterlace: move CFLAGS to Makefile + + (cherry picked from commit bcbbefbf9d5000a1e44ec22c902d3919b851ead3) + +commit 902c846bf96a2ae0b410aeb291aef9d769047f56 +Author: Rémi Denis-Courmont +Date: Tue May 17 17:30:15 2022 +0300 + + deinterlace: use VLC_ALTIVEC + + (cherry picked from commit 04cfde414e5db145449b732912ec40006c5f44a4) + +commit 4dca3df34e2f82bff605fd7c2924479d0bc553fd +Author: Rémi Denis-Courmont +Date: Tue May 17 17:28:06 2022 +0300 + + configure: remove unused ALTIVEC_CFLAGS + + (cherry picked from commit 5b7b2ff84285320c864d67c0ea27ba091993c789) + +commit cb863f0796a8f487625e8f38c8d09659dcf0fe9a +Author: Rémi Denis-Courmont +Date: Tue May 17 17:24:52 2022 +0300 + + i420_yuy2: use VLC_ALTIVEC + + (cherry picked from commit 03d8a050e0b2dbb7bdfc65d1daadba6e6a79661c) + +commit d9028ba4609314fdcefcb7efcf68eb60d211387c +Author: Rémi Denis-Courmont +Date: Tue May 17 17:09:19 2022 +0300 + + configure: do not enable AltiVec in libvlccore + + This was added ostensibly to fix compilation of the run-time AltiVec + test which was removed in bc146294cfeabde3a0c919883931c17e7c36630d. + Unfortunately, it causes the compiler to emit AltiVec instructions, + such that the executable crashes if AltiVec is not available. + + Regression from e48d61955575634ef0324158cac88353e97d50b8. + + (cherry picked from commit 4af9c85184549d7d21304ae2a76dd5891acda419) + +commit dfc27e4f69b93641f73bb01caa614e7f958d1d9f +Author: Rémi Denis-Courmont +Date: Thu May 19 22:18:47 2022 +0300 + + cpu: use VLC_ALTIVEC + + In a very broad sense, this is a substitute for + 8cbec77763d30ba2f1d3eb42c5665b86a18cf438 from master, but the two + changes are completely different. + +commit 47fb9426487aa6c9b16f297bd3d281715b231068 +Author: Rémi Denis-Courmont +Date: Tue May 17 17:22:34 2022 +0300 + + cpu: define VLC_ALTIVEC attribute macro + + Like on x86 (e.g. VLC_SSE), this macro enables the use of AltiVec for + just a given function. Thus the other functions in the same C module + can be compiled without AltiVec and run on non-AltiVec processors. + + (cherry picked from commit cb303e77f427c81e9644c12411a5908955181e55) + +commit 3af4cf5cf4322b14d4c3e1995bb747242054b20f +Author: Thomas Guillem +Date: Fri May 20 08:25:59 2022 +0200 + + core: module: add missing Mono option in "stereo_mode" + +commit 05e7b8b5ead4899e3294c3bcdd7d83e2e6ac08df +Author: Steve Lhomme +Date: Fri May 13 10:31:27 2022 +0200 + + contrib: ass: only request directwrite when explicitely set + + (cherry picked from commit 1438a950f7271091123c609dcfe762cf4ee8f944) + + Signed-off-by: Steve Lhomme + +commit 41a78b2cf9d87a7545e7b921c679fd454c7fdcd1 +Author: Steve Lhomme +Date: Fri May 13 09:28:50 2022 +0200 + + contrib: libass: remove macos fontconfig fix + + fontconfig is not used in any darwin libass builds since 8a922414eb3bc08e5458371f7618dc7f5378caaf. + + (cherry picked from commit b9b2be16de3db0cef5c1d00db44557c020632aaa) + + Signed-off-by: Steve Lhomme + +commit 33aa7b1b540a4b7e56fd8ce62ad12ab1ead2a1a1 +Author: Steve Lhomme +Date: Fri May 13 09:18:13 2022 +0200 + + contrib: libass: update to 0.16.0 + + Some of the patches have been upstreamed. The wopendir fix is not needed + anymore as on Windows it now assumes the char* is UTF-8 and use it accordingly. + + (cherry picked from commit 82ec67316f329ef4b76fe54d4e63ddc779a5f927) (edited) + edited: + - 3.0 didn't have the topendir patch + + Signed-off-by: Steve Lhomme + +commit 76fe1ddebc3b2493f1af2a1cb125e5119b95f80c +Author: Steve Lhomme +Date: Fri May 13 09:09:29 2022 +0200 + + contrib: libass: refresh patchs with proper patches + + They apply cleanly on the 0.15.2 branch and with proper author/dates. + + (cherry picked from commit 8f7ed03d5142c69d1865ba7b413454e3873257af) + + Signed-off-by: Steve Lhomme + +commit aefbee5bdb3e3bbab3d2c62d1036eb1f8fc8fd5b +Author: Thomas Guillem +Date: Fri May 13 15:45:29 2022 +0200 + + audiotrack: also try legacy format for pass-through + + Try IEC61937 first, then fallback to DTS/AC3/... + + Fixes #25302 + + (cherry picked from commit 5756807860da7eb58bbf316c1d5e0dbd4494f6cc) + Signed-off-by: Thomas Guillem + +commit 26272f000468745d651d834121c68dfaad989a1b +Author: Thomas Guillem +Date: Fri May 13 15:16:34 2022 +0200 + + audiotrack: split pass-through format configuration + + No functional changes + + (cherry picked from commit 5906f10d92146685343634a8c4ea67a02659972e) + Signed-off-by: Thomas Guillem + +commit 32548ba0bbc9eece6bded795c24d1c3be2343c65 +Author: shangjinlong <295993170@qq.com> +Date: Tue May 10 03:31:28 2022 +0000 + + mux: ts: fix VLC_CODEC_OPUS i_stream_type + +commit 25362eb856f14632e051ab48f1f592cb69f021da +Author: Steve Lhomme +Date: Thu May 12 16:41:27 2022 +0200 + + d3d11_fmt: don't use TCHAR to read the driver version + + Otherwise the logs are not correct. Just use the ANSI registry API as we don't + use any non-ASCII character in the strings. + +commit 367001997fa588ab18e13c648501667906cc3fb7 +Author: Hugo Beauzée-Luyssen +Date: Thu May 5 14:59:13 2022 +0200 + + contrib: libbluray: Fix build with recent JDK version + + (cherry picked from commit aeb120a889fe12f4636fe470bbc25b0fbc53a4d5) + Signed-off-by: Hugo Beauzée-Luyssen + +commit 4622e243a37208c23be5084862d73e67476feb9d +Author: Martin Storsjö +Date: Wed Apr 27 10:57:03 2022 +0300 + + contrib: projectM: Apply a patch to add missing includes of + + This source file in projectM uses std::bind2nd, which is declared + in the header. Previously it relied on this header + being included implicitly. + + libc++ recently stopped including transitively in + in + https://github.com/llvm/llvm-project/commit/a83f4b9cda57c5b3d414ec3bcf9ac891b2ec27e1. + + Upstream projectM stopped using std::bind2nd in this file in + https://github.com/projectM-visualizer/projectm/commit/10faca9abf4c879a63cdf426ddae338620baf238 + - thus not trying to upstream the patch. + + (cherry picked from commit 3c181d46d74498f50fa0c18234010dda078ebe02) + +commit 7a321fcf7c9e86d978c97cce562a8f9e8507368d +Author: Martin Storsjö +Date: Thu Apr 21 17:46:45 2022 +0300 + + contrib: regex: Apply a patch to add missing function declarations + + This code seems to be a stale copy of a regex library from glibc, + thus not sending the patch further upstream. + + In some configurations, this library seems to choose not to include + standard C headers but declare the functions manually (without a + proper prototype though!). In this case, it already declared malloc + and realloc, but didn't declare abort and free in the same way. + + Just add declarations of these functions in the same way - while + the most correct path forward would be to actually make it use + the proper system headers. + + (cherry picked from commit 0e836b4eb2b05c8e130b73dcce8c53ac8397466f) + +commit 8260294ad6f140d0253dc5390e6674956f22cd0f +Author: Martin Storsjö +Date: Thu Apr 21 14:57:58 2022 +0300 + + contrib: zvbi: Add a custom patch to avoid implicit declarations of functions on Windows + + Since Clang 15 (which still is under development, so this may + still change before it's released) [1], implicit function + declarations are a hard error by default, when building code + in C99 mode (or newer). + + [1] https://github.com/llvm/llvm-project/commit/7d644e1215b376ec5e915df9ea2eeb56e2d94626 + + The upstream zvbi code doesn't seem to have any support for + building for Windows at all, therefore not trying to upstream it. + + On Windows, the header is needed for getting declarations + of functions like open/read/write/close. The zvbi project has a + header of its own, named io.h, and it resides on a path added with + -I, so any includes of ends up including this header instead + of the system header. Therefore, add an #include_next which + should bring in the system header and its declarations too. + + Adjust ifdefs to ifdef out larger bits of the code that contained + calls to functions that simply don't exist on Windows, like + ioctl, munmap etc. Previously, the zvbi library has been built with + implicit declarations of those functions, and the static library has + had undefined references to them. As long as those object files + from the static library haven't been included in the link, this issue + has been unnoticed so far. + + For the function ffs(), which also was undefined on Windows, + provide a _BitScanForward based reimplementation. This also resides + in a file that doesn't end up included in the end, but for this + case it's just as easy to provide a working implementation as it + would be to ifdef it out. + + (cherry picked from commit 68efd7e558d19fb177991e9e0f0739defcaf9014) + +commit a0517308fdee279e8dafa13a13783cc17fb05ed6 +Author: Martin Storsjö +Date: Thu Apr 21 15:02:07 2022 +0300 + + contrib: libshout: Apply a patch to avoid implicit declarations of gettimeofday + + This patch has been sent upstream at + https://gitlab.xiph.org/xiph/icecast-common/-/merge_requests/2 + but hasn't been acted upon there yet. + + When building for a mingw target, HAVE_GETTIMEOFDAY is defined + (as the gettimeofday function was found), but the #ifdef _WIN32 #else + block never tried to include (which provides the + declaration) and/or for such targets. This caused + gettimeofday to be used without a prior declaration. + + This has been visible as an easily overlooked warning, but Clang 15 + changed this into a fatal error by default, when building in C99 + mode (or newer). [1] (While Clang 15 still is under development, this + may still change before it's released, but the warning is valid + in any case.) + + Decouple including of those headers from the #ifdef _WIN32 #else + block and just check their corresponding availability defines. + + [1] https://github.com/llvm/llvm-project/commit/7d644e1215b376ec5e915df9ea2eeb56e2d94626 + + (cherry picked from commit 9e095923da9faf63bbb4ccf4ed40f455aadefb1c) + +commit 89006bdea8a31be34569a7bc27228147cef8db28 +Author: Martin Storsjö +Date: Thu Apr 21 15:08:33 2022 +0300 + + contrib: upnp: Add a patch to avoid implicit declarations of gettimeofday on mingw + + This patch has been sent upstream at + https://github.com/pupnp/pupnp/pull/387, but hasn't been acted + on by upstream yet. + + In mingw headers, both time.h and sys/time.h define + struct timezone and _TIMEZONE_DEFINED - however only one of them, + sys/time.h, define gettimeofday. Thus, if time.h had been included + before, we'd have _TIMEZONE_DEFINED defined, and we'd omit our own + declaration of the gettimeofday function too, leading to calls to + an undeclared function. + + (If the actual sys/time.h header is included, its declaration of + the gettimeofday function does conflict with both the declaration + and the definition of upnp's gettimeofday, due to details like missing + the restrict attribute on pointers. But that issue already existed + and is unaffected by this patch.) + + Since Clang 15 (which still is under development, so this may + still change before it's released) [1], implicit function + declarations are a hard error by default, when building code + in C99 mode (or newer). + + [1] https://github.com/llvm/llvm-project/commit/7d644e1215b376ec5e915df9ea2eeb56e2d94626 + + (cherry picked from commit 83d7194d0115dce40ec49830d092fdcb1e3f6f16) + +commit 2baf4b09f71ca0455e8844f3cd2804877cecd73a +Author: Alaric Senat +Date: Tue Mar 29 11:05:53 2022 +0200 + + contrib: upnp: remove `--without-documentation` + + This configure flag was dropped in 1.8. + See pupnp upstream 8abbd63b9a8190bcbbbbcbcff5cdbaaf83fbe99a + + (cherry picked from commit 5f20a2b4bce759c0cf207dcff6897604a93e683c) + +commit a0db8719f00b10cfecd507be1d34e85f6ab5c279 +Author: Alaric Senat +Date: Sat Mar 13 19:27:22 2021 +0100 + + contrib: upnp: rename config options variable + + Adding the `UPNP_` prefix just like the other variables will avoid + potential namespaces conflicts. + + (cherry picked from commit 48cf701329bb3f95c5f8ef0a5d0c9494f4020d37) + +commit a9bfd4e5885d1a810e2422a370d1dfd27520c762 +Author: Alaric Senat +Date: Tue Feb 15 21:37:32 2022 +0100 + + contrib: upnp: unify `CONFIGURE_ARGS` + + (cherry picked from commit cb610b5bfa2b2a172d5524bf07d8132b90f53489) + +commit 9419aec1e7a320d5b1b88ced0417974aee1ce867 +Author: Alaric Senat +Date: Wed Mar 10 21:50:11 2021 +0100 + + contrib: upnp: update to 1.14.11 + + libupnp 1.6 is starting to get really old and caused bugs recently with + the new winpthread rework for contribs. + + Added contrib patches: + - revert-ifaddrs.patch (revert changes breaking android) + + Removed contrib patches: + - 0001-Do-not-try[...] -> Fixed upstream by 386b7ed7 + - dont_use_down_intf.patch -> Fixed upstream by 1f2e3b88 + - fix_infinite_loop.patch -> Fixed upstream by 4367cbfa + - libpthread.patch -> Replaced + - missing_win32.patch -> Fixed upstream by 02bb90c5 + - no-getifinfo.patch -> Fixed upstream by 0296c3cd + - use-inet-pton.patch -> Fixed upstream by 44cdeeb7 + - use-unicode.patch -> Fixed upstream + - windows-random.patch -> Fixed upstream by 44e092a6 + + Edited patches (mostly to fit the new sources): + - miniserver.patch + - upnp-no-debugfile.patch + - pthread-w32-checks.patch (Partially fixed upstream by e0f44dd9) + - libupnp-win32.patch (Partially fixed upstream) + - libupnp-win64.patch (Partially fixed upstream by 421d5d28) + - windows-version-inet.patch + - libupnp-win32-exports.patch + + Renamed patch: + - pthread-w32-force -> pthread-force (Gets applied to linux too now) + + (cherry picked from commit 4b31cb6942ded95baff1da10a238f7c4c0bbc18e) + +commit 9d223a21ac3738d244fa4678b79a2c754707aa8c +Author: Alaric Senat +Date: Wed Mar 10 21:50:11 2021 +0100 + + extra: snap: build libupnp from contribs + + We will soon bump libupnp to a more recent version fixing + vulnerabilities for libupnp >= 1.8.3. + It might be preferable to switch to the contribs version of libupnp also + for snapcraft as our snap repo is still using `core18` which only + provides libupnp 1.6. + +commit 43a5df25569516ba2d8cf9864a5816a045ca21bb +Author: Marvin Scholz +Date: Thu Mar 26 09:30:29 2020 +0100 + + contrib: upnp: Remove mingw ipv6 patch + + VLC needs Mingw-w64 v5.0 or higher , the define mentioned in the patch + was added in v3.0.0 + + (cherry picked from commit 6b94b96754978787e62dc2ffee6469efbd62ae06) + +commit 5c7ba52ac269bdf0c7f87bf14f6c5a33b1f35547 +Author: Alaric Senat +Date: Tue Mar 29 11:48:37 2022 +0200 + + contrib: upnp: remove unapplied winrt patch + + This patch was never used. + + (cherry picked from commit cf47ddcc7472b13d3168e5d39ea0e120f54c4ed6) + +commit de9c8cde3356c76a873344f35611c0139c2ee497 +Author: Alaric Senat +Date: Tue Jun 15 23:08:01 2021 +0200 + + upnp: prioritize `UpnpInit2()` over `UpnpInit()` + + `UpnpInit` is deprecated since 1.8.3 and removed in 1.14. `UpnpInit2` + offer a better replacement, working for both ipv6 and ipv4. There is no + reason to keep using `UpnpInit` apart from keeping the module usable + with 1.6. + +commit 75bb776c4249c864a8458c00ec2f6e7c69739042 +Author: Alaric Senat +Date: Wed Jun 16 12:00:03 2021 +0200 + + upnp: remove pointless `#if` guards + + These functions are inline and will be removed by the compiler anyway if + unused. The #if guards add unecessary compexity. + + (cherry picked from commit aaef25ce7a747f14878c80a415194389c4c24e92) + +commit 8ff56952174af8e7a7d4ae61a413f88317c948a1 +Author: Alexandre Janniaux +Date: Wed Apr 13 14:39:19 2022 +0200 + + caopengllayer: ignore DISPLAY_SIZE controls + + DISPLAY_SIZE controls are emitted by the windowing system to control the + display state, but the caopengllayer display module is handling its own + windowing state without window and doesn't need to react to those events. + + Instead, store the new size into the internal vout_display_cfg_t and + avoid trying to report the size to itself. + + Fixes #26845 + Refs #25264 + + Cherry-picked from commit bd24889a0b7d0d223f751ea7c40598fd83f0b221. + + Signed-off-by: Alexandre Janniaux + +commit 9cfed305fabc2ac793104cf8dae54f6da274d600 +Author: Alexandre Janniaux +Date: Wed Apr 13 14:39:19 2022 +0200 + + caopengllayer: inline place picture + + Store the current modified vout_display_cfg_t and inline the calls to + vout_display_PlacePicture. + + Refs #26845 + Refs #25264 + + Cherry-picked from commit 689b64b1aaba33efeea71d933a878febb81b5e81. + + Signed-off-by: Alexandre Janniaux + +commit 248450581f086486cb631be31b1e5800cde43c3b +Author: Thomas De Rocker +Date: Tue Apr 26 12:09:38 2022 +0000 + + Update nl.po + +commit 094970ab79960cdcab68cfcd12965d545ac5a4a0 +Author: Alexandre Janniaux +Date: Thu Apr 28 10:08:12 2022 +0200 + + contrib: main.mak: force LIBDIR to lib/ + + CMAKE_INSTALL_LIBDIR can be lib, lib64 or even lib/ on + Debian, but we already split the contribs by multiarch-tuple / + installation directory at the prefix level for contribs to avoid mixups. + + Preventing installation in lib64/ ensure every pc files from contribs/ + are in the PKG_CONFIG_PATH when configuring. + + Refs #26888 + + Cherry-picked from commit 346b2fb9b68ef9cb7da0e4daf757f6334c74c57d. + + Signed-off-by: Alexandre Janniaux + +commit 41d862cc26195ebc05f9a0f53e6a3f184b52ce4b +Author: Kaleb Luedtke +Date: Wed Apr 20 10:47:10 2022 -0500 + + Set extra version number when building MSI + + * Use the @VERSION_EXTRA@ which is used in the exe build in place of the + static '0' + * Change the Display Name in appwiz.cpl to be just the product name, + matching the exe build + + (cherry picked from commit cafda6718082ab655f23b88a6a94dac747c57a19) + + Signed-off-by: Steve Lhomme + +commit d38ddd7270ffaea705981b6a48086778850d3c96 +Author: Steve Lhomme +Date: Mon Mar 21 15:53:52 2022 +0100 + + dav1d: limit the number of extra frames needed by the decoder + + The i_extra_picture_buffers is used to add pictures to the pool that the core + will allocate. dav1d is actually using n_threads frames. And the core is + allocating 10 frames per default for AV1. So we need to add the missing ones. + + (cherry picked from commit a32031dc0f5f32083fc54a21397bce732742ccbe) (rebased) + rebased: + - the code dav1d 1.0.0 in 3.0 uses different max versions + + Signed-off-by: Steve Lhomme + +commit 4b75be8ad72263bf058d6f827efe74e526722481 +Author: Steve Lhomme +Date: Wed Aug 12 06:19:06 2020 +0200 + + contrib: dav1d: update to 1.0.0 + + (cherry picked from commit c857056738aec2e66d21b54d2d086c60255e6a91) (edited) + edited: + - 3.0 had a different way to comment the git URL line + + Signed-off-by: Steve Lhomme + +commit 2202c892c8dc1381b596c53c2ebd3ca680061f95 +Author: Steve Lhomme +Date: Fri Mar 18 11:42:49 2022 +0100 + + dav1d: fix compilation with (upcoming) dav1d 1.0 + + (cherry picked from commit dbf45cea2a8abdfbef897b8a71f3eb782bb1b712) (edited) + edited: + - 3.0 has the 128 pixels padding elsewhere + - 3.0 has an extra parameter for add_integer_with_range() + - 3.0 was setting i_extra_picture_buffers further down in the code + - 3.0 uses 16 threads max + + Signed-off-by: Steve Lhomme + +commit f0b1ddca0dc575d34076d9062056ccb316f9a8c4 +Author: Tristan Matthews +Date: Thu Feb 17 10:16:53 2022 -0500 + + contrib: aom: update to 3.3.0 + + 2022-01-28 v3.3.0 + This release includes compression efficiency and perceptual quality + improvements, speedup and memory optimizations, some new features, and + several bug fixes. + - New Features + * AV1 RT: Introducing CDEF search level 5 + * Changed real time speed 4 to behave the same as real time speed 5 + * Add --deltaq-strength + * rtc: Allow scene-change and overshoot detection for svc + * rtc: Intra-only frame for svc + * AV1 RT: Option 2 for codec control AV1E_SET_ENABLE_CDEF to disable + CDEF on non-ref frames + * New codec controls AV1E_SET_LOOPFILTER_CONTROL and + AOME_GET_LOOPFILTER_LEVEL + * Improvements to three pass encoding + - Compression Efficiency Improvements + * Overall compression gains: 0.6% + - Perceptual Quality Improvements + * Improves the perceptual quality of high QP encoding for delta-q mode 4 + * Auto select noise synthesis level for all intra + - Speedup and Memory Optimizations + * Added many SSE2 optimizations. + * Good quality 2-pass encoder speedups: + o Speed 2: 9% + o Speed 3: 12.5% + o Speed 4: 8% + o Speed 5: 3% + o Speed 6: 4% + * Real time mode encoder speedups: + o Speed 5: 2.6% BDRate gain, 4% speedup + o Speed 6: 3.5% BDRate gain, 4% speedup + o Speed 9: 1% BDRate gain, 3% speedup + o Speed 10: 3% BDRate gain, neutral speedup + * All intra encoding speedups (AVIF): + o Single thread - speed 6: 8% + o Single thread - speed 9: 15% + o Multi thread(8) - speed 6: 14% + o Multi thread(8) - speed 9: 34% + - Bug Fixes + * Issue 3163: Segmentation fault when using --enable-keyframe-filtering=2 + * Issue 2436: Integer overflow in av1_warp_affine_c() + * Issue 3226: armv7 build failure due to gcc-11 + * Issue 3195: Bug report on libaom (AddressSanitizer: heap-buffer-overflow) + * Issue 3191: Bug report on libaom (AddressSanitizer: SEGV on unknown + address) + * Issue 3176: Some SSE2/SADx4AvgTest.* tests fail on Windows + * Issue 3175: Some SSE2/SADSkipTest.* tests fail on Windows + + Source: + https://aomedia.googlesource.com/aom/+/refs/tags/v3.3.0/CHANGELOG + + (cherry picked from commit 0857947abaed9c89810cd96353aaa1b7e6ba3b0d) + Signed-off-by: Tristan Matthews + +commit cf8b616579bc1a914bf4b428ef27f2345d08b44f +Author: Steve Lhomme +Date: Tue Apr 26 11:38:41 2022 +0200 + + contrib: ass: fix crash when combined with recent freetype + + Using upstream patch until a new release comes. + https://github.com/libass/libass/commit/0915955733bd236ecc44645ee968fb7a55ad5079 + + Fixes #26865 + + (cherry picked from commit e516a8f24b48d0ca4ad14f57115d35c1f0b71a47) + + Signed-off-by: Steve Lhomme + +commit cabe90d174ce3dd22db45887e9146456339790a0 +Author: Thomas Guillem +Date: Thu Apr 21 08:25:56 2022 +0200 + + smb2: don't seek past INT64_MAX + + (cherry picked from commit e6b0c071b6483bc521b12600482bd233f87b57b9) + Signed-off-by: Thomas Guillem + +commit 096208ae0657f8f1b193d94c73b17f82514cac1f +Author: Thomas Guillem +Date: Thu Apr 21 08:20:21 2022 +0200 + + smb2: fix lseek return type + + It was causing seek error when seeking past INT_MAX + + Regression from c23709134c77dc70d66cc3420ceadfe08b28ed44 + + (cherry picked from commit 9646722d61ec6a2439dd2586ac30e908ac349a4e) + Signed-off-by: Thomas Guillem + +commit bf6dbbc451fb890b45af41f84dc8f4e375d15377 +Author: Thomas Guillem +Date: Thu Apr 21 08:17:44 2022 +0200 + + smb2: rename logged seek function name + + (cherry picked from commit d70173fc2ac7d02a69c1a71159a676b9e9aa51f1) + Signed-off-by: Thomas Guillem + +commit 7e34f61ffa13c2c3dcaea5b4575257bcc7458d4f +Author: Thomas Guillem +Date: Wed Apr 20 17:02:50 2022 +0200 + + smb2: fix anonymous login + + Not sure when this regression happened on the libsmb2 side. + But setting the password to an empty string do enable anonymous login + now. + + (cherry picked from commit 205963ad09401ab3cbe5bf92c7f9b109092f87f4) + Signed-off-by: Thomas Guillem + +commit dd80816d8dbee2a8b4c7199c0dfbde7901265000 +Author: Thomas Guillem +Date: Thu Apr 14 14:13:34 2022 +0200 + + smb2: destroy the context in case or errors from smb2_generic_cb + + Errors can also be reported via generic cbs, that will cause the + vlc_smb2_mainloop to abort. In that case, we should destroy the smb2 + context to fix the issue mentioned by 924c951518f02dd05436d46323301702df516f4f + + (cherry picked from commit 960ef3f8ef74e352d5e3caa42f49cce8a686c8b3) + Signed-off-by: Thomas Guillem + +commit c266ba818d5d6c6d58e361dd2ec14c169e7dfb20 +Author: Thomas Guillem +Date: Thu Apr 14 14:15:15 2022 +0200 + + smb2: also clear op->smb2 in case of error + + op->smb2 won't be used in case of error but it is cleaner like that. + + (cherry picked from commit 5264a62539fa2686680c7b32b03d1756eb1c4652) + Signed-off-by: Thomas Guillem + +commit b0e727a0e43cf0ab71e3a51bcc6a73254172f9d2 +Author: Thomas Guillem +Date: Thu Apr 14 14:09:06 2022 +0200 + + smb2: return errno directly + + No changes since this function is only checked for != 0 (for now). + + (cherry picked from commit 0d51ab8a3e96cca03cdca31665bfacd44d77e3c0) + Signed-off-by: Thomas Guillem + +commit cfdb5355924658d17e6e2e27faa7f74696a3ff65 +Author: Thomas Guillem +Date: Thu Apr 14 14:05:48 2022 +0200 + + smb2: rework error handling from smb2_service_fd + + (cherry picked from commit 93b55c9f53e066086250d19782ec65d8e5a07942) + Signed-off-by: Thomas Guillem + +commit 3681112e8d4ffad0717e889470485ff38e19159c +Author: Thomas Guillem +Date: Mon Apr 11 14:34:30 2022 +0200 + + smb2: homogenize status and error functions + + (cherry picked from commit e9acccaca3fd5f148f44eb833dc2aa50ade2148c) + Signed-off-by: Thomas Guillem + +commit 86dcae852ac5c864404c2dc19e5f4eb047654e93 +Author: Thomas Guillem +Date: Thu Mar 17 09:17:09 2022 +0100 + + smb2: always use smb2 timeout + + If the smb2_timeout was valid, then not valid (infinite), the last value + was not taken into account. + + (cherry picked from commit ac95bf19f9991f506170a3dcb3c57268cb944727) + Signed-off-by: Thomas Guillem + +commit c1ebabfbbac0c9d19d8351cade2c7117463db661 +Author: Thomas Guillem +Date: Thu Mar 17 08:46:59 2022 +0100 + + smb2: remove teardown handling + + If interrupted by the user, just close the connection whitout sending a + close request and don't save the context in the cache in that case. + + (cherry picked from commit cf7d48cd027c59edffdb36c9f8f40492e6e6dd6e) + Signed-off-by: Thomas Guillem + +commit 3517facbe73cd5e05b9843af13598a94f8100ef7 +Author: Thomas Guillem +Date: Thu Mar 17 16:10:11 2022 +0100 + + smb2: destroy the context in case of error + + This fixes a potential stack-buffer-overflow when destroying a context + from Close() if an operation was aborted. Indeed, the smb2_destroy() + function might trigger callbacks with private data that was allocated on + an old function stack. To fix this issue, always destroy the smb2 + context immediately after an error (when the struct vlc_smb2_op is + valid). + + This issue is currently hidden by the teardown mechanism (but still + possible), that always try to close gracefully in case of error. + + (cherry picked from commit 924c951518f02dd05436d46323301702df516f4f) + Signed-off-by: Thomas Guillem + +commit a6d1d127fa00b3874bcb37d24f2888a0019d214d +Author: Thomas Guillem +Date: Thu Mar 17 15:26:18 2022 +0100 + + smb2: rework error handling + + - Always call VLC_SMB2_SET_ERROR() in case of error, + - Don't loose the returned error code + - Fallback to -EINVAL in case of unknown error (very unlikely case) + + (cherry picked from commit c23709134c77dc70d66cc3420ceadfe08b28ed44) + Signed-off-by: Thomas Guillem + +commit 14c9365106d86986a4a521c1cd5944656c7fe59f +Author: Thomas Guillem +Date: Thu Mar 17 15:03:12 2022 +0100 + + smb2: don't use sys->error_status while opening + + But return it directly from function and sub functions. + + (cherry picked from commit 29b85334bfdd9f6a89b89c19c9575be6fc033112) + Signed-off-by: Thomas Guillem + +commit 608c373babe3af06e7448a49e54e18937e104cf3 +Author: Thomas Guillem +Date: Wed Mar 9 17:04:12 2022 +0100 + + dsm: fix interrupt context mismatch + + The dsm interrupt context was also registered when calling the + credential API that can end up in keystore modules that need to register + an interrupt context. To fix this issue, register the interrupt context + only before dsm calls. + + (cherry picked from commit 6b4b7225e5ba757ecc4ca38eb6de2e21a43a9c6d) + Signed-off-by: Thomas Guillem + +commit 34f09f401726984f9366142caea9939e31bebee6 +Author: Thomas Guillem +Date: Fri Jan 7 14:33:28 2022 +0100 + + smb2: make the netbios resolver interruptible + + (cherry picked from commit f0c6da69cc02051112d2fc60f30a886b1f2aecc4) + Signed-off-by: Thomas Guillem + +commit 224a6b7c76b1bba02a37836aacac5c2aef989d79 +Author: Thomas Guillem +Date: Mon Mar 18 14:12:56 2019 +0100 + + smb2: add missing error check + + (cherry picked from commit 014e84a30c54a1831ed4deeac6506d98cde503b8) + Signed-off-by: Thomas Guillem + +commit 8de7cd007d1a2875fbdf3fbb2047674a93c5693c +Author: Thomas Guillem +Date: Fri Jan 7 14:28:20 2022 +0100 + + dsm: make netbios_ns interruptible + + (cherry picked from commit 088e3783b3fb9bb580fc80b775ae06de725081a7) + Signed-off-by: Thomas Guillem + +commit 5659b3d9b0cd4f4864934e38b16167f89d4636ac +Author: Thomas Guillem +Date: Fri Jan 7 14:18:54 2022 +0100 + + dsm: reduce netbios_ns lifetime + + It's only needed from get_address(), from Open(). + + (cherry picked from commit d0ffce0f8c6e5f56e0b21f5229d2f14e89f08e79) + Signed-off-by: Thomas Guillem + +commit 9915bab8401421292b6cdfe9b2e5472eeec14b17 +Author: Steve Lhomme +Date: Mon Jun 8 17:13:55 2020 +0200 + + dsm: fix mismatched pointer + + Fixes this warning with clang10: + incompatible pointer types passing 'u_long *' (aka 'unsigned long *') to parameter of type 'uint32_t *' (aka 'unsigned int *') + + Similar to what is done in access/smb2.c + + (cherry picked from commit 009bce07f3263158e439f8b99cf6d74d782da303) + Signed-off-by: Thomas Guillem + +commit c52b65b27fa05649ba2a2950ed2de5d14e032029 +Author: Thomas Guillem +Date: Thu Jan 6 12:59:20 2022 +0100 + + dsm: make the smb_session interruptible + + (cherry picked from commit 36ab008eb5f7b0029512867601f11a7995f3a432) + Signed-off-by: Thomas Guillem + +commit 30543be18e9010637ce1e995f33ae309fe8c97e7 +Author: Thomas Guillem +Date: Wed Mar 2 11:40:00 2022 +0100 + + contrib: libdsm: update to 0.4.2 + + And switch to meson. + + (cherry picked from commit 305eae38b30be838235577229a7a81aa7885b557) + (cherry picked from commit 871efa3d88b14bdfe0c2bf09a9cdcb40262ccfbd) + Signed-off-by: Thomas Guillem + +commit 5ed57918cf969702885d12c2834bbab4d907e454 +Author: Thomas Guillem +Date: Tue Jan 25 10:12:51 2022 +0100 + + dsm: connect the session in login() + + (cherry picked from commit 7dd7780d8fca179b93ec4eb57e9da3c08333af5f) + Signed-off-by: Thomas Guillem + +commit 7816adfe2deb83ea9e726ca0e99fbe9441b1c671 +Author: Thomas Guillem +Date: Tue Jan 25 15:27:31 2022 +0100 + + smb2: split vlc_smb2_open_share + + No functional changes. + + (cherry picked from commit e95101836566925d472d78173535e5bf42e9ab4f) + Signed-off-by: Thomas Guillem + +commit db782849f2611e0ecaf18b2ea7df84a600d84e2f +Author: Thomas Guillem +Date: Mon Jan 24 11:48:03 2022 +0100 + + smb2: use an operation struct for all operations + + Instead of using the same context from the access_sys struct. + + (cherry picked from commit 3b4a40e9e33dc00b1b18a900ef62db38170f31b8) + Signed-off-by: Thomas Guillem + +commit 796de47ee4dc15a9ec466a58a12d466814fe30e9 +Author: Thomas Guillem +Date: Fri Jan 21 17:26:36 2022 +0100 + + smb2: pass smb2 and smb2fh as arguments + + (cherry picked from commit 25654510a52d48f9960f3b42e77a9c637f8b9705) + Signed-off-by: Thomas Guillem + +commit cc5792d4393928d205b367e4e54a289901d198e3 +Author: Thomas Guillem +Date: Fri Jan 21 17:03:00 2022 +0100 + + smb2: handle smb2_connected state outside the disconnect fonction + + (cherry picked from commit 074209c0c0a056eae27fda39206f56091673181d) + Signed-off-by: Thomas Guillem + +commit 6d83f125f9fc64319436fa5f00c6c744278be8c9 +Author: Thomas Guillem +Date: Mon Jan 17 11:03:13 2022 +0100 + + contrib: smb2: update to 4.0.0 + + Changelog since 3.0.0: + - Add support for SMB3 encryption + - Add support for Anonymous NTLMSSP logins + - Add support for readlink. + - Add API to notify application of changes to which filehandles are used by + libsmb2. + - Add suppport for Big Endian DCERPC and allow it to be controlled from the + URL. + - Add support for 3.1.1 signing + - Add support for PS2(EE) and PS3 + - Fixes to UCS2 when compose characters are used. + - Various MacOS fixes + - Fix a few NULL dereferences + + All theses fixes were already included in the contrib version. + + (cherry picked from commit 1cf1991b648df877d7138ef79a3381026be2dd80) + Signed-off-by: Thomas Guillem + +commit 1eaadd70b0ca277bf038aa88dd90c1b2ae3fba49 +Author: Felix Paul Kühne +Date: Fri Apr 22 09:02:14 2022 +0200 + + fourcc list: add 'X265' + + This fixes #26853 + + (cherry picked from commit adc1e739e038203367ea24aa50daa59516ae66b7) + +commit 8f6ec51cd05a0c8b75c8d7d55399fe60511c8117 +Author: Filip Roséen +Date: Fri Apr 15 16:59:27 2022 +0200 + + demux: mkv: add support for S_DVBSUB + + backport of 4d22be6dcc60eed789a278b1105a01f59168f8cb + + Signed-off-by: Maxime Chapelet + +commit d4c8f5c0ea25f305e36c890f1da3335f961dd75a +Author: Felix Paul Kühne +Date: Wed Apr 6 16:16:31 2022 +0200 + + bonjour SD: resolve hostname to IP for SMB + + The SMB modules cannot do the Bonjour lookup, so resolve the hostname + and forward the first IP, which typically is the preferred value. + + This fixes vlc-ios#1319 + + (cherry picked from commit 2d52141e145f2cde00612aabf4d6835b998c2f60) + +commit be2b153a43c754bcc4415383835d8ba53cccf897 +Author: Sagar Kohli +Date: Sat Mar 9 13:36:35 2019 +0530 + + qt: make network URL comboBox case sensitive + + Fixes #19388 + + Signed-off-by: Thomas Guillem + (cherry picked from commit 2931f2aca2c78df0444de05bb1a65a6f70a0468e) + +commit ed7d4c09343fd9042c3f0bb3ea14b7171ee3fcfd +Author: Francois Cartegnie +Date: Mon Apr 11 22:57:08 2022 +0200 + + freetype: fix first glyph non zero bearing alignment offset + + When box xMin is 0, lines starting with non 0 bearing can't + be aligned properly due to wrong offset + + (cherry picked from commit 7ae7c53c5d6495a54ba1f6cf2a2007b9cee4d7f2) + +commit b6a50574c6266ba315ce8eda8aad3c13fc4d0022 +Author: Francois Cartegnie +Date: Mon Apr 11 12:17:22 2022 +0200 + + meta_engine: fix junk at end or raw unterminated ID3 text + + (cherry picked from commit 4f74c5ca37117cab4071df392c47611317779b48) + +commit 97612c39e1c89e1d5b15fe090de9170c3b4e7b4f +Author: Felix Paul Kühne +Date: Mon Mar 28 13:57:33 2022 +0200 + + contrib/gnutls: fix AArch64 build on appleOS + + This introduces a patch to fix compilation on AArch64 on AppleOS, which + currently fails due to a compiler flag used by gnutls that is + unsupported by the latest version of clang (Apple clang version 13.1.6, + clang-1316.0.21.2) leading to a compiler crash if used. + + This resolves the upstream tickets + https://gitlab.com/gnutls/gnutls/-/issues/1347 and + https://gitlab.com/gnutls/gnutls/-/issues/1317 for which the same patch + was already suggested. + + (cherry picked from commit 85357e2d60e528d1b5d204f7a17b50123d1df27d) + +commit 810ce14d989f2da1819ee7f74176f5110d0547aa +Author: Martin Finkel +Date: Mon Apr 11 14:45:44 2022 +0700 + + contrib: update freetype to 2.12.0 + +commit 89f04db7926141b1409ea4a00661665f7771b375 +Author: Alaric Senat +Date: Wed Nov 18 19:32:27 2020 +0100 + + upnp: Correct top directory url formatting + + As pointed out in #25055 the choice of url option delimiter is probably + meant to be that way. std::string.find() returns std::string::npos (aka + -1) in case of no match. + + Signed-off-by: Thomas Guillem + (cherry picked from commit f5f5a0d0ddb6c96ab08a6b3ca1115dcbd2ae2c77) + +commit 02ba123083c28d59788c84b2da7b82cae58b3d83 +Author: Oneric +Date: Fri Apr 1 19:10:02 2022 +0200 + + codec: libass: pass storage size to libass + + Due to a quirk in the ASS format some tags do depend on the exact + storage size of the video not just the pixel aspect ratio, so tell + libass via ass_set_storage_size to achieve correct rendering. + + For ASS, storage size refers to the size the video is encoded in (stored + at) with codec-level crop applied; further transforms like e.g. + anamorphic de-squeezing or container-level crop must not be applied. + This matches the used fmt_src values despite them being named + visible_{width,height} and the existing PAR calculation already relies + on this. + + Fixes https://code.videolan.org/videolan/vlc/-/issues/26634 + + (cherry picked from commit 2608eb5c82d82c209126d5d1af0dcfe48b6b9cee) + +commit 4e17d578b44d49350a172efcdb3161a12929c62f +Author: Marvin Scholz +Date: Thu Dec 6 15:59:07 2018 +0100 + + macosx: Add missing EXTENSION_WIDGET_PASSWORD handling + + (cherry picked from commit 2c0fa9d11015301b0fbb79ba2d831e86135382e5) + Signed-off-by: Marvin Scholz + +commit fa4cb723fed7d70a27482f931b8a8605851865db +Author: Marvin Scholz +Date: Fri Feb 16 20:13:29 2018 +0100 + + macosx: Force arrow cursor for extension UI labels + + Now that labels have to be selectable, force the cursor to the arrow + cursor instead of the text selection cursor. + + (cherry picked from commit 4980447fd4e52291b6c8e5a5754ee8492f81ea2a) + Signed-off-by: Marvin Scholz + +commit 5060fbf86aa9cc6ed5f2d81f2d44ed913d2c9f19 +Author: Marvin Scholz +Date: Fri Feb 16 20:12:19 2018 +0100 + + macosx: Make links in extension UI labels clickable + + (cherry picked from commit e18cdcddbfd59ad49f5df3505af669f31e524101) + Signed-off-by: Marvin Scholz + +commit c95425f1e49c6b0e909cfbb2d33103f50a10034e +Author: Marvin Scholz +Date: Fri Feb 16 19:57:45 2018 +0100 + + macosx: Fix default font in extensions UI + + Default to the system font for extension textfields, labels and + webviews. + + (cherry picked from commit 222bc139ad6c92dda41aee35a5aa0a53b3d1d200) + Signed-off-by: Marvin Scholz + +commit 3d7ae99e468499370c073d2ded9be0b6b31c0ed4 +Author: Marvin Scholz +Date: Fri Feb 16 19:43:04 2018 +0100 + + macosx: Set correct font for NSButton in extensions + + (cherry picked from commit f7c023b5cdb795f858428951ea686b748e516dfc) + Signed-off-by: Marvin Scholz + +commit cb39c3b56d314120aa86a4402a1d013c432f487f +Author: Francois Cartegnie +Date: Thu Mar 31 14:24:29 2022 +0200 + + demux: adaptive: fix relative merge last segment duplication + + (cherry picked from commit 95f144cec26b2751bc2b5a5bcdbd26730ee2f207) + +commit 1951b65df86f0cfd8e938ec1855401f1c2e1e6ec +Author: Jeffrey Knockel +Date: Mon Mar 21 12:24:40 2022 -0400 + + xcb/xvideo: set northwest bit gravity on output window + + This fixes black flickering on resize. + + Fixes #25716 for xcb/xvideo output. + +commit b3971b8c735872226f6728eecf9393aeb3c2c40a +Author: Jeffrey Knockel +Date: Mon Mar 21 12:23:26 2022 -0400 + + xcb/x11: set northwest bit gravity on output window + + This fixes black flickering on resize. + + Fixes #25716 for xcb/x11 output. + + (backport of commit 58aaf06c) + +commit 7cd6489756d913b5c308d238bd48dd7e81225f6e +Author: Jeffrey Knockel +Date: Mon Mar 21 12:21:55 2022 -0400 + + egl: set northwest bit gravity on output window + + If necessary, set bit gravity on Open() and restore on Close(). This + fixes black flickering on resize. + + Fixes #25716 for EGL. + + (backport of commit 7251119a) + +commit 9e297a477ed7f5b0d49ed8630d9e1d5474470d0d +Author: Jeffrey Knockel +Date: Mon Mar 21 12:17:45 2022 -0400 + + glx: set northwest bit gravity on output window + + If necessary, set bit gravity on Open() and restore on Close(). This + fixes black flickering on resize. + + Fixes #25716 for GLX. + + (backport of commit a32bf927) + +commit 255005aef8c570cb939403514160902a7b991485 +Author: Jeffrey Knockel +Date: Mon Mar 21 12:13:31 2022 -0400 + + qt: don't call XClearWindow() on resize + + This call is extraneous as the X server automatically fills any exposed + area with the window's background (in this case, black). + +commit 1a1a9da7afdbb2d3ff11405fdc836161cadbbf86 +Author: Zhao Zhili +Date: Tue Feb 15 13:22:44 2022 +0800 + + demux: mp4: relax restriction on parent of st3d/sv3d boxes + + st3d/sv3d can appear in any VisualSampleEntry. It's easy to miss + entry for new codecs. + +commit 270330c90d86dec2d5301af22f9fd3032df4b279 +Author: Alexandre Janniaux +Date: Wed Mar 30 11:14:05 2022 +0200 + + Revert "opengl: fix swizzle" + + GL_LUMINANCE_ALPHA textures should be sampled through r and a swizzle + since it has a `(L,L,L,A)` layout. + + This reverts commit 4082f4f2f46b60fd4c7d4d31ba26c3d890ad03a4, but + includes also the fix from c69bbb07f761975a13209faf4aaee821b462d490 to + avoid using an invalid swizzle. + + Fixes #26767 + Reintroduce #26735 + +commit 3facda5359b35500dae36ceb38934ca335901cd8 +Author: Alexandre Janniaux +Date: Wed Mar 30 11:13:46 2022 +0200 + + Revert "opengl: simplify swizzle" + + The swizzle of the texture should be different between + GL_LUMINANCE_ALPHA textures and GL_RG textures. + + This reverts commit d6ffeba288c533f0531541fe8a97d8bda60fd25c. + + Refs #26767 + +commit 008c33307cbd901069444165e5cabb7cdb54ec17 +Author: rego21 +Date: Sun Mar 27 16:33:25 2022 +0100 + + contrib: x265: add patch to enable detect512 + + Enables detect512 for all architectures + +commit 14a7c847458e05264ca7fa4f5514044e22cb62c1 +Author: rego21 +Date: Sun Mar 27 16:30:05 2022 +0100 + + contrib: x265: update patches + + Update patches to tackle the 2.9 version. + +commit 4c8f13dcef66777e382653ace3f0cabbb5f8d0f9 +Author: rego21 +Date: Sun Mar 27 16:24:00 2022 +0100 + + contrib: x265: update link and version of x265 + + The x265 link changed and version 2.7 isn't available in their downloads page. + +commit 0d556269778d0b9d0e9d05cc78b3365e0e74792e +Author: Steve Lhomme +Date: Wed Mar 23 15:06:22 2022 +0100 + + ffmpeg: fix DXVA2/D3D11 crash on bogus references + + Fixes #26738 + + (cherry picked from commit 1e0b78a970afaabf6af236457cc363d458819787) (edited) + edited: + - on 3.0 the patch needs to be set on FFmpeg only + - the emscripten patch before this one is not on 3.0 + + Signed-off-by: Steve Lhomme + +commit a77c7cd6b8059846a362de389ceb2b217287c5e3 +Author: Marvin Scholz +Date: Wed Mar 23 14:15:03 2022 +0100 + + decoder: fix number of reference frames for AV1 + + AV1 needs 8 reference frames, as defined by NUM_REF_FRAMES in the + AV1 spec. + + (cherry picked from commit 8ef84bf711b9eb20a2c68fe6baf6386f6c288c21) + + Signed-off-by: Steve Lhomme + +commit c0bb3d7ba9db9b2f1a84466ee2f3acc5a78554f7 +Author: Romain Vimont +Date: Tue Mar 22 17:38:59 2022 +0100 + + playlist: temporize on EOS bursts + + A mechanism was implemented to temporize on consecutive input errors, to + mitigate infinite busy loops (see commit + d06622651fcd4a608c06cb35e725fad57bf38167). + + Although it avoided the most common issues, this mechanism was not + triggered for other problematic cases: + - empty inputs; + - inputs with unreported errors from demuxers. + + Therefore, to encompass these other cases, consider the number of + consecutive stops in a small period of time instead of relying on + reported errors: + - if a playback end occurs less than 250ms after the previous one, then + increment the EOS burst count; + - when more than 4 EOS burst count occur successively, start + temporizing: + - 100ms for the 5th + - 200ms for the 6th + - 400ms for the 7th + - 800ms for the 8th + - 1.6s for the 9th + - 3.2s for the following + + Fixes #5901 + Fixes #26733 + Refs vlc4/e759db90d958305afee6655e52597c4fef446c34 + +commit a695dc030bbe886d486d21dd376d29153ed491eb +Author: Thomas Guillem +Date: Tue Mar 22 13:02:49 2022 +0100 + + extra/tools: ninja: force python3 + + It seems that python3 is already specified in all the VLC + contribs/tools. + + Fixes build on systems not having a shortcut python -> python3 (macOS + for example). + + (cherry picked from commit 4e90abceb4f2a83fcf4817ef411efee80d35d015) + Signed-off-by: Thomas Guillem + +commit 3f3dce1e93e3248b793501d3ac9bc52ade7dd64e +Author: Francois Cartegnie +Date: Thu Mar 17 19:46:03 2022 +0100 + + demux: mp4: fix lack of tfdt fallback + + refs #26341 + + (cherry picked from commit dfe420ab665b81b3f0da47e6614b5e6acf7a42e0) + +commit ebc5dfdeae6f90c2b5bd37ce55b9fc0d72d4782c +Author: Francois Cartegnie +Date: Thu Mar 17 19:45:41 2022 +0100 + + demux: mp4: fix sidx lookup return timescale + + refs #26341 + + (cherry picked from commit a151c9c40f3487764fc28acc32ff6657fb782329) + +commit 7d54e53dd5a5df2889a492439b7a8b008c11f4b4 +Author: Francois Cartegnie +Date: Thu Mar 17 19:11:22 2022 +0100 + + demux: mp4: fix unaligned trun seek + + refs #26719 + + (cherry picked from commit 3ee0bb4c28fb8c9df32fb102e5a1176e81f6ab48) + +commit d6ffeba288c533f0531541fe8a97d8bda60fd25c +Author: Romain Vimont +Date: Tue Mar 22 12:55:07 2022 +0100 + + opengl: simplify swizzle + + The commit ca7d2ea4b618b5bc1a8a03c0318d4f2afaf3007f introduced an xyzw + swizzle, whereas the previous code was using an rgba swizzle. No other + location used the xyzw swizzle for texture so unify and use rgba + everywhere. + + Refs #26735 + + Cherry-picked from aa5bec3b49a790709bcf2c7d874552916da2aea1 + +commit 4082f4f2f46b60fd4c7d4d31ba26c3d890ad03a4 +Author: Romain Vimont +Date: Tue Mar 22 12:46:42 2022 +0100 + + opengl: fix swizzle + + The four components are, in order: x, y, z, w. + + The U and V values are the first and second components in the second + texture. + + Fixes #26735 + Fixes #26336 + + Cherry-picked from 05f292874df8b29a0f3b60d49d39f4269a2b2ca8 + +commit d973d2f3d827510cc5a974fedb2e2a9fd10f89cf +Author: Romain Vimont +Date: Wed Mar 23 12:27:25 2022 +0100 + + opengl: explicitly set swizzle_per_tex values + + As explained in commit 1e72174721e4af164b23e00578e097f029494260 (in + VLC4): + + > In case the texture format is GL_LUMINANCE, swizzle_per_tex was set to + > {NULL, "xa"}. Using NULL instead of an explicit swizzle ("x") was a + > small optimization to assign the texel value directly [...] + > + > This was possible because the texture exposes the luminance value in + > its three components: (L, L, L, 1). + + In fact, using the luminance value in the 3 components is not equivalent + (and wrong). Therefore, explicitly use the texture swizzle. + + Cherry-picked from 1e72174721e4af164b23e00578e097f029494260 + + Note: only the assignment is cherry-picked, the associated refactor is + not applied to minimize code changes on VLC3. + +commit c7cfe89c7d6e5032c08fd1cc5a2e173c684cac6f +Author: Francois Cartegnie +Date: Tue Mar 22 14:50:09 2022 +0100 + + demux: we don't need to check availabilityStartTime + + mandatory for templates and breaks with epoch 0 + refs + https://livesim.dashif.org/livesim/sts_1647955042/sid_f95b592d/testpic_2s/Manifest.mpd + +commit 65dccae11596890f57a2a2e2a548a0cb06d1b5d3 +Author: Francois Cartegnie +Date: Thu Mar 17 17:22:38 2022 +0100 + + demux: hls: fix timescale attribute duplication on update + + (cherry picked from commit 8940fd6c104fcc5bf40e81417e6bd967b4566836) + +commit c3145adf762bc68224a8fe273f76b5fee3b2548c +Author: Francois Cartegnie +Date: Wed Mar 16 11:22:22 2022 +0100 + + demux: adaptive: properly prune relative segmentlist + + (cherry picked from commit fafd64e06f5634cc4ee427f99935510032c37fa3) + +commit 1dc30593de451e5e6a56ffd201f93c89c26f255d +Author: Francois Cartegnie +Date: Wed Mar 16 11:02:11 2022 +0100 + + demux: adaptive: ensure es is created in test + + (cherry picked from commit 8f8ea977e56b0aeae7584692628060802d0498f8) + +commit ebbc32cf94fa85e4d5a2f93b0656602c33926bfd +Author: Francois Cartegnie +Date: Tue Mar 15 18:20:42 2022 +0100 + + demux: adaptive: fix init setting expected timestamp for non sms + + (cherry picked from commit f2414d8642ef7a5b22aea701a23854be5657fe80) + +commit 0ef40b1ea9576f3a9c3e1789eb8f9c08e9b8bb45 +Author: Francois Cartegnie +Date: Tue Mar 15 18:00:31 2022 +0100 + + demux: adaptive: use timestamp 0 offset in timestamp mappings + + Fixes returning INVALID timestamp when mapping to 0. + + (cherry picked from commit 4aa0143cf9dd56b0f3eac3e0513e9349da235fcd) + +commit ec196700e1686271f19d7e292c6e4d271c65bcd6 +Author: Francois Cartegnie +Date: Tue Mar 15 17:55:49 2022 +0100 + + demux: hls: rename error prone method + + (cherry picked from commit 65d2dccfaf7dcea5bbe9063a15cd5480dc05bf60) + +commit 72d0c34090a73006f7897c8ce3beccda29263797 +Author: Francois Cartegnie +Date: Fri Mar 11 13:50:41 2022 +0100 + + adaptive: test: add low delay offset check + + (cherry picked from commit dff467b4efb8ebabfb2dadafa8addd25d774f4ce) + +commit 1a7454e2711ca0941aa1570ee5cef7152b4b843d +Author: Francois Cartegnie +Date: Thu Mar 10 20:21:22 2022 +0100 + + demux: adaptive: use member for isContiguous + + (cherry picked from commit 40ea2e85c1515891ff6ae7e5c3f04e750d8427c5) + +commit bfc284c150daf877b436fe2f3cbeab10676fc9d9 +Author: Francois Cartegnie +Date: Thu Mar 10 18:06:11 2022 +0100 + + demux: adaptive: call queue to create ES on empty content/subtitles + + otherwise it is delayed until first data/pcr + + (cherry picked from commit 9819fd9b422ac0e46c6e575d457b8c57fb6bcba0) + +commit 5439d2e6d3b5123a35ca79d92de1cd5d52b0defe +Author: Francois Cartegnie +Date: Thu Mar 10 18:05:39 2022 +0100 + + demux: adaptive: rewrite media timeline fallback + + (cherry picked from commit 310f94ef936e1e226c172a024657e90ecb5eadb8) + +commit 1d918604017ff65b22184b582c188e0b6cf4e71d +Author: Francois Cartegnie +Date: Thu Mar 10 18:03:48 2022 +0100 + + demux: adaptive: only return bufferized amount past deadline + + (cherry picked from commit b2d6205d56db48318f550162a8dc19922752047c) + +commit 62be0ca1b07c6692eb3c37a954bd4d75b98adab4 +Author: Francois Cartegnie +Date: Thu Mar 10 18:01:59 2022 +0100 + + demux: adaptive: no buffering on no deadline + + (cherry picked from commit 235471cf999d76ab2da1c0efdb4fefbcde39243d) + +commit d9b8176ad3de552295d1174aa6ad0f7058cd072f +Author: Francois Cartegnie +Date: Thu Mar 10 17:44:02 2022 +0100 + + demux: adaptive: reset segment time context on segment gap + + (cherry picked from commit e136c8ac502692217bec060510c6ae58eb2cd2dc) + +commit 5faa2ca274ef039459fe6ee40cbbeae4fb1e264b +Author: Francois Cartegnie +Date: Thu Mar 10 17:43:19 2022 +0100 + + demux: adaptive: refer to previous segment end time + + (cherry picked from commit 49f71855b906d0d13447942ad2356da514257f40) + +commit 81213b4508271615d54c180ff4b3c21e6221bd79 +Author: Francois Cartegnie +Date: Thu Mar 10 17:02:56 2022 +0100 + + demux: adaptive: add buffering media level to command queue + + (cherry picked from commit 5da424a6684d80876f94b49b42d5bcf4e18d1989) + +commit 4f1fc14d7235d5fa1e66aadbee20845178d8cf10 +Author: Francois Cartegnie +Date: Thu Mar 10 16:02:36 2022 +0100 + + demux: adaptive: force early output of first demuxed times + + (cherry picked from commit e8be1a4ef4ab7f57873e7a2566d1a789ab390986) + +commit 867138fdeaf7b4eb65c88529cbd564375856a136 +Author: Francois Cartegnie +Date: Thu Mar 3 11:31:51 2022 +0100 + + demux: adaptive: add more segmentlist merge tests + + (cherry picked from commit 7bdcb21d8ae65c0d0e1a85c91bd2469ec7006010) + +commit 160487bdb9bb70d0990ff8eec9050053b54dde22 +Author: Francois Cartegnie +Date: Thu Feb 3 23:03:20 2022 +0100 + + demux: adaptive: add segmenttracker tests + + (cherry picked from commit a9fad07115b217de650690113bc4faa0b541083f) + +commit a67591607626adcbd9be21212d5635c815ae8e6b +Author: Francois Cartegnie +Date: Mon Nov 22 10:19:27 2021 +0100 + + demux: adaptive: add esout unit test + + (cherry picked from commit 79ab6573e38488c2f88defdb72f27528b18e0345) + +commit 51a71010179a4d0840b0bbee278534783bbb896c +Author: Francois Cartegnie +Date: Thu Mar 3 15:10:22 2022 +0100 + + demux: hls: fix ended event state + + (cherry picked from commit a37aa1c8645df9ff81e502b230c6acd72bd6f75d) + +commit 73564785df7392a90c80c43cfef1da36b79c3a6e +Author: Francois Cartegnie +Date: Mon Feb 28 18:02:48 2022 +0100 + + demux: dash: add default startNumber + + fixes regression with some templates + https://livesim.dashif.org/livesim/testpic_2s/Manifest.mpd + + (cherry picked from commit a5fe71de82e04ce62b1e649c7004f73ddf9abdfb) + +commit c713ce413420b91a76023068b5535c623962a0a9 +Author: Francois Cartegnie +Date: Mon Feb 28 16:16:05 2022 +0100 + + demux: adaptive: re-enable SET_NEXT_DISPLAY_TIME + + (cherry picked from commit 3a318ede5c6e53640b5b3a8fffaf38a1a7ca6f12) + +commit aba120916b011946e1ed59dded531839a2d99234 +Author: Francois Cartegnie +Date: Sun Feb 27 12:06:06 2022 +0100 + + demux: adaptive: add top level emsg in ISOBMFF probing + + (cherry picked from commit 92b5c9d38cf84762f340b896942d1cef73a38c76) + +commit 8737d8093c31913c1301eb54bdc1b72dd4393786 +Author: Francois Cartegnie +Date: Wed Feb 23 16:57:23 2022 +0100 + + demux: adaptive: fix initial switch event + + (cherry picked from commit f50f140545c9634a65078fedc50a85ba6fa06cd1) + +commit e0168e102730aa1d3bc3e2f5b279a3591af8ec74 +Author: Francois Cartegnie +Date: Wed Feb 23 15:47:17 2022 +0100 + + demux: hls: move members + + (cherry picked from commit 1975b2a39acdee58872a05ca0209ad56b32a1beb) + +commit cd9903dbf7cb6aeec7ae715c04264fdf3288ed0d +Author: Francois Cartegnie +Date: Tue Feb 22 18:33:34 2022 +0100 + + demux: adaptive: fix init segments discontinuitysequence + + (cherry picked from commit 20737e5283fbe982a10bdeca15e274d45bd346aa) + +commit 90c36cdc942c3473a6ae30ea2d9f3dba82568491 +Author: Francois Cartegnie +Date: Fri Feb 18 15:20:25 2022 +0100 + + demux: adaptive: always try to update reference + + (cherry picked from commit ba579a40708b61af4127837054b7a2e510cbb5fd) + +commit 56d356c7f65eb6c5aad64d2e3b031075e58a7dce +Author: Francois Cartegnie +Date: Fri Feb 18 15:19:53 2022 +0100 + + demux: adaptive: replace reference to avoid halfroll + + (cherry picked from commit af162dd3a8933124264c42f028c051f88a95d3b1) + +commit 75cdc5b853693d34fa37df0af0907fc12e1a6409 +Author: Francois Cartegnie +Date: Thu Feb 17 19:11:19 2022 +0100 + + demux: adaptive: avoid false timestamp roll on long streams + + (cherry picked from commit 9fddb6518070ad13d52c9922f0b3b239bd612ca9) + +commit d7e5cf1d479ab879e01a2df220d2e309ec3e2359 +Author: Francois Cartegnie +Date: Thu Feb 10 17:53:03 2022 +0100 + + demux: hls: remove unused utcTime + + (cherry picked from commit 0628048404e4719f56c99001e04d36e46ac06091) + +commit 07ed436b706d1796098ccfc68955e741f459d37c +Author: Francois Cartegnie +Date: Mon Jul 19 17:23:21 2021 +0200 + + demux: hls: re-enable WebVTT + + (cherry picked from commit f18f844f973418e55b5687df41fde9dc00593727) + +commit 14ae2e6f300994f4c1816d1e583f1b7bf4590587 +Author: Francois Cartegnie +Date: Wed Jul 21 16:14:55 2021 +0200 + + codec: webvtt: merge cues + + (cherry picked from commit 69d3595ab32567ed13cc501b1efd7ddd4e207705) + +commit 8aa8755227d852dd1919ac7c1288f0447bd9a939 +Author: Francois Cartegnie +Date: Wed Feb 9 16:30:28 2022 +0100 + + demux: adaptive: remove getCurrentFormat + + (cherry picked from commit ffa3db438d4147847a5560a965b94f8544f8db35) + +commit 822aa2d32317957519a18438da519124199b485e +Author: Francois Cartegnie +Date: Thu Feb 3 23:10:59 2022 +0100 + + demux: adaptive: remove connManager from streams + + (cherry picked from commit 7c36956203d84c49feac7e2069e5f9cf70c532c6) + +commit 950c397923e953068badbd2a413ba6562302da11 +Author: Francois Cartegnie +Date: Thu Feb 3 23:04:43 2022 +0100 + + demux: adaptive: remove chunk useless connmanager direct param + + (cherry picked from commit f75635941d9420a3afa12d560bef42ed4d3807eb) + +commit ffe08a53f11a4eaf8a0c6f36feb45221fcf60f6e +Author: Francois Cartegnie +Date: Wed Feb 2 11:26:25 2022 +0100 + + demux: adaptive: fix timeline timings on chunk entries + + (cherry picked from commit 95c2a41e2b1bda11c8e12629b412a7086911b546) + +commit f1836c66d920d91b20456673c2018a511d31ff23 +Author: Francois Cartegnie +Date: Wed Feb 2 09:37:34 2022 +0100 + + demux: adaptive: fix timelined segmentlist regression + + (cherry picked from commit e16c5187c1ab59e0ed378b521fe0e520f8289118) + +commit 4c9ce9f9758f34b3ef8028e880eb6dea7adb2417 +Author: Francois Cartegnie +Date: Tue Feb 1 15:42:13 2022 +0100 + + demux: adaptive: notify first switch + + (cherry picked from commit 93de05d69e7e0b0668500134f7e48feb5517bc80) + +commit c2fa15703d951e6d968f6a1d420be8f063c381ac +Author: Francois Cartegnie +Date: Tue Feb 1 15:32:33 2022 +0100 + + demux: adaptive: set resolution in CodecDescription + + (cherry picked from commit ccba091bd9ce19188715340fc4171b5cfd309787) + +commit a94e4420f7e9aa6d8a1d21f740b7fc21640f17fd +Author: Francois Cartegnie +Date: Tue Feb 1 15:31:45 2022 +0100 + + demux: adaptive: fill fmt with representation resolution + + (cherry picked from commit fa086dbd4c6e8d1b4e24c742217b5f1586228a1d) + +commit fff590c48e3508c80097aed1e6f34ee7d6728155 +Author: Francois Cartegnie +Date: Mon Dec 20 23:29:04 2021 +0100 + + demux: hls: schedule next update on failure to half segment + + (cherry picked from commit c9092bec4ea49050f9febd708640c8ed78030491) + +commit b16cdb8d9c808c33381d7a7885ec152583b18a4f +Author: Francois Cartegnie +Date: Mon Dec 20 23:23:48 2021 +0100 + + demux: hls: notify update failures + + (cherry picked from commit 6733efd243a8adb9eaed397163a027086e807a6b) + +commit ce3877aecdc727ca63e26d6b8e4591c4da6a6494 +Author: Francois Cartegnie +Date: Mon Dec 20 23:23:35 2021 +0100 + + demux: adaptive: handle update failures + + (cherry picked from commit 3911d82e9e3cde8dce87974b70ce1e7fea249eb8) + +commit c1a5af1a6b9b5dcd3af7997f394b8ab31dfe2a75 +Author: Francois Cartegnie +Date: Mon Dec 20 12:06:06 2021 +0100 + + demux: adaptive: clear suspended flag on update + + (cherry picked from commit 22e8b053cd5fe0661dd4da8895cb0a040e1c3015) + +commit 4ccddc8a130beb5e99f2885cc333ce941141050c +Author: Francois Cartegnie +Date: Mon Dec 20 09:40:11 2021 +0100 + + demux: adaptive: add representation update event + + (cherry picked from commit cbd527cec2e0b5c0fd5fab414203e144e2877670) + +commit 29774d56d5dac321d2ee28a23a77847b241d2d3d +Author: Francois Cartegnie +Date: Mon Dec 20 17:25:15 2021 +0100 + + demux: adaptive: reevaluate buffering status on each run + + (cherry picked from commit e60e9c7cd4092b5eed9a81212fd9d01aaa0acc70) + +commit 0ae8c0021476a5ceb049aa9e9ea14bb34fb3a21a +Author: Francois Cartegnie +Date: Mon Dec 20 17:24:39 2021 +0100 + + demux: adaptive: reset all status on new position + + (cherry picked from commit 4d784f69f9e941a7de3643e3a3d70ac74b177bb5) + +commit 0de7a6a85737b6cc0cd09d5bec4af18f7a6b3762 +Author: Francois Cartegnie +Date: Fri Dec 3 13:49:33 2021 +0100 + + demux: hls: missing limits include + + (cherry picked from commit b8b52a006cdef0ebce9dcc3e4fb5a03af64adb79) + +commit 9d50737488b4f435920023ccdcdf7f73eed48fc0 +Author: Francois Cartegnie +Date: Thu Nov 25 21:17:02 2021 +0100 + + demux: hls: don't approximate segment number translation + + (cherry picked from commit 37bdab030873e1de626c045f33bfc9511b8bc412) + +commit 0ff5a3df8cd09e49385ebae88f90d8b5c4f84753 +Author: Francois Cartegnie +Date: Thu Nov 25 18:54:35 2021 +0100 + + demux: adaptive: do not switch out of an available playlist + + (cherry picked from commit 518c5dec0441d642ad1c2ccdd3f97da55dc9e444) + +commit 36e0b3d4f214bc0707a847d8357e322ec147a9f5 +Author: Francois Cartegnie +Date: Wed Nov 24 14:20:05 2021 +0100 + + demux: adaptive: set chunk info for subtitles stream discontinuity + sequence info + + (cherry picked from commit 7718d6916895dec7ffac3ac47094d67808dca581) + +commit db3de6041568ebfc6bda901938f006dfe2a322f9 +Author: Francois Cartegnie +Date: Tue Nov 2 16:14:08 2021 +0100 + + demux: adaptive: no longer handle segment gap as discontinuity + + (cherry picked from commit fa4882420e5d3f504ce9e5dc811f25672c1e9d4d) + +commit 67a2f9ff458de5390746243a815434b59d13345e +Author: Francois Cartegnie +Date: Tue Nov 23 16:15:25 2021 +0100 + + demux: hls: classify subtitles also by role + + (cherry picked from commit 949208b500915d331bac5d18b2eb55b7dc2bce8a) + +commit 1e03b5f4fbadb4661c7dab4777a21ea95fa42d12 +Author: Francois Cartegnie +Date: Mon Oct 25 11:16:38 2021 +0200 + + demux: adaptive: use Times for stream position + + (cherry picked from commit e009424c15083544d522d3197574dd16f980ebe1) + +commit 0821fb7066b03dad32af1c577f8e6db022f19007 +Author: Francois Cartegnie +Date: Mon Jul 19 17:22:46 2021 +0200 + + demux: hls: parse WebVTT explicity mapping + + (cherry picked from commit adb7bdc2f61f1c2119384922934f213ab9c58474) + +commit 259880bb63c3acc4759fd12651857c19182f163f +Author: Francois Cartegnie +Date: Wed Nov 3 21:35:10 2021 +0100 + + demux: adaptive: only update syncref with valid point + + (cherry picked from commit 83d2aca2a512901ced9e4be95d8e5ce8c8cbef61) + +commit 77d8283fa187c9efbbb9ae3dc322e2697913e045 +Author: Francois Cartegnie +Date: Mon Nov 1 19:47:05 2021 +0100 + + demux: adaptive: wait syncref for subtitles + + (cherry picked from commit f5cd0d17e2c77e5ad02abc0bd144f8efb737b0f0) + +commit 69bd7e6407092aa5a149c679b95bc4391099872d +Author: Francois Cartegnie +Date: Fri Oct 22 13:55:37 2021 +0200 + + demux: hls: add missing next update sheduling + + (cherry picked from commit 2588017c9eea935a3e9d6ccc7b41d7f25279bd64) + +commit 37e24df9fbe6cdf25820a25e357015133ae465da +Author: Francois Cartegnie +Date: Wed Oct 27 09:33:48 2021 +0200 + + demux: adaptive: handle hls rollover + + (cherry picked from commit 146eb315a41b29617f4e648e505c9d375989ce42) + +commit c8456de4b7e90415aaa50dbd5c5ade9f5b3b0a6c +Author: Francois Cartegnie +Date: Wed Oct 20 10:55:58 2021 +0200 + + demux: adaptive: ensure starttime context is always set + + (cherry picked from commit 4b8b28683cc5e555a1f4666863d202fea1ac76c3) + +commit 1956b81ebd569524f1e0373ad0d82eb67869a8ee +Author: Francois Cartegnie +Date: Tue Aug 10 21:03:58 2021 +0200 + + demux: adaptive: use sync references for continuity and start offset + + (cherry picked from commit 57cdaefe2e94c5053768b1068076643b5ff8745f) + +commit 9a3427eaecb12788c4170c4f819597e060a5e099 +Author: Francois Cartegnie +Date: Mon Jul 19 17:21:43 2021 +0200 + + demux: adaptive: add direct timestamp mapping method + + (cherry picked from commit 8504efe042256fdca9ec25154ab85209bc319ecd) + +commit 7d905b4c7af3da1c4687e0c7057542ed45d5efcd +Author: Francois Cartegnie +Date: Fri Oct 29 18:40:44 2021 +0200 + + demux: adaptive: fix buffering level on invalid ts + + (cherry picked from commit e4487a4b1dd4c61d0063762664757b39301eb78e) + +commit 963e49f8ba6eab41b5d507e676d68f67acf4d767 +Author: Francois Cartegnie +Date: Fri Nov 19 14:17:16 2021 +0100 + + demux: adaptive: remove isConsistentNumber + + (cherry picked from commit 94433ad79afdab102002e280b54a98c2258985ef) + +commit 4ebef5371a9ac9cfbfcac1e5657d1db25f4008e2 +Author: Francois Cartegnie +Date: Fri Nov 19 17:41:42 2021 +0100 + + demux: hls: fix relative segment switch + + (cherry picked from commit 482d9d10306d226ce3eac397fa0d86de22e7407e) + +commit 5ffb2e8fbcd856502275f830175c1a4a82e416e8 +Author: Francois Cartegnie +Date: Tue Oct 26 22:46:22 2021 +0200 + + demux: adaptive: remove no longer used segment comparison + + (cherry picked from commit 55e204c2879af3044f6942bc679b0e7745e537e2) + +commit 1a586db0aedab8630278da11438fddf485c57402 +Author: Francois Cartegnie +Date: Tue Oct 26 22:44:22 2021 +0200 + + demux: adaptive: rework segmentlist update + + (cherry picked from commit 43a205ff43b7f9b66bc0312760e3ae8c1fad28ef) + +commit fa38142ddce511d717a4a3475b13469c16aec2e8 +Author: Francois Cartegnie +Date: Wed Nov 3 10:54:50 2021 +0100 + + demux: hls: set abs/rel time hint + + (cherry picked from commit a31b95c1da16406d45bb868c80e1d66f8d6e7bc4) + +commit 305ce0e7c6051b95922494e7ae175f78520676a3 +Author: Francois Cartegnie +Date: Wed Nov 3 10:12:08 2021 +0100 + + demux: dash: set absolute mediatimes on segmentlist + + (cherry picked from commit f32e4c914c828f81dd607946bf3992bd05b18555) + +commit 8a3c57d73a5c732f61560fa255e7091652667396 +Author: Francois Cartegnie +Date: Wed Nov 3 10:54:16 2021 +0100 + + demux: adaptive: tag segmentlist with abs/rel times hint + + (cherry picked from commit 5f0a3e46aa011e5abba42e665b04e0a78b77bf6f) + +commit 29eb66abcda6bf5f01fcf3a35724590218f8ab1e +Author: Francois Cartegnie +Date: Fri Jan 14 14:30:55 2022 +0100 + + demux: dash: set segmentlist startnumber for live content + + (cherry picked from commit f5f104c41bccc4e438ed8972897f7d441241ad19) + +commit c0faa79df1acde15c7b676ebcadbd70869997489 +Author: Francois Cartegnie +Date: Wed Oct 20 10:55:08 2021 +0200 + + demux: adaptive: fix live manifest update on stream reactivation + + (cherry picked from commit 7e20d06ebdf467f48d3c3a32a6e9b844408fcbc5) + +commit 33dffde13be228a9ccc33eef689301854aad3310 +Author: Francois Cartegnie +Date: Wed Oct 20 10:54:22 2021 +0200 + + demux: adaptive: notify discontinuity before new segment event + + (cherry picked from commit 67a63fb7fe84ab17ef17eb30240007276b206e2a) + +commit 532a3b83ceba3fa2abca9ec7093de6e01b93cdeb +Author: Francois Cartegnie +Date: Wed Oct 20 10:53:27 2021 +0200 + + demux: adaptive: sent discontinuity once with init + + (cherry picked from commit c73601e7b10d435c934c66ee5661673fc366fa07) + +commit aeef87883fd6d9687cb8a884a96bb295b09e0e98 +Author: Francois Cartegnie +Date: Wed Oct 20 10:52:33 2021 +0200 + + demux: adaptive: always tag init with segment times + + (cherry picked from commit 86e8452681d6eb97ed197092e26ed41461e5eee9) + +commit 9cd15459b40c229c3beac75e49e1680d66f9cfc3 +Author: Francois Cartegnie +Date: Mon Oct 11 13:32:54 2021 +0200 + + demux: adaptive: pass resume time directly from tracker + + (cherry picked from commit 216c3c130cb86094e2b02483dbf7003de9bd02e5) + +commit 00a2c62b90e756523f52dc33d7cbd635f0f902ff +Author: Francois Cartegnie +Date: Tue Jan 19 09:54:54 2021 +0100 + + demux: hls: parse and store discontinuity sequence numbers + + (cherry picked from commit eaa7ae479c6528996658c5bffd22cf509546f6cf) + +commit 5cca66dfdec66c403ea43c9e518f7f8e318f0e61 +Author: Francois Cartegnie +Date: Mon Oct 11 19:25:29 2021 +0200 + + demux: adaptive: don't flag first discontinuity + + (cherry picked from commit 9c6099694bdaa390793978ca1ef26b1cd0caf549) + +commit 5206fcf24df6c5fc864c493919b625bbbb8cd21c +Author: Francois Cartegnie +Date: Fri Aug 13 14:01:56 2021 +0200 + + demux: adaptive: remove unused timestamp_first + + (cherry picked from commit 13d940dc68a93b3c35b682cab51454c5863d9d1d) + +commit 9554a6b7ed2cdc3f984aabce72d44f2bc7f1defb +Author: Francois Cartegnie +Date: Wed Feb 2 16:23:04 2022 +0100 + + demux: adaptive: add proper getter for media amounts + + (cherry picked from commit 0a94cb1cfaca7efc606439b8084a50dfbd620812) + +commit 9e365112f07c964423016a79f3ca19092a312774 +Author: Francois Cartegnie +Date: Tue Jan 11 17:50:06 2022 +0100 + + demux: adaptive: use both timelines for buffering/dequeuing + + (cherry picked from commit cc3dad2c73c4f0be0a4cab8b1651c74134467a54) + +commit 046ff13ec6f415b39c347ce511dc377bf39c60f8 +Author: Francois Cartegnie +Date: Tue May 21 12:29:20 2019 +0200 + + demux: adaptive: use mutable keywork on locks + + (cherry picked from commit fbb3542c34081091d8f8943d6ffcd244f5efe590) + +commit 253dfc6c82f1e319c31fefd31241d5b954eb4475 +Author: Francois Cartegnie +Date: Tue Jan 11 17:46:35 2022 +0100 + + demux: adaptive: propage times also through buffering + + (cherry picked from commit b7a0d239d7b5b81694c64066d0be7f9e7ca14958) + +commit e52ff05503eba4a232166a3c187baf0e373d377b +Author: Francois Cartegnie +Date: Thu Jun 24 17:21:44 2021 +0200 + + demux: adaptive: move unescape to helpers + + (cherry picked from commit 19140f996b0e13c5095ab1ed39f1cc6df72f564a) + +commit c2179e3e253784b989e0612f9bf753ab9d33fb78 +Author: Francois Cartegnie +Date: Wed Aug 4 20:25:03 2021 +0200 + + demux: adaptive: return only valid time for GET_TIME + + (cherry picked from commit 66b88e346ae3e19665aadba2c41a1dffe45d6980) + +commit 9876d0fccb75d8a994d4c22974f367355e768ab8 +Author: Francois Cartegnie +Date: Fri Apr 9 14:52:58 2021 +0200 + + demux: adaptive: cache init segments + + (cherry picked from commit 5783eaec107133b48c96ba8386aabee382a3405d) + +commit c25f541a5185f394393e2d24b0f861e5bc97a447 +Author: Francois Cartegnie +Date: Thu Apr 8 18:04:21 2021 +0200 + + demux: adaptive: do not consume chunk data + + (cherry picked from commit 3fbe47d0caca74cb99c2e90e94acaf7e5f01fbf4) + +commit cab9dbc65862172ccf2f6c3b9a0ce0734dcf63f6 +Author: Francois Cartegnie +Date: Thu Mar 18 13:49:35 2021 +0100 + + demux: adaptive: add chunk identifier for storage + + (cherry picked from commit c83c68121e90f903009b9982981e6d6c3a5d7836) + +commit 6033b2405975997300febd02764929620afbc70f +Author: Francois Cartegnie +Date: Thu Jun 24 13:27:28 2021 +0200 + + demux: adaptive: add trim helper + + (cherry picked from commit db1f2de74c43cc207b7147cbfdfbfea48e16f868) + +commit 08efb4e2c331e02fe7d07074a824f73ceead548f +Author: Francois Cartegnie +Date: Fri May 21 15:31:56 2021 +0200 + + demux: adaptive: set virtual segment times + + (cherry picked from commit 80b990eab065046ae9e53587580266b8996ea293) + +commit 0ddbb589b2ad55713993cf5ead9074000507f8c7 +Author: Francois Cartegnie +Date: Tue Jan 11 17:37:43 2022 +0100 + + demux: adaptive: remove now unused random access times + + (cherry picked from commit b0e2256615b73ed4c6b2998e79a62793106c435b) + +commit d5ca6328f9055a56ed5a9523bdff1fe4c7681773 +Author: Francois Cartegnie +Date: Tue Jan 11 17:34:12 2022 +0100 + + demux: adaptive: fix position/get_time + + (cherry picked from commit fbfb934900d7c4b264632cf090236d65e859366f) + +commit b29277a0f9a49e29ff617b65724195754aa291f9 +Author: Francois Cartegnie +Date: Tue Apr 27 19:52:41 2021 +0200 + + demux: adaptive: propagate and interpolate asynchronous times + + (cherry picked from commit 1fdd46df6263da8d1d812c71398d53c3e590e730) + +commit cef4f4cdc6c24e03940b7ec773546c2ae7dbe861 +Author: Francois Cartegnie +Date: Tue Apr 27 20:06:29 2021 +0200 + + demux: adaptive: add times references classes for demuxed data + + (cherry picked from commit 71a1e62ce3a88005576bccff514fe2b8ec3c6a69) + +commit 296b3a03aec5cc650688054bf533cb9d6c89e4d7 +Author: Steve Lhomme +Date: Tue Mar 8 14:19:14 2022 +0100 + + contrib: test pthread availability for Windows even without mingw-w64 + + If anyone has a pthread with a different Windows SDK it should work. + + It will also avoid bogus pthread.h missing reports when mingw-w64 is not + detected properly. HAVE_WINPTHREAD is not checked and assumed to be + available. + + (cherry picked from commit 4acd34bce8928ee68d4c1307bcbda172ec6e31ee) + + Signed-off-by: Steve Lhomme + +commit ca10c6725941b7542afab3e07fb738eab995cb15 +Author: Steve Lhomme +Date: Tue Mar 8 10:02:29 2022 +0100 + + contrib: slighty faster to get the mingw-w64 major version + + It doesn't involve grep nor sed. + + Co-authored-by: Stephen Kitt + (cherry picked from commit 4f73bdde05db0f2ce50dc146826086cc78297788) + + Signed-off-by: Steve Lhomme + +commit 7fac6112c3f2abfed5c4434d3111d09d65480fe2 +Author: Steve Lhomme +Date: Tue Mar 1 10:12:41 2022 +0100 + + contrib: pthreads: get the latest dxva header from mingw + + In mingw 10 they are up to date with HEVC and AV1. Even in all the win32 images + we use. + + If we ever need to patch it again we can do it on the mingw version + + (cherry picked from commit 7e4e0b1f3d3363c9df715c9d3a01fe005ea664f0) (edited) + edited: + - 3.0 doesn't have winrt_headers, d3d9, dcomp + + Signed-off-by: Steve Lhomme + +commit cd70cb35f29bdf78e17a2b1791b477c59e456683 +Author: Steve Lhomme +Date: Tue Mar 1 09:23:09 2022 +0100 + + contrib: win32: only preprocess _mingw.h once + + (cherry picked from commit 8a191b4cf3b18a4558f7f00d027e0c863e5fc026) + + Signed-off-by: Steve Lhomme + +commit 387470d8cf51b7219762328f6e4e84105cd3ecd3 +Author: Steve Lhomme +Date: Tue Mar 1 08:33:27 2022 +0100 + + contrib: pthreads: stop pretending we download just winpthreads + + (cherry picked from commit 2d3539835d34dede150ca69d990b50422fd8400b) (edited) + edited: + - 3.0 doesn't have winrt_headers, dcomp + + Signed-off-by: Steve Lhomme + +commit 8f4b55fcde410cd61a52cf63e44be82d8e1ee002 +Author: Steve Lhomme +Date: Mon Feb 28 10:10:21 2022 +0100 + + contrib: pthread: use a recent mingw-w64 to get proper dcomp.h + + We can't detect it based on a version of mingw until v10 is released and in our + images. + + (cherry picked from commit 50e71ad6fb43c710d64ac4f3945cdd11ccfe5aa5) (edited) + edited: + - 3.0 doesn't have dcomp but wants the newer hash + + Signed-off-by: Steve Lhomme + +commit 4feba41c134b15d2e2b360f5177b1c7f13cccd9d +Author: Steve Lhomme +Date: Wed Feb 23 16:15:53 2022 +0100 + + contrib: pthread: don't rebuild winpthread + + We don't have any local patch for this library. + + A normal mingw-w64 install has both libpthread.a and libpthread.dll.a, contribs + will use the former. + + (cherry picked from commit de493a1d254468296c89d1fbb8163dd8820a744e) (rebased) + rebased: + - 3.0 uses mingw_at_least instead of HAVE_MINGW64_V8 + + Signed-off-by: Steve Lhomme + +commit 9d90a9daa8e3dd801edeadbe5a3be37eb3dc7341 +Author: Steve Lhomme +Date: Thu Feb 17 14:31:27 2022 +0100 + + contrib: win32: allow checking more versions of mingw-w64 + + (cherry picked from commit 6d2a311585b40bd1a43db3bccc7219c1ede7f570) (edited) + edited: + - 3.0 already had MINGW_W64_VERSION + + Signed-off-by: Steve Lhomme + +commit f711c9dbc22944d79c075914afbef845394f9fea +Author: Steve Lhomme +Date: Fri Sep 3 08:10:59 2021 +0200 + + contrib: pthreads: only require windows headers when building for win32 + + And only check for HAVE_MINGW64_V8 use when not using MSVC. + + (cherry picked from commit f7447e6a61b5925843f136d8ca1a98e81ae218cc) (rebased) + rebased: + - 3.0 doesn't have winrt_headers + + Signed-off-by: Steve Lhomme + +commit 17b93f58c392e4ff1579918febb43d9bb155e494 +Author: Steve Lhomme +Date: Mon Aug 16 11:22:09 2021 +0200 + + contrib: pthreads: use mingw64 9.0.0 instead of an interim 8.0 hash + + (cherry picked from commit 5b9beae04210dcbd6f33c6f8c3869c8b483d4151) + + Signed-off-by: Steve Lhomme + +commit 78ec27d7decc669f2e7195fd81396fa992f71ba6 +Author: Steve Lhomme +Date: Mon Aug 16 11:27:48 2021 +0200 + + contrib: extract the dxvahd header from mingw64 directly + + If we build with mingw64 8+ we didn't generate it, and we still won't. + Otherwise mingw64 was already extracted for winpthread, so we just use the + header from there. + + (cherry picked from commit b16e3e7e5bcaaa34ec0bdf08c53f93ccaf869f41) (edited) + edited: + - 3.0 doesn't have winrt_headers + + Signed-off-by: Steve Lhomme + +commit d9196e863e55b76d7b8234972e2a1316c67b1b2e +Author: Steve Lhomme +Date: Fri May 29 13:32:32 2020 +0200 + + contrib: pthreads: use a mingw-w64 version from git + + (cherry picked from commit b8731a6096b59404c6cd8f4c034c04532cee9977) (edited) + edited: + - IApplicationData2 is not added + + Signed-off-by: Steve Lhomme + +commit cb3428a1118c60016868c5cbab05d5475416a5e5 +Author: Steve Lhomme +Date: Tue Mar 15 17:40:54 2022 +0100 + + contrib: upnp: do not try to detach detached thread + + This is a cherry-pick of a patch in the 1.6.x branch that has not been released + yet. + + (cherry picked from commit 4a44a134ac10a3bf57ae1bd679cad1d0a77f91a7) + + Signed-off-by: Steve Lhomme + +commit 0e901f992c5bcbbe8b6e1756bddc99abfed0cef6 +Author: Jean-Baptiste Kempf +Date: Mon Mar 7 10:49:10 2022 +0100 + + Contrib: update bluray to 1.3.1 + + (cherry picked from commit d9997a4fcc152bdfacb1ae0e5570b0d7e6b37941) + Signed-off-by: Jean-Baptiste Kempf + +commit 426513d88e3e3dc671434db8e724ee5d1b7e1038 +Author: Hugo Beauzée-Luyssen +Date: Fri Mar 11 13:15:32 2022 +0100 + + On the road to 3.0.17.3 + +commit 98c86d8787acf6686410ebbfe87629a1337aebca +Author: Francois Cartegnie +Date: Fri Jul 23 17:03:47 2021 +0200 + + demux: hls: fix AAC regression with "es" demuxer + + For some reason AAC is not part of the probing sequence, + it then can't activate without shortcut/forced naming. + + (cherry picked from commit 2396e15bd5b261b2c716ff653b5b8e6374be8bba) + +commit c4ab31d5f0d5d0ba298706241d5b67ae49215935 +Author: Hugo Beauzée-Luyssen +Date: Tue Mar 8 12:12:01 2022 +0100 + + On the road to 3.0.17.2 + +commit 762136b67a4842f8a5998e9943ff195217ba147a +Author: Hugo Beauzée-Luyssen +Date: Tue Mar 8 12:11:55 2022 +0100 + + Update NEWS + +commit 8dc979d5787032a1bc38c5b09544db1e0556d9db +Author: Francois Cartegnie +Date: Sat Dec 12 13:07:49 2020 +0100 + + codec: avcodec: use filtered/best effort pts + + fixes playback/stuttering with wrong mux/monotonically + increasing pts on frames that must be reordered. + + no change for regular pts. + + (cherry picked from commit 0834d39352a299f1ada6b319fff43f3c34b9d52a) + +commit e63e7a06341ed8eac34fabc30da43d5bf34b4255 +Author: Thomas Guillem +Date: Tue Mar 8 10:24:30 2022 +0100 + + qt: fix typo in mouse event handling + + Fixes #26684 + + Regression from d5e53764ba89d36ca5c300e0cc0f5261b0abe8ac + +commit 2c31361c347b0f31b6818a28d4fe94f9543aad56 +Author: Pierre Ynard +Date: Sat Feb 5 01:43:05 2022 +0100 + + youtube.lua: update "n" descrambling function name parsing + + The descrambling function is now called through an intermediate array + variable. This change has also added two extra ways to recover the + function name. Add support to parse and resolve any of them. + + Fixes #26574 + + (cherry picked from commit 3df28fc51ef2ea46084aef1785ded18afa31ef9e) + Signed-off-by: Jean-Baptiste Kempf + +commit 8bff7178c720dd0c4df56a8dc34bd86fac7801e8 +Author: Thomas Guillem +Date: Wed Mar 2 16:42:09 2022 +0100 + + smb2: fix pf_read return values + + 0 should be returned in case of EOS or error, -1 means EAGAIN. + + /me blames me for not reading the documentation. + + (cherry picked from commit 249a76b921b1a742ae9d4fa459ea7107bca08482) + Signed-off-by: Thomas Guillem + +commit 4063c515ea5cc7d48685a7e6797ac7a87a2eb858 +Author: Thomas Guillem +Date: Wed Mar 2 16:40:54 2022 +0100 + + nfs: fix pf_read return values + + 0 should be returned in case of EOS or error, -1 means EAGAIN. + + /me blames me for not reading the documentation. + + (cherry picked from commit 59a3d85dd2bf642a81c95f91ef320cf4164d5671) + Signed-off-by: Thomas Guillem + +commit 583426556280120843d8de5d5986663a3b43568f +Author: Steve Lhomme +Date: Tue Feb 15 09:08:54 2022 +0100 + + contrib: freetype2: replace the UWP patch to fix bogus CreateFileA call + + Patch merged upstream + + (cherry picked from commit 54088315e19f6274580bc82734f3037ebd29e6ce) + + Signed-off-by: Steve Lhomme + +commit 0cc084b0325ea81558b3383c3bf9ea8869b8f9bf +Author: Lionel Landwerlin +Date: Mon May 11 00:01:07 2020 +0300 + + vaapi: add support for DRM modifiers + + DRM modifiers communicate a description of the data layout in the buffers + exported/imported through various API. + + On Intel HW this exports tiling information as well as potential compression. + + Signed-off-by: Thomas Guillem + (cherry picked from commit 3633417edb6330c335c7d3602e255534979c05e7) + Signed-off-by: Shuicheng Lin + +commit 39bb4ba8ec797b10d2fcc4eec88bc02bb8a936c7 +Author: Hugo Beauzée-Luyssen +Date: Wed Oct 27 11:24:59 2021 +0200 + + CI: Mark jobs as interruptible + + This will help automatically cancel outdated pipelines instead of having + to do so manually + + (cherry picked from commit 64ff40e2d6e8712547b8db827c59b404cbc9d503) + Signed-off-by: Hugo Beauzée-Luyssen + +commit aa76328c572d93f1d99c867a94ecad1dc3259733 +Author: Hugo Beauzée-Luyssen +Date: Thu Feb 24 11:01:40 2022 +0100 + + NEWS: Mention libflac update + +commit 00a01eb254a563fcc78e548785ab67f0255e258c +Author: Hugo Beauzée-Luyssen +Date: Wed Feb 23 09:55:57 2022 +0100 + + CI: Add Windows release jobs + +commit c3e2ac604aaa528b1bde12d4333e5414ddf3b9b5 +Author: Steve Lhomme +Date: Wed Feb 23 10:18:48 2022 +0100 + + contrib: update to flac 1.3.4 + + (cherry picked from commit a49cca05d381ce6a0371fd1d15f983f2e4a58c04) + Signed-off-by: Hugo Beauzée-Luyssen + commit 758b718347094af7e7e35ec18359d32f8928766e Author: Jean-Baptiste Kempf Date: Tue Feb 22 18:43:48 2022 +0100 diff -Nru vlc-3.0.17.4/doc/libvlc/CMakeLists.txt vlc-3.0.18/doc/libvlc/CMakeLists.txt --- vlc-3.0.17.4/doc/libvlc/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/doc/libvlc/CMakeLists.txt 2022-08-24 17:42:00.000000000 +0000 @@ -0,0 +1,38 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 3.0) + +# configure with your own path +# -DLIBVLC_SDK_INC:STRING=S:/sources/build/win64/win64/vlc-3.0.0-dev/sdk/include +# -DLIBVLC_SDK_LIB:STRING=S:/sources/build/win64/win64/vlc-3.0.0-dev/sdk/lib +# +# or set them in your VSCode settings +# { +# "cmake.configureSettings": { +# "LIBVLC_SDK_INC": "S:/sources/vlc/include", +# "LIBVLC_SDK_LIB": "S:/sources/build/win64/win64/lib/.libs" +# } +# } + +set("LIBVLC_SDK_INC" "" CACHE PATH "libvlc include folder, containing the vlc/ includes") +set("LIBVLC_SDK_LIB" "" CACHE PATH "libvlc library folder, containing the libvlc libraries") + +project("libvlc samples") + +# define the libvlc external build +add_library(libvlc SHARED IMPORTED GLOBAL) +target_include_directories(libvlc INTERFACE "${LIBVLC_SDK_INC}") +if (MSVC) + set_target_properties(libvlc PROPERTIES IMPORTED_IMPLIB "${LIBVLC_SDK_LIB}/libvlc.lib") +else () + set_target_properties(libvlc PROPERTIES IMPORTED_IMPLIB "${LIBVLC_SDK_LIB}/libvlc.dll.a") +endif () + +if(WIN32) + + add_executable(d3d11_swapr WIN32 d3d11_swapr.cpp) + target_compile_definitions(d3d11_swapr PRIVATE _WIN32_WINNT=0x0601) + target_link_libraries(d3d11_swapr libvlc d3d11 d3dcompiler uuid) + + add_executable(win_player WIN32 win_player.c) + target_link_libraries(win_player libvlc) + +endif() diff -Nru vlc-3.0.17.4/doc/libvlc/win_player.c vlc-3.0.18/doc/libvlc/win_player.c --- vlc-3.0.17.4/doc/libvlc/win_player.c 1970-01-01 00:00:00.000000000 +0000 +++ vlc-3.0.18/doc/libvlc/win_player.c 2022-07-23 08:04:37.000000000 +0000 @@ -0,0 +1,177 @@ +/* compile: cc win_player.c -o win_player.exe -L -lvlc */ + +#include +#include + +#ifdef _MSC_VER +typedef int ssize_t; +#endif + +#include + +#define SCREEN_WIDTH 1500 +#define SCREEN_HEIGHT 900 + +struct vlc_context +{ + libvlc_instance_t *p_libvlc; + libvlc_media_player_t *p_mediaplayer; +}; + + +static const char *AspectRatio = NULL; + +static LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + if( message == WM_CREATE ) + { + /* Store p_mediaplayer for future use */ + CREATESTRUCT *c = (CREATESTRUCT *)lParam; + SetWindowLongPtr( hWnd, GWLP_USERDATA, (LONG_PTR)c->lpCreateParams ); + return 0; + } + + LONG_PTR p_user_data = GetWindowLongPtr( hWnd, GWLP_USERDATA ); + if( p_user_data == 0 ) + return DefWindowProc(hWnd, message, wParam, lParam); + struct vlc_context *ctx = (struct vlc_context *)p_user_data; + + switch(message) + { + case WM_DESTROY: + PostQuitMessage(0); + return 0; + case WM_DROPFILES: + { + HDROP hDrop = (HDROP)wParam; + char file_path[MAX_PATH]; + libvlc_media_player_stop( ctx->p_mediaplayer ); + + if (DragQueryFile(hDrop, 0, file_path, sizeof(file_path))) + { + libvlc_media_t *p_media = libvlc_media_new_path( ctx->p_libvlc, file_path ); + libvlc_media_t *p_old_media = libvlc_media_player_get_media( ctx->p_mediaplayer ); + libvlc_media_player_set_media( ctx->p_mediaplayer, p_media ); + libvlc_media_release( p_old_media ); + + libvlc_media_player_play( ctx->p_mediaplayer ); + } + DragFinish(hDrop); + } + return 0; + case WM_KEYDOWN: + case WM_SYSKEYDOWN: + { + int key = tolower( MapVirtualKey( (UINT)wParam, 2 ) ); + if (key == 'a') + { + if (AspectRatio == NULL) + AspectRatio = "16:10"; + else if (strcmp(AspectRatio,"16:10")==0) + AspectRatio = "16:9"; + else if (strcmp(AspectRatio,"16:9")==0) + AspectRatio = "4:3"; + else if (strcmp(AspectRatio,"4:3")==0) + AspectRatio = "185:100"; + else if (strcmp(AspectRatio,"185:100")==0) + AspectRatio = "221:100"; + else if (strcmp(AspectRatio,"221:100")==0) + AspectRatio = "235:100"; + else if (strcmp(AspectRatio,"235:100")==0) + AspectRatio = "239:100"; + else if (strcmp(AspectRatio,"239:100")==0) + AspectRatio = "5:3"; + else if (strcmp(AspectRatio,"5:3")==0) + AspectRatio = "5:4"; + else if (strcmp(AspectRatio,"5:4")==0) + AspectRatio = "1:1"; + else if (strcmp(AspectRatio,"1:1")==0) + AspectRatio = NULL; + libvlc_video_set_aspect_ratio( ctx->p_mediaplayer, AspectRatio ); + } + break; + } + default: break; + } + + return DefWindowProc (hWnd, message, wParam, lParam); +} + +int WINAPI WinMain(HINSTANCE hInstance, + HINSTANCE hPrevInstance, + LPSTR lpCmdLine, + int nCmdShow) +{ + WNDCLASSEX wc; + char *file_path; + struct vlc_context Context; + libvlc_media_t *p_media; + (void)hPrevInstance; + HWND hWnd; + + /* remove "" around the given path */ + if (lpCmdLine[0] == '"') + { + file_path = _strdup( lpCmdLine+1 ); + if (file_path[strlen(file_path)-1] == '"') + file_path[strlen(file_path)-1] = '\0'; + } + else + file_path = _strdup( lpCmdLine ); + + Context.p_libvlc = libvlc_new( 0, NULL ); + p_media = libvlc_media_new_path( Context.p_libvlc, file_path ); + free( file_path ); + Context.p_mediaplayer = libvlc_media_player_new_from_media( p_media ); + + ZeroMemory(&wc, sizeof(WNDCLASSEX)); + + wc.cbSize = sizeof(WNDCLASSEX); + wc.style = CS_HREDRAW | CS_VREDRAW; + wc.lpfnWndProc = WindowProc; + wc.hInstance = hInstance; + wc.hCursor = LoadCursor(NULL, IDC_ARROW); + wc.lpszClassName = "WindowClass"; + + RegisterClassEx(&wc); + + RECT wr = {0, 0, SCREEN_WIDTH, SCREEN_HEIGHT}; + AdjustWindowRect(&wr, WS_OVERLAPPEDWINDOW, FALSE); + + hWnd = CreateWindowEx(0, + "WindowClass", + "libvlc Demo app", + WS_OVERLAPPEDWINDOW, + CW_USEDEFAULT, CW_USEDEFAULT, + wr.right - wr.left, + wr.bottom - wr.top, + NULL, + NULL, + hInstance, + &Context); + DragAcceptFiles(hWnd, TRUE); + + libvlc_media_player_set_hwnd(Context.p_mediaplayer, hWnd); + + ShowWindow(hWnd, nCmdShow); + + libvlc_media_player_play( Context.p_mediaplayer ); + + MSG msg; + while (GetMessage(&msg, NULL, 0, 0)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + + if(msg.message == WM_QUIT) + break; + } + + libvlc_media_player_stop( Context.p_mediaplayer ); + + libvlc_media_release( libvlc_media_player_get_media( Context.p_mediaplayer ) ); + libvlc_media_player_release( Context.p_mediaplayer ); + libvlc_release( Context.p_libvlc ); + + return (int)msg.wParam; +} diff -Nru vlc-3.0.17.4/doc/Makefile.am vlc-3.0.18/doc/Makefile.am --- vlc-3.0.17.4/doc/Makefile.am 2022-02-15 17:24:38.000000000 +0000 +++ vlc-3.0.18/doc/Makefile.am 2022-07-23 08:04:37.000000000 +0000 @@ -10,6 +10,8 @@ libvlc/QtPlayer/QtVLC.pro \ libvlc/vlc-thumb.c \ libvlc/wx_player.cpp \ + libvlc/win_player.c \ + libvlc/CMakeLists.txt \ $(NULL) nobase_doc_DATA = $(LIBVLC_SAMPLES) diff -Nru vlc-3.0.17.4/doc/Makefile.in vlc-3.0.18/doc/Makefile.in --- vlc-3.0.17.4/doc/Makefile.in 2022-04-18 22:10:25.000000000 +0000 +++ vlc-3.0.18/doc/Makefile.in 2022-10-13 18:40:53.000000000 +0000 @@ -170,7 +170,6 @@ ALIASES = @ALIASES@ ALSA_CFLAGS = @ALSA_CFLAGS@ ALSA_LIBS = @ALSA_LIBS@ -ALTIVEC_CFLAGS = @ALTIVEC_CFLAGS@ AMTAR = @AMTAR@ AM_CPPFLAGS = @AM_CPPFLAGS@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ @@ -227,7 +226,6 @@ CFLAGS_dav1d = @CFLAGS_dav1d@ CFLAGS_dc1394 = @CFLAGS_dc1394@ CFLAGS_dca = @CFLAGS_dca@ -CFLAGS_deinterlace = @CFLAGS_deinterlace@ CFLAGS_dsm = @CFLAGS_dsm@ CFLAGS_dv1394 = @CFLAGS_dv1394@ CFLAGS_dvdnav = @CFLAGS_dvdnav@ @@ -236,11 +234,11 @@ CFLAGS_flac = @CFLAGS_flac@ CFLAGS_fluidsynth = @CFLAGS_fluidsynth@ CFLAGS_gles2 = @CFLAGS_gles2@ +CFLAGS_gme = @CFLAGS_gme@ CFLAGS_goom = @CFLAGS_goom@ CFLAGS_kate = @CFLAGS_kate@ CFLAGS_libbluray = @CFLAGS_libbluray@ CFLAGS_libmpeg2 = @CFLAGS_libmpeg2@ -CFLAGS_libvlccore = @CFLAGS_libvlccore@ CFLAGS_microdns = @CFLAGS_microdns@ CFLAGS_mkv = @CFLAGS_mkv@ CFLAGS_mmal = @CFLAGS_mmal@ @@ -316,6 +314,7 @@ CPPFLAGS_flac = @CPPFLAGS_flac@ CPPFLAGS_fluidsynth = @CPPFLAGS_fluidsynth@ CPPFLAGS_gles2 = @CPPFLAGS_gles2@ +CPPFLAGS_gme = @CPPFLAGS_gme@ CPPFLAGS_goom = @CPPFLAGS_goom@ CPPFLAGS_kate = @CPPFLAGS_kate@ CPPFLAGS_libass = @CPPFLAGS_libass@ @@ -409,6 +408,7 @@ FDKAAC_CFLAGS = @FDKAAC_CFLAGS@ FDKAAC_LIBS = @FDKAAC_LIBS@ FGREP = @FGREP@ +FILECMD = @FILECMD@ FILE_LIBVLCCORE_DLL = @FILE_LIBVLCCORE_DLL@ FILE_LIBVLC_DLL = @FILE_LIBVLC_DLL@ FLAC_CFLAGS = @FLAC_CFLAGS@ @@ -432,6 +432,8 @@ GLES2_LIBS = @GLES2_LIBS@ GL_CFLAGS = @GL_CFLAGS@ GL_LIBS = @GL_LIBS@ +GME_CFLAGS = @GME_CFLAGS@ +GME_LIBS = @GME_LIBS@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNUGETOPT_LIBS = @GNUGETOPT_LIBS@ @@ -819,6 +821,8 @@ SMB2_LIBS = @SMB2_LIBS@ SMBCLIENT_CFLAGS = @SMBCLIENT_CFLAGS@ SMBCLIENT_LIBS = @SMBCLIENT_LIBS@ +SNDIO_CFLAGS = @SNDIO_CFLAGS@ +SNDIO_LIBS = @SNDIO_LIBS@ SOCKET_LIBS = @SOCKET_LIBS@ SOXR_CFLAGS = @SOXR_CFLAGS@ SOXR_LIBS = @SOXR_LIBS@ @@ -993,6 +997,8 @@ libvlc/QtPlayer/QtVLC.pro \ libvlc/vlc-thumb.c \ libvlc/wx_player.cpp \ + libvlc/win_player.c \ + libvlc/CMakeLists.txt \ $(NULL) nobase_doc_DATA = $(LIBVLC_SAMPLES) diff -Nru vlc-3.0.17.4/extras/package/macosx/package.mak vlc-3.0.18/extras/package/macosx/package.mak --- vlc-3.0.17.4/extras/package/macosx/package.mak 2021-04-27 13:18:39.000000000 +0000 +++ vlc-3.0.18/extras/package/macosx/package.mak 2022-06-11 15:48:17.000000000 +0000 @@ -52,7 +52,7 @@ find $(prefix)/lib -name 'libvlc*.dylib' -maxdepth 1 -exec cp -a {} $@/Contents/MacOS/lib \; ## Copy plugins mkdir -p $@/Contents/MacOS/plugins - find $(prefix)/lib/vlc/plugins -name 'lib*_plugin.dylib' -maxdepth 2 -exec cp -a {} $@/Contents/MacOS/plugins \; + find $(prefix)/lib/vlc/plugins -name 'lib*_plugin.dylib' -maxdepth 3 -exec cp -a {} $@/Contents/MacOS/plugins \; ## Copy libbluray jar find "$(CONTRIB_DIR)/share/java/" -name 'libbluray*.jar' -maxdepth 1 -exec cp -a {} $@/Contents/MacOS/plugins \; || true ## Install binary diff -Nru vlc-3.0.17.4/extras/package/win32/msi/config.wxi.in vlc-3.0.18/extras/package/win32/msi/config.wxi.in --- vlc-3.0.17.4/extras/package/win32/msi/config.wxi.in 2018-03-29 12:04:52.000000000 +0000 +++ vlc-3.0.18/extras/package/win32/msi/config.wxi.in 2022-05-24 20:36:20.000000000 +0000 @@ -10,8 +10,9 @@ + - +