Date: Tue, 29 Apr 2014 07:51:23 GMT From: svn-freebsd-gecko@chruetertee.ch To: freebsd-gecko@freebsd.org Subject: [SVN-Commit] r1581 - in trunk: Mk/Uses mail/linux-thunderbird mail/thunderbird mail/thunderbird-i18n www/firefox www/firefox-i18n www/firefox-nightly www/firefox-nightly/files www/firefox/files www/linux-firefox www/linux-seamonkey www/seamonkey www/seamonkey-i18n Message-ID: <201404290751.s3T7pNNX054920@trillian.chruetertee.ch>
next in thread | raw e-mail | index | archive | help
Author: jbeich Date: Tue Apr 29 07:51:23 2014 New Revision: 1581 Log: update Added: trunk/www/firefox/files/patch-bug981348 trunk/www/firefox/files/patch-bug983957 Deleted: trunk/www/firefox/files/patch-bug783463 trunk/www/firefox/files/patch-bug806917 trunk/www/firefox/files/patch-bug973744 trunk/www/firefox/files/patch-bug975634 trunk/www/firefox/files/patch-bug977457 trunk/www/firefox/files/patch-bug985848 trunk/www/firefox/files/patch-bug989112 trunk/www/firefox/files/patch-ipc-chromium-src-base-message_pump_libevent.cc Modified: trunk/Mk/Uses/gecko.mk trunk/mail/linux-thunderbird/Makefile trunk/mail/linux-thunderbird/distinfo trunk/mail/thunderbird-i18n/Makefile trunk/mail/thunderbird-i18n/distinfo trunk/mail/thunderbird/Makefile trunk/mail/thunderbird/distinfo trunk/www/firefox-i18n/Makefile trunk/www/firefox-i18n/distinfo trunk/www/firefox-nightly/Makefile trunk/www/firefox-nightly/Makefile.hgrev trunk/www/firefox-nightly/distinfo trunk/www/firefox-nightly/files/patch-z-bug517422 trunk/www/firefox/Makefile trunk/www/firefox/distinfo trunk/www/firefox/files/patch-bug847568 trunk/www/firefox/files/patch-clang34-disable-stdcall trunk/www/firefox/files/patch-ipc-chromium-Makefile.in trunk/www/firefox/files/patch-z-bug517422 trunk/www/linux-firefox/Makefile trunk/www/linux-firefox/distinfo trunk/www/linux-seamonkey/Makefile trunk/www/linux-seamonkey/distinfo trunk/www/seamonkey-i18n/Makefile trunk/www/seamonkey-i18n/distinfo trunk/www/seamonkey/Makefile trunk/www/seamonkey/distinfo Modified: trunk/Mk/Uses/gecko.mk ============================================================================== --- trunk/Mk/Uses/gecko.mk Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/Mk/Uses/gecko.mk Tue Apr 29 07:51:23 2014 (r1581) @@ -39,12 +39,12 @@ .elif ${_GECKO_ARGS:Mfirefox} _GECKO_DEFAULT_VERSION= 24 -_GECKO_VERSIONS= 24 29 +_GECKO_VERSIONS= 24 30 _GECKO_TYPE= firefox # Dependence lines for different Firefox versions 24_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:${PORTSDIR}/www/firefox-esr -29_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:${PORTSDIR}/www/firefox +30_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:${PORTSDIR}/www/firefox .if exists(${LOCALBASE}/bin/firefox) _GECKO_INSTALLED_VER!= ${LOCALBASE}/bin/firefox --version 2>/dev/null Modified: trunk/mail/linux-thunderbird/Makefile ============================================================================== --- trunk/mail/linux-thunderbird/Makefile Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/mail/linux-thunderbird/Makefile Tue Apr 29 07:51:23 2014 (r1581) @@ -2,7 +2,7 @@ # $FreeBSD$ PORTNAME= thunderbird -DISTVERSION= 24.4.0 +DISTVERSION= 24.5.0 CATEGORIES= mail news net-im ipv6 DISTNAME= ${PORTNAME}-${DISTVERSION} MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/linux-i686/en-US Modified: trunk/mail/linux-thunderbird/distinfo ============================================================================== --- trunk/mail/linux-thunderbird/distinfo Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/mail/linux-thunderbird/distinfo Tue Apr 29 07:51:23 2014 (r1581) @@ -1,5 +1,5 @@ -SHA256 (thunderbird-24.4.0.tar.bz2) = 376ab51e3c424db7e235b2e94494d48ce2fa9a8f1fbf5ef5cf9e367bbaf7422d -SIZE (thunderbird-24.4.0.tar.bz2) = 28923795 +SHA256 (thunderbird-24.5.0.tar.bz2) = 6441f90eda22808c37bca023748efee7735cf9b18b1d21ce75878c10da8baad7 +SIZE (thunderbird-24.5.0.tar.bz2) = 28958353 SHA256 (glib2-2.22.2-2.fc12.i686.rpm) = e3b459c245ec14e7248e9de4b506963a4773407f3e58835db5070d0ed02ecc99 SIZE (glib2-2.22.2-2.fc12.i686.rpm) = 1162908 SHA256 (gtk2-2.18.3-19.fc12.i686.rpm) = aea9cf7ffe9c8dae0faa2bf3d2aa1b2117c55dce03da72dcce8c268279ec0a4b Modified: trunk/mail/thunderbird-i18n/Makefile ============================================================================== --- trunk/mail/thunderbird-i18n/Makefile Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/mail/thunderbird-i18n/Makefile Tue Apr 29 07:51:23 2014 (r1581) @@ -2,7 +2,7 @@ # $FreeBSD: head/mail/thunderbird-i18n/Makefile 336446 2013-12-14 13:42:06Z flo $ PORTNAME= thunderbird-i18n -PORTVERSION= 24.4.0 +PORTVERSION= 24.5.0 CATEGORIES= mail news net-im MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${PORTVERSION}/linux-i686/xpi PKGNAMEPREFIX= Modified: trunk/mail/thunderbird-i18n/distinfo ============================================================================== --- trunk/mail/thunderbird-i18n/distinfo Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/mail/thunderbird-i18n/distinfo Tue Apr 29 07:51:23 2014 (r1581) @@ -1,110 +1,110 @@ -SHA256 (xpi/thunderbird-i18n-24.4.0/ar.xpi) = ea847b5e42930343d2ec2e2f9182d59ff84d23b6a864e2c93eb0455cf452f296 -SIZE (xpi/thunderbird-i18n-24.4.0/ar.xpi) = 457862 -SHA256 (xpi/thunderbird-i18n-24.4.0/ast.xpi) = 0ec76e7938dafb72e7fe94941dd9514223d8c5c3880cb4bfd92c2075c7a1528b -SIZE (xpi/thunderbird-i18n-24.4.0/ast.xpi) = 373831 -SHA256 (xpi/thunderbird-i18n-24.4.0/be.xpi) = f16da428ed0246b0f08e00bc0f23eddba4e524dd856b30e93628f7fe0a636fce -SIZE (xpi/thunderbird-i18n-24.4.0/be.xpi) = 416882 -SHA256 (xpi/thunderbird-i18n-24.4.0/bg.xpi) = 7d2e98470e62bb63c7acfd5f350cfb909598755b33ad2ff77d9792d3de341b7f -SIZE (xpi/thunderbird-i18n-24.4.0/bg.xpi) = 485023 -SHA256 (xpi/thunderbird-i18n-24.4.0/bn-BD.xpi) = 72afde682492061234e3887253fd10fccfc738677b952a5b2932d1963f181ed7 -SIZE (xpi/thunderbird-i18n-24.4.0/bn-BD.xpi) = 537257 -SHA256 (xpi/thunderbird-i18n-24.4.0/br.xpi) = bf218d7f6d2eaf2f6444944de439cefe8f33e4e56a36eef83ee3e8986a98b944 -SIZE (xpi/thunderbird-i18n-24.4.0/br.xpi) = 427679 -SHA256 (xpi/thunderbird-i18n-24.4.0/ca.xpi) = 7f22bd3ec7b29c272dd3c35062c2fb6d92cfbe248365d1e8ea9c86a1af83fdfd -SIZE (xpi/thunderbird-i18n-24.4.0/ca.xpi) = 429746 -SHA256 (xpi/thunderbird-i18n-24.4.0/cs.xpi) = f139479d6984a6bf62b2a9ac398f16fd2ad057aa47115fae7072b50446877ede -SIZE (xpi/thunderbird-i18n-24.4.0/cs.xpi) = 431476 -SHA256 (xpi/thunderbird-i18n-24.4.0/da.xpi) = 0c59bf84b45dc399fa3090d3d34a5f27772630300115b10546fb7172823d0a4f -SIZE (xpi/thunderbird-i18n-24.4.0/da.xpi) = 409626 -SHA256 (xpi/thunderbird-i18n-24.4.0/de.xpi) = 7bf488e61a07ab600b057921b117376eadf919a874e59f3350c16a171bcc5a5b -SIZE (xpi/thunderbird-i18n-24.4.0/de.xpi) = 408674 -SHA256 (xpi/thunderbird-i18n-24.4.0/el.xpi) = ba85515ab06c4255f2b0953c8a9f6e0d4ccf26f4a240e8972b29fbde708d08ce -SIZE (xpi/thunderbird-i18n-24.4.0/el.xpi) = 464552 -SHA256 (xpi/thunderbird-i18n-24.4.0/en-GB.xpi) = 3ceb78e9d95e104113121d4667c25b48bdc2faedcab168884453765dd4994a8f -SIZE (xpi/thunderbird-i18n-24.4.0/en-GB.xpi) = 400962 -SHA256 (xpi/thunderbird-i18n-24.4.0/en-US.xpi) = 9d59b39cb6e8c38a1f94b91ec28882a324a460a7725dfad5fc4dcfca852a93a1 -SIZE (xpi/thunderbird-i18n-24.4.0/en-US.xpi) = 402144 -SHA256 (xpi/thunderbird-i18n-24.4.0/es-AR.xpi) = 6ff2ec8f30aba2261dfa59b7fc3cf664502966e1d9247f2a0f6b0290b4752c0d -SIZE (xpi/thunderbird-i18n-24.4.0/es-AR.xpi) = 425657 -SHA256 (xpi/thunderbird-i18n-24.4.0/es-ES.xpi) = 52721d25f1c81d8562dd830d0b946e3b3573e88e07370f53d4bfc181bd87ed5b -SIZE (xpi/thunderbird-i18n-24.4.0/es-ES.xpi) = 366308 -SHA256 (xpi/thunderbird-i18n-24.4.0/et.xpi) = b4ceaedc90bc8bd6efa8a77de2f58ea239b24dd3df3cc88db65857eb51b5f98b -SIZE (xpi/thunderbird-i18n-24.4.0/et.xpi) = 422894 -SHA256 (xpi/thunderbird-i18n-24.4.0/eu.xpi) = 1369771f945eca750e85fa17ee02fccd57c58ca07e57ebe7ac8e4cc93a26a400 -SIZE (xpi/thunderbird-i18n-24.4.0/eu.xpi) = 418497 -SHA256 (xpi/thunderbird-i18n-24.4.0/fi.xpi) = 96dab3bfecee70e22015ae1f6c207e396c29d8670f270ed3f972f81fa7c383db -SIZE (xpi/thunderbird-i18n-24.4.0/fi.xpi) = 424264 -SHA256 (xpi/thunderbird-i18n-24.4.0/fr.xpi) = 3848ae6f610b8862ff96ec7a0b54e6485f76831283ac12a619f0ce8107a59655 -SIZE (xpi/thunderbird-i18n-24.4.0/fr.xpi) = 431288 -SHA256 (xpi/thunderbird-i18n-24.4.0/fy-NL.xpi) = 2506c3ad7483c1c7d1ba23970a22fe069833a12bd63e2963f07d97176b476c85 -SIZE (xpi/thunderbird-i18n-24.4.0/fy-NL.xpi) = 426098 -SHA256 (xpi/thunderbird-i18n-24.4.0/ga-IE.xpi) = 313765ea94fd9b05738a8322f84bdf3368827695342ae09fe3ab1da8b9f99277 -SIZE (xpi/thunderbird-i18n-24.4.0/ga-IE.xpi) = 437114 -SHA256 (xpi/thunderbird-i18n-24.4.0/gd.xpi) = 63a4b1fb749551596b5f94130e63645585d384bcf57ead9256008241e8bbefd7 -SIZE (xpi/thunderbird-i18n-24.4.0/gd.xpi) = 440091 -SHA256 (xpi/thunderbird-i18n-24.4.0/gl.xpi) = ac58f14a44b67bb6fd6c20efe79e81ad05c5a10b174595f5cf077d676a76d0bd -SIZE (xpi/thunderbird-i18n-24.4.0/gl.xpi) = 427543 -SHA256 (xpi/thunderbird-i18n-24.4.0/he.xpi) = b563c9372a99c6e5aff15ba73e70424828acf2083402b22de1d033380432cd81 -SIZE (xpi/thunderbird-i18n-24.4.0/he.xpi) = 457065 -SHA256 (xpi/thunderbird-i18n-24.4.0/hr.xpi) = db5718e663468cdcc2d4701dd5b01e6b2e39e0bb6ca11e58a4056c7c22e4db20 -SIZE (xpi/thunderbird-i18n-24.4.0/hr.xpi) = 422387 -SHA256 (xpi/thunderbird-i18n-24.4.0/hu.xpi) = 4b516919dd26a7d6294e57ca6b45f07ca1f65e887ad49c3ded5458d7f895b066 -SIZE (xpi/thunderbird-i18n-24.4.0/hu.xpi) = 441512 -SHA256 (xpi/thunderbird-i18n-24.4.0/hy-AM.xpi) = 09a95139e9bbcabd0b3ca45eb8c5d6f3f8fbbbb2cae8d22c85b505f0f5feff8e -SIZE (xpi/thunderbird-i18n-24.4.0/hy-AM.xpi) = 477922 -SHA256 (xpi/thunderbird-i18n-24.4.0/id.xpi) = 5a4d8b2e0e96972d91fe60c1799c66f6387ea0858392dd545a2dcef02c753a8e -SIZE (xpi/thunderbird-i18n-24.4.0/id.xpi) = 457498 -SHA256 (xpi/thunderbird-i18n-24.4.0/is.xpi) = e85519acd2619815c350f49c9406c4f36585cc61c6555448bc2a323cf0bbf2ca -SIZE (xpi/thunderbird-i18n-24.4.0/is.xpi) = 425710 -SHA256 (xpi/thunderbird-i18n-24.4.0/it.xpi) = d32a5e3ed927502c7163243b59686e977a42c85822eeae964c0635ded3071002 -SIZE (xpi/thunderbird-i18n-24.4.0/it.xpi) = 357933 -SHA256 (xpi/thunderbird-i18n-24.4.0/ja.xpi) = 425c787bc6f432b246f165c4e6bdbd814f6d058bb662a873c61f72ace8816515 -SIZE (xpi/thunderbird-i18n-24.4.0/ja.xpi) = 475559 -SHA256 (xpi/thunderbird-i18n-24.4.0/ko.xpi) = 23750b422f4395630555b4dd60ed86a6f8d70a328d0334d1a04431c85a537562 -SIZE (xpi/thunderbird-i18n-24.4.0/ko.xpi) = 428070 -SHA256 (xpi/thunderbird-i18n-24.4.0/lt.xpi) = 93873a2aad2433626675f23be74781d74472971edb0c891d1bfcfc29d10e920d -SIZE (xpi/thunderbird-i18n-24.4.0/lt.xpi) = 443260 -SHA256 (xpi/thunderbird-i18n-24.4.0/nb-NO.xpi) = fbfd546b9617631c4df0cb85cf2e939d75b56c3c6ff7601f4556f840df7fb3e3 -SIZE (xpi/thunderbird-i18n-24.4.0/nb-NO.xpi) = 418922 -SHA256 (xpi/thunderbird-i18n-24.4.0/nl.xpi) = 7fd2b9560a00e3172a573796899fba26d1d1cae69e2b17c81213a223da8c2712 -SIZE (xpi/thunderbird-i18n-24.4.0/nl.xpi) = 418763 -SHA256 (xpi/thunderbird-i18n-24.4.0/nn-NO.xpi) = d0fc15725d6a8f120040ba4051740a10d47fcdfce3345619a4cd7598370dafac -SIZE (xpi/thunderbird-i18n-24.4.0/nn-NO.xpi) = 421134 -SHA256 (xpi/thunderbird-i18n-24.4.0/pa-IN.xpi) = c0c55f8c1b8009795e30318297b527f9ece985db4439b2ad0dbe7af937da62c4 -SIZE (xpi/thunderbird-i18n-24.4.0/pa-IN.xpi) = 508273 -SHA256 (xpi/thunderbird-i18n-24.4.0/pl.xpi) = ce486fffc5366b91d8d57b43ffcf5af93c7119960136344892cad5b32fcbb877 -SIZE (xpi/thunderbird-i18n-24.4.0/pl.xpi) = 401752 -SHA256 (xpi/thunderbird-i18n-24.4.0/pt-BR.xpi) = 2b9ecf69dc46a62fb613eddcdd7d2c417046eff3ca20c400e7ec8389f1ae9436 -SIZE (xpi/thunderbird-i18n-24.4.0/pt-BR.xpi) = 430909 -SHA256 (xpi/thunderbird-i18n-24.4.0/pt-PT.xpi) = 3f3b6695433f8a23d1fc1c90426165168a31e6ee505a9e0dc30773fb87d1ef0a -SIZE (xpi/thunderbird-i18n-24.4.0/pt-PT.xpi) = 425025 -SHA256 (xpi/thunderbird-i18n-24.4.0/rm.xpi) = d4281b792ad6c2662b9dda2e4d087a11b50978901d508e7855cd945d9578ab06 -SIZE (xpi/thunderbird-i18n-24.4.0/rm.xpi) = 432384 -SHA256 (xpi/thunderbird-i18n-24.4.0/ro.xpi) = efd0d40b632d181aa289dcf9a21d8ba213f90ca6f43a886e7cc67a4b1d3e88d0 -SIZE (xpi/thunderbird-i18n-24.4.0/ro.xpi) = 497491 -SHA256 (xpi/thunderbird-i18n-24.4.0/ru.xpi) = 284e9c3fcaee7caa55f442d3fe6127d68bbd1a0e294015a3d97bcbac9a477a13 -SIZE (xpi/thunderbird-i18n-24.4.0/ru.xpi) = 425097 -SHA256 (xpi/thunderbird-i18n-24.4.0/si.xpi) = 9f97455e774e74b4a3d5effe631d7b4eaeebdee3f0f0fdcc3b3ec90c17a7de67 -SIZE (xpi/thunderbird-i18n-24.4.0/si.xpi) = 511167 -SHA256 (xpi/thunderbird-i18n-24.4.0/sk.xpi) = 8154cdc41071c4e4d06dd8bf37b5166e6078a90c00753e13d01d20c5a4b5ba4e -SIZE (xpi/thunderbird-i18n-24.4.0/sk.xpi) = 440106 -SHA256 (xpi/thunderbird-i18n-24.4.0/sl.xpi) = 4fbd8dce101e088cec044113cf298464b56f729d7de9c48c3e295aa8763a8b20 -SIZE (xpi/thunderbird-i18n-24.4.0/sl.xpi) = 421706 -SHA256 (xpi/thunderbird-i18n-24.4.0/sq.xpi) = 3d6ce7ca0a312345d7c8b7006fd05961e7f23c67bbbe73da971448de916ea511 -SIZE (xpi/thunderbird-i18n-24.4.0/sq.xpi) = 435215 -SHA256 (xpi/thunderbird-i18n-24.4.0/sr.xpi) = 95fc6006ce2b05f66945710e56304d2abda2295272b4fe6c976a7885cdc63b85 -SIZE (xpi/thunderbird-i18n-24.4.0/sr.xpi) = 518889 -SHA256 (xpi/thunderbird-i18n-24.4.0/sv-SE.xpi) = c509fa6766b0bad5e0fea3bb66e8faf56a4c3ed6a955d64ef2dd3aaf354c5dbe -SIZE (xpi/thunderbird-i18n-24.4.0/sv-SE.xpi) = 423815 -SHA256 (xpi/thunderbird-i18n-24.4.0/ta-LK.xpi) = ca2a242106b6b8cfd4123961704aaa0ea50ef08a59413ab5782971460d47a371 -SIZE (xpi/thunderbird-i18n-24.4.0/ta-LK.xpi) = 534923 -SHA256 (xpi/thunderbird-i18n-24.4.0/tr.xpi) = 6e49a73b80664b92d590888d34f19aa2f77490459c2a9d89cdf6d65ca5f4a569 -SIZE (xpi/thunderbird-i18n-24.4.0/tr.xpi) = 438067 -SHA256 (xpi/thunderbird-i18n-24.4.0/uk.xpi) = 8846c8bf8f30206afb21663fc0b37ca05f382cd2704beb5dbbf2fac94276e500 -SIZE (xpi/thunderbird-i18n-24.4.0/uk.xpi) = 480949 -SHA256 (xpi/thunderbird-i18n-24.4.0/vi.xpi) = 9986e317e7c830111e9e018fd37f9e39c99a5b841115c7b661c5b296532c8548 -SIZE (xpi/thunderbird-i18n-24.4.0/vi.xpi) = 495558 -SHA256 (xpi/thunderbird-i18n-24.4.0/zh-CN.xpi) = 230d8f16b03d1b2f1b3a6a502f78027d0e9d7fe8d62751ddf85935d4247fa696 -SIZE (xpi/thunderbird-i18n-24.4.0/zh-CN.xpi) = 449181 -SHA256 (xpi/thunderbird-i18n-24.4.0/zh-TW.xpi) = 4041db9d40a5c2d6256f8d3cf3e307d1708fa7db8645291383f6d09241225bdd -SIZE (xpi/thunderbird-i18n-24.4.0/zh-TW.xpi) = 450001 +SHA256 (xpi/thunderbird-i18n-24.5.0/ar.xpi) = 61c387758c281431653c0d2a40f9779dea513358129fca8838b7568bfcb2f046 +SIZE (xpi/thunderbird-i18n-24.5.0/ar.xpi) = 457862 +SHA256 (xpi/thunderbird-i18n-24.5.0/ast.xpi) = a24e106915b718563a6b59e43d0152c027ac8f851192ca9c26135eaf2d0bf5f4 +SIZE (xpi/thunderbird-i18n-24.5.0/ast.xpi) = 373831 +SHA256 (xpi/thunderbird-i18n-24.5.0/be.xpi) = 46f2f6a22fc8eaa40793be47e7f3351297182cc7ddfb8116b00da965d6ef4a20 +SIZE (xpi/thunderbird-i18n-24.5.0/be.xpi) = 416882 +SHA256 (xpi/thunderbird-i18n-24.5.0/bg.xpi) = e36c78b5dc1667c2a66000a94d4858fd315637b2072491abd5678739c3745f88 +SIZE (xpi/thunderbird-i18n-24.5.0/bg.xpi) = 485023 +SHA256 (xpi/thunderbird-i18n-24.5.0/bn-BD.xpi) = 84b0646dc6ab24c3d366dcb93f30c0e93a53215f2d837acfbfe6757d36cf8b2a +SIZE (xpi/thunderbird-i18n-24.5.0/bn-BD.xpi) = 537258 +SHA256 (xpi/thunderbird-i18n-24.5.0/br.xpi) = 735a7dcf944090ded122ac7fd94ca081599018091b6b948629281b2dd053ea11 +SIZE (xpi/thunderbird-i18n-24.5.0/br.xpi) = 427679 +SHA256 (xpi/thunderbird-i18n-24.5.0/ca.xpi) = b44c121db7370a79569b8309658dcff73df319f19ce446695964a8913dfffa6d +SIZE (xpi/thunderbird-i18n-24.5.0/ca.xpi) = 429746 +SHA256 (xpi/thunderbird-i18n-24.5.0/cs.xpi) = 500809375921ab12902f81c0d700c6b66ec2c3bd3a0d03cd58fd94bc59e61040 +SIZE (xpi/thunderbird-i18n-24.5.0/cs.xpi) = 431476 +SHA256 (xpi/thunderbird-i18n-24.5.0/da.xpi) = d9c3e799b534164318262e936b9a5b50016ffea58276d67a6f6cca3c8fad6a83 +SIZE (xpi/thunderbird-i18n-24.5.0/da.xpi) = 409626 +SHA256 (xpi/thunderbird-i18n-24.5.0/de.xpi) = e03fa8c3a32b66955c7b95ccb0651d555e73f62411ed55aa2a44237dbc27b624 +SIZE (xpi/thunderbird-i18n-24.5.0/de.xpi) = 408674 +SHA256 (xpi/thunderbird-i18n-24.5.0/el.xpi) = 490f21edef433189cbcb0e16acb87ebc6e4047bce5c53ae35073782ac2539ea5 +SIZE (xpi/thunderbird-i18n-24.5.0/el.xpi) = 464552 +SHA256 (xpi/thunderbird-i18n-24.5.0/en-GB.xpi) = df6884048a7cc4579cf8d01b9846f4a4fada50c35486a5ef753b92c9e6e9eca4 +SIZE (xpi/thunderbird-i18n-24.5.0/en-GB.xpi) = 400962 +SHA256 (xpi/thunderbird-i18n-24.5.0/en-US.xpi) = 7b6c84303047b2cd7b8def5050978852d5133837f2b805b445da553b7c61ad26 +SIZE (xpi/thunderbird-i18n-24.5.0/en-US.xpi) = 402144 +SHA256 (xpi/thunderbird-i18n-24.5.0/es-AR.xpi) = 1f89c991a958a89913c4ce7d398d3727505f1c5ea18188691f2503d4fc4808f0 +SIZE (xpi/thunderbird-i18n-24.5.0/es-AR.xpi) = 425656 +SHA256 (xpi/thunderbird-i18n-24.5.0/es-ES.xpi) = f4793deb6ddbe8be6af31fe809ba2e6b1a85c16c42fc023d9c798b2a48ed1aab +SIZE (xpi/thunderbird-i18n-24.5.0/es-ES.xpi) = 366308 +SHA256 (xpi/thunderbird-i18n-24.5.0/et.xpi) = 96a8367da63bbb573386ef2301089a676b963e5000a7638dd616cf66f0fefc06 +SIZE (xpi/thunderbird-i18n-24.5.0/et.xpi) = 422893 +SHA256 (xpi/thunderbird-i18n-24.5.0/eu.xpi) = b3617b39f949ad5e2cc06ad96de92eb76240fb5299fc9ef65479365a390ba2f3 +SIZE (xpi/thunderbird-i18n-24.5.0/eu.xpi) = 418497 +SHA256 (xpi/thunderbird-i18n-24.5.0/fi.xpi) = 3732e9d56156d836dbe69cac9e0d17e2b9e65b3436d54337f01bad07ca79ad86 +SIZE (xpi/thunderbird-i18n-24.5.0/fi.xpi) = 424264 +SHA256 (xpi/thunderbird-i18n-24.5.0/fr.xpi) = 4f6749e30cd43d41d3ad963e09e891c5455f4afba5d659482c945bf2d3ffa041 +SIZE (xpi/thunderbird-i18n-24.5.0/fr.xpi) = 431289 +SHA256 (xpi/thunderbird-i18n-24.5.0/fy-NL.xpi) = 5fd8a7748cb741587e6f8f5608edd1b930adfd597d7c41572ef938acabf5527d +SIZE (xpi/thunderbird-i18n-24.5.0/fy-NL.xpi) = 426098 +SHA256 (xpi/thunderbird-i18n-24.5.0/ga-IE.xpi) = 5c680e902636dbbdb0850afd8c52016716d2a45bee15661626f8e66dc40d7f3c +SIZE (xpi/thunderbird-i18n-24.5.0/ga-IE.xpi) = 437114 +SHA256 (xpi/thunderbird-i18n-24.5.0/gd.xpi) = 49941bbc298c4ca251dc799280236e3f687a75a1650bf47ece9da7a6390f1c76 +SIZE (xpi/thunderbird-i18n-24.5.0/gd.xpi) = 440091 +SHA256 (xpi/thunderbird-i18n-24.5.0/gl.xpi) = 2498b883e3cd6d7a81c02824afdaede981228dde6f0a9c13217a34e6d6dfa7c1 +SIZE (xpi/thunderbird-i18n-24.5.0/gl.xpi) = 427543 +SHA256 (xpi/thunderbird-i18n-24.5.0/he.xpi) = a5546f26a205db3a0196c5032c8e69314affecd2174f7880f5ae517af73785f9 +SIZE (xpi/thunderbird-i18n-24.5.0/he.xpi) = 457065 +SHA256 (xpi/thunderbird-i18n-24.5.0/hr.xpi) = b225e5428b4ec30eb618fcac0de66557e2f7bfdc88957dc739ec142d7968a3b2 +SIZE (xpi/thunderbird-i18n-24.5.0/hr.xpi) = 422387 +SHA256 (xpi/thunderbird-i18n-24.5.0/hu.xpi) = a24e6b47bb40a6b71319b5a4f7638574e3eede2163238da059bf0876cf7ec3fa +SIZE (xpi/thunderbird-i18n-24.5.0/hu.xpi) = 441511 +SHA256 (xpi/thunderbird-i18n-24.5.0/hy-AM.xpi) = a8021d93dc1f3d372ee94d4c7eaacae2f30df06e2bd6cfc37a1ab564c90b6fb4 +SIZE (xpi/thunderbird-i18n-24.5.0/hy-AM.xpi) = 477923 +SHA256 (xpi/thunderbird-i18n-24.5.0/id.xpi) = 41222ef78db07a5da8b388485cd3536184caf8eb7264830e410026c279972454 +SIZE (xpi/thunderbird-i18n-24.5.0/id.xpi) = 457499 +SHA256 (xpi/thunderbird-i18n-24.5.0/is.xpi) = 3fdd5a7f5692ba2103bec6037d77bf848f78cb02eb1644d46641e89fe52cae2c +SIZE (xpi/thunderbird-i18n-24.5.0/is.xpi) = 425710 +SHA256 (xpi/thunderbird-i18n-24.5.0/it.xpi) = 7c9a296019584d63c44ec03dda76200b83f07f50dcbafbe7c3b69af8f894f5cd +SIZE (xpi/thunderbird-i18n-24.5.0/it.xpi) = 357933 +SHA256 (xpi/thunderbird-i18n-24.5.0/ja.xpi) = 624bf5f383fbcaf6eff9164232b72395733ae01a3a1f5e10d4a3e6fda10de1b8 +SIZE (xpi/thunderbird-i18n-24.5.0/ja.xpi) = 475559 +SHA256 (xpi/thunderbird-i18n-24.5.0/ko.xpi) = 830f3245b7f246e2269a758b7cc9186d7aadbf519ee72fa33b3d2325e285a291 +SIZE (xpi/thunderbird-i18n-24.5.0/ko.xpi) = 428071 +SHA256 (xpi/thunderbird-i18n-24.5.0/lt.xpi) = dff8b84bcfbb8c07d76d415b6ef378d6024bd81f0655ca438927572b85f4e37c +SIZE (xpi/thunderbird-i18n-24.5.0/lt.xpi) = 443259 +SHA256 (xpi/thunderbird-i18n-24.5.0/nb-NO.xpi) = 2ae8f6c1a61d6f17cfb4f86d5d9926688fb8a403ab64fe1950c89a8997bcdd55 +SIZE (xpi/thunderbird-i18n-24.5.0/nb-NO.xpi) = 418922 +SHA256 (xpi/thunderbird-i18n-24.5.0/nl.xpi) = da2532d21fb594927f59979d4c022297b0ee5f0c29cdf2209d7e4f9296931cd9 +SIZE (xpi/thunderbird-i18n-24.5.0/nl.xpi) = 418764 +SHA256 (xpi/thunderbird-i18n-24.5.0/nn-NO.xpi) = 2a52857fca772239f14207755946dbdd36ba1c0209f8c09f30cfe6cdc94a5892 +SIZE (xpi/thunderbird-i18n-24.5.0/nn-NO.xpi) = 421134 +SHA256 (xpi/thunderbird-i18n-24.5.0/pa-IN.xpi) = f817ef8578af107efe45cc2406be7568440c1b4e020c3764afbec774b3b17a4b +SIZE (xpi/thunderbird-i18n-24.5.0/pa-IN.xpi) = 508272 +SHA256 (xpi/thunderbird-i18n-24.5.0/pl.xpi) = 13fd347b116e6d5e1c0b168f020270cc179f32b1e056e333cc3a86a8406f901a +SIZE (xpi/thunderbird-i18n-24.5.0/pl.xpi) = 401752 +SHA256 (xpi/thunderbird-i18n-24.5.0/pt-BR.xpi) = 57f7c85aa5ff76cd01387ff1752a63e8d2b26749765dd7daf7137de4a06eb6fe +SIZE (xpi/thunderbird-i18n-24.5.0/pt-BR.xpi) = 430909 +SHA256 (xpi/thunderbird-i18n-24.5.0/pt-PT.xpi) = 828f0920581519070aa58c366f603d964638a60b2de74ad49fcf9397db169145 +SIZE (xpi/thunderbird-i18n-24.5.0/pt-PT.xpi) = 425025 +SHA256 (xpi/thunderbird-i18n-24.5.0/rm.xpi) = b5ad4b75ba5670223b6f16686830f2eed904a764c72a61c88e054d9574518d44 +SIZE (xpi/thunderbird-i18n-24.5.0/rm.xpi) = 432384 +SHA256 (xpi/thunderbird-i18n-24.5.0/ro.xpi) = a5a8215d718a6be1c576059168c9913c55d557b26bed500a4e39a888e0f18c4b +SIZE (xpi/thunderbird-i18n-24.5.0/ro.xpi) = 497491 +SHA256 (xpi/thunderbird-i18n-24.5.0/ru.xpi) = 53277de17e52ed168368153902b498ea478eed06e00fc9a3f6b880cfbcb48c1f +SIZE (xpi/thunderbird-i18n-24.5.0/ru.xpi) = 425097 +SHA256 (xpi/thunderbird-i18n-24.5.0/si.xpi) = aca1ede31da89a6ab476aad09696306f61522cdd878c5e1dabd37ba7f5b28713 +SIZE (xpi/thunderbird-i18n-24.5.0/si.xpi) = 511166 +SHA256 (xpi/thunderbird-i18n-24.5.0/sk.xpi) = a64b7290e92579b75a6cf34ba1baed18bb086265c8452c08ddb0228c714b5ed5 +SIZE (xpi/thunderbird-i18n-24.5.0/sk.xpi) = 440106 +SHA256 (xpi/thunderbird-i18n-24.5.0/sl.xpi) = ebab16114f3fe94cd15c9993a94693412afa121ce8975afadf54bf06d9a5fbab +SIZE (xpi/thunderbird-i18n-24.5.0/sl.xpi) = 421706 +SHA256 (xpi/thunderbird-i18n-24.5.0/sq.xpi) = 5f933fa1e66e16c15d6237099cf65f5f3300ff423d3352f6e5aa3b2d207c7f0a +SIZE (xpi/thunderbird-i18n-24.5.0/sq.xpi) = 435215 +SHA256 (xpi/thunderbird-i18n-24.5.0/sr.xpi) = 21ee6b0854e5e0052ef4eacca593c0ff41ea000dd0dc75f1d7b647b34591ad49 +SIZE (xpi/thunderbird-i18n-24.5.0/sr.xpi) = 518889 +SHA256 (xpi/thunderbird-i18n-24.5.0/sv-SE.xpi) = 17e752fbcf6e24203b6d27bce06df39766a7878fced1db516b96e2f9ec7e7426 +SIZE (xpi/thunderbird-i18n-24.5.0/sv-SE.xpi) = 423815 +SHA256 (xpi/thunderbird-i18n-24.5.0/ta-LK.xpi) = 55b10f60dea2abc565c69c841988110b989e69e7ce880500f9990af1b7e7437a +SIZE (xpi/thunderbird-i18n-24.5.0/ta-LK.xpi) = 534922 +SHA256 (xpi/thunderbird-i18n-24.5.0/tr.xpi) = 25b1be7c836addc60bfa36e6c759dcd2b12c73c468351bc830f125080489dd92 +SIZE (xpi/thunderbird-i18n-24.5.0/tr.xpi) = 438066 +SHA256 (xpi/thunderbird-i18n-24.5.0/uk.xpi) = 331ed11d6d4b873db63e33db707a205d98eb0f4b6201a75921431b2e7e4e0755 +SIZE (xpi/thunderbird-i18n-24.5.0/uk.xpi) = 480949 +SHA256 (xpi/thunderbird-i18n-24.5.0/vi.xpi) = 993eb8b5869166b51dab725fea1126445cc132cafadab1b5096f6850f2aaadd3 +SIZE (xpi/thunderbird-i18n-24.5.0/vi.xpi) = 495558 +SHA256 (xpi/thunderbird-i18n-24.5.0/zh-CN.xpi) = e587849f5bae5bbb65bc68087fb9bbe672162e5bca69a7e99f0ca7e4559d5354 +SIZE (xpi/thunderbird-i18n-24.5.0/zh-CN.xpi) = 449181 +SHA256 (xpi/thunderbird-i18n-24.5.0/zh-TW.xpi) = ace0e695c8112ba1754f16603ee14418303ae053b97f8af0b23272a308c4f066 +SIZE (xpi/thunderbird-i18n-24.5.0/zh-TW.xpi) = 450000 Modified: trunk/mail/thunderbird/Makefile ============================================================================== --- trunk/mail/thunderbird/Makefile Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/mail/thunderbird/Makefile Tue Apr 29 07:51:23 2014 (r1581) @@ -2,7 +2,7 @@ # $FreeBSD: head/mail/thunderbird/Makefile 339634 2014-01-13 21:00:02Z rene $ PORTNAME= thunderbird -DISTVERSION= 24.4.0 +DISTVERSION= 24.5.0 CATEGORIES= mail news net-im ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \ https://ftp.mozilla.org/pub/mozilla.org/${PORTNAME}/candidates/${DISTVERSION}-candidates/build1/source/ Modified: trunk/mail/thunderbird/distinfo ============================================================================== --- trunk/mail/thunderbird/distinfo Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/mail/thunderbird/distinfo Tue Apr 29 07:51:23 2014 (r1581) @@ -1,4 +1,4 @@ -SHA256 (thunderbird-24.4.0.source.tar.bz2) = 9aecdc2bf00cbe33629169aca8225a30d2674f4d372e845c2fc38c5d9f2bc7b6 -SIZE (thunderbird-24.4.0.source.tar.bz2) = 140040804 +SHA256 (thunderbird-24.5.0.source.tar.bz2) = 971c48db11328613340ed97a92018403647b8cca6a692b3d6b4145aed124382a +SIZE (thunderbird-24.5.0.source.tar.bz2) = 140048545 SHA256 (enigmail-1.6.tar.gz) = 10d5eb7ba364b9b6e6275aae8bba1d0e4321ed7d55a715337d566ccf2a56ea4d SIZE (enigmail-1.6.tar.gz) = 1231111 Modified: trunk/www/firefox-i18n/Makefile ============================================================================== --- trunk/www/firefox-i18n/Makefile Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/www/firefox-i18n/Makefile Tue Apr 29 07:51:23 2014 (r1581) @@ -2,7 +2,7 @@ # $FreeBSD: head/www/firefox-i18n/Makefile 350687 2014-04-09 12:35:01Z bapt $ PORTNAME= firefox-i18n -PORTVERSION= 29.0 +PORTVERSION= 30.0b1 CATEGORIES= www MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${PORTVERSION}/linux-i686/xpi PKGNAMEPREFIX= @@ -14,7 +14,7 @@ EXTRACT_DEPENDS= zip:${PORTSDIR}/archivers/zip -USES= zip:infozip gecko:firefox,29 +USES= zip:infozip gecko:firefox,30 USE_XPI= firefox linux-firefox NO_ARCH= yes Modified: trunk/www/firefox-i18n/distinfo ============================================================================== --- trunk/www/firefox-i18n/distinfo Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/www/firefox-i18n/distinfo Tue Apr 29 07:51:23 2014 (r1581) @@ -1,176 +1,170 @@ -SHA256 (xpi/firefox-i18n-29.0/ach.xpi) = c6ccf91e05b119f39b0d83905ed143e36187649f62389156803a76318300a299 -SIZE (xpi/firefox-i18n-29.0/ach.xpi) = 373393 -SHA256 (xpi/firefox-i18n-29.0/af.xpi) = adf809368117ba8499a6e2f99b331ab32b62c499ba1174e2fe0918f72819e2b3 -SIZE (xpi/firefox-i18n-29.0/af.xpi) = 367124 -SHA256 (xpi/firefox-i18n-29.0/an.xpi) = a82aa53f398d619cdc203adc4b904b58d7f281550d8f631439c53269fa56a4bd -SIZE (xpi/firefox-i18n-29.0/an.xpi) = 373502 -SHA256 (xpi/firefox-i18n-29.0/ar.xpi) = 9dd29397169946d0ea425483c2c3c60f67d8dbc784b3af302416c36aa0b82cae -SIZE (xpi/firefox-i18n-29.0/ar.xpi) = 396597 -SHA256 (xpi/firefox-i18n-29.0/as.xpi) = 2f3a75d484e415551f9d19fb56c8208d6f65beab8db582b7d62f760f1f2f67f4 -SIZE (xpi/firefox-i18n-29.0/as.xpi) = 415330 -SHA256 (xpi/firefox-i18n-29.0/ast.xpi) = f232691daac61375b54312e6ef04cf4edb1270bc569694516d65c9a07f14f033 -SIZE (xpi/firefox-i18n-29.0/ast.xpi) = 324861 -SHA256 (xpi/firefox-i18n-29.0/be.xpi) = 46d25d6aef317349a915d99ee46325ae4de2947dbfd774343c5093f46b5ce098 -SIZE (xpi/firefox-i18n-29.0/be.xpi) = 340365 -SHA256 (xpi/firefox-i18n-29.0/bg.xpi) = a13eaeda2a8e664cb6849b5073b7da6bbf524b1038d40bda6a2b1c61314e6c07 -SIZE (xpi/firefox-i18n-29.0/bg.xpi) = 400750 -SHA256 (xpi/firefox-i18n-29.0/bn-BD.xpi) = be518dbeff0b3e15b28a196bd31c314b67b0c0116ae20c910b93b3a4b27f67d0 -SIZE (xpi/firefox-i18n-29.0/bn-BD.xpi) = 426365 -SHA256 (xpi/firefox-i18n-29.0/bn-IN.xpi) = cd49bf2e39e388ac3ae8f74df4e823f6a7a8ceec6da44fba7c0b59f09179a62d -SIZE (xpi/firefox-i18n-29.0/bn-IN.xpi) = 421119 -SHA256 (xpi/firefox-i18n-29.0/br.xpi) = 1ba6c16865e0181fea267e45e7f4c87a8518f615b522aea9fb952ec94b984bd2 -SIZE (xpi/firefox-i18n-29.0/br.xpi) = 363996 -SHA256 (xpi/firefox-i18n-29.0/bs.xpi) = e968879eda41d0f96e35a21936d883c92110d40497e247a6510977c167dab4aa -SIZE (xpi/firefox-i18n-29.0/bs.xpi) = 371223 -SHA256 (xpi/firefox-i18n-29.0/ca.xpi) = 602eaef7df208c516efeb4333a050e3433e0f3baad901fe0ea6278ba6678a576 -SIZE (xpi/firefox-i18n-29.0/ca.xpi) = 370413 -SHA256 (xpi/firefox-i18n-29.0/cs.xpi) = 7c57f8242a5c9c7ebfeb22fe24c4d6906a378c9c95e95de22a8fb8020911d0a2 -SIZE (xpi/firefox-i18n-29.0/cs.xpi) = 364875 -SHA256 (xpi/firefox-i18n-29.0/csb.xpi) = 86ffb57f543e8efca951974214f9f84b036c42ed9cb8d0d90974fa6691f2e0fe -SIZE (xpi/firefox-i18n-29.0/csb.xpi) = 355955 -SHA256 (xpi/firefox-i18n-29.0/cy.xpi) = 7e41a6edfc20ca0ef55f8e2e34740521b87f36f48ee97dfcad69b25be0f235c6 -SIZE (xpi/firefox-i18n-29.0/cy.xpi) = 364982 -SHA256 (xpi/firefox-i18n-29.0/da.xpi) = f31a19e5512cf07b40548c676d5e53003734bb72d1898d8fe5a0d92d6cbab868 -SIZE (xpi/firefox-i18n-29.0/da.xpi) = 355875 -SHA256 (xpi/firefox-i18n-29.0/de.xpi) = f1e7a8b7b71373bd566c35559667a4da73b92fe86aebfd7acb0b24f2b0090895 -SIZE (xpi/firefox-i18n-29.0/de.xpi) = 363985 -SHA256 (xpi/firefox-i18n-29.0/el.xpi) = 28ce4ac766d10aef112451128ffe56119e972bfe9210a052c534945dee829820 -SIZE (xpi/firefox-i18n-29.0/el.xpi) = 397064 -SHA256 (xpi/firefox-i18n-29.0/en-GB.xpi) = 27e1a9560dacc0b8665f0bf4155669a208a934684fafe8907ee88e1c7927cdd2 -SIZE (xpi/firefox-i18n-29.0/en-GB.xpi) = 352794 -SHA256 (xpi/firefox-i18n-29.0/en-US.xpi) = 0b665ea8cbec2a5db2d130827c3aeb8be79133a611b0241ee11198d2a68cfcfe -SIZE (xpi/firefox-i18n-29.0/en-US.xpi) = 352631 -SHA256 (xpi/firefox-i18n-29.0/en-ZA.xpi) = 00c54af05c8428e387409359f403993f1a141da9a30d4925a92be57fdbfb0eb7 -SIZE (xpi/firefox-i18n-29.0/en-ZA.xpi) = 343162 -SHA256 (xpi/firefox-i18n-29.0/eo.xpi) = f9f6f9071d6b8c128495ed95620180756112647eb76d680583957763ec63554d -SIZE (xpi/firefox-i18n-29.0/eo.xpi) = 369151 -SHA256 (xpi/firefox-i18n-29.0/es-AR.xpi) = 269b4e8486ffb176a1a5082203398ed7f7c398ee0a3377888319431f1697a380 -SIZE (xpi/firefox-i18n-29.0/es-AR.xpi) = 367827 -SHA256 (xpi/firefox-i18n-29.0/es-CL.xpi) = 13c7a3fed0b61018161e45dd20ce6130583b68f270d4a71f4a1703be26d7dc46 -SIZE (xpi/firefox-i18n-29.0/es-CL.xpi) = 314748 -SHA256 (xpi/firefox-i18n-29.0/es-ES.xpi) = e50a73028675b28b8f60094731c96b24713178025a491aa24bacb805dd554e71 -SIZE (xpi/firefox-i18n-29.0/es-ES.xpi) = 305433 -SHA256 (xpi/firefox-i18n-29.0/es-MX.xpi) = a1966155e366c8b9eeaa87eb1d6e76a3c187c3bf6701b27b68c21b41627097cf -SIZE (xpi/firefox-i18n-29.0/es-MX.xpi) = 372449 -SHA256 (xpi/firefox-i18n-29.0/et.xpi) = 1091cb9efa635996c0c9458a62aeaf03023bbaf2428b291ef2d0993ed9139609 -SIZE (xpi/firefox-i18n-29.0/et.xpi) = 352878 -SHA256 (xpi/firefox-i18n-29.0/eu.xpi) = a09f19ceb466f2c7a2e46b4a1f2dec3775d9b0d9a670ba04733b2ae7afbcbda9 -SIZE (xpi/firefox-i18n-29.0/eu.xpi) = 369441 -SHA256 (xpi/firefox-i18n-29.0/fa.xpi) = f27dca27d9215deae207b4ca38e7260421d74fd482eb8a1ddc6d6d0e39c1bc36 -SIZE (xpi/firefox-i18n-29.0/fa.xpi) = 409149 -SHA256 (xpi/firefox-i18n-29.0/ff.xpi) = 23be65bdb50c441ea75e5f3ed143160091a70191192dd4405da7f5a2d7335587 -SIZE (xpi/firefox-i18n-29.0/ff.xpi) = 361587 -SHA256 (xpi/firefox-i18n-29.0/fi.xpi) = 1dc290cf22dcfab88dcb7bdb0a2ecaad4be6163ee1bd8af13f4962ed037c1a11 -SIZE (xpi/firefox-i18n-29.0/fi.xpi) = 363340 -SHA256 (xpi/firefox-i18n-29.0/fr.xpi) = ada8b98915422b83aa4c62bf514456a27e9cedc82ddb6377178ce396f10729a3 -SIZE (xpi/firefox-i18n-29.0/fr.xpi) = 376279 -SHA256 (xpi/firefox-i18n-29.0/fy-NL.xpi) = 6a4d8b5ac760d8860aba66c779f302e19955fd5a232c237297dde3974b72cb25 -SIZE (xpi/firefox-i18n-29.0/fy-NL.xpi) = 372388 -SHA256 (xpi/firefox-i18n-29.0/ga-IE.xpi) = 25f92f7562f119c97189290f8e4746223d2db2ddf3fd260e3ce246119bcfb483 -SIZE (xpi/firefox-i18n-29.0/ga-IE.xpi) = 378267 -SHA256 (xpi/firefox-i18n-29.0/gd.xpi) = b6f370e9e0b6c8d7c9840999d185c50dc9832ba15691c6c2c2f61dd099bf4912 -SIZE (xpi/firefox-i18n-29.0/gd.xpi) = 375410 -SHA256 (xpi/firefox-i18n-29.0/gl.xpi) = b9e476f99b13b29fd84189283b9a7641ee41d641c171a4fa3587493bcb329a97 -SIZE (xpi/firefox-i18n-29.0/gl.xpi) = 363693 -SHA256 (xpi/firefox-i18n-29.0/gu-IN.xpi) = 1730b390f911b26f1d5107cdf79e9dedf1a970be7da9de96010ff1e83da3a1b0 -SIZE (xpi/firefox-i18n-29.0/gu-IN.xpi) = 391891 -SHA256 (xpi/firefox-i18n-29.0/he.xpi) = 5c62998721b69b83e63b4ec107a62e08d03d482c84de2fb3fc2c0844ab1f2315 -SIZE (xpi/firefox-i18n-29.0/he.xpi) = 385480 -SHA256 (xpi/firefox-i18n-29.0/hi-IN.xpi) = 19774e11ea7d30fa748f3d1aedce3c642dfcf83d3eacde963acf16ea38960a0a -SIZE (xpi/firefox-i18n-29.0/hi-IN.xpi) = 410179 -SHA256 (xpi/firefox-i18n-29.0/hr.xpi) = 17240437b1e72eac60776cb3a307d60cbd59abd0444eee475fca8396ef52817f -SIZE (xpi/firefox-i18n-29.0/hr.xpi) = 376605 -SHA256 (xpi/firefox-i18n-29.0/hu.xpi) = 518c74f77b1150ee0a17b94cafe09f3b1a84f972bf0fc6912a7ab32f5aedba08 -SIZE (xpi/firefox-i18n-29.0/hu.xpi) = 372533 -SHA256 (xpi/firefox-i18n-29.0/hy-AM.xpi) = 3052a32a950786aa0e540d4b4ae134d43def23141670c3625bcc9c0f35ad22c3 -SIZE (xpi/firefox-i18n-29.0/hy-AM.xpi) = 419572 -SHA256 (xpi/firefox-i18n-29.0/id.xpi) = 9f8d98a8b1546072a3675383252fbef3fd0fa9c4c41c3d3a9e1e50bb19535019 -SIZE (xpi/firefox-i18n-29.0/id.xpi) = 352597 -SHA256 (xpi/firefox-i18n-29.0/is.xpi) = 021226df2158678fecc9d0958b8a9a27a3cd70e584c9f34d0c7fa444870d78ad -SIZE (xpi/firefox-i18n-29.0/is.xpi) = 364694 -SHA256 (xpi/firefox-i18n-29.0/it.xpi) = 80dde52c62e44e3706c3a228f091c1473bd871f3428c8efa0338890310b954f5 -SIZE (xpi/firefox-i18n-29.0/it.xpi) = 304003 -SHA256 (xpi/firefox-i18n-29.0/ja.xpi) = 5f23242ee1cd8045abd7564a095c5ba11bd98283b1530f1e3c29cf5fbce362c4 -SIZE (xpi/firefox-i18n-29.0/ja.xpi) = 405190 -SHA256 (xpi/firefox-i18n-29.0/kk.xpi) = b608322fe2364a15c2f96ed88449dfac1a71621081489677015aba1593eac32a -SIZE (xpi/firefox-i18n-29.0/kk.xpi) = 408438 -SHA256 (xpi/firefox-i18n-29.0/km.xpi) = a86a3d15e836df6f767b7af53ec3cbe9c329716adfacbe14811739c878365d8d -SIZE (xpi/firefox-i18n-29.0/km.xpi) = 438772 -SHA256 (xpi/firefox-i18n-29.0/kn.xpi) = 06bc663cf5bd3c70895ba07133cbe14adf36f08a1c375d8e3a9083ab4cda8981 -SIZE (xpi/firefox-i18n-29.0/kn.xpi) = 421792 -SHA256 (xpi/firefox-i18n-29.0/ko.xpi) = eda45d7394b912213cd1e724cf8b45126c7f60cc15cc7289b11c1abb7112b0e1 -SIZE (xpi/firefox-i18n-29.0/ko.xpi) = 372824 -SHA256 (xpi/firefox-i18n-29.0/ku.xpi) = 6fed426902356d91a149187050e97a88b590064be33a996229e328c9ac2ddb5a -SIZE (xpi/firefox-i18n-29.0/ku.xpi) = 377944 -SHA256 (xpi/firefox-i18n-29.0/lij.xpi) = ffcc04ba6231154b7129225b4f8a62ff81c942940b8d055f38d2c770da5baa46 -SIZE (xpi/firefox-i18n-29.0/lij.xpi) = 353132 -SHA256 (xpi/firefox-i18n-29.0/lt.xpi) = 5f0ab5186966f4ef688d089cc1c02256fd58009023b1a65087243cf47898877d -SIZE (xpi/firefox-i18n-29.0/lt.xpi) = 382910 -SHA256 (xpi/firefox-i18n-29.0/lv.xpi) = 7904ce0bd050e3c7bdc5047af6a8483ec6353d7180bf638f73dc4e86caec41cd -SIZE (xpi/firefox-i18n-29.0/lv.xpi) = 360720 -SHA256 (xpi/firefox-i18n-29.0/mai.xpi) = c900355b017b2d6f823749eb2b59e7138885a106a3f935be9a7e91f50e50380b -SIZE (xpi/firefox-i18n-29.0/mai.xpi) = 410012 -SHA256 (xpi/firefox-i18n-29.0/mk.xpi) = 2beb5a8a7c8d4a824b8901a6cbcaf81297347c4b83b1b55bab8855e0e5e87e6b -SIZE (xpi/firefox-i18n-29.0/mk.xpi) = 411450 -SHA256 (xpi/firefox-i18n-29.0/ml.xpi) = 49995a410b48b0c53ff4994633602f868796c24a28d54bd1260b1f43adc79475 -SIZE (xpi/firefox-i18n-29.0/ml.xpi) = 430792 -SHA256 (xpi/firefox-i18n-29.0/mr.xpi) = 87bd2e7b71bcc21458b5d44dd83d9f2eeb461c53cd74c4a76d4eb2a6cba033c1 -SIZE (xpi/firefox-i18n-29.0/mr.xpi) = 408570 -SHA256 (xpi/firefox-i18n-29.0/ms.xpi) = 07a8b2295a6633ec838a6c8a431faff915b5f92e60d3c36aa92f1d6697bd8a49 -SIZE (xpi/firefox-i18n-29.0/ms.xpi) = 368830 -SHA256 (xpi/firefox-i18n-29.0/nb-NO.xpi) = afea740e93a87b7821fcf7885f8c44d8dcd865d1e2418d05530299ca2471a2d3 -SIZE (xpi/firefox-i18n-29.0/nb-NO.xpi) = 362513 -SHA256 (xpi/firefox-i18n-29.0/nl.xpi) = 36dd807b1b080c45a6b68fae77843d30f4cf7291bd29a61a8cebd509aeb470cd -SIZE (xpi/firefox-i18n-29.0/nl.xpi) = 361308 -SHA256 (xpi/firefox-i18n-29.0/nn-NO.xpi) = 9522236bee6c980595ce05f9320d915a31b272a28a878eeab867329357156a9a -SIZE (xpi/firefox-i18n-29.0/nn-NO.xpi) = 358819 -SHA256 (xpi/firefox-i18n-29.0/or.xpi) = 2b78878aa2c06143887d7f7c1f73f3c2d5c98cba58e06df5d96ecfbf9888e143 -SIZE (xpi/firefox-i18n-29.0/or.xpi) = 423772 -SHA256 (xpi/firefox-i18n-29.0/pa-IN.xpi) = 3a372d31c10dfc267cc381974a365eb4b44b6dd70d3054ac624f84fe3b41801c -SIZE (xpi/firefox-i18n-29.0/pa-IN.xpi) = 401685 -SHA256 (xpi/firefox-i18n-29.0/pl.xpi) = 950ed718076217f4ee11c0a21cdc59005b06757af81a4d5cd028d00dc853c3b0 -SIZE (xpi/firefox-i18n-29.0/pl.xpi) = 354459 -SHA256 (xpi/firefox-i18n-29.0/pt-BR.xpi) = 28d5e2814fa7ac74b9ce44c73b1680d6b2360820f51d373c81fc4fc8304b7a7f -SIZE (xpi/firefox-i18n-29.0/pt-BR.xpi) = 372122 -SHA256 (xpi/firefox-i18n-29.0/pt-PT.xpi) = fd74a1e2243899aae3c39e46a2d101338afa10da731a60f1b94ba6deffa2a9b2 -SIZE (xpi/firefox-i18n-29.0/pt-PT.xpi) = 359723 -SHA256 (xpi/firefox-i18n-29.0/rm.xpi) = 9ed40581c971918ea80b17e21acc8b331519b82ee322c6829e482edda6867914 -SIZE (xpi/firefox-i18n-29.0/rm.xpi) = 362965 -SHA256 (xpi/firefox-i18n-29.0/ro.xpi) = d237497e017ef6764fae81477b1ad6593d6d03c432641e14bc87e88cb1ab30c8 -SIZE (xpi/firefox-i18n-29.0/ro.xpi) = 397540 -SHA256 (xpi/firefox-i18n-29.0/ru.xpi) = 5c58a458ce5aa0cb974bd7c750dd155dd0080385bfe97344bb07ca7070d46f1e -SIZE (xpi/firefox-i18n-29.0/ru.xpi) = 344166 -SHA256 (xpi/firefox-i18n-29.0/si.xpi) = f423bc581a57d4f1e315d3f4e591eee9b0b34b0ad26c7356957684ea80607371 -SIZE (xpi/firefox-i18n-29.0/si.xpi) = 403345 -SHA256 (xpi/firefox-i18n-29.0/sk.xpi) = c6e1d20bb1cead467ef3a4782e48f72fe9d577d2e5bf40aafe0f0700f6d86f88 -SIZE (xpi/firefox-i18n-29.0/sk.xpi) = 375676 -SHA256 (xpi/firefox-i18n-29.0/sl.xpi) = c5b6e6aed27cfa73480b89134786f2a450d4fe0f1879389262f0f6dc9892bcd2 -SIZE (xpi/firefox-i18n-29.0/sl.xpi) = 358502 -SHA256 (xpi/firefox-i18n-29.0/son.xpi) = 482834fa2c49c3bddfb48127d83258c1dde5dfc0cc5fd17fd66304fa65e6dcd8 -SIZE (xpi/firefox-i18n-29.0/son.xpi) = 358441 -SHA256 (xpi/firefox-i18n-29.0/sq.xpi) = f001eece8b1b7fc9eec35084679155802062fedd1aa096c2ba74be8e22682131 -SIZE (xpi/firefox-i18n-29.0/sq.xpi) = 374244 -SHA256 (xpi/firefox-i18n-29.0/sr.xpi) = f590d1a96a5231b4a448ca27bde8ffd2a3721f5c8d628475e4705980013d4c21 -SIZE (xpi/firefox-i18n-29.0/sr.xpi) = 412774 -SHA256 (xpi/firefox-i18n-29.0/sv-SE.xpi) = ccb78f6c29e470b15df6c0b0a1a9186ea6da1e95a01c5acf88d6d5663c0ddd37 -SIZE (xpi/firefox-i18n-29.0/sv-SE.xpi) = 368437 -SHA256 (xpi/firefox-i18n-29.0/ta.xpi) = 3a240719bae5fdd5f1dee8502a573c68d496dbcbb89e40fa2588a8f8cded48d1 -SIZE (xpi/firefox-i18n-29.0/ta.xpi) = 416214 -SHA256 (xpi/firefox-i18n-29.0/te.xpi) = 1a42033323e58bb24a230ccc547498d6b54864e6566ce38f97c8f5bc9dc802b1 -SIZE (xpi/firefox-i18n-29.0/te.xpi) = 429025 -SHA256 (xpi/firefox-i18n-29.0/th.xpi) = 9c91150755449786b400af12067d648f5751e78396bf72f9c604874dcdee5f11 -SIZE (xpi/firefox-i18n-29.0/th.xpi) = 413958 -SHA256 (xpi/firefox-i18n-29.0/tr.xpi) = 49c22b8f7384f83249cd1468e14f9aea657a4196fcf11125bfc44e112b6f93cb -SIZE (xpi/firefox-i18n-29.0/tr.xpi) = 369613 -SHA256 (xpi/firefox-i18n-29.0/uk.xpi) = 2f232cc5a4e4b72e11e4751be8667f5c532952ba5864369e07a9438c25afc317 -SIZE (xpi/firefox-i18n-29.0/uk.xpi) = 399496 -SHA256 (xpi/firefox-i18n-29.0/vi.xpi) = e210ec8c8f985d5c6e31e37e191c35d270c310c647cb6e32cc1bf35e93194348 -SIZE (xpi/firefox-i18n-29.0/vi.xpi) = 386470 -SHA256 (xpi/firefox-i18n-29.0/xh.xpi) = 693c3c04abe48a7bf8e0c13c8192451bb70687581b79da13bf2905499c2150e8 -SIZE (xpi/firefox-i18n-29.0/xh.xpi) = 363925 -SHA256 (xpi/firefox-i18n-29.0/zh-CN.xpi) = fe6b9bb7d2dd6227fb6ea3b5ad7ecca1fb02105f10cecefc232aa9f7bc0c7096 -SIZE (xpi/firefox-i18n-29.0/zh-CN.xpi) = 389326 -SHA256 (xpi/firefox-i18n-29.0/zh-TW.xpi) = 34cf42493ffa140f869b48d6deaa10d43664e7dd7bfea6bd4a979062ef476bc1 -SIZE (xpi/firefox-i18n-29.0/zh-TW.xpi) = 386290 -SHA256 (xpi/firefox-i18n-29.0/zu.xpi) = 0ba903dcf73dcd6255e81eb049c0660eb876caef4c83b5ffbc5e1470a5918bc6 -SIZE (xpi/firefox-i18n-29.0/zu.xpi) = 373428 +SHA256 (xpi/firefox-i18n-30.0b1/ach.xpi) = 682c742bc8ca935b0d847924ce942e3d4aff6d2c9597b5fa8d34b750d79eaeb3 +SIZE (xpi/firefox-i18n-30.0b1/ach.xpi) = 375210 +SHA256 (xpi/firefox-i18n-30.0b1/af.xpi) = 3bb6eb20c56eed119b514aaed489ae75b9940d3811de44068eca3c10e1ec6d9e +SIZE (xpi/firefox-i18n-30.0b1/af.xpi) = 369088 +SHA256 (xpi/firefox-i18n-30.0b1/ar.xpi) = 94aa692063b37c68ec957b2f050b6852a0c07447e348da8bb746219276e839b2 +SIZE (xpi/firefox-i18n-30.0b1/ar.xpi) = 397916 +SHA256 (xpi/firefox-i18n-30.0b1/as.xpi) = 5664b313ae16f9b2fa8d40cf1dde8595d3660a23f6cca821c0d1b65393f83a60 +SIZE (xpi/firefox-i18n-30.0b1/as.xpi) = 416816 +SHA256 (xpi/firefox-i18n-30.0b1/ast.xpi) = 4131c1ad485b2ea4d3e745a76a13990507de69ee51a64ada5ca263bbf38926cd +SIZE (xpi/firefox-i18n-30.0b1/ast.xpi) = 327166 +SHA256 (xpi/firefox-i18n-30.0b1/be.xpi) = f6432ccf85b0fd8f7996fb433cbe9281a6b6a2a305f87c7b9a86c04e69d967b4 +SIZE (xpi/firefox-i18n-30.0b1/be.xpi) = 341622 +SHA256 (xpi/firefox-i18n-30.0b1/bg.xpi) = ac89a4764af9e05480395643516c34dd32f87718a82bdcdb1beb6134c87fbc3c +SIZE (xpi/firefox-i18n-30.0b1/bg.xpi) = 406719 +SHA256 (xpi/firefox-i18n-30.0b1/bn-BD.xpi) = bc74eec26e3b0cbbeaa531634eb7a4daf0920a11a65ab48c644b92fb8085e8c0 +SIZE (xpi/firefox-i18n-30.0b1/bn-BD.xpi) = 428546 +SHA256 (xpi/firefox-i18n-30.0b1/bn-IN.xpi) = e0dbd6deed698be0b7f8a2ac1a3efcdff4a9a1f00ac3b6b67c030e137df550c1 +SIZE (xpi/firefox-i18n-30.0b1/bn-IN.xpi) = 426494 +SHA256 (xpi/firefox-i18n-30.0b1/br.xpi) = ffc1ea754ffef4006ef7d982d7a4003d0122c5c7ac726869fa15389b5818dc85 +SIZE (xpi/firefox-i18n-30.0b1/br.xpi) = 365146 +SHA256 (xpi/firefox-i18n-30.0b1/bs.xpi) = 7dd7508014d76366715a4efd9a0debf2715886d27bf3f8ca76b89f866854a031 +SIZE (xpi/firefox-i18n-30.0b1/bs.xpi) = 373276 +SHA256 (xpi/firefox-i18n-30.0b1/ca.xpi) = 39a2e2ef564fad06664cbfccbd0595b64c837ae13d42be85b5673f146c8d3313 +SIZE (xpi/firefox-i18n-30.0b1/ca.xpi) = 371488 +SHA256 (xpi/firefox-i18n-30.0b1/cs.xpi) = 2df076c60bc05d7d68a2f6f54dbca3c32a6089ae767db2afebf5189976ac4866 +SIZE (xpi/firefox-i18n-30.0b1/cs.xpi) = 366056 +SHA256 (xpi/firefox-i18n-30.0b1/csb.xpi) = 5b854f5906ece170066a82af86078443ce6f80e463e7ee5cb5ca8cb4586f1412 +SIZE (xpi/firefox-i18n-30.0b1/csb.xpi) = 358273 +SHA256 (xpi/firefox-i18n-30.0b1/cy.xpi) = 6e371f251d2b2572499f1053448274a26e0b38b42624faa357ca450fd3ab5473 +SIZE (xpi/firefox-i18n-30.0b1/cy.xpi) = 366037 +SHA256 (xpi/firefox-i18n-30.0b1/da.xpi) = 0e2f6b0655be1c38fca5549e000efca7d727db8ddc2646f82beca2e68d1c269b +SIZE (xpi/firefox-i18n-30.0b1/da.xpi) = 356884 +SHA256 (xpi/firefox-i18n-30.0b1/de.xpi) = 5b35aafbe90675db935c4d64945976b9119d1a57fc29cea03e20b560cf77cfd3 +SIZE (xpi/firefox-i18n-30.0b1/de.xpi) = 366031 +SHA256 (xpi/firefox-i18n-30.0b1/el.xpi) = fa2d4258a5976e1c3052e2f2e1b7c89cf3eca085188e4c3917e91458789ecf5d +SIZE (xpi/firefox-i18n-30.0b1/el.xpi) = 398965 +SHA256 (xpi/firefox-i18n-30.0b1/en-GB.xpi) = 28626eb8c2722247b5b87b7eb82f640f0842b0e238f62a39c8a112fade1bde0f +SIZE (xpi/firefox-i18n-30.0b1/en-GB.xpi) = 353591 +SHA256 (xpi/firefox-i18n-30.0b1/en-US.xpi) = ad48c817e04669f621bc646e63f9d00bac552ac445f5c375ba44fb70d06ef406 +SIZE (xpi/firefox-i18n-30.0b1/en-US.xpi) = 353454 +SHA256 (xpi/firefox-i18n-30.0b1/en-ZA.xpi) = 0d52b5105075f32cc3170fec0af07e864224d0a5a3c2aa2f5f6dbd3ef4f6323b +SIZE (xpi/firefox-i18n-30.0b1/en-ZA.xpi) = 345019 +SHA256 (xpi/firefox-i18n-30.0b1/eo.xpi) = 33abd6adbcc021b0a575e8696c176d5f4ec43ce818f6aac3d6210ca6cad97e11 +SIZE (xpi/firefox-i18n-30.0b1/eo.xpi) = 370144 +SHA256 (xpi/firefox-i18n-30.0b1/es-AR.xpi) = 248fd3b74fd67ba8b241dd4bf75cefce0e18c392c14cb3fb662fd2ec1d8c7752 +SIZE (xpi/firefox-i18n-30.0b1/es-AR.xpi) = 368590 +SHA256 (xpi/firefox-i18n-30.0b1/es-CL.xpi) = 6aa7fef7321cf51d9c99dd4a9a76fc293f561399d295bda93509024c6df710a2 +SIZE (xpi/firefox-i18n-30.0b1/es-CL.xpi) = 315331 +SHA256 (xpi/firefox-i18n-30.0b1/es-ES.xpi) = 0a1fba8ea08eb7d97a05055dceb6783e58bdbc5233c611f164f5b0f3e587b1ca +SIZE (xpi/firefox-i18n-30.0b1/es-ES.xpi) = 306422 +SHA256 (xpi/firefox-i18n-30.0b1/es-MX.xpi) = 7500dad215b4df45ea799473dade85db4b56f71113dd1c6ee39fdf04a421aab5 +SIZE (xpi/firefox-i18n-30.0b1/es-MX.xpi) = 373553 +SHA256 (xpi/firefox-i18n-30.0b1/et.xpi) = 389d0ee5665f0d542c236a9c47f9163a8602c6cc34fe942df647ca005e2e3b33 +SIZE (xpi/firefox-i18n-30.0b1/et.xpi) = 353710 +SHA256 (xpi/firefox-i18n-30.0b1/eu.xpi) = e82517c5b89ca49277ea6bb9a2e25d3b5abff5814b34b0859fe09c3508c7da1d +SIZE (xpi/firefox-i18n-30.0b1/eu.xpi) = 371553 +SHA256 (xpi/firefox-i18n-30.0b1/fa.xpi) = fe42cfee2b7c5540feeff1f01ff0d64700d1e34eaa85b56f2cd1aa8002e9e888 +SIZE (xpi/firefox-i18n-30.0b1/fa.xpi) = 410906 +SHA256 (xpi/firefox-i18n-30.0b1/ff.xpi) = fd2b7d70c1fc9ba740bff02bbbbfaf27389bdc2fe634d5562ca62d0190865361 +SIZE (xpi/firefox-i18n-30.0b1/ff.xpi) = 370695 +SHA256 (xpi/firefox-i18n-30.0b1/fi.xpi) = d73fe35622d060565f0ac6a09df3269ce3f8f5a782f1783ecdc0e506e39b52e3 +SIZE (xpi/firefox-i18n-30.0b1/fi.xpi) = 364263 +SHA256 (xpi/firefox-i18n-30.0b1/fr.xpi) = bda9730a1a17c19927dcb39f5223ef3308db16770604c592a4f5bbbe9f4bd69f +SIZE (xpi/firefox-i18n-30.0b1/fr.xpi) = 377373 +SHA256 (xpi/firefox-i18n-30.0b1/fy-NL.xpi) = be58a095ca6d3c79647b3c73321b198106d341cfa435971c12bbb2bbb1c513ed +SIZE (xpi/firefox-i18n-30.0b1/fy-NL.xpi) = 373140 +SHA256 (xpi/firefox-i18n-30.0b1/ga-IE.xpi) = f5f54981a64cd2ebd16578843194d67d448c2871dd331e454a88e85aaf584712 +SIZE (xpi/firefox-i18n-30.0b1/ga-IE.xpi) = 381260 +SHA256 (xpi/firefox-i18n-30.0b1/gd.xpi) = 9af29a8fe0f477740cf9c4c9a5753cab071a4886f6d9c109a234d5b8645b57a5 +SIZE (xpi/firefox-i18n-30.0b1/gd.xpi) = 378210 +SHA256 (xpi/firefox-i18n-30.0b1/gl.xpi) = 780e6d81979fb9335688cb69a6d8ce1ccf50eef1a65524a478324db7968e47a3 +SIZE (xpi/firefox-i18n-30.0b1/gl.xpi) = 365573 +SHA256 (xpi/firefox-i18n-30.0b1/gu-IN.xpi) = b8c598113619efa0ad5d3dffc0b95b5c18b827da5c8b1f162e8218c49d0ee429 +SIZE (xpi/firefox-i18n-30.0b1/gu-IN.xpi) = 394101 +SHA256 (xpi/firefox-i18n-30.0b1/he.xpi) = afe9ca317606312907d4d8a943b8960d188a8413eb26fc495dde321c25eacb10 +SIZE (xpi/firefox-i18n-30.0b1/he.xpi) = 387624 +SHA256 (xpi/firefox-i18n-30.0b1/hi-IN.xpi) = c43285814d57fa6d1d25e4fff3f1f4acef6f5b7a37c1986587afa24fbcb60d20 +SIZE (xpi/firefox-i18n-30.0b1/hi-IN.xpi) = 412285 +SHA256 (xpi/firefox-i18n-30.0b1/hr.xpi) = 8019caeeb3444dc1cb7e43ad5442658ac5f58645414bd56b7d0085de77235352 +SIZE (xpi/firefox-i18n-30.0b1/hr.xpi) = 377106 +SHA256 (xpi/firefox-i18n-30.0b1/hu.xpi) = 684b186e280a5c1fb7817f427f011c57240d9a51991b835daf6a5a53cce73a06 +SIZE (xpi/firefox-i18n-30.0b1/hu.xpi) = 373675 +SHA256 (xpi/firefox-i18n-30.0b1/hy-AM.xpi) = af796305764a62838d4428eb2d13943c627aa79a0e1b39ea5f5ef4fa7e6da390 +SIZE (xpi/firefox-i18n-30.0b1/hy-AM.xpi) = 420571 +SHA256 (xpi/firefox-i18n-30.0b1/id.xpi) = 91ad2c80112318f994efc7c6fbfde9e31950d05d3d71b56d5303c2680fcc2cc8 +SIZE (xpi/firefox-i18n-30.0b1/id.xpi) = 353461 +SHA256 (xpi/firefox-i18n-30.0b1/is.xpi) = b7b466e8444c5b1beca5c6725c5b74829708e9fcc682aa2c976fa1a0f40f877a +SIZE (xpi/firefox-i18n-30.0b1/is.xpi) = 365853 +SHA256 (xpi/firefox-i18n-30.0b1/it.xpi) = a7103081a9371029138364ba6404eefd8a2625b4972a060ea9a5db70a7514c26 +SIZE (xpi/firefox-i18n-30.0b1/it.xpi) = 304977 +SHA256 (xpi/firefox-i18n-30.0b1/ja.xpi) = 623525497f75481974162b2a0fab1c40f22b1e759bf5d2a345666921da395ff3 +SIZE (xpi/firefox-i18n-30.0b1/ja.xpi) = 405378 +SHA256 (xpi/firefox-i18n-30.0b1/kk.xpi) = a988c979de20f4257b36e88966e7a98137d44a492c0ebe3c3c323d8ebfba5cbc +SIZE (xpi/firefox-i18n-30.0b1/kk.xpi) = 409879 +SHA256 (xpi/firefox-i18n-30.0b1/km.xpi) = 96218acf66eecd587855029847af648ba3bf8d03ee17925351daeeb0cff4b54b +SIZE (xpi/firefox-i18n-30.0b1/km.xpi) = 440410 +SHA256 (xpi/firefox-i18n-30.0b1/kn.xpi) = ffb6fda31b9c7712c74cada3e42ac4c303fc719b4e087c3825d83645521a4755 +SIZE (xpi/firefox-i18n-30.0b1/kn.xpi) = 423623 +SHA256 (xpi/firefox-i18n-30.0b1/ko.xpi) = 9ccb2b80a4f4751effc4705d1495d44efa5779250ee0474ff2474d24a03f7062 +SIZE (xpi/firefox-i18n-30.0b1/ko.xpi) = 374832 +SHA256 (xpi/firefox-i18n-30.0b1/ku.xpi) = bf5e129f8dfc2f65122d20a090c109a5b83e316d7ecf39ca463ca1868830100e +SIZE (xpi/firefox-i18n-30.0b1/ku.xpi) = 379932 +SHA256 (xpi/firefox-i18n-30.0b1/lij.xpi) = 79804d765775efd02af10508485178e32f230a1b6307d684ee42f39475b2aa2e +SIZE (xpi/firefox-i18n-30.0b1/lij.xpi) = 356154 +SHA256 (xpi/firefox-i18n-30.0b1/lt.xpi) = d54fd5cc81a1027af46374937253b6fd1f0830d6b2533e337feab704df82f2cc +SIZE (xpi/firefox-i18n-30.0b1/lt.xpi) = 385252 +SHA256 (xpi/firefox-i18n-30.0b1/lv.xpi) = b6814788fc6d666f2d8ef87fec70107eacc85fb61adde3b41a49689c618b43cb +SIZE (xpi/firefox-i18n-30.0b1/lv.xpi) = 359066 +SHA256 (xpi/firefox-i18n-30.0b1/mai.xpi) = b4c436cc61619d38348e265037e76a2f394571aaff11d6bb80e2c6b8937c5860 +SIZE (xpi/firefox-i18n-30.0b1/mai.xpi) = 412132 +SHA256 (xpi/firefox-i18n-30.0b1/mk.xpi) = 542468eb0ffac0f78ef02330bbd8dfadb56287b575dd6aa232fdc1d94a6eee06 +SIZE (xpi/firefox-i18n-30.0b1/mk.xpi) = 413369 +SHA256 (xpi/firefox-i18n-30.0b1/ml.xpi) = 2f47220f71037590bd82c9e2daba0454213d13b53f74a8cbafceabb047d74bb3 +SIZE (xpi/firefox-i18n-30.0b1/ml.xpi) = 432788 +SHA256 (xpi/firefox-i18n-30.0b1/mr.xpi) = dfa7b3f20a917732b72bfc5bc767214b48cb3dc3c8b2929506656399922e7ea1 +SIZE (xpi/firefox-i18n-30.0b1/mr.xpi) = 410582 +SHA256 (xpi/firefox-i18n-30.0b1/nb-NO.xpi) = 5a470b5333ac104524eefd416b0c01b8f332ea80163d3dbdc85526b18286bda3 +SIZE (xpi/firefox-i18n-30.0b1/nb-NO.xpi) = 364757 +SHA256 (xpi/firefox-i18n-30.0b1/nl.xpi) = d8bfb5496d6b356c9141c3d6eee053339094f8159cda690c1ed82abf9e56c805 +SIZE (xpi/firefox-i18n-30.0b1/nl.xpi) = 362347 +SHA256 (xpi/firefox-i18n-30.0b1/nn-NO.xpi) = 1e209db0f4e46e96a9e090984c806de83b9ce9d7a449890809db7d7a148c2043 +SIZE (xpi/firefox-i18n-30.0b1/nn-NO.xpi) = 360854 +SHA256 (xpi/firefox-i18n-30.0b1/or.xpi) = a2b05b8e2e53048f4b67df88aaa08a9eb486980db7953b470e7261d3c6d7514e +SIZE (xpi/firefox-i18n-30.0b1/or.xpi) = 428969 +SHA256 (xpi/firefox-i18n-30.0b1/pa-IN.xpi) = 7cc17ee12aa912adfc3486c2811b3759bcb312d0a70181a48f580b34080e563a +SIZE (xpi/firefox-i18n-30.0b1/pa-IN.xpi) = 406763 +SHA256 (xpi/firefox-i18n-30.0b1/pl.xpi) = 1ad143f6b2e2f28fd6ea87b0358a2f1f8cd84a78a674a3b59709892fb638dc10 +SIZE (xpi/firefox-i18n-30.0b1/pl.xpi) = 353585 +SHA256 (xpi/firefox-i18n-30.0b1/pt-BR.xpi) = 413a1bbe48287e196768ecbd2b419250c7653b7b0ebaf1c865c417390bf2a126 +SIZE (xpi/firefox-i18n-30.0b1/pt-BR.xpi) = 374433 +SHA256 (xpi/firefox-i18n-30.0b1/pt-PT.xpi) = ac5cb5c3c473cd3592804ffeab93127e46a84b857692236c0be965354d773248 +SIZE (xpi/firefox-i18n-30.0b1/pt-PT.xpi) = 360711 +SHA256 (xpi/firefox-i18n-30.0b1/rm.xpi) = bf3513dbc49cf5341b1cca7f7028e976484c2d794da6e850d61bd8a423206699 +SIZE (xpi/firefox-i18n-30.0b1/rm.xpi) = 370512 +SHA256 (xpi/firefox-i18n-30.0b1/ro.xpi) = fbb03c75f434549b1a1425f19d3665e66a25a95981ffb207bcb1f9b4e5cf935f +SIZE (xpi/firefox-i18n-30.0b1/ro.xpi) = 399531 +SHA256 (xpi/firefox-i18n-30.0b1/ru.xpi) = 2356aeece26c52dac197c70384e1f3c7a59795d3514a20b75c5ffb6abee83021 +SIZE (xpi/firefox-i18n-30.0b1/ru.xpi) = 345472 +SHA256 (xpi/firefox-i18n-30.0b1/si.xpi) = 7ca4706fd3efb3cb997417487c175ba9cdc3a02477289b6ae87635a071490407 +SIZE (xpi/firefox-i18n-30.0b1/si.xpi) = 405110 +SHA256 (xpi/firefox-i18n-30.0b1/sk.xpi) = 0837ab413667ee697aba536bedd16b60499aa6dc7eee767e07c3f19a6dd4c173 +SIZE (xpi/firefox-i18n-30.0b1/sk.xpi) = 376839 +SHA256 (xpi/firefox-i18n-30.0b1/sl.xpi) = b994c807b3badb90b1e26dd9e3caf3468c037266881c5029205eb640f2a39425 +SIZE (xpi/firefox-i18n-30.0b1/sl.xpi) = 358784 +SHA256 (xpi/firefox-i18n-30.0b1/son.xpi) = 8467d97ae942b0f3bac9e8b14de17a12bdb7bd6c4f80852bb401d8783a2346c1 +SIZE (xpi/firefox-i18n-30.0b1/son.xpi) = 360524 +SHA256 (xpi/firefox-i18n-30.0b1/sq.xpi) = 45eb6686d81c4dc9eedd8d8b2f5c9ee0a6ea35eb7774f32e1b83ea8d37a9f946 +SIZE (xpi/firefox-i18n-30.0b1/sq.xpi) = 375454 +SHA256 (xpi/firefox-i18n-30.0b1/sr.xpi) = 157efd965befdb35a5b4d84d10acbde2b61f293e4ca9de02fe6a099f3dc65ab6 +SIZE (xpi/firefox-i18n-30.0b1/sr.xpi) = 414415 +SHA256 (xpi/firefox-i18n-30.0b1/sv-SE.xpi) = 0126e576bc17176821f46e7a8eac55f44d67596d32870d01f89bed8e104a4311 +SIZE (xpi/firefox-i18n-30.0b1/sv-SE.xpi) = 369474 +SHA256 (xpi/firefox-i18n-30.0b1/ta.xpi) = 6dcb2e94ae4bd5b58d0634bcba948c5b5affafa935f28160f94c5233299c06e3 +SIZE (xpi/firefox-i18n-30.0b1/ta.xpi) = 421296 +SHA256 (xpi/firefox-i18n-30.0b1/te.xpi) = 8dfadac2939a34fcdb1d8bac76e8b5d2d2d7e5103b6192376b4118d60d6e763b +SIZE (xpi/firefox-i18n-30.0b1/te.xpi) = 431171 +SHA256 (xpi/firefox-i18n-30.0b1/th.xpi) = fab9c9ee1544e27cb57e96bd13683cff83649fb4547f5f1d4f4d60c4fc3ea8bb +SIZE (xpi/firefox-i18n-30.0b1/th.xpi) = 415962 +SHA256 (xpi/firefox-i18n-30.0b1/tr.xpi) = 4a2e4c033f29c8d48d3bfaa7ecf0fab6160e2134683715750f47324d09d829c4 +SIZE (xpi/firefox-i18n-30.0b1/tr.xpi) = 370708 +SHA256 (xpi/firefox-i18n-30.0b1/uk.xpi) = fd9bc9aececd1106e045de67af453911395b1ffe0019229cb3a213b3c6711624 +SIZE (xpi/firefox-i18n-30.0b1/uk.xpi) = 401698 +SHA256 (xpi/firefox-i18n-30.0b1/vi.xpi) = 64a4e48094bf720b61086a9e45622e33da964008b8476d48c1cc9f14a63a1c35 +SIZE (xpi/firefox-i18n-30.0b1/vi.xpi) = 388350 +SHA256 (xpi/firefox-i18n-30.0b1/zh-CN.xpi) = bbd001373e603e0e85a3ad227c53207d33f96f0b79d71304e2227910a85f7fd1 +SIZE (xpi/firefox-i18n-30.0b1/zh-CN.xpi) = 391676 +SHA256 (xpi/firefox-i18n-30.0b1/zh-TW.xpi) = f41b2fe5617189238825ccd9608382cfcac402f437f0981eb29ba1d34bff61ea +SIZE (xpi/firefox-i18n-30.0b1/zh-TW.xpi) = 387320 +SHA256 (xpi/firefox-i18n-30.0b1/zu.xpi) = fca6557c4c91d241e603d6a97c0713311c11c6e625d7f1d527979ad36ce80ae4 +SIZE (xpi/firefox-i18n-30.0b1/zu.xpi) = 375216 Modified: trunk/www/firefox-nightly/Makefile ============================================================================== --- trunk/www/firefox-nightly/Makefile Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/www/firefox-nightly/Makefile Tue Apr 29 07:51:23 2014 (r1581) @@ -2,7 +2,7 @@ # $FreeBSD$ PORTNAME= firefox -PORTVERSION= 31.0.${HGREV:C/:.*//} +PORTVERSION= 32.0.${HGREV:C/:.*//} PORTEPOCH= 1 CATEGORIES= www ipv6 MASTER_SITES= https://hg.mozilla.org/integration/mozilla-inbound/archive/ Modified: trunk/www/firefox-nightly/Makefile.hgrev ============================================================================== --- trunk/www/firefox-nightly/Makefile.hgrev Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/www/firefox-nightly/Makefile.hgrev Tue Apr 29 07:51:23 2014 (r1581) @@ -1 +1 @@ -HGREV= 179547:ec50db58f17b +HGREV= 180649:1b3d03b3493d Modified: trunk/www/firefox-nightly/distinfo ============================================================================== --- trunk/www/firefox-nightly/distinfo Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/www/firefox-nightly/distinfo Tue Apr 29 07:51:23 2014 (r1581) @@ -1,2 +1,2 @@ -SHA256 (firefox-nightly/ec50db58f17b.tar.bz2) = 4ab9b15fe33360e41417de2ef55a567388a999c8cc2cb8bea697571c2a5e0d57 -SIZE (firefox-nightly/ec50db58f17b.tar.bz2) = 144390692 +SHA256 (firefox-nightly/1b3d03b3493d.tar.bz2) = cb3c3cdb639f2afe6c154d3414698459f2aa9e6810de3e60916c3e2ed5279a9a +SIZE (firefox-nightly/1b3d03b3493d.tar.bz2) = 144525991 Modified: trunk/www/firefox-nightly/files/patch-z-bug517422 ============================================================================== --- trunk/www/firefox-nightly/files/patch-z-bug517422 Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/www/firefox-nightly/files/patch-z-bug517422 Tue Apr 29 07:51:23 2014 (r1581) @@ -262,30 +262,19 @@ dnl = Disable VP8 decoder support dnl ======================================================== MOZ_ARG_DISABLE_BOOL(webm, -diff --git content/media/AudioStream.cpp content/media/AudioStream.cpp -index 88c8aa6..6b03288 100644 ---- content/media/AudioStream.cpp -+++ content/media/AudioStream.cpp -@@ -13,7 +13,6 @@ - #include "mozilla/Mutex.h" - #include <algorithm> - #include "mozilla/Preferences.h" --#include "soundtouch/SoundTouch.h" - #include "Latency.h" - - namespace mozilla { diff --git content/media/AudioStream.h content/media/AudioStream.h index 085676d..00c54fb 100644 --- content/media/AudioStream.h +++ content/media/AudioStream.h -@@ -15,6 +15,7 @@ - #include "mozilla/StaticMutex.h" +@@ -26,7 +26,7 @@ public: + }; - #include "cubeb/cubeb.h" -+#include "soundtouch/SoundTouch.h" + namespace soundtouch { +-class SoundTouch; ++class MOZ_IMPORT_API SoundTouch; + } - template <> - class nsAutoRefTraits<cubeb_stream> : public nsPointerRefTraits<cubeb_stream> + namespace mozilla { diff --git content/media/Makefile.in content/media/Makefile.in index fd34449..c6c42c8 100644 --- content/media/Makefile.in Modified: trunk/www/firefox/Makefile ============================================================================== --- trunk/www/firefox/Makefile Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/www/firefox/Makefile Tue Apr 29 07:51:23 2014 (r1581) @@ -2,7 +2,7 @@ # $FreeBSD: head/www/firefox/Makefile 339634 2014-01-13 21:00:02Z rene $ PORTNAME= firefox -DISTVERSION= 29.0 +DISTVERSION= 30.0b1 PORTEPOCH= 1 CATEGORIES= www ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \ @@ -20,7 +20,7 @@ libvorbis>=1.3.4:${PORTSDIR}/audio/libvorbis \ opus>=1.1:${PORTSDIR}/audio/opus \ libvpx>=1.3.0:${PORTSDIR}/multimedia/libvpx \ - sqlite3>=3.8.2:${PORTSDIR}/databases/sqlite3 \ + sqlite3>=3.8.3.1:${PORTSDIR}/databases/sqlite3 \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3 \ v4l_compat>0:${PORTSDIR}/multimedia/v4l_compat \ zip:${PORTSDIR}/archivers/zip \ @@ -39,7 +39,7 @@ MOZILLA_NAME= Firefox WANT_GNOME= yes -USE_QT4= # empty +USE_QT5= # empty QT_NONSTANDARD= yes ALL_TARGET= default GNU_CONFIGURE= yes @@ -58,7 +58,7 @@ .include "${.CURDIR}/../../www/firefox/Makefile.options" .include <bsd.port.pre.mk> -WRKSRC:= ${WRKDIR}/mozilla-release +WRKSRC:= ${WRKDIR}/mozilla-beta # avoid clang 3.2/3.3 crash in js/src/jsgc.cpp on refillFreeList<(js::AllowGC)1> # http://svnweb.freebsd.org/changeset/base/255804 Modified: trunk/www/firefox/distinfo ============================================================================== --- trunk/www/firefox/distinfo Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/www/firefox/distinfo Tue Apr 29 07:51:23 2014 (r1581) @@ -1,2 +1,2 @@ -SHA256 (firefox-29.0.source.tar.bz2) = 64402a1f1359f3ea30767a94977ae823ac25b39c6d54f9fe6db444ed127db892 -SIZE (firefox-29.0.source.tar.bz2) = 143163777 +SHA256 (firefox-30.0b1.source.tar.bz2) = f4439b9bf8e8b2e55e23c3c72a07e16b7f84adf53c6582cff80456bbcbee5f05 +SIZE (firefox-30.0b1.source.tar.bz2) = 142995514 Deleted: trunk/www/firefox/files/patch-bug783463 ============================================================================== --- trunk/www/firefox/files/patch-bug783463 Tue Apr 29 07:51:23 2014 (r1580) +++ /dev/null 00:00:00 1970 (deleted) @@ -1,11 +0,0 @@ ---- gfx/skia/moz.build~ -+++ gfx/skia/moz.build -@@ -190,7 +190,7 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt - 'SkFontHost_FreeType_common.cpp', - 'SkOSFile.cpp', - ] -- if CONFIG['OS_TARGET'] == 'Linux': -+ if CONFIG['MOZ_X11'] == 1 or CONFIG['OS_TARGET'] == 'Linux': - EXPORTS.skia += [ - 'include/ports/SkTypeface_cairo.h', - ] Deleted: trunk/www/firefox/files/patch-bug806917 ============================================================================== --- trunk/www/firefox/files/patch-bug806917 Tue Apr 29 07:51:23 2014 (r1580) +++ /dev/null 00:00:00 1970 (deleted) @@ -1,1999 +0,0 @@ -commit cb40a26 -Author: Alessandro Decina <alessandro.d@gmail.com> -Date: Fri Jan 03 08:16:54 2014 -0800 - - Bug 806917 - support GStreamer 1.0 ---- - configure.in | 66 ++- - content/media/gstreamer/GStreamerAllocator.cpp | 197 +++++++ - content/media/gstreamer/GStreamerAllocator.h | 25 + - content/media/gstreamer/GStreamerFormatHelper.cpp | 13 +- - content/media/gstreamer/GStreamerFunctionList.h | 93 +++- - content/media/gstreamer/GStreamerLoader.cpp | 48 +- - content/media/gstreamer/GStreamerLoader.h | 8 + - content/media/gstreamer/GStreamerReader-0.10.cpp | 200 +++++++ - content/media/gstreamer/GStreamerReader.cpp | 632 ++++++++++++++-------- - content/media/gstreamer/GStreamerReader.h | 42 +- - content/media/gstreamer/moz.build | 11 +- - content/media/test/manifest.js | 6 +- - 12 files changed, 1057 insertions(+), 284 deletions(-) - -diff --git configure.in configure.in -index 9776b8d..0b1698d 100644 ---- configure.in -+++ configure.in -@@ -3988,6 +3988,7 @@ MOZ_SAMPLE_TYPE_FLOAT32= - MOZ_SAMPLE_TYPE_S16= - MOZ_OPUS=1 - MOZ_WEBM=1 -+MOZ_GSTREAMER= - MOZ_DIRECTSHOW= - MOZ_WMF= - MOZ_FMP4= -@@ -5634,44 +5635,61 @@ WINNT|Darwin|Android) - ;; - *) - MOZ_GSTREAMER=1 -+ GST_API_VERSION=0.10 - ;; - esac - --MOZ_ARG_ENABLE_BOOL(gstreamer, --[ --enable-gstreamer Enable GStreamer support], --MOZ_GSTREAMER=1, --MOZ_GSTREAMER=) -- --if test "$MOZ_GSTREAMER"; then -- # API version, eg 0.10, 1.0 etc -+MOZ_ARG_ENABLE_STRING(gstreamer, -+[ --enable-gstreamer[=0.10] Enable GStreamer support], -+[ MOZ_GSTREAMER=1 -+ # API version, eg 0.10, 1.0 etc -+ if test -z "$enableval" -o "$enableval" = "yes"; then - GST_API_VERSION=0.10 -+ elif test "$enableval" = "no"; then -+ MOZ_GSTREAMER= -+ else -+ GST_API_VERSION=$enableval -+ fi], -+) -+ -+if test -n "$MOZ_GSTREAMER"; then - # core/base release number -- GST_VERSION=0.10.25 -+ if test "$GST_API_VERSION" = "1.0"; then -+ GST_VERSION=1.0 -+ else -+ GST_VERSION=0.10.25 -+ fi -+ - PKG_CHECK_MODULES(GSTREAMER, - gstreamer-$GST_API_VERSION >= $GST_VERSION - gstreamer-app-$GST_API_VERSION -- gstreamer-plugins-base-$GST_API_VERSION, , -- AC_MSG_ERROR([gstreamer and gstreamer-plugins-base development packages are needed to build gstreamer backend. Install them or disable gstreamer support with --disable-gstreamer])) -- if test -n "$GSTREAMER_LIBS"; then -- _SAVE_LDFLAGS=$LDFLAGS -- LDFLAGS="$LDFLAGS $GSTREAMER_LIBS -lgstvideo-$GST_API_VERSION" -- AC_TRY_LINK(,[return 0;],_HAVE_LIBGSTVIDEO=1,_HAVE_LIBGSTVIDEO=) -- if test -n "$_HAVE_LIBGSTVIDEO" ; then -- GSTREAMER_LIBS="$GSTREAMER_LIBS -lgstvideo-$GST_API_VERSION" -- else -- AC_MSG_ERROR([gstreamer-plugins-base found, but no libgstvideo. Something has gone terribly wrong. Try reinstalling gstreamer-plugins-base; failing that, disable the gstreamer backend with --disable-gstreamer.]) -- fi -- LDFLAGS=$_SAVE_LDFLAGS -+ gstreamer-plugins-base-$GST_API_VERSION, -+ [_HAVE_GSTREAMER=1], -+ [_HAVE_GSTREAMER=]) -+ if test -z "$_HAVE_GSTREAMER"; then -+ AC_MSG_ERROR([gstreamer and gstreamer-plugins-base development packages are needed to build gstreamer backend. Install them or disable gstreamer support with --disable-gstreamer]) -+ fi -+ -+ _SAVE_LDFLAGS=$LDFLAGS -+ LDFLAGS="$LDFLAGS $GSTREAMER_LIBS -lgstvideo-$GST_API_VERSION" -+ AC_TRY_LINK(,[return 0;],_HAVE_LIBGSTVIDEO=1,_HAVE_LIBGSTVIDEO=) -+ if test -n "$_HAVE_LIBGSTVIDEO" ; then -+ GSTREAMER_LIBS="$GSTREAMER_LIBS -lgstvideo-$GST_API_VERSION" - else -- AC_MSG_ERROR([gstreamer and gstreamer-plugins-base development packages are needed to build gstreamer backend. Install them or disable gstreamer support with --disable-gstreamer]) -+ AC_MSG_ERROR([gstreamer-plugins-base found, but no libgstvideo. Something has gone terribly wrong. Try reinstalling gstreamer-plugins-base; failing that, disable the gstreamer backend with --disable-gstreamer.]) - fi -+ LDFLAGS=$_SAVE_LDFLAGS -+ -+ AC_SUBST(GSTREAMER_CFLAGS) -+ AC_SUBST(GSTREAMER_LIBS) - fi --AC_SUBST(GSTREAMER_CFLAGS) --AC_SUBST(GSTREAMER_LIBS) -+ - AC_SUBST(MOZ_GSTREAMER) -+AC_SUBST(GST_API_VERSION) - - if test -n "$MOZ_GSTREAMER"; then -- AC_DEFINE(MOZ_GSTREAMER) -+ AC_DEFINE(MOZ_GSTREAMER) -+ AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION") - fi - - -diff --git content/media/gstreamer/GStreamerAllocator.cpp content/media/gstreamer/GStreamerAllocator.cpp -new file mode 100644 -index 0000000..69d0385 ---- /dev/null -+++ content/media/gstreamer/GStreamerAllocator.cpp -@@ -0,0 +1,197 @@ -+#ifdef HAVE_CONFIG_H -+#include "config.h" -+#endif -+ -+#include "GStreamerAllocator.h" -+ -+#include <gst/video/video.h> -+#include <gst/video/gstvideometa.h> -+ -+#include "GStreamerLoader.h" -+ -+using namespace mozilla::layers; -+ -+namespace mozilla { -+ -+typedef struct -+{ -+ GstAllocator parent; -+ GStreamerReader *reader; -+} MozGfxMemoryAllocator; -+ -+typedef struct -+{ -+ GstAllocatorClass parent; -+} MozGfxMemoryAllocatorClass; -+ -+typedef struct -+{ -+ GstMemory memory; -+ PlanarYCbCrImage* image; -+ guint8* data; -+} MozGfxMemory; -+ -+typedef struct -+{ -+ GstMeta meta; -+} MozGfxMeta; -+ -+typedef struct -+{ -+ GstVideoBufferPoolClass parent_class; -+} MozGfxBufferPoolClass; -+ -+typedef struct -+{ -+ GstVideoBufferPool pool; -+} MozGfxBufferPool; -+ -+G_DEFINE_TYPE(MozGfxMemoryAllocator, moz_gfx_memory_allocator, GST_TYPE_ALLOCATOR); -+G_DEFINE_TYPE(MozGfxBufferPool, moz_gfx_buffer_pool, GST_TYPE_VIDEO_BUFFER_POOL); -+ -+void -+moz_gfx_memory_reset(MozGfxMemory *mem) -+{ -+ if (mem->image) -+ mem->image->Release(); -+ -+ ImageContainer* container = ((MozGfxMemoryAllocator*) mem->memory.allocator)->reader->GetImageContainer(); -+ mem->image = reinterpret_cast<PlanarYCbCrImage*>(container->CreateImage(ImageFormat::PLANAR_YCBCR).get()); -+ mem->data = mem->image->AllocateAndGetNewBuffer(mem->memory.size); -+} -+ -+static GstMemory* -+moz_gfx_memory_allocator_alloc(GstAllocator* aAllocator, gsize aSize, -+ GstAllocationParams* aParams) -+{ -+ MozGfxMemory* mem = g_slice_new (MozGfxMemory); -+ gsize maxsize = aSize + aParams->prefix + aParams->padding; -+ gst_memory_init(GST_MEMORY_CAST (mem), -+ (GstMemoryFlags)aParams->flags, -+ aAllocator, NULL, maxsize, aParams->align, -+ aParams->prefix, aSize); -+ mem->image = NULL; -+ moz_gfx_memory_reset(mem); -+ -+ return (GstMemory *) mem; -+} -+ -+static void -+moz_gfx_memory_allocator_free (GstAllocator * allocator, GstMemory * gmem) -+{ -+ MozGfxMemory *mem = (MozGfxMemory *) gmem; -+ -+ if (mem->memory.parent) -+ goto sub_mem; -+ -+ if (mem->image) -+ mem->image->Release(); -+ -+sub_mem: -+ g_slice_free (MozGfxMemory, mem); -+} -+ -+static gpointer -+moz_gfx_memory_map (MozGfxMemory * mem, gsize maxsize, GstMapFlags flags) -+{ -+ // check that the allocation didn't fail -+ if (mem->data == nullptr) -+ return nullptr; -+ -+ return mem->data + mem->memory.offset; -+} -+ -+static gboolean -+moz_gfx_memory_unmap (MozGfxMemory * mem) -+{ -+ return TRUE; -+} -+ -+static MozGfxMemory * -+moz_gfx_memory_share (MozGfxMemory * mem, gssize offset, gsize size) -+{ -+ MozGfxMemory *sub; -+ GstMemory *parent; -+ -+ /* find the real parent */ -+ if ((parent = mem->memory.parent) == NULL) -+ parent = (GstMemory *) mem; -+ -+ if (size == (gsize) -1) -+ size = mem->memory.size - offset; -+ -+ /* the shared memory is always readonly */ -+ sub = g_slice_new (MozGfxMemory); -+ -+ gst_memory_init (GST_MEMORY_CAST (sub), -+ (GstMemoryFlags) (GST_MINI_OBJECT_FLAGS (parent) | GST_MINI_OBJECT_FLAG_LOCK_READONLY), -+ mem->memory.allocator, &mem->memory, mem->memory.maxsize, mem->memory.align, -+ mem->memory.offset + offset, size); -+ -+ sub->image = mem->image; -+ sub->data = mem->data; -+ -+ return sub; -+} -+ -+static void -+moz_gfx_memory_allocator_class_init (MozGfxMemoryAllocatorClass * klass) -+{ -+ GstAllocatorClass *allocator_class; -+ -+ allocator_class = (GstAllocatorClass *) klass; -+ -+ allocator_class->alloc = moz_gfx_memory_allocator_alloc; -+ allocator_class->free = moz_gfx_memory_allocator_free; -+} -+ -+static void -+moz_gfx_memory_allocator_init (MozGfxMemoryAllocator * allocator) -+{ -+ GstAllocator *alloc = GST_ALLOCATOR_CAST (allocator); -+ -+ alloc->mem_type = "moz-gfx-image"; -+ alloc->mem_map = (GstMemoryMapFunction) moz_gfx_memory_map; -+ alloc->mem_unmap = (GstMemoryUnmapFunction) moz_gfx_memory_unmap; -+ alloc->mem_share = (GstMemoryShareFunction) moz_gfx_memory_share; -+ /* fallback copy and is_span */ -+} -+ -+void -+moz_gfx_memory_allocator_set_reader(GstAllocator* aAllocator, GStreamerReader* aReader) -+{ -+ MozGfxMemoryAllocator *allocator = (MozGfxMemoryAllocator *) aAllocator; -+ allocator->reader = aReader; -+} -+ -+nsRefPtr<PlanarYCbCrImage> -+moz_gfx_memory_get_image(GstMemory *aMemory) -+{ -+ NS_ASSERTION(GST_IS_MOZ_GFX_MEMORY_ALLOCATOR(aMemory->allocator), "Should be a gfx image"); -+ -+ return ((MozGfxMemory *) aMemory)->image; -+} -+ -+void -+moz_gfx_buffer_pool_reset_buffer (GstBufferPool* aPool, GstBuffer* aBuffer) -+{ -+ GstMemory* mem = gst_buffer_peek_memory(aBuffer, 0); -+ -+ NS_ASSERTION(GST_IS_MOZ_GFX_MEMORY_ALLOCATOR(mem->allocator), "Should be a gfx image"); -+ moz_gfx_memory_reset((MozGfxMemory *) mem); -+ GST_BUFFER_POOL_CLASS(moz_gfx_buffer_pool_parent_class)->reset_buffer(aPool, aBuffer); -+} -+ -+static void -+moz_gfx_buffer_pool_class_init (MozGfxBufferPoolClass * klass) -+{ -+ GstBufferPoolClass *pool_class = (GstBufferPoolClass *) klass; -+ pool_class->reset_buffer = moz_gfx_buffer_pool_reset_buffer; -+} -+ -+static void -+moz_gfx_buffer_pool_init (MozGfxBufferPool * pool) -+{ -+} -+ -+} // namespace mozilla -diff --git content/media/gstreamer/GStreamerAllocator.h content/media/gstreamer/GStreamerAllocator.h -new file mode 100644 -index 0000000..05a4412 ---- /dev/null -+++ content/media/gstreamer/GStreamerAllocator.h -@@ -0,0 +1,25 @@ -+/* 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/. */ -+ -+#if !defined(GStreamerAllocator_h_) -+#define GStreamerAllocator_h_ -+ -+#include "GStreamerReader.h" -+ -+#define GST_TYPE_MOZ_GFX_MEMORY_ALLOCATOR (moz_gfx_memory_allocator_get_type()) -+#define GST_IS_MOZ_GFX_MEMORY_ALLOCATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_MOZ_GFX_MEMORY_ALLOCATOR)) -+#define GST_TYPE_MOZ_GFX_BUFFER_POOL (moz_gfx_buffer_pool_get_type()) -+#define GST_IS_MOZ_GFX_BUFFER_POOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_MOZ_GFX_BUFFER_POOL)) -+ -+namespace mozilla { -+ -+GType moz_gfx_memory_allocator_get_type(); -+void moz_gfx_memory_allocator_set_reader(GstAllocator *aAllocator, GStreamerReader* aReader); -+nsRefPtr<layers::PlanarYCbCrImage> moz_gfx_memory_get_image(GstMemory *aMemory); -+ -+GType moz_gfx_buffer_pool_get_type(); -+ -+} // namespace mozilla -+ -+#endif -diff --git content/media/gstreamer/GStreamerFormatHelper.cpp content/media/gstreamer/GStreamerFormatHelper.cpp -index be71331..a5e5db8 100644 ---- content/media/gstreamer/GStreamerFormatHelper.cpp -+++ content/media/gstreamer/GStreamerFormatHelper.cpp -@@ -294,12 +294,23 @@ bool GStreamerFormatHelper::CanHandleCodecCaps(GstCaps* aCaps) - GList* GStreamerFormatHelper::GetFactories() { - NS_ASSERTION(sLoadOK, "GStreamer library not linked"); - -- uint32_t cookie = gst_default_registry_get_feature_list_cookie (); -+#if GST_VERSION_MAJOR >= 1 -+ uint32_t cookie = gst_registry_get_feature_list_cookie(gst_registry_get()); -+#else -+ uint32_t cookie = gst_default_registry_get_feature_list_cookie(); -+#endif - if (cookie != mCookie) { - g_list_free(mFactories); -+#if GST_VERSION_MAJOR >= 1 -+ mFactories = -+ gst_registry_feature_filter(gst_registry_get(), -+ (GstPluginFeatureFilter)FactoryFilter, -+ false, nullptr); -+#else - mFactories = - gst_default_registry_feature_filter((GstPluginFeatureFilter)FactoryFilter, - false, nullptr); -+#endif - mCookie = cookie; - } - -diff --git content/media/gstreamer/GStreamerFunctionList.h content/media/gstreamer/GStreamerFunctionList.h -index 56877c0..e169449 100644 ---- content/media/gstreamer/GStreamerFunctionList.h -+++ content/media/gstreamer/GStreamerFunctionList.h -@@ -9,7 +9,6 @@ - * List of symbol names we need to dlsym from the gstreamer library. - */ - GST_FUNC(LIBGSTAPP, gst_app_sink_get_type) --GST_FUNC(LIBGSTAPP, gst_app_sink_pull_buffer) - GST_FUNC(LIBGSTAPP, gst_app_sink_set_callbacks) - GST_FUNC(LIBGSTAPP, gst_app_src_end_of_stream) - GST_FUNC(LIBGSTAPP, gst_app_src_get_size) -@@ -22,10 +21,8 @@ GST_FUNC(LIBGSTAPP, gst_app_src_set_stream_type) - GST_FUNC(LIBGSTREAMER, gst_bin_get_by_name) - GST_FUNC(LIBGSTREAMER, gst_bin_get_type) - GST_FUNC(LIBGSTREAMER, gst_bin_iterate_recurse) --GST_FUNC(LIBGSTREAMER, gst_buffer_copy_metadata) - GST_FUNC(LIBGSTREAMER, gst_buffer_get_type) - GST_FUNC(LIBGSTREAMER, gst_buffer_new) --GST_FUNC(LIBGSTREAMER, gst_buffer_new_and_alloc) - GST_FUNC(LIBGSTREAMER, gst_bus_set_sync_handler) - GST_FUNC(LIBGSTREAMER, gst_bus_timed_pop_filtered) - GST_FUNC(LIBGSTREAMER, gst_caps_append) -@@ -37,47 +34,37 @@ GST_FUNC(LIBGSTREAMER, gst_caps_new_any) - GST_FUNC(LIBGSTREAMER, gst_caps_new_empty) - GST_FUNC(LIBGSTREAMER, gst_caps_new_full) - GST_FUNC(LIBGSTREAMER, gst_caps_new_simple) --GST_FUNC(LIBGSTREAMER, gst_caps_unref) --GST_FUNC(LIBGSTREAMER, gst_element_factory_get_klass) -+GST_FUNC(LIBGSTREAMER, gst_caps_set_simple) - GST_FUNC(LIBGSTREAMER, gst_element_factory_get_static_pad_templates) - GST_FUNC(LIBGSTREAMER, gst_element_factory_get_type) - GST_FUNC(LIBGSTREAMER, gst_element_factory_make) - GST_FUNC(LIBGSTREAMER, gst_element_get_factory) --GST_FUNC(LIBGSTREAMER, gst_element_get_pad) -+GST_FUNC(LIBGSTREAMER, gst_element_get_static_pad) - GST_FUNC(LIBGSTREAMER, gst_element_get_type) - GST_FUNC(LIBGSTREAMER, gst_element_query_convert) - GST_FUNC(LIBGSTREAMER, gst_element_query_duration) - GST_FUNC(LIBGSTREAMER, gst_element_seek_simple) - GST_FUNC(LIBGSTREAMER, gst_element_set_state) --GST_FUNC(LIBGSTREAMER, gst_event_parse_new_segment) - GST_FUNC(LIBGSTREAMER, gst_flow_get_name) - GST_FUNC(LIBGSTREAMER, gst_init) - GST_FUNC(LIBGSTREAMER, gst_init_check) - GST_FUNC(LIBGSTREAMER, gst_iterator_next) - GST_FUNC(LIBGSTREAMER, gst_message_parse_error) - GST_FUNC(LIBGSTREAMER, gst_message_type_get_name) --GST_FUNC(LIBGSTREAMER, gst_mini_object_get_type) --GST_FUNC(LIBGSTREAMER, gst_mini_object_new) - GST_FUNC(LIBGSTREAMER, gst_mini_object_ref) - GST_FUNC(LIBGSTREAMER, gst_mini_object_unref) - GST_FUNC(LIBGSTREAMER, gst_object_get_name) - GST_FUNC(LIBGSTREAMER, gst_object_get_parent) - GST_FUNC(LIBGSTREAMER, gst_object_unref) --GST_FUNC(LIBGSTREAMER, gst_pad_add_event_probe) --GST_FUNC(LIBGSTREAMER, gst_pad_alloc_buffer) - GST_FUNC(LIBGSTREAMER, gst_pad_get_element_private) --GST_FUNC(LIBGSTREAMER, gst_pad_get_negotiated_caps) --GST_FUNC(LIBGSTREAMER, gst_pad_set_bufferalloc_function) - GST_FUNC(LIBGSTREAMER, gst_pad_set_element_private) - GST_FUNC(LIBGSTREAMER, gst_parse_bin_from_description) - GST_FUNC(LIBGSTREAMER, gst_pipeline_get_bus) - GST_FUNC(LIBGSTREAMER, gst_pipeline_get_type) - GST_FUNC(LIBGSTREAMER, gst_plugin_feature_get_rank) - GST_FUNC(LIBGSTREAMER, gst_registry_feature_filter) --GST_FUNC(LIBGSTREAMER, gst_registry_get_default) - GST_FUNC(LIBGSTREAMER, gst_registry_get_feature_list_cookie) - GST_FUNC(LIBGSTREAMER, gst_segment_init) --GST_FUNC(LIBGSTREAMER, gst_segment_set_newsegment) - GST_FUNC(LIBGSTREAMER, gst_segment_to_stream_time) - GST_FUNC(LIBGSTREAMER, gst_static_caps_get) - GST_FUNC(LIBGSTREAMER, gst_structure_copy) -@@ -85,11 +72,82 @@ GST_FUNC(LIBGSTREAMER, gst_structure_get_int) - GST_FUNC(LIBGSTREAMER, gst_structure_get_value) - GST_FUNC(LIBGSTREAMER, gst_structure_new) - GST_FUNC(LIBGSTREAMER, gst_util_uint64_scale) -+ -+#if GST_VERSION_MAJOR == 0 -+GST_FUNC(LIBGSTAPP, gst_app_sink_pull_buffer) -+GST_FUNC(LIBGSTREAMER, gst_buffer_copy_metadata) -+GST_FUNC(LIBGSTREAMER, gst_buffer_new_and_alloc) -+GST_FUNC(LIBGSTREAMER, gst_caps_unref) -+GST_FUNC(LIBGSTREAMER, gst_element_factory_get_klass) -+GST_FUNC(LIBGSTREAMER, gst_element_get_pad) -+GST_FUNC(LIBGSTREAMER, gst_event_parse_new_segment) -+GST_FUNC(LIBGSTREAMER, gst_mini_object_get_type) -+GST_FUNC(LIBGSTREAMER, gst_mini_object_new) -+GST_FUNC(LIBGSTREAMER, gst_pad_add_event_probe) -+GST_FUNC(LIBGSTREAMER, gst_pad_alloc_buffer) -+GST_FUNC(LIBGSTREAMER, gst_pad_get_negotiated_caps) -+GST_FUNC(LIBGSTREAMER, gst_pad_set_bufferalloc_function) -+GST_FUNC(LIBGSTREAMER, gst_registry_get_default) -+GST_FUNC(LIBGSTREAMER, gst_segment_set_newsegment) - GST_FUNC(LIBGSTVIDEO, gst_video_format_get_component_height) - GST_FUNC(LIBGSTVIDEO, gst_video_format_get_component_offset) - GST_FUNC(LIBGSTVIDEO, gst_video_format_get_component_width) -+GST_FUNC(LIBGSTVIDEO, gst_video_format_get_pixel_stride) - GST_FUNC(LIBGSTVIDEO, gst_video_format_get_row_stride) - GST_FUNC(LIBGSTVIDEO, gst_video_format_parse_caps) -+#else -+ -+GST_FUNC(LIBGSTAPP, gst_app_sink_pull_sample) -+GST_FUNC(LIBGSTREAMER, _gst_caps_any) -+GST_FUNC(LIBGSTREAMER, gst_allocator_get_type) -+GST_FUNC(LIBGSTREAMER, gst_buffer_copy_into) -+GST_FUNC(LIBGSTREAMER, gst_buffer_extract) -+GST_FUNC(LIBGSTREAMER, gst_buffer_get_meta) -+GST_FUNC(LIBGSTREAMER, gst_buffer_get_size) -+GST_FUNC(LIBGSTREAMER, gst_buffer_map) -+GST_FUNC(LIBGSTREAMER, gst_buffer_new_allocate) -+GST_FUNC(LIBGSTREAMER, gst_buffer_n_memory) -+GST_FUNC(LIBGSTREAMER, gst_buffer_peek_memory) -+GST_FUNC(LIBGSTREAMER, gst_buffer_pool_acquire_buffer) -+GST_FUNC(LIBGSTREAMER, gst_buffer_pool_config_set_allocator) -+GST_FUNC(LIBGSTREAMER, gst_buffer_pool_config_set_params) -+GST_FUNC(LIBGSTREAMER, gst_buffer_pool_get_config) -+GST_FUNC(LIBGSTREAMER, gst_buffer_pool_get_type) -+GST_FUNC(LIBGSTREAMER, gst_buffer_pool_is_active) -+GST_FUNC(LIBGSTREAMER, gst_buffer_pool_set_active) -+GST_FUNC(LIBGSTREAMER, gst_buffer_pool_set_config) -+GST_FUNC(LIBGSTREAMER, gst_buffer_set_size) -+GST_FUNC(LIBGSTREAMER, gst_buffer_unmap) -+GST_FUNC(LIBGSTREAMER, gst_element_factory_get_metadata) -+GST_FUNC(LIBGSTREAMER, gst_event_parse_segment) -+GST_FUNC(LIBGSTREAMER, gst_memory_init) -+GST_FUNC(LIBGSTREAMER, gst_memory_map) -+GST_FUNC(LIBGSTREAMER, gst_memory_unmap) -+GST_FUNC(LIBGSTREAMER, gst_object_get_type) -+GST_FUNC(LIBGSTREAMER, gst_pad_add_probe) -+GST_FUNC(LIBGSTREAMER, gst_pad_get_current_caps) -+GST_FUNC(LIBGSTREAMER, gst_pad_probe_info_get_query) -+GST_FUNC(LIBGSTREAMER, gst_query_add_allocation_meta) -+GST_FUNC(LIBGSTREAMER, gst_query_add_allocation_param) -+GST_FUNC(LIBGSTREAMER, gst_query_add_allocation_pool) -+GST_FUNC(LIBGSTREAMER, gst_query_parse_allocation) -+GST_FUNC(LIBGSTREAMER, gst_registry_get) -+GST_FUNC(LIBGSTREAMER, gst_sample_get_buffer) -+GST_FUNC(LIBGSTREAMER, gst_segment_copy_into) -+GST_FUNC(LIBGSTREAMER, gst_structure_free) -+GST_FUNC(LIBGSTVIDEO, gst_buffer_pool_config_get_video_alignment) -+GST_FUNC(LIBGSTVIDEO, gst_buffer_pool_has_option) -+GST_FUNC(LIBGSTVIDEO, gst_video_buffer_pool_get_type) -+GST_FUNC(LIBGSTVIDEO, gst_video_frame_map) -+GST_FUNC(LIBGSTVIDEO, gst_video_frame_unmap) -+GST_FUNC(LIBGSTVIDEO, gst_video_info_align) -+GST_FUNC(LIBGSTVIDEO, gst_video_info_from_caps) -+GST_FUNC(LIBGSTVIDEO, gst_video_info_init) -+GST_FUNC(LIBGSTVIDEO, gst_video_meta_api_get_type) -+GST_FUNC(LIBGSTVIDEO, gst_video_meta_map) -+GST_FUNC(LIBGSTVIDEO, gst_video_meta_unmap) -+ -+#endif - - /* - * Functions that have been defined in the header file. We replace them so that -@@ -99,6 +157,11 @@ GST_FUNC(LIBGSTVIDEO, gst_video_format_parse_caps) - REPLACE_FUNC(gst_buffer_ref); - REPLACE_FUNC(gst_buffer_unref); - REPLACE_FUNC(gst_message_unref); -+ -+#if GST_VERSION_MAJOR == 1 -+REPLACE_FUNC(gst_caps_unref); -+REPLACE_FUNC(gst_sample_unref); -+#endif - #endif - - #endif // !defined(__APPLE__) -diff --git content/media/gstreamer/GStreamerLoader.cpp content/media/gstreamer/GStreamerLoader.cpp -index 5961b23..e6457e0 100644 ---- content/media/gstreamer/GStreamerLoader.cpp -+++ content/media/gstreamer/GStreamerLoader.cpp -@@ -6,13 +6,21 @@ - #include <dlfcn.h> - #include <stdio.h> - --#include "GStreamerLoader.h" -+#include "nsDebug.h" - #include "mozilla/NullPtr.h" - -+#include "GStreamerLoader.h" -+ - #define LIBGSTREAMER 0 - #define LIBGSTAPP 1 - #define LIBGSTVIDEO 2 - -+#ifdef __OpenBSD__ -+#define LIB_GST_SUFFIX ".so" -+#else -+#define LIB_GST_SUFFIX ".so.0" -+#endif -+ - namespace mozilla { - - /* -@@ -32,6 +40,11 @@ namespace mozilla { - GstBuffer * gst_buffer_ref_impl(GstBuffer *buf); - void gst_buffer_unref_impl(GstBuffer *buf); - void gst_message_unref_impl(GstMessage *msg); -+void gst_caps_unref_impl(GstCaps *caps); -+ -+#if GST_VERSION_MAJOR == 1 -+void gst_sample_unref_impl(GstSample *sample); -+#endif - - bool - load_gstreamer() -@@ -58,32 +71,25 @@ load_gstreamer() - if (major == GST_VERSION_MAJOR && minor == GST_VERSION_MINOR) { - gstreamerLib = RTLD_DEFAULT; - } else { --#ifdef __OpenBSD__ -- gstreamerLib = dlopen("libgstreamer-0.10.so", RTLD_NOW | RTLD_LOCAL); --#else -- gstreamerLib = dlopen("libgstreamer-0.10.so.0", RTLD_NOW | RTLD_LOCAL); --#endif -+ gstreamerLib = dlopen("libgstreamer-" GST_API_VERSION LIB_GST_SUFFIX, RTLD_NOW | RTLD_LOCAL); - } - -- void *handles[] = { -+ void *handles[3] = { - gstreamerLib, --#ifdef __OpenBSD__ -- dlopen("libgstapp-0.10.so", RTLD_NOW | RTLD_LOCAL), -- dlopen("libgstvideo-0.10.so", RTLD_NOW | RTLD_LOCAL) --#else -- dlopen("libgstapp-0.10.so.0", RTLD_NOW | RTLD_LOCAL), -- dlopen("libgstvideo-0.10.so.0", RTLD_NOW | RTLD_LOCAL) --#endif -+ dlopen("libgstapp-" GST_API_VERSION LIB_GST_SUFFIX, RTLD_NOW | RTLD_LOCAL), -+ dlopen("libgstvideo-" GST_API_VERSION LIB_GST_SUFFIX, RTLD_NOW | RTLD_LOCAL) - }; - - for (size_t i = 0; i < sizeof(handles) / sizeof(handles[0]); i++) { - if (!handles[i]) { -+ NS_WARNING("Couldn't link gstreamer libraries"); - goto fail; - } - } - - #define GST_FUNC(lib, symbol) \ - if (!(symbol = (typeof(symbol))dlsym(handles[lib], #symbol))) { \ -+ NS_WARNING("Couldn't link symbol " #symbol); \ - goto fail; \ - } - #define REPLACE_FUNC(symbol) symbol = symbol##_impl; -@@ -123,4 +129,18 @@ gst_message_unref_impl(GstMessage *msg) - gst_mini_object_unref(GST_MINI_OBJECT_CAST(msg)); - } - -+#if GST_VERSION_MAJOR == 1 -+void -+gst_sample_unref_impl(GstSample *sample) -+{ -+ gst_mini_object_unref(GST_MINI_OBJECT_CAST(sample)); -+} -+#endif -+ -+void -+gst_caps_unref_impl(GstCaps *caps) -+{ -+ gst_mini_object_unref(GST_MINI_OBJECT_CAST(caps)); -+} -+ - } -diff --git content/media/gstreamer/GStreamerLoader.h content/media/gstreamer/GStreamerLoader.h -index 2d801722..cd7fe6d 100644 ---- content/media/gstreamer/GStreamerLoader.h -+++ content/media/gstreamer/GStreamerLoader.h -@@ -22,6 +22,11 @@ - #include <gst/video/video.h> - #pragma GCC diagnostic pop - -+#if GST_VERSION_MAJOR == 1 -+#include <gst/video/gstvideometa.h> -+#include <gst/video/gstvideopool.h> -+#endif -+ - namespace mozilla { - - /* -@@ -42,4 +47,7 @@ bool load_gstreamer(); - - } - -+#undef GST_CAPS_ANY -+#define GST_CAPS_ANY (*_gst_caps_any) -+ - #endif // GStreamerLoader_h_ -diff --git content/media/gstreamer/GStreamerReader-0.10.cpp content/media/gstreamer/GStreamerReader-0.10.cpp -new file mode 100644 -index 0000000..fb98bde ---- /dev/null -+++ content/media/gstreamer/GStreamerReader-0.10.cpp -@@ -0,0 +1,200 @@ -+#include "nsError.h" -+#include "MediaDecoderStateMachine.h" -+#include "AbstractMediaDecoder.h" -+#include "MediaResource.h" -+#include "GStreamerReader.h" -+#include "GStreamerMozVideoBuffer.h" -+#include "GStreamerFormatHelper.h" -+#include "VideoUtils.h" -+#include "mozilla/dom/TimeRanges.h" -+#include "mozilla/Preferences.h" -+ -+using namespace mozilla; -+using mozilla::layers::PlanarYCbCrImage; -+using mozilla::layers::ImageContainer; -+ -+GstFlowReturn GStreamerReader::AllocateVideoBufferCb(GstPad* aPad, -+ guint64 aOffset, -+ guint aSize, -+ GstCaps* aCaps, -+ GstBuffer** aBuf) -+{ -+ GStreamerReader* reader = reinterpret_cast<GStreamerReader*>(gst_pad_get_element_private(aPad)); -+ return reader->AllocateVideoBuffer(aPad, aOffset, aSize, aCaps, aBuf); -+} -+ -+GstFlowReturn GStreamerReader::AllocateVideoBuffer(GstPad* aPad, -+ guint64 aOffset, -+ guint aSize, -+ GstCaps* aCaps, -+ GstBuffer** aBuf) -+{ -+ nsRefPtr<PlanarYCbCrImage> image; -+ return AllocateVideoBufferFull(aPad, aOffset, aSize, aCaps, aBuf, image); -+} -+ -+GstFlowReturn GStreamerReader::AllocateVideoBufferFull(GstPad* aPad, -+ guint64 aOffset, -+ guint aSize, -+ GstCaps* aCaps, -+ GstBuffer** aBuf, -+ nsRefPtr<PlanarYCbCrImage>& aImage) -+{ -+ /* allocate an image using the container */ -+ ImageContainer* container = mDecoder->GetImageContainer(); -+ if (container == nullptr) { -+ return GST_FLOW_ERROR; -+ } -+ PlanarYCbCrImage* img = reinterpret_cast<PlanarYCbCrImage*>(container->CreateImage(ImageFormat::PLANAR_YCBCR).get()); -+ nsRefPtr<PlanarYCbCrImage> image = dont_AddRef(img); -+ -+ /* prepare a GstBuffer pointing to the underlying PlanarYCbCrImage buffer */ -+ GstBuffer* buf = GST_BUFFER(gst_moz_video_buffer_new()); -+ GST_BUFFER_SIZE(buf) = aSize; -+ /* allocate the actual YUV buffer */ -+ GST_BUFFER_DATA(buf) = image->AllocateAndGetNewBuffer(aSize); -+ -+ aImage = image; -+ -+ /* create a GstMozVideoBufferData to hold the image */ -+ GstMozVideoBufferData* bufferdata = new GstMozVideoBufferData(image); -+ -+ /* Attach bufferdata to our GstMozVideoBuffer, it will take care to free it */ -+ gst_moz_video_buffer_set_data(GST_MOZ_VIDEO_BUFFER(buf), bufferdata); -+ -+ *aBuf = buf; -+ return GST_FLOW_OK; -+} -+ -+gboolean GStreamerReader::EventProbe(GstPad* aPad, GstEvent* aEvent) -+{ -+ GstElement* parent = GST_ELEMENT(gst_pad_get_parent(aPad)); -+ switch(GST_EVENT_TYPE(aEvent)) { -+ case GST_EVENT_NEWSEGMENT: -+ { -+ gboolean update; -+ gdouble rate; -+ GstFormat format; -+ gint64 start, stop, position; -+ GstSegment* segment; -+ -+ /* Store the segments so we can convert timestamps to stream time, which -+ * is what the upper layers sync on. -+ */ -+ ReentrantMonitorAutoEnter mon(mGstThreadsMonitor); -+ gst_event_parse_new_segment(aEvent, &update, &rate, &format, -+ &start, &stop, &position); -+ if (parent == GST_ELEMENT(mVideoAppSink)) -+ segment = &mVideoSegment; -+ else -+ segment = &mAudioSegment; -+ gst_segment_set_newsegment(segment, update, rate, format, -+ start, stop, position); -+ break; -+ } -+ case GST_EVENT_FLUSH_STOP: -+ /* Reset on seeks */ -+ ResetDecode(); -+ break; -+ default: -+ break; -+ } -+ gst_object_unref(parent); -+ -+ return TRUE; -+} -+ -+gboolean GStreamerReader::EventProbeCb(GstPad* aPad, -+ GstEvent* aEvent, -+ gpointer aUserData) -+{ -+ GStreamerReader* reader = reinterpret_cast<GStreamerReader*>(aUserData); -+ return reader->EventProbe(aPad, aEvent); -+} -+ -+nsRefPtr<PlanarYCbCrImage> GStreamerReader::GetImageFromBuffer(GstBuffer* aBuffer) -+{ -+ if (!GST_IS_MOZ_VIDEO_BUFFER (aBuffer)) -+ return nullptr; -+ -+ nsRefPtr<PlanarYCbCrImage> image; -+ GstMozVideoBufferData* bufferdata = reinterpret_cast<GstMozVideoBufferData*>(gst_moz_video_buffer_get_data(GST_MOZ_VIDEO_BUFFER(aBuffer))); -+ image = bufferdata->mImage; -+ -+ PlanarYCbCrImage::Data data; -+ data.mPicX = data.mPicY = 0; -+ data.mPicSize = gfx::IntSize(mPicture.width, mPicture.height); -+ data.mStereoMode = StereoMode::MONO; -+ -+ data.mYChannel = GST_BUFFER_DATA(aBuffer); -+ data.mYStride = gst_video_format_get_row_stride(mFormat, 0, mPicture.width); -+ data.mYSize = gfx::IntSize(data.mYStride, -+ gst_video_format_get_component_height(mFormat, 0, mPicture.height)); -+ data.mYSkip = 0; -+ data.mCbCrStride = gst_video_format_get_row_stride(mFormat, 1, mPicture.width); -+ data.mCbCrSize = gfx::IntSize(data.mCbCrStride, -+ gst_video_format_get_component_height(mFormat, 1, mPicture.height)); -+ data.mCbChannel = data.mYChannel + gst_video_format_get_component_offset(mFormat, 1, -+ mPicture.width, mPicture.height); -+ data.mCrChannel = data.mYChannel + gst_video_format_get_component_offset(mFormat, 2, -+ mPicture.width, mPicture.height); -+ data.mCbSkip = 0; -+ data.mCrSkip = 0; -+ -+ image->SetDataNoCopy(data); -+ -+ return image; -+} -+ -+void GStreamerReader::CopyIntoImageBuffer(GstBuffer* aBuffer, -+ GstBuffer** aOutBuffer, -+ nsRefPtr<PlanarYCbCrImage> &aImage) -+{ -+ AllocateVideoBufferFull(nullptr, GST_BUFFER_OFFSET(aBuffer), -+ GST_BUFFER_SIZE(aBuffer), nullptr, aOutBuffer, aImage); -+ -+ gst_buffer_copy_metadata(*aOutBuffer, aBuffer, (GstBufferCopyFlags)GST_BUFFER_COPY_ALL); -+ memcpy(GST_BUFFER_DATA(*aOutBuffer), GST_BUFFER_DATA(aBuffer), GST_BUFFER_SIZE(*aOutBuffer)); -+ -+ aImage = GetImageFromBuffer(*aOutBuffer); -+} -+ -+GstCaps* GStreamerReader::BuildAudioSinkCaps() -+{ -+ GstCaps* caps; -+#ifdef IS_LITTLE_ENDIAN -+ int endianness = 1234; -+#else -+ int endianness = 4321; -+#endif -+ gint width; -+#ifdef MOZ_SAMPLE_TYPE_FLOAT32 -+ caps = gst_caps_from_string("audio/x-raw-float, channels={1,2}"); -+ width = 32; -+#else /* !MOZ_SAMPLE_TYPE_FLOAT32 */ -+ caps = gst_caps_from_string("audio/x-raw-int, channels={1,2}"); -+ width = 16; -+#endif -+ gst_caps_set_simple(caps, -+ "width", G_TYPE_INT, width, -+ "endianness", G_TYPE_INT, endianness, -+ NULL); -+ -+ return caps; -+} -+ -+void GStreamerReader::InstallPadCallbacks() -+{ -+ GstPad* sinkpad = gst_element_get_static_pad(GST_ELEMENT(mVideoAppSink), "sink"); -+ gst_pad_add_event_probe(sinkpad, -+ G_CALLBACK(&GStreamerReader::EventProbeCb), this); -+ -+ gst_pad_set_bufferalloc_function(sinkpad, GStreamerReader::AllocateVideoBufferCb); -+ gst_pad_set_element_private(sinkpad, this); -+ gst_object_unref(sinkpad); -+ -+ sinkpad = gst_element_get_static_pad(GST_ELEMENT(mAudioAppSink), "sink"); -+ gst_pad_add_event_probe(sinkpad, -+ G_CALLBACK(&GStreamerReader::EventProbeCb), this); -+ gst_object_unref(sinkpad); -+} -diff --git content/media/gstreamer/GStreamerReader.cpp content/media/gstreamer/GStreamerReader.cpp -index 2be45dc..54509e3 100644 ---- content/media/gstreamer/GStreamerReader.cpp -+++ content/media/gstreamer/GStreamerReader.cpp -@@ -10,8 +10,10 @@ - #include "AbstractMediaDecoder.h" - #include "MediaResource.h" - #include "GStreamerReader.h" -+#if GST_VERSION_MAJOR >= 1 -+#include "GStreamerAllocator.h" -+#endif - #include "GStreamerFormatHelper.h" --#include "GStreamerMozVideoBuffer.h" - #include "VideoUtils.h" - #include "mozilla/dom/TimeRanges.h" - #include "mozilla/Preferences.h" -@@ -31,14 +33,16 @@ extern PRLogModuleInfo* gMediaDecoderLog; - #define LOG(type, msg, ...) - #endif - --extern bool --IsYV12Format(const VideoData::YCbCrBuffer::Plane& aYPlane, -- const VideoData::YCbCrBuffer::Plane& aCbPlane, -- const VideoData::YCbCrBuffer::Plane& aCrPlane); -- -+#if DEBUG - static const unsigned int MAX_CHANNELS = 4; --// Let the demuxer work in pull mode for short files --static const int SHORT_FILE_SIZE = 1024 * 1024; -+#endif -+// Let the demuxer work in pull mode for short files. This used to be a micro -+// optimization to have more accurate durations for ogg files in mochitests. -+// Since as of today we aren't using gstreamer to demux ogg, and having demuxers -+// work in pull mode over http makes them slower (since they really assume -+// near-zero latency in pull mode) set the constant to 0 for now, which -+// effectively disables it. -+static const int SHORT_FILE_SIZE = 0; - // The default resource->Read() size when working in push mode - static const int DEFAULT_SOURCE_READ_SIZE = 50 * 1024; - -@@ -60,6 +62,10 @@ GStreamerReader::GStreamerReader(AbstractMediaDecoder* aDecoder) - : MediaDecoderReader(aDecoder), - mMP3FrameParser(aDecoder->GetResource()->GetLength()), - mUseParserDuration(false), -+#if GST_VERSION_MAJOR >= 1 -+ mAllocator(nullptr), -+ mBufferPool(nullptr), -+#endif - mPlayBin(nullptr), - mBus(nullptr), - mSource(nullptr), -@@ -72,6 +78,9 @@ GStreamerReader::GStreamerReader(AbstractMediaDecoder* aDecoder) - mAudioSinkBufferCount(0), - mGstThreadsMonitor("media.gst.threads"), - mReachedEos(false), -+#if GST_VERSION_MAJOR >= 1 -+ mConfigureAlignment(true), -+#endif - fpsNum(0), - fpsDen(0) - { -@@ -83,8 +92,12 @@ GStreamerReader::GStreamerReader(AbstractMediaDecoder* aDecoder) - - mSinkCallbacks.eos = GStreamerReader::EosCb; - mSinkCallbacks.new_preroll = GStreamerReader::NewPrerollCb; -+#if GST_VERSION_MAJOR >= 1 -+ mSinkCallbacks.new_sample = GStreamerReader::NewBufferCb; -+#else - mSinkCallbacks.new_buffer = GStreamerReader::NewBufferCb; - mSinkCallbacks.new_buffer_list = nullptr; -+#endif - - gst_segment_init(&mVideoSegment, GST_FORMAT_UNDEFINED); - gst_segment_init(&mAudioSegment, GST_FORMAT_UNDEFINED); -@@ -108,65 +121,59 @@ GStreamerReader::~GStreamerReader() - mAudioAppSink = nullptr; - gst_object_unref(mBus); - mBus = nullptr; -+#if GST_VERSION_MAJOR >= 1 -+ g_object_unref(mAllocator); -+ g_object_unref(mBufferPool); -+#endif - } - } - - nsresult GStreamerReader::Init(MediaDecoderReader* aCloneDonor) - { -- GError* error = nullptr; -- if (!gst_init_check(0, 0, &error)) { -- LOG(PR_LOG_ERROR, "gst initialization failed: %s", error->message); -- g_error_free(error); -- return NS_ERROR_FAILURE; -- } -+ GStreamerFormatHelper::Instance(); -+ -+#if GST_VERSION_MAJOR >= 1 -+ mAllocator = static_cast<GstAllocator*>(g_object_new(GST_TYPE_MOZ_GFX_MEMORY_ALLOCATOR, nullptr)); -+ moz_gfx_memory_allocator_set_reader(mAllocator, this); -+ -+ mBufferPool = static_cast<GstBufferPool*>(g_object_new(GST_TYPE_MOZ_GFX_BUFFER_POOL, nullptr)); -+#endif - -+#if GST_VERSION_MAJOR >= 1 -+ mPlayBin = gst_element_factory_make("playbin", nullptr); -+#else - mPlayBin = gst_element_factory_make("playbin2", nullptr); -+#endif - if (!mPlayBin) { -- LOG(PR_LOG_ERROR, "couldn't create playbin2"); -+ LOG(PR_LOG_ERROR, "couldn't create playbin"); - return NS_ERROR_FAILURE; - } - g_object_set(mPlayBin, "buffer-size", 0, nullptr); - mBus = gst_pipeline_get_bus(GST_PIPELINE(mPlayBin)); - - mVideoSink = gst_parse_bin_from_description("capsfilter name=filter ! " -- "appsink name=videosink sync=true max-buffers=1 " -+ "appsink name=videosink sync=false max-buffers=1 " -+#if GST_VERSION_MAJOR >= 1 -+ "caps=video/x-raw,format=I420" -+#else - "caps=video/x-raw-yuv,format=(fourcc)I420" -+#endif - , TRUE, nullptr); - mVideoAppSink = GST_APP_SINK(gst_bin_get_by_name(GST_BIN(mVideoSink), - "videosink")); -- gst_app_sink_set_callbacks(mVideoAppSink, &mSinkCallbacks, -- (gpointer) this, nullptr); -- GstPad* sinkpad = gst_element_get_pad(GST_ELEMENT(mVideoAppSink), "sink"); -- gst_pad_add_event_probe(sinkpad, -- G_CALLBACK(&GStreamerReader::EventProbeCb), this); -- gst_object_unref(sinkpad); -- gst_pad_set_bufferalloc_function(sinkpad, GStreamerReader::AllocateVideoBufferCb); -- gst_pad_set_element_private(sinkpad, this); -- - mAudioSink = gst_parse_bin_from_description("capsfilter name=filter ! " --#ifdef MOZ_SAMPLE_TYPE_FLOAT32 -- "appsink name=audiosink max-buffers=2 sync=false caps=audio/x-raw-float," --#ifdef IS_LITTLE_ENDIAN -- "channels={1,2},width=32,endianness=1234", TRUE, nullptr); --#else -- "channels={1,2},width=32,endianness=4321", TRUE, nullptr); --#endif --#else -- "appsink name=audiosink max-buffers=2 sync=false caps=audio/x-raw-int," --#ifdef IS_LITTLE_ENDIAN -- "channels={1,2},width=16,endianness=1234", TRUE, nullptr); --#else -- "channels={1,2},width=16,endianness=4321", TRUE, nullptr); --#endif --#endif -+ "appsink name=audiosink sync=false max-buffers=1", TRUE, nullptr); - mAudioAppSink = GST_APP_SINK(gst_bin_get_by_name(GST_BIN(mAudioSink), - "audiosink")); -+ GstCaps* caps = BuildAudioSinkCaps(); -+ g_object_set(mAudioAppSink, "caps", caps, nullptr); -+ gst_caps_unref(caps); -+ -+ gst_app_sink_set_callbacks(mVideoAppSink, &mSinkCallbacks, -+ (gpointer) this, nullptr); - gst_app_sink_set_callbacks(mAudioAppSink, &mSinkCallbacks, - (gpointer) this, nullptr); -- sinkpad = gst_element_get_pad(GST_ELEMENT(mAudioAppSink), "sink"); -- gst_pad_add_event_probe(sinkpad, -- G_CALLBACK(&GStreamerReader::EventProbeCb), this); -- gst_object_unref(sinkpad); -+ InstallPadCallbacks(); - - g_object_set(mPlayBin, "uri", "appsrc://", - "video-sink", mVideoSink, -@@ -331,13 +340,12 @@ nsresult GStreamerReader::ReadMetadata(MediaInfo* aInfo, - /* Little trick: set the target caps to "skip" so that playbin2 fails to - * find a decoder for the stream we want to skip. - */ -- GstCaps* filterCaps = gst_caps_new_simple ("skip", nullptr); -+ GstCaps* filterCaps = gst_caps_new_simple ("skip", nullptr, nullptr); - g_object_set(filter, "caps", filterCaps, nullptr); - gst_caps_unref(filterCaps); - gst_object_unref(filter); - } - -- /* start the pipeline */ - LOG(PR_LOG_DEBUG, "starting metadata pipeline"); - gst_element_set_state(mPlayBin, GST_STATE_PAUSED); - -@@ -358,6 +366,7 @@ nsresult GStreamerReader::ReadMetadata(MediaInfo* aInfo, - gst_message_unref(message); - ret = NS_ERROR_FAILURE; - } else { -+ LOG(PR_LOG_DEBUG, "read metadata pipeline prerolled"); - gst_message_unref(message); - ret = NS_OK; - break; -@@ -373,21 +383,24 @@ nsresult GStreamerReader::ReadMetadata(MediaInfo* aInfo, - - /* FIXME: workaround for a bug in matroskademux. This seek makes matroskademux - * parse the index */ -+ LOG(PR_LOG_DEBUG, "doing matroskademux seek hack"); - if (gst_element_seek_simple(mPlayBin, GST_FORMAT_TIME, - GST_SEEK_FLAG_FLUSH, 0)) { - /* after a seek we need to wait again for ASYNC_DONE */ -- message = gst_bus_timed_pop_filtered(mBus, GST_CLOCK_TIME_NONE, -+ message = gst_bus_timed_pop_filtered(mBus, 5 * GST_SECOND, - (GstMessageType)(GST_MESSAGE_ASYNC_DONE | GST_MESSAGE_ERROR)); -- if (GST_MESSAGE_TYPE(message) == GST_MESSAGE_ERROR) { -+ LOG(PR_LOG_DEBUG, "matroskademux seek hack done"); -+ if (GST_MESSAGE_TYPE(message) != GST_MESSAGE_ASYNC_DONE) { - gst_element_set_state(mPlayBin, GST_STATE_NULL); - gst_message_unref(message); - return NS_ERROR_FAILURE; - } -+ } else { -+ LOG(PR_LOG_DEBUG, "matroskademux seek hack failed (non fatal)"); - } - - /* report the duration */ - gint64 duration; -- GstFormat format = GST_FORMAT_TIME; - - if (isMP3 && mMP3FrameParser.IsMP3()) { - // The MP3FrameParser has reported a duration; use that over the gstreamer -@@ -396,17 +409,25 @@ nsresult GStreamerReader::ReadMetadata(MediaInfo* aInfo, - mUseParserDuration = true; - mLastParserDuration = mMP3FrameParser.GetDuration(); - mDecoder->SetMediaDuration(mLastParserDuration); -- -- } else if (gst_element_query_duration(GST_ELEMENT(mPlayBin), -- &format, &duration) && format == GST_FORMAT_TIME) { -- // Otherwise use the gstreamer duration. -- ReentrantMonitorAutoEnter mon(mDecoder->GetReentrantMonitor()); -- LOG(PR_LOG_DEBUG, "returning duration %" GST_TIME_FORMAT, GST_TIME_ARGS(duration)); -- duration = GST_TIME_AS_USECONDS (duration); -- mDecoder->SetMediaDuration(duration); -- - } else { -- mDecoder->SetMediaSeekable(false); -+ LOG(PR_LOG_DEBUG, "querying duration"); -+ // Otherwise use the gstreamer duration. -+#if GST_VERSION_MAJOR >= 1 -+ if (gst_element_query_duration(GST_ELEMENT(mPlayBin), -+ GST_FORMAT_TIME, &duration)) { -+#else -+ GstFormat format = GST_FORMAT_TIME; -+ if (gst_element_query_duration(GST_ELEMENT(mPlayBin), -+ &format, &duration) && format == GST_FORMAT_TIME) { -+#endif -+ ReentrantMonitorAutoEnter mon(mDecoder->GetReentrantMonitor()); -+ LOG(PR_LOG_DEBUG, "have duration %" GST_TIME_FORMAT, -+ GST_TIME_ARGS (duration)); -+ duration = GST_TIME_AS_USECONDS (duration); -+ mDecoder->SetMediaDuration(duration); -+ } else { -+ mDecoder->SetMediaSeekable(false); -+ } - } - - int n_video = 0, n_audio = 0; -@@ -410,7 +428,11 @@ nsresult GStreamerReader::ReadMetadata(MediaInfo* aInfo, - *aTags = nullptr; - - // Watch the pipeline for fatal errors -+#if GST_VERSION_MAJOR >= 1 -+ gst_bus_set_sync_handler(mBus, GStreamerReader::ErrorCb, this, nullptr); -+#else - gst_bus_set_sync_handler(mBus, GStreamerReader::ErrorCb, this); -+#endif - - /* set the pipeline to PLAYING so that it starts decoding and queueing data in - * the appsinks */ -@@ -424,19 +446,35 @@ nsresult GStreamerReader::CheckSupportedFormats() - bool done = false; - bool unsupported = false; - -- GstIterator *it = gst_bin_iterate_recurse(GST_BIN(mPlayBin)); -+ GstIterator* it = gst_bin_iterate_recurse(GST_BIN(mPlayBin)); - while (!done) { -+ GstIteratorResult res; - GstElement* element; -- GstIteratorResult res = gst_iterator_next(it, (void **)&element); -+ -+#if GST_VERSION_MAJOR >= 1 -+ GValue value = {0,}; -+ res = gst_iterator_next(it, &value); -+#else -+ res = gst_iterator_next(it, (void **) &element); -+#endif - switch(res) { - case GST_ITERATOR_OK: - { -+#if GST_VERSION_MAJOR >= 1 -+ element = GST_ELEMENT (g_value_get_object (&value)); -+#endif - GstElementFactory* factory = gst_element_get_factory(element); - if (factory) { - const char* klass = gst_element_factory_get_klass(factory); -- GstPad* pad = gst_element_get_pad(element, "sink"); -+ GstPad* pad = gst_element_get_static_pad(element, "sink"); - if (pad) { -- GstCaps* caps = gst_pad_get_negotiated_caps(pad); -+ GstCaps* caps; -+ -+#if GST_VERSION_MAJOR >= 1 -+ caps = gst_pad_get_current_caps(pad); -+#else -+ caps = gst_pad_get_negotiated_caps(pad); -+#endif - - if (caps) { - /* check for demuxers but ignore elements like id3demux */ -@@ -451,7 +489,11 @@ nsresult GStreamerReader::CheckSupportedFormats() - } - } - -+#if GST_VERSION_MAJOR >= 1 -+ g_value_unset (&value); -+#else - gst_object_unref(element); -+#endif - done = unsupported; - break; - } -@@ -475,6 +517,8 @@ nsresult GStreamerReader::ResetDecode() - { - nsresult res = NS_OK; - -+ LOG(PR_LOG_DEBUG, "reset decode"); -+ - if (NS_FAILED(MediaDecoderReader::ResetDecode())) { - res = NS_ERROR_FAILURE; - } -@@ -485,6 +529,11 @@ nsresult GStreamerReader::ResetDecode() - mVideoSinkBufferCount = 0; - mAudioSinkBufferCount = 0; - mReachedEos = false; -+#if GST_VERSION_MAJOR >= 1 -+ mConfigureAlignment = true; -+#endif -+ -+ LOG(PR_LOG_DEBUG, "reset decode done"); - - return res; - } -@@ -508,11 +557,11 @@ bool GStreamerReader::DecodeAudioData() - /* We have nothing decoded so it makes no sense to return to the state machine - * as it will call us back immediately, we'll return again and so on, wasting - * CPU cycles for no job done. So, block here until there is either video or -- * audio data available -+ * audio data available - */ - mon.Wait(); - if (!mAudioSinkBufferCount) { -- /* There is still no audio data available, so either there is video data or -+ /* There is still no audio data available, so either there is video data or - * something else has happened (Eos, etc...). Return to the state machine - * to process it. - */ -@@ -533,24 +584,44 @@ bool GStreamerReader::DecodeAudioData() - } - } - -+#if GST_VERSION_MAJOR >= 1 -+ GstSample *sample = gst_app_sink_pull_sample(mAudioAppSink); -+ buffer = gst_buffer_ref(gst_sample_get_buffer(sample)); -+ gst_sample_unref(sample); -+#else - buffer = gst_app_sink_pull_buffer(mAudioAppSink); -+#endif -+ - mAudioSinkBufferCount--; - } - - int64_t timestamp = GST_BUFFER_TIMESTAMP(buffer); - timestamp = gst_segment_to_stream_time(&mAudioSegment, - GST_FORMAT_TIME, timestamp); -+ - timestamp = GST_TIME_AS_USECONDS(timestamp); -+ - int64_t duration = 0; - if (GST_CLOCK_TIME_IS_VALID(GST_BUFFER_DURATION(buffer))) - duration = GST_TIME_AS_USECONDS(GST_BUFFER_DURATION(buffer)); - - int64_t offset = GST_BUFFER_OFFSET(buffer); -+#if GST_VERSION_MAJOR >= 1 -+ GstMapInfo info; -+ gst_buffer_map(buffer, &info, GST_MAP_READ); -+ unsigned int size = info.size; -+#else - unsigned int size = GST_BUFFER_SIZE(buffer); -+#endif - int32_t frames = (size / sizeof(AudioDataValue)) / mInfo.mAudio.mChannels; - ssize_t outSize = static_cast<size_t>(size / sizeof(AudioDataValue)); - nsAutoArrayPtr<AudioDataValue> data(new AudioDataValue[outSize]); -+#if GST_VERSION_MAJOR >= 1 -+ memcpy(data, info.data, info.size); -+ gst_buffer_unmap(buffer, &info); -+#else - memcpy(data, GST_BUFFER_DATA(buffer), GST_BUFFER_SIZE(buffer)); -+#endif - AudioData* audio = new AudioData(offset, timestamp, duration, - frames, data.forget(), mInfo.mAudio.mChannels); - -@@ -552,7 +620,7 @@ bool GStreamerReader::DecodeAudioData() - } - - bool GStreamerReader::DecodeVideoFrame(bool &aKeyFrameSkip, -- int64_t aTimeThreshold) -+ int64_t aTimeThreshold) - { - NS_ASSERTION(mDecoder->OnDecodeThread(), "Should be on decode thread."); - -@@ -571,11 +639,11 @@ bool GStreamerReader::DecodeVideoFrame(bool &aKeyFrameSkip, - /* We have nothing decoded so it makes no sense to return to the state machine - * as it will call us back immediately, we'll return again and so on, wasting - * CPU cycles for no job done. So, block here until there is either video or -- * audio data available -+ * audio data available - */ - mon.Wait(); - if (!mVideoSinkBufferCount) { -- /* There is still no video data available, so either there is audio data or -+ /* There is still no video data available, so either there is audio data or - * something else has happened (Eos, etc...). Return to the state machine - * to process it - */ -@@ -589,11 +657,17 @@ bool GStreamerReader::DecodeVideoFrame(bool &aKeyFrameSkip, - - mDecoder->NotifyDecodedFrames(0, 1); - -+#if GST_VERSION_MAJOR >= 1 -+ GstSample *sample = gst_app_sink_pull_sample(mVideoAppSink); -+ buffer = gst_buffer_ref(gst_sample_get_buffer(sample)); -+ gst_sample_unref(sample); -+#else - buffer = gst_app_sink_pull_buffer(mVideoAppSink); -+#endif - mVideoSinkBufferCount--; - } - -- bool isKeyframe = !GST_BUFFER_FLAG_IS_SET(buffer, GST_BUFFER_FLAG_DISCONT); -+ bool isKeyframe = !GST_BUFFER_FLAG_IS_SET(buffer, GST_BUFFER_FLAG_DELTA_UNIT); - if ((aKeyFrameSkip && !isKeyframe)) { - gst_buffer_unref(buffer); - return true; -@@ -611,10 +687,18 @@ bool GStreamerReader::DecodeVideoFrame(bool &aKeyFrameSkip, - "frame has invalid timestamp"); - - timestamp = GST_TIME_AS_USECONDS(timestamp); -+ int64_t duration; -+ if (GST_CLOCK_TIME_IS_VALID(GST_BUFFER_DURATION(buffer))) -+ duration = GST_TIME_AS_USECONDS(GST_BUFFER_DURATION(buffer)); -+ else if (fpsNum && fpsDen) -+ /* add 1-frame duration */ -+ duration = gst_util_uint64_scale(GST_USECOND, fpsDen, fpsNum); -+ - if (timestamp < aTimeThreshold) { - LOG(PR_LOG_DEBUG, "skipping frame %" GST_TIME_FORMAT - " threshold %" GST_TIME_FORMAT, -- GST_TIME_ARGS(timestamp), GST_TIME_ARGS(aTimeThreshold)); -+ GST_TIME_ARGS(timestamp * 1000), -+ GST_TIME_ARGS(aTimeThreshold * 1000)); - gst_buffer_unref(buffer); - return true; - } -@@ -623,61 +707,36 @@ bool GStreamerReader::DecodeVideoFrame(bool &aKeyFrameSkip, - /* no more frames */ - return false; - -- int64_t duration = 0; -- if (GST_CLOCK_TIME_IS_VALID(GST_BUFFER_DURATION(buffer))) -- duration = GST_TIME_AS_USECONDS(GST_BUFFER_DURATION(buffer)); -- else if (fpsNum && fpsDen) -- /* 1-frame duration */ -- duration = gst_util_uint64_scale(GST_USECOND, fpsNum, fpsDen); -- -- nsRefPtr<PlanarYCbCrImage> image; -- GstMozVideoBufferData* bufferdata = reinterpret_cast<GstMozVideoBufferData*> -- GST_IS_MOZ_VIDEO_BUFFER(buffer)?gst_moz_video_buffer_get_data(GST_MOZ_VIDEO_BUFFER(buffer)):nullptr; -- -- if(bufferdata) -- image = bufferdata->mImage; -+#if GST_VERSION_MAJOR >= 1 -+ if (mConfigureAlignment && buffer->pool) { -+ GstStructure *config = gst_buffer_pool_get_config(buffer->pool); -+ GstVideoAlignment align; -+ if (gst_buffer_pool_config_get_video_alignment(config, &align)) -+ gst_video_info_align(&mVideoInfo, &align); -+ gst_structure_free(config); -+ mConfigureAlignment = false; -+ } -+#endif - -+ nsRefPtr<PlanarYCbCrImage> image = GetImageFromBuffer(buffer); - if (!image) { - /* Ugh, upstream is not calling gst_pad_alloc_buffer(). Fallback to - * allocating a PlanarYCbCrImage backed GstBuffer here and memcpy. - */ - GstBuffer* tmp = nullptr; -- AllocateVideoBufferFull(nullptr, GST_BUFFER_OFFSET(buffer), -- GST_BUFFER_SIZE(buffer), nullptr, &tmp, image); -- -- /* copy */ -- gst_buffer_copy_metadata(tmp, buffer, (GstBufferCopyFlags)GST_BUFFER_COPY_ALL); -- memcpy(GST_BUFFER_DATA(tmp), GST_BUFFER_DATA(buffer), -- GST_BUFFER_SIZE(tmp)); -+ CopyIntoImageBuffer(buffer, &tmp, image); - gst_buffer_unref(buffer); - buffer = tmp; - } - -- guint8* data = GST_BUFFER_DATA(buffer); -- -- int width = mPicture.width; -- int height = mPicture.height; -- GstVideoFormat format = mFormat; -- -- VideoData::YCbCrBuffer b; -- for(int i = 0; i < 3; i++) { -- b.mPlanes[i].mData = data + gst_video_format_get_component_offset(format, i, -- width, height); -- b.mPlanes[i].mStride = gst_video_format_get_row_stride(format, i, width); -- b.mPlanes[i].mHeight = gst_video_format_get_component_height(format, -- i, height); -- b.mPlanes[i].mWidth = gst_video_format_get_component_width(format, -- i, width); -- b.mPlanes[i].mOffset = 0; -- b.mPlanes[i].mSkip = 0; -- } -- -- isKeyframe = !GST_BUFFER_FLAG_IS_SET(buffer, GST_BUFFER_FLAG_DELTA_UNIT); - int64_t offset = mDecoder->GetResource()->Tell(); // Estimate location in media. -- VideoData* video = VideoData::Create(mInfo.mVideo, image, offset, -- timestamp, duration, b, -- isKeyframe, -1, mPicture); -+ VideoData* video = VideoData::CreateFromImage(mInfo.mVideo, -+ mDecoder->GetImageContainer(), -+ offset, timestamp, duration, -+ static_cast<Image*>(image.get()), -+ isKeyframe, -1, mPicture); - mVideoQueue.Push(video); -+ - gst_buffer_unref(buffer); - - return true; -@@ -698,6 +755,10 @@ nsresult GStreamerReader::Seek(int64_t aTarget, - return NS_ERROR_FAILURE; - } - LOG(PR_LOG_DEBUG, "seek succeeded"); -+ GstMessage* message = gst_bus_timed_pop_filtered(mBus, GST_CLOCK_TIME_NONE, -+ (GstMessageType)(GST_MESSAGE_ASYNC_DONE | GST_MESSAGE_ERROR)); -+ gst_message_unref(message); -+ LOG(PR_LOG_DEBUG, "seek completed"); - - return DecodeToTarget(aTarget); - } -@@ -709,7 +770,9 @@ nsresult GStreamerReader::GetBuffered(dom::TimeRanges* aBuffered, - return NS_OK; - } - -+#if GST_VERSION_MAJOR == 0 - GstFormat format = GST_FORMAT_TIME; -+#endif - MediaResource* resource = mDecoder->GetResource(); - nsTArray<MediaByteRange> ranges; - resource->GetCachedRanges(ranges); -@@ -731,12 +794,21 @@ nsresult GStreamerReader::GetBuffered(dom::TimeRanges* aBuffered, - int64_t endOffset = ranges[index].mEnd; - gint64 startTime, endTime; - -+#if GST_VERSION_MAJOR >= 1 -+ if (!gst_element_query_convert(GST_ELEMENT(mPlayBin), GST_FORMAT_BYTES, -+ startOffset, GST_FORMAT_TIME, &startTime)) -+ continue; -+ if (!gst_element_query_convert(GST_ELEMENT(mPlayBin), GST_FORMAT_BYTES, -+ endOffset, GST_FORMAT_TIME, &endTime)) -+ continue; -+#else - if (!gst_element_query_convert(GST_ELEMENT(mPlayBin), GST_FORMAT_BYTES, - startOffset, &format, &startTime) || format != GST_FORMAT_TIME) - continue; - if (!gst_element_query_convert(GST_ELEMENT(mPlayBin), GST_FORMAT_BYTES, - endOffset, &format, &endTime) || format != GST_FORMAT_TIME) - continue; -+#endif - - double start = (double) GST_TIME_AS_USECONDS (startTime) / GST_MSECOND; - double end = (double) GST_TIME_AS_USECONDS (endTime) / GST_MSECOND; -@@ -755,7 +827,13 @@ void GStreamerReader::ReadAndPushData(guint aLength) - nsresult rv = NS_OK; - - GstBuffer* buffer = gst_buffer_new_and_alloc(aLength); -+#if GST_VERSION_MAJOR >= 1 -+ GstMapInfo info; -+ gst_buffer_map(buffer, &info, GST_MAP_WRITE); -+ guint8 *data = info.data; -+#else - guint8* data = GST_BUFFER_DATA(buffer); -+#endif - uint32_t size = 0, bytesRead = 0; - while(bytesRead < aLength) { - rv = resource->Read(reinterpret_cast<char*>(data + bytesRead), -@@ -780,7 +860,12 @@ void GStreamerReader::ReadAndPushData(guint aLength) - int64_t offset2 = resource->Tell(); - unused << offset2; - -+#if GST_VERSION_MAJOR >= 1 -+ gst_buffer_unmap(buffer, &info); -+ gst_buffer_set_size(buffer, bytesRead); -+#else - GST_BUFFER_SIZE(buffer) = bytesRead; -+#endif - - GstFlowReturn ret = gst_app_src_push_buffer(mSource, gst_buffer_ref(buffer)); - if (ret != GST_FLOW_OK) { -@@ -786,8 +869,13 @@ int64_t GStreamerReader::QueryDuration() - gint64 duration = 0; - GstFormat format = GST_FORMAT_TIME; - -+#if GST_VERSION_MAJOR >= 1 -+ if (gst_element_query_duration(GST_ELEMENT(mPlayBin), -+ format, &duration)) { -+#else - if (gst_element_query_duration(GST_ELEMENT(mPlayBin), - &format, &duration)) { -+#endif - if (format == GST_FORMAT_TIME) { - LOG(PR_LOG_DEBUG, "pipeline duration %" GST_TIME_FORMAT, - GST_TIME_ARGS (duration)); -@@ -893,109 +984,6 @@ gboolean GStreamerReader::SeekData(GstAppSrc* aSrc, guint64 aOffset) - return NS_SUCCEEDED(rv); - } - --gboolean GStreamerReader::EventProbeCb(GstPad* aPad, -- GstEvent* aEvent, -- gpointer aUserData) --{ -- GStreamerReader* reader = reinterpret_cast<GStreamerReader*>(aUserData); -- return reader->EventProbe(aPad, aEvent); --} -- --gboolean GStreamerReader::EventProbe(GstPad* aPad, GstEvent* aEvent) --{ -- GstElement* parent = GST_ELEMENT(gst_pad_get_parent(aPad)); -- switch(GST_EVENT_TYPE(aEvent)) { -- case GST_EVENT_NEWSEGMENT: -- { -- gboolean update; -- gdouble rate; -- GstFormat format; -- gint64 start, stop, position; -- GstSegment* segment; -- -- /* Store the segments so we can convert timestamps to stream time, which -- * is what the upper layers sync on. -- */ -- ReentrantMonitorAutoEnter mon(mGstThreadsMonitor); -- gst_event_parse_new_segment(aEvent, &update, &rate, &format, -- &start, &stop, &position); -- if (parent == GST_ELEMENT(mVideoAppSink)) -- segment = &mVideoSegment; -- else -- segment = &mAudioSegment; -- gst_segment_set_newsegment(segment, update, rate, format, -- start, stop, position); -- break; -- } -- case GST_EVENT_FLUSH_STOP: -- /* Reset on seeks */ -- ResetDecode(); -- break; -- default: -- break; -- } -- gst_object_unref(parent); -- -- return TRUE; --} -- --GstFlowReturn GStreamerReader::AllocateVideoBufferFull(GstPad* aPad, -- guint64 aOffset, -- guint aSize, -- GstCaps* aCaps, -- GstBuffer** aBuf, -- nsRefPtr<PlanarYCbCrImage>& aImage) --{ -- /* allocate an image using the container */ -- ImageContainer* container = mDecoder->GetImageContainer(); -- if (!container) { -- // We don't have an ImageContainer. We probably belong to an <audio> -- // element. -- return GST_FLOW_NOT_SUPPORTED; -- } -- PlanarYCbCrImage* img = -- reinterpret_cast<PlanarYCbCrImage*>( -- container->CreateImage(ImageFormat::PLANAR_YCBCR).get()); -- nsRefPtr<PlanarYCbCrImage> image = dont_AddRef(img); -- -- /* prepare a GstBuffer pointing to the underlying PlanarYCbCrImage buffer */ -- GstBuffer* buf = GST_BUFFER(gst_moz_video_buffer_new()); -- GST_BUFFER_SIZE(buf) = aSize; -- /* allocate the actual YUV buffer */ -- GST_BUFFER_DATA(buf) = image->AllocateAndGetNewBuffer(aSize); -- -- aImage = image; -- -- /* create a GstMozVideoBufferData to hold the image */ -- GstMozVideoBufferData* bufferdata = new GstMozVideoBufferData(image); -- -- /* Attach bufferdata to our GstMozVideoBuffer, it will take care to free it */ -- gst_moz_video_buffer_set_data(GST_MOZ_VIDEO_BUFFER(buf), bufferdata); -- -- *aBuf = buf; -- return GST_FLOW_OK; --} -- --GstFlowReturn GStreamerReader::AllocateVideoBufferCb(GstPad* aPad, -- guint64 aOffset, -- guint aSize, -- GstCaps* aCaps, -- GstBuffer** aBuf) --{ -- GStreamerReader* reader = reinterpret_cast<GStreamerReader*>(gst_pad_get_element_private(aPad)); -- return reader->AllocateVideoBuffer(aPad, aOffset, aSize, aCaps, aBuf); --} -- --GstFlowReturn GStreamerReader::AllocateVideoBuffer(GstPad* aPad, -- guint64 aOffset, -- guint aSize, -- GstCaps* aCaps, -- GstBuffer** aBuf) --{ -- nsRefPtr<PlanarYCbCrImage> image; -- return AllocateVideoBufferFull(aPad, aOffset, aSize, aCaps, aBuf, image); --} -- - GstFlowReturn GStreamerReader::NewPrerollCb(GstAppSink* aSink, - gpointer aUserData) - { -@@ -979,8 +970,12 @@ void GStreamerReader::AudioPreroll() - { - /* The first audio buffer has reached the audio sink. Get rate and channels */ - LOG(PR_LOG_DEBUG, "Audio preroll"); -- GstPad* sinkpad = gst_element_get_pad(GST_ELEMENT(mAudioAppSink), "sink"); -+ GstPad* sinkpad = gst_element_get_static_pad(GST_ELEMENT(mAudioAppSink), "sink"); -+#if GST_VERSION_MAJOR >= 1 -+ GstCaps *caps = gst_pad_get_current_caps(sinkpad); -+#else - GstCaps* caps = gst_pad_get_negotiated_caps(sinkpad); -+#endif - GstStructure* s = gst_caps_get_structure(caps, 0); - mInfo.mAudio.mRate = mInfo.mAudio.mChannels = 0; - gst_structure_get_int(s, "rate", (gint*) &mInfo.mAudio.mRate); -@@ -998,9 +993,18 @@ void GStreamerReader::VideoPreroll() - { - /* The first video buffer has reached the video sink. Get width and height */ - LOG(PR_LOG_DEBUG, "Video preroll"); -- GstPad* sinkpad = gst_element_get_pad(GST_ELEMENT(mVideoAppSink), "sink"); -+ GstPad* sinkpad = gst_element_get_static_pad(GST_ELEMENT(mVideoAppSink), "sink"); -+#if GST_VERSION_MAJOR >= 1 -+ GstCaps* caps = gst_pad_get_current_caps(sinkpad); -+ memset (&mVideoInfo, 0, sizeof (mVideoInfo)); -+ gst_video_info_from_caps(&mVideoInfo, caps); -+ mFormat = mVideoInfo.finfo->format; -+ mPicture.width = mVideoInfo.width; -+ mPicture.height = mVideoInfo.height; -+#else - GstCaps* caps = gst_pad_get_negotiated_caps(sinkpad); - gst_video_format_parse_caps(caps, &mFormat, &mPicture.width, &mPicture.height); -+#endif - GstStructure* structure = gst_caps_get_structure(caps, 0); - gst_structure_get_fraction(structure, "framerate", &fpsNum, &fpsDen); - NS_ASSERTION(mPicture.width && mPicture.height, "invalid video resolution"); -@@ -1029,6 +1033,7 @@ void GStreamerReader::NewVideoBuffer() - /* We have a new video buffer queued in the video sink. Increment the counter - * and notify the decode thread potentially blocked in DecodeVideoFrame - */ -+ - mDecoder->NotifyDecodedFrames(1, 0); - mVideoSinkBufferCount++; - mon.NotifyAll(); -@@ -1095,5 +1100,199 @@ void GStreamerReader::NotifyDataArrived(const char *aBuffer, - } - } - -+#if GST_VERSION_MAJOR >= 1 -+GstCaps* GStreamerReader::BuildAudioSinkCaps() -+{ -+ GstCaps* caps = gst_caps_from_string("audio/x-raw, channels={1,2}"); -+ const char* format; -+#ifdef MOZ_SAMPLE_TYPE_FLOAT32 -+#ifdef IS_LITTLE_ENDIAN -+ format = "F32LE"; -+#else -+ format = "F32BE"; -+#endif -+#else /* !MOZ_SAMPLE_TYPE_FLOAT32 */ -+#ifdef IS_LITTLE_ENDIAN -+ format = "S16LE"; -+#else -+ format = "S16BE"; -+#endif -+#endif -+ gst_caps_set_simple(caps, "format", G_TYPE_STRING, format, nullptr); -+ -+ return caps; -+} -+ -+void GStreamerReader::InstallPadCallbacks() -+{ -+ GstPad* sinkpad = gst_element_get_static_pad(GST_ELEMENT(mVideoAppSink), "sink"); -+ -+ gst_pad_add_probe(sinkpad, -+ (GstPadProbeType) (GST_PAD_PROBE_TYPE_SCHEDULING | -+ GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM | -+ GST_PAD_PROBE_TYPE_EVENT_UPSTREAM | -+ GST_PAD_PROBE_TYPE_EVENT_FLUSH), -+ &GStreamerReader::EventProbeCb, this, nullptr); -+ gst_pad_add_probe(sinkpad, GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM, -+ GStreamerReader::QueryProbeCb, nullptr, nullptr); -+ -+ gst_pad_set_element_private(sinkpad, this); -+ gst_object_unref(sinkpad); -+ -+ sinkpad = gst_element_get_static_pad(GST_ELEMENT(mAudioAppSink), "sink"); -+ gst_pad_add_probe(sinkpad, -+ (GstPadProbeType) (GST_PAD_PROBE_TYPE_SCHEDULING | -+ GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM | -+ GST_PAD_PROBE_TYPE_EVENT_UPSTREAM | -+ GST_PAD_PROBE_TYPE_EVENT_FLUSH), -+ &GStreamerReader::EventProbeCb, this, nullptr); -+ gst_object_unref(sinkpad); -+} -+ -+GstPadProbeReturn GStreamerReader::EventProbeCb(GstPad *aPad, -+ GstPadProbeInfo *aInfo, -+ gpointer aUserData) -+{ -+ GStreamerReader *reader = (GStreamerReader *) aUserData; -+ GstEvent *aEvent = (GstEvent *)aInfo->data; -+ return reader->EventProbe(aPad, aEvent); -+} -+ -+GstPadProbeReturn GStreamerReader::EventProbe(GstPad *aPad, GstEvent *aEvent) -+{ -+ GstElement* parent = GST_ELEMENT(gst_pad_get_parent(aPad)); -+ -+ LOG(PR_LOG_DEBUG, "event probe %s", GST_EVENT_TYPE_NAME (aEvent)); -+ -+ switch(GST_EVENT_TYPE(aEvent)) { -+ case GST_EVENT_SEGMENT: -+ { -+ const GstSegment *newSegment; -+ GstSegment* segment; -+ -+ /* Store the segments so we can convert timestamps to stream time, which -+ * is what the upper layers sync on. -+ */ -+ ReentrantMonitorAutoEnter mon(mGstThreadsMonitor); -+#if GST_VERSION_MINOR <= 1 && GST_VERSION_MICRO < 1 -+ ResetDecode(); -+#endif -+ gst_event_parse_segment(aEvent, &newSegment); -+ if (parent == GST_ELEMENT(mVideoAppSink)) -+ segment = &mVideoSegment; -+ else -+ segment = &mAudioSegment; -+ gst_segment_copy_into (newSegment, segment); -+ break; -+ } -+ case GST_EVENT_FLUSH_STOP: -+ /* Reset on seeks */ -+ ResetDecode(); -+ break; -+ default: -+ break; -+ } -+ gst_object_unref(parent); -+ -+ return GST_PAD_PROBE_OK; -+} -+ -+GstPadProbeReturn GStreamerReader::QueryProbeCb(GstPad* aPad, GstPadProbeInfo* aInfo, gpointer aUserData) -+{ -+ GStreamerReader* reader = reinterpret_cast<GStreamerReader*>(gst_pad_get_element_private(aPad)); -+ return reader->QueryProbe(aPad, aInfo, aUserData); -+} -+ -+GstPadProbeReturn GStreamerReader::QueryProbe(GstPad* aPad, GstPadProbeInfo* aInfo, gpointer aUserData) -+{ -+ GstQuery *query = gst_pad_probe_info_get_query(aInfo); -+ GstPadProbeReturn ret = GST_PAD_PROBE_OK; -+ -+ switch (GST_QUERY_TYPE (query)) { -+ case GST_QUERY_ALLOCATION: -+ GstCaps *caps; -+ GstVideoInfo info; -+ gboolean need_pool; -+ -+ gst_query_parse_allocation(query, &caps, &need_pool); -+ gst_video_info_init(&info); -+ gst_video_info_from_caps(&info, caps); -+ gst_query_add_allocation_param(query, mAllocator, nullptr); -+ gst_query_add_allocation_pool(query, mBufferPool, info.size, 0, 0); -+ gst_query_add_allocation_meta(query, GST_VIDEO_META_API_TYPE, nullptr); -+ break; -+ default: -+ break; -+ } -+ -+ return ret; -+} -+ -+void GStreamerReader::ImageDataFromVideoFrame(GstVideoFrame *aFrame, -+ PlanarYCbCrImage::Data *aData) -+{ -+ NS_ASSERTION(GST_VIDEO_INFO_IS_YUV(&mVideoInfo), -+ "Non-YUV video frame formats not supported"); -+ NS_ASSERTION(GST_VIDEO_FRAME_N_COMPONENTS(aFrame) == 3, -+ "Unsupported number of components in video frame"); -+ -+ aData->mPicX = aData->mPicY = 0; -+ aData->mPicSize = gfx::IntSize(mPicture.width, mPicture.height); -+ aData->mStereoMode = StereoMode::MONO; -+ -+ aData->mYChannel = GST_VIDEO_FRAME_COMP_DATA(aFrame, 0); -+ aData->mYStride = GST_VIDEO_FRAME_COMP_STRIDE(aFrame, 0); -+ aData->mYSize = gfx::IntSize(GST_VIDEO_FRAME_COMP_WIDTH(aFrame, 0), -+ GST_VIDEO_FRAME_COMP_HEIGHT(aFrame, 0)); -+ aData->mYSkip = GST_VIDEO_FRAME_COMP_PSTRIDE(aFrame, 0) - 1; -+ aData->mCbCrStride = GST_VIDEO_FRAME_COMP_STRIDE(aFrame, 1); -+ aData->mCbCrSize = gfx::IntSize(GST_VIDEO_FRAME_COMP_WIDTH(aFrame, 1), -+ GST_VIDEO_FRAME_COMP_HEIGHT(aFrame, 1)); -+ aData->mCbChannel = GST_VIDEO_FRAME_COMP_DATA(aFrame, 1); -+ aData->mCrChannel = GST_VIDEO_FRAME_COMP_DATA(aFrame, 2); -+ aData->mCbSkip = GST_VIDEO_FRAME_COMP_PSTRIDE(aFrame, 1) - 1; -+ aData->mCrSkip = GST_VIDEO_FRAME_COMP_PSTRIDE(aFrame, 2) - 1; -+} -+ -+nsRefPtr<PlanarYCbCrImage> GStreamerReader::GetImageFromBuffer(GstBuffer* aBuffer) -+{ -+ nsRefPtr<PlanarYCbCrImage> image = nullptr; -+ -+ if (gst_buffer_n_memory(aBuffer) == 1) { -+ GstMemory* mem = gst_buffer_peek_memory(aBuffer, 0); -+ if (GST_IS_MOZ_GFX_MEMORY_ALLOCATOR(mem->allocator)) { -+ image = moz_gfx_memory_get_image(mem); -+ -+ GstVideoFrame frame; -+ gst_video_frame_map(&frame, &mVideoInfo, aBuffer, GST_MAP_READ); -+ PlanarYCbCrImage::Data data; -+ ImageDataFromVideoFrame(&frame, &data); -+ image->SetDataNoCopy(data); -+ gst_video_frame_unmap(&frame); -+ } -+ } -+ -+ return image; -+} -+ -+void GStreamerReader::CopyIntoImageBuffer(GstBuffer* aBuffer, -+ GstBuffer** aOutBuffer, -+ nsRefPtr<PlanarYCbCrImage> &image) -+{ -+ *aOutBuffer = gst_buffer_new_allocate(mAllocator, gst_buffer_get_size(aBuffer), nullptr); -+ GstMemory *mem = gst_buffer_peek_memory(*aOutBuffer, 0); -+ GstMapInfo map_info; -+ gst_memory_map(mem, &map_info, GST_MAP_WRITE); -+ gst_buffer_extract(aBuffer, 0, map_info.data, gst_buffer_get_size(aBuffer)); -+ gst_memory_unmap(mem, &map_info); -+ -+ /* create a new gst buffer with the newly created memory and copy the -+ * metadata over from the incoming buffer */ -+ gst_buffer_copy_into(*aOutBuffer, aBuffer, -+ (GstBufferCopyFlags)(GST_BUFFER_COPY_METADATA), 0, -1); -+ image = GetImageFromBuffer(*aOutBuffer); -+} -+#endif -+ - } // namespace mozilla - -diff --git content/media/gstreamer/GStreamerReader.h content/media/gstreamer/GStreamerReader.h -index 1e30bed..6a90702 100644 ---- content/media/gstreamer/GStreamerReader.h -+++ content/media/gstreamer/GStreamerReader.h -@@ -22,6 +22,7 @@ - - #include "MediaDecoderReader.h" - #include "MP3FrameParser.h" -+#include "ImageContainer.h" - #include "nsRect.h" - - namespace mozilla { -@@ -30,10 +31,6 @@ namespace dom { - class TimeRanges; - } - --namespace layers { --class PlanarYCbCrImage; --} -- - class AbstractMediaDecoder; - - class GStreamerReader : public MediaDecoderReader -@@ -67,10 +64,20 @@ public: - return mInfo.HasVideo(); - } - -+ layers::ImageContainer* GetImageContainer() { return mDecoder->GetImageContainer(); } -+ - private: - - void ReadAndPushData(guint aLength); - int64_t QueryDuration(); -+ nsRefPtr<layers::PlanarYCbCrImage> GetImageFromBuffer(GstBuffer* aBuffer); -+ void CopyIntoImageBuffer(GstBuffer *aBuffer, GstBuffer** aOutBuffer, nsRefPtr<layers::PlanarYCbCrImage> &image); -+ GstCaps* BuildAudioSinkCaps(); -+ void InstallPadCallbacks(); -+ -+#if GST_VERSION_MAJOR >= 1 -+ void ImageDataFromVideoFrame(GstVideoFrame *aFrame, layers::PlanarYCbCrImage::Data *aData); -+#endif - - /* Called once the pipeline is setup to check that the stream only contains - * supported formats -@@ -105,20 +112,31 @@ private: - gboolean SeekData(GstAppSrc* aSrc, guint64 aOffset); - - /* Called when events reach the sinks. See inline comments */ -+#if GST_VERSION_MAJOR == 1 -+ static GstPadProbeReturn EventProbeCb(GstPad *aPad, GstPadProbeInfo *aInfo, gpointer aUserData); -+ GstPadProbeReturn EventProbe(GstPad *aPad, GstEvent *aEvent); -+#else - static gboolean EventProbeCb(GstPad* aPad, GstEvent* aEvent, gpointer aUserData); - gboolean EventProbe(GstPad* aPad, GstEvent* aEvent); -+#endif - -- /* Called when elements in the video branch of the pipeline call -- * gst_pad_alloc_buffer(). Used to provide PlanarYCbCrImage backed GstBuffers -- * to the pipeline so that a memory copy can be avoided when handling YUV -- * buffers from the pipeline to the gfx side. -+ /* Called when the video part of the pipeline allocates buffers. Used to -+ * provide PlanarYCbCrImage backed GstBuffers to the pipeline so that a memory -+ * copy can be avoided when handling YUV buffers from the pipeline to the gfx -+ * side. - */ -+#if GST_VERSION_MAJOR == 1 -+ static GstPadProbeReturn QueryProbeCb(GstPad *aPad, GstPadProbeInfo *aInfo, gpointer aUserData); -+ GstPadProbeReturn QueryProbe(GstPad *aPad, GstPadProbeInfo *aInfo, gpointer aUserData); -+#else - static GstFlowReturn AllocateVideoBufferCb(GstPad* aPad, guint64 aOffset, guint aSize, - GstCaps* aCaps, GstBuffer** aBuf); - GstFlowReturn AllocateVideoBufferFull(GstPad* aPad, guint64 aOffset, guint aSize, - GstCaps* aCaps, GstBuffer** aBuf, nsRefPtr<layers::PlanarYCbCrImage>& aImage); - GstFlowReturn AllocateVideoBuffer(GstPad* aPad, guint64 aOffset, guint aSize, - GstCaps* aCaps, GstBuffer** aBuf); -+#endif -+ - - /* Called when the pipeline is prerolled, that is when at start or after a - * seek, the first audio and video buffers are queued in the sinks. -@@ -150,6 +168,11 @@ private: - bool mUseParserDuration; - int64_t mLastParserDuration; - -+#if GST_VERSION_MAJOR >= 1 -+ GstAllocator *mAllocator; -+ GstBufferPool *mBufferPool; -+ GstVideoInfo mVideoInfo; -+#endif - GstElement* mPlayBin; - GstBus* mBus; - GstAppSrc* mSource; -@@ -180,6 +203,9 @@ private: - * DecodeAudioData and DecodeVideoFrame should not expect any more data - */ - bool mReachedEos; -+#if GST_VERSION_MAJOR >= 1 -+ bool mConfigureAlignment; -+#endif - int fpsNum; - int fpsDen; - }; -diff --git content/media/gstreamer/moz.build content/media/gstreamer/moz.build -index 7d51bf5..a3c1856 100644 ---- content/media/gstreamer/moz.build -+++ content/media/gstreamer/moz.build -@@ -15,10 +15,19 @@ SOURCES += [ - 'GStreamerDecoder.cpp', - 'GStreamerFormatHelper.cpp', - 'GStreamerLoader.cpp', -- 'GStreamerMozVideoBuffer.cpp', - 'GStreamerReader.cpp', - ] - -+if CONFIG['GST_API_VERSION'] == '1.0': -+ SOURCES += [ -+ 'GStreamerAllocator.cpp', -+ ] -+else: -+ SOURCES += [ -+ 'GStreamerMozVideoBuffer.cpp', -+ 'GStreamerReader-0.10.cpp', -+ ] -+ - FAIL_ON_WARNINGS = True - - FINAL_LIBRARY = 'gklayout' -diff --git content/media/test/manifest.js content/media/test/manifest.js -index 6e39753..3c8c3b9 100644 ---- content/media/test/manifest.js -+++ content/media/test/manifest.js -@@ -357,9 +357,9 @@ var gUnseekableTests = [ - { name:"bogus.duh", type:"bogus/duh"} - ]; - // Unfortunately big-buck-bunny-unseekable.mp4 is doesn't play on Windows 7, so --// only include it in the unseekable tests if we're on later versions of Windows. --if (navigator.userAgent.indexOf("Windows") == -1 || -- IsWindows8OrLater()) { -+// only include it in the unseekable tests if we're on later versions of Windows. -+// This test actually only passes on win8 at the moment. -+if (navigator.userAgent.indexOf("Windows") != -1 && IsWindows8OrLater()) { - gUnseekableTests = gUnseekableTests.concat([ - { name:"big-buck-bunny-unseekable.mp4", type:"video/mp4" } - ]); Modified: trunk/www/firefox/files/patch-bug847568 ============================================================================== --- trunk/www/firefox/files/patch-bug847568 Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/www/firefox/files/patch-bug847568 Tue Apr 29 07:51:23 2014 (r1581) @@ -86,21 +86,20 @@ dnl Check for pixman and cairo dnl ======================================================== -diff --git content/base/src/Makefile.in content/base/src/Makefile.in -index a618096..596901a 100644 ---- content/base/src/Makefile.in -+++ content/base/src/Makefile.in -@@ -5,6 +5,10 @@ - - include $(topsrcdir)/config/rules.mk - -+ifdef MOZ_NATIVE_HARFBUZZ -+nsContentUtils.$(OBJ_SUFFIX): CXXFLAGS+=$(MOZ_HARFBUZZ_CFLAGS) -+endif -+ - # gcc requires -msse2 for this file since it uses SSE2 intrinsics. (See bug - # 585538 comment 12.) - ifneq (,$(INTEL_ARCHITECTURE)) +diff --git content/base/src/moz.build content/base/src/moz.build +index d4f6380..0ee55df 100644 +--- content/base/src/moz.build ++++ content/base/src/moz.build +@@ -179,6 +179,9 @@ SOURCES += [ + 'nsObjectLoadingContent.cpp', + ] + ++if CONFIG['MOZ_NATIVE_HARFBUZZ']: ++ SOURCES['nsContentUtils.cpp'].flags += [CONFIG['MOZ_HARFBUZZ_CFLAGS']] ++ + EXTRA_COMPONENTS += [ + 'contentAreaDropListener.js', + 'contentAreaDropListener.manifest', diff --git gfx/moz.build gfx/moz.build index 519aa46..6929751 100644 --- gfx/moz.build Deleted: trunk/www/firefox/files/patch-bug973744 ============================================================================== --- trunk/www/firefox/files/patch-bug973744 Tue Apr 29 07:51:23 2014 (r1580) +++ /dev/null 00:00:00 1970 (deleted) @@ -1,38 +0,0 @@ -commit 2506904 -Author: Alessandro Decina <alessandro.d@gmail.com> -Date: Wed Feb 19 11:30:09 2014 -0500 - - Bug 973744 - Remove matroska seek hack in the gstreamer media backend. r=edwin ---- - content/media/gstreamer/GStreamerReader.cpp | 21 --------------------- - 1 file changed, 21 deletions(-) - -diff --git content/media/gstreamer/GStreamerReader.cpp content/media/gstreamer/GStreamerReader.cpp -index e21ffdd..82dadeb 100644 ---- content/media/gstreamer/GStreamerReader.cpp -+++ content/media/gstreamer/GStreamerReader.cpp -@@ -381,24 +381,6 @@ nsresult GStreamerReader::ReadMetadata(MediaInfo* aInfo, - /* we couldn't get this to play */ - return ret; - -- /* FIXME: workaround for a bug in matroskademux. This seek makes matroskademux -- * parse the index */ -- LOG(PR_LOG_DEBUG, "doing matroskademux seek hack"); -- if (gst_element_seek_simple(mPlayBin, GST_FORMAT_TIME, -- GST_SEEK_FLAG_FLUSH, 0)) { -- /* after a seek we need to wait again for ASYNC_DONE */ -- message = gst_bus_timed_pop_filtered(mBus, 5 * GST_SECOND, -- (GstMessageType)(GST_MESSAGE_ASYNC_DONE | GST_MESSAGE_ERROR)); -- LOG(PR_LOG_DEBUG, "matroskademux seek hack done"); -- if (GST_MESSAGE_TYPE(message) != GST_MESSAGE_ASYNC_DONE) { -- gst_element_set_state(mPlayBin, GST_STATE_NULL); -- gst_message_unref(message); -- return NS_ERROR_FAILURE; -- } -- } else { -- LOG(PR_LOG_DEBUG, "matroskademux seek hack failed (non fatal)"); -- } -- - /* report the duration */ - gint64 duration; - Deleted: trunk/www/firefox/files/patch-bug975634 ============================================================================== --- trunk/www/firefox/files/patch-bug975634 Tue Apr 29 07:51:23 2014 (r1580) +++ /dev/null 00:00:00 1970 (deleted) @@ -1,63 +0,0 @@ -diff --git configure.in configure.in -index 0d9236a..0447104 100644 ---- configure.in -+++ configure.in -@@ -8670,6 +8670,20 @@ fi - AC_SUBST(MOZ_EM_DEBUG) - - if test -n "$COMPILE_ENVIRONMENT"; then -+AC_MSG_CHECKING([for posix_fadvise]) -+AC_TRY_LINK([#define _XOPEN_SOURCE 600 -+ #include <fcntl.h>], -+ [posix_fadvise(0, 0, 0, 0);], -+ [ac_cv___posix_fadvise=true], -+ [ac_cv___posix_fadvise=false]) -+ -+if test "$ac_cv___posix_fadvise" = true ; then -+ AC_DEFINE(HAVE_POSIX_FADVISE) -+ AC_MSG_RESULT(yes) -+else -+ AC_MSG_RESULT(no) -+fi -+ - AC_MSG_CHECKING([for posix_fallocate]) - AC_TRY_LINK([#define _XOPEN_SOURCE 600 - #include <fcntl.h>], -diff --git js/src/configure.in js/src/configure.in -index da9767c..352ba14 100644 ---- js/src/configure.in -+++ js/src/configure.in -@@ -4025,6 +4025,20 @@ AC_SUBST(CXX_VERSION) - AC_SUBST(MSMANIFEST_TOOL) - AC_SUBST(MOZ_LINKER) - -+AC_MSG_CHECKING([for posix_fadvise]) -+AC_TRY_LINK([#define _XOPEN_SOURCE 600 -+ #include <fcntl.h>], -+ [posix_fadvise(0, 0, 0, 0);], -+ [ac_cv___posix_fadvise=true], -+ [ac_cv___posix_fadvise=false]) -+ -+if test "$ac_cv___posix_fadvise" = true ; then -+ AC_DEFINE(HAVE_POSIX_FADVISE) -+ AC_MSG_RESULT(yes) -+else -+ AC_MSG_RESULT(no) -+fi -+ - AC_MSG_CHECKING([for posix_fallocate]) - AC_TRY_LINK([#define _XOPEN_SOURCE 600 - #include <fcntl.h>], -diff --git xpcom/io/nsLocalFileUnix.cpp xpcom/io/nsLocalFileUnix.cpp -index bacf06c..0e46e4a 100644 ---- xpcom/io/nsLocalFileUnix.cpp -+++ xpcom/io/nsLocalFileUnix.cpp -@@ -382,7 +382,7 @@ nsLocalFile::OpenNSPRFileDesc(int32_t flags, int32_t mode, PRFileDesc **_retval) - PR_Delete(mPath.get()); - } - --#if defined(LINUX) && !defined(ANDROID) -+#if defined(HAVE_POSIX_FADVISE) - if (flags & OS_READAHEAD) { - posix_fadvise(PR_FileDesc2NativeHandle(*_retval), 0, 0, - POSIX_FADV_SEQUENTIAL); Deleted: trunk/www/firefox/files/patch-bug977457 ============================================================================== --- trunk/www/firefox/files/patch-bug977457 Tue Apr 29 07:51:23 2014 (r1580) +++ /dev/null 00:00:00 1970 (deleted) @@ -1,27 +0,0 @@ -diff --git xpcom/base/nsStackWalk.cpp xpcom/base/nsStackWalk.cpp -index bb0e15b..7641267 100644 ---- xpcom/base/nsStackWalk.cpp -+++ xpcom/base/nsStackWalk.cpp -@@ -23,6 +23,12 @@ struct CriticalAddress { - }; - static CriticalAddress gCriticalAddress; - -+// for _Unwind_Backtrace from libcxxrt or libunwind -+// cxxabi.h from libcxxrt implicitly includes unwind.h first -+#if defined(HAVE__UNWIND_BACKTRACE) && !defined(_GNU_SOURCE) -+#define _GNU_SOURCE -+#endif -+ - #if defined(HAVE_DLOPEN) || defined(XP_MACOSX) - #include <dlfcn.h> - #endif -@@ -1222,9 +1228,6 @@ NS_StackWalk(NS_WalkStackCallback aCallback, uint32_t aSkipFrames, - #elif defined(HAVE__UNWIND_BACKTRACE) - - // libgcc_s.so symbols _Unwind_Backtrace@@GCC_3.3 and _Unwind_GetIP@@GCC_3.0 --#ifndef _GNU_SOURCE --#define _GNU_SOURCE --#endif - #include <unwind.h> - - struct unwind_info { Added: trunk/www/firefox/files/patch-bug981348 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/www/firefox/files/patch-bug981348 Tue Apr 29 07:51:23 2014 (r1581) @@ -0,0 +1,41 @@ +diff --git dom/system/OSFileConstants.cpp dom/system/OSFileConstants.cpp +index 4b21361..cb3be32 100644 +--- dom/system/OSFileConstants.cpp ++++ dom/system/OSFileConstants.cpp +@@ -596,7 +596,7 @@ static const dom::ConstantSpec gLibcProperties[] = + + { "OSFILE_SIZEOF_STATVFS", INT_TO_JSVAL(sizeof (struct statvfs)) }, + +- { "OSFILE_OFFSETOF_STATVFS_F_BSIZE", INT_TO_JSVAL(offsetof (struct statvfs, f_bsize)) }, ++ { "OSFILE_OFFSETOF_STATVFS_F_FRSIZE", INT_TO_JSVAL(offsetof (struct statvfs, f_frsize)) }, + { "OSFILE_OFFSETOF_STATVFS_F_BAVAIL", INT_TO_JSVAL(offsetof (struct statvfs, f_bavail)) }, + + #endif // defined(XP_UNIX) +diff --git toolkit/components/osfile/modules/osfile_unix_back.jsm toolkit/components/osfile/modules/osfile_unix_back.jsm +index b59fca4..0cf220b 100644 +--- toolkit/components/osfile/modules/osfile_unix_back.jsm ++++ toolkit/components/osfile/modules/osfile_unix_back.jsm +@@ -228,8 +228,8 @@ + let statvfs = new SharedAll.HollowStructure("statvfs", + Const.OSFILE_SIZEOF_STATVFS); + +- statvfs.add_field_at(Const.OSFILE_OFFSETOF_STATVFS_F_BSIZE, +- "f_bsize", Type.unsigned_long.implementation); ++ statvfs.add_field_at(Const.OSFILE_OFFSETOF_STATVFS_F_FRSIZE, ++ "f_frsize", Type.unsigned_long.implementation); + statvfs.add_field_at(Const.OSFILE_OFFSETOF_STATVFS_F_BAVAIL, + "f_bavail", Type.fsblkcnt_t.implementation); + +diff --git toolkit/components/osfile/modules/osfile_unix_front.jsm toolkit/components/osfile/modules/osfile_unix_front.jsm +index 99e5e9b..de642c5 100644 +--- toolkit/components/osfile/modules/osfile_unix_front.jsm ++++ toolkit/components/osfile/modules/osfile_unix_front.jsm +@@ -373,7 +373,7 @@ + throw_on_negative("statvfs", UnixFile.statvfs(sourcePath, fileSystemInfoPtr)); + + let bytes = new Type.uint64_t.implementation( +- fileSystemInfo.f_bsize * fileSystemInfo.f_bavail); ++ fileSystemInfo.f_frsize * fileSystemInfo.f_bavail); + + return bytes.value; + }; Added: trunk/www/firefox/files/patch-bug983957 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/www/firefox/files/patch-bug983957 Tue Apr 29 07:51:23 2014 (r1581) @@ -0,0 +1,12 @@ +--- xpcom/build/IOInterposer.h~ ++++ xpcom/build/IOInterposer.h +@@ -263,9 +263,7 @@ class IOInterposerInit + public: + IOInterposerInit() + { +-#if defined(MOZ_ENABLE_PROFILER_SPS) + IOInterposer::Init(); +-#endif + } + + // No destructor needed at the moment -- this stuff stays active for the Deleted: trunk/www/firefox/files/patch-bug985848 ============================================================================== --- trunk/www/firefox/files/patch-bug985848 Tue Apr 29 07:51:23 2014 (r1580) +++ /dev/null 00:00:00 1970 (deleted) @@ -1,22 +0,0 @@ ---- media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc -+++ media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc -@@ -19,7 +19,7 @@ - #include <stdlib.h> - - //v4l includes --#if defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__) -+#if defined(__NetBSD__) || defined(__OpenBSD__) - #include <sys/videoio.h> - #elif defined(__sun) - #include <sys/videodev2.h> ---- media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc -+++ media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc -@@ -18,7 +18,7 @@ - #include <string.h> - - //v4l includes --#if defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__) -+#if defined(__NetBSD__) || defined(__OpenBSD__) - #include <sys/videoio.h> - #elif defined(__sun) - #include <sys/videodev2.h> Deleted: trunk/www/firefox/files/patch-bug989112 ============================================================================== --- trunk/www/firefox/files/patch-bug989112 Tue Apr 29 07:51:23 2014 (r1580) +++ /dev/null 00:00:00 1970 (deleted) @@ -1,10 +0,0 @@ ---- content/media/gstreamer/GStreamerFunctionList.h~ -+++ content/media/gstreamer/GStreamerFunctionList.h -@@ -122,6 +122,7 @@ GST_FUNC(LIBGSTREAMER, gst_buffer_set_size) - GST_FUNC(LIBGSTREAMER, gst_buffer_unmap) - GST_FUNC(LIBGSTREAMER, gst_element_factory_get_metadata) - GST_FUNC(LIBGSTREAMER, gst_event_parse_segment) -+GST_FUNC(LIBGSTREAMER, gst_event_type_get_name) - GST_FUNC(LIBGSTREAMER, gst_memory_init) - GST_FUNC(LIBGSTREAMER, gst_memory_map) - GST_FUNC(LIBGSTREAMER, gst_memory_unmap) Modified: trunk/www/firefox/files/patch-clang34-disable-stdcall ============================================================================== --- trunk/www/firefox/files/patch-clang34-disable-stdcall Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/www/firefox/files/patch-clang34-disable-stdcall Tue Apr 29 07:51:23 2014 (r1581) @@ -6,8 +6,8 @@ * NS_HIDDEN_(int) NS_FASTCALL func2(char *foo); */ --#if defined(__i386__) && defined(__GNUC__) && !defined(XP_OS2) -+#if defined(__i386__) && defined(__GNUC__) && !defined(XP_OS2) && !(defined(__clang__) && __clang_major__ == 3 && __clang_minor__ == 4 && __clang_patchlevel__ == 0) +-#if defined(__i386__) && defined(__GNUC__) ++#if defined(__i386__) && defined(__GNUC__) && !(defined(__clang__) && __clang_major__ == 3 && __clang_minor__ == 4 && __clang_patchlevel__ == 0) #define NS_FASTCALL __attribute__ ((regparm (3), stdcall)) #define NS_CONSTRUCTOR_FASTCALL __attribute__ ((regparm (3), stdcall)) #elif defined(XP_WIN) && !defined(_WIN64) Modified: trunk/www/firefox/files/patch-ipc-chromium-Makefile.in ============================================================================== --- trunk/www/firefox/files/patch-ipc-chromium-Makefile.in Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/www/firefox/files/patch-ipc-chromium-Makefile.in Tue Apr 29 07:51:23 2014 (r1581) @@ -1,13 +1,11 @@ --- ipc/chromium/Makefile.in~ +++ ipc/chromium/Makefile.in -@@ -55,9 +60,7 @@ vpath %.c \ - $(srcdir)/src/third_party/libevent \ - $(NULL) - else # } else { --# message_pump_libevent.cc includes third_party/libevent/event.h, --# which we put in $(DIST), see export rule below --LOCAL_INCLUDES += -I$(DIST) -+LOCAL_INCLUDES += $(filter %/compat, $(MOZ_LIBEVENT_CFLAGS)) - endif # } +@@ -28,6 +28,8 @@ include $(topsrcdir)/config/rules.mk + + ifdef MOZ_NATIVE_LIBEVENT # { - vpath %.cc \ ++OS_CPPFLAGS += $(filter %/compat, $(MOZ_LIBEVENT_CFLAGS)) ++ + export-preqs = \ + $(call mkdir_deps,$(CURDIR)/third_party/libevent) \ + $(NULL) Deleted: trunk/www/firefox/files/patch-ipc-chromium-src-base-message_pump_libevent.cc ============================================================================== --- trunk/www/firefox/files/patch-ipc-chromium-src-base-message_pump_libevent.cc Tue Apr 29 07:51:23 2014 (r1580) +++ /dev/null 00:00:00 1970 (deleted) @@ -1,11 +0,0 @@ ---- ipc/chromium/src/base/message_pump_libevent.cc~ -+++ ipc/chromium/src/base/message_pump_libevent.cc -@@ -16,7 +16,7 @@ - #include "base/scoped_ptr.h" - #include "base/time.h" - #include "nsDependentSubstring.h" --#include "third_party/libevent/event.h" -+#include "event.h" - - // Lifecycle of struct event - // Libevent uses two main data structures: Modified: trunk/www/firefox/files/patch-z-bug517422 ============================================================================== --- trunk/www/firefox/files/patch-z-bug517422 Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/www/firefox/files/patch-z-bug517422 Tue Apr 29 07:51:23 2014 (r1581) @@ -22,11 +22,17 @@ index f67c5c7..eb909ce 100644 --- config/external/moz.build +++ config/external/moz.build -@@ -15,13 +15,13 @@ if CONFIG['MOZ_UPDATER']: +@@ -15,13 +15,19 @@ if CONFIG['MOZ_UPDATER']: if not CONFIG['MOZ_NATIVE_BZ2']: external_dirs += ['modules/libbz2'] -if CONFIG['MOZ_VORBIS']: ++if not CONFIG['MOZ_NATIVE_OGG']: ++ external_dirs += ['media/libogg'] ++ ++if not CONFIG['MOZ_NATIVE_THEORA']: ++ external_dirs += ['media/libtheora'] ++ +if CONFIG['MOZ_VORBIS'] and not CONFIG['MOZ_NATIVE_VORBIS']: external_dirs += ['media/libvorbis'] @@ -39,16 +45,7 @@ external_dirs += ['media/libopus'] if CONFIG['MOZ_WEBM']: -@@ -34,16 +34,23 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ - external_dirs += ['media/libvpx'] - - if CONFIG['MOZ_OGG']: -- external_dirs += ['media/libogg', 'media/libtheora'] -+ if not CONFIG['MOZ_NATIVE_OGG']: -+ external_dirs += ['media/libogg'] -+ if not CONFIG['MOZ_NATIVE_THEORA']: -+ external_dirs += ['media/libtheora'] - +@@ -36,13 +42,15 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ_NATIVE_LIBVPX']: if not CONFIG['MOZ_NATIVE_PNG']: external_dirs += ['media/libpng'] @@ -61,6 +58,8 @@ external_dirs += [ 'media/kiss_fft', 'media/libcubeb', +- 'media/libogg', +- 'media/libtheora', - 'media/libspeex_resampler', - 'media/libsoundtouch', ] @@ -122,7 +121,7 @@ index 87db361..7947626 100644 --- configure.in +++ configure.in -@@ -5211,6 +5211,57 @@ if test "${ac_cv_c_attribute_aligned}" != "0"; then +@@ -5211,6 +5211,63 @@ if test "${ac_cv_c_attribute_aligned}" != "0"; then fi dnl ======================================================== @@ -136,6 +135,12 @@ + +if test -n "$MOZ_NATIVE_OGG"; then + PKG_CHECK_MODULES(MOZ_OGG, ogg >= 1.2.1) ++ ++ _SAVE_LIBS=$LIBS ++ LIBS="$LIBS $MOZ_OGG_LIBS" ++ AC_CHECK_FUNC(ogg_set_mem_functions, [], ++ [AC_DEFINE(MOZ_OGG_NO_MEM_REPORTING)]) ++ LIBS=$_SAVE_LIBS +fi + +AC_SUBST(MOZ_NATIVE_OGG) @@ -257,30 +262,19 @@ dnl = Disable VP8 decoder support dnl ======================================================== MOZ_ARG_DISABLE_BOOL(webm, -diff --git content/media/AudioStream.cpp content/media/AudioStream.cpp -index 88c8aa6..6b03288 100644 ---- content/media/AudioStream.cpp -+++ content/media/AudioStream.cpp -@@ -13,7 +13,6 @@ - #include "mozilla/Mutex.h" - #include <algorithm> - #include "mozilla/Preferences.h" --#include "soundtouch/SoundTouch.h" - #include "Latency.h" - - namespace mozilla { diff --git content/media/AudioStream.h content/media/AudioStream.h index 085676d..00c54fb 100644 --- content/media/AudioStream.h +++ content/media/AudioStream.h -@@ -15,6 +15,7 @@ - #include "mozilla/StaticMutex.h" +@@ -26,7 +26,7 @@ public: + }; - #include "cubeb/cubeb.h" -+#include "soundtouch/SoundTouch.h" + namespace soundtouch { +-class SoundTouch; ++class MOZ_IMPORT_API SoundTouch; + } - template <> - class nsAutoRefTraits<cubeb_stream> : public nsPointerRefTraits<cubeb_stream> + namespace mozilla { diff --git content/media/Makefile.in content/media/Makefile.in index fd34449..c6c42c8 100644 --- content/media/Makefile.in @@ -447,3 +441,31 @@ ifdef MOZ_NATIVE_LIBEVENT EXTRA_DSO_LDOPTS += $(MOZ_LIBEVENT_LIBS) endif +diff --git xpcom/build/nsXPComInit.cpp xpcom/build/nsXPComInit.cpp +index 2cf281e..6d7af0e 100644 +--- xpcom/build/nsXPComInit.cpp ++++ xpcom/build/nsXPComInit.cpp +@@ -130,7 +130,9 @@ extern nsresult nsStringInputStreamConstructor(nsISupports *, REFNSIID, void **) + #include "mozilla/VisualEventTracer.h" + #endif + ++#ifndef MOZ_OGG_NO_MEM_REPORTING + #include "ogg/ogg.h" ++#endif + #if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING) + #include "vpx_mem/vpx_mem.h" + #endif +@@ -571,11 +573,13 @@ NS_InitXPCOM2(nsIServiceManager* *result, + // this oddness. + mozilla::SetICUMemoryFunctions(); + ++#ifndef MOZ_OGG_NO_MEM_REPORTING + // Do the same for libogg. + ogg_set_mem_functions(OggReporter::CountingMalloc, + OggReporter::CountingCalloc, + OggReporter::CountingRealloc, + OggReporter::CountingFree); ++#endif + + #if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING) + // And for VPX. Modified: trunk/www/linux-firefox/Makefile ============================================================================== --- trunk/www/linux-firefox/Makefile Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/www/linux-firefox/Makefile Tue Apr 29 07:51:23 2014 (r1581) @@ -2,7 +2,7 @@ # $FreeBSD: head/www/linux-firefox/Makefile 336446 2013-12-14 13:42:06Z flo $ PORTNAME= firefox -DISTVERSION= 29.0 +DISTVERSION= 30.0b1 PORTEPOCH= 1 CATEGORIES= www ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/linux-i686/en-US Modified: trunk/www/linux-firefox/distinfo ============================================================================== --- trunk/www/linux-firefox/distinfo Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/www/linux-firefox/distinfo Tue Apr 29 07:51:23 2014 (r1581) @@ -1,5 +1,5 @@ -SHA256 (firefox-29.0.tar.bz2) = e616abb6854480a33c47b902d1ba277717a855ead3bff560025a25a7f4b1da6d -SIZE (firefox-29.0.tar.bz2) = 36330381 +SHA256 (firefox-30.0b1.tar.bz2) = 5064ce5b40f4bdd4777b0a4f04561b28cea76517a0a34190775e4e454467856f +SIZE (firefox-30.0b1.tar.bz2) = 37417926 SHA256 (glib2-2.22.2-2.fc12.i686.rpm) = e3b459c245ec14e7248e9de4b506963a4773407f3e58835db5070d0ed02ecc99 SIZE (glib2-2.22.2-2.fc12.i686.rpm) = 1162908 SHA256 (gtk2-2.18.3-19.fc12.i686.rpm) = aea9cf7ffe9c8dae0faa2bf3d2aa1b2117c55dce03da72dcce8c268279ec0a4b Modified: trunk/www/linux-seamonkey/Makefile ============================================================================== --- trunk/www/linux-seamonkey/Makefile Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/www/linux-seamonkey/Makefile Tue Apr 29 07:51:23 2014 (r1581) @@ -2,7 +2,7 @@ # $FreeBSD: head/www/linux-seamonkey/Makefile 336446 2013-12-14 13:42:06Z flo $ PORTNAME= seamonkey -DISTVERSION= 2.26b1 +DISTVERSION= 2.26 CATEGORIES= www mail news editors irc ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/linux-i686/en-US Modified: trunk/www/linux-seamonkey/distinfo ============================================================================== --- trunk/www/linux-seamonkey/distinfo Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/www/linux-seamonkey/distinfo Tue Apr 29 07:51:23 2014 (r1581) @@ -1,5 +1,5 @@ -SHA256 (seamonkey-2.26b1.tar.bz2) = 5370c0429e2d419d2f12c2859bae1f4add7828d79bb02e50628d970e1e74302c -SIZE (seamonkey-2.26b1.tar.bz2) = 30886722 +SHA256 (seamonkey-2.26.tar.bz2) = 4b306933c629bfaa0f6f4a8e5db08a47055061e3db87010b4c1e058d4ee4e0b2 +SIZE (seamonkey-2.26.tar.bz2) = 30916325 SHA256 (glib2-2.22.2-2.fc12.i686.rpm) = e3b459c245ec14e7248e9de4b506963a4773407f3e58835db5070d0ed02ecc99 SIZE (glib2-2.22.2-2.fc12.i686.rpm) = 1162908 SHA256 (gtk2-2.18.3-19.fc12.i686.rpm) = aea9cf7ffe9c8dae0faa2bf3d2aa1b2117c55dce03da72dcce8c268279ec0a4b Modified: trunk/www/seamonkey-i18n/Makefile ============================================================================== --- trunk/www/seamonkey-i18n/Makefile Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/www/seamonkey-i18n/Makefile Tue Apr 29 07:51:23 2014 (r1581) @@ -2,7 +2,7 @@ # $FreeBSD: head/www/seamonkey-i18n/Makefile 350690 2014-04-09 12:38:45Z bapt $ PORTNAME= seamonkey-i18n -PORTVERSION= 2.26b1 +PORTVERSION= 2.26 CATEGORIES= www mail news editors irc MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${PORTVERSION}/langpack PKGNAMEPREFIX= Modified: trunk/www/seamonkey-i18n/distinfo ============================================================================== --- trunk/www/seamonkey-i18n/distinfo Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/www/seamonkey-i18n/distinfo Tue Apr 29 07:51:23 2014 (r1581) @@ -1,54 +1,52 @@ -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.be.langpack.xpi) = 2f24052a35bdc3f93e327b29349c65faba834cf3e80784cc79bd29f9d1edddd9 -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.be.langpack.xpi) = 818751 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.ca.langpack.xpi) = 9fdb17d2182e8729e21f9364c1fabba0e23cb574bff944d919057cbf83bd76b4 -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.ca.langpack.xpi) = 816735 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.cs.langpack.xpi) = 9e6d68c1b3c9d0dce983910e51f40eca06ca1dbc2d0045d98015e6e38ecfadf3 -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.cs.langpack.xpi) = 814944 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.de.langpack.xpi) = 358155b9dd590bf513156fd7c1ec4cb41e159363ae9852b1bcbe7493e2c84bda -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.de.langpack.xpi) = 822042 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.en-GB.langpack.xpi) = c0ca3f0868266dbb2a0511475e1614c5c0525430dfbd0b152537e31a59137821 -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.en-GB.langpack.xpi) = 785829 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.en-US.langpack.xpi) = eb0345e71381d4f81caafe9cd26028507caa80ffb095f35399ba6865b16bfba8 -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.en-US.langpack.xpi) = 786788 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.es-AR.langpack.xpi) = 6505da14b20394c59ff5c881cbc13ec25cad659053c7348ed55fd2f64a8b4438 -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.es-AR.langpack.xpi) = 837475 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.es-ES.langpack.xpi) = bce45dbd0f7bd73762c4acca16c30baf6de4e4d2f0cc2d816f93d13c93012c91 -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.es-ES.langpack.xpi) = 815842 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.fi.langpack.xpi) = e47cabefea6ea7ce608db1001c99a7e096afab5522ca9237852da8af068d1ca1 -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.fi.langpack.xpi) = 784387 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.fr.langpack.xpi) = 473790c84af6a2038c0b24b81a41b9fc8df5eddf7fa1a902f338f464377289da -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.fr.langpack.xpi) = 795188 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.gl.langpack.xpi) = 90f394219b887ad80e7e6ea47497e1533dee4a595529b6445e8db5c2afd280a8 -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.gl.langpack.xpi) = 794258 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.hu.langpack.xpi) = 25483d489e9f7c467deaa2c849e9ef2f6659f21d12c6fe866c03fb45296b533a -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.hu.langpack.xpi) = 828526 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.it.langpack.xpi) = 83aa64409d78aa85d10c7dc69b887aa69c531a6cc68111be36d46c78c683b52d -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.it.langpack.xpi) = 728566 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.ja-JP-mac.langpack.xpi) = da1d46f25bd2c62642a7cab3a4ebd285b418328e4a7080ed44e6e6881c67b8a5 -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.ja-JP-mac.langpack.xpi) = 892973 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.ja.langpack.xpi) = 17477e325a987da0127e26e8aa7b63fe75eba429abf13804d342c595cfa38b60 -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.ja.langpack.xpi) = 867575 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.lt.langpack.xpi) = 9e4b8e8874de1e9311a0f50f01e7592c05c366ab370d66094bebc5770b5fadc6 -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.lt.langpack.xpi) = 832068 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.nb-NO.langpack.xpi) = 1cd011fb77b98942e0e085a774d9e13c31befe14d6df1ba44229d5281194705b -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.nb-NO.langpack.xpi) = 808006 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.nl.langpack.xpi) = a688e4cd782e5e32102a257dc12ffbb544ec8a3435b80e8f0bb46be72969e17f -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.nl.langpack.xpi) = 781844 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.pl.langpack.xpi) = db33d8b01d525083035e973be5456863d7acbac63d08dc22620ed125c65c5a27 -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.pl.langpack.xpi) = 855820 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.pt-PT.langpack.xpi) = ebcb8d249e111973fcd23582711ad52030469065669d058ca81f28cc8cd66158 -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.pt-PT.langpack.xpi) = 817865 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.ru.langpack.xpi) = 34bcddeb5f269d05aac57f0a88367a4fe9d9dba92cee019e0bf5011d61247d04 -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.ru.langpack.xpi) = 885692 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.sk.langpack.xpi) = 233349521887b83ff1771b06fb7ba5156f3eefbb5a15987aa34561d8ed3aaf9b -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.sk.langpack.xpi) = 841887 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.sv-SE.langpack.xpi) = c909e50fcbdc04e27b8d09b60b2f78f2aad2a553cc8c310a5b8db68137ce6aef -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.sv-SE.langpack.xpi) = 809829 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.tr.langpack.xpi) = bf390f113dd0ea5837602a2e5b0c382e0a164b60db1cc0be5301b855f1d3e31c -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.tr.langpack.xpi) = 791385 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.uk.langpack.xpi) = 4fdbd403e1de750001a0054f5f5b33e8d890efd5e96aab4a39223ca33b636f98 -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.uk.langpack.xpi) = 853567 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.zh-CN.langpack.xpi) = 3ef22a535047a45961fa3adcb0ffc2bd4b3a3c8ae54f09f46c0158a2df045e47 -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.zh-CN.langpack.xpi) = 818845 -SHA256 (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.zh-TW.langpack.xpi) = ed2cfd40465dd37bf5acefa0b87436a46328faa98ed48876397bdeeb400a953d -SIZE (xpi/seamonkey-i18n-2.26b1/seamonkey-2.26b1.zh-TW.langpack.xpi) = 843195 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.be.langpack.xpi) = bba364903e2cd080a83b4c7b06317ce547fce0463e46cb1ff5241dcd3b0341f7 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.be.langpack.xpi) = 818751 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.ca.langpack.xpi) = 8885d0412bd420b77a831bc28aae685d0962ef840ddb16e380cd07a2f2ef176c +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.ca.langpack.xpi) = 816735 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.cs.langpack.xpi) = cc77420a27f8e0757bcbdd6f8df2be361883ae1c5840e63f63a1386e43bc498c +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.cs.langpack.xpi) = 814944 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.de.langpack.xpi) = 960ce22067f7cd19ec30c1249a588c651785a8989f374e14e8d06de8dce35237 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.de.langpack.xpi) = 822042 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.en-GB.langpack.xpi) = 42aa60112205d55fb9f835baf1a051da97942a950a17fbb37f0aac7cf6f5135e +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.en-GB.langpack.xpi) = 785904 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.en-US.langpack.xpi) = 31b47ea472f6f4293f896355d8d4092ced3094ab001afc3625c33de1dfb4a6e8 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.en-US.langpack.xpi) = 786788 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.es-AR.langpack.xpi) = 70e3502d5578c3d793645c47872c436f92845800f5a74bcea3803b2c5db73dad +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.es-AR.langpack.xpi) = 836833 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.es-ES.langpack.xpi) = 13bdb45b40c8a9b03f3c93aca5d120ce163a9dc263c68d9fa225826bf429c1a0 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.es-ES.langpack.xpi) = 814002 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.fi.langpack.xpi) = f21cd2e898e11039b2909cad62a71e8f4ee769c68c5681d82300f95c9c70c00a +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.fi.langpack.xpi) = 784387 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.fr.langpack.xpi) = 4e892a84852f9d7470c7c7ff4cc6ff8da0cb5bc8e8197d41ca3105ded6d7356d +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.fr.langpack.xpi) = 795188 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.gl.langpack.xpi) = de1db0aefa37fa6ce4ca2ab6ddbd53d4466e48cb435861270266ca0f56e338e0 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.gl.langpack.xpi) = 794258 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.hu.langpack.xpi) = a1c8b084b6b64bb0b992e9a05c6fa49c9a5a48b437e86351b8a2ed1f2997f22c +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.hu.langpack.xpi) = 828526 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.it.langpack.xpi) = 30dde81ae8bf1379caabc0a7e35bee72b8fa9fa052136de333dcbcd7f3ea550a +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.it.langpack.xpi) = 728566 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.ja.langpack.xpi) = 002743784937853e368c31ca5f80056eb50bd91dfa3f791164e388ab66e1e160 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.ja.langpack.xpi) = 867575 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.lt.langpack.xpi) = 5beaf750798ffe4979e31e19dd88721df2819eeb4ac6cfb73388c0acecfb80f3 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.lt.langpack.xpi) = 832068 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.nb-NO.langpack.xpi) = 5559b7554f6683b7ad444af019d7ad75b13795f6669653b3be9c0934d12857a9 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.nb-NO.langpack.xpi) = 805527 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.nl.langpack.xpi) = 794019b24058071a080b6450991fa79ca71a447df7702e6384785895fce18a34 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.nl.langpack.xpi) = 781831 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.pl.langpack.xpi) = fff16b9b77830bf983c49e42516091ec987a9616168d8040598799349b135e1f +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.pl.langpack.xpi) = 855815 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.pt-PT.langpack.xpi) = 35ecbc2df9c90227ce0e46d854237272d019ad4a5c54e459cdf82a601a9d52dd +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.pt-PT.langpack.xpi) = 817865 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.ru.langpack.xpi) = 9c4c665da191538e1e836ecad5b4556f5a9ed4a4db94c4779db537dd2cef1c94 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.ru.langpack.xpi) = 885692 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.sk.langpack.xpi) = dca3c93b1b2131e58483a537961df44a044b80f5cc97fb2628b384f26e973212 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.sk.langpack.xpi) = 841872 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.sv-SE.langpack.xpi) = e55f7d962db49d461b3b2cc2cc93da46da64139164b8d83f2e67df35bbfa2979 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.sv-SE.langpack.xpi) = 809829 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.tr.langpack.xpi) = d4923efdc2d4e3a294b864c1fbb9fe0a9a9d0d3636cb4ebed2e2263fbabbe5fa +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.tr.langpack.xpi) = 791385 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.uk.langpack.xpi) = ebdc37f591c32ddfe8783257c3944b6a44be15a2b10be4298326c187caddda81 +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.uk.langpack.xpi) = 853567 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.zh-CN.langpack.xpi) = 57ab3c518f60627b9cbbe57f5a25b22dace427ec9597d395953104732a5cf0fe +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.zh-CN.langpack.xpi) = 818845 +SHA256 (xpi/seamonkey-i18n-2.26/seamonkey-2.26.zh-TW.langpack.xpi) = 2512be926be2859e16e058977e9dc31d29a3c8b92eefe5a6b3a6f304325cb7fe +SIZE (xpi/seamonkey-i18n-2.26/seamonkey-2.26.zh-TW.langpack.xpi) = 843200 Modified: trunk/www/seamonkey/Makefile ============================================================================== --- trunk/www/seamonkey/Makefile Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/www/seamonkey/Makefile Tue Apr 29 07:51:23 2014 (r1581) @@ -2,7 +2,7 @@ # $FreeBSD: head/www/seamonkey/Makefile 339634 2014-01-13 21:00:02Z rene $ PORTNAME= seamonkey -DISTVERSION= 2.26b1 +DISTVERSION= 2.26 CATEGORIES?= www mail news editors irc ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \ https://ftp.mozilla.org/pub/mozilla.org/${PORTNAME}/candidates/${DISTVERSION}-candidates/build1/source/ @@ -80,7 +80,7 @@ .include <bsd.port.pre.mk> -WRKSRC= ${WRKDIR}/comm-beta +WRKSRC= ${WRKDIR}/comm-release MOZSRC:= ${WRKSRC}/mozilla XPI_LIBDIR= ${PREFIX}/lib/xpi Modified: trunk/www/seamonkey/distinfo ============================================================================== --- trunk/www/seamonkey/distinfo Mon Apr 28 14:11:55 2014 (r1580) +++ trunk/www/seamonkey/distinfo Tue Apr 29 07:51:23 2014 (r1581) @@ -1,4 +1,4 @@ -SHA256 (seamonkey-2.26b1.source.tar.bz2) = 0ed2814caf20ed8dab6d67f4730123ce5e8a21a4b4dc3075d92ef78d52afc5ad -SIZE (seamonkey-2.26b1.source.tar.bz2) = 165504914 +SHA256 (seamonkey-2.26.source.tar.bz2) = 985262d39f38fc20d307e810c371c9f581f7c55a66cfabd6b5561c236116b874 +SIZE (seamonkey-2.26.source.tar.bz2) = 165548355 SHA256 (enigmail-1.6.1_pre20140112.tar.xz) = 2d89a9186c3ccfc9397c933c6f63c0518224fea0096d7a292dba3765de088149 SIZE (enigmail-1.6.1_pre20140112.tar.xz) = 916028
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201404290751.s3T7pNNX054920>