From 15cbbee79fc1b572f418ea78d08a54f07c83bd47 Mon Sep 17 00:00:00 2001 From: Alessio Sergi Date: Sun, 8 Oct 2017 10:38:32 +0200 Subject: [PATCH 1/3] nss: update to 3.32.1 --- srcpkgs/nss/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/nss/template b/srcpkgs/nss/template index c3dee662271..64c588f5579 100644 --- a/srcpkgs/nss/template +++ b/srcpkgs/nss/template @@ -3,7 +3,7 @@ _nsprver=4.16 pkgname=nss -version=3.32 +version=3.32.1 revision=1 hostmakedepends="perl" makedepends="zlib-devel nspr-devel sqlite-devel" @@ -13,7 +13,7 @@ maintainer="Juan RP " homepage="http://www.mozilla.org/projects/security/pki/nss/" license="MPL-2.0" distfiles="${MOZILLA_SITE}/security/nss/releases/NSS_${version//\./_}_RTM/src/nss-${version}.tar.gz" -checksum=35c6f381cc96bb25e4f924469f6ba3e57b3a16e0c2fb7e295a284a00d57ed335 +checksum=4de59ca7f5bf4a56fbcfdbb4a054f254ba9f408f56476957404a091048624652 do_build() { # Respect LDFLAGS From fc0a6682a9897b7c731245460bd52c0b24f26809 Mon Sep 17 00:00:00 2001 From: Alessio Sergi Date: Sun, 8 Oct 2017 10:48:48 +0200 Subject: [PATCH 2/3] firefox: update to 56.0.1 - pass '--enable-release' to disable gold linker on musl - enable new stylo css engine (x86_64-only) --- srcpkgs/firefox/files/mozconfig | 1 + .../firefox/patches/fix-seccomp-musl.patch | 184 ------------------ srcpkgs/firefox/patches/fix-tools.patch | 15 +- srcpkgs/firefox/patches/skia-freetype.patch | 163 ---------------- srcpkgs/firefox/template | 29 ++- 5 files changed, 30 insertions(+), 362 deletions(-) delete mode 100644 srcpkgs/firefox/patches/fix-seccomp-musl.patch delete mode 100644 srcpkgs/firefox/patches/skia-freetype.patch diff --git a/srcpkgs/firefox/files/mozconfig b/srcpkgs/firefox/files/mozconfig index ac3ab4f26d9..2bd421af0c6 100644 --- a/srcpkgs/firefox/files/mozconfig +++ b/srcpkgs/firefox/files/mozconfig @@ -43,6 +43,7 @@ ac_add_options --disable-profiling ac_add_options --enable-optimize="$CFLAGS" ac_add_options --enable-pie +ac_add_options --enable-release ac_add_options --enable-official-branding ac_add_options --enable-safe-browsing ac_add_options --enable-application=browser diff --git a/srcpkgs/firefox/patches/fix-seccomp-musl.patch b/srcpkgs/firefox/patches/fix-seccomp-musl.patch deleted file mode 100644 index e752585dc78..00000000000 --- a/srcpkgs/firefox/patches/fix-seccomp-musl.patch +++ /dev/null @@ -1,184 +0,0 @@ - -# HG changeset patch -# User Jed Davis -# Date 1499804607 21600 -# Node ID a8f06d32af317f7db813252afbaae05a13d8863a -# Parent 5cac7af6804c46f6e74547a0fed3c1cb27abc134 -Bug 1376653 - Loosen restrictions on clone flags for musl. r=gcp - -I've made this non-ifdef'ed, and removed currently unused ifdef'ed cases -for old Android versions, because I'd rather have less code that we're -not even compile-testing than save a few cycles on a non-critical path. - -MozReview-Commit-ID: B4Wn1elyK4f - -diff --git security/sandbox/linux/SandboxFilter.cpp security/sandbox/linux/SandboxFilter.cpp ---- security/sandbox/linux/SandboxFilter.cpp -+++ security/sandbox/linux/SandboxFilter.cpp -@@ -120,35 +120,29 @@ public: - virtual ResultExpr ClonePolicy(ResultExpr failPolicy) const { - // Allow use for simple thread creation (pthread_create) only. - - // WARNING: s390 and cris pass the flags in the second arg -- see - // CLONE_BACKWARDS2 in arch/Kconfig in the kernel source -- but we - // don't support seccomp-bpf on those archs yet. - Arg flags(0); - -- // The glibc source hasn't changed the thread creation clone flags -- // since 2004, so this *should* be safe to hard-code. Bionic's -- // value has changed a few times, and has converged on the same one -- // as glibc; allow any of them. -- static const int flags_common = CLONE_VM | CLONE_FS | CLONE_FILES | -- CLONE_SIGHAND | CLONE_THREAD | CLONE_SYSVSEM; -- static const int flags_modern = flags_common | CLONE_SETTLS | -+ // The exact flags used can vary. CLONE_DETACHED is used by musl -+ // and by old versions of Android (<= JB 4.2), but it's been -+ // ignored by the kernel since the beginning of the Git history. -+ // -+ // If we ever need to support Android <= KK 4.4 again, SETTLS -+ // and the *TID flags will need to be made optional. -+ static const int flags_required = CLONE_VM | CLONE_FS | CLONE_FILES | -+ CLONE_SIGHAND | CLONE_THREAD | CLONE_SYSVSEM | CLONE_SETTLS | - CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID; -+ static const int flags_optional = CLONE_DETACHED; - -- // Can't use CASES here because its decltype magic infers const -- // int instead of regular int and bizarre voluminous errors issue -- // forth from the depths of the standard library implementation. -- return Switch(flags) --#ifdef ANDROID -- .Case(flags_common | CLONE_DETACHED, Allow()) // <= JB 4.2 -- .Case(flags_common, Allow()) // JB 4.3 or KK 4.4 --#endif -- .Case(flags_modern, Allow()) // Android L or glibc -- .Default(failPolicy); -+ return If((flags & ~flags_optional) == flags_required, Allow()) -+ .Else(failPolicy); - } - - virtual ResultExpr PrctlPolicy() const { - // Note: this will probably need PR_SET_VMA if/when it's used on - // Android without being overridden by an allow-all policy, and - // the constant will need to be defined locally. - Arg op(0); - return Switch(op) - - -# HG changeset patch -# User Jed Davis -# Date 1499813988 21600 -# Node ID 9b5bb669d1283995fd8d01fe779bd8646cb2cd92 -# Parent a8f06d32af317f7db813252afbaae05a13d8863a -Bug 1376653 - Unconditionalize the tkill() polyfill. r=gcp - -MozReview-Commit-ID: JzLWCRQ9Keg - -diff --git security/sandbox/linux/SandboxFilter.cpp security/sandbox/linux/SandboxFilter.cpp ---- security/sandbox/linux/SandboxFilter.cpp -+++ security/sandbox/linux/SandboxFilter.cpp -@@ -87,25 +87,24 @@ protected: - typedef const sandbox::arch_seccomp_data& ArgsRef; - - static intptr_t BlockedSyscallTrap(ArgsRef aArgs, void *aux) { - MOZ_ASSERT(!aux); - return -ENOSYS; - } - - private: --#if defined(ANDROID) && ANDROID_VERSION < 16 - // Bug 1093893: Translate tkill to tgkill for pthread_kill; fixed in - // bionic commit 10c8ce59a (in JB and up; API level 16 = Android 4.1). -+ // Bug 1376653: musl also needs this, and security-wise it's harmless. - static intptr_t TKillCompatTrap(const sandbox::arch_seccomp_data& aArgs, - void *aux) - { - return syscall(__NR_tgkill, getpid(), aArgs.args[0], aArgs.args[1]); - } --#endif - - static intptr_t SetNoNewPrivsTrap(ArgsRef& aArgs, void* aux) { - if (gSetSandboxFilter == nullptr) { - // Called after BroadcastSetThreadSandbox finished, therefore - // not our doing and not expected. - return BlockedSyscallTrap(aArgs, nullptr); - } - // Signal that the filter is already in place. -@@ -236,21 +235,19 @@ public: - - // Send signals within the process (raise(), profiling, etc.) - case __NR_tgkill: { - Arg tgid(0); - return If(tgid == getpid(), Allow()) - .Else(InvalidSyscall()); - } - --#if defined(ANDROID) && ANDROID_VERSION < 16 - // Polyfill with tgkill; see above. - case __NR_tkill: - return Trap(TKillCompatTrap, nullptr); --#endif - - // Yield - case __NR_sched_yield: - return Allow(); - - // Thread creation. - case __NR_clone: - return ClonePolicy(InvalidSyscall()); - - -# HG changeset patch -# User Jed Davis -# Date 1499814186 21600 -# Node ID f68747fe8a15bc355f6380b760d747d52a9f4d26 -# Parent 9b5bb669d1283995fd8d01fe779bd8646cb2cd92 -Bug 1376653 - Fix handling of architecture differences for getdents. r=gcp - -MozReview-Commit-ID: ArGStWwkJAg - -diff --git security/sandbox/linux/SandboxFilterUtil.h security/sandbox/linux/SandboxFilterUtil.h ---- security/sandbox/linux/SandboxFilterUtil.h -+++ security/sandbox/linux/SandboxFilterUtil.h -@@ -100,34 +100,38 @@ public: - #ifdef __NR_stat64 - #define CASES_FOR_stat case __NR_stat64 - #define CASES_FOR_lstat case __NR_lstat64 - #define CASES_FOR_fstat case __NR_fstat64 - #define CASES_FOR_fstatat case __NR_fstatat64 - #define CASES_FOR_statfs case __NR_statfs64: case __NR_statfs - #define CASES_FOR_fstatfs case __NR_fstatfs64: case __NR_fstatfs - #define CASES_FOR_fcntl case __NR_fcntl64 --// We're using the 32-bit version on 32-bit desktop for some reason. --#define CASES_FOR_getdents case __NR_getdents64: case __NR_getdents - // FIXME: we might not need the compat cases for these on non-Android: - #define CASES_FOR_lseek case __NR_lseek: case __NR__llseek - #define CASES_FOR_ftruncate case __NR_ftruncate: case __NR_ftruncate64 - #else - #define CASES_FOR_stat case __NR_stat - #define CASES_FOR_lstat case __NR_lstat - #define CASES_FOR_fstatat case __NR_newfstatat - #define CASES_FOR_fstat case __NR_fstat - #define CASES_FOR_fstatfs case __NR_fstatfs - #define CASES_FOR_statfs case __NR_statfs - #define CASES_FOR_fcntl case __NR_fcntl --#define CASES_FOR_getdents case __NR_getdents - #define CASES_FOR_lseek case __NR_lseek - #define CASES_FOR_ftruncate case __NR_ftruncate - #endif - -+// getdents is not like the other FS-related syscalls with a "64" variant -+#ifdef __NR_getdents -+#define CASES_FOR_getdents case __NR_getdents64: case __NR_getdents -+#else -+#define CASES_FOR_getdents case __NR_getdents64 -+#endif -+ - #ifdef __NR_sigprocmask - #define CASES_FOR_sigprocmask case __NR_sigprocmask: case __NR_rt_sigprocmask - #define CASES_FOR_sigaction case __NR_sigaction: case __NR_rt_sigaction - #define CASES_FOR_sigreturn case __NR_sigreturn: case __NR_rt_sigreturn - #else - #define CASES_FOR_sigprocmask case __NR_rt_sigprocmask - #define CASES_FOR_sigaction case __NR_rt_sigaction - #define CASES_FOR_sigreturn case __NR_rt_sigreturn - diff --git a/srcpkgs/firefox/patches/fix-tools.patch b/srcpkgs/firefox/patches/fix-tools.patch index 80e79173bc2..d5a94cb5798 100644 --- a/srcpkgs/firefox/patches/fix-tools.patch +++ b/srcpkgs/firefox/patches/fix-tools.patch @@ -28,14 +28,15 @@ --- tools/profiler/core/platform-linux-android.cpp.orig +++ tools/profiler/core/platform-linux-android.cpp -@@ -505,8 +505,10 @@ - MOZ_ASSERT(mIsSynchronous); - MOZ_ASSERT(aContext); - +@@ -534,9 +534,11 @@ + void + Registers::SyncPopulate() + { +#if defined(__GLIBC__) - if (!getcontext(aContext)) { - FillInSample(*this, aContext); + if (!getcontext(&sSyncUContext)) { + PopulateRegsFromContext(*this, &sSyncUContext); } +#endif } - + #endif + diff --git a/srcpkgs/firefox/patches/skia-freetype.patch b/srcpkgs/firefox/patches/skia-freetype.patch deleted file mode 100644 index 6216333b491..00000000000 --- a/srcpkgs/firefox/patches/skia-freetype.patch +++ /dev/null @@ -1,163 +0,0 @@ -# HG changeset patch -# User Lee Salzman -# Date 1504120456 14400 -# Wed Aug 30 15:14:16 2017 -0400 -# Node ID 708d52f954b6d7ca2497fcb5b5084c6483300e89 -# Parent 33224536ce20d942576cd4b9ffb350d6dce397bc -clip FreeType glyph bitmap to mask in Skia - -MozReview-Commit-ID: 9NqLj9SkHFo - -diff --git a/gfx/skia/skia/src/ports/SkFontHost_FreeType_common.cpp b/gfx/skia/skia/src/ports/SkFontHost_FreeType_common.cpp ---- gfx/skia/skia/src/ports/SkFontHost_FreeType_common.cpp -+++ gfx/skia/skia/src/ports/SkFontHost_FreeType_common.cpp -@@ -390,65 +390,131 @@ void SkScalerContext_FreeType_Base::gene - const SkMatrix& bitmapTransform) - { - const bool doBGR = SkToBool(fRec.fFlags & SkScalerContext::kLCD_BGROrder_Flag); - const bool doVert = SkToBool(fRec.fFlags & SkScalerContext::kLCD_Vertical_Flag); - - switch ( face->glyph->format ) { - case FT_GLYPH_FORMAT_OUTLINE: { - FT_Outline* outline = &face->glyph->outline; -- FT_BBox bbox; -- FT_Bitmap target; - - int dx = 0, dy = 0; - if (fRec.fFlags & SkScalerContext::kSubpixelPositioning_Flag) { - dx = SkFixedToFDot6(glyph.getSubXFixed()); - dy = SkFixedToFDot6(glyph.getSubYFixed()); - // negate dy since freetype-y-goes-up and skia-y-goes-down - dy = -dy; - } -- FT_Outline_Get_CBox(outline, &bbox); -- /* -- what we really want to do for subpixel is -- offset(dx, dy) -- compute_bounds -- offset(bbox & !63) -- but that is two calls to offset, so we do the following, which -- achieves the same thing with only one offset call. -- */ -- FT_Outline_Translate(outline, dx - ((bbox.xMin + dx) & ~63), -- dy - ((bbox.yMin + dy) & ~63)); -+ -+ memset(glyph.fImage, 0, glyph.rowBytes() * glyph.fHeight); - - if (SkMask::kLCD16_Format == glyph.fMaskFormat) { -+ FT_Outline_Translate(outline, dx, dy); - FT_Error err = FT_Render_Glyph(face->glyph, doVert ? FT_RENDER_MODE_LCD_V : - FT_RENDER_MODE_LCD); - if (err) { - SK_TRACEFTR(err, "Could not render glyph."); -- sk_bzero(glyph.fImage, glyph.computeImageSize()); - return; - } -+ - SkMask mask; - glyph.toMask(&mask); -+#ifdef SK_SHOW_TEXT_BLIT_COVERAGE -+ memset(mask.fImage, 0x80, mask.fBounds.height() * mask.fRowBytes); -+#endif -+ FT_GlyphSlotRec& ftGlyph = *face->glyph; -+ -+ if (!SkIRect::Intersects(mask.fBounds, -+ SkIRect::MakeXYWH( ftGlyph.bitmap_left, -+ -ftGlyph.bitmap_top, -+ ftGlyph.bitmap.width, -+ ftGlyph.bitmap.rows))) -+ { -+ return; -+ } -+ -+ // If the FT_Bitmap extent is larger, discard bits of the bitmap outside the mask. -+ // If the SkMask extent is larger, shrink mask to fit bitmap (clearing discarded). -+ unsigned char* origBuffer = ftGlyph.bitmap.buffer; -+ // First align the top left (origin). -+ if (-ftGlyph.bitmap_top < mask.fBounds.fTop) { -+ int32_t topDiff = mask.fBounds.fTop - (-ftGlyph.bitmap_top); -+ ftGlyph.bitmap.buffer += ftGlyph.bitmap.pitch * topDiff; -+ ftGlyph.bitmap.rows -= topDiff; -+ ftGlyph.bitmap_top = -mask.fBounds.fTop; -+ } -+ if (ftGlyph.bitmap_left < mask.fBounds.fLeft) { -+ int32_t leftDiff = mask.fBounds.fLeft - ftGlyph.bitmap_left; -+ ftGlyph.bitmap.buffer += leftDiff; -+ ftGlyph.bitmap.width -= leftDiff; -+ ftGlyph.bitmap_left = mask.fBounds.fLeft; -+ } -+ if (mask.fBounds.fTop < -ftGlyph.bitmap_top) { -+ mask.fImage += mask.fRowBytes * (-ftGlyph.bitmap_top - mask.fBounds.fTop); -+ mask.fBounds.fTop = -ftGlyph.bitmap_top; -+ } -+ if (mask.fBounds.fLeft < ftGlyph.bitmap_left) { -+ mask.fImage += sizeof(uint16_t) * (ftGlyph.bitmap_left - mask.fBounds.fLeft); -+ mask.fBounds.fLeft = ftGlyph.bitmap_left; -+ } -+ // Origins aligned, clean up the width and height. -+ int ftVertScale = (doVert ? 3 : 1); -+ int ftHoriScale = (doVert ? 1 : 3); -+ if (mask.fBounds.height() * ftVertScale < SkToInt(ftGlyph.bitmap.rows)) { -+ ftGlyph.bitmap.rows = mask.fBounds.height() * ftVertScale; -+ } -+ if (mask.fBounds.width() * ftHoriScale < SkToInt(ftGlyph.bitmap.width)) { -+ ftGlyph.bitmap.width = mask.fBounds.width() * ftHoriScale; -+ } -+ if (SkToInt(ftGlyph.bitmap.rows) < mask.fBounds.height() * ftVertScale) { -+ mask.fBounds.fBottom = mask.fBounds.fTop + ftGlyph.bitmap.rows / ftVertScale; -+ } -+ if (SkToInt(ftGlyph.bitmap.width) < mask.fBounds.width() * ftHoriScale) { -+ mask.fBounds.fRight = mask.fBounds.fLeft + ftGlyph.bitmap.width / ftHoriScale; -+ } - if (fPreBlend.isApplicable()) { -- copyFT2LCD16(face->glyph->bitmap, mask, doBGR, -+ copyFT2LCD16(ftGlyph.bitmap, mask, doBGR, - fPreBlend.fR, fPreBlend.fG, fPreBlend.fB); - } else { -- copyFT2LCD16(face->glyph->bitmap, mask, doBGR, -+ copyFT2LCD16(ftGlyph.bitmap, mask, doBGR, - fPreBlend.fR, fPreBlend.fG, fPreBlend.fB); - } -+ // Restore the buffer pointer so FreeType can properly free it. -+ ftGlyph.bitmap.buffer = origBuffer; - } else { -+ FT_BBox bbox; -+ FT_Bitmap target; -+ FT_Outline_Get_CBox(outline, &bbox); -+ /* -+ what we really want to do for subpixel is -+ offset(dx, dy) -+ compute_bounds -+ offset(bbox & !63) -+ but that is two calls to offset, so we do the following, which -+ achieves the same thing with only one offset call. -+ */ -+ FT_Outline_Translate(outline, dx - ((bbox.xMin + dx) & ~63), -+ dy - ((bbox.yMin + dy) & ~63)); -+ - target.width = glyph.fWidth; - target.rows = glyph.fHeight; - target.pitch = glyph.rowBytes(); - target.buffer = reinterpret_cast(glyph.fImage); - target.pixel_mode = compute_pixel_mode( (SkMask::Format)fRec.fMaskFormat); - target.num_grays = 256; - -- memset(glyph.fImage, 0, glyph.rowBytes() * glyph.fHeight); - FT_Outline_Get_Bitmap(face->glyph->library, outline, &target); -+#ifdef SK_SHOW_TEXT_BLIT_COVERAGE -+ for (int y = 0; y < glyph.fHeight; ++y) { -+ for (int x = 0; x < glyph.fWidth; ++x) { -+ uint8_t& a = ((uint8_t*)glyph.fImage)[(glyph.rowBytes() * y) + x]; -+ a = SkTMax(a, 0x20); -+ } -+ } -+#endif - } - } break; - - case FT_GLYPH_FORMAT_BITMAP: { - FT_Pixel_Mode pixel_mode = static_cast(face->glyph->bitmap.pixel_mode); - SkMask::Format maskFormat = static_cast(glyph.fMaskFormat); - - // Assume that the other formats do not exist. - diff --git a/srcpkgs/firefox/template b/srcpkgs/firefox/template index 06e8590d361..da8e90432f5 100644 --- a/srcpkgs/firefox/template +++ b/srcpkgs/firefox/template @@ -1,28 +1,28 @@ # Template build file for 'firefox'. pkgname=firefox -version=55.0.3 -revision=2 +version=56.0.1 +revision=1 short_desc="Mozilla Firefox web browser" maintainer="Juan RP " homepage="https://www.mozilla.org/firefox/" license="MPL-2.0, GPL-2, LGPL-2.1" distfiles="${MOZILLA_SITE}/${pkgname}/releases/${version}/source/${pkgname}-${version}.source.tar.xz" -checksum=891836df85f8798c49f7b25661820f64d1311d59703c716eda471819b93ccda2 +checksum=ece052c9385ac6ccf58edb213b875f4793014c431f7e40de146bcd2dbcb0a3cb only_for_archs="i686 i686-musl x86_64 x86_64-musl" nopie=yes lib32disabled=yes -hostmakedepends="autoconf213 unzip zip pkg-config perl python yasm rust cargo" -makedepends=" - nss-devel libjpeg-turbo-devel gtk+-devel icu-devel pixman-devel +hostmakedepends="autoconf213 unzip zip pkg-config perl python yasm rust cargo + llvm clang" +makedepends="nss-devel libjpeg-turbo-devel gtk+-devel icu-devel pixman-devel sqlite-devel libevent-devel libnotify-devel libvpx-devel libXrender-devel hunspell-devel libXcomposite-devel libSM-devel libXt-devel libXdamage-devel $(vopt_if alsa alsa-lib-devel) $(vopt_if dbus dbus-glib-devel) $(vopt_if gtk3 gtk+3-devel) $(vopt_if pulseaudio pulseaudio-devel) $(vopt_if startup_notification startup-notification-devel) $(vopt_if xscreensaver libXScrnSaver-devel)" -depends="nss>=3.32 desktop-file-utils hicolor-icon-theme" +depends="nss>=3.32.1 desktop-file-utils hicolor-icon-theme" conflicts="firefox-esr>=0" build_options="alsa dbus gtk3 pulseaudio startup_notification xscreensaver" @@ -48,10 +48,23 @@ post_extract() { do_build() { cp "${FILESDIR}/mozconfig" "${wrksrc}/.mozconfig" + case "$XBPS_TARGET_MACHINE" in + x86_64*) + # https://bugzilla.mozilla.org/show_bug.cgi?id=1341234 + echo "ac_add_options BINDGEN_CFLAGS='-I/usr/include/nspr -I/usr/include/pixman-1'" >>.mozconfig + # needed to enable stylo at runtime by default + echo "ac_add_options --enable-stylo" >>.mozconfig + ;; + i686*) + # https://bugzilla.mozilla.org/show_bug.cgi?id=1401093 + echo "ac_add_options --disable-stylo" >>.mozconfig + ;; + esac + case "$XBPS_TARGET_MACHINE" in *-musl) echo "ac_add_options --disable-jemalloc" >>.mozconfig - echo "ac_add_options --enable-gold=no" >>.mozconfig + echo "ac_add_options --disable-gold" >>.mozconfig ;; esac From 2c78a3b1d867bd6302a06e02ab8179443d5d755e Mon Sep 17 00:00:00 2001 From: Alessio Sergi Date: Sun, 8 Oct 2017 10:56:01 +0200 Subject: [PATCH 3/3] firefox-i18n: update to 56.0.1 --- srcpkgs/firefox-i18n/template | 190 +++++++++++++++++----------------- 1 file changed, 95 insertions(+), 95 deletions(-) diff --git a/srcpkgs/firefox-i18n/template b/srcpkgs/firefox-i18n/template index 52a2c6b86bb..ce90743e2e6 100644 --- a/srcpkgs/firefox-i18n/template +++ b/srcpkgs/firefox-i18n/template @@ -1,6 +1,6 @@ # Template file for 'firefox-i18n' pkgname=firefox-i18n -version=55.0.2 +version=56.0.1 revision=1 build_style=meta homepage="https://www.mozilla.org/firefox/" @@ -136,97 +136,97 @@ _pkgtmpl() { } checksum=" -bfb4a7cdabd4de84f0fb9afd7088c63a5bf9fabcf029043ce29ca31e5445aa99 -9a184de60398afbb2ebc295bdeab3d380d279f10058e740f24a3698f58352ff9 -0a2c0635cb5c93ee19f1349ee030deda1eb8424712139ea7dac907c6802163a5 -59fec790b299d60a79ff1c65f33badbc72ec35996415e556886c89c8eabf162f -d86959041861745cf4ab092099a4589efc0e92c1e108fa4742a6df38d68bbf62 -dd59a8c8f8b98da06f4d396e7fda15321b4997cd56b74a68ad92d99bc587c9cc -afc69881d209ee9fbb6132ae6fa6aeb419d97ef59ff11947b49a1639b8ecd7d0 -c6bf8ca17e8fd12fa043c2467ee64aff590c30afa8739479faff4b1cffe1da38 -40a1381e347e117dc1bdf153ac5edd58b4afd9326dcebc7305f795e2ec87c3dc -b005201e63d39f880940e925e3b3d4b3db2ceedcf778568ddbf56547a3570e10 -762820b3c1761f164a4fdd19988f12469804d79b01baf1acdfc72aca1ff279cf -93f2788cf935f8e911f36f83762a31c28b01acddff46061cc0aab9124fe4909a -b999ef74b583a07afaf37f9287ac71a571fbc18b0575220f2a45c55b5ccd785c -9659631f5e6758339352b709393c449bb64b83313bb8d7884d260dff9bd03a6d -afe2e530b011c42c6016b29a275393f6cc2f5759f77fda142d0cebf9656f5549 -747555a52c9a2730b1758bdb6b292e0763f348b8edd63981de5359edfda64a66 -05c9a6af92169e3c96e6ec086f9208701ab343e4ae2bd5e9cab2ef2e1847063d -9e51e34764588b9568d1bae8c10a78bd093af240707fd1da99bdbcc73ca24891 -f976be213b1bd161a3dc8429580e2565490781c6dfe63d7660a9c929680dbda0 -f9b1e337d9bd37392729dcea8817c57091bc651b9725cb5f283ac803a3bc1a90 -f850003853c1c93c560ba48df4f208292c2a6b7e69d3b24ca4fdb54c03d11023 -f2e5be6fef803229bd6d46bbf6ac6a53cd48995aecb4089055846a2116a09875 -4821f12b5a7543d4284a091425b8edbde0877d7c58ec5bea8483e055f2a4f695 -3d9ae4ae510bac83e8afd780b392648d840a668daa6c8aaa053239c0aeb08cd9 -8b5aec1fa22944e6b03f0afc3a20ead5068c3a11331c36e6648f19d3d9f8bd49 -35d65264214e1ec2fd29a63657d83bfb0f5c39e494414e6188572457244daec6 -8832427bf10acdc2862b7c40b188da515969644347b789834b762fe48e40eddb -ca9c14ff64cf4e4350d1fa3988cd62ff2af9442fd3b9f29db27717acd1f2048b -de81730bc1342b46f1b4efd492e1ad34f68d87d8b08fd6c18a9ef7d593f9d950 -82528a4430d928f43fb22e230d84f40ad2dce69a1de05167911dc34f40f161ae -408570b28e435c5a13fd680cfd5c935ce7e368366ff1ad8d83b1a36153b5797a -d0e74715212faa1aec8802830bb2a7345be88cbf9e40e809a0dd3dc9dd5f70ea -7d1f12435a321403c4126455ac765ae672d38f9b7de7e712dde01b1a36be032b -508a3b31e1640ad526679fc88f8a4880e961702647e69a1a729c59be6aa508a1 -f7a9ae993e3ddba9059ca908feb09c789f589c849144d97e0510796fd9698401 -c6195293c22ee63afc93c013b6812d5b8916e5bfcb5d69d435c96cf767aa6c4e -f30b15373157cc539e337edbad29b79e0397049bb00eff6cdbbbbc5bc22ab15d -e0ef3361910c4c78ad273be5a3169619d6aac11d47b9aba94d5e526aea920b75 -412cebca178f8c1ebef5da9d55051ade5ca61f57d298ed97d1f83e23d3d786b1 -6f6e6db35e1dfd8e9d321fea75ad2e263f78d66119d0fc57639fb83aa6ba6373 -d64031df09998b827aa09977ee9c07b50054f4caf864608077eeeddef2f4a8d3 -f692107175337753f8cd153576142211d0ac380539a660481dc2fd15883390c9 -766c2eaa8cf73a033b6beb9001b8e19f97e7c4464aa543fc25ea53eb41c19514 -69c20124670aafdd216f7b4982f55771603a72efd007420a1baec299d6fc616d -22723b8195eeb0d93d98e8b47f296982e6b34021b7313107b1f14200d4ba6fc8 -b6813598a6018f993bf69b0a507d3f66986a36c47987d6068a305afa3ae85ef3 -aae9cfb28813295d1d511dc26c790dc88b13f8781612c8f14556ff01505df73e -ac15a346d6f85d96e9df737346f5103955d72ef3ead75676ab228e4c208c35af -4247bb15e96239ec7c04020b3581afd573b2700a1e36180f296b4b182f984cae -2d80c0646508e0b8c7ca749fd5d48a9ccd585a5f8a0f4d50bc37826dfd37fcb2 -32453552cb85c7507bfec4ddddbe6eedc11edd73a816d49f3c7c6ac37b5cc294 -a4b6a2ddb9a6136e989370d7f350d44b96e2f19336bc0d7e53e15261cc7a733a -436e7b2ef41c8737b1ed6f2d962ed8f57b15a4f3f69ac7c1c016d7dae919fb67 -2f4e1c23eb506e12e43097c7338896c0bbab3c31508ffb393bcedb0a5e3318b8 -052c64e85a5c8f212de6b2a2343949ed9fc71d0b576af9e758ed1a6d7aac6180 -2769feec48f1e8d5c4102c9c7178e021df31c38229c293f2ba54502b6adbddac -b4e1eb8a9f1f97e04c929f3068c5bc5d6915747b8680aa8bdd22cdb82cebb775 -ce352cbea0b218e852d09f7c644ddd4470906d8a6dc69fc91f1a20fd915788a0 -b8ecfbdad46ce8ecdf6dd3c640010873ea0dfffaf8709a9a9a5b09c47e417e34 -1fdf44120ccac809cef11e96e2ab905bcb2cdd299bfb0ef47f86dba7bed10779 -e5821456e92e43fb5a4e55d1fb9ed5233ea73c5d00fda1dac7c3aa79d41ca78b -3ec887c7024eb954f0c89edf51e521ed57e209f388bcbab4b79c8fccc18e4d8e -2a704d9f28bf3b2b08bc4bcfbdcd452d0400d7823ec0e727f3040519264b76be -fc983bfffff3f06b43f3c8104dcb1f828a28e312696f428e74ab9756fcdb7cea -0763c540529962b74bd829eab79d56a126a57002f00b65a7b4ddeb429c4b6b96 -c9f07b8943758282bcadea50afca33c8a63ded415e2649b0ca18166ef066f966 -0d81e93a7a696677a6a0acf390ffce22de063919e7e1aa3ceaf83692685f0e38 -ae947b30da46fd27b36257aa021dad16810ad053195aa0e5e6e7e353fc3caf94 -e5b7c72907e19605a1415d2c3787e9fd36409545e7189b4afa7311db061e0923 -277b31996462cfd1a001a333b99c538b409b89643aff7649090d37b14ea5ca44 -a2f6eacf6f683c01b74adaab8335db7d2aeb38829f0129b8b3bd22a2c5ccbc35 -b308601a27898eb4cceeb6ca853fbc34bf152ee805921d05a17e72fb9dfa091b -44f369e06bc35ad5c99d01fac8852e8c1ae0597a3355814e8f1bd3430ed38434 -24d9d9bd2264331368d7e384ea48d3ab2f5c5083e74b33a45c3e377c036276c4 -2cbd0b9bd38b563dd3a95b0e687992efbbc0d4370fe3cebdb10a782fff4669c7 -1e0d626207c035571e8af87245b71aa236f16546d96588af624558fe04754248 -9c800ccd0779e7b07fc8f9752c6555671c0debc234989ceac982529b1caba112 -c177b9c277b2ae3d127fc5dea23bf1de78885a2305c7a336c15201adac858f1b -d7c6e8ee51b34e4de7a71f74f000f10318ba7198906f879ae3c722d0502aefa9 -6730ca8f59d766b368a233a5fef21833b2a577ec9d08191820ee499fc64badb3 -43f3607e7945c355048feed882b5368f8711d06d8b4b91940dc47368d9c861e6 -0b6613125d4a4bb9b48727f4b01f9d457ff90cf7456fc2b8fa3a460e0aa9e0a1 -1eca19fd55f485b4536bb3c09da1427f6def8a8e04d202259abc396e73188997 -97fe6567c451504c4fd09ffba935ec7baa9c0d484f17b82b930ffbb43d601bb7 -b8caa6fdb34281b2d71cf05d4dc15e0982cb26b2aaa83e3f7057e84a5034e13a -c44d952fa3c941d9670b677c8dcd41ecb589b9cb258df7e397c0df5c982ce1d6 -f9f873e91f5254e265bae5203d8b49494d68111ca2f45d3a71388c5c1c0eb266 -634f87351c726dd08127d7e6687b2d86cf255806fc98be9505e50080e4330d33 -08e005c5cc4b7c8b61e3a2df65119c3e4e3239b557af1386997bf75d27935e22 -61c08b0f2c59e5709caff710265fe854e540c8d1bb4da1e5505f59a3f9dd5cff -6fd1f6e564b23a91a34667bfca528696b09e4aa4adcfa168286de55eb7f938cb -0a8c5541b5e084e64ded93f94c19b5ad483cea9425cbc7519082f3fd6886a377 -a77bff1d91123cf255192e6d9998a879af2c4e8fff8bb228ff9c3df9229d62fe -5f3ed7ac4cd06305dab1b484716eecc067a97d2b6f2cfe16f82108b991b1a943" +5a0769818c14878be1fc46c040fdd8c856914df481886270cd416389921e9862 +55ed0d5eeeb5038bc7cdbfaf64e38a5151b21331b6396b1b1bd67039290a1cd5 +6d802d8c8fef1e3900443eee558dd54e2dbf9b5d548e4aaf6aa70efe53216971 +eb07898a24acdbaa317bd7457abb6520e59b9fecd8fe7e66755e3f36b25d6c98 +3f0087df47d8f6faa492b580d7a3f3cec17ecaa74720c94e68a258171c94fe39 +d5f77499d40153bfbc74713c61f3c6fecdf117a6e5240981a2bf822f974519e6 +3cf8984a42788b2627146fe64cd2bfca7597640ee1bf9f1ad268cbdce0b2b54c +011d719bf75c77bf2c5cf56f246aaf58067b175151deee9ef9dee9e90b96bc17 +01070a5c87a1c39b8f39f2f5b7bd143b662526642d90098542f5b6eb17b69c69 +ac18f71b01726dab12bbe200ba20282d98a5523f9d1dbea35869e3be43b12178 +106d600b21c6877a11d028a7b2025c3ed8efa0eb4cf887621d579442138c273a +bc0a7456a118a2e01f408c0968ef8b9ae1c3992f50e5d190677b254881ccf127 +dfce1edaa95d5d537f50b2ec71b41c2258699990ca7ff51f180d3fc7f3b4239d +d8056cbb6888fb408644fc19829c82b78f9bce429d2bc2d6a43124cb03b7d888 +dd5f141283676803730ddc2810f7bb645960b345bfe3afa6d38aea2cc6754cdd +4c024e4244f2ba82e99435fcb368fa07a4426a49346599cecbfc5e83ba056bb6 +57e43f3c40c54127f1485710a72d6dab400389c0736e1b02d5314108f782e10f +59e1abb36fdb7d47e74fd10d6033b86b9fa68acbfdc05d3da9e67378b7eb3b26 +f955f85aca61ffffebfbce54940b20177f272e7ff9c8096e274aef3154bf24ab +1d3cb3448d68aa2fbd97d0d7771da47e141008595b78399c87f16615bbc8ef79 +fa77a8345f7a67a4ed480e6f702d32180fdbc1afc11ad0bad21ec9d6f52db168 +84c43b02c0ac41c4e4b8878ac1c29d620d9924c8fc8d0355591351edf9935349 +fe1763e1c86d954c6ada561a884df22d10e88cf9c6339281b3750155cc05f425 +6c0ecb3ff1e954d947dbabd80e9cc74969e5b19fec4a970006934f44bc28e619 +74ea18f4ac0adf3b4b246a6fbace1a863fa8d4a9c608a21cae7eedb6ea7f8060 +e1575e775c52c6d74148167dcaebd9805201f975871d8073e60854d919f3db9d +8ecbb09d40c99823ff971f319a9012cae609207408e39f207b85e563c35d3c84 +b5d4691b663c223ac7e4d62b530fb9a94d1fab67d5c9ecfb6b8982451ab236fb +aec75604d1071ef585f1462ca33b9bf2b6c9299d6d49b2ffc01096462c3794c4 +a7c7fdf6cdfd44e5f8786d587360d2aa022cde980fc17e67a4caa136197150df +ed48e6df6381b74b6bb9525fc2401a39ccdb99eaf705ee41811eee81db4b13ac +61d78db454d888a95c9dc731ffcbb6a6981c9de164a539b6d6d05dd5b52b4fcd +c50d38ccc0b57b68ab98fefa8537f34f8b594c67139335826e4f17ee0e6773fd +278f60e6f3e4b2c52365a172509a4e372aa062409b46c7706002fe69693b51aa +303dc412abde1e69f44bf8f24fe7f8951ce42cc27be76c9d17eb44a4b1832bb4 +7a420f2f0c65f8fef734c7f5731f4cdb0e2900ea7559e99bb382ab33c5e713f6 +a2934ac63c494a0b3e0d22f622a2e4b53b96df4bffa8d053517da8299c7173e8 +b6a97f15d16b7ac69d3b1073d9c11ac6b20436188f3f0978a9115bc04b6ee2df +54a990f5b50e065e4c3e13eda4fb2f25107693db14860e8ea0aa2236ef1e0cbe +edae7658377dc3431149baaafb716bb411deeeb61d935254fc192188fa226f6e +b175317b939d97ead4166bf61f8eb8381948fba4a006d4463e80d19028c0cedc +69c49d9f467d426e41d32626ebca768e56c7861e6352c24519d9a0b4ca8c24cf +fd75cea0e56a1bb346f71a902d487c2509f8904899492ee1f958af4e7df2c249 +04c0a9baa1ec3e19c14bc17d3d17a47ea53c993f3a81c4b3347e6a96492141bb +77dfa6996b9a0b821066d80508d3fbf68d2335190f5600f5699d012fffd2fbdf +32c183296a65eb0b10ace20c8b35d0a37d10278fabd4b9826ed16bebba4e8936 +44e685f7353997fe77176e9f60e90725603f3453857fc18906ba99a7f3241b58 +67635d7c4cd289813783cb692c56ee4e4ffee71adbb3d9de9f87338203fb8e80 +c6087dad575452d8a4000a6e1e3d7fe4152b86fa84add96288b4fa4e50f8d85f +1a78b44d14d7f8d42c16b62539026c6ff1016dd8b249abf6bfd5a7691d840ac1 +72b665fb904a8c9b6a0d52ad8d00d6e6bab4cc5e4b80ec0fc8aeb4c6eec0767b +7db1c1c2a96ea24f5cb431061bc8e35edf4614841b4aba4d94ff772d12956cd7 +7fcdfd89576f4bddd306fa086be78829f2d51ea8b8b711c08b38e3eee1ffc61b +cf68f9ccead4f294b34b65d834fca8958bc2a37c87f99caf3b2b505b9983391d +5ea6da095c7e6b2926be1344f9b0a5940d9e3c4afc7f069d090554e7ee505a2c +d13f5fab53fe4c4a7c542f764d95312e77e82334b3f23503057acbd404a93403 +0325f0fc9944836effe4e8eddc4c5c7ed42e43e09dd7256dfc07c07dbd6391e2 +1fc0e47bb89335b6c53439e3b6d4fc0194822865acf7a4056ed779d4a77b0c3b +fc688802b4746dba520dee4c671d6f326e540aea0608e18c38f0f2eaefacb4e4 +fba7bdde1975652c41b3bcab2dc469d11be9ef232c2873034de371b1fc76f543 +150368f961ab2bf857ed6595515fd3b92620f7d9c15aca7b3e675ce0ea740253 +8e430484eb3630f48cf00dd594b4b3cac2e1982fa30edb905137f35b8ab6c961 +eb87db03918f7ff2eab63cdb9228af635c756add32a182d58ad531489d60405a +a4d4a5d410b421991b6935624651638679395fc7f82865649d0d2669244ad8cd +d5d17bef7724b6f4fb0f9a96b779e8840491de65a865d126edfeb66d49198100 +580979d39ef1bd11960e9a9619b59dddff15b3636071ca9dfea7a215ca744078 +b9a5d83079adb7f4b4bbdad55d88055ca6981849a76db0d027e0dff562118089 +165667535c09f079820d14a46fd72191e5fb1def75963c3a47bc80b8dab89fc7 +ed42b684815c2bce7271afe55f7a06cde02cd399a278c0e54a3dbe840eb0a372 +306d2554a6f6143d09e37be0714ea7bb170569e09514b2dcb6de3ec44fdd84cd +029a92c54db643481dcfdbab08016a569622e3d80ff12961dacad3a68faafbbb +051ca15a827eb86a49fc899b08d90e447d5f6e3909642835c9c7163cd6aa8688 +bf68302a604749211cdc2255073d1d755727afdbefa054118c322292c6d369fe +156edd762bbeaf980211f91516ac3e7967bdaaab2cfdccf61238fdcf726ef5b2 +2f2399082c4e7cff27f1d77fd7bd76acda1e3b61d4f14b87efc7dd2abb317586 +afa7826fa3d68464960d3129eb64e17df73e8a41b4e8a6f6688e76111d2a941a +62201c8e4c4ac140cb5e82fd699059de719f90ba77a41ba396971d65c0ba9e35 +385612528745dcc87df53770a8d52a573d69e71ea5275a40afd5be0108754bae +4d1a6cf70a5415a947f630ee41060ebbfea85271ce1dac9f3329fcf8c376115a +4c5b93d99e038e86e8461ebfb1bcc4bfb7e52430d385bcb27354826fd7f1af09 +f203ef6d205f6b69c706399a1013e94a4fb4017ffed9cff1c47ccd60eec02f0f +d029c776769e327356304886e17846ec79568a9aeac47f779bd2e0a24229ce4f +fef5561cb30d850319544df750d717bf6a63f95ba2b981e0d8dd0857a20e0e2d +a8819d2e17a9388bc2bf9f33219a85350470eb4c12fc3c752f90514198c68033 +ba97a17431b9626e5f63fce46d7daf50944a95eb36ecd82d1baffacf71981381 +06a0ef7059b2d272f2cd4817d4b821e12baf0667bcf9226f95154e0f2f1ad4c0 +57a0036f4d34487642e25011208f7bc2f7dec57e2e53003d30eae8eee54fd24b +1b4f6c67df638d197a4a335e4804c2ace7f4418143fb315f8b1869d0f58427d5 +e9d58bb00b3c5ab1fd3e733dad500fc5b16f8687a5c734be3005d3224fce6b2b +d1825e387c642e7138769e4ce93bb87f37c11af485d4f2304946c87cd3d5b561 +4cf4623f5444494c004e0e68bb1fa6b7fa19c4312b64ca5853b18f21fbc881c3 +d1180cc0ed1e5d06ebd13e3349374d72d43d609047f61f1e69b1cc9306aec8be +b50a88457241bd88e7e18dcd909d216fa37f52017f5d33f4721ec774ec57c845 +b812f005d3a87a80b228e9e01ff2daecb43fa781793cf73a4178cde54172b368"