diff --git a/.gitignore b/.gitignore index aafd4a1..559c5cd 100644 --- a/.gitignore +++ b/.gitignore @@ -536,3 +536,5 @@ firefox-3.6.4.source.tar.bz2 /firefox-langpacks-105.0.1-20220922.tar.xz /firefox-105.0.2.source.tar.xz /firefox-langpacks-105.0.2-20221005.tar.xz +/firefox-langpacks-106.0-20221014.tar.xz +/firefox-106.0.source.tar.xz diff --git a/firefox.spec b/firefox.spec index ebd59df..d9443eb 100644 --- a/firefox.spec +++ b/firefox.spec @@ -162,13 +162,13 @@ ExcludeArch: i686 Summary: Mozilla Firefox Web browser Name: firefox -Version: 105.0.2 -Release: 2%{?pre_tag}%{?dist} +Version: 106.0 +Release: 1%{?pre_tag}%{?dist} URL: https://www.mozilla.org/firefox/ License: MPLv1.1 or GPLv2+ or LGPLv2+ Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz %if %{with langpacks} -Source1: firefox-langpacks-%{version}%{?pre_version}-20221005.tar.xz +Source1: firefox-langpacks-%{version}%{?pre_version}-20221014.tar.xz %endif Source2: cbindgen-vendor.tar.xz Source10: firefox-mozconfig @@ -242,7 +242,6 @@ Patch402: mozilla-1196777.patch Patch407: mozilla-1667096.patch Patch408: mozilla-1663844.patch Patch415: mozilla-1670333.patch -Patch416: mozilla-1791856.patch Patch417: D158747.diff # PGO/LTO patches @@ -501,7 +500,6 @@ This package contains results of tests executed during build. %patch407 -p1 -b .1667096 %patch408 -p1 -b .1663844 %patch415 -p1 -b .1670333 -%patch416 -p1 -b .1791856 %patch417 -p1 -b .D158747 # PGO patches @@ -515,7 +513,7 @@ This package contains results of tests executed during build. %patch990 -p1 -b .work-around-GCC-ICE-on-arm %ifnarch ppc64le %{arm} -%patch1000 -p1 -b .libwebrtc-screen-cast-sync +#%patch1000 -p1 -b .libwebrtc-screen-cast-sync %endif %patch1100 -p1 -b .ppc-mobzuild @@ -1092,6 +1090,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : #--------------------------------------------------------------------- %changelog +* Fri Oct 14 2022 Martin Stransky - 106.0-1 +- Updated to 106.0 + * Fri Oct 14 2022 Martin Stransky - 105.0.2-2 - Fixed crashes on multi-monitor systems (mzbz#1793922) diff --git a/mozilla-1667096.patch b/mozilla-1667096.patch index d2f2bf7..99222fc 100644 --- a/mozilla-1667096.patch +++ b/mozilla-1667096.patch @@ -1,7 +1,7 @@ -diff -up firefox-98.0/media/ffvpx/libavcodec/codec_list.c.1667096 firefox-98.0/media/ffvpx/libavcodec/codec_list.c ---- firefox-98.0/media/ffvpx/libavcodec/codec_list.c.1667096 2022-03-01 11:15:54.962398882 +0100 -+++ firefox-98.0/media/ffvpx/libavcodec/codec_list.c 2022-03-01 11:17:46.605000755 +0100 -@@ -11,6 +11,9 @@ static const AVCodec * const codec_list[ +diff -up firefox-106.0/media/ffvpx/libavcodec/codec_list.c.1667096 firefox-106.0/media/ffvpx/libavcodec/codec_list.c +--- firefox-106.0/media/ffvpx/libavcodec/codec_list.c.1667096 2022-10-10 18:05:25.000000000 +0200 ++++ firefox-106.0/media/ffvpx/libavcodec/codec_list.c 2022-10-14 10:43:44.943418216 +0200 +@@ -11,6 +11,9 @@ static const FFCodec * const codec_list[ #if CONFIG_MP3_DECODER &ff_mp3_decoder, #endif @@ -11,10 +11,10 @@ diff -up firefox-98.0/media/ffvpx/libavcodec/codec_list.c.1667096 firefox-98.0/m #if CONFIG_LIBDAV1D &ff_libdav1d_decoder, #endif -diff -up firefox-98.0/media/ffvpx/libavcodec/libfdk-aacdec.c.1667096 firefox-98.0/media/ffvpx/libavcodec/libfdk-aacdec.c ---- firefox-98.0/media/ffvpx/libavcodec/libfdk-aacdec.c.1667096 2022-03-01 11:15:54.963398914 +0100 -+++ firefox-98.0/media/ffvpx/libavcodec/libfdk-aacdec.c 2022-03-01 11:15:54.963398914 +0100 -@@ -0,0 +1,409 @@ +diff -up firefox-106.0/media/ffvpx/libavcodec/libfdk-aacdec.c.1667096 firefox-106.0/media/ffvpx/libavcodec/libfdk-aacdec.c +--- firefox-106.0/media/ffvpx/libavcodec/libfdk-aacdec.c.1667096 2022-10-14 10:43:44.943418216 +0200 ++++ firefox-106.0/media/ffvpx/libavcodec/libfdk-aacdec.c 2022-10-14 13:33:42.604975843 +0200 +@@ -0,0 +1,498 @@ +/* + * AAC decoder wrapper + * Copyright (c) 2012 Martin Storsjo @@ -40,6 +40,7 @@ diff -up firefox-98.0/media/ffvpx/libavcodec/libfdk-aacdec.c.1667096 firefox-98. +#include "libavutil/common.h" +#include "libavutil/opt.h" +#include "avcodec.h" ++#include "codec_internal.h" +#include "internal.h" + +#ifdef AACDECODER_LIB_VL0 @@ -73,7 +74,14 @@ diff -up firefox-98.0/media/ffvpx/libavcodec/libfdk-aacdec.c.1667096 firefox-98. + int drc_heavy; + int drc_effect; + int drc_cut; ++ int album_mode; + int level_limit; ++#if FDKDEC_VER_AT_LEAST(2, 5) // 2.5.10 ++ int output_delay_set; ++ int flush_samples; ++ int delay_samples; ++#endif ++ AVChannelLayout downmix_layout; +} FDKAACDecContext; + + @@ -92,17 +100,23 @@ diff -up firefox-98.0/media/ffvpx/libavcodec/libfdk-aacdec.c.1667096 firefox-98. + OFFSET(drc_boost), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 127, AD, NULL }, + { "drc_cut", "Dynamic Range Control: attenuation factor, where [0] is none and [127] is max compression", + OFFSET(drc_cut), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 127, AD, NULL }, -+ { "drc_level", "Dynamic Range Control: reference level, quantized to 0.25dB steps where [0] is 0dB and [127] is -31.75dB", -+ OFFSET(drc_level), AV_OPT_TYPE_INT, { .i64 = -1}, -1, 127, AD, NULL }, ++ { "drc_level", "Dynamic Range Control: reference level, quantized to 0.25dB steps where [0] is 0dB and [127] is -31.75dB, -1 for auto, and -2 for disabled", ++ OFFSET(drc_level), AV_OPT_TYPE_INT, { .i64 = -1}, -2, 127, AD, NULL }, + { "drc_heavy", "Dynamic Range Control: heavy compression, where [1] is on (RF mode) and [0] is off", + OFFSET(drc_heavy), AV_OPT_TYPE_INT, { .i64 = -1}, -1, 1, AD, NULL }, +#if FDKDEC_VER_AT_LEAST(2, 5) // 2.5.10 -+ { "level_limit", "Signal level limiting", OFFSET(level_limit), AV_OPT_TYPE_INT, { .i64 = 0 }, -1, 1, AD }, ++ { "level_limit", "Signal level limiting", ++ OFFSET(level_limit), AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, AD }, +#endif +#if FDKDEC_VER_AT_LEAST(3, 0) // 3.0.0 + { "drc_effect","Dynamic Range Control: effect type, where e.g. [0] is none and [6] is general", + OFFSET(drc_effect), AV_OPT_TYPE_INT, { .i64 = -1}, -1, 8, AD, NULL }, +#endif ++#if FDKDEC_VER_AT_LEAST(3, 1) // 3.1.0 ++ { "album_mode","Dynamic Range Control: album mode, where [0] is off and [1] is on", ++ OFFSET(album_mode), AV_OPT_TYPE_INT, { .i64 = -1}, -1, 1, AD, NULL }, ++#endif ++ { "downmix", "Request a specific channel layout from the decoder", OFFSET(downmix_layout), AV_OPT_TYPE_CHLAYOUT, {.str = NULL}, .flags = AD }, + { NULL } +}; + @@ -132,6 +146,14 @@ diff -up firefox-98.0/media/ffvpx/libavcodec/libfdk-aacdec.c.1667096 firefox-98. + } + avctx->sample_rate = info->sampleRate; + avctx->frame_size = info->frameSize; ++#if FDKDEC_VER_AT_LEAST(2, 5) // 2.5.10 ++ if (!s->output_delay_set && info->outputDelay) { ++ // Set this only once. ++ s->flush_samples = info->outputDelay; ++ s->delay_samples = info->outputDelay; ++ s->output_delay_set = 1; ++ } ++#endif + + for (i = 0; i < info->numChannels; i++) { + AUDIO_CHANNEL_TYPE ctype = info->pChannelType[i]; @@ -209,17 +231,15 @@ diff -up firefox-98.0/media/ffvpx/libavcodec/libfdk-aacdec.c.1667096 firefox-98. + ch_error = 1; + } + } -+ if (!ch_error && -+ av_get_channel_layout_nb_channels(ch_layout) != info->numChannels) { ++ ++ av_channel_layout_uninit(&avctx->ch_layout); ++ av_channel_layout_from_mask(&avctx->ch_layout, ch_layout); ++ if (!ch_error && avctx->ch_layout.nb_channels != info->numChannels) { + av_log(avctx, AV_LOG_WARNING, "unsupported channel configuration\n"); + ch_error = 1; + } + if (ch_error) -+ avctx->channel_layout = 0; -+ else -+ avctx->channel_layout = ch_layout; -+ -+ avctx->channels = info->numChannels; ++ avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + + return 0; +} @@ -261,11 +281,19 @@ diff -up firefox-98.0/media/ffvpx/libavcodec/libfdk-aacdec.c.1667096 firefox-98. + return AVERROR_UNKNOWN; + } + -+ if (avctx->request_channel_layout > 0 && -+ avctx->request_channel_layout != AV_CH_LAYOUT_NATIVE) { ++#if FF_API_OLD_CHANNEL_LAYOUT ++FF_DISABLE_DEPRECATION_WARNINGS ++ if (avctx->request_channel_layout) { ++ av_channel_layout_uninit(&s->downmix_layout); ++ av_channel_layout_from_mask(&s->downmix_layout, avctx->request_channel_layout); ++ } ++FF_ENABLE_DEPRECATION_WARNINGS ++#endif ++ if (s->downmix_layout.nb_channels > 0 && ++ s->downmix_layout.order != AV_CHANNEL_ORDER_NATIVE) { + int downmix_channels = -1; + -+ switch (avctx->request_channel_layout) { ++ switch (s->downmix_layout.u.mask) { + case AV_CH_LAYOUT_STEREO: + case AV_CH_LAYOUT_STEREO_DOWNMIX: + downmix_channels = 2; @@ -274,7 +302,7 @@ diff -up firefox-98.0/media/ffvpx/libavcodec/libfdk-aacdec.c.1667096 firefox-98. + downmix_channels = 1; + break; + default: -+ av_log(avctx, AV_LOG_WARNING, "Invalid request_channel_layout\n"); ++ av_log(avctx, AV_LOG_WARNING, "Invalid downmix option\n"); + break; + } + @@ -311,6 +339,12 @@ diff -up firefox-98.0/media/ffvpx/libavcodec/libfdk-aacdec.c.1667096 firefox-98. + } + + if (s->drc_level != -1) { ++ // This option defaults to -1, i.e. not calling ++ // aacDecoder_SetParam(AAC_DRC_REFERENCE_LEVEL) at all, which defaults ++ // to the level from DRC metadata, if available. The user can set ++ // -drc_level -2, which calls aacDecoder_SetParam( ++ // AAC_DRC_REFERENCE_LEVEL) with a negative value, which then ++ // explicitly disables the feature. + if (aacDecoder_SetParam(s->handle, AAC_DRC_REFERENCE_LEVEL, s->drc_level) != AAC_DEC_OK) { + av_log(avctx, AV_LOG_ERROR, "Unable to set DRC reference level in the decoder\n"); + return AVERROR_UNKNOWN; @@ -325,6 +359,7 @@ diff -up firefox-98.0/media/ffvpx/libavcodec/libfdk-aacdec.c.1667096 firefox-98. + } + +#if FDKDEC_VER_AT_LEAST(2, 5) // 2.5.10 ++ // Setting this parameter to -1 enables the auto behaviour in the library. + if (aacDecoder_SetParam(s->handle, AAC_PCM_LIMITER_ENABLE, s->level_limit) != AAC_DEC_OK) { + av_log(avctx, AV_LOG_ERROR, "Unable to set in signal level limiting in the decoder\n"); + return AVERROR_UNKNOWN; @@ -340,6 +375,15 @@ diff -up firefox-98.0/media/ffvpx/libavcodec/libfdk-aacdec.c.1667096 firefox-98. + } +#endif + ++#if FDKDEC_VER_AT_LEAST(3, 1) // 3.1.0 ++ if (s->album_mode != -1) { ++ if (aacDecoder_SetParam(s->handle, AAC_UNIDRC_ALBUM_MODE, s->album_mode) != AAC_DEC_OK) { ++ av_log(avctx, AV_LOG_ERROR, "Unable to set album mode in the decoder\n"); ++ return AVERROR_UNKNOWN; ++ } ++ } ++#endif ++ + avctx->sample_fmt = AV_SAMPLE_FMT_S16; + + s->decoder_buffer_size = DECODER_BUFFSIZE * DECODER_MAX_CHANNELS; @@ -350,22 +394,38 @@ diff -up firefox-98.0/media/ffvpx/libavcodec/libfdk-aacdec.c.1667096 firefox-98. + return 0; +} + -+static int fdk_aac_decode_frame(AVCodecContext *avctx, void *data, ++static int fdk_aac_decode_frame(AVCodecContext *avctx, AVFrame *frame, + int *got_frame_ptr, AVPacket *avpkt) +{ + FDKAACDecContext *s = avctx->priv_data; -+ AVFrame *frame = data; + int ret; + AAC_DECODER_ERROR err; + UINT valid = avpkt->size; ++ UINT flags = 0; ++ int input_offset = 0; + -+ err = aacDecoder_Fill(s->handle, &avpkt->data, &avpkt->size, &valid); -+ if (err != AAC_DEC_OK) { -+ av_log(avctx, AV_LOG_ERROR, "aacDecoder_Fill() failed: %x\n", err); -+ return AVERROR_INVALIDDATA; ++ if (avpkt->size) { ++ err = aacDecoder_Fill(s->handle, &avpkt->data, &avpkt->size, &valid); ++ if (err != AAC_DEC_OK) { ++ av_log(avctx, AV_LOG_ERROR, "aacDecoder_Fill() failed: %x\n", err); ++ return AVERROR_INVALIDDATA; ++ } ++ } else { ++#if FDKDEC_VER_AT_LEAST(2, 5) // 2.5.10 ++ /* Handle decoder draining */ ++ if (s->flush_samples > 0) { ++ flags |= AACDEC_FLUSH; ++ } else { ++ return AVERROR_EOF; ++ } ++#else ++ return AVERROR_EOF; ++#endif + } + -+ err = aacDecoder_DecodeFrame(s->handle, (INT_PCM *) s->decoder_buffer, s->decoder_buffer_size / sizeof(INT_PCM), 0); ++ err = aacDecoder_DecodeFrame(s->handle, (INT_PCM *) s->decoder_buffer, ++ s->decoder_buffer_size / sizeof(INT_PCM), ++ flags); + if (err == AAC_DEC_NOT_ENOUGH_BITS) { + ret = avpkt->size - valid; + goto end; @@ -381,11 +441,36 @@ diff -up firefox-98.0/media/ffvpx/libavcodec/libfdk-aacdec.c.1667096 firefox-98. + goto end; + frame->nb_samples = avctx->frame_size; + ++#if FDKDEC_VER_AT_LEAST(2, 5) // 2.5.10 ++ if (flags & AACDEC_FLUSH) { ++ // Only return the right amount of samples at the end; if calling the ++ // decoder with AACDEC_FLUSH, it will keep returning frames indefinitely. ++ frame->nb_samples = FFMIN(s->flush_samples, frame->nb_samples); ++ av_log(s, AV_LOG_DEBUG, "Returning %d/%d delayed samples.\n", ++ frame->nb_samples, s->flush_samples); ++ s->flush_samples -= frame->nb_samples; ++ } else { ++ // Trim off samples from the start to compensate for extra decoder ++ // delay. We could also just adjust the pts, but this avoids ++ // including the extra samples in the output altogether. ++ if (s->delay_samples) { ++ int drop_samples = FFMIN(s->delay_samples, frame->nb_samples); ++ av_log(s, AV_LOG_DEBUG, "Dropping %d/%d delayed samples.\n", ++ drop_samples, s->delay_samples); ++ s->delay_samples -= drop_samples; ++ frame->nb_samples -= drop_samples; ++ input_offset = drop_samples * avctx->ch_layout.nb_channels; ++ if (frame->nb_samples <= 0) ++ return 0; ++ } ++ } ++#endif ++ + if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) + goto end; + -+ memcpy(frame->extended_data[0], s->decoder_buffer, -+ avctx->channels * avctx->frame_size * ++ memcpy(frame->extended_data[0], s->decoder_buffer + input_offset, ++ avctx->ch_layout.nb_channels * frame->nb_samples * + av_get_bytes_per_sample(avctx->sample_fmt)); + + *got_frame_ptr = 1; @@ -408,26 +493,30 @@ diff -up firefox-98.0/media/ffvpx/libavcodec/libfdk-aacdec.c.1667096 firefox-98. + av_log(avctx, AV_LOG_WARNING, "failed to clear buffer when flushing\n"); +} + -+AVCodec ff_libfdk_aac_decoder = { -+ .name = "libfdk_aac", -+ .long_name = NULL_IF_CONFIG_SMALL("Fraunhofer FDK AAC"), -+ .type = AVMEDIA_TYPE_AUDIO, -+ .id = AV_CODEC_ID_AAC, ++const FFCodec ff_libfdk_aac_decoder = { ++ .p.name = "libfdk_aac", ++ .p.long_name = NULL_IF_CONFIG_SMALL("Fraunhofer FDK AAC"), ++ .p.type = AVMEDIA_TYPE_AUDIO, ++ .p.id = AV_CODEC_ID_AAC, + .priv_data_size = sizeof(FDKAACDecContext), + .init = fdk_aac_decode_init, -+ .decode = fdk_aac_decode_frame, ++ FF_CODEC_DECODE_CB(fdk_aac_decode_frame), + .close = fdk_aac_decode_close, + .flush = fdk_aac_decode_flush, -+ .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, -+ .priv_class = &fdk_aac_dec_class, ++ .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF ++#if FDKDEC_VER_AT_LEAST(2, 5) // 2.5.10 ++ | AV_CODEC_CAP_DELAY ++#endif ++ , ++ .p.priv_class = &fdk_aac_dec_class, + .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | + FF_CODEC_CAP_INIT_CLEANUP, -+ .wrapper_name = "libfdk", ++ .p.wrapper_name = "libfdk", +}; -diff -up firefox-98.0/media/ffvpx/libavcodec/moz.build.1667096 firefox-98.0/media/ffvpx/libavcodec/moz.build ---- firefox-98.0/media/ffvpx/libavcodec/moz.build.1667096 2022-03-01 11:15:54.963398914 +0100 -+++ firefox-98.0/media/ffvpx/libavcodec/moz.build 2022-03-01 11:18:00.646453768 +0100 -@@ -123,6 +123,12 @@ if CONFIG['MOZ_LIBAV_FFT']: +diff -up firefox-106.0/media/ffvpx/libavcodec/moz.build.1667096 firefox-106.0/media/ffvpx/libavcodec/moz.build +--- firefox-106.0/media/ffvpx/libavcodec/moz.build.1667096 2022-10-10 18:05:25.000000000 +0200 ++++ firefox-106.0/media/ffvpx/libavcodec/moz.build 2022-10-14 10:43:44.943418216 +0200 +@@ -129,6 +129,12 @@ if CONFIG['MOZ_LIBAV_FFT']: 'avfft.c', ] @@ -440,10 +529,10 @@ diff -up firefox-98.0/media/ffvpx/libavcodec/moz.build.1667096 firefox-98.0/medi SYMBOLS_FILE = 'avcodec.symbols' NoVisibilityFlags() -diff -up firefox-98.0/toolkit/moz.configure.1667096 firefox-98.0/toolkit/moz.configure ---- firefox-98.0/toolkit/moz.configure.1667096 2022-03-01 11:15:54.881396269 +0100 -+++ firefox-98.0/toolkit/moz.configure 2022-03-01 11:15:54.963398914 +0100 -@@ -1950,6 +1950,15 @@ with only_when(compile_environment): +diff -up firefox-106.0/toolkit/moz.configure.1667096 firefox-106.0/toolkit/moz.configure +--- firefox-106.0/toolkit/moz.configure.1667096 2022-10-14 10:43:44.912417169 +0200 ++++ firefox-106.0/toolkit/moz.configure 2022-10-14 10:43:44.944418250 +0200 +@@ -2148,6 +2148,15 @@ with only_when(compile_environment): set_config("MOZ_SYSTEM_PNG", True, when="--with-system-png") diff --git a/mozilla-1791856.patch b/mozilla-1791856.patch deleted file mode 100644 index c7623be..0000000 --- a/mozilla-1791856.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -up firefox-105.0.1/widget/gtk/nsWindow.cpp.old firefox-105.0.1/widget/gtk/nsWindow.cpp ---- firefox-105.0.1/widget/gtk/nsWindow.cpp.old 2022-09-30 10:23:00.424784507 +0200 -+++ firefox-105.0.1/widget/gtk/nsWindow.cpp 2022-09-30 10:24:36.345005046 +0200 -@@ -1949,26 +1949,6 @@ void nsWindow::NativeMoveResizeWaylandPo - bool needsPositionUpdate = newBounds.TopLeft() != mBounds.TopLeft(); - bool needsSizeUpdate = newBounds.Size() != mLastSizeRequest; - -- if (needsPositionUpdate) { -- // See Bug 1735095 -- // Font scale causes rounding errors which we can't handle by move-to-rect. -- // The font scale should not be used, but let's handle it somehow to -- // avoid endless move calls. -- if (StaticPrefs::layout_css_devPixelsPerPx() > 0 || -- gfxPlatformGtk::GetFontScaleFactor() != 1) { -- bool roundingError = (abs(newBounds.x - mBounds.x) < 2 && -- abs(newBounds.y - mBounds.y) < 2); -- if (roundingError) { -- // Keep the window where it is. -- GdkPoint topLeft = DevicePixelsToGdkPointRoundDown(mBounds.TopLeft()); -- LOG(" apply rounding error workaround, move to %d, %d", topLeft.x, -- topLeft.y); -- gtk_window_move(GTK_WINDOW(mShell), topLeft.x, topLeft.y); -- needsPositionUpdate = false; -- } -- } -- } -- - if (needsSizeUpdate) { - // Wayland compositor changed popup size request from layout. - // Set the constraints to use them in nsMenuPopupFrame::SetPopupPosition(). diff --git a/sources b/sources index 2b0e7a7..3608af1 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ SHA512 (mochitest-python.tar.gz) = 18e1aeb475df5fbf1fe3838897d5ac2f3114aa349030713fc2be27af087b1b12f57642621b87bd052f324a7cb7fbae5f36b21502191d85692f62c8cdd69c8bf2 SHA512 (cbindgen-vendor.tar.xz) = 0d45c1decfd7aaee853748745c9f5a907c0c6a0cf809c2387aac1cdcf680b0844b1ef4d05148e0527de4ff6e4d4666110bea317bd00b7d73a1210eb58a815563 -SHA512 (firefox-105.0.2.source.tar.xz) = 49f4c0e7ecf2cef6fa7de8362185bd9ce6950304dadbbea0522a5782016587b9d58f32b45f0e0edf7a2cc31ea158ed10c886b287a18d1f2bff3daf50d9f0b926 -SHA512 (firefox-langpacks-105.0.2-20221005.tar.xz) = 4145606fbe11d57d91b3bfa93c54150c8ce8cad852349cacd96370a94960a1e176ea98eb6f7f4c8520dc51132202f6e434e96ee586c13a26c787281707d3da17 +SHA512 (firefox-langpacks-106.0-20221014.tar.xz) = 92f90a91107f48e27bb223c3d06941eca9a68bf7d2909d6192e6413191d291cec3d92654e0d64afea691ced7954c17444d79d7231a426a989d9969955ad5c8f3 +SHA512 (firefox-106.0.source.tar.xz) = 30ced2fff818858267eaab23974f6962c5d39433ce8e26507589535fc9348f00cf5e45b90997dfb6e2361b70900547fdb0e70d741127cc6705089ea585ea2296