From 5317769770870eb0433fccfba7ec5a11377afa64 Mon Sep 17 00:00:00 2001 From: graysky Date: Thu, 2 Nov 2023 04:41:05 -0400 Subject: [PATCH] alarm/vlc-rpi to 3.0.20-2 --- ...=> 0003-dev-3.0.19-port_1_to_3.0.20.patch} | 327 +++++++++++++++++- alarm/vlc-rpi/PKGBUILD | 6 +- 2 files changed, 320 insertions(+), 13 deletions(-) rename alarm/vlc-rpi/{0003-dev-3.0.19-port_1.patch => 0003-dev-3.0.19-port_1_to_3.0.20.patch} (98%) diff --git a/alarm/vlc-rpi/0003-dev-3.0.19-port_1.patch b/alarm/vlc-rpi/0003-dev-3.0.19-port_1_to_3.0.20.patch similarity index 98% rename from alarm/vlc-rpi/0003-dev-3.0.19-port_1.patch rename to alarm/vlc-rpi/0003-dev-3.0.19-port_1_to_3.0.20.patch index 95b75e27d..d2ce211ed 100644 --- a/alarm/vlc-rpi/0003-dev-3.0.19-port_1.patch +++ b/alarm/vlc-rpi/0003-dev-3.0.19-port_1_to_3.0.20.patch @@ -1,3 +1,38 @@ +diff --git a/NEWS b/NEWS +index 2cbc3e00b5..7690f54a53 100644 +--- a/NEWS ++++ b/NEWS +@@ -1,21 +1,3 @@ +-Changes between 3.0.19 and 3.0.20: +----------------------------------- +- +-Video Output: +- - Fix green line in fullscreen in D3D11 video output +- - Fix crash with some AMD drivers old versions +- - Fix events propagation issue when double-clicking with mouse wheel +- +-Decoders: +- - Fix crash when AV1 hardware decoder fails +- +-Interface: +- - Fix annoying disappearance of the Windows fullscreen controller +- +-Demuxers: +- - Fix potential security issue (OOB Write) on MMS:// by checking user size bounds +- +- + Changes between 3.0.18 and 3.0.19: + ---------------------------------- + +@@ -73,7 +55,7 @@ Misc: + * Fix 5.1/7.1 output on macOS and tvOS + * Fix several crashes and bugs in the macOS preferences panel + * Improvements on the threading of the MMDevice audio output on Windows +- * Fix a potential security issue on the uninstaller DLLs (CVE-2023-46814) ++ * Fix a potential security issue on the uninstaller DLLs + * Fix memory leaks when using the media_list_player libVLC APIs + + Translations: diff --git a/bin/vlc.c b/bin/vlc.c index 72e0eee428..6d92b95990 100644 --- a/bin/vlc.c @@ -15,9 +50,22 @@ index 72e0eee428..6d92b95990 100644 /***************************************************************************** diff --git a/configure.ac b/configure.ac -index 753d0610e6..2933715dc6 100644 +index 69beb77ac0..2933715dc6 100644 --- a/configure.ac +++ b/configure.ac +@@ -2,10 +2,10 @@ dnl Autoconf settings for vlc + + AC_COPYRIGHT([Copyright 1999-2023 VLC authors and VideoLAN]) + +-AC_INIT(vlc, 3.0.20) ++AC_INIT(vlc, 3.0.19) + VERSION_MAJOR=3 + VERSION_MINOR=0 +-VERSION_REVISION=20 ++VERSION_REVISION=19 + VERSION_EXTRA=0 + VERSION_DEV= + @@ -3083,6 +3083,21 @@ AS_IF([test "${have_gl}" = "yes"], [ dnl OpenGL ES 2: depends on EGL 1.1 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled]) @@ -76,6 +124,42 @@ index 753d0610e6..2933715dc6 100644 dnl dnl evas plugin +diff --git a/contrib/src/dav1d/SHA512SUMS b/contrib/src/dav1d/SHA512SUMS +index 737a98e57e..ae01773dff 100644 +--- a/contrib/src/dav1d/SHA512SUMS ++++ b/contrib/src/dav1d/SHA512SUMS +@@ -1 +1 @@ +-a91d217b8656c452dd80f5597e988f0e7a2ea32b12092c2695e7dc388033db7b193f7a8c98413bec31d1c38af376561d39f7618b935c4feeb6498c5d2b43f6a4 dav1d-1.3.0.tar.xz ++f172eebc0a5f6c51d31fc9e9758c2dd0de51d8a5d0e00c93a5f2b1b16b7b4a37b365f9c56dea95d400e66b63af5fa4c63d9e720719ac38852777fc8c6066e4a7 dav1d-1.2.1.tar.xz +diff --git a/contrib/src/dav1d/rules.mak b/contrib/src/dav1d/rules.mak +index 1a692e41f5..dd009c8dad 100644 +--- a/contrib/src/dav1d/rules.mak ++++ b/contrib/src/dav1d/rules.mak +@@ -1,6 +1,6 @@ + # libdav1d + +-DAV1D_VERSION := 1.3.0 ++DAV1D_VERSION := 1.2.1 + DAV1D_URL := $(VIDEOLAN)/dav1d/$(DAV1D_VERSION)/dav1d-$(DAV1D_VERSION).tar.xz + + PKGS += dav1d +diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h +index 37f7889337..2e8a1456bb 100644 +--- a/include/vlc_fixups.h ++++ b/include/vlc_fixups.h +@@ -589,12 +589,6 @@ struct addrinfo + struct addrinfo *ai_next; + }; + +-# ifdef __LIBCN__ +-/* OS/2 LIBCn has inet_pton(). Because of this, socklen_t is not defined above. +- * And OS/2 LIBCn has socklen_t. So include sys/socket.h here for socklen_t. */ +-# include +-# endif +- + const char *gai_strerror (int); + + int getaddrinfo (const char *node, const char *service, diff --git a/include/vlc_fourcc.h b/include/vlc_fourcc.h index 97827bd4c1..76ad846f2f 100644 --- a/include/vlc_fourcc.h @@ -141,6 +225,39 @@ index 53b90a2713..6a29b126e9 100644 include hw/vaapi/Makefile.am include hw/vdpau/Makefile.am include keystore/Makefile.am +diff --git a/modules/access/mms/mmsh.c b/modules/access/mms/mmsh.c +index ff598d775f..b032b4c5bb 100644 +--- a/modules/access/mms/mmsh.c ++++ b/modules/access/mms/mmsh.c +@@ -927,15 +927,7 @@ static int GetPacket( stream_t * p_access, chunk_t *p_ck ) + if( restsize < 8 ) + p_ck->i_size2 = 8; + else +- { + p_ck->i_size2 = GetWLE( p_sys->buffer + 10); +- if (p_ck->i_size2 < 8 /* Prevent underflow when set to i_data */ +- || p_ck->i_size2 - 8 > BUFFER_SIZE - 12 /* Prevent Out Of Bound Write */) +- { +- msg_Err(p_access, "invalid size2: %" PRIu16, p_ck->i_size2); +- return VLC_EGENERIC; +- } +- } + + p_ck->p_data = p_sys->buffer + 12; + p_ck->i_data = p_ck->i_size2 - 8; +diff --git a/modules/access/vcd/cdrom.c b/modules/access/vcd/cdrom.c +index 83ef4388c5..8b719ec532 100644 +--- a/modules/access/vcd/cdrom.c ++++ b/modules/access/vcd/cdrom.c +@@ -856,7 +856,7 @@ static int OpenVCDImage( vlc_object_t * p_this, const char *psz_dev, + p_vcddev->i_vcdimage_handle = vlc_open( psz_vcdfile, + O_RDONLY | O_NONBLOCK | O_BINARY ); + +- while( !b_found && fgets( line, 1024, cuefile ) ) ++ while( fgets( line, 1024, cuefile ) && !b_found ) + { + /* We have a cue file, but no valid vcd file yet */ + char filename[1024]; diff --git a/modules/audio_filter/converter/tospdif.c b/modules/audio_filter/converter/tospdif.c index 0c725d99e7..8d962d6e81 100644 --- a/modules/audio_filter/converter/tospdif.c @@ -856,7 +973,7 @@ index 0feb03b974..aa3a80f929 100644 #if LIBAVUTIL_VERSION_CHECK(54, 13, 1, 24, 100) case AV_PIX_FMT_D3D11VA_VLD: diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c -index 55ea1c82fb..c299fe2a38 100644 +index 8c892dd3f4..c299fe2a38 100644 --- a/modules/codec/avcodec/video.c +++ b/modules/codec/avcodec/video.c @@ -29,6 +29,8 @@ @@ -1045,7 +1162,24 @@ index 55ea1c82fb..c299fe2a38 100644 #endif AV_PIX_FMT_NONE, }; -@@ -814,11 +892,11 @@ failed: +@@ -788,7 +866,7 @@ int InitVideoHwDec( vlc_object_t *obj ) + + int res = InitVideoDecCommon( p_dec ); + if (res != VLC_SUCCESS) +- return res; ++ goto not_usable; + + const AVPixFmtDescriptor *src_desc = av_pix_fmt_desc_get(p_context->sw_pix_fmt); + +@@ -799,6 +877,7 @@ int InitVideoHwDec( vlc_object_t *obj ) + return VLC_SUCCESS; + } + ++not_usable: + EndVideoDec(obj); + return VLC_EGENERIC; + failed: +@@ -813,11 +892,11 @@ failed: * the ffmpeg codec will be opened, some memory allocated. The vout is not yet * opened (done after the first decoded frame). *****************************************************************************/ @@ -1059,7 +1193,7 @@ index 55ea1c82fb..c299fe2a38 100644 if( p_context == NULL ) return VLC_EGENERIC; -@@ -840,6 +918,27 @@ int InitVideoDec( vlc_object_t *obj ) +@@ -839,6 +918,27 @@ int InitVideoDec( vlc_object_t *obj ) return InitVideoDecCommon( p_dec ); } @@ -1087,7 +1221,7 @@ index 55ea1c82fb..c299fe2a38 100644 /***************************************************************************** * Flush: *****************************************************************************/ -@@ -849,6 +948,8 @@ static void Flush( decoder_t *p_dec ) +@@ -848,6 +948,8 @@ static void Flush( decoder_t *p_dec ) AVCodecContext *p_context = p_sys->p_context; date_Set(&p_sys->pts, VLC_TICK_INVALID); /* To make sure we recover properly */ @@ -1096,7 +1230,7 @@ index 55ea1c82fb..c299fe2a38 100644 p_sys->i_late_frames = 0; p_sys->b_draining = false; cc_Flush( &p_sys->cc ); -@@ -876,6 +977,8 @@ static bool check_block_validity( decoder_sys_t *p_sys, block_t *block ) +@@ -875,6 +977,8 @@ static bool check_block_validity( decoder_sys_t *p_sys, block_t *block ) if( block->i_flags & (BLOCK_FLAG_DISCONTINUITY|BLOCK_FLAG_CORRUPTED) ) { date_Set( &p_sys->pts, VLC_TICK_INVALID ); /* To make sure we recover properly */ @@ -1105,7 +1239,7 @@ index 55ea1c82fb..c299fe2a38 100644 cc_Flush( &p_sys->cc ); p_sys->i_late_frames = 0; -@@ -1216,6 +1319,10 @@ static picture_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block, bool *error +@@ -1215,6 +1319,10 @@ static picture_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block, bool *error } if( b_has_data ) { @@ -1116,7 +1250,7 @@ index 55ea1c82fb..c299fe2a38 100644 pkt->data = p_block->p_buffer; pkt->size = p_block->i_buffer; pkt->pts = p_block->i_pts > VLC_TICK_INVALID ? p_block->i_pts : AV_NOPTS_VALUE; -@@ -1322,6 +1429,17 @@ static picture_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block, bool *error +@@ -1321,6 +1429,17 @@ static picture_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block, bool *error if( i_pts == AV_NOPTS_VALUE ) i_pts = date_Get( &p_sys->pts ); @@ -1134,7 +1268,7 @@ index 55ea1c82fb..c299fe2a38 100644 /* Interpolate the next PTS */ if( i_pts > VLC_TICK_INVALID ) date_Set( &p_sys->pts, i_pts ); -@@ -1374,9 +1492,10 @@ static picture_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block, bool *error +@@ -1373,9 +1492,10 @@ static picture_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block, bool *error { /* When direct rendering is not used, get_format() and get_buffer() * might not be called. The output video format must be set here * then picture buffer can be allocated. */ @@ -1147,7 +1281,7 @@ index 55ea1c82fb..c299fe2a38 100644 p_pic = decoder_NewPicture(p_dec); if( !p_pic ) -@@ -1769,6 +1888,7 @@ static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *p_context, +@@ -1768,6 +1888,7 @@ static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *p_context, } swfmt = defaultfmt; } @@ -1155,6 +1289,28 @@ index 55ea1c82fb..c299fe2a38 100644 if (p_sys->pix_fmt == AV_PIX_FMT_NONE) goto no_reuse; +diff --git a/modules/gui/qt/components/controller.cpp b/modules/gui/qt/components/controller.cpp +index 3adfe67c0d..382be37dcc 100644 +--- a/modules/gui/qt/components/controller.cpp ++++ b/modules/gui/qt/components/controller.cpp +@@ -1089,7 +1089,7 @@ bool FullscreenControllerWidget::eventFilter( QObject *watched, QEvent *event ) + if ( watched == wParent && event->type() == QEvent::ActivationChange ) + { + /* Hide if not active */ +- if ( !wParent->isActiveWindow() && !isActiveWindow() ) ++ if ( !wParent->isActiveWindow() ) + hideFSC(); + } + +@@ -1307,7 +1307,7 @@ void FullscreenControllerWidget::mouseChanged( vout_thread_t *, int i_mousex, in + Q_ASSERT( wParent ); + + /* Ignore mouse events if not active */ +- if ( !wParent->isActiveWindow() && !isActiveWindow() ) return; ++ if ( !wParent->isActiveWindow() ) return; + + bool b_toShow; + diff --git a/modules/gui/qt/components/interface_widgets.cpp b/modules/gui/qt/components/interface_widgets.cpp index 4a0a0dae12..17946c58d6 100644 --- a/modules/gui/qt/components/interface_widgets.cpp @@ -16413,6 +16569,67 @@ index 2709425255..5ac384e633 100644 i_ret = CreateChain( p_filter, &fmt_mid ); es_format_Clean( &fmt_mid ); if( i_ret == VLC_SUCCESS ) +diff --git a/modules/video_chroma/d3d11_fmt.c b/modules/video_chroma/d3d11_fmt.c +index 1ca26e8e20..0875af6ea2 100644 +--- a/modules/video_chroma/d3d11_fmt.c ++++ b/modules/video_chroma/d3d11_fmt.c +@@ -146,32 +146,21 @@ int D3D11_AllocateShaderView(vlc_object_t *obj, ID3D11Device *d3ddevice, + #if !VLC_WINSTORE_APP + static HKEY GetAdapterRegistry(vlc_object_t *obj, DXGI_ADAPTER_DESC *adapterDesc) + { +- HKEY hDisplayKey, hKey; ++ HKEY hKey; + CHAR key[128]; + CHAR szData[256], lookup[256]; + DWORD len = 256; + LSTATUS ret; + +- ret = RegOpenKeyExA(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Control\\Class\\{4d36e968-e325-11ce-bfc1-08002be10318}", 0, KEY_READ, &hDisplayKey); +- if ( ret != ERROR_SUCCESS ) +- { +- msg_Warn(obj, "failed to read the Display Adapter registry key (%ld)", ret); +- return NULL; +- } +- +- char DisplayNum[16]; + _snprintf(lookup, 256, "pci\\ven_%04x&dev_%04x", adapterDesc->VendorId, adapterDesc->DeviceId); +- for (DWORD k=0;; k++) ++ for (int i=0;;i++) + { +- ret = RegEnumKeyA(hDisplayKey, k, DisplayNum, ARRAY_SIZE(DisplayNum)); +- if (ret != ERROR_SUCCESS) +- break; +- +- ret = RegOpenKeyExA(hDisplayKey, DisplayNum, 0, KEY_READ, &hKey); ++ _snprintf(key, 128, "SYSTEM\\CurrentControlSet\\Control\\Class\\{4d36e968-e325-11ce-bfc1-08002be10318}\\%04d", i); ++ ret = RegOpenKeyExA(HKEY_LOCAL_MACHINE, key, 0, KEY_READ, &hKey); + if ( ret != ERROR_SUCCESS ) + { +- msg_Warn(obj, "failed to read the %s Display Adapter registry key (%ld)", DisplayNum, ret); +- continue; ++ msg_Warn(obj, "failed to read the %d Display Adapter registry key (%ld)", i, ret); ++ return NULL; + } + + len = sizeof(szData); +@@ -179,15 +168,13 @@ static HKEY GetAdapterRegistry(vlc_object_t *obj, DXGI_ADAPTER_DESC *adapterDesc + if ( ret == ERROR_SUCCESS ) { + if (_strnicmp(lookup, szData, strlen(lookup)) == 0) + return hKey; +- msg_Dbg(obj, "different %s device %s vs %s", DisplayNum, lookup, szData); ++ msg_Dbg(obj, "different %d device %s vs %s", i, lookup, szData); + } + else +- msg_Warn(obj, "failed to get the %s MatchingDeviceId (%ld)", DisplayNum, ret); ++ msg_Warn(obj, "failed to get the %d MatchingDeviceId (%ld)", i, ret); + + RegCloseKey(hKey); + } +- RegCloseKey(hDisplayKey); +- + return NULL; + } + diff --git a/modules/video_output/Makefile.am b/modules/video_output/Makefile.am index ae48c8e062..270f1a63b8 100644 --- a/modules/video_output/Makefile.am @@ -28591,6 +28808,83 @@ index 08ad5022f9..b1feb622d8 100644 set_callbacks(Open, Close) add_shortcut("wl") vlc_module_end() +diff --git a/modules/video_output/win32/direct3d11.c b/modules/video_output/win32/direct3d11.c +index 9fe576ebad..06aeddeff8 100644 +--- a/modules/video_output/win32/direct3d11.c ++++ b/modules/video_output/win32/direct3d11.c +@@ -122,7 +122,6 @@ struct vout_display_sys_t + d3d11_handle_t hd3d; + IDXGISwapChain1 *dxgiswapChain; /* DXGI 1.2 swap chain */ + IDXGISwapChain4 *dxgiswapChain4; /* DXGI 1.5 for HDR */ +- DXGI_HDR_METADATA_HDR10 hdr10; + d3d11_device_t d3d_dev; + d3d_quad_t picQuad; + video_format_t quad_fmt; +@@ -1104,11 +1103,7 @@ static void Prepare(vout_display_t *vd, picture_t *picture, subpicture_t *subpic + hdr10.MaxMasteringLuminance = picture->format.mastering.max_luminance; + hdr10.MaxContentLightLevel = picture->format.lighting.MaxCLL; + hdr10.MaxFrameAverageLightLevel = picture->format.lighting.MaxFALL; +- if (memcmp(&sys->hdr10, &hdr10, sizeof(hdr10))) +- { +- memcpy(&sys->hdr10, &hdr10, sizeof(hdr10)); +- IDXGISwapChain4_SetHDRMetaData(sys->dxgiswapChain4, DXGI_HDR_METADATA_TYPE_HDR10, sizeof(hdr10), &hdr10); +- } ++ IDXGISwapChain4_SetHDRMetaData(sys->dxgiswapChain4, DXGI_HDR_METADATA_TYPE_HDR10, sizeof(hdr10), &hdr10); + } + } + +@@ -1575,6 +1570,16 @@ static int Direct3D11Open(vout_display_t *vd, bool external_device) + + video_format_Copy(&sys->pool_fmt, &fmt); + ++ sys->legacy_shader = sys->d3d_dev.feature_level < D3D_FEATURE_LEVEL_10_0 || ++ (sys->scaleProc == NULL && !CanUseTextureArray(vd)) || ++ BogusZeroCopy(vd); ++ ++ if (!sys->legacy_shader && is_d3d11_opaque(sys->pool_fmt.i_chroma)) ++ { ++ sys->pool_fmt.i_width = (sys->pool_fmt.i_width + 0x7F) & ~0x7F; ++ sys->pool_fmt.i_height = (sys->pool_fmt.i_height + 0x7F) & ~0x7F; ++ } ++ else + if ( sys->picQuad.formatInfo->formatTexture != DXGI_FORMAT_R8G8B8A8_UNORM && + sys->picQuad.formatInfo->formatTexture != DXGI_FORMAT_B5G6R5_UNORM ) + { +@@ -1684,10 +1689,6 @@ static int SetupOutputFormat(vout_display_t *vd, video_format_t *fmt) + + InitScaleProcessor(vd); + +- sys->legacy_shader = sys->d3d_dev.feature_level < D3D_FEATURE_LEVEL_10_0 || +- (sys->scaleProc == NULL && !CanUseTextureArray(vd)) || +- BogusZeroCopy(vd); +- + if (Direct3D11CreateFormatResources(vd, fmt)) { + msg_Err(vd, "Failed to allocate format resources"); + return VLC_EGENERIC; +diff --git a/modules/video_output/win32/events.c b/modules/video_output/win32/events.c +index 474142f0fc..476a710529 100644 +--- a/modules/video_output/win32/events.c ++++ b/modules/video_output/win32/events.c +@@ -277,9 +277,6 @@ static void *EventThread( void *p_this ) + case WM_MBUTTONUP: + MouseReleased( p_event, MOUSE_BUTTON_CENTER ); + break; +- case WM_MBUTTONDBLCLK: +- MousePressed( p_event, msg.hwnd, MOUSE_BUTTON_CENTER ); +- break; + + case WM_RBUTTONDOWN: + MousePressed( p_event, msg.hwnd, MOUSE_BUTTON_RIGHT ); +@@ -287,9 +284,6 @@ static void *EventThread( void *p_this ) + case WM_RBUTTONUP: + MouseReleased( p_event, MOUSE_BUTTON_RIGHT ); + break; +- case WM_RBUTTONDBLCLK: +- MousePressed( p_event, msg.hwnd, MOUSE_BUTTON_RIGHT ); +- break; + + case WM_KEYDOWN: + case WM_SYSKEYDOWN: diff --git a/pi-util/README.txt b/pi-util/README.txt new file mode 100644 index 0000000000..59a8655955 @@ -29296,3 +29590,16 @@ index 892d5b7dac..3c75b6450f 100644 assert( p_dst->context == NULL ); +diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c +index 085067cb40..592c0474ca 100644 +--- a/src/video_output/video_output.c ++++ b/src/video_output/video_output.c +@@ -1427,8 +1427,6 @@ static void ThreadChangeWindowMouse(vout_thread_t *vout, + case VOUT_WINDOW_MOUSE_DOUBLE_CLICK: + if (mouse->button_mask == 0) + vout_display_SendEventMouseDoubleClick(vd); +- else +- vout_display_SendEventMousePressed(vd, mouse->button_mask); + break; + default: vlc_assert_unreachable(); + break; diff --git a/alarm/vlc-rpi/PKGBUILD b/alarm/vlc-rpi/PKGBUILD index d18eb6f6a..9aa5ea41d 100644 --- a/alarm/vlc-rpi/PKGBUILD +++ b/alarm/vlc-rpi/PKGBUILD @@ -10,7 +10,7 @@ _vlcver=3.0.20 # optional fixup version including hyphen _vlcfixupver= pkgver=${_vlcver}${_vlcfixupver//-/.r} -pkgrel=1 +pkgrel=2 pkgdesc='Multi-platform MPEG, VCD/DVD, and DivX player with hw accel for RPi 3/4/400' url='https://www.videolan.org/vlc/' arch=(aarch64) @@ -113,7 +113,7 @@ source=(https://download.videolan.org/${_pkgname}/${_vlcver}/${_pkgname}-${_vlcv # credit to jc and RPi-Distro maintainers for this work, see: # https://github.com/jc-kynesim/vlc.git # https://github.com/RPi-Distro/vlc/tree/bullseye-rpt/debian/patches - 0003-dev-3.0.19-port_1.patch + 0003-dev-3.0.19-port_1_to_3.0.20.patch update-vlc-plugin-cache.hook) sha256sums=('adc7285b4d2721cddf40eb5270cada2aaa10a334cb546fd55a06353447ba29b5' 'SKIP' @@ -121,7 +121,7 @@ sha256sums=('adc7285b4d2721cddf40eb5270cada2aaa10a334cb546fd55a06353447ba29b5' 'be970a020695fdc4d0f968021f057a1cb625eeb6ee62995560e532d61ffb52dc' '753517a8b88c5950d516f0fe57a3ef169e0665ba7817d4b8d9976c666829a291' 'c47ecb0e8e8c03f8c5451aa12fc2e38e380364c38c411a13aa38b7b41def6989' - '6d0e7b14ae4cd2e490271a8c00cd97027af01eb6e65629f761562bcbd2869980' + 'ea721ef759c7fa4b9cc66ea57b4ba02b78e2944049ef39792c1ef2c6082e499f' 'b98043683dd90d3f5a3f501212dfc629839b661100de5ac79fd30cb7b4a06f13') validpgpkeys=('65F7C6B4206BD057A7EB73787180713BE58D1ADC') # VideoLAN Release Signing Key