Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Jan 2019 22:28:52 +0800
From:      Martin Wilke <miwi@FreeBSD.org>
To:        Jan Beich <jbeich@FreeBSD.org>
Cc:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   Re: svn commit: r490910 - in head: Mk Mk/Uses mail/thunderbird www/firefox www/firefox-esr www/firefox-i18n www/firefox/files www/palemoon www/seamonkey
Message-ID:  <20190122142851.3z5lkzp4zmazwv4y@miwitb.miwi.cc>
In-Reply-To: <201901212303.x0LN3jR3059519@repo.freebsd.org>
References:  <201901212303.x0LN3jR3059519@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On Mon, Jan 21, 2019 at 11:03:45PM +0000, Jan Beich wrote:
> Author: jbeich
> Date: Mon Jan 21 23:03:45 2019
> New Revision: 490910
> URL: https://svnweb.freebsd.org/changeset/ports/490910
> 
> Log:
>   www/firefox: update to 65.0
>   
>   Backport a fix for WebRender on Wayland e.g.,
>   
>   $ GDK_BACKEND=wayland MOZ_WEBRENDER=1 MOZ_ACCELERATED=1 firefox https://example.com/
>   
>   Changes:	https://www.mozilla.org/firefox/65.0/releasenotes/
>   PR:		233791
>   Security:	b1f7d52f-fc42-48e8-8403-87d4c9d26229
>   MFH:		2019Q1
>   Differential Revision:	https://reviews.freebsd.org/D18432
> 

Build is broken for me here too when WAYLAND is off. 

https://poudriere.fbsd.io/data/i3wm-debug-i3wm-ports-debug/2019-01-22_19h24m42s/logs/errors/firefox-65.0,1.log

> Added:
>   head/www/firefox/files/patch-bug1511726   (contents, props changed)
>   head/www/firefox/files/patch-bug1514156   (contents, props changed)
> Modified:
>   head/Mk/Uses/gecko.mk   (contents, props changed)
>   head/Mk/bsd.gecko.mk   (contents, props changed)
>   head/mail/thunderbird/Makefile   (contents, props changed)
>   head/www/firefox-esr/Makefile   (contents, props changed)
>   head/www/firefox-i18n/Makefile   (contents, props changed)
>   head/www/firefox-i18n/distinfo   (contents, props changed)
>   head/www/firefox/Makefile   (contents, props changed)
>   head/www/firefox/distinfo   (contents, props changed)
>   head/www/firefox/files/patch-bug847568   (contents, props changed)
>   head/www/palemoon/Makefile   (contents, props changed)
>   head/www/seamonkey/Makefile   (contents, props changed)
> 
> Modified: head/Mk/Uses/gecko.mk
> ==============================================================================
> --- head/Mk/Uses/gecko.mk	Mon Jan 21 22:50:27 2019	(r490909)
> +++ head/Mk/Uses/gecko.mk	Mon Jan 21 23:03:45 2019	(r490910)
> @@ -22,12 +22,12 @@ _GECKO_VERSION=	${gecko_ARGS:M[0-9][0-9]*}
>  .if ${gecko_ARGS:Mfirefox}
>  
>  _GECKO_DEFAULT_VERSION=	60
> -_GECKO_VERSIONS=		60 64
> +_GECKO_VERSIONS=		60 65
>  _GECKO_TYPE=	firefox
>  
>  # Dependence lines for different Firefox versions
>  60_DEPENDS=		${LOCALBASE}/lib/firefox/firefox:www/firefox-esr
> -64_DEPENDS=		${LOCALBASE}/lib/firefox/firefox:www/firefox
> +65_DEPENDS=		${LOCALBASE}/lib/firefox/firefox:www/firefox
>  
>  .if exists(${LOCALBASE}/bin/firefox)
>  _GECKO_INSTALLED_VER!=	${PKG_QUERY} %v firefox firefox-esr
> 
> Modified: head/Mk/bsd.gecko.mk
> ==============================================================================
> --- head/Mk/bsd.gecko.mk	Mon Jan 21 22:50:27 2019	(r490909)
> +++ head/Mk/bsd.gecko.mk	Mon Jan 21 23:03:45 2019	(r490910)
> @@ -152,7 +152,7 @@ RUSTFLAGS+=	${CFLAGS:M-mcpu=*:S/-mcpu=/-C target-cpu=/
>  .endif
>  
>  # Standard depends
> -_ALL_DEPENDS=	event ffi graphite harfbuzz hunspell icu jpeg nspr nss png pixman sqlite vpx
> +_ALL_DEPENDS=	event ffi graphite harfbuzz hunspell icu jpeg nspr nss png pixman sqlite vpx webp
>  
>  event_LIB_DEPENDS=	libevent.so:devel/libevent
>  event_MOZ_OPTIONS=	--with-system-libevent
> @@ -197,6 +197,9 @@ sqlite_MOZ_OPTIONS=	--enable-system-sqlite
>  vpx_LIB_DEPENDS=	libvpx.so:multimedia/libvpx
>  vpx_MOZ_OPTIONS=	--with-system-libvpx
>  
> +webp_LIB_DEPENDS=	libwebp.so:graphics/webp
> +webp_MOZ_OPTIONS=	--with-system-webp
> +
>  .for use in ${USE_MOZILLA}
>  ${use:S/-/_WITHOUT_/}=	${TRUE}
>  .endfor
> @@ -339,7 +342,7 @@ post-patch-SNDIO-on:
>  .endif
>  
>  .if ${PORT_OPTIONS:MRUST} || ${MOZILLA_VER:R:R} >= 54
> -BUILD_DEPENDS+=	${RUST_DEFAULT}>=1.29:lang/${RUST_DEFAULT}
> +BUILD_DEPENDS+=	${RUST_DEFAULT}>=1.30:lang/${RUST_DEFAULT}
>  . if ${MOZILLA_VER:R:R} < 54
>  MOZ_OPTIONS+=	--enable-rust
>  . endif
> 
> Modified: head/mail/thunderbird/Makefile
> ==============================================================================
> --- head/mail/thunderbird/Makefile	Mon Jan 21 22:50:27 2019	(r490909)
> +++ head/mail/thunderbird/Makefile	Mon Jan 21 23:03:45 2019	(r490910)
> @@ -30,7 +30,7 @@ BUILD_DEPENDS=	nspr>=4.19:devel/nspr \
>  
>  SSP_UNSAFE=	yes
>  USE_GECKO=	gecko
> -USE_MOZILLA=	# empty
> +USE_MOZILLA=	-webp
>  
>  USES=		tar:xz
>  
> 
> Modified: head/www/firefox-esr/Makefile
> ==============================================================================
> --- head/www/firefox-esr/Makefile	Mon Jan 21 22:50:27 2019	(r490909)
> +++ head/www/firefox-esr/Makefile	Mon Jan 21 23:03:45 2019	(r490910)
> @@ -34,7 +34,7 @@ USE_GECKO=	gecko
>  CPE_PRODUCT=	${PORTNAME}_esr
>  CONFLICTS_INSTALL=	firefox
>  MOZ_PKGCONFIG_FILES=	# empty
> -USE_MOZILLA=	# empty
> +USE_MOZILLA=	-webp
>  
>  USES=		tar:xz
>  
> 
> Modified: head/www/firefox-i18n/Makefile
> ==============================================================================
> --- head/www/firefox-i18n/Makefile	Mon Jan 21 22:50:27 2019	(r490909)
> +++ head/www/firefox-i18n/Makefile	Mon Jan 21 23:03:45 2019	(r490910)
> @@ -2,7 +2,7 @@
>  # $FreeBSD$
>  
>  PORTNAME=	firefox-i18n
> -PORTVERSION=	64.0.2
> +PORTVERSION=	65.0
>  CATEGORIES=	www
>  MASTER_SITES=	MOZILLA/${PORTNAME:S|-i18n||}/releases/${DISTVERSION}/linux-i686/xpi \
>  		MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}-candidates/build1/linux-i686/xpi
> @@ -15,7 +15,7 @@ COMMENT=	Localized interface for Firefox
>  
>  EXTRACT_DEPENDS=	zip:archivers/zip
>  
> -USES=		zip:infozip gecko:firefox,64,build
> +USES=		zip:infozip gecko:firefox,65,build
>  USE_XPI=	firefox
>  
>  NO_ARCH=	yes
> 
> Modified: head/www/firefox-i18n/distinfo
> ==============================================================================
> --- head/www/firefox-i18n/distinfo	Mon Jan 21 22:50:27 2019	(r490909)
> +++ head/www/firefox-i18n/distinfo	Mon Jan 21 23:03:45 2019	(r490910)
> @@ -1,199 +1,199 @@
> -TIMESTAMP = 1546973911
> -SHA256 (xpi/firefox-i18n-64.0.2/ach.xpi) = 696a8656312e0608f4e3a34e4d6d069c5b2de5c6372d3e9febf1c05b43663ded
> -SIZE (xpi/firefox-i18n-64.0.2/ach.xpi) = 455471
> -SHA256 (xpi/firefox-i18n-64.0.2/af.xpi) = ce34e4a5f02cd4d2dd73ed0d03f7157d3dff08b4d03efa8cc174b475f66f8593
> -SIZE (xpi/firefox-i18n-64.0.2/af.xpi) = 431980
> -SHA256 (xpi/firefox-i18n-64.0.2/an.xpi) = 3069edff490e7c83bfa85e0fd83cd58c57e8b02f05005539a34577c5a4f7cae0
> -SIZE (xpi/firefox-i18n-64.0.2/an.xpi) = 473572
> -SHA256 (xpi/firefox-i18n-64.0.2/ar.xpi) = 499ad740658bb6a8db0ed203bd4eb343f5cf04d4941217e9f8c0fe62c0304bb5
> -SIZE (xpi/firefox-i18n-64.0.2/ar.xpi) = 513409
> -SHA256 (xpi/firefox-i18n-64.0.2/as.xpi) = fac15969668c8b56d65abd66e3911c0b51bff910e33473fc6cb5d6c2241efcaa
> -SIZE (xpi/firefox-i18n-64.0.2/as.xpi) = 478302
> -SHA256 (xpi/firefox-i18n-64.0.2/ast.xpi) = dd4594967d3d48c748e2fde77862409f3444dd23f13fb9e5628d7d36f93697c9
> -SIZE (xpi/firefox-i18n-64.0.2/ast.xpi) = 461828
> -SHA256 (xpi/firefox-i18n-64.0.2/az.xpi) = 9421c6a7f1333ce55f3c001d5fc760b3f0d7e4818b0072ad29152bf1172480e8
> -SIZE (xpi/firefox-i18n-64.0.2/az.xpi) = 490042
> -SHA256 (xpi/firefox-i18n-64.0.2/be.xpi) = edfd9e14f49e2b857759a4e468e9f1a5c0b5728ad4f7eb345040adfe7138111c
> -SIZE (xpi/firefox-i18n-64.0.2/be.xpi) = 553263
> -SHA256 (xpi/firefox-i18n-64.0.2/bg.xpi) = 38b48c32355611fc56a2258e989d052a64c6ab2fc04b681e8e1518690ea2da6e
> -SIZE (xpi/firefox-i18n-64.0.2/bg.xpi) = 523742
> -SHA256 (xpi/firefox-i18n-64.0.2/bn-BD.xpi) = b79cd85711d9d7295e900764111f7872370e864ac5f2c78725d7f8bcae3f2522
> -SIZE (xpi/firefox-i18n-64.0.2/bn-BD.xpi) = 541868
> -SHA256 (xpi/firefox-i18n-64.0.2/bn-IN.xpi) = 868f6d1466d2c0901a2ed22552b5a756666f3991acd16ad3981c2411e25592be
> -SIZE (xpi/firefox-i18n-64.0.2/bn-IN.xpi) = 528988
> -SHA256 (xpi/firefox-i18n-64.0.2/br.xpi) = d2c01460b4c0f67149399eca05f19879942d13fc1c7ccfbf800bb2713c8113fc
> -SIZE (xpi/firefox-i18n-64.0.2/br.xpi) = 479240
> -SHA256 (xpi/firefox-i18n-64.0.2/bs.xpi) = 9a11d25a6ab7dd28a32dc7f82dee4cf775478ee15720f3aa08834436116ec82b
> -SIZE (xpi/firefox-i18n-64.0.2/bs.xpi) = 471753
> -SHA256 (xpi/firefox-i18n-64.0.2/ca.xpi) = fda4449dd886a2587a8fa5ee28bb57b5f68c178615d2337c0370955ee49d613d
> -SIZE (xpi/firefox-i18n-64.0.2/ca.xpi) = 469703
> -SHA256 (xpi/firefox-i18n-64.0.2/cak.xpi) = f1afec73c64a718be6d451b74ac5279bd6e458857b34d955d518e9705a061ea1
> -SIZE (xpi/firefox-i18n-64.0.2/cak.xpi) = 506049
> -SHA256 (xpi/firefox-i18n-64.0.2/cs.xpi) = b21c9b274ba88705a35a598320b5ba72d25189123d0e9cce5cbdba3f6f5c15df
> -SIZE (xpi/firefox-i18n-64.0.2/cs.xpi) = 494716
> -SHA256 (xpi/firefox-i18n-64.0.2/cy.xpi) = 577a21bbe7aff30a243f260d98f829e4fb2e2f242143d25b0f99b92f4cac1abf
> -SIZE (xpi/firefox-i18n-64.0.2/cy.xpi) = 484374
> -SHA256 (xpi/firefox-i18n-64.0.2/da.xpi) = efa785bfd843a10fe6aa895b2c42206760749cd25bc926b2c15ec0e7f7e63e2a
> -SIZE (xpi/firefox-i18n-64.0.2/da.xpi) = 486857
> -SHA256 (xpi/firefox-i18n-64.0.2/de.xpi) = f2b08af64c1635ef394c96a93fbd9de09b078ca69100af3574b29edba51fa971
> -SIZE (xpi/firefox-i18n-64.0.2/de.xpi) = 494534
> -SHA256 (xpi/firefox-i18n-64.0.2/dsb.xpi) = c2ff2d86ad15c794738c22d29acb43e473d281eef5d37e33afe15d68173240d0
> -SIZE (xpi/firefox-i18n-64.0.2/dsb.xpi) = 504228
> -SHA256 (xpi/firefox-i18n-64.0.2/el.xpi) = 4c3d642898cc9a4fe3fe85454211516ee3592e4af485d80108bf2f003c769262
> -SIZE (xpi/firefox-i18n-64.0.2/el.xpi) = 558816
> -SHA256 (xpi/firefox-i18n-64.0.2/en-CA.xpi) = b29519457f4e869a415844420336619df57d26466dd1ce6003a495cc656460a7
> -SIZE (xpi/firefox-i18n-64.0.2/en-CA.xpi) = 454069
> -SHA256 (xpi/firefox-i18n-64.0.2/en-GB.xpi) = 6357074150d683a6854a1c09d0ebff9846e5098b8660c208d45c54c42010404f
> -SIZE (xpi/firefox-i18n-64.0.2/en-GB.xpi) = 440963
> -SHA256 (xpi/firefox-i18n-64.0.2/en-US.xpi) = de2863d51dc51d04fe9b19c13b0af62c78ea238c06d523d2f9dbe4d4f07b99e5
> -SIZE (xpi/firefox-i18n-64.0.2/en-US.xpi) = 413614
> -SHA256 (xpi/firefox-i18n-64.0.2/en-ZA.xpi) = 3ffe116a2a40fbe601994813e8b03f917b8d3fc276df2a476282b4ad8ea0dd1e
> -SIZE (xpi/firefox-i18n-64.0.2/en-ZA.xpi) = 424511
> -SHA256 (xpi/firefox-i18n-64.0.2/eo.xpi) = 143f2b0c119809dd7639a8f20e6e0af5e30d9f1beb043a30a765915a7a7ac00d
> -SIZE (xpi/firefox-i18n-64.0.2/eo.xpi) = 482464
> -SHA256 (xpi/firefox-i18n-64.0.2/es-AR.xpi) = 04df43f9abc5d0e42624a22b5382621a6452630786fa8f124631b57b9d946fc0
> -SIZE (xpi/firefox-i18n-64.0.2/es-AR.xpi) = 490552
> -SHA256 (xpi/firefox-i18n-64.0.2/es-CL.xpi) = 736389ff625446a9288a92f36a62b8308b5b036cf747a1d8262fdbd3767d1eb5
> -SIZE (xpi/firefox-i18n-64.0.2/es-CL.xpi) = 490258
> -SHA256 (xpi/firefox-i18n-64.0.2/es-ES.xpi) = 1425817999be3b2351c9412652998281e3bcfd451aa74d62ede6d0903d601d33
> -SIZE (xpi/firefox-i18n-64.0.2/es-ES.xpi) = 437812
> -SHA256 (xpi/firefox-i18n-64.0.2/es-MX.xpi) = a3950e4a6f9bec16a29e0f4f041bbd8fa2728c04965683b111cbea6afbc801da
> -SIZE (xpi/firefox-i18n-64.0.2/es-MX.xpi) = 493155
> -SHA256 (xpi/firefox-i18n-64.0.2/et.xpi) = 40943a0851cc14790555e3bcbccb2f21ba79ff4663a2c793eab52ebaa10aebc6
> -SIZE (xpi/firefox-i18n-64.0.2/et.xpi) = 473521
> -SHA256 (xpi/firefox-i18n-64.0.2/eu.xpi) = 8c4ee465041e8975ee5c95f25e9cad4861847f544e89dcc6c265a90a25636de9
> -SIZE (xpi/firefox-i18n-64.0.2/eu.xpi) = 477299
> -SHA256 (xpi/firefox-i18n-64.0.2/fa.xpi) = 51eb1cd2135740646b3622630945b4fd29c1a4b9e48343047c96ec804b7819ce
> -SIZE (xpi/firefox-i18n-64.0.2/fa.xpi) = 529980
> -SHA256 (xpi/firefox-i18n-64.0.2/ff.xpi) = 7b12ae1f84996acec5ae35a19566a6969df1daa43168a7d8af4a36ddf2f32504
> -SIZE (xpi/firefox-i18n-64.0.2/ff.xpi) = 470399
> -SHA256 (xpi/firefox-i18n-64.0.2/fi.xpi) = cabf6c7db841deb8f997189678694a482c8ba6a8e88e749dae42c2feb860af82
> -SIZE (xpi/firefox-i18n-64.0.2/fi.xpi) = 470567
> -SHA256 (xpi/firefox-i18n-64.0.2/fr.xpi) = 20470cb6d2d6bc8373ec8e16878927e0bc5d2b04ac8c4b559e15f7e18f2a159e
> -SIZE (xpi/firefox-i18n-64.0.2/fr.xpi) = 499983
> -SHA256 (xpi/firefox-i18n-64.0.2/fy-NL.xpi) = 4841a00c3d1565d68110babb7f0fca6ba27d1f07575ac7b55f340b5b5f0c929c
> -SIZE (xpi/firefox-i18n-64.0.2/fy-NL.xpi) = 488322
> -SHA256 (xpi/firefox-i18n-64.0.2/ga-IE.xpi) = 0efbebbcbaa6b018625919c0196ddd6a5dabebbc5a77a9876b3a452850eecf32
> -SIZE (xpi/firefox-i18n-64.0.2/ga-IE.xpi) = 474812
> -SHA256 (xpi/firefox-i18n-64.0.2/gd.xpi) = c0e3fcb95e33e4e3bbd732396bc7dd2fdcca687b7d7c9a659ea19f66e4f6e2f3
> -SIZE (xpi/firefox-i18n-64.0.2/gd.xpi) = 491218
> -SHA256 (xpi/firefox-i18n-64.0.2/gl.xpi) = 63d3de5a77807e8090343fef35c931d72ac423d831f65e42f8796cd058fd4971
> -SIZE (xpi/firefox-i18n-64.0.2/gl.xpi) = 467038
> -SHA256 (xpi/firefox-i18n-64.0.2/gn.xpi) = 8f5fea77ad9a075784018836666376e977fa28ac9ca230e019ab56433ef52ae3
> -SIZE (xpi/firefox-i18n-64.0.2/gn.xpi) = 497412
> -SHA256 (xpi/firefox-i18n-64.0.2/gu-IN.xpi) = ce93ba6bda0ddd9ccdded1a8e81ca174502a72e0d447eec36c0fd10123f83c39
> -SIZE (xpi/firefox-i18n-64.0.2/gu-IN.xpi) = 559368
> -SHA256 (xpi/firefox-i18n-64.0.2/he.xpi) = 4473edeee521cd1c83352aa0b285e27af2e782570435e772bcb5c45b6d605613
> -SIZE (xpi/firefox-i18n-64.0.2/he.xpi) = 485007
> -SHA256 (xpi/firefox-i18n-64.0.2/hi-IN.xpi) = d817c145d1cf8347d4d2d39384bc539b54fd96e97f50ca2b66fd071448cb762e
> -SIZE (xpi/firefox-i18n-64.0.2/hi-IN.xpi) = 544063
> -SHA256 (xpi/firefox-i18n-64.0.2/hr.xpi) = 00c1cbd81036c950bbaed03f68f7eaccb44982ffd0a5251ccb992ce87969da6f
> -SIZE (xpi/firefox-i18n-64.0.2/hr.xpi) = 464610
> -SHA256 (xpi/firefox-i18n-64.0.2/hsb.xpi) = 7ee7ce1d15c00ba92f99e4a62a4979f6e22d74f3f445ebd44142f31c7c8bb2b7
> -SIZE (xpi/firefox-i18n-64.0.2/hsb.xpi) = 503936
> -SHA256 (xpi/firefox-i18n-64.0.2/hu.xpi) = c838f30a6f3bd01c05be8bd7b015fe1d75f5bc14a7cc0ec892e8933058d3c640
> -SIZE (xpi/firefox-i18n-64.0.2/hu.xpi) = 501541
> -SHA256 (xpi/firefox-i18n-64.0.2/hy-AM.xpi) = 8fa9f168701385915966ed837dd74a89b4b706ad4d9d56b75a7808022c29ecfb
> -SIZE (xpi/firefox-i18n-64.0.2/hy-AM.xpi) = 520949
> -SHA256 (xpi/firefox-i18n-64.0.2/ia.xpi) = a178c779fa9ef01262576807dcecaff2e799f2d03cf7bb3c764ade021cefbf91
> -SIZE (xpi/firefox-i18n-64.0.2/ia.xpi) = 478741
> -SHA256 (xpi/firefox-i18n-64.0.2/id.xpi) = 729754d226a71921f7496b48f8447ca4585dd17119c19823e446b479f51adcc6
> -SIZE (xpi/firefox-i18n-64.0.2/id.xpi) = 471527
> -SHA256 (xpi/firefox-i18n-64.0.2/is.xpi) = cce645d3a7ec36382478bed2f0daf832954ba0ed7aaac5f5134d0094bc60c6d3
> -SIZE (xpi/firefox-i18n-64.0.2/is.xpi) = 469905
> -SHA256 (xpi/firefox-i18n-64.0.2/it.xpi) = 49a60f56424f50dc326c054f7c70460fecfc6b001b3478db905fbef6b97cec03
> -SIZE (xpi/firefox-i18n-64.0.2/it.xpi) = 355575
> -SHA256 (xpi/firefox-i18n-64.0.2/ja.xpi) = 4da6c0e676cead654bce51dbd2ca64be2be6a6759136d7577f141151e13f1ae2
> -SIZE (xpi/firefox-i18n-64.0.2/ja.xpi) = 516116
> -SHA256 (xpi/firefox-i18n-64.0.2/ka.xpi) = 4ce6f0cd5d7712fc146fc22081388a09bf0839df4bedb75f3049767034f55395
> -SIZE (xpi/firefox-i18n-64.0.2/ka.xpi) = 521857
> -SHA256 (xpi/firefox-i18n-64.0.2/kab.xpi) = 9d3118dba90bd4a73d8c06fbbd21489d36e40fc6c5aac41c6fdc52cdad89e800
> -SIZE (xpi/firefox-i18n-64.0.2/kab.xpi) = 493582
> -SHA256 (xpi/firefox-i18n-64.0.2/kk.xpi) = a2fe2782130c11611f45d34d32ecc0befa5548eb8e1f909d3af9d2b08bcfb02c
> -SIZE (xpi/firefox-i18n-64.0.2/kk.xpi) = 550187
> -SHA256 (xpi/firefox-i18n-64.0.2/km.xpi) = 20f4e2b36759c8a7e3f9ca5d75dd413479f63f372ce304ad8cbde53f783c9471
> -SIZE (xpi/firefox-i18n-64.0.2/km.xpi) = 535444
> -SHA256 (xpi/firefox-i18n-64.0.2/kn.xpi) = 311932f0bf7a1c738710bdffd78c46985c6d5ab09306291539b63a3220d8744c
> -SIZE (xpi/firefox-i18n-64.0.2/kn.xpi) = 538358
> -SHA256 (xpi/firefox-i18n-64.0.2/ko.xpi) = 7fea4d4da22ea63e9be976af69eed65a4645c363e9e58f71606d76027ab187a0
> -SIZE (xpi/firefox-i18n-64.0.2/ko.xpi) = 500865
> -SHA256 (xpi/firefox-i18n-64.0.2/lij.xpi) = 69c431e7877f0fb4b447ccfa54843e4951806d4fb549c5ab8d85c35eb1e7659f
> -SIZE (xpi/firefox-i18n-64.0.2/lij.xpi) = 476187
> -SHA256 (xpi/firefox-i18n-64.0.2/lt.xpi) = 071d83aa10a370fd17cd248cbfa502cbbe7177863270425154d73eaa71be2293
> -SIZE (xpi/firefox-i18n-64.0.2/lt.xpi) = 504609
> -SHA256 (xpi/firefox-i18n-64.0.2/lv.xpi) = b4a3db72e80fc9c66dfbf5fb00429d7163a68c443539f920d792d96bb4cdc42c
> -SIZE (xpi/firefox-i18n-64.0.2/lv.xpi) = 490769
> -SHA256 (xpi/firefox-i18n-64.0.2/mai.xpi) = 60df202a9a1f6f9ddd35776aa93a6e0d633847b7ef52ebcdc7e2a0cb2a6c07f6
> -SIZE (xpi/firefox-i18n-64.0.2/mai.xpi) = 496201
> -SHA256 (xpi/firefox-i18n-64.0.2/mk.xpi) = b5ec4c61563297655d61db08d6aa948a28d2b10348fa1bad03cab831f2b0709b
> -SIZE (xpi/firefox-i18n-64.0.2/mk.xpi) = 457993
> -SHA256 (xpi/firefox-i18n-64.0.2/ml.xpi) = 2b4a1e53a96773a59d9264d51c4f92188e00d57c15255bf41d15097285ef9779
> -SIZE (xpi/firefox-i18n-64.0.2/ml.xpi) = 542332
> -SHA256 (xpi/firefox-i18n-64.0.2/mr.xpi) = 4f478648c2a6aeb5a19729cd3204394743dffbd08e26b33bd5ae8c7bc4b8ece7
> -SIZE (xpi/firefox-i18n-64.0.2/mr.xpi) = 540016
> -SHA256 (xpi/firefox-i18n-64.0.2/ms.xpi) = c9f2ad52a3a7c487be5f8551b8c217b63ffd4654775d6b027894bfad9d0758ed
> -SIZE (xpi/firefox-i18n-64.0.2/ms.xpi) = 473936
> -SHA256 (xpi/firefox-i18n-64.0.2/my.xpi) = 1da3c0b760f4d97191298fe407773a60b4e6b4f065244f1b8456f66c40466d7a
> -SIZE (xpi/firefox-i18n-64.0.2/my.xpi) = 518177
> -SHA256 (xpi/firefox-i18n-64.0.2/nb-NO.xpi) = 2ef3e73049f9666d00e464a6b68cc4943693fe748fc6913158a673f892f904df
> -SIZE (xpi/firefox-i18n-64.0.2/nb-NO.xpi) = 473423
> -SHA256 (xpi/firefox-i18n-64.0.2/ne-NP.xpi) = 7baac5f13e12cfd3b482a8f11da1772ea16cbc699f7e71dcc17566e30ca83bf2
> -SIZE (xpi/firefox-i18n-64.0.2/ne-NP.xpi) = 505826
> -SHA256 (xpi/firefox-i18n-64.0.2/nl.xpi) = d4395005a9f9fdaabf9e4347f5659f0e4b9bc82991cfc72b9c773afe46d5aa9d
> -SIZE (xpi/firefox-i18n-64.0.2/nl.xpi) = 465188
> -SHA256 (xpi/firefox-i18n-64.0.2/nn-NO.xpi) = 42af56f19748343b01237448b4eee3706d9b245369d405c5ed511331292bf9ab
> -SIZE (xpi/firefox-i18n-64.0.2/nn-NO.xpi) = 472052
> -SHA256 (xpi/firefox-i18n-64.0.2/oc.xpi) = e98cb693f0d45649d82db21b8de4f158e5a66ea438c838c3aecd04ce80860817
> -SIZE (xpi/firefox-i18n-64.0.2/oc.xpi) = 486838
> -SHA256 (xpi/firefox-i18n-64.0.2/or.xpi) = 3705e0e2ea3ebaa9a25d67ccb110a25a10fd74b52313e4801ccbc2d16506e9da
> -SIZE (xpi/firefox-i18n-64.0.2/or.xpi) = 485456
> -SHA256 (xpi/firefox-i18n-64.0.2/pa-IN.xpi) = 87d50b365ec3810ac531453e0a192f45679824dd0923eb55ceea8fbe06fd878f
> -SIZE (xpi/firefox-i18n-64.0.2/pa-IN.xpi) = 505899
> -SHA256 (xpi/firefox-i18n-64.0.2/pl.xpi) = f9d290458441a962419211a1cee1e24514b3ed0663c54c866ad023e4abdf00d5
> -SIZE (xpi/firefox-i18n-64.0.2/pl.xpi) = 383270
> -SHA256 (xpi/firefox-i18n-64.0.2/pt-BR.xpi) = 80dd18c483ac4523472b64829fc4a1de2c6eb0eca1e516fef466452b0fbd784d
> -SIZE (xpi/firefox-i18n-64.0.2/pt-BR.xpi) = 475697
> -SHA256 (xpi/firefox-i18n-64.0.2/pt-PT.xpi) = e54f87a981afa89a7fd71805c2c2a97253a2be23d19d5a4ca90d112962601c07
> -SIZE (xpi/firefox-i18n-64.0.2/pt-PT.xpi) = 488751
> -SHA256 (xpi/firefox-i18n-64.0.2/rm.xpi) = a0397eb0ba9672ede6e7bbaafe0bd4eb6a6a5054973a5343b784e848e69d1cd3
> -SIZE (xpi/firefox-i18n-64.0.2/rm.xpi) = 478597
> -SHA256 (xpi/firefox-i18n-64.0.2/ro.xpi) = 9ba02b84a3816b0d1031facce2867c6fb91ca3c7514a60b6082c166558b83186
> -SIZE (xpi/firefox-i18n-64.0.2/ro.xpi) = 479969
> -SHA256 (xpi/firefox-i18n-64.0.2/ru.xpi) = 0063bfa83f95da60fda039e50499064a67e9bfaf3dd18139c4e8d828e7c90458
> -SIZE (xpi/firefox-i18n-64.0.2/ru.xpi) = 546349
> -SHA256 (xpi/firefox-i18n-64.0.2/si.xpi) = 98d4241de9a3d5067cfcd5184a14fabb6cc6e5c7b34f41604ec209d45c680260
> -SIZE (xpi/firefox-i18n-64.0.2/si.xpi) = 489565
> -SHA256 (xpi/firefox-i18n-64.0.2/sk.xpi) = 205196eb09222434b6db2bd6efe13b35f7697217a6c91d4d5dd36ee37574ccff
> -SIZE (xpi/firefox-i18n-64.0.2/sk.xpi) = 504065
> -SHA256 (xpi/firefox-i18n-64.0.2/sl.xpi) = 9de9bbe5aa87a77abeab036a7a37e9cc8cd22ecaf8256e1ef558b0d684642f69
> -SIZE (xpi/firefox-i18n-64.0.2/sl.xpi) = 484992
> -SHA256 (xpi/firefox-i18n-64.0.2/son.xpi) = 8ddecd4f8bc1b98d28c1463ba17bad67515ebbe0e77d9ccc50d2fc7a85905054
> -SIZE (xpi/firefox-i18n-64.0.2/son.xpi) = 449000
> -SHA256 (xpi/firefox-i18n-64.0.2/sq.xpi) = 022833613878ae272f67b775a23a9f89621bdfade8def38807a0aa981e97fa58
> -SIZE (xpi/firefox-i18n-64.0.2/sq.xpi) = 492689
> -SHA256 (xpi/firefox-i18n-64.0.2/sr.xpi) = 82d0ecd4586152d38fc2c8f5d8937c07256073a5ce2f038b33cc6687fae8ded7
> -SIZE (xpi/firefox-i18n-64.0.2/sr.xpi) = 506364
> -SHA256 (xpi/firefox-i18n-64.0.2/sv-SE.xpi) = 0c6957367e885381944c3c14321fe2089ba0ec094bb62e1479eb39007213bb23
> -SIZE (xpi/firefox-i18n-64.0.2/sv-SE.xpi) = 484139
> -SHA256 (xpi/firefox-i18n-64.0.2/ta.xpi) = 594ce77bc265dadc513fd0f853ae3a7d0fb9b112223749ac631d995bb13235de
> -SIZE (xpi/firefox-i18n-64.0.2/ta.xpi) = 530880
> -SHA256 (xpi/firefox-i18n-64.0.2/te.xpi) = b07ea4202b000179235b6103736c4840d8a41a165033cfac07176ced4e301520
> -SIZE (xpi/firefox-i18n-64.0.2/te.xpi) = 547601
> -SHA256 (xpi/firefox-i18n-64.0.2/th.xpi) = ed5f1cc86ba09cc2776cae84b5efd53bb8bea8de36b759b0e9f9f6d0cfe6f6e8
> -SIZE (xpi/firefox-i18n-64.0.2/th.xpi) = 508207
> -SHA256 (xpi/firefox-i18n-64.0.2/tr.xpi) = a97e3c1c9e08a4cc3bb1585c978745b16be33027642f86f3a81fe71a926dbccd
> -SIZE (xpi/firefox-i18n-64.0.2/tr.xpi) = 494713
> -SHA256 (xpi/firefox-i18n-64.0.2/uk.xpi) = d7d0f8e6d5c327afae41426315c287094b26d3be6f79c999ed968f34f2842dab
> -SIZE (xpi/firefox-i18n-64.0.2/uk.xpi) = 521003
> -SHA256 (xpi/firefox-i18n-64.0.2/ur.xpi) = 5cc87cbda4473812d3fcfcd4724fc9d1e8ad1b884048be7bea5e9a54cf2be45a
> -SIZE (xpi/firefox-i18n-64.0.2/ur.xpi) = 521732
> -SHA256 (xpi/firefox-i18n-64.0.2/uz.xpi) = b54df6a4cda8ed74b5265c0512b0e9050e4880b3bf47975039055886cc3588fb
> -SIZE (xpi/firefox-i18n-64.0.2/uz.xpi) = 466675
> -SHA256 (xpi/firefox-i18n-64.0.2/vi.xpi) = e434df352935bc0d0a419c027065836cd656db4cf97ab1d71b97e6a2c37fd4fb
> -SIZE (xpi/firefox-i18n-64.0.2/vi.xpi) = 488337
> -SHA256 (xpi/firefox-i18n-64.0.2/xh.xpi) = cd7acb2093491dee14da603422b2730b98723cabfc182901716ae8454c241f89
> -SIZE (xpi/firefox-i18n-64.0.2/xh.xpi) = 463280
> -SHA256 (xpi/firefox-i18n-64.0.2/zh-CN.xpi) = 12db406defe0107a0941997af11b41d9f7123feda6801498b264a80237066040
> -SIZE (xpi/firefox-i18n-64.0.2/zh-CN.xpi) = 507524
> -SHA256 (xpi/firefox-i18n-64.0.2/zh-TW.xpi) = 32d7909fb140a6f35a32b40ee0d44ad488835ff93dd4a59c342c1027148ccbc4
> -SIZE (xpi/firefox-i18n-64.0.2/zh-TW.xpi) = 510624
> +TIMESTAMP = 1548089834
> +SHA256 (xpi/firefox-i18n-65.0/ach.xpi) = 6190dfb48f8c469e5dca586410893641e73ddc92b38abcc65dd863580d8464e5
> +SIZE (xpi/firefox-i18n-65.0/ach.xpi) = 447458
> +SHA256 (xpi/firefox-i18n-65.0/af.xpi) = 0d6dc6e244aeb312be417617163653c4151d6192e0c40661fa3974136c178595
> +SIZE (xpi/firefox-i18n-65.0/af.xpi) = 437796
> +SHA256 (xpi/firefox-i18n-65.0/an.xpi) = ed34f2b8e1fceaa819a71c1449ef822ac2feec2fdbb77fbfb43ece04b4ffe0a2
> +SIZE (xpi/firefox-i18n-65.0/an.xpi) = 465010
> +SHA256 (xpi/firefox-i18n-65.0/ar.xpi) = c01a2aa5f6e45104339d329e3112481d750cd264eb01c7eda8f219f2151262e5
> +SIZE (xpi/firefox-i18n-65.0/ar.xpi) = 509019
> +SHA256 (xpi/firefox-i18n-65.0/as.xpi) = 9ef3839ad91e04d514044d507ef247e16a60a1a80f117d7dc5ace9ed0705efb2
> +SIZE (xpi/firefox-i18n-65.0/as.xpi) = 472926
> +SHA256 (xpi/firefox-i18n-65.0/ast.xpi) = 0dd46eb665d08bea691dd7428a0b571f60451b4eff84d64df96bf3ee30fe0c9e
> +SIZE (xpi/firefox-i18n-65.0/ast.xpi) = 462339
> +SHA256 (xpi/firefox-i18n-65.0/az.xpi) = 60e4e7ea2cb437f5310ef9312388fe341eaa3c43086009c89bdb0a4b89e93469
> +SIZE (xpi/firefox-i18n-65.0/az.xpi) = 488814
> +SHA256 (xpi/firefox-i18n-65.0/be.xpi) = 03de8378b63469401b6e5972941ac15376e40b5b4f15193aacf69317d602db49
> +SIZE (xpi/firefox-i18n-65.0/be.xpi) = 539166
> +SHA256 (xpi/firefox-i18n-65.0/bg.xpi) = 6d4b6e2bb200938c2eafddfe90a795fee0905cbd05b3d37a8421e49a832dd831
> +SIZE (xpi/firefox-i18n-65.0/bg.xpi) = 521950
> +SHA256 (xpi/firefox-i18n-65.0/bn-BD.xpi) = edd2f056298c2a569bdc482952291ac584ed582d873375ac8c1bed8300b964c1
> +SIZE (xpi/firefox-i18n-65.0/bn-BD.xpi) = 536542
> +SHA256 (xpi/firefox-i18n-65.0/bn-IN.xpi) = 29b6d2b9c96d5a9bd228ea8e52319bd9163a35626312454d960435b134a4e345
> +SIZE (xpi/firefox-i18n-65.0/bn-IN.xpi) = 528110
> +SHA256 (xpi/firefox-i18n-65.0/br.xpi) = d8ab978472f329ebfa342a74839b1297bd534e7f2b11397735fc4958611fe2a6
> +SIZE (xpi/firefox-i18n-65.0/br.xpi) = 468618
> +SHA256 (xpi/firefox-i18n-65.0/bs.xpi) = ef20c156fd26a119763ec448b07d9376b867d084794c971944d3d0b9568692e8
> +SIZE (xpi/firefox-i18n-65.0/bs.xpi) = 463209
> +SHA256 (xpi/firefox-i18n-65.0/ca.xpi) = 1173e297396527b724679c930f1e17aa98409d1d7d8f81ffa0d27bba6bb969e2
> +SIZE (xpi/firefox-i18n-65.0/ca.xpi) = 469757
> +SHA256 (xpi/firefox-i18n-65.0/cak.xpi) = 9ad54a17628a318a4f8b3a4eebf88bb997f938c7933d0d48bfc6cf438d247842
> +SIZE (xpi/firefox-i18n-65.0/cak.xpi) = 492518
> +SHA256 (xpi/firefox-i18n-65.0/cs.xpi) = d9c9c3ceb5776d84e8454e49658811ed18ffd0022877ac995b35b54a3fa06f52
> +SIZE (xpi/firefox-i18n-65.0/cs.xpi) = 482367
> +SHA256 (xpi/firefox-i18n-65.0/cy.xpi) = 7d1a9afbfa007c1fd41aa56ad1fbf497d7570997bb59703284409d982554f4a4
> +SIZE (xpi/firefox-i18n-65.0/cy.xpi) = 471834
> +SHA256 (xpi/firefox-i18n-65.0/da.xpi) = 5c02b63fd8020d7e299061a7aba2a8f0c06be3a0e615719530b02e1f3452ff01
> +SIZE (xpi/firefox-i18n-65.0/da.xpi) = 474705
> +SHA256 (xpi/firefox-i18n-65.0/de.xpi) = 4303b3e2160785f214eb8aa1deca511d8eff7c0e4735f0b6a5b991bd9480a568
> +SIZE (xpi/firefox-i18n-65.0/de.xpi) = 482315
> +SHA256 (xpi/firefox-i18n-65.0/dsb.xpi) = 67492de5c27dffc89b71a5ae7c7a00a9531a009b5642f9411d1a85af8a3c5444
> +SIZE (xpi/firefox-i18n-65.0/dsb.xpi) = 491036
> +SHA256 (xpi/firefox-i18n-65.0/el.xpi) = 00077115a4d9e7d627676eab1339b79b2c11d5fc799e361c1d0ec6dfe13c6ce5
> +SIZE (xpi/firefox-i18n-65.0/el.xpi) = 549053
> +SHA256 (xpi/firefox-i18n-65.0/en-CA.xpi) = 511e78d7c368f2f3bb81aeec1a2c59f0cdfe7ddabab6d4952eaadb26db046fc3
> +SIZE (xpi/firefox-i18n-65.0/en-CA.xpi) = 442335
> +SHA256 (xpi/firefox-i18n-65.0/en-GB.xpi) = 662d58afca47f0ae63c8e27a91200bf14d53ef61f1cfccb0e327464a26ae5984
> +SIZE (xpi/firefox-i18n-65.0/en-GB.xpi) = 441644
> +SHA256 (xpi/firefox-i18n-65.0/en-US.xpi) = 9de7782c963e027ff697ab139dc55ca8cf102f33c0dc13702567c6af9f0c75db
> +SIZE (xpi/firefox-i18n-65.0/en-US.xpi) = 409433
> +SHA256 (xpi/firefox-i18n-65.0/en-ZA.xpi) = 0c1b5852b5b3113de132320ea77a9e3505935f03f47cf62d4f0779340978e810
> +SIZE (xpi/firefox-i18n-65.0/en-ZA.xpi) = 421339
> +SHA256 (xpi/firefox-i18n-65.0/eo.xpi) = 961a7b516a1bcb4a481493e02d9e8d6c34966af25bc7e368745a6b0a0611cee6
> +SIZE (xpi/firefox-i18n-65.0/eo.xpi) = 469162
> +SHA256 (xpi/firefox-i18n-65.0/es-AR.xpi) = c7d858caddc53d0b8644e2362f73d958c34090f141cddca3875f8157e2ce6e5e
> +SIZE (xpi/firefox-i18n-65.0/es-AR.xpi) = 477372
> +SHA256 (xpi/firefox-i18n-65.0/es-CL.xpi) = 894fa78b83f6c35a397ea02cf36b679b82b30f89c37d2b3b93b46e6e6b3d0062
> +SIZE (xpi/firefox-i18n-65.0/es-CL.xpi) = 476254
> +SHA256 (xpi/firefox-i18n-65.0/es-ES.xpi) = fe35d7cb0e2539faa89092f6cc800b8ab202b4921e779d114565fa6fce29d643
> +SIZE (xpi/firefox-i18n-65.0/es-ES.xpi) = 437107
> +SHA256 (xpi/firefox-i18n-65.0/es-MX.xpi) = 48c89dbc6cca80ebe12a9b113c4899815f60e209096e21efae9756509a9726c2
> +SIZE (xpi/firefox-i18n-65.0/es-MX.xpi) = 479494
> +SHA256 (xpi/firefox-i18n-65.0/et.xpi) = c37a2508b2c93e4cd280210b2393e99359e65946fdc01153e7d40cfe8e49e416
> +SIZE (xpi/firefox-i18n-65.0/et.xpi) = 460952
> +SHA256 (xpi/firefox-i18n-65.0/eu.xpi) = 2bbbc2cbf90c106fa176449767ec4f10b396500353023bb155f9af8db258e145
> +SIZE (xpi/firefox-i18n-65.0/eu.xpi) = 468842
> +SHA256 (xpi/firefox-i18n-65.0/fa.xpi) = b55b5409a93938ec0e2f36ea3cc159b1bc5bddae343a014026f865b900bbc1b1
> +SIZE (xpi/firefox-i18n-65.0/fa.xpi) = 520146
> +SHA256 (xpi/firefox-i18n-65.0/ff.xpi) = 3efd476f6b567ee825a8a6d2eb753b1420d8790d70a713fb5d0ae4500b3c33bd
> +SIZE (xpi/firefox-i18n-65.0/ff.xpi) = 461637
> +SHA256 (xpi/firefox-i18n-65.0/fi.xpi) = a829c08014b86bbef2047954bd7ae1fdddca6a0a720470b7332a9ca1272fa210
> +SIZE (xpi/firefox-i18n-65.0/fi.xpi) = 459815
> +SHA256 (xpi/firefox-i18n-65.0/fr.xpi) = c33cc78aff6d591708862d6aa7aab91ee25840c1d06006868d032fda13126807
> +SIZE (xpi/firefox-i18n-65.0/fr.xpi) = 486274
> +SHA256 (xpi/firefox-i18n-65.0/fy-NL.xpi) = dcfedad0ff1cec0b06e199be0315a3d48cb8fa118c039cfbfd0d05285f7f0644
> +SIZE (xpi/firefox-i18n-65.0/fy-NL.xpi) = 474523
> +SHA256 (xpi/firefox-i18n-65.0/ga-IE.xpi) = 190e40190cd0b50cd65e758a12702f8c1db8efe01476cd035ef90d3be2107522
> +SIZE (xpi/firefox-i18n-65.0/ga-IE.xpi) = 468127
> +SHA256 (xpi/firefox-i18n-65.0/gd.xpi) = 934adf790ceda74fee6c06cfbbcc163568cd81739752788ac5dfaf03d61ea380
> +SIZE (xpi/firefox-i18n-65.0/gd.xpi) = 479076
> +SHA256 (xpi/firefox-i18n-65.0/gl.xpi) = d71e52075f0866448fc7bd3b921f2a044d17499476caa89e2ed25af527d1ee37
> +SIZE (xpi/firefox-i18n-65.0/gl.xpi) = 463704
> +SHA256 (xpi/firefox-i18n-65.0/gn.xpi) = c51103cdb65e634bbeb8fe9c781b5d4215d92878d73def2e1b52b27d5114007a
> +SIZE (xpi/firefox-i18n-65.0/gn.xpi) = 485005
> +SHA256 (xpi/firefox-i18n-65.0/gu-IN.xpi) = b2a44838d594d0c5bc7ca448c71a3eac46ea39f574303afdbf6f20fd7c68bd04
> +SIZE (xpi/firefox-i18n-65.0/gu-IN.xpi) = 544745
> +SHA256 (xpi/firefox-i18n-65.0/he.xpi) = bee71c77bed02fa0b7fcf918678e3d72e80af1c6c7df67fe26f05853c3ffeed1
> +SIZE (xpi/firefox-i18n-65.0/he.xpi) = 485651
> +SHA256 (xpi/firefox-i18n-65.0/hi-IN.xpi) = 3269312ed5e9bd283915360e29d77af0b392219371fc3f36025a88dd2731ff75
> +SIZE (xpi/firefox-i18n-65.0/hi-IN.xpi) = 533024
> +SHA256 (xpi/firefox-i18n-65.0/hr.xpi) = cd09d566f643df64164dc94ec732039ac0553fac08a75a3f55998378aafc3341
> +SIZE (xpi/firefox-i18n-65.0/hr.xpi) = 465045
> +SHA256 (xpi/firefox-i18n-65.0/hsb.xpi) = c65ff02c9b56c47b74b8d98a24fd44c8f49bfb315a03b9b3aefd06b36479e496
> +SIZE (xpi/firefox-i18n-65.0/hsb.xpi) = 490630
> +SHA256 (xpi/firefox-i18n-65.0/hu.xpi) = 9a5f153effe9fcebb47559bd3ec623d19aacffe4a104c7743da2f88d98be1f07
> +SIZE (xpi/firefox-i18n-65.0/hu.xpi) = 488205
> +SHA256 (xpi/firefox-i18n-65.0/hy-AM.xpi) = 111cc09f900a0ed9cc27f2f935a0ff034fbe78eb5ff183bd90587315c673f949
> +SIZE (xpi/firefox-i18n-65.0/hy-AM.xpi) = 510218
> +SHA256 (xpi/firefox-i18n-65.0/ia.xpi) = 21c0e0fdbac0dbdff6a6ac8584a844aad6437b766e10f1506e43f513f61350fb
> +SIZE (xpi/firefox-i18n-65.0/ia.xpi) = 465433
> +SHA256 (xpi/firefox-i18n-65.0/id.xpi) = 08233bd276f0dd8ed2e0b9c7272028dc9ff3547d939955fcc0e8ec557e1930e1
> +SIZE (xpi/firefox-i18n-65.0/id.xpi) = 459193
> +SHA256 (xpi/firefox-i18n-65.0/is.xpi) = 63ec4f7e673487524e2d4719a8eaa88d4cdf0dd079f5ffdd3bc29ddecd279d42
> +SIZE (xpi/firefox-i18n-65.0/is.xpi) = 466957
> +SHA256 (xpi/firefox-i18n-65.0/it.xpi) = fd7b51b52099df63e98aa61dde4a7aef39a1538238f9e5bb3b473e3fb22a2991
> +SIZE (xpi/firefox-i18n-65.0/it.xpi) = 356555
> +SHA256 (xpi/firefox-i18n-65.0/ja.xpi) = da9ad87c7db256801dff0201468dfd914ab3880b8e8f080f144290ecb8f4ff58
> +SIZE (xpi/firefox-i18n-65.0/ja.xpi) = 504397
> +SHA256 (xpi/firefox-i18n-65.0/ka.xpi) = a0ed380446819c826d13862c86196aa50be778562a66212b3bee724033d7bd5a
> +SIZE (xpi/firefox-i18n-65.0/ka.xpi) = 512100
> +SHA256 (xpi/firefox-i18n-65.0/kab.xpi) = e0dd09fe83355fe742620dca3e5f25e34cb3860fa86412ad1f5451deea520f21
> +SIZE (xpi/firefox-i18n-65.0/kab.xpi) = 480080
> +SHA256 (xpi/firefox-i18n-65.0/kk.xpi) = ae890e38b28f06645f6eaae47d3691dc9ac3775ed2b6148181b8d6387d53ae05
> +SIZE (xpi/firefox-i18n-65.0/kk.xpi) = 535902
> +SHA256 (xpi/firefox-i18n-65.0/km.xpi) = b68f16864145ff4961ebc6f556a8dfc8f3edec6339b41c89a49c67aee940d848
> +SIZE (xpi/firefox-i18n-65.0/km.xpi) = 526576
> +SHA256 (xpi/firefox-i18n-65.0/kn.xpi) = 4a22568ef1d72a328ad9900207e1219f93bd699f0e8c862b35e8722f8235ce1a
> +SIZE (xpi/firefox-i18n-65.0/kn.xpi) = 528125
> +SHA256 (xpi/firefox-i18n-65.0/ko.xpi) = 2157400fdc5d265e1826ea48df9e6d60a8f5ffa870056c52e0ce18fc3885e306
> +SIZE (xpi/firefox-i18n-65.0/ko.xpi) = 495304
> +SHA256 (xpi/firefox-i18n-65.0/lij.xpi) = 5b7f5173fc5fab29765070e1e962afac14125b00067f0dca9786ae4c9f95d2f6
> +SIZE (xpi/firefox-i18n-65.0/lij.xpi) = 465949
> +SHA256 (xpi/firefox-i18n-65.0/lt.xpi) = 8007fba8bb733f12670e49d393ade674eeea23e34b70bf451bd558115728c71e
> +SIZE (xpi/firefox-i18n-65.0/lt.xpi) = 490196
> +SHA256 (xpi/firefox-i18n-65.0/lv.xpi) = 2fd36a3f724df4d5c2f817883cd63e9f4576fb5472a4d6bbebf9bd96ceb1fa0a
> +SIZE (xpi/firefox-i18n-65.0/lv.xpi) = 478935
> +SHA256 (xpi/firefox-i18n-65.0/mai.xpi) = 8692249b7d2f2f666e33b54c229ef12ae9e87ac6fe6f8859339bba4f8309bab6
> +SIZE (xpi/firefox-i18n-65.0/mai.xpi) = 489178
> +SHA256 (xpi/firefox-i18n-65.0/mk.xpi) = 6a8872e35166b71c7109bc556bb22ff3721808855407bc81f8044d755b7f33b1
> +SIZE (xpi/firefox-i18n-65.0/mk.xpi) = 464187
> +SHA256 (xpi/firefox-i18n-65.0/ml.xpi) = 5d3b96d594f2881d9f21100181dc3a795915c069b31d2f992cd585db5fe0fd5c
> +SIZE (xpi/firefox-i18n-65.0/ml.xpi) = 534394
> +SHA256 (xpi/firefox-i18n-65.0/mr.xpi) = a4dc36d79d936b0a13ba2abede8852a1dddd65ad885ce1788a1bec15690a9fac
> +SIZE (xpi/firefox-i18n-65.0/mr.xpi) = 528014
> +SHA256 (xpi/firefox-i18n-65.0/ms.xpi) = 96b624b126850c8000e4151c1376a996993d86b26230e96f963dbc0e93f6b542
> +SIZE (xpi/firefox-i18n-65.0/ms.xpi) = 460713
> +SHA256 (xpi/firefox-i18n-65.0/my.xpi) = 93e0460ebe62b056abcdcb83b22a15c4557685205412dbff00644b0cedb43d9f
> +SIZE (xpi/firefox-i18n-65.0/my.xpi) = 523396
> +SHA256 (xpi/firefox-i18n-65.0/nb-NO.xpi) = ef3c908a40339bdf1ec27a590921bf608ecdb8c5561631dc1c49ba1cdf9cc0a5
> +SIZE (xpi/firefox-i18n-65.0/nb-NO.xpi) = 461048
> +SHA256 (xpi/firefox-i18n-65.0/ne-NP.xpi) = 45fe060ca2998a73b16a44f46ef468ac8d87543c499fee50defbc0bf4766b7db
> +SIZE (xpi/firefox-i18n-65.0/ne-NP.xpi) = 503824
> +SHA256 (xpi/firefox-i18n-65.0/nl.xpi) = 4848167ebd8c3b45dc4338dbac1f27b059c65ebc2161f7285dd3a82d6ad1c168
> +SIZE (xpi/firefox-i18n-65.0/nl.xpi) = 458729
> +SHA256 (xpi/firefox-i18n-65.0/nn-NO.xpi) = 64f7489c5fe77ddd641ac1ac06c0e304c2dc7c3724632a8a473e5cef663b7439
> +SIZE (xpi/firefox-i18n-65.0/nn-NO.xpi) = 460168
> +SHA256 (xpi/firefox-i18n-65.0/oc.xpi) = cadee0e03f71a226fd35438b46c75a18d6e2b252f722c4d2245f9396d8665831
> +SIZE (xpi/firefox-i18n-65.0/oc.xpi) = 476891
> +SHA256 (xpi/firefox-i18n-65.0/or.xpi) = fd64d417041e8afd54e53df12b2f886b7420f941df5dc4fff20f9ddd308e303c
> +SIZE (xpi/firefox-i18n-65.0/or.xpi) = 479082
> +SHA256 (xpi/firefox-i18n-65.0/pa-IN.xpi) = 6287dd63fff8febcdc21f05e8dbc09e24e792873e8010ab6513418c7e4944b6e
> +SIZE (xpi/firefox-i18n-65.0/pa-IN.xpi) = 510886
> +SHA256 (xpi/firefox-i18n-65.0/pl.xpi) = 3ff55dbc70ae204c23fc0828728277898f65001c03d8a58707c85ec085e96ec0
> +SIZE (xpi/firefox-i18n-65.0/pl.xpi) = 378835
> +SHA256 (xpi/firefox-i18n-65.0/pt-BR.xpi) = f3c30e85300b8d5c23ce610efd52fe0bf50e8c366e543dd8d196e59a395aa615
> +SIZE (xpi/firefox-i18n-65.0/pt-BR.xpi) = 463436
> +SHA256 (xpi/firefox-i18n-65.0/pt-PT.xpi) = 26b24938e50f74217d75a308d286710561a38d4e2950eef1ee8047080f174dd4
> +SIZE (xpi/firefox-i18n-65.0/pt-PT.xpi) = 475346
> +SHA256 (xpi/firefox-i18n-65.0/rm.xpi) = 8c59df18a2b71f848e3d25f884be2fc30a21ff7ece583bfe44a2370d254587b8
> +SIZE (xpi/firefox-i18n-65.0/rm.xpi) = 466661
> +SHA256 (xpi/firefox-i18n-65.0/ro.xpi) = 3cd64ef1b3c72de1f98646519f5457a8f0435d1b63f3a53001ff033e8c0b25a0
> +SIZE (xpi/firefox-i18n-65.0/ro.xpi) = 475434
> +SHA256 (xpi/firefox-i18n-65.0/ru.xpi) = 92a0e66fdc978cfa7f859cfb060cb6ade7c6717c97e78b7694fd3eb7981dbcdd
> +SIZE (xpi/firefox-i18n-65.0/ru.xpi) = 542359
> +SHA256 (xpi/firefox-i18n-65.0/si.xpi) = 319aec36034753d2781454ec8407bba4247c6deda6026b944702d6a0f1868294
> +SIZE (xpi/firefox-i18n-65.0/si.xpi) = 491181
> +SHA256 (xpi/firefox-i18n-65.0/sk.xpi) = 335dcc094304e0c87d6abc1aafe2f335ab93441362686d685e59c3b6198aedae
> +SIZE (xpi/firefox-i18n-65.0/sk.xpi) = 492575
> +SHA256 (xpi/firefox-i18n-65.0/sl.xpi) = e9e35ff1d093384267e44fa4f903b65597d2b617385d2389ae0ea00f8c8ab63b
> +SIZE (xpi/firefox-i18n-65.0/sl.xpi) = 468045
> +SHA256 (xpi/firefox-i18n-65.0/son.xpi) = 6ec3dfd6141b00acae607af8264bb92ede5bf566b47df60b85470aa5e5b2c0c0
> +SIZE (xpi/firefox-i18n-65.0/son.xpi) = 443506
> +SHA256 (xpi/firefox-i18n-65.0/sq.xpi) = 953a0d68a60dcc9baa35efb97123b20e99c3c798e1170e014f5d18b27ce39cd6
> +SIZE (xpi/firefox-i18n-65.0/sq.xpi) = 483754
> +SHA256 (xpi/firefox-i18n-65.0/sr.xpi) = 5137d1b075334b5550244a563870611e3b6981be1ab9bd2199485e68ff0f5e2c
> +SIZE (xpi/firefox-i18n-65.0/sr.xpi) = 498951
> +SHA256 (xpi/firefox-i18n-65.0/sv-SE.xpi) = 80599739081a99de676e1d07e9630e829175e0d733df17cd0f637b6b1cb73fc9
> +SIZE (xpi/firefox-i18n-65.0/sv-SE.xpi) = 470815
> +SHA256 (xpi/firefox-i18n-65.0/ta.xpi) = ed2dae7a50af7f17fdb74bc5e672e868126f0fa2017df413948300fd522ae51a
> +SIZE (xpi/firefox-i18n-65.0/ta.xpi) = 522777
> +SHA256 (xpi/firefox-i18n-65.0/te.xpi) = 2c50ace0936ef2789a608f2a732b7dd6a37f0e669883f83122e8b04d5a1c4571
> +SIZE (xpi/firefox-i18n-65.0/te.xpi) = 534586
> +SHA256 (xpi/firefox-i18n-65.0/th.xpi) = 6cc71b27e0b045d110eaef106809333adaeef4ca253485ceeb11cb422eff0f6f
> +SIZE (xpi/firefox-i18n-65.0/th.xpi) = 507520
> +SHA256 (xpi/firefox-i18n-65.0/tr.xpi) = 32e368258bed118d65f9925cea483f5f15632019e2e6e252d81d6c20c875d82e
> +SIZE (xpi/firefox-i18n-65.0/tr.xpi) = 481304
> +SHA256 (xpi/firefox-i18n-65.0/uk.xpi) = f771752abb7c402b9c2cc20dcb984ebc1a54533489e3e2283341a63681633723
> +SIZE (xpi/firefox-i18n-65.0/uk.xpi) = 528926
> +SHA256 (xpi/firefox-i18n-65.0/ur.xpi) = a586ee621d705dcf37cdc7d3b768ed18313e573e1de63deb92ec2db87a7f2af5
> +SIZE (xpi/firefox-i18n-65.0/ur.xpi) = 511333
> +SHA256 (xpi/firefox-i18n-65.0/uz.xpi) = 933d260c4851a09aebd662f4b589c9a113568adad3509f07bbaa361e1be16114
> +SIZE (xpi/firefox-i18n-65.0/uz.xpi) = 460810
> +SHA256 (xpi/firefox-i18n-65.0/vi.xpi) = a85f531a98f2418b7eed704d2d4d2f76145f4312f4e2200b9f260bf9621ab932
> +SIZE (xpi/firefox-i18n-65.0/vi.xpi) = 486516
> +SHA256 (xpi/firefox-i18n-65.0/xh.xpi) = db61828fb94f6824e998232747c6e7298a2957509814d556d43be13b44e59903
> +SIZE (xpi/firefox-i18n-65.0/xh.xpi) = 455417
> +SHA256 (xpi/firefox-i18n-65.0/zh-CN.xpi) = b397cadc3213e7606029f7ecdbbc21bc7bf1b35c1f0f5b61938bd1dce59f0562
> +SIZE (xpi/firefox-i18n-65.0/zh-CN.xpi) = 494804
> +SHA256 (xpi/firefox-i18n-65.0/zh-TW.xpi) = e1a1a8ee82d232e06a76ae3c3bbff35bb067988b4a893cd841f2d55e40777eaa
> +SIZE (xpi/firefox-i18n-65.0/zh-TW.xpi) = 492970
> 
> Modified: head/www/firefox/Makefile
> ==============================================================================
> --- head/www/firefox/Makefile	Mon Jan 21 22:50:27 2019	(r490909)
> +++ head/www/firefox/Makefile	Mon Jan 21 23:03:45 2019	(r490910)
> @@ -2,8 +2,7 @@
>  # $FreeBSD$
>  
>  PORTNAME=	firefox
> -DISTVERSION=	64.0.2
> -PORTREVISION=	1
> +DISTVERSION=	65.0
>  PORTEPOCH=	1
>  CATEGORIES=	www ipv6
>  MASTER_SITES=	MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \
> @@ -14,7 +13,7 @@ MAINTAINER=	gecko@FreeBSD.org
>  COMMENT=	Web browser based on the browser portion of Mozilla
>  
>  BUILD_DEPENDS=	nspr>=4.19:devel/nspr \
> -		nss>=3.40.1:security/nss \
> +		nss>=3.41:security/nss \
>  		icu>=59.1,1:devel/icu \
>  		libevent>=2.1.8:devel/libevent \
>  		harfbuzz>=1.9.0:print/harfbuzz \
> @@ -22,7 +21,7 @@ BUILD_DEPENDS=	nspr>=4.19:devel/nspr \
>  		png>=1.6.34:graphics/png \
>  		libvorbis>=1.3.6,3:audio/libvorbis \
>  		libvpx>=1.5.0:multimedia/libvpx \
> -		sqlite3>=3.25.1:databases/sqlite3 \
> +		sqlite3>=3.25.3:databases/sqlite3 \
>  		${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \
>  		v4l_compat>0:multimedia/v4l_compat \
>  		autoconf-2.13:devel/autoconf213 \
> 
> Modified: head/www/firefox/distinfo
> ==============================================================================
> --- head/www/firefox/distinfo	Mon Jan 21 22:50:27 2019	(r490909)
> +++ head/www/firefox/distinfo	Mon Jan 21 23:03:45 2019	(r490910)
> @@ -1,3 +1,3 @@
> -TIMESTAMP = 1546973911
> -SHA256 (firefox-64.0.2.source.tar.xz) = 34cf115a4eeb4d73f7199396bb3a5d5843c8c455eae4213bf451c4db88768f1f
> -SIZE (firefox-64.0.2.source.tar.xz) = 273075852
> +TIMESTAMP = 1548089834
> +SHA256 (firefox-65.0.source.tar.xz) = 106b14cf9fbbc13d376b391a722678d69b44ad8481b5e325170588e4ac236a76
> +SIZE (firefox-65.0.source.tar.xz) = 278717736
> 
> Added: head/www/firefox/files/patch-bug1511726
> ==============================================================================
> --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/www/firefox/files/patch-bug1511726	Mon Jan 21 23:03:45 2019	(r490910)
> @@ -0,0 +1,32 @@
> +Don't try to use shader disk cache if disabled
> +
> +diff --git gfx/webrender_bindings/RenderThread.cpp gfx/webrender_bindings/RenderThread.cpp
> +index 1e60a900ff5a..92dc857b8390 100644
> +--- gfx/webrender_bindings/RenderThread.cpp
> ++++ gfx/webrender_bindings/RenderThread.cpp
> +@@ -768,7 +768,9 @@ WebRenderProgramCache::WebRenderProgramCache(wr::WrThreadPool* aThreadPool) {
> +     path.Append(gfx::gfxVars::ProfDirectory());
> +   }
> +   mProgramCache = wr_program_cache_new(&path, aThreadPool);
> +-  wr_try_load_shader_from_disk(mProgramCache);
> ++  if (gfxVars::UseWebRenderProgramBinaryDisk()) {
> ++    wr_try_load_shader_from_disk(mProgramCache);
> ++  }
> + }
> + 
> + WebRenderProgramCache::~WebRenderProgramCache() {
> +diff --git gfx/webrender_bindings/src/bindings.rs gfx/webrender_bindings/src/bindings.rs
> +index 56bebc2882a0..88f7a1827264 100644
> +--- gfx/webrender_bindings/src/bindings.rs
> ++++ gfx/webrender_bindings/src/bindings.rs
> +@@ -914,9 +914,7 @@ pub unsafe extern "C" fn wr_program_cache_delete(program_cache: *mut WrProgramCa
> + 
> + #[no_mangle]
> + pub unsafe extern "C" fn wr_try_load_shader_from_disk(program_cache: *mut WrProgramCache) {
> +-    if !program_cache.is_null() {
> +-        (*program_cache).try_load_from_disk();
> +-    }
> ++    (*program_cache).try_load_from_disk();
> + }
> + 
> + #[no_mangle]
> 
> Added: head/www/firefox/files/patch-bug1514156
> ==============================================================================
> --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/www/firefox/files/patch-bug1514156	Mon Jan 21 23:03:45 2019	(r490910)
> @@ -0,0 +1,582 @@
> +commit 9b55d8d04f4b
> +Author: Sotaro Ikeda <sotaro.ikeda.g@gmail.com>
> +Date:   Thu Jan 3 22:36:09 2019 -0800
> +
> +    Bug 1514156 - Add RenderCompositorEGL for Wayland
> +---
> + gfx/gl/GLContextEGL.h                          |   4 +
> + gfx/gl/GLContextProviderEGL.cpp                |  29 ++++++
> + gfx/webrender_bindings/RenderCompositor.cpp    |  12 +++
> + gfx/webrender_bindings/RenderCompositorEGL.cpp | 135 +++++++++++++++++++++++++
> + gfx/webrender_bindings/RenderCompositorEGL.h   |  54 ++++++++++
> + gfx/webrender_bindings/moz.build               |  10 ++
> + widget/gtk/CompositorWidgetChild.cpp           |   6 ++
> + widget/gtk/CompositorWidgetChild.h             |   4 +-
> + widget/gtk/CompositorWidgetParent.cpp          |   6 ++
> + widget/gtk/CompositorWidgetParent.h            |   2 +
> + widget/gtk/GtkCompositorWidget.cpp             |  15 ++-
> + widget/gtk/GtkCompositorWidget.h               |   9 ++
> + widget/gtk/PCompositorWidget.ipdl              |   1 +
> + widget/gtk/mozcontainer.cpp                    |  11 ++
> + widget/gtk/mozcontainer.h                      |   2 +
> + widget/gtk/nsWindow.cpp                        |  16 +++
> + widget/gtk/nsWindow.h                          |   1 +
> + 17 files changed, 315 insertions(+), 2 deletions(-)
> +
> +diff --git gfx/gl/GLContextEGL.h gfx/gl/GLContextEGL.h
> +index 95d5e0c02e23..adb37e59a9f7 100644
> +--- gfx/gl/GLContextEGL.h
> ++++ gfx/gl/GLContextEGL.h
> +@@ -91,6 +91,10 @@ class GLContextEGL : public GLContext {
> +       CreateContextFlags flags, const gfx::IntSize& size,
> +       const SurfaceCaps& minCaps, nsACString* const out_FailureId);
> + 
> ++#if defined(MOZ_WAYLAND)
> ++  static EGLSurface CreateEGLSurfaceForCompositorWidget(
> ++      widget::CompositorWidget* aCompositorWidget, bool aForceAccelerated);
> ++#endif
> +  protected:
> +   friend class GLContextProviderEGL;
> +   friend class GLContextEGLFactory;
> +diff --git gfx/gl/GLContextProviderEGL.cpp gfx/gl/GLContextProviderEGL.cpp
> +index 774eb34a8e87..25aa779a7d64 100644
> +--- gfx/gl/GLContextProviderEGL.cpp
> ++++ gfx/gl/GLContextProviderEGL.cpp
> +@@ -295,6 +295,35 @@ already_AddRefed<GLContext> GLContextEGLFactory::Create(
> +   return gl.forget();
> + }
> + 
> ++#if defined(MOZ_WAYLAND)
> ++/* static */ EGLSurface GLContextEGL::CreateEGLSurfaceForCompositorWidget(
> ++    widget::CompositorWidget* aCompositorWidget, bool aForceAccelerated)
> ++{
> ++  nsCString discardFailureId;
> ++  if (!GLLibraryEGL::EnsureInitialized(false, &discardFailureId)) {
> ++    gfxCriticalNote << "Failed to load EGL library 6!";
> ++    return EGL_NO_SURFACE;
> ++  }
> ++
> ++  MOZ_ASSERT(aCompositorWidget);
> ++  EGLNativeWindowType window = GET_NATIVE_WINDOW_FROM_COMPOSITOR_WIDGET(aCompositorWidget);
> ++  bool useWebRender = aCompositorWidget->GetCompositorOptions().UseWebRender();
> ++
> ++  EGLConfig config;
> ++  if (!CreateConfig(&config, useWebRender)) {
> ++    gfxCriticalNote << "Failed to create EGLConfig!";
> ++    return EGL_NO_SURFACE;
> ++  }
> ++
> ++  EGLSurface surface = EGL_NO_SURFACE;
> ++  if (window) {
> ++    surface = mozilla::gl::CreateSurfaceFromNativeWindow(window, config);
> ++  }
> ++
> ++  return surface;
> ++}
> ++#endif
> ++
> + GLContextEGL::GLContextEGL(CreateContextFlags flags, const SurfaceCaps& caps,
> +                            bool isOffscreen, EGLConfig config,
> +                            EGLSurface surface, EGLContext context)
> +diff --git gfx/webrender_bindings/RenderCompositor.cpp gfx/webrender_bindings/RenderCompositor.cpp
> +index 051482fbabbf..a58268096a89 100644
> +--- gfx/webrender_bindings/RenderCompositor.cpp
> ++++ gfx/webrender_bindings/RenderCompositor.cpp
> +@@ -16,6 +16,10 @@
> + #include "mozilla/webrender/RenderCompositorANGLE.h"
> + #endif
> + 
> ++#ifdef MOZ_WAYLAND
> ++#include "mozilla/webrender/RenderCompositorEGL.h"
> ++#endif
> ++
> + namespace mozilla {
> + namespace wr {
> + 
> +@@ -26,6 +30,14 @@ namespace wr {
> +     return RenderCompositorANGLE::Create(std::move(aWidget));
> +   }
> + #endif
> ++
> ++#ifdef MOZ_WIDGET_GTK
> ++  UniquePtr<RenderCompositor> eglCompositor = RenderCompositorEGL::Create(aWidget);
> ++  if (eglCompositor) {
> ++    return eglCompositor;
> ++  }
> ++#endif
> ++
> +   return RenderCompositorOGL::Create(std::move(aWidget));
> + }
> + 
> +diff --git gfx/webrender_bindings/RenderCompositorEGL.cpp gfx/webrender_bindings/RenderCompositorEGL.cpp
> +new file mode 100644
> +index 000000000000..16245f59afbd
> +--- /dev/null
> ++++ gfx/webrender_bindings/RenderCompositorEGL.cpp
> +@@ -0,0 +1,135 @@
> ++/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
> ++/* vim: set ts=8 sts=2 et sw=2 tw=80: */
> ++/* This Source Code Form is subject to the terms of the Mozilla Public
> ++ * License, v. 2.0. If a copy of the MPL was not distributed with this
> ++ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
> ++
> ++#include "RenderCompositorEGL.h"
> ++
> ++#include "GLContext.h"
> ++#include "GLContextEGL.h"
> ++#include "GLContextProvider.h"
> ++#include "GLLibraryEGL.h"
> ++#include "mozilla/widget/CompositorWidget.h"
> ++#include "mozilla/widget/GtkCompositorWidget.h"
> ++
> ++#include <gdk/gdk.h>
> ++#include <gdk/gdkx.h>
> ++
> ++namespace mozilla {
> ++namespace wr {
> ++
> ++/* static */ UniquePtr<RenderCompositor> RenderCompositorEGL::Create(
> ++    RefPtr<widget::CompositorWidget> aWidget) {
> ++
> ++  if (GDK_IS_X11_DISPLAY(gdk_display_get_default())) {
> ++    return nullptr;
> ++  }
> ++
> ++  RefPtr<gl::GLContext> gl;
> ++  gl = CreateGLContext(aWidget);
> ++  if (!gl) {
> ++    return nullptr;
> ++  }
> ++  return MakeUnique<RenderCompositorEGL>(std::move(gl), std::move(aWidget));
> ++}
> ++
> ++/* static */ already_AddRefed<gl::GLContext>
> ++RenderCompositorEGL::CreateGLContext(RefPtr<widget::CompositorWidget> aWidget) {
> ++  nsCString discardFailureId;
> ++  //auto flags = gl::CreateContextFlags::PREFER_ES3;
> ++
> ++  // Create GLContext with dummy EGLSurface.
> ++  RefPtr<gl::GLContext> gl =
> ++      //gl::GLContextProviderEGL::CreateHeadless(flags, &discardFailureId); //XXX headless context did not work.
> ++      gl::GLContextProviderEGL::CreateForCompositorWidget(aWidget, true);
> ++  if (!gl) {
> ++    gfxCriticalNote << "Failed GL context creation for WebRender: "
> ++                    << gfx::hexa(gl.get());
> ++    return nullptr;
> ++  }
> ++
> ++  if (!gl->MakeCurrent()) {
> ++    gfxCriticalNote << "Failed GL context creation for WebRender: "
> ++                    << gfx::hexa(gl.get());
> ++    return nullptr;
> ++  }
> ++
> ++  return gl.forget();
> ++}
> ++
> ++/* static */ EGLSurface RenderCompositorEGL::CreateEGLSurface(
> ++    widget::CompositorWidget* aWidget) {
> ++  EGLSurface surface = EGL_NO_SURFACE;
> ++  surface = gl::GLContextEGL::CreateEGLSurfaceForCompositorWidget(
> ++      aWidget, /* aForceAccelerated */ true);
> ++  if (surface == EGL_NO_SURFACE) {
> ++    gfxCriticalNote << "Failed to create EGLSurface";
> ++  }
> ++  return surface;
> ++}
> ++
> ++RenderCompositorEGL::RenderCompositorEGL(
> ++    RefPtr<gl::GLContext>&& aGL, RefPtr<widget::CompositorWidget>&& aWidget)
> ++    : RenderCompositor(std::move(aWidget)), mGL(aGL), mEGLSurface(EGL_NO_SURFACE) {
> ++  MOZ_ASSERT(mGL);
> ++}
> ++
> ++RenderCompositorEGL::~RenderCompositorEGL() {
> ++  DestroyEGLSurface();
> ++}
> ++
> ++bool RenderCompositorEGL::BeginFrame() {
> ++
> ++  if (mWidget->AsX11() && mWidget->AsX11()->WaylandRequestsUpdatingEGLSurface()) {
> ++      mEGLSurface = CreateEGLSurface(mWidget);
> ++      printf_stderr("RenderCompositorEGL::BeginFrame() mEGLSurface %p\n", mEGLSurface);
> ++      gl::GLContextEGL::Cast(gl())->SetEGLSurfaceOverride(mEGLSurface);
> ++  }
> ++
> ++  if (!mGL->MakeCurrent()) {
> ++    gfxCriticalNote << "Failed to make render context current, can't draw.";
> ++    return false;
> ++  }
> ++
> ++  return true;
> ++}
> ++
> ++void RenderCompositorEGL::EndFrame()
> ++{
> ++  if (mEGLSurface != EGL_NO_SURFACE) {
> ++    mGL->SwapBuffers();
> ++  }
> ++}
> ++
> ++void RenderCompositorEGL::WaitForGPU() {}
> ++
> ++void RenderCompositorEGL::Pause() {
> ++}
> ++
> ++bool RenderCompositorEGL::Resume() {
> ++  return true;
> ++}
> ++
> ++bool RenderCompositorEGL::MakeCurrent() {
> ++  gl::GLContextEGL::Cast(gl())->SetEGLSurfaceOverride(mEGLSurface);
> ++  return gl()->MakeCurrent();
> ++}
> ++
> ++void RenderCompositorEGL::DestroyEGLSurface() {
> ++  auto* egl = gl::GLLibraryEGL::Get();
> ++
> ++  // Release EGLSurface of back buffer before calling ResizeBuffers().
> ++  if (mEGLSurface) {
> ++    gl::GLContextEGL::Cast(gl())->SetEGLSurfaceOverride(EGL_NO_SURFACE);
> ++    egl->fDestroySurface(egl->Display(), mEGLSurface);
> ++    mEGLSurface = nullptr;
> ++  }
> ++}
> ++
> ++LayoutDeviceIntSize RenderCompositorEGL::GetBufferSize() {
> ++  return mWidget->GetClientSize();
> ++}
> ++
> ++}  // namespace wr
> ++}  // namespace mozilla
> +diff --git gfx/webrender_bindings/RenderCompositorEGL.h gfx/webrender_bindings/RenderCompositorEGL.h
> +new file mode 100644
> +index 000000000000..f12e16d974af
> +--- /dev/null
> ++++ gfx/webrender_bindings/RenderCompositorEGL.h
> +@@ -0,0 +1,54 @@
> ++/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
> ++/* vim: set ts=8 sts=2 et sw=2 tw=80: */
> ++/* This Source Code Form is subject to the terms of the Mozilla Public
> ++ * License, v. 2.0. If a copy of the MPL was not distributed with this
> ++ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
> ++
> ++#ifndef MOZILLA_GFX_RENDERCOMPOSITOR_EGL_H
> ++#define MOZILLA_GFX_RENDERCOMPOSITOR_EGL_H
> ++
> ++#include "GLTypes.h"
> ++#include "mozilla/webrender/RenderCompositor.h"
> ++
> ++namespace mozilla {
> ++
> ++namespace wr {
> ++
> ++class RenderCompositorEGL : public RenderCompositor {
> ++ public:
> ++  static UniquePtr<RenderCompositor> Create(
> ++      RefPtr<widget::CompositorWidget> aWidget);
> ++
> ++  RenderCompositorEGL(RefPtr<gl::GLContext>&& aGL,
> ++                      RefPtr<widget::CompositorWidget>&& aWidget);
> ++  virtual ~RenderCompositorEGL();
> ++
> ++  bool BeginFrame() override;
> ++  void EndFrame() override;
> ++  void WaitForGPU() override;
> ++  void Pause() override;
> ++  bool Resume() override;
> ++
> ++  gl::GLContext* gl() const override { return mGL; }
> ++
> ++  bool MakeCurrent() override;
> ++
> ++  bool UseANGLE() const override { return false; }
> ++
> ++  LayoutDeviceIntSize GetBufferSize() override;
> ++
> ++ protected:
> ++   static already_AddRefed<gl::GLContext> CreateGLContext(
> ++      RefPtr<widget::CompositorWidget> aWidget);
> ++   static EGLSurface CreateEGLSurface(widget::CompositorWidget* aWidget);
> ++
> ++  void DestroyEGLSurface();
> ++
> ++  RefPtr<gl::GLContext> mGL;
> ++  EGLSurface mEGLSurface;
> ++};
> ++
> ++}  // namespace wr
> ++}  // namespace mozilla
> ++
> ++#endif  // MOZILLA_GFX_RENDERCOMPOSITOR_EGL_H
> +diff --git gfx/webrender_bindings/moz.build gfx/webrender_bindings/moz.build
> +index 4acdfbb817d3..f632bc5d24d9 100644
> +--- gfx/webrender_bindings/moz.build
> ++++ gfx/webrender_bindings/moz.build
> +@@ -67,6 +67,14 @@ if CONFIG['MOZ_ENABLE_D3D10_LAYER']:
> +         'RenderCompositorANGLE.cpp',
> +     ]
> + 
> ++if CONFIG['MOZ_WAYLAND']:
> ++    EXPORTS.mozilla.webrender += [
> ++        'RenderCompositorEGL.h',
> ++    ]
> ++    SOURCES += [
> ++        'RenderCompositorEGL.cpp',
> ++    ]
> ++
> + if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('android', 'gtk3'):
> +     CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
> +     CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
> +@@ -75,5 +83,7 @@ include('/ipc/chromium/chromium-config.mozbuild')
> + 
> + FINAL_LIBRARY = 'xul'
> + 
> ++CXXFLAGS += CONFIG['TK_CFLAGS']
> ++
> + if CONFIG['CC_TYPE'] == 'clang-cl':
> +     AllowCompilerWarnings()  # workaround for bug 1090497
> +diff --git widget/gtk/CompositorWidgetChild.cpp widget/gtk/CompositorWidgetChild.cpp
> +index b746fec0a283..07847a298707 100644
> +--- widget/gtk/CompositorWidgetChild.cpp
> ++++ widget/gtk/CompositorWidgetChild.cpp
> +@@ -35,5 +35,11 @@ void CompositorWidgetChild::NotifyClientSizeChanged(
> +   Unused << SendNotifyClientSizeChanged(aClientSize);
> + }
> + 
> ++#ifdef MOZ_WAYLAND
> ++void CompositorWidgetChild::RequestsUpdatingEGLSurface() {
> ++  Unused << SendRequestsUpdatingEGLSurface();
> ++}
> ++#endif
> ++
> + }  // namespace widget
> + }  // namespace mozilla
> +diff --git widget/gtk/CompositorWidgetChild.h widget/gtk/CompositorWidgetChild.h
> +index fe3285eb6f22..0167dbb051c6 100644
> +--- widget/gtk/CompositorWidgetChild.h
> ++++ widget/gtk/CompositorWidgetChild.h
> +@@ -24,7 +24,9 @@ class CompositorWidgetChild final : public PCompositorWidgetChild,
> +   mozilla::ipc::IPCResult RecvUnobserveVsync() override;
> + 
> +   void NotifyClientSizeChanged(const LayoutDeviceIntSize& aClientSize) override;
> +-
> ++#ifdef MOZ_WAYLAND
> ++  void RequestsUpdatingEGLSurface() override;
> ++#endif
> +  private:
> +   RefPtr<CompositorVsyncDispatcher> mVsyncDispatcher;
> +   RefPtr<CompositorWidgetVsyncObserver> mVsyncObserver;
> +diff --git widget/gtk/CompositorWidgetParent.cpp widget/gtk/CompositorWidgetParent.cpp
> +index ae49ec9174bc..b4031883d3a8 100644
> +--- widget/gtk/CompositorWidgetParent.cpp
> ++++ widget/gtk/CompositorWidgetParent.cpp
> +@@ -40,5 +40,11 @@ mozilla::ipc::IPCResult CompositorWidgetParent::RecvNotifyClientSizeChanged(
> +   return IPC_OK();
> + }
> + 
> ++mozilla::ipc::IPCResult CompositorWidgetParent::RecvRequestsUpdatingEGLSurface()
> ++{
> ++  RequestsUpdatingEGLSurface();
> ++  return IPC_OK();
> ++}
> ++
> + }  // namespace widget
> + }  // namespace mozilla
> +diff --git widget/gtk/CompositorWidgetParent.h widget/gtk/CompositorWidgetParent.h
> +index 5d0ccfcf50f2..8ddd58a8964f 100644
> +--- widget/gtk/CompositorWidgetParent.h
> ++++ widget/gtk/CompositorWidgetParent.h
> +@@ -27,6 +27,8 @@ class CompositorWidgetParent final : public PCompositorWidgetParent,
> +   mozilla::ipc::IPCResult RecvNotifyClientSizeChanged(
> +       const LayoutDeviceIntSize& aClientSize) override;
> + 
> ++  mozilla::ipc::IPCResult RecvRequestsUpdatingEGLSurface() override;
> ++
> +  private:
> +   RefPtr<VsyncObserver> mVsyncObserver;
> + };
> +diff --git widget/gtk/GtkCompositorWidget.cpp widget/gtk/GtkCompositorWidget.cpp
> +index bc21d6c4d05e..f787e8c23797 100644
> +--- widget/gtk/GtkCompositorWidget.cpp
> ++++ widget/gtk/GtkCompositorWidget.cpp
> +@@ -17,7 +17,8 @@ namespace widget {
> + GtkCompositorWidget::GtkCompositorWidget(
> +     const GtkCompositorWidgetInitData& aInitData,
> +     const layers::CompositorOptions& aOptions, nsWindow* aWindow)
> +-    : CompositorWidget(aOptions), mWidget(aWindow) {
> ++    : CompositorWidget(aOptions), mWidget(aWindow),
> ++      mWaylandRequestsUpdatingEGLSurface(false) {
> +   // If we have a nsWindow, then grab the already existing display connection
> +   // If we don't, then use the init data to connect to the display
> +   if (aWindow) {
> +@@ -85,6 +86,18 @@ void GtkCompositorWidget::NotifyClientSizeChanged(
> +   mClientSize = aClientSize;
> + }
> + 
> ++#ifdef MOZ_WAYLAND
> ++void GtkCompositorWidget::RequestsUpdatingEGLSurface() {
> ++  mWaylandRequestsUpdatingEGLSurface = true;
> ++}
> ++
> ++bool GtkCompositorWidget::WaylandRequestsUpdatingEGLSurface() {
> ++  bool ret = mWaylandRequestsUpdatingEGLSurface;
> ++  mWaylandRequestsUpdatingEGLSurface = false;
> ++  return ret;
> ++}
> ++#endif
> ++
> + LayoutDeviceIntSize GtkCompositorWidget::GetClientSize() { return mClientSize; }
> + 
> + uintptr_t GtkCompositorWidget::GetWidgetKey() {
> +diff --git widget/gtk/GtkCompositorWidget.h widget/gtk/GtkCompositorWidget.h
> +index fd0c71426c18..75e156dffb02 100644
> 
> *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
> 

- -- 
+-----------------oOO--(_)--OOo-------------------------+
With best Regards,
		Martin Wilke (miwi_(at)_FreeBSD.org)


          Mess with the Best, Die like the Rest


-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEQDT3f1gnhUqwZk3nHz/GZTE6EmcFAlxHKKIACgkQHz/GZTE6
EmfaQgf/THPTEOlWFl/zdIQD5x053bwT3AAMvyZXrbUIiaqXOQ7jaRusrrI5XL0g
RcAc1JitKzgIGpwac1qX4NzR6D/3rHumvdMDaM9ZfJRKwoCwJ1kME1GxrL/rG9dD
lW0vQwpSRvwht0l3wjeKNgCwyNqNUnRmjaLdRslMN5omAkIgtLZL4ImLs7BNkB0A
TqAcEPhgvEVl3Q1V2+rK+i4Jwp0Qdbfj7MnV6XdNlZnuSQl4xHwFZWGgeZ5DM1OR
FnVBc1vW1/ATozsJ4nzqp3eb/qWKxCwnzZP9DBCcD4fCtjULANjZ6m1jsxXhGbTm
i23DEFEUhbComVIeG50vdODdgK92GQ==
=6G0Q
-----END PGP SIGNATURE-----



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20190122142851.3z5lkzp4zmazwv4y>