diff options
author | Florian Smeets <flo@FreeBSD.org> | 2013-09-18 22:40:57 +0000 |
---|---|---|
committer | Florian Smeets <flo@FreeBSD.org> | 2013-09-18 22:40:57 +0000 |
commit | ec4fcd4b2ae992fc8b3cedac4e53df84bbdf643d (patch) | |
tree | 424e8968903e2637d7f62a6c7e33ecfdbabacec0 /www | |
parent | d01b11f6fc0a1cbcbef50bc975daad971580fe24 (diff) | |
download | ports-ec4fcd4b2ae992fc8b3cedac4e53df84bbdf643d.tar.gz ports-ec4fcd4b2ae992fc8b3cedac4e53df84bbdf643d.zip |
Notes
Diffstat (limited to 'www')
81 files changed, 3252 insertions, 4714 deletions
diff --git a/www/firefox-esr-i18n/Makefile b/www/firefox-esr-i18n/Makefile index f8c9d961faa1..1784d38b6767 100644 --- a/www/firefox-esr-i18n/Makefile +++ b/www/firefox-esr-i18n/Makefile @@ -1,11 +1,12 @@ # Created by: Andrew Pantyukhin <infofarmer@FreeBSD.org> # $FreeBSD$ -PORTNAME= firefox-i18n -PORTVERSION= 17.0.8 +PORTNAME= firefox +PORTVERSION= 17.0.9 CATEGORIES= www MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${PORTVERSION}esr/linux-i686/xpi PKGNAMEPREFIX= +PKGNAMESUFFIX= -esr-i18n DISTFILES= ${FIREFOX_I18N_:S/$/.xpi/} DIST_SUBDIR= xpi/${DISTNAME} @@ -16,7 +17,6 @@ EXTRACT_DEPENDS= zip:${PORTSDIR}/archivers/zip USE_FIREFOX= 17 USE_XPI= firefox linux-firefox -LATEST_LINK= firefox-esr-i18n USE_SUBMAKE= yes diff --git a/www/firefox-esr-i18n/distinfo b/www/firefox-esr-i18n/distinfo index 1037efe9c2f9..de459fe91a72 100644 --- a/www/firefox-esr-i18n/distinfo +++ b/www/firefox-esr-i18n/distinfo @@ -1,164 +1,164 @@ -SHA256 (xpi/firefox-i18n-17.0.8/af.xpi) = b230ec6216b66cd4ebb562f6dba8d7d83450e24cd9fcee8f935984ba18af8101 -SIZE (xpi/firefox-i18n-17.0.8/af.xpi) = 281145 -SHA256 (xpi/firefox-i18n-17.0.8/ak.xpi) = ad19c1528c0655919be353b9cdd48341783b74ab7a5f3164492b986d4c656e86 -SIZE (xpi/firefox-i18n-17.0.8/ak.xpi) = 282976 -SHA256 (xpi/firefox-i18n-17.0.8/ar.xpi) = d231ff048e817b50c2f70934b7f4ad166b3a90098a0b6d64ba99eda9823342cd -SIZE (xpi/firefox-i18n-17.0.8/ar.xpi) = 311506 -SHA256 (xpi/firefox-i18n-17.0.8/ast.xpi) = 30415f6d08bf4371ce81ebe4be53a15e10f4481e08fab8af684b7d61401f784a -SIZE (xpi/firefox-i18n-17.0.8/ast.xpi) = 264122 -SHA256 (xpi/firefox-i18n-17.0.8/be.xpi) = 9a82182e59950ed11f867e6595f3ba17d1cb695196eeb51b30e76215852aa4da -SIZE (xpi/firefox-i18n-17.0.8/be.xpi) = 273411 -SHA256 (xpi/firefox-i18n-17.0.8/bg.xpi) = 4e6de543f17f626092badac19cb2025951f414592b4cecfd958fd0cf38a35ee6 -SIZE (xpi/firefox-i18n-17.0.8/bg.xpi) = 327260 -SHA256 (xpi/firefox-i18n-17.0.8/bn-BD.xpi) = e441286a34f177c757209447191b4b0e03cd1f2a9913aad8037b93136e8709c8 -SIZE (xpi/firefox-i18n-17.0.8/bn-BD.xpi) = 339303 -SHA256 (xpi/firefox-i18n-17.0.8/bn-IN.xpi) = d7e1858997060d73dc0636d96a42c6c5225995cd3517a6bf99b31c19a8d93408 -SIZE (xpi/firefox-i18n-17.0.8/bn-IN.xpi) = 373020 -SHA256 (xpi/firefox-i18n-17.0.8/br.xpi) = dc76c59ee7ea381ebba96d751ab1c13e61ece1621a9ab0ba1bab1ac762d6bc08 -SIZE (xpi/firefox-i18n-17.0.8/br.xpi) = 291582 -SHA256 (xpi/firefox-i18n-17.0.8/bs.xpi) = cd017af4a9bfd7b1d83bf6963b33c3f8297c0c52ce2c4b114f0022cc6ed275a8 -SIZE (xpi/firefox-i18n-17.0.8/bs.xpi) = 292222 -SHA256 (xpi/firefox-i18n-17.0.8/ca.xpi) = 466e188e66115d29d7e58d59243c9bfc40b0a65d001e04565a93b9d8e405db32 -SIZE (xpi/firefox-i18n-17.0.8/ca.xpi) = 293531 -SHA256 (xpi/firefox-i18n-17.0.8/cs.xpi) = 812cb191176fde28282e97ab788279b06d89b10ca1fff216f87338057774db6f -SIZE (xpi/firefox-i18n-17.0.8/cs.xpi) = 294132 -SHA256 (xpi/firefox-i18n-17.0.8/cy.xpi) = 63b256f0adc1106f3284b46844409d81a7aed6c8247783e01e80578ab198486c -SIZE (xpi/firefox-i18n-17.0.8/cy.xpi) = 284867 -SHA256 (xpi/firefox-i18n-17.0.8/da.xpi) = 051443a3f523907feea4a28f5b33642f0255561223ed0239a9ad16ea1825bfa7 -SIZE (xpi/firefox-i18n-17.0.8/da.xpi) = 282668 -SHA256 (xpi/firefox-i18n-17.0.8/de.xpi) = 91ace69f197ea68091cb1ffaf0f02b6f26786c2f057c002ce7a37664f32283ec -SIZE (xpi/firefox-i18n-17.0.8/de.xpi) = 270383 -SHA256 (xpi/firefox-i18n-17.0.8/el.xpi) = 468f0d3c3a7df86fc5797c7153f87fbee0e19909e57a2fe5da5585dbd2779980 -SIZE (xpi/firefox-i18n-17.0.8/el.xpi) = 311652 -SHA256 (xpi/firefox-i18n-17.0.8/en-GB.xpi) = 416064538e1bc74c5489e7d4dbddcf334d8a6c7284a6f17066388a68bcbb4fac -SIZE (xpi/firefox-i18n-17.0.8/en-GB.xpi) = 272103 -SHA256 (xpi/firefox-i18n-17.0.8/en-US.xpi) = 82fa43a711d466ae618212e720718e0480dde2f63319b985b0bce673415a58da -SIZE (xpi/firefox-i18n-17.0.8/en-US.xpi) = 272155 -SHA256 (xpi/firefox-i18n-17.0.8/en-ZA.xpi) = adcda2ac9ea782d84faad11e138dc71b60558f2ab1cce71e80b9081bb0fb00f0 -SIZE (xpi/firefox-i18n-17.0.8/en-ZA.xpi) = 272934 -SHA256 (xpi/firefox-i18n-17.0.8/eo.xpi) = 3c1cdc4caef2e5c670b271d2ef7eb704256db883083b58ac0697deffe8ce708f -SIZE (xpi/firefox-i18n-17.0.8/eo.xpi) = 284799 -SHA256 (xpi/firefox-i18n-17.0.8/es-AR.xpi) = 254e8cdf8c06e180578b2d9f353fbb64c0825560bd0bf882fb42f7f8c03e5072 -SIZE (xpi/firefox-i18n-17.0.8/es-AR.xpi) = 289238 -SHA256 (xpi/firefox-i18n-17.0.8/es-CL.xpi) = 3334e3a1c783235be7d48a30fa79476030eccebda6ccf0034eaa7d85a53d3eec -SIZE (xpi/firefox-i18n-17.0.8/es-CL.xpi) = 296877 -SHA256 (xpi/firefox-i18n-17.0.8/es-ES.xpi) = 03a4d82e6e104329b78d6fde6285b1d0f274ac1dc62e3139a1a44121e2e4824c -SIZE (xpi/firefox-i18n-17.0.8/es-ES.xpi) = 242184 -SHA256 (xpi/firefox-i18n-17.0.8/es-MX.xpi) = ea49b40abcc36a4a32fae739e39b1700bf172b5dddc14919592bbd1b6e1db3a5 -SIZE (xpi/firefox-i18n-17.0.8/es-MX.xpi) = 247970 -SHA256 (xpi/firefox-i18n-17.0.8/et.xpi) = f8b40208cecbe5423e072f0063f43d85358f47c2535e837b0c3ca8258ec71cfb -SIZE (xpi/firefox-i18n-17.0.8/et.xpi) = 284693 -SHA256 (xpi/firefox-i18n-17.0.8/eu.xpi) = 08b98652a8523d6c7db09d8450f25136d778f9917b26192672d454d5c1e6c752 -SIZE (xpi/firefox-i18n-17.0.8/eu.xpi) = 284226 -SHA256 (xpi/firefox-i18n-17.0.8/fa.xpi) = 8fa06ed42c935fc4032a7ecf3efcf9a4604bcea06239546c3ff0e28fcbf4406c -SIZE (xpi/firefox-i18n-17.0.8/fa.xpi) = 323996 -SHA256 (xpi/firefox-i18n-17.0.8/fi.xpi) = 8e32ca2ec68e8b405d4eb06d6e1fc7b81e3a8368241da71e979cf98d026b5eb0 -SIZE (xpi/firefox-i18n-17.0.8/fi.xpi) = 288654 -SHA256 (xpi/firefox-i18n-17.0.8/fr.xpi) = d94d3dc443433ccf773165eb190d953efa41b52a893a0784868749c953d4f3d1 -SIZE (xpi/firefox-i18n-17.0.8/fr.xpi) = 293361 -SHA256 (xpi/firefox-i18n-17.0.8/fy-NL.xpi) = bd2ed697ed7a6962d57a46e1bfa91dad09ee2e2afd72246699a87270cd09d4c4 -SIZE (xpi/firefox-i18n-17.0.8/fy-NL.xpi) = 289689 -SHA256 (xpi/firefox-i18n-17.0.8/ga-IE.xpi) = 4061b160586f9e7cb298e39f96ddeae64e1e6b37dc8b5955e01dff4f78a9d920 -SIZE (xpi/firefox-i18n-17.0.8/ga-IE.xpi) = 296975 -SHA256 (xpi/firefox-i18n-17.0.8/gl.xpi) = 59c1888ffd571ed199bb921bd82c2810eed8d1fee2e0057e2da463beab48b603 -SIZE (xpi/firefox-i18n-17.0.8/gl.xpi) = 286996 -SHA256 (xpi/firefox-i18n-17.0.8/gu-IN.xpi) = b8b78e370e75b8de1211cf0d0d88fb56efb77b5aa79f56e17d0142f93d795328 -SIZE (xpi/firefox-i18n-17.0.8/gu-IN.xpi) = 319479 -SHA256 (xpi/firefox-i18n-17.0.8/he.xpi) = d3aa3790c1c0023ec3a306d38227401a0c76ebd2480ad5a1a366ea9ac37696e0 -SIZE (xpi/firefox-i18n-17.0.8/he.xpi) = 301481 -SHA256 (xpi/firefox-i18n-17.0.8/hi-IN.xpi) = 6caad9514b2ab45b6e7fc6ee5a146a6735c9e74f80fa4d8ae9de19215644c5c4 -SIZE (xpi/firefox-i18n-17.0.8/hi-IN.xpi) = 330863 -SHA256 (xpi/firefox-i18n-17.0.8/hr.xpi) = 336a9fa402e16201c699a3ac2f3f61d3a8ce8e77286c21ae92ea6ca4ab7a02c6 -SIZE (xpi/firefox-i18n-17.0.8/hr.xpi) = 287939 -SHA256 (xpi/firefox-i18n-17.0.8/hu.xpi) = 588d58f50d75680a371d139f8ff5bcf85d1c747c1ce5ea68fa005548df515562 -SIZE (xpi/firefox-i18n-17.0.8/hu.xpi) = 303043 -SHA256 (xpi/firefox-i18n-17.0.8/hy-AM.xpi) = 22037ccc6a0088f8410ede7c81d12d6c0fdb1074f28c9a1a22e681d580196edd -SIZE (xpi/firefox-i18n-17.0.8/hy-AM.xpi) = 328202 -SHA256 (xpi/firefox-i18n-17.0.8/id.xpi) = 773894853aa09990d2b9d37b7882d2dc3278828886f9b85597baa69c5347889f -SIZE (xpi/firefox-i18n-17.0.8/id.xpi) = 283725 -SHA256 (xpi/firefox-i18n-17.0.8/is.xpi) = 1341dc8eee9a07d1061f3beff8ea746be36ae9f1336aac915290d286b6b1ea25 -SIZE (xpi/firefox-i18n-17.0.8/is.xpi) = 284907 -SHA256 (xpi/firefox-i18n-17.0.8/it.xpi) = ddfaabc26f18f2881afda0d9b62d1b42cd7b40e3e98ca99529c7387d98fd4bbe -SIZE (xpi/firefox-i18n-17.0.8/it.xpi) = 238644 -SHA256 (xpi/firefox-i18n-17.0.8/ja.xpi) = 48346c6e27fd398802bdb8fdf2da32769fec39db78b62250a1cbf72f1fc2908f -SIZE (xpi/firefox-i18n-17.0.8/ja.xpi) = 322489 -SHA256 (xpi/firefox-i18n-17.0.8/kk.xpi) = db597265643957a0cfeb21e2fdd85907c1224f52af9cb4bd24670b5783de6bf8 -SIZE (xpi/firefox-i18n-17.0.8/kk.xpi) = 330351 -SHA256 (xpi/firefox-i18n-17.0.8/kn.xpi) = 518dfdbf264c42071b7d6e06e319aa07e77d41e42fc17b3d7412f95b4f8a1bf4 -SIZE (xpi/firefox-i18n-17.0.8/kn.xpi) = 354899 -SHA256 (xpi/firefox-i18n-17.0.8/ko.xpi) = e13ff9b91db6ec679f2bc390b58e17e451af66433d77b4ff230b5e0a7986912d -SIZE (xpi/firefox-i18n-17.0.8/ko.xpi) = 296728 -SHA256 (xpi/firefox-i18n-17.0.8/ku.xpi) = d4866a48150e7d6af889f84aa34c822d9f8a4596e237f027cacef4eba85df663 -SIZE (xpi/firefox-i18n-17.0.8/ku.xpi) = 304897 -SHA256 (xpi/firefox-i18n-17.0.8/lg.xpi) = 01450fe3487e69a920b6181499268b9cd453d9de66bad06415b5a6a0dfcc19d6 -SIZE (xpi/firefox-i18n-17.0.8/lg.xpi) = 290627 -SHA256 (xpi/firefox-i18n-17.0.8/lt.xpi) = 74ab59a24994f2256a58387e80ec9986b4152906889a2d8cbba80cfcb71186e7 -SIZE (xpi/firefox-i18n-17.0.8/lt.xpi) = 349461 -SHA256 (xpi/firefox-i18n-17.0.8/lv.xpi) = 6bb40de2eb19cb92f6630dd6f88a3fa2e881d6e10bf9ef8facfb18d0ef68de52 -SIZE (xpi/firefox-i18n-17.0.8/lv.xpi) = 291403 -SHA256 (xpi/firefox-i18n-17.0.8/mai.xpi) = b0e421debb03d0d5c567c33d17c6b3f7edca6f458bca6ceac0553977648c9e88 -SIZE (xpi/firefox-i18n-17.0.8/mai.xpi) = 328266 -SHA256 (xpi/firefox-i18n-17.0.8/mk.xpi) = 85c2d2d6781bd5aa1d9ac7cae20bfa3cb654d4dbb230f89a95cae053e0563f35 -SIZE (xpi/firefox-i18n-17.0.8/mk.xpi) = 315578 -SHA256 (xpi/firefox-i18n-17.0.8/ml.xpi) = f6a288766bf716aff11707382c808998d0ea222881d7bf2fe4add1acdb44cc49 -SIZE (xpi/firefox-i18n-17.0.8/ml.xpi) = 361541 -SHA256 (xpi/firefox-i18n-17.0.8/mr.xpi) = 2920a89bbf8860a23f1af367c2a97771d4c1446c6255f56358ccfd396e0f9d9a -SIZE (xpi/firefox-i18n-17.0.8/mr.xpi) = 327860 -SHA256 (xpi/firefox-i18n-17.0.8/nb-NO.xpi) = c5baedc2320fba99d7cea011d188e2153ccf45ea02dc4877f37f7ac3c9cc4cb8 -SIZE (xpi/firefox-i18n-17.0.8/nb-NO.xpi) = 284888 -SHA256 (xpi/firefox-i18n-17.0.8/nl.xpi) = 4ff95dba4e22d16860fd0f1c78d1a48e491854da4a64973521a551c619b83200 -SIZE (xpi/firefox-i18n-17.0.8/nl.xpi) = 286111 -SHA256 (xpi/firefox-i18n-17.0.8/nn-NO.xpi) = bf43f46d3c7096fa12d9ae463b70f42f81ea62d7e8e8a8b9fd51f402e1496b35 -SIZE (xpi/firefox-i18n-17.0.8/nn-NO.xpi) = 287843 -SHA256 (xpi/firefox-i18n-17.0.8/nso.xpi) = 84fabb7dd08eeab63a01b0d355b489482a131e0455d7d29c2d330d433831601d -SIZE (xpi/firefox-i18n-17.0.8/nso.xpi) = 288149 -SHA256 (xpi/firefox-i18n-17.0.8/or.xpi) = 860c48ab8b8e2fdb07bb911fc5e8464b766315bf1ecf828e0edb7b2f545d5d0c -SIZE (xpi/firefox-i18n-17.0.8/or.xpi) = 329683 -SHA256 (xpi/firefox-i18n-17.0.8/pa-IN.xpi) = b706b38a4b56116b3b511aa10b220163460369396fdd2e51d27cea2bf55841cf -SIZE (xpi/firefox-i18n-17.0.8/pa-IN.xpi) = 318503 -SHA256 (xpi/firefox-i18n-17.0.8/pl.xpi) = 7585c41ff1782425e58b983854351e6f46e7f393903da89a935ac4a326f14ba7 -SIZE (xpi/firefox-i18n-17.0.8/pl.xpi) = 301034 -SHA256 (xpi/firefox-i18n-17.0.8/pt-BR.xpi) = 374a98cf06339353107cc90df09b71031e86928391daa8773fe326fcd747cc48 -SIZE (xpi/firefox-i18n-17.0.8/pt-BR.xpi) = 289243 -SHA256 (xpi/firefox-i18n-17.0.8/pt-PT.xpi) = 43b73d362ad90bce3ff441dfc9190cdbe087edefc1940414e2ba19a7cfb782bd -SIZE (xpi/firefox-i18n-17.0.8/pt-PT.xpi) = 291457 -SHA256 (xpi/firefox-i18n-17.0.8/rm.xpi) = 3bc04a2b8ab825a2bb1799da4caf247344e827c8519dee0d1b36e0891df458fd -SIZE (xpi/firefox-i18n-17.0.8/rm.xpi) = 288466 -SHA256 (xpi/firefox-i18n-17.0.8/ro.xpi) = fa58ef604f0165d7016ba64cf13a6a1792dc30af84b5a3a2d4531a4b0c0ec753 -SIZE (xpi/firefox-i18n-17.0.8/ro.xpi) = 310251 -SHA256 (xpi/firefox-i18n-17.0.8/ru.xpi) = b3baf4f5f539a792722ebbed6d8c27162812548459d2ff5a78ae2917c739d02e -SIZE (xpi/firefox-i18n-17.0.8/ru.xpi) = 284914 -SHA256 (xpi/firefox-i18n-17.0.8/si.xpi) = 16fcc9103fb5ed622458c35c4115d3513a6aff065336aac9ce3a7304db826ec9 -SIZE (xpi/firefox-i18n-17.0.8/si.xpi) = 317364 -SHA256 (xpi/firefox-i18n-17.0.8/sk.xpi) = 8ab8a0c823083e0fa5db5c8b9e78779a2553ee2c453b2d8190b53ce82788be59 -SIZE (xpi/firefox-i18n-17.0.8/sk.xpi) = 301478 -SHA256 (xpi/firefox-i18n-17.0.8/sl.xpi) = b525ac9584c3803fd5f22ce611b3462f3959f89817ad27e682d31e50079ebd79 -SIZE (xpi/firefox-i18n-17.0.8/sl.xpi) = 286637 -SHA256 (xpi/firefox-i18n-17.0.8/son.xpi) = 70098df1962037b466d1e5f757bdd065575cfc0f90c5b60310f632ce1385f62c -SIZE (xpi/firefox-i18n-17.0.8/son.xpi) = 283683 -SHA256 (xpi/firefox-i18n-17.0.8/sq.xpi) = c5a59d0ec7d1721fd806e8e5bfe11494848af04ded5f7755041c09e44d3f88d5 -SIZE (xpi/firefox-i18n-17.0.8/sq.xpi) = 291165 -SHA256 (xpi/firefox-i18n-17.0.8/sr.xpi) = 9ee6800e5f774556d5a6f0a6e9ba506524e01c944b17bbc9d2e588222078e5f6 -SIZE (xpi/firefox-i18n-17.0.8/sr.xpi) = 334014 -SHA256 (xpi/firefox-i18n-17.0.8/sv-SE.xpi) = c7ee92f5d8dc48208299fee3aae747d79c8e971d7f27ef99b4591e9ad658f167 -SIZE (xpi/firefox-i18n-17.0.8/sv-SE.xpi) = 288083 -SHA256 (xpi/firefox-i18n-17.0.8/ta-LK.xpi) = 481185f7b6441b483d220178f3fc35c0a27156a4983d0e42c2a8131795a7a572 -SIZE (xpi/firefox-i18n-17.0.8/ta-LK.xpi) = 339931 -SHA256 (xpi/firefox-i18n-17.0.8/ta.xpi) = 474ea9b302f95b65a448b160febef1524e08bf41dcd32b9f29d5080febc7ea5e -SIZE (xpi/firefox-i18n-17.0.8/ta.xpi) = 325366 -SHA256 (xpi/firefox-i18n-17.0.8/te.xpi) = 0bf544b82f849920b06d14f6035bb29d2d63848bef949d8b8f3d032e6259d1f6 -SIZE (xpi/firefox-i18n-17.0.8/te.xpi) = 341957 -SHA256 (xpi/firefox-i18n-17.0.8/th.xpi) = 426b343db09a6fec7714c067eaa945d1ba0db27e2e0787efb7c897107ca0b004 -SIZE (xpi/firefox-i18n-17.0.8/th.xpi) = 323677 -SHA256 (xpi/firefox-i18n-17.0.8/tr.xpi) = 0d4c80148bbffeba4d1b27bd22c1f6dde4a755274f3c33a933d223fba53b0975 -SIZE (xpi/firefox-i18n-17.0.8/tr.xpi) = 295841 -SHA256 (xpi/firefox-i18n-17.0.8/uk.xpi) = 9965c7f6bcf5eacc2e494b5cf0f034f950f81cbc239cb9aadaa877d0b6825843 -SIZE (xpi/firefox-i18n-17.0.8/uk.xpi) = 324250 -SHA256 (xpi/firefox-i18n-17.0.8/vi.xpi) = de96642a822d7d31079ae4e2209492e54a08eb3e4cf35f4c35269120b2ee95ed -SIZE (xpi/firefox-i18n-17.0.8/vi.xpi) = 313548 -SHA256 (xpi/firefox-i18n-17.0.8/zh-CN.xpi) = ec85c2473bf4b28f40394d7153b0e8a1197e60eea2ab8fee86cf408ba510e79f -SIZE (xpi/firefox-i18n-17.0.8/zh-CN.xpi) = 304250 -SHA256 (xpi/firefox-i18n-17.0.8/zh-TW.xpi) = b2881a5b4abbe19246a423427129d4111e531c765740ad5474c370a57e74cd6b -SIZE (xpi/firefox-i18n-17.0.8/zh-TW.xpi) = 305437 -SHA256 (xpi/firefox-i18n-17.0.8/zu.xpi) = a2e5eccccbaa7eecedf293c558c8d04a24c6ad1aaecfb2136772aba0edf3d7ab -SIZE (xpi/firefox-i18n-17.0.8/zu.xpi) = 296593 +SHA256 (xpi/firefox-17.0.9/af.xpi) = 7f0260504e52061b5a6f275d4b95e0e8f55708409f3292812367cbb4d5c820fb +SIZE (xpi/firefox-17.0.9/af.xpi) = 281146 +SHA256 (xpi/firefox-17.0.9/ak.xpi) = 5cdf30e0e117d45d5a4a25e83b78fadc64bbf42ee0768d9276f91ee8aedaf88d +SIZE (xpi/firefox-17.0.9/ak.xpi) = 282976 +SHA256 (xpi/firefox-17.0.9/ar.xpi) = 753c3b668374548fe60e8ca7b47a6cd37230167d5e6fb7c44a0ad4d6da3ec95f +SIZE (xpi/firefox-17.0.9/ar.xpi) = 311507 +SHA256 (xpi/firefox-17.0.9/ast.xpi) = 6906d44d39ca5d2088c0d2704747482cc5e7232af450458ee0a2267ab7845757 +SIZE (xpi/firefox-17.0.9/ast.xpi) = 264123 +SHA256 (xpi/firefox-17.0.9/be.xpi) = 4f5591ba50eb926534d0c2b9b496ce15ed7139e92d0d6497beac065e72bd4517 +SIZE (xpi/firefox-17.0.9/be.xpi) = 273411 +SHA256 (xpi/firefox-17.0.9/bg.xpi) = ea422ff59d6e1e0745bacb561c6a0d28855edbacfedf55fd98c9971bde5c7e64 +SIZE (xpi/firefox-17.0.9/bg.xpi) = 327261 +SHA256 (xpi/firefox-17.0.9/bn-BD.xpi) = 775c12b738227778a98cf795810e2440b2022c3579cf963ff91d9a26b31c1370 +SIZE (xpi/firefox-17.0.9/bn-BD.xpi) = 339303 +SHA256 (xpi/firefox-17.0.9/bn-IN.xpi) = 5130b0bcd48ac22187db4a30062d173c0b0e4236c879848487c25ce2a8fa67b2 +SIZE (xpi/firefox-17.0.9/bn-IN.xpi) = 373021 +SHA256 (xpi/firefox-17.0.9/br.xpi) = b97128f4293abc90ae8f1d0793e9ae3faea1c09b24732317409551f57397b398 +SIZE (xpi/firefox-17.0.9/br.xpi) = 291583 +SHA256 (xpi/firefox-17.0.9/bs.xpi) = 7a8a49cf327950dabce9cf03574bf45d2bf5302da4c81428558bbbf906e1ed02 +SIZE (xpi/firefox-17.0.9/bs.xpi) = 292223 +SHA256 (xpi/firefox-17.0.9/ca.xpi) = cb07a7cab2712ac0f7a440fd666f08c1c005efeb20888801596b277119afda31 +SIZE (xpi/firefox-17.0.9/ca.xpi) = 293532 +SHA256 (xpi/firefox-17.0.9/cs.xpi) = 693730bd1b5f46c3f59698862dd72f9b90c76f087faae7881b98251a8643c9af +SIZE (xpi/firefox-17.0.9/cs.xpi) = 294133 +SHA256 (xpi/firefox-17.0.9/cy.xpi) = 0b5908c12fe94c0f6a35dbf3da346b663380c1a68ff17c234e53f1c84bbbebcb +SIZE (xpi/firefox-17.0.9/cy.xpi) = 284868 +SHA256 (xpi/firefox-17.0.9/da.xpi) = 92d27215d507da5dbc61db11cb82ae1ba22a43246de1820633dbc3116c3e452d +SIZE (xpi/firefox-17.0.9/da.xpi) = 282668 +SHA256 (xpi/firefox-17.0.9/de.xpi) = 8dbee24a5d269c0762b8c041294242ca76f61302c773723bd371c507bc647b0b +SIZE (xpi/firefox-17.0.9/de.xpi) = 270384 +SHA256 (xpi/firefox-17.0.9/el.xpi) = 60f461421a8c5e6cacf46f6e13d1b1242dbd8a8cb839c65e1298efdd046865b5 +SIZE (xpi/firefox-17.0.9/el.xpi) = 311652 +SHA256 (xpi/firefox-17.0.9/en-GB.xpi) = be98a1a685c3a72f983039a8c524bd6175d59b72169cdf86b65cae5f911548d4 +SIZE (xpi/firefox-17.0.9/en-GB.xpi) = 272104 +SHA256 (xpi/firefox-17.0.9/en-US.xpi) = dc0be0502aa96eeae6383a76d2de3a5df34a2ad7badc2b397842e26aaefe2376 +SIZE (xpi/firefox-17.0.9/en-US.xpi) = 272155 +SHA256 (xpi/firefox-17.0.9/en-ZA.xpi) = 5a469a462f1ffa93ad0fd84c12863b3614ed85ed952766e7f4aa70e2f9c61e71 +SIZE (xpi/firefox-17.0.9/en-ZA.xpi) = 272935 +SHA256 (xpi/firefox-17.0.9/eo.xpi) = 5b4a902b499153ddfec17721b88f6ce5df93ffd84e8be10a15f0d1ea5ca708bb +SIZE (xpi/firefox-17.0.9/eo.xpi) = 284800 +SHA256 (xpi/firefox-17.0.9/es-AR.xpi) = 0763808de0b1873bacbdc1864fd34605fb9a07e9352a63aea49c372fc06a9dfe +SIZE (xpi/firefox-17.0.9/es-AR.xpi) = 289239 +SHA256 (xpi/firefox-17.0.9/es-CL.xpi) = 5d18909aa763160fbea9a0db64350944d3273b47b8730423f55d1905696dbf71 +SIZE (xpi/firefox-17.0.9/es-CL.xpi) = 296878 +SHA256 (xpi/firefox-17.0.9/es-ES.xpi) = eefe07da1a4e5d7d6c3cd4a655c71b790b1633e9888bdedfc90b394c6807c312 +SIZE (xpi/firefox-17.0.9/es-ES.xpi) = 242185 +SHA256 (xpi/firefox-17.0.9/es-MX.xpi) = a9032d2f4fe6b256af7e3db9a1ce4ae303d23e449b0c4f2e99b36800356e3d3c +SIZE (xpi/firefox-17.0.9/es-MX.xpi) = 247971 +SHA256 (xpi/firefox-17.0.9/et.xpi) = 1a8289276dc74e8843e7514b5bc65386116a1c890cc98524a5a21d864ff3178c +SIZE (xpi/firefox-17.0.9/et.xpi) = 284694 +SHA256 (xpi/firefox-17.0.9/eu.xpi) = 27cc76693ca285abda7eb29b64ee288baf847eabbd3edc52225983226c44ac9d +SIZE (xpi/firefox-17.0.9/eu.xpi) = 284227 +SHA256 (xpi/firefox-17.0.9/fa.xpi) = c9dd9c058408b29e6cae542de1a9b7c4f2956c51705e17107627512e1b2e895a +SIZE (xpi/firefox-17.0.9/fa.xpi) = 323997 +SHA256 (xpi/firefox-17.0.9/fi.xpi) = feea35b9d5f3e6d1b6501132d936c495c817fdf13c46223fed17382ddf0abc72 +SIZE (xpi/firefox-17.0.9/fi.xpi) = 288655 +SHA256 (xpi/firefox-17.0.9/fr.xpi) = a8c5f92105aa3383dae13c76100f6ed8d9cff178b311dee7b5a5ca0a3cb86f6e +SIZE (xpi/firefox-17.0.9/fr.xpi) = 293362 +SHA256 (xpi/firefox-17.0.9/fy-NL.xpi) = 330287e8e9476487c7a00f0e66c30bd4deeb57183b8ec099485945fa8a7e6300 +SIZE (xpi/firefox-17.0.9/fy-NL.xpi) = 289690 +SHA256 (xpi/firefox-17.0.9/ga-IE.xpi) = 3fb367ee983131d60564812cd0928bdf6f4619252450ee107e6565e2ba79a42c +SIZE (xpi/firefox-17.0.9/ga-IE.xpi) = 296976 +SHA256 (xpi/firefox-17.0.9/gl.xpi) = c0ba1b26790aa7ff991eb7c6f697d5bdbc2bb7ac9aa2c242fbc5982f32df692a +SIZE (xpi/firefox-17.0.9/gl.xpi) = 286997 +SHA256 (xpi/firefox-17.0.9/gu-IN.xpi) = 72ac2ac25213d7c40f0144931871673cffdbb86738c328be3b08ddbb79f0c0ef +SIZE (xpi/firefox-17.0.9/gu-IN.xpi) = 319480 +SHA256 (xpi/firefox-17.0.9/he.xpi) = fe72e5c7cf47078f88711192d85366c754f5155a83da8a4bcf9770eb306766f0 +SIZE (xpi/firefox-17.0.9/he.xpi) = 301482 +SHA256 (xpi/firefox-17.0.9/hi-IN.xpi) = 018de94c39166a42bb6b978a444289699d4a939e69431cbdc7180f6d6380b182 +SIZE (xpi/firefox-17.0.9/hi-IN.xpi) = 330864 +SHA256 (xpi/firefox-17.0.9/hr.xpi) = c810059f87762a22f8be0172cfe2f0b32e2cdafb4f487956628716ab09372efd +SIZE (xpi/firefox-17.0.9/hr.xpi) = 287940 +SHA256 (xpi/firefox-17.0.9/hu.xpi) = aecb3a32df7df05d8a621b8496f488e65f528106b20a0dca323f341e9da11a4c +SIZE (xpi/firefox-17.0.9/hu.xpi) = 303044 +SHA256 (xpi/firefox-17.0.9/hy-AM.xpi) = 30218c08c66316090acabbd58eb5813cc0466707dfb5e60f5ef241c98733dd74 +SIZE (xpi/firefox-17.0.9/hy-AM.xpi) = 328203 +SHA256 (xpi/firefox-17.0.9/id.xpi) = 433515ff50eaae7ce75c5d70a02afd91377e25a3c11a4457e3757d4b94ef4bcc +SIZE (xpi/firefox-17.0.9/id.xpi) = 283725 +SHA256 (xpi/firefox-17.0.9/is.xpi) = 2c47d4f9ace4a7dd527915d1e970cf1adb4ff268126fae01f53c42af3573ed17 +SIZE (xpi/firefox-17.0.9/is.xpi) = 284908 +SHA256 (xpi/firefox-17.0.9/it.xpi) = 8bc9f6155ed74d1ff7a0b9d32ae6385e854df6181d40199298257e62a31bc85a +SIZE (xpi/firefox-17.0.9/it.xpi) = 238645 +SHA256 (xpi/firefox-17.0.9/ja.xpi) = 5d317c6ddbd58f939069a3c7306b1ef37288908f6c4238e9acad82b206332a65 +SIZE (xpi/firefox-17.0.9/ja.xpi) = 322490 +SHA256 (xpi/firefox-17.0.9/kk.xpi) = 5de93350543644d3ea8394c6810f85368b0f2933a3eb7be5a5468096c5901865 +SIZE (xpi/firefox-17.0.9/kk.xpi) = 330352 +SHA256 (xpi/firefox-17.0.9/kn.xpi) = 8f48847052769177deed4c78e8b103129b045bb4168404e477082100f2153ddf +SIZE (xpi/firefox-17.0.9/kn.xpi) = 354900 +SHA256 (xpi/firefox-17.0.9/ko.xpi) = dc69c7c33446f4353e695f42c7f62b0f0c51cae471182415e0754f73d4515415 +SIZE (xpi/firefox-17.0.9/ko.xpi) = 296729 +SHA256 (xpi/firefox-17.0.9/ku.xpi) = 2bb621adfb42be40136fae29f3b605f6c4d4f2860c70e4148284f2f872a6a47a +SIZE (xpi/firefox-17.0.9/ku.xpi) = 304898 +SHA256 (xpi/firefox-17.0.9/lg.xpi) = 5665e8ecb6dc909e5263ff92f012d96e5b6506b75f27d8476b376df68f151c83 +SIZE (xpi/firefox-17.0.9/lg.xpi) = 290627 +SHA256 (xpi/firefox-17.0.9/lt.xpi) = 4a22dd0fa980845c52ff542a22ff4d2782644fbf61562b59d47958c63b0af6aa +SIZE (xpi/firefox-17.0.9/lt.xpi) = 349462 +SHA256 (xpi/firefox-17.0.9/lv.xpi) = 0c584551a8098f332ff104f69873f7fe7032125d440b4d2c655439d96f9f4970 +SIZE (xpi/firefox-17.0.9/lv.xpi) = 291404 +SHA256 (xpi/firefox-17.0.9/mai.xpi) = e48e46a0862ad6d250e13f3ed7ba6260810e8d7a87809a0f95cb5f721041f7fe +SIZE (xpi/firefox-17.0.9/mai.xpi) = 328267 +SHA256 (xpi/firefox-17.0.9/mk.xpi) = 74eac33091fb3ede7d6b0608e4eae7ca85ede50d70a52b7682ab248c7580dd7f +SIZE (xpi/firefox-17.0.9/mk.xpi) = 315578 +SHA256 (xpi/firefox-17.0.9/ml.xpi) = abfddffaa764c95d6b934b18ee79b73d0db2aeec71df72a3d6ad7891e069204f +SIZE (xpi/firefox-17.0.9/ml.xpi) = 361541 +SHA256 (xpi/firefox-17.0.9/mr.xpi) = 427de6f5dc7e17d6b0d5bc28eae10b492684b954cddbca17314029a19ad60b81 +SIZE (xpi/firefox-17.0.9/mr.xpi) = 327860 +SHA256 (xpi/firefox-17.0.9/nb-NO.xpi) = 705fe3683fedec09ec8242332178319ae81b68feccb9faf2e92724cd91e1ae33 +SIZE (xpi/firefox-17.0.9/nb-NO.xpi) = 284889 +SHA256 (xpi/firefox-17.0.9/nl.xpi) = 5c782528ef0bbc0e00ed13eafeedd4ce6314760c11a9a094698db11bb71f1a16 +SIZE (xpi/firefox-17.0.9/nl.xpi) = 286112 +SHA256 (xpi/firefox-17.0.9/nn-NO.xpi) = 94b1dc90f086753842bd737c76ca3e7fa76595ca92f2c77c5074cb9ef2df143b +SIZE (xpi/firefox-17.0.9/nn-NO.xpi) = 287844 +SHA256 (xpi/firefox-17.0.9/nso.xpi) = fff82877760917c36b89eba1208e94189733c022a4b4749fb11624cfdf4a24ad +SIZE (xpi/firefox-17.0.9/nso.xpi) = 288150 +SHA256 (xpi/firefox-17.0.9/or.xpi) = be1c8a86e3a983bb8d660e361656a55a374d8336116b79df84e5dbf5cb566022 +SIZE (xpi/firefox-17.0.9/or.xpi) = 329683 +SHA256 (xpi/firefox-17.0.9/pa-IN.xpi) = 8289237ce6218b4b7fd929feb3860e4c97ca18f376247e657f4840e7f2abd577 +SIZE (xpi/firefox-17.0.9/pa-IN.xpi) = 318504 +SHA256 (xpi/firefox-17.0.9/pl.xpi) = f3627a290ba98bf7f847d128a31ca40d08eba5ec5e1105776285816917037e88 +SIZE (xpi/firefox-17.0.9/pl.xpi) = 301035 +SHA256 (xpi/firefox-17.0.9/pt-BR.xpi) = 3d43b2982fc1aadad8d4bbdfcd2ef4b68c253da9fd63476b4555b6559b7e6ca8 +SIZE (xpi/firefox-17.0.9/pt-BR.xpi) = 289244 +SHA256 (xpi/firefox-17.0.9/pt-PT.xpi) = e6629aba045a7a22b69923b91a4f9833cfb622996841b8b91675ad5ede010987 +SIZE (xpi/firefox-17.0.9/pt-PT.xpi) = 291458 +SHA256 (xpi/firefox-17.0.9/rm.xpi) = bb07fbd88153d71940efc4fef5e340022a4648d2f65feca18ade6bc607fcc1ad +SIZE (xpi/firefox-17.0.9/rm.xpi) = 288466 +SHA256 (xpi/firefox-17.0.9/ro.xpi) = 2ea8971381699231f98fabbded21e69b7e37b2d9ec9f206f2162a876178842e8 +SIZE (xpi/firefox-17.0.9/ro.xpi) = 310252 +SHA256 (xpi/firefox-17.0.9/ru.xpi) = 3cf04ea06556aedae967bd634bec2b71151d72155f913328261a26349b8d7787 +SIZE (xpi/firefox-17.0.9/ru.xpi) = 284915 +SHA256 (xpi/firefox-17.0.9/si.xpi) = 05388c0d2b5175488fec94221707e895629b98d9b07ca84acfba7e099a2eed5c +SIZE (xpi/firefox-17.0.9/si.xpi) = 317364 +SHA256 (xpi/firefox-17.0.9/sk.xpi) = 462a9f40fd52106246bde6cf88af9e8c8a72d6d60a10e7e999773567d209d021 +SIZE (xpi/firefox-17.0.9/sk.xpi) = 301478 +SHA256 (xpi/firefox-17.0.9/sl.xpi) = 051de32ca4b73e7d6e2ae8690d88b56d321b8b3cac129d0ffaba946b33e4e0b0 +SIZE (xpi/firefox-17.0.9/sl.xpi) = 286638 +SHA256 (xpi/firefox-17.0.9/son.xpi) = e323ba779a99071be5934cff545f77bcf9a2d8cdd08d8a8c75c6373c6910e177 +SIZE (xpi/firefox-17.0.9/son.xpi) = 283684 +SHA256 (xpi/firefox-17.0.9/sq.xpi) = 8a0cc2c0c28437cb9ba729962e26db8ee84c6c9aa58ca4d04c720957eaf0290a +SIZE (xpi/firefox-17.0.9/sq.xpi) = 291166 +SHA256 (xpi/firefox-17.0.9/sr.xpi) = 4afc31009f28e9aa299580a903e1e62cbaaa2c0366bea1ce2a4f587f6f080c7f +SIZE (xpi/firefox-17.0.9/sr.xpi) = 334014 +SHA256 (xpi/firefox-17.0.9/sv-SE.xpi) = 16ae14be78e758e04f2ac4629de3b85322a55c8d876dbeb6421a48c153437c56 +SIZE (xpi/firefox-17.0.9/sv-SE.xpi) = 288084 +SHA256 (xpi/firefox-17.0.9/ta-LK.xpi) = 3af37b2f4ef2a6cc0d20857237494d483db54eb2469eae6dcef9fe17d35c4567 +SIZE (xpi/firefox-17.0.9/ta-LK.xpi) = 339932 +SHA256 (xpi/firefox-17.0.9/ta.xpi) = 01fccd79e39ee16be219f12f8e5a1a8797fb1c5303233bdd01db18883ab5ada4 +SIZE (xpi/firefox-17.0.9/ta.xpi) = 325367 +SHA256 (xpi/firefox-17.0.9/te.xpi) = 9ba953cebdaf411e3977668a411bcec854fb249837e6876d8c2db9d6d76bcb9c +SIZE (xpi/firefox-17.0.9/te.xpi) = 341958 +SHA256 (xpi/firefox-17.0.9/th.xpi) = cba18c2bd16eb8e95fc5ed1f9c52653c3f9b1d5c08fd7d188bccd4c422dbdb91 +SIZE (xpi/firefox-17.0.9/th.xpi) = 323677 +SHA256 (xpi/firefox-17.0.9/tr.xpi) = fead5265d45eeff747fe84cbc17e7881e42c55d3f5a488765c790787f9db47ab +SIZE (xpi/firefox-17.0.9/tr.xpi) = 295842 +SHA256 (xpi/firefox-17.0.9/uk.xpi) = 78e5a0b00f1952986df39ec1418d29614e024f7385f4f345539027ced0b21f35 +SIZE (xpi/firefox-17.0.9/uk.xpi) = 324251 +SHA256 (xpi/firefox-17.0.9/vi.xpi) = 9b1cee91188a64f839a291dd1645d02f52a15fa7378697b372858429f95a3cd4 +SIZE (xpi/firefox-17.0.9/vi.xpi) = 313548 +SHA256 (xpi/firefox-17.0.9/zh-CN.xpi) = a6b84548f5569a1d29721d0d13de2c0155a88aadb9472b6f4b4fa281741f9e62 +SIZE (xpi/firefox-17.0.9/zh-CN.xpi) = 304250 +SHA256 (xpi/firefox-17.0.9/zh-TW.xpi) = f93121bab234495e06a45d4aa43d681dd8c2e6660518e7d999b3e9d0b18c5018 +SIZE (xpi/firefox-17.0.9/zh-TW.xpi) = 305438 +SHA256 (xpi/firefox-17.0.9/zu.xpi) = fd869932b8bde8ad2f9c616766c8f7cacddb4bc8eb1fb19de6ccb25bb44b7db2 +SIZE (xpi/firefox-17.0.9/zu.xpi) = 296594 diff --git a/www/firefox-esr/Makefile b/www/firefox-esr/Makefile index ab699054b557..86ebb972e370 100644 --- a/www/firefox-esr/Makefile +++ b/www/firefox-esr/Makefile @@ -2,12 +2,12 @@ # $FreeBSD$ PORTNAME= firefox -DISTVERSION= 17.0.8 +DISTVERSION= 17.0.9 PORTEPOCH= 1 CATEGORIES= www ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/source -DISTNAME= ${PORTNAME}-${DISTVERSION}esr.source PKGNAMESUFFIX= -esr +DISTNAME= ${PORTNAME}-${DISTVERSION}esr.source MAINTAINER= gecko@FreeBSD.org COMMENT= Web browser based on the browser portion of Mozilla @@ -21,7 +21,6 @@ BUILD_DEPENDS= nspr>=4.9.2:${PORTSDIR}/devel/nspr \ USE_AUTOTOOLS= autoconf213:env USE_PYTHON_BUILD=-2.7 -LATEST_LINK= firefox-esr USE_GECKO= gecko CONFLICTS= firefox-2[0-35-9].* firefox-1[1-689].* MOZ_PKGCONFIG_FILES= # empty @@ -34,7 +33,6 @@ QT_NONSTANDARD= yes ALL_TARGET= default GNU_CONFIGURE= yes USE_BZIP2= yes -USES= gmake pkgconfig USE_GL= gl NO_MOZPKGINSTALL=yes diff --git a/www/firefox-esr/distinfo b/www/firefox-esr/distinfo index 8423f8c9a451..1c2251d9acb3 100644 --- a/www/firefox-esr/distinfo +++ b/www/firefox-esr/distinfo @@ -1,2 +1,2 @@ -SHA256 (firefox-17.0.8esr.source.tar.bz2) = 87f846d0cc6e1b2f4c1baeb58d2123ffbc8c166a1ec81a3b1e0551fbbd6ef1e8 -SIZE (firefox-17.0.8esr.source.tar.bz2) = 90765879 +SHA256 (firefox-17.0.9esr.source.tar.bz2) = 5b2d5498de40a0acd2a1aed8b671ad4b53a991e679ca98027c2a4c89c72f8cae +SIZE (firefox-17.0.9esr.source.tar.bz2) = 90859763 diff --git a/www/firefox-i18n/Makefile b/www/firefox-i18n/Makefile index e43a0180fae5..f6b4bda883e4 100644 --- a/www/firefox-i18n/Makefile +++ b/www/firefox-i18n/Makefile @@ -2,7 +2,7 @@ # $FreeBSD$ PORTNAME= firefox-i18n -PORTVERSION= 23.0.1 +PORTVERSION= 24.0 CATEGORIES= www MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${PORTVERSION}/linux-i686/xpi PKGNAMEPREFIX= @@ -14,7 +14,7 @@ COMMENT= Localized interface for Firefox EXTRACT_DEPENDS= zip:${PORTSDIR}/archivers/zip -USE_FIREFOX= 23 +USE_FIREFOX= 24 USE_XPI= firefox linux-firefox USE_SUBMAKE= yes diff --git a/www/firefox-i18n/distinfo b/www/firefox-i18n/distinfo index da29bd2b8b2d..e5e2ffe27b17 100644 --- a/www/firefox-i18n/distinfo +++ b/www/firefox-i18n/distinfo @@ -1,164 +1,164 @@ -SHA256 (xpi/firefox-i18n-23.0.1/af.xpi) = f4ff8b0b133fa145cd59ab900533a26391b06153d964bc595a734f8cdef37a2a -SIZE (xpi/firefox-i18n-23.0.1/af.xpi) = 327796 -SHA256 (xpi/firefox-i18n-23.0.1/ak.xpi) = f0ed7470ed044f20a2e6985eb7b992ac0ebd8b0fcf888644e559bb699d8f5436 -SIZE (xpi/firefox-i18n-23.0.1/ak.xpi) = 337916 -SHA256 (xpi/firefox-i18n-23.0.1/ar.xpi) = ffefd8a9619b7b718400e520c6eb8f5f74c300988e13a53876332f2f87aa83d7 -SIZE (xpi/firefox-i18n-23.0.1/ar.xpi) = 357346 -SHA256 (xpi/firefox-i18n-23.0.1/ast.xpi) = 5d072e0095a2e8a235af988d52fdce571e244063486312518448a7494553cba6 -SIZE (xpi/firefox-i18n-23.0.1/ast.xpi) = 292700 -SHA256 (xpi/firefox-i18n-23.0.1/be.xpi) = 184bb8fd71c5bdba6741f747ecead67dae59c5bc717a8e84aa2697659fd867da -SIZE (xpi/firefox-i18n-23.0.1/be.xpi) = 317603 -SHA256 (xpi/firefox-i18n-23.0.1/bg.xpi) = ed667eff766d403d37fe51d99e1409c3ac4903e3693ce64daf2b9d0a7ae15d31 -SIZE (xpi/firefox-i18n-23.0.1/bg.xpi) = 369531 -SHA256 (xpi/firefox-i18n-23.0.1/bn-BD.xpi) = 3f3924a2b0d57b901f054727384ce3d5b6c70c4da727d38c55e55802fa754699 -SIZE (xpi/firefox-i18n-23.0.1/bn-BD.xpi) = 391939 -SHA256 (xpi/firefox-i18n-23.0.1/bn-IN.xpi) = 0ee5943baf77a1719a56cf6df031adb2fc18dacc40962acb4dcedef3ea90c56c -SIZE (xpi/firefox-i18n-23.0.1/bn-IN.xpi) = 425715 -SHA256 (xpi/firefox-i18n-23.0.1/br.xpi) = 520217db2b38fb2c1c5fec1d97fb73a05d0fd4487704fe2c34627ad5d096060a -SIZE (xpi/firefox-i18n-23.0.1/br.xpi) = 328973 -SHA256 (xpi/firefox-i18n-23.0.1/bs.xpi) = 1d613fdd64eabd71225221ff80123f6a885938cb5c6345e6a35e1d1a8955ab4b -SIZE (xpi/firefox-i18n-23.0.1/bs.xpi) = 338255 -SHA256 (xpi/firefox-i18n-23.0.1/ca.xpi) = 4f9590d663658e509930999e6899e01ced87b23fcdab532380e5c5216574ab82 -SIZE (xpi/firefox-i18n-23.0.1/ca.xpi) = 339900 -SHA256 (xpi/firefox-i18n-23.0.1/cs.xpi) = 3d26a75900e9cce6f5e726336871733f78fc153a6f6ee2658197a3cc7547c2d8 -SIZE (xpi/firefox-i18n-23.0.1/cs.xpi) = 335893 -SHA256 (xpi/firefox-i18n-23.0.1/cy.xpi) = 69f5dd119b6438d30094ffcf32ebe10d3621ac9eae614a75fd66b6d122497e6d -SIZE (xpi/firefox-i18n-23.0.1/cy.xpi) = 329217 -SHA256 (xpi/firefox-i18n-23.0.1/da.xpi) = e8b2c5535b094c0227b1de1238ba3ef342d39197e0842b6dcc22b74efad9aa86 -SIZE (xpi/firefox-i18n-23.0.1/da.xpi) = 325396 -SHA256 (xpi/firefox-i18n-23.0.1/de.xpi) = fd64e657cff95edd893e95404b9d4b64703f6e0af7e719a608015c5be87db38f -SIZE (xpi/firefox-i18n-23.0.1/de.xpi) = 321439 -SHA256 (xpi/firefox-i18n-23.0.1/el.xpi) = 1049af74d18618d9e319f4b3e12e4c1b6b11eac7a3ef3dcc6b2f056f8d2edd13 -SIZE (xpi/firefox-i18n-23.0.1/el.xpi) = 361841 -SHA256 (xpi/firefox-i18n-23.0.1/en-GB.xpi) = b6e4a686bb7d0874f7be82ccb1bfe1e74ead0a8e300585513c8e138842ec8f3a -SIZE (xpi/firefox-i18n-23.0.1/en-GB.xpi) = 317396 -SHA256 (xpi/firefox-i18n-23.0.1/en-US.xpi) = e0c699fef8d9236cb2d36fa17380ad726eb91c0e00a2c509011c6397060918b5 -SIZE (xpi/firefox-i18n-23.0.1/en-US.xpi) = 319723 -SHA256 (xpi/firefox-i18n-23.0.1/en-ZA.xpi) = 4329140bf5fad45d82bcdf3059a04d5bb337f698f4ba8454d1e4c7c3fba09170 -SIZE (xpi/firefox-i18n-23.0.1/en-ZA.xpi) = 315905 -SHA256 (xpi/firefox-i18n-23.0.1/eo.xpi) = 042034ed962bb7bb7bb1e1b7a667feec4cd3a39225d3d1f2e6d46a571e3add02 -SIZE (xpi/firefox-i18n-23.0.1/eo.xpi) = 333542 -SHA256 (xpi/firefox-i18n-23.0.1/es-AR.xpi) = 1702463fdff15dcaca0c16a2224562502bd715c328baa3b1241d632eabad21d5 -SIZE (xpi/firefox-i18n-23.0.1/es-AR.xpi) = 332695 -SHA256 (xpi/firefox-i18n-23.0.1/es-CL.xpi) = 634f4eb908cbad3f0300c43b576f3957d68d4f328622bbe79f10cc66c606f3ab -SIZE (xpi/firefox-i18n-23.0.1/es-CL.xpi) = 288643 -SHA256 (xpi/firefox-i18n-23.0.1/es-ES.xpi) = e49080d8b76693f1b85c2eab6861757ddd2cd776b33045ad53fbd560d73d2b2a -SIZE (xpi/firefox-i18n-23.0.1/es-ES.xpi) = 278333 -SHA256 (xpi/firefox-i18n-23.0.1/es-MX.xpi) = cf835fdc7aada4d457721b498e439edefa93deeb580daa04a214d331ed8480b1 -SIZE (xpi/firefox-i18n-23.0.1/es-MX.xpi) = 299970 -SHA256 (xpi/firefox-i18n-23.0.1/et.xpi) = f1591718cc63ab87ec4a29fb724d7ffc30e93687f55405731c04bd9078c2f3a8 -SIZE (xpi/firefox-i18n-23.0.1/et.xpi) = 326104 -SHA256 (xpi/firefox-i18n-23.0.1/eu.xpi) = 00aaa513c5abd90e94d38556ea18f5df6fabfae49e2207910f9029a0a97dce28 -SIZE (xpi/firefox-i18n-23.0.1/eu.xpi) = 331004 -SHA256 (xpi/firefox-i18n-23.0.1/fa.xpi) = 551edf46a56ba9e5bdfa67e5e8e45144b334809d6032ce4736143794ecf8e1c1 -SIZE (xpi/firefox-i18n-23.0.1/fa.xpi) = 372623 -SHA256 (xpi/firefox-i18n-23.0.1/fi.xpi) = 9dc4ae7b2d742019041cfef325d9fe1422526ea3d01b6bc0e01d9d6137a88e4b -SIZE (xpi/firefox-i18n-23.0.1/fi.xpi) = 331323 -SHA256 (xpi/firefox-i18n-23.0.1/fr.xpi) = e25a14b688ff18183084d85cc1873d2e752e3130298e1d7722ccfebc88e02b10 -SIZE (xpi/firefox-i18n-23.0.1/fr.xpi) = 338010 -SHA256 (xpi/firefox-i18n-23.0.1/fy-NL.xpi) = 4469b60003cfef7cc988942c378f1c342b1d87b0c85f528d0ab1e2ea7abe7922 -SIZE (xpi/firefox-i18n-23.0.1/fy-NL.xpi) = 335444 -SHA256 (xpi/firefox-i18n-23.0.1/ga-IE.xpi) = 60b8248fef50ada3a91efed816b0df09370161f9584f857485f02c115879419e -SIZE (xpi/firefox-i18n-23.0.1/ga-IE.xpi) = 343736 -SHA256 (xpi/firefox-i18n-23.0.1/gl.xpi) = baf4b2c0b6857d1ca3b1a4aa03417ba43d2241dd347f009215529e30c4bfff52 -SIZE (xpi/firefox-i18n-23.0.1/gl.xpi) = 333632 -SHA256 (xpi/firefox-i18n-23.0.1/gu-IN.xpi) = 715617c0dc8bc9ad80e38f6bacf9d9b6ece8c26c4a0e1bf938667b0bd406fa28 -SIZE (xpi/firefox-i18n-23.0.1/gu-IN.xpi) = 360063 -SHA256 (xpi/firefox-i18n-23.0.1/he.xpi) = 1fba8f68248e853e252820e7d4c9833847654987b0bc9a924bac0ac82b314075 -SIZE (xpi/firefox-i18n-23.0.1/he.xpi) = 351639 -SHA256 (xpi/firefox-i18n-23.0.1/hi-IN.xpi) = 7f3cb1789d9d4dfe0d053cc73bb769f4bb3a4e99ba5a04d5abf93bc0c5d8927a -SIZE (xpi/firefox-i18n-23.0.1/hi-IN.xpi) = 377459 -SHA256 (xpi/firefox-i18n-23.0.1/hr.xpi) = 5f4f9cb9a8169ff5097fc4a52eb4f47426a04e48a793ff3537600597e573940a -SIZE (xpi/firefox-i18n-23.0.1/hr.xpi) = 335424 -SHA256 (xpi/firefox-i18n-23.0.1/hu.xpi) = 10c071a1c733675d6a5a7a0604e02d67760bd75786ae39db4b3d424ed4138497 -SIZE (xpi/firefox-i18n-23.0.1/hu.xpi) = 342497 -SHA256 (xpi/firefox-i18n-23.0.1/hy-AM.xpi) = 734820393af49dbf4b4083bb467aaa2d064ec0ab7ee54c97aeabd25d6b67c1e1 -SIZE (xpi/firefox-i18n-23.0.1/hy-AM.xpi) = 378643 -SHA256 (xpi/firefox-i18n-23.0.1/id.xpi) = a414f9008902781cf3c9327ec1a6e98ebe7a7bf326c80eb62e8a08fc8d24c82b -SIZE (xpi/firefox-i18n-23.0.1/id.xpi) = 318464 -SHA256 (xpi/firefox-i18n-23.0.1/is.xpi) = f6b0e00c7e5d8d1dcdcaee9a25113f2aa6775cb324ba1a77ced65fef79ff7a16 -SIZE (xpi/firefox-i18n-23.0.1/is.xpi) = 330554 -SHA256 (xpi/firefox-i18n-23.0.1/it.xpi) = 27973a8196c0b05b9c3e39ed9ce5f9ddf1cf794383dec2369fdc43e1a9ebd078 -SIZE (xpi/firefox-i18n-23.0.1/it.xpi) = 272498 -SHA256 (xpi/firefox-i18n-23.0.1/ja.xpi) = 1d0db6ea591314328be18a97c6fc40f7a59916b7cf1103f1b565f342c48b845c -SIZE (xpi/firefox-i18n-23.0.1/ja.xpi) = 369558 -SHA256 (xpi/firefox-i18n-23.0.1/kk.xpi) = a39a46e8d51282ed1616ede59c55d614bfd26657f99c8d51ec2420525e61363e -SIZE (xpi/firefox-i18n-23.0.1/kk.xpi) = 381206 -SHA256 (xpi/firefox-i18n-23.0.1/kn.xpi) = e5dfbac4c77d025fbfb98d3907d3b055113fe27631efef6161f6de92865b1f30 -SIZE (xpi/firefox-i18n-23.0.1/kn.xpi) = 386143 -SHA256 (xpi/firefox-i18n-23.0.1/ko.xpi) = 79aa94806a8a5f9bc7bd7c0edf9450c7ab9c25c864b8ecd18f43749909badd94 -SIZE (xpi/firefox-i18n-23.0.1/ko.xpi) = 344582 -SHA256 (xpi/firefox-i18n-23.0.1/ku.xpi) = f58755a571eb34e319fce4da0be054693391b7126b49983da0c7aeb67fde7938 -SIZE (xpi/firefox-i18n-23.0.1/ku.xpi) = 353893 -SHA256 (xpi/firefox-i18n-23.0.1/lg.xpi) = 72ea6146355d150eb3f8f158984da22b07345e2d07eb479738d6cbcf47c4eadf -SIZE (xpi/firefox-i18n-23.0.1/lg.xpi) = 348076 -SHA256 (xpi/firefox-i18n-23.0.1/lt.xpi) = 8a5f00578b4dc77fe7dba138fb285009d44c0572b394fbf9bb7f57586f6238d4 -SIZE (xpi/firefox-i18n-23.0.1/lt.xpi) = 350804 -SHA256 (xpi/firefox-i18n-23.0.1/lv.xpi) = c589434dd4ddce76434347c3687dc0b68b4e8024b23006a56a9c98bd76e4948d -SIZE (xpi/firefox-i18n-23.0.1/lv.xpi) = 328561 -SHA256 (xpi/firefox-i18n-23.0.1/mai.xpi) = 47629ea9d240587833300946e8ee5119707531691a9ea164d820779e9d74aaca -SIZE (xpi/firefox-i18n-23.0.1/mai.xpi) = 375980 -SHA256 (xpi/firefox-i18n-23.0.1/mk.xpi) = c1dfa311908b00dc519ca5a35b45c87c7f142ea704f2d6037d09f031899c060f -SIZE (xpi/firefox-i18n-23.0.1/mk.xpi) = 373110 -SHA256 (xpi/firefox-i18n-23.0.1/ml.xpi) = 8126fd67bbe4cffe9b0f4678b2da0677fa0741a60d4dd1e3295b54401e6267a8 -SIZE (xpi/firefox-i18n-23.0.1/ml.xpi) = 397885 -SHA256 (xpi/firefox-i18n-23.0.1/mr.xpi) = 57184fd57a5b27c2cc4f3ec4f0347944fad12dd7e0f73d3cdd39e120199c6c22 -SIZE (xpi/firefox-i18n-23.0.1/mr.xpi) = 374960 -SHA256 (xpi/firefox-i18n-23.0.1/nb-NO.xpi) = ed84824080fc2d9a3f183a40b589d04384f5bd7b1b8367eb323a40bb6d769ce8 -SIZE (xpi/firefox-i18n-23.0.1/nb-NO.xpi) = 329357 -SHA256 (xpi/firefox-i18n-23.0.1/nl.xpi) = df5c8b4d678a07f1bbb5027c5b00b6cd99a18c0113980737efde73269f0293f6 -SIZE (xpi/firefox-i18n-23.0.1/nl.xpi) = 330276 -SHA256 (xpi/firefox-i18n-23.0.1/nn-NO.xpi) = 332ee86f60f4465c9ad1888ede13ba9701149b2ecf4c5b5b25c3f310a09667ad -SIZE (xpi/firefox-i18n-23.0.1/nn-NO.xpi) = 330063 -SHA256 (xpi/firefox-i18n-23.0.1/nso.xpi) = a289fac6d9d40cdccfdc261fe12c058c5fd3f94d4d5ebdaa90a3628558551dfa -SIZE (xpi/firefox-i18n-23.0.1/nso.xpi) = 332692 -SHA256 (xpi/firefox-i18n-23.0.1/or.xpi) = 27b50cb2079ced76218dd4e56d20ed885faffb4d49ff80f8fd10d8b6848e79cd -SIZE (xpi/firefox-i18n-23.0.1/or.xpi) = 366750 -SHA256 (xpi/firefox-i18n-23.0.1/pa-IN.xpi) = bf716bc5df76fa8ddd878e4a1825a4f6b41f8ebb0546bacd3de29efb6dea7048 -SIZE (xpi/firefox-i18n-23.0.1/pa-IN.xpi) = 365279 -SHA256 (xpi/firefox-i18n-23.0.1/pl.xpi) = 09b9ef8ac7a1c811549018e8ccf8e1c5a48771a56aabd82ff69584c73fcfae9f -SIZE (xpi/firefox-i18n-23.0.1/pl.xpi) = 340759 -SHA256 (xpi/firefox-i18n-23.0.1/pt-BR.xpi) = 932d33ceb971c3a1b0ce1f9f0989153f7df899c6fd610137cca0252f13dbe5ce -SIZE (xpi/firefox-i18n-23.0.1/pt-BR.xpi) = 333255 -SHA256 (xpi/firefox-i18n-23.0.1/pt-PT.xpi) = 9f7f939eea9d39431dcf18fd7c5d5e3d175849354ffb4223e26f13e8147ed0ec -SIZE (xpi/firefox-i18n-23.0.1/pt-PT.xpi) = 331609 -SHA256 (xpi/firefox-i18n-23.0.1/rm.xpi) = d00f3a87ac3cc917994a5f73956b633eb1ec5cbe0a5cc0dcde60319770d86df7 -SIZE (xpi/firefox-i18n-23.0.1/rm.xpi) = 336471 -SHA256 (xpi/firefox-i18n-23.0.1/ro.xpi) = 9e43f3750e6a09782c460a45ca5d590ef89cc58977cb4cb49c91d72d6239e2da -SIZE (xpi/firefox-i18n-23.0.1/ro.xpi) = 363851 -SHA256 (xpi/firefox-i18n-23.0.1/ru.xpi) = 8c82b6b3e31d9c5b82149c7d5bd4109b852fc3303d6b6f1eaa98a88a9a7079e9 -SIZE (xpi/firefox-i18n-23.0.1/ru.xpi) = 323389 -SHA256 (xpi/firefox-i18n-23.0.1/si.xpi) = 5f7908cfd0ec3fd36c883fda7eae42f822190a34b4e4a1bd7bff77d3674db238 -SIZE (xpi/firefox-i18n-23.0.1/si.xpi) = 371034 -SHA256 (xpi/firefox-i18n-23.0.1/sk.xpi) = 110dc0908c0e9f8eddc1a58d72d1c931533da48c03eb4f2a1d18cd6435b758a3 -SIZE (xpi/firefox-i18n-23.0.1/sk.xpi) = 346634 -SHA256 (xpi/firefox-i18n-23.0.1/sl.xpi) = 4f185ff521f9239d7c2e66bad1934d6fe563a0e11556d342c771fced57f7b067 -SIZE (xpi/firefox-i18n-23.0.1/sl.xpi) = 331742 -SHA256 (xpi/firefox-i18n-23.0.1/son.xpi) = 66ea2802f06a3dfb6377a6c3011473cec23ca5239e2734abcf261141bb08e2a4 -SIZE (xpi/firefox-i18n-23.0.1/son.xpi) = 327531 -SHA256 (xpi/firefox-i18n-23.0.1/sq.xpi) = 627efd49ee5f60065541770375fbfc1d131b501c9877402aedb5f4468bafd9f1 -SIZE (xpi/firefox-i18n-23.0.1/sq.xpi) = 337344 -SHA256 (xpi/firefox-i18n-23.0.1/sr.xpi) = d3706463e179630e33fae2ac796c92ede69ea22094d4590225f3b5e9784fcac3 -SIZE (xpi/firefox-i18n-23.0.1/sr.xpi) = 383301 -SHA256 (xpi/firefox-i18n-23.0.1/sv-SE.xpi) = 86b34a81d88e658024e15635472b93f0549248649baf33e1e31f3dbefbbcff84 -SIZE (xpi/firefox-i18n-23.0.1/sv-SE.xpi) = 332153 -SHA256 (xpi/firefox-i18n-23.0.1/ta-LK.xpi) = ae46608b0c9bb9eeafcc9a81e76616a9c51a01ec3137aeb70bd10e661f8a0480 -SIZE (xpi/firefox-i18n-23.0.1/ta-LK.xpi) = 382499 -SHA256 (xpi/firefox-i18n-23.0.1/ta.xpi) = ae0be3c5e834a9bb864aa2f5ea80040a6a231035dc4fe5c4c4f62696d601ce83 -SIZE (xpi/firefox-i18n-23.0.1/ta.xpi) = 379865 -SHA256 (xpi/firefox-i18n-23.0.1/te.xpi) = 42dc298216d9f8403aae4b9fb75a0b27fb6d7aff2cf574ec86d630140edc8ae5 -SIZE (xpi/firefox-i18n-23.0.1/te.xpi) = 393187 -SHA256 (xpi/firefox-i18n-23.0.1/th.xpi) = 9d089cab64ac373cba75c9fd63dbb81e643e231e1ec424a29b505ae95258381b -SIZE (xpi/firefox-i18n-23.0.1/th.xpi) = 376169 -SHA256 (xpi/firefox-i18n-23.0.1/tr.xpi) = b6ab3c207ad12a24b21d2432ca4dfb4ed1b90248cdea1b56c827aea405adbb42 -SIZE (xpi/firefox-i18n-23.0.1/tr.xpi) = 338830 -SHA256 (xpi/firefox-i18n-23.0.1/uk.xpi) = b2de82609267ae0ccf066eecd72cbfaade193f6f507136c27b94070614d9a3d9 -SIZE (xpi/firefox-i18n-23.0.1/uk.xpi) = 364668 -SHA256 (xpi/firefox-i18n-23.0.1/vi.xpi) = 788f72f616132da8f122e79f5c249ca2f7436e119239ab85ac5df773554b4d22 -SIZE (xpi/firefox-i18n-23.0.1/vi.xpi) = 353834 -SHA256 (xpi/firefox-i18n-23.0.1/zh-CN.xpi) = b5411b628f85f67f8681afadb939d438caf2ee5c614992101e3682e9a3387afb -SIZE (xpi/firefox-i18n-23.0.1/zh-CN.xpi) = 356623 -SHA256 (xpi/firefox-i18n-23.0.1/zh-TW.xpi) = 9d6a4c277f83ca8b3a7cff939d3ae3b0a43870aab7114263a8c7b3ffdc61ecac -SIZE (xpi/firefox-i18n-23.0.1/zh-TW.xpi) = 350205 -SHA256 (xpi/firefox-i18n-23.0.1/zu.xpi) = 0c76121f2ac9a91ccd5dc10fb7733d3337d0245d2c70fa46f8ab56724f2c5db4 -SIZE (xpi/firefox-i18n-23.0.1/zu.xpi) = 332827 +SHA256 (xpi/firefox-i18n-24.0/af.xpi) = c692d031ea29336bdc61b0e00875100c5516acf58c8e6897a9615a6cb41cfaea +SIZE (xpi/firefox-i18n-24.0/af.xpi) = 333182 +SHA256 (xpi/firefox-i18n-24.0/ak.xpi) = 75ba44d664ac09d789d8080443b72a07464dcdaad1f987370a6b28cef5542401 +SIZE (xpi/firefox-i18n-24.0/ak.xpi) = 340938 +SHA256 (xpi/firefox-i18n-24.0/ar.xpi) = 37a9378d172e4eb27db1bd86ff02a2fe16eaf3a6380ffdcb51512b77fcd4cca7 +SIZE (xpi/firefox-i18n-24.0/ar.xpi) = 360848 +SHA256 (xpi/firefox-i18n-24.0/ast.xpi) = 38966ca689864afacb8c055c363f0e049ae1ed5bb0492bf38699d161f39fdbcf +SIZE (xpi/firefox-i18n-24.0/ast.xpi) = 292873 +SHA256 (xpi/firefox-i18n-24.0/be.xpi) = a784cedf5973359edd306643c17e275defe7cb196aa56aaf5697c75f3ef69a0f +SIZE (xpi/firefox-i18n-24.0/be.xpi) = 316952 +SHA256 (xpi/firefox-i18n-24.0/bg.xpi) = 61e956a5af477c242df82b56c5d9e8c30793797ea0e4040bb78827d1e450cf83 +SIZE (xpi/firefox-i18n-24.0/bg.xpi) = 373134 +SHA256 (xpi/firefox-i18n-24.0/bn-BD.xpi) = 158e1ecbfa0b354fb8306e1ebe447f7a5991c2056fa385320ba1a935ea73b69e +SIZE (xpi/firefox-i18n-24.0/bn-BD.xpi) = 394937 +SHA256 (xpi/firefox-i18n-24.0/bn-IN.xpi) = b97b4ad91a2d96b6eecf05b02a8879d2c58d7d4c5b3da53806dc2b769bd5d4de +SIZE (xpi/firefox-i18n-24.0/bn-IN.xpi) = 427777 +SHA256 (xpi/firefox-i18n-24.0/br.xpi) = 9c628e7795cf2f51bba54b25f4e87fd9e48b6aa321cc1771491440ee54293e71 +SIZE (xpi/firefox-i18n-24.0/br.xpi) = 330506 +SHA256 (xpi/firefox-i18n-24.0/bs.xpi) = 61db0003a35538ed1c8f8c46a57c0e120b4169010b02363ef6d4f91572ac3e0a +SIZE (xpi/firefox-i18n-24.0/bs.xpi) = 341619 +SHA256 (xpi/firefox-i18n-24.0/ca.xpi) = 09569d1e0ad68c2ebaff8a35c02ec91a32fd67fbd394155a34832efe310665ca +SIZE (xpi/firefox-i18n-24.0/ca.xpi) = 341255 +SHA256 (xpi/firefox-i18n-24.0/cs.xpi) = ea994038ca8590149a36c5699032345487cd855ea1ed410e888bd68884c2d553 +SIZE (xpi/firefox-i18n-24.0/cs.xpi) = 335944 +SHA256 (xpi/firefox-i18n-24.0/cy.xpi) = bad7e04209b93168fdb89eb8c44d1aed4bbd9ab68b67f2eb56d5a1f282fb1116 +SIZE (xpi/firefox-i18n-24.0/cy.xpi) = 330642 +SHA256 (xpi/firefox-i18n-24.0/da.xpi) = e993ba79744e9c00d229a348739bd228e646253042edfd8070c2c9437dbe09c0 +SIZE (xpi/firefox-i18n-24.0/da.xpi) = 326879 +SHA256 (xpi/firefox-i18n-24.0/de.xpi) = 3b6bd3868e8d7bc5498b492625d2b9f76dc9036841d639d1da026ddb8b15ed7a +SIZE (xpi/firefox-i18n-24.0/de.xpi) = 323256 +SHA256 (xpi/firefox-i18n-24.0/el.xpi) = 12ab6dddbcff247839cbaa25279ac6fa249b8ac5de781bf0f0c1fd393314c2e5 +SIZE (xpi/firefox-i18n-24.0/el.xpi) = 365318 +SHA256 (xpi/firefox-i18n-24.0/en-GB.xpi) = 4cf6a5f4a1060301c26569eda2269dde6658b28fc6af6e589f8299bb9494e222 +SIZE (xpi/firefox-i18n-24.0/en-GB.xpi) = 318294 +SHA256 (xpi/firefox-i18n-24.0/en-US.xpi) = b8e47aa8704f17b2060ef4274c048f5d5c81e42b4d9bdc5394dac46594fa5aef +SIZE (xpi/firefox-i18n-24.0/en-US.xpi) = 320993 +SHA256 (xpi/firefox-i18n-24.0/en-ZA.xpi) = b9273ea60bb3b81123141c63624b78650ce45a6925486ecaa8204fba898cd3d5 +SIZE (xpi/firefox-i18n-24.0/en-ZA.xpi) = 319319 +SHA256 (xpi/firefox-i18n-24.0/eo.xpi) = 72f3cd19df365064012ecc23dd650702df27d99ce2c1d99b0ea223ab4bdda3e5 +SIZE (xpi/firefox-i18n-24.0/eo.xpi) = 334937 +SHA256 (xpi/firefox-i18n-24.0/es-AR.xpi) = 177b33d01d8c57d48ec0188b86427ad0d05b59ce7a14e2a3ebeee4ed3bd79f4e +SIZE (xpi/firefox-i18n-24.0/es-AR.xpi) = 334009 +SHA256 (xpi/firefox-i18n-24.0/es-CL.xpi) = c8326e0dd27297621972a240804bc094879cc76bd5599b47f56bb63ed090a2d5 +SIZE (xpi/firefox-i18n-24.0/es-CL.xpi) = 287025 +SHA256 (xpi/firefox-i18n-24.0/es-ES.xpi) = 8b2e1c637525d7c41b6a6d718d3c7c41cb16627dcd87d7f6f4e9504b7a7e7a9e +SIZE (xpi/firefox-i18n-24.0/es-ES.xpi) = 277858 +SHA256 (xpi/firefox-i18n-24.0/es-MX.xpi) = 6f4ff625c66713a235dc32a6830d48d19ba458fa0f1059b285f259d7480a636d +SIZE (xpi/firefox-i18n-24.0/es-MX.xpi) = 302623 +SHA256 (xpi/firefox-i18n-24.0/et.xpi) = c90a9cd389a0233b03de22033a905d86878df23d038bedc7d8e8061d64b36445 +SIZE (xpi/firefox-i18n-24.0/et.xpi) = 327695 +SHA256 (xpi/firefox-i18n-24.0/eu.xpi) = 0e1d7155f2a90a0711d75804a216276a4524bb8f032c8abfb7aaa44d5bb254f0 +SIZE (xpi/firefox-i18n-24.0/eu.xpi) = 332420 +SHA256 (xpi/firefox-i18n-24.0/fa.xpi) = 7fc3695866db2082e725ab6fb17cb8691e7bf01a0d7fcd54147983f1c14f767a +SIZE (xpi/firefox-i18n-24.0/fa.xpi) = 375632 +SHA256 (xpi/firefox-i18n-24.0/fi.xpi) = 5bafdbd682e16c2d1ef853dca70312fd58dac31a6df62026c7355b37d74ac210 +SIZE (xpi/firefox-i18n-24.0/fi.xpi) = 328889 +SHA256 (xpi/firefox-i18n-24.0/fr.xpi) = 1363e814b0963bbf5c222d6c1710109a72636e603ff2d6b94df6310ea9adbede +SIZE (xpi/firefox-i18n-24.0/fr.xpi) = 339176 +SHA256 (xpi/firefox-i18n-24.0/fy-NL.xpi) = 48911ec2128c2b245c9c4b235c18a21c8d8100a7316d08efe1ac5a2756afb2c7 +SIZE (xpi/firefox-i18n-24.0/fy-NL.xpi) = 336586 +SHA256 (xpi/firefox-i18n-24.0/ga-IE.xpi) = edef8e7ad7773272133d9e28c1bb99b08210473176f3f8ed833dacded575f678 +SIZE (xpi/firefox-i18n-24.0/ga-IE.xpi) = 345291 +SHA256 (xpi/firefox-i18n-24.0/gl.xpi) = 6ac1080299348f28815608f038693fb683ded69d5b6cb0071e05144f3b0c1482 +SIZE (xpi/firefox-i18n-24.0/gl.xpi) = 336917 +SHA256 (xpi/firefox-i18n-24.0/gu-IN.xpi) = b571eaa1d5549eea17875e4e92e731f0cd1cf77fbfae81291f2cb7d739820681 +SIZE (xpi/firefox-i18n-24.0/gu-IN.xpi) = 359358 +SHA256 (xpi/firefox-i18n-24.0/he.xpi) = b09d6b8fe303296246100ba2c4806272b20eb846856a7ff99de8ce9a9a7b0988 +SIZE (xpi/firefox-i18n-24.0/he.xpi) = 354628 +SHA256 (xpi/firefox-i18n-24.0/hi-IN.xpi) = 8b1c6679cca059370eb8c7d5d6ddb6aa32d9c7769ab8d036899680f7912dd2fe +SIZE (xpi/firefox-i18n-24.0/hi-IN.xpi) = 379119 +SHA256 (xpi/firefox-i18n-24.0/hr.xpi) = d3bb4e273cc91be1eb0bb1109b74d48da17d4d49b04d8dd70b5d5fc70c637faa +SIZE (xpi/firefox-i18n-24.0/hr.xpi) = 336839 +SHA256 (xpi/firefox-i18n-24.0/hu.xpi) = cb6c293f7a74d390505059f0642aa2b50168ec810fd58e8bc61d613d61ecf1dc +SIZE (xpi/firefox-i18n-24.0/hu.xpi) = 344101 +SHA256 (xpi/firefox-i18n-24.0/hy-AM.xpi) = 46ce1f282e038f34149adc353f72348a450cc10045b4035d576fe4db003e1d0b +SIZE (xpi/firefox-i18n-24.0/hy-AM.xpi) = 385177 +SHA256 (xpi/firefox-i18n-24.0/id.xpi) = 311f9a9899b4c14e8c7e6d57a9d8d46f180a76fe9de21a168f2a3ba7a7447d27 +SIZE (xpi/firefox-i18n-24.0/id.xpi) = 319793 +SHA256 (xpi/firefox-i18n-24.0/is.xpi) = 8a96bd1df130a89478363fd3b7f2fad5bbc1ca951f7baa537d2f28ccfa5613cd +SIZE (xpi/firefox-i18n-24.0/is.xpi) = 331825 +SHA256 (xpi/firefox-i18n-24.0/it.xpi) = b72bc608d6cd95b89f7ca52e0a0dcf20eb334455529297d753fad816a64e8282 +SIZE (xpi/firefox-i18n-24.0/it.xpi) = 271924 +SHA256 (xpi/firefox-i18n-24.0/ja.xpi) = 1aea04aec4b26f78233fae3cff10f0e04afd11cb4541aaa80fa2feecb15d56ed +SIZE (xpi/firefox-i18n-24.0/ja.xpi) = 370903 +SHA256 (xpi/firefox-i18n-24.0/kk.xpi) = e4c063d14653183d0c86cb2c4f0879690cfe599f025824825a759a7e919cdaaf +SIZE (xpi/firefox-i18n-24.0/kk.xpi) = 377500 +SHA256 (xpi/firefox-i18n-24.0/kn.xpi) = 0c2d4b8946b555a424bd456cb90539c8adcc55e675493b8bf1cfe98dea2b32c1 +SIZE (xpi/firefox-i18n-24.0/kn.xpi) = 391031 +SHA256 (xpi/firefox-i18n-24.0/ko.xpi) = 5ac92a9e7b5afccf09ffd197d90eb35b6bbcb91848e8434c500f6b38621601ef +SIZE (xpi/firefox-i18n-24.0/ko.xpi) = 346162 +SHA256 (xpi/firefox-i18n-24.0/ku.xpi) = 052edb608d8b038039af7a9bd61d161ed4e7c34a34fcef7b06de6d42828fafb1 +SIZE (xpi/firefox-i18n-24.0/ku.xpi) = 355628 +SHA256 (xpi/firefox-i18n-24.0/lg.xpi) = c991340349fa805b71c682cb36eecd72f35c272fad49b63a3cefdf082d674015 +SIZE (xpi/firefox-i18n-24.0/lg.xpi) = 351109 +SHA256 (xpi/firefox-i18n-24.0/lt.xpi) = 3c1473992f0214bc756e8597d75e9b262e0bef971bd5bb334805af1fb83d4d81 +SIZE (xpi/firefox-i18n-24.0/lt.xpi) = 352043 +SHA256 (xpi/firefox-i18n-24.0/lv.xpi) = df6921acba87ad3e0334cc0172dada77657a6d49e5c7fe99639b0931cfaede66 +SIZE (xpi/firefox-i18n-24.0/lv.xpi) = 328662 +SHA256 (xpi/firefox-i18n-24.0/mai.xpi) = 3ff2dcbdba54bb48a06cc5e1ad62e45e6bdf18080b6551ea39d225c583fc9307 +SIZE (xpi/firefox-i18n-24.0/mai.xpi) = 379764 +SHA256 (xpi/firefox-i18n-24.0/mk.xpi) = 3dc8529b82b38d7fb4e4a2db43e1885e7bec46b8ecfa814ac44bb674436a95c6 +SIZE (xpi/firefox-i18n-24.0/mk.xpi) = 376314 +SHA256 (xpi/firefox-i18n-24.0/ml.xpi) = 784e4638445eae2aff7357c27fe347c055f50d2d1a0b98ca04075cb6417878d1 +SIZE (xpi/firefox-i18n-24.0/ml.xpi) = 399675 +SHA256 (xpi/firefox-i18n-24.0/mr.xpi) = 0e06bf60bb7ab454c0e2344ac6ff58e307124f5fd1ce5e284ba27a8c5936d5b6 +SIZE (xpi/firefox-i18n-24.0/mr.xpi) = 380229 +SHA256 (xpi/firefox-i18n-24.0/nb-NO.xpi) = 16d5dba99d06752a30f090e66a7190200562d36fc8239c92f121da58b59b0e66 +SIZE (xpi/firefox-i18n-24.0/nb-NO.xpi) = 330964 +SHA256 (xpi/firefox-i18n-24.0/nl.xpi) = d0003d0d9614aa0761508daf8a23604005a28c46570c720539932083db2a7a28 +SIZE (xpi/firefox-i18n-24.0/nl.xpi) = 331402 +SHA256 (xpi/firefox-i18n-24.0/nn-NO.xpi) = 503292a846b3d0dfe5b0137ac02347638b3880db64ca3d56ad792325bc925eea +SIZE (xpi/firefox-i18n-24.0/nn-NO.xpi) = 333904 +SHA256 (xpi/firefox-i18n-24.0/nso.xpi) = 0db48b062acaa693dbc781b71ac9a09b2e599399b93dfa24322672d1c44d01e2 +SIZE (xpi/firefox-i18n-24.0/nso.xpi) = 336295 +SHA256 (xpi/firefox-i18n-24.0/or.xpi) = 782976abaed0f8875d459bd2a7dd1fadf71fb8aefecd7c33fc5c774d18a3135e +SIZE (xpi/firefox-i18n-24.0/or.xpi) = 364591 +SHA256 (xpi/firefox-i18n-24.0/pa-IN.xpi) = 0cf089451ce5e83ae7f2b186105dbaee09ed42016124a1d4520befdaa1df3a0d +SIZE (xpi/firefox-i18n-24.0/pa-IN.xpi) = 365650 +SHA256 (xpi/firefox-i18n-24.0/pl.xpi) = a8a79980f33129191ad9c15fc100f81599b6f4dc27a47f011760612a72421898 +SIZE (xpi/firefox-i18n-24.0/pl.xpi) = 341993 +SHA256 (xpi/firefox-i18n-24.0/pt-BR.xpi) = 1a15a4aac4dea02af8a710b3f7404803734335e9bc61069d2cd78524ac374b93 +SIZE (xpi/firefox-i18n-24.0/pt-BR.xpi) = 334604 +SHA256 (xpi/firefox-i18n-24.0/pt-PT.xpi) = 26568031d5446110c0fddff6288c01584139a538e7d0443e1ca2c21ccfc97183 +SIZE (xpi/firefox-i18n-24.0/pt-PT.xpi) = 332736 +SHA256 (xpi/firefox-i18n-24.0/rm.xpi) = fcf56fe438aa25241b7cdfbe63552978024e6f766f78781fc05df7364aa5ae10 +SIZE (xpi/firefox-i18n-24.0/rm.xpi) = 339696 +SHA256 (xpi/firefox-i18n-24.0/ro.xpi) = 8ab022cc98c69bb33a1163f49c391f4258d1fb54928ab65f858b47fd98731766 +SIZE (xpi/firefox-i18n-24.0/ro.xpi) = 362235 +SHA256 (xpi/firefox-i18n-24.0/ru.xpi) = 1f3db7e002fbef5eecd1a79b211fcb25ef5e4a9a1b67c64a0661044e58a3eda1 +SIZE (xpi/firefox-i18n-24.0/ru.xpi) = 322758 +SHA256 (xpi/firefox-i18n-24.0/si.xpi) = 30ae92a58500e678800f4962c6f3a8fecb16950325e7f60691cdb76684cda837 +SIZE (xpi/firefox-i18n-24.0/si.xpi) = 372980 +SHA256 (xpi/firefox-i18n-24.0/sk.xpi) = 23c729e4308e545e45f9d7f1b560e4660922010e163ba399bd5ef4909bc5b0ca +SIZE (xpi/firefox-i18n-24.0/sk.xpi) = 347877 +SHA256 (xpi/firefox-i18n-24.0/sl.xpi) = bd3fc99671779dbe2ebaae557416e884a021be3648e55c5ba2f015582773adda +SIZE (xpi/firefox-i18n-24.0/sl.xpi) = 331569 +SHA256 (xpi/firefox-i18n-24.0/son.xpi) = 67abc22ef9b0b5423fc80f97ebbc4192725f616aefd5efe5d1e456e00b8e6ed1 +SIZE (xpi/firefox-i18n-24.0/son.xpi) = 328896 +SHA256 (xpi/firefox-i18n-24.0/sq.xpi) = 0eee192d607325c2156c8740bd11d70ce13b21e669e82c4f8691cc5ebbbc2227 +SIZE (xpi/firefox-i18n-24.0/sq.xpi) = 340676 +SHA256 (xpi/firefox-i18n-24.0/sr.xpi) = 836d48dba9fa96011ae4494f184435e500d2ad2c3d39318d3d94d9e5b62af001 +SIZE (xpi/firefox-i18n-24.0/sr.xpi) = 385107 +SHA256 (xpi/firefox-i18n-24.0/sv-SE.xpi) = cb637233a0d149fc894b9ed5aaefdaab2cc8a8e06db651b9f04249bed24e8548 +SIZE (xpi/firefox-i18n-24.0/sv-SE.xpi) = 333504 +SHA256 (xpi/firefox-i18n-24.0/ta-LK.xpi) = 5008b354dcb89b31a5e7fab1cca0dfa171c979c0ace0b4d5589bed5e6fd79cd5 +SIZE (xpi/firefox-i18n-24.0/ta-LK.xpi) = 384152 +SHA256 (xpi/firefox-i18n-24.0/ta.xpi) = a893043dead4291f664424e5be43d77bcac97ef4efe098331899de6dd27c11b3 +SIZE (xpi/firefox-i18n-24.0/ta.xpi) = 381421 +SHA256 (xpi/firefox-i18n-24.0/te.xpi) = 829e6539a163ba84ad643bd2d196a6d3c4186065ee95e13645f14ddf23c66cae +SIZE (xpi/firefox-i18n-24.0/te.xpi) = 394561 +SHA256 (xpi/firefox-i18n-24.0/th.xpi) = f501fd7f2305e8079130db0869d6e1eceedad0d347ae6277db3c584a00cbea32 +SIZE (xpi/firefox-i18n-24.0/th.xpi) = 379820 +SHA256 (xpi/firefox-i18n-24.0/tr.xpi) = 302a4a6fd8a115905bcefa53e65953aaee79867fd1395b045054b2e3a891d579 +SIZE (xpi/firefox-i18n-24.0/tr.xpi) = 340385 +SHA256 (xpi/firefox-i18n-24.0/uk.xpi) = 85e3daf4e80642170c293a8dc8c28104ec62d992d42c623edc3d786855b6b8d4 +SIZE (xpi/firefox-i18n-24.0/uk.xpi) = 365697 +SHA256 (xpi/firefox-i18n-24.0/vi.xpi) = 7f1959467b4d448b865e83cd7e3bd3ed9297c51056ca376011fb7bcd6dc1584a +SIZE (xpi/firefox-i18n-24.0/vi.xpi) = 358428 +SHA256 (xpi/firefox-i18n-24.0/zh-CN.xpi) = 69c944e9bfa76992048e30cc12449683e0f14784e964da900f3644c9184befa9 +SIZE (xpi/firefox-i18n-24.0/zh-CN.xpi) = 358180 +SHA256 (xpi/firefox-i18n-24.0/zh-TW.xpi) = 817ca4e5cf8581a5857d754aa9d9c3e8192753307d3e2fced89fcf158f7f83ea +SIZE (xpi/firefox-i18n-24.0/zh-TW.xpi) = 351830 +SHA256 (xpi/firefox-i18n-24.0/zu.xpi) = 9e0d8aa8161549d3200898e0e751d505b6c035fdd45d48bcb1ade9449f566696 +SIZE (xpi/firefox-i18n-24.0/zu.xpi) = 340392 diff --git a/www/firefox/Makefile b/www/firefox/Makefile index 515db0a7e6bc..0227880b9a1e 100644 --- a/www/firefox/Makefile +++ b/www/firefox/Makefile @@ -2,11 +2,11 @@ # $FreeBSD$ PORTNAME= firefox -DISTVERSION= 23.0.1 +DISTVERSION= 24.0 PORTEPOCH= 1 CATEGORIES= www ipv6 -MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source -DISTNAME= ${PORTNAME}-${DISTVERSION}.source +MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/source +DISTNAME= ${PORTNAME}-${DISTVERSION}esr.source MAINTAINER= gecko@FreeBSD.org COMMENT= Web browser based on the browser portion of Mozilla @@ -16,13 +16,15 @@ BUILD_DEPENDS= nspr>=4.10:${PORTSDIR}/devel/nspr \ sqlite3>=3.7.16.1:${PORTSDIR}/databases/sqlite3 \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3 \ cairo>=1.10.2_1,1:${PORTSDIR}/graphics/cairo \ + v4l_compat>0:${PORTSDIR}/multimedia/v4l_compat \ unzip:${PORTSDIR}/archivers/unzip +LIB_DEPENDS= libv4l2.so:${PORTSDIR}/multimedia/libv4l USE_AUTOTOOLS= autoconf213:env USE_PYTHON_BUILD=-2.7 OBJDIR_BUILD= # in-tree build broken after bug 789837 USE_GECKO= gecko -CONFLICTS= firefox-24.* firefox-1[07].* +CONFLICTS= firefox-esr-24.* firefox-esr-17.* firefox-1[07].* MOZ_PKGCONFIG_FILES= # empty USE_MOZILLA= # empty MOZILLA_NAME= Firefox @@ -33,7 +35,6 @@ QT_NONSTANDARD= yes ALL_TARGET= default GNU_CONFIGURE= yes USE_BZIP2= yes -USES= gmake pkgconfig USE_GL= gl USE_DOS2UNIX= media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp NO_MOZPKGINSTALL=yes @@ -44,8 +45,7 @@ MOZ_OPTIONS= --program-transform-name='s/firefox/${MOZILLA}/' \ --enable-application=browser \ --enable-official-branding -OPTIONS_DEFINE= WEBRTC -OPTIONS_DEFAULT=WEBRTC +OPTIONS_DEFAULT=GSTREAMER .include "${.CURDIR}/../../www/firefox/Makefile.options" @@ -54,7 +54,7 @@ OPTIONS_SINGLE_AUDIO:=${OPTIONS_SINGLE_AUDIO:S/OSS//} .include <bsd.port.pre.mk> -WRKSRC:= ${WRKDIR}/mozilla-release +WRKSRC:= ${WRKDIR}/mozilla-esr24 post-extract: @${SED} -e 's|@FIREFOX_ICON@|${FIREFOX_ICON}|' -e 's|@MOZILLA@|${MOZILLA}|' \ diff --git a/www/firefox/Makefile.options b/www/firefox/Makefile.options index 23feea6ee0c6..1c1868271049 100644 --- a/www/firefox/Makefile.options +++ b/www/firefox/Makefile.options @@ -1,7 +1,7 @@ # -*- makefile-bsdmake -*- OPTIONS_DEFINE+= DBUS DEBUG GCONF GIO GNOMEUI GNOMEVFS2 GSTREAMER \ - LIBPROXY LOGGING OPTIMIZED_CFLAGS PGO + LIBPROXY LOGGING OPTIMIZED_CFLAGS PGO PROFILE TEST OPTIONS_DEFAULT+= ALSA DBUS GIO LOGGING OPTIONS_SINGLE+= AUDIO @@ -13,4 +13,3 @@ GNOMEUI_DESC?= libgnomeui support module LIBPROXY_DESC?= Proxy support via libproxy LIGHTNING_DESC?= Calendar extension LOGGING_DESC?= Additional log messages -WEBRTC_DESC?= Web Real-Time Communication diff --git a/www/firefox/distinfo b/www/firefox/distinfo index 61b5fe8f9366..278ae2dcd950 100644 --- a/www/firefox/distinfo +++ b/www/firefox/distinfo @@ -1,2 +1,2 @@ -SHA256 (firefox-23.0.1.source.tar.bz2) = bb2c2e99a03859ebd8c02b8bc4c57b39ccc97c55872c2737c433212c0ebe01cf -SIZE (firefox-23.0.1.source.tar.bz2) = 115727982 +SHA256 (firefox-24.0esr.source.tar.bz2) = 3872f7c4c7b3f1f3f06dd3e4f7cc97b59a6857085af8f2df56820185e3d5cadb +SIZE (firefox-24.0esr.source.tar.bz2) = 119722621 diff --git a/www/firefox/files/patch-bug722975 b/www/firefox/files/patch-bug722975 deleted file mode 100644 index 21c28b19540b..000000000000 --- a/www/firefox/files/patch-bug722975 +++ /dev/null @@ -1,61 +0,0 @@ -# HG changeset patch -# Parent 9d3c9b863c697634e434b687d456bb82fa794ecf -# User Uli Schlachter <psychon@znc.in> -Bug 722975 - --enable-system-cairo build is broken after Bug 715658 fixed - - -diff --git a/gfx/thebes/gfxPlatform.cpp b/gfx/thebes/gfxPlatform.cpp ---- gfx/thebes/gfxPlatform.cpp -+++ gfx/thebes/gfxPlatform.cpp -@@ -502,21 +502,19 @@ struct SourceSurfaceUserData - BackendType mBackendType; - }; - - void SourceBufferDestroy(void *srcSurfUD) - { - delete static_cast<SourceSurfaceUserData*>(srcSurfUD); - } - --void SourceSnapshotDetached(cairo_surface_t *nullSurf) -+void SourceSnapshotDetached(void *nullSurf) - { -- gfxImageSurface* origSurf = -- static_cast<gfxImageSurface*>(cairo_surface_get_user_data(nullSurf, &kSourceSurface)); -- -+ gfxImageSurface *origSurf = static_cast<gfxImageSurface*>(nullSurf); - origSurf->SetData(&kSourceSurface, NULL, NULL); - } - - RefPtr<SourceSurface> - gfxPlatform::GetSourceSurfaceForSurface(DrawTarget *aTarget, gfxASurface *aSurface) - { - void *userData = aSurface->GetData(&kSourceSurface); - -@@ -621,24 +619,19 @@ gfxPlatform::GetSourceSurfaceForSurface( - } - - srcBuffer = Factory::CreateWrappingDataSourceSurface(imgSurface->Data(), - imgSurface->Stride(), - size, format); - - } - -- cairo_surface_t *nullSurf = -- cairo_null_surface_create(CAIRO_CONTENT_COLOR_ALPHA); -- cairo_surface_set_user_data(nullSurf, -- &kSourceSurface, -- imgSurface, -- NULL); -- cairo_surface_attach_snapshot(imgSurface->CairoSurface(), nullSurf, SourceSnapshotDetached); -- cairo_surface_destroy(nullSurf); -+ cairo_surface_set_mime_data(imgSurface->CairoSurface(), "mozilla/magic", -+ (const unsigned char *) "data", 4, -+ SourceSnapshotDetached, imgSurface.get()); - } - - SourceSurfaceUserData *srcSurfUD = new SourceSurfaceUserData; - srcSurfUD->mBackendType = aTarget->GetType(); - srcSurfUD->mSrcSurface = srcBuffer; - aSurface->SetData(&kSourceSurface, srcSurfUD, SourceBufferDestroy); - - return srcBuffer; diff --git a/www/firefox/files/patch-bug783463 b/www/firefox/files/patch-bug783463 index b27a1997c534..dedbb7003927 100644 --- a/www/firefox/files/patch-bug783463 +++ b/www/firefox/files/patch-bug783463 @@ -1,14 +1,14 @@ ---- gfx/skia/Makefile.in~ -+++ gfx/skia/Makefile.in -@@ -339,10 +339,9 @@ CPPSRCS += \ - SkMMapStream.cpp \ - SkOSFile.cpp \ - $(NULL) --ifeq (Linux,$(OS_TARGET)) -+ifneq (,$(or $(MOZ_X11),$(filter Linux,$(OS_TARGET)))) - CPPSRCS += \ - SkFontHost_linux.cpp \ -- SkFontHost_tables.cpp \ - SkTime_Unix.cpp \ - $(NULL) - endif +--- gfx/skia/moz.build~ ++++ gfx/skia/moz.build +@@ -188,10 +188,9 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt + 'SkMMapStream.cpp', + 'SkOSFile.cpp', + ] +- if CONFIG['OS_TARGET'] == 'Linux': ++ if CONFIG['MOZ_X11'] == 1 or CONFIG['OS_TARGET'] == 'Linux': + CPP_SOURCES += [ + 'SkFontHost_linux.cpp', +- 'SkFontHost_tables.cpp', + 'SkThread_pthread.cpp', + 'SkTime_Unix.cpp', + ] diff --git a/www/firefox/files/patch-bug803480 b/www/firefox/files/patch-bug803480 index 1d99d93d7215..5f5b4fe7f392 100644 --- a/www/firefox/files/patch-bug803480 +++ b/www/firefox/files/patch-bug803480 @@ -75,15 +75,28 @@ index a0575dc..be327fd 100644 dnl dnl option to disable cookies diff --git netwerk/wifi/Makefile.in netwerk/wifi/Makefile.in -index 39d7364..e8d276b 100644 +index 26dbd79..4cbf912 100644 --- netwerk/wifi/Makefile.in +++ netwerk/wifi/Makefile.in -@@ -41,7 +41,7 @@ CPPSRCS += nsWifiScannerSolaris.cpp +@@ -20,7 +20,7 @@ ifeq ($(OS_ARCH),SunOS) OS_INCLUDES += $(GLIB_CFLAGS) endif -ifdef MOZ_ENABLE_DBUS +ifdef NECKO_WIFI_DBUS - CPPSRCS += nsWifiScannerDBus.cpp OS_INCLUDES += $(MOZ_DBUS_GLIB_CFLAGS) endif + +diff --git netwerk/wifi/moz.build netwerk/wifi/moz.build +index 5e70211..07b01de 100644 +--- netwerk/wifi/moz.build ++++ netwerk/wifi/moz.build +@@ -43,7 +43,7 @@ elif CONFIG['OS_ARCH'] == 'SunOS': + 'nsWifiScannerSolaris.cpp', + ] + +-if CONFIG['MOZ_ENABLE_DBUS']: ++if CONFIG['NECKO_WIFI_DBUS']: + CPP_SOURCES += [ + 'nsWifiScannerDBus.cpp', + ] diff --git a/www/firefox/files/patch-bug807492 b/www/firefox/files/patch-bug807492 index 4b4e90f52ba1..3b39766e0492 100644 --- a/www/firefox/files/patch-bug807492 +++ b/www/firefox/files/patch-bug807492 @@ -1,19 +1,4 @@ -diff --git config/system-headers config/system-headers -index 9bd1efa..1095a01 100644 ---- config/system-headers -+++ config/system-headers -@@ -1121,8 +1121,10 @@ gst/app/gstappsink.h - gst/app/gstappsrc.h - gst/video/video.h - sys/msg.h - sys/ipc.h - sys/thr.h - sys/user.h - kvm.h - spawn.h -+err.h -+xlocale.h -diff --git configure.in configure.in +JJdiff --git configure.in configure.in index c167461..8346c11 100644 --- configure.in +++ configure.in @@ -36,21 +21,6 @@ index c167461..8346c11 100644 ;; esac fi -diff --git js/src/config/system-headers js/src/config/system-headers -index 9bd1efa..1095a01 100644 ---- js/src/config/system-headers -+++ js/src/config/system-headers -@@ -1121,8 +1121,10 @@ gst/app/gstappsink.h - gst/app/gstappsrc.h - gst/video/video.h - sys/msg.h - sys/ipc.h - sys/thr.h - sys/user.h - kvm.h - spawn.h -+err.h -+xlocale.h diff --git media/mtransport/objs.mk media/mtransport/objs.mk index f1fc85f..141e8ca 100644 --- media/mtransport/objs.mk @@ -581,1288 +551,6 @@ index a30e330..cfbd8a3 100644 ifeq ($(OS_TARGET),Darwin) LIBS += \ -framework AudioToolbox \ -diff --git media/webrtc/trunk/webrtc/build/common.gypi media/webrtc/trunk/webrtc/build/common.gypi -index 9ca9f7c..d5c4ab9 100644 ---- media/webrtc/trunk/webrtc/build/common.gypi -+++ media/webrtc/trunk/webrtc/build/common.gypi -@@ -119,16 +119,21 @@ - # flood of chromium-style warnings. Investigate enabling them: - # http://code.google.com/p/webrtc/issues/detail?id=163 - 'clang_use_chrome_plugins%': 0, - - # Switch between Android audio device OpenSL ES implementation - # and Java Implementation - 'enable_android_opensl%': 0, - }], -+ ['OS=="linux" or OS=="solaris" or os_bsd==1', { -+ 'include_v4l2_video_capture%': 1, -+ }, { -+ 'include_v4l2_video_capture%': 0, -+ }], - ['OS=="ios"', { - 'enable_video%': 0, - 'enable_protobuf%': 0, - 'build_libjpeg%': 0, - 'build_libyuv%': 0, - 'build_libvpx%': 0, - 'include_tests%': 0, - }], -@@ -205,16 +210,28 @@ - 'defines': ['WEBRTC_ARCH_ARM_NEON', - 'WEBRTC_BUILD_NEON_LIBS', - 'WEBRTC_DETECT_ARM_NEON'], - }], - ], - }], - ], - }], -+ ['os_bsd==1', { -+ 'defines': [ -+ 'WEBRTC_BSD', -+ 'WEBRTC_THREAD_RR', -+ ], -+ }], -+ ['OS=="dragonfly" or OS=="netbsd"', { -+ 'defines': [ -+ # doesn't support pthread_condattr_setclock -+ 'WEBRTC_CLOCK_TYPE_REALTIME', -+ ], -+ }], - ['OS=="ios"', { - 'defines': [ - 'WEBRTC_MAC', - 'WEBRTC_IOS', - 'WEBRTC_THREAD_RR', - 'WEBRTC_CLOCK_TYPE_REALTIME', - ], - }], -diff --git media/webrtc/trunk/webrtc/modules/audio_device/audio_device_utility.cc media/webrtc/trunk/webrtc/modules/audio_device/audio_device_utility.cc -index 203f09a..0b0b70e 100644 ---- media/webrtc/trunk/webrtc/modules/audio_device/audio_device_utility.cc -+++ media/webrtc/trunk/webrtc/modules/audio_device/audio_device_utility.cc -@@ -41,17 +41,17 @@ bool AudioDeviceUtility::StringCompare( - const char* str1 , const char* str2, - const WebRtc_UWord32 length) - { - return ((_strnicmp(str1, str2, length) == 0) ? true : false); - } - - } // namespace webrtc - --#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) -+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - - // ============================================================================ - // Linux & Mac - // ============================================================================ - - #include <sys/time.h> // gettimeofday - #include <time.h> // gettimeofday - #include <string.h> // strncasecmp -@@ -104,11 +104,11 @@ WebRtc_UWord32 AudioDeviceUtility::GetTimeInMS() - bool AudioDeviceUtility::StringCompare( - const char* str1 , const char* str2, const WebRtc_UWord32 length) - { - return (strncasecmp(str1, str2, length) == 0)?true: false; - } - - } // namespace webrtc - --#endif // defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) -+#endif // defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - - -diff --git media/webrtc/trunk/webrtc/modules/rtp_rtcp/source/forward_error_correction.cc media/webrtc/trunk/webrtc/modules/rtp_rtcp/source/forward_error_correction.cc -index bdad224..39e1132 100644 ---- media/webrtc/trunk/webrtc/modules/rtp_rtcp/source/forward_error_correction.cc -+++ media/webrtc/trunk/webrtc/modules/rtp_rtcp/source/forward_error_correction.cc -@@ -7,16 +7,17 @@ - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - - #include "modules/rtp_rtcp/source/forward_error_correction.h" - - #include <algorithm> - #include <cassert> -+#include <cstdlib> // for abs() - #include <cstring> - #include <iterator> - - #include "modules/rtp_rtcp/source/forward_error_correction_internal.h" - #include "modules/rtp_rtcp/source/rtp_utility.h" - #include "system_wrappers/interface/trace.h" - - namespace webrtc { -diff --git media/webrtc/trunk/webrtc/modules/rtp_rtcp/source/rtp_utility.cc media/webrtc/trunk/webrtc/modules/rtp_rtcp/source/rtp_utility.cc -index 298d479..37b70c9 100644 ---- media/webrtc/trunk/webrtc/modules/rtp_rtcp/source/rtp_utility.cc -+++ media/webrtc/trunk/webrtc/modules/rtp_rtcp/source/rtp_utility.cc -@@ -13,17 +13,17 @@ - #include <cassert> - #include <cmath> // ceil - #include <cstring> // memcpy - - #if defined(_WIN32) - #include <Windows.h> // FILETIME - #include <WinSock.h> // timeval - #include <MMSystem.h> // timeGetTime --#elif ((defined WEBRTC_LINUX) || (defined WEBRTC_MAC)) -+#elif ((defined WEBRTC_LINUX) || (defined WEBRTC_BSD) || (defined WEBRTC_MAC)) - #include <sys/time.h> // gettimeofday - #include <time.h> - #endif - #if (defined(_DEBUG) && defined(_WIN32) && (_MSC_VER >= 1400)) - #include <stdio.h> - #endif - - #include "system_wrappers/interface/tick_util.h" -@@ -151,17 +151,17 @@ void get_time(WindowsHelpTimer* help_timer, FILETIME& current_time) { - virtual WebRtc_Word64 GetTimeInMS(); - - virtual void CurrentNTP(WebRtc_UWord32& secs, WebRtc_UWord32& frac); - - private: - WindowsHelpTimer* _helpTimer; - }; - --#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) -+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - - // A clock reading times from the POSIX API. - class UnixSystemClock : public RtpRtcpClock { - public: - UnixSystemClock() {} - virtual ~UnixSystemClock() {} - - virtual WebRtc_Word64 GetTimeInMS(); -@@ -209,17 +209,17 @@ void WindowsSystemClock::CurrentNTP(WebRtc_UWord32& secs, - } else if (dtemp < -1) { - dtemp += 1; - secs--; - } - dtemp *= NTP_FRAC; - frac = (WebRtc_UWord32)dtemp; - } - --#elif ((defined WEBRTC_LINUX) || (defined WEBRTC_MAC)) -+#elif ((defined WEBRTC_LINUX) || (defined WEBRTC_BSD) || (defined WEBRTC_MAC)) - - WebRtc_Word64 UnixSystemClock::GetTimeInMS() { - return TickTime::MillisecondTimestamp(); - } - - // Use the system time. - void UnixSystemClock::CurrentNTP(WebRtc_UWord32& secs, WebRtc_UWord32& frac) { - double dtemp; -@@ -248,17 +248,17 @@ void UnixSystemClock::CurrentNTP(WebRtc_UWord32& secs, WebRtc_UWord32& frac) { - // Note that this is a POD. Only PODs are allowed to have static storage - // duration according to the Google Style guide. - static WindowsHelpTimer global_help_timer = {0, 0, {{ 0, 0}, 0}, 0}; - #endif - - RtpRtcpClock* GetSystemClock() { - #if defined(_WIN32) - return new WindowsSystemClock(&global_help_timer); --#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) -+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - return new UnixSystemClock(); - #else - return NULL; - #endif - } - - WebRtc_UWord32 GetCurrentRTP(RtpRtcpClock* clock, WebRtc_UWord32 freq) { - const bool use_global_clock = (clock == NULL); -@@ -325,17 +325,17 @@ WebRtc_UWord16 GetPayloadDataLength(const WebRtcRTPHeader* rtp_header, - return static_cast<WebRtc_UWord16>(length); - } - - #if defined(_WIN32) - bool StringCompare(const char* str1, const char* str2, - const WebRtc_UWord32 length) { - return (_strnicmp(str1, str2, length) == 0) ? true : false; - } --#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) -+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - bool StringCompare(const char* str1, const char* str2, - const WebRtc_UWord32 length) { - return (strncasecmp(str1, str2, length) == 0) ? true : false; - } - #endif - - #if !defined(WEBRTC_LITTLE_ENDIAN) && !defined(WEBRTC_BIG_ENDIAN) - #error Either WEBRTC_LITTLE_ENDIAN or WEBRTC_BIG_ENDIAN must be defined -diff --git media/webrtc/trunk/webrtc/modules/udp_transport/source/udp_transport_impl.cc media/webrtc/trunk/webrtc/modules/udp_transport/source/udp_transport_impl.cc -index e50db5d..70ad8a8 100644 ---- media/webrtc/trunk/webrtc/modules/udp_transport/source/udp_transport_impl.cc -+++ media/webrtc/trunk/webrtc/modules/udp_transport/source/udp_transport_impl.cc -@@ -13,60 +13,62 @@ - #include <stdio.h> - #include <stdlib.h> - #include <string.h> - #include <time.h> - - #if defined(_WIN32) - #include <winsock2.h> - #include <ws2tcpip.h> --#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) -+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - #include <arpa/inet.h> - #include <ctype.h> - #include <fcntl.h> - #include <netdb.h> -+#include <sys/socket.h> - #include <net/if.h> - #include <netinet/in.h> - #include <stdlib.h> - #include <sys/ioctl.h> --#include <sys/socket.h> - #include <sys/time.h> - #include <unistd.h> - #ifndef WEBRTC_IOS - #include <net/if_arp.h> - #endif - #endif // defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) - - #if defined(WEBRTC_MAC) --#include <ifaddrs.h> - #include <machine/types.h> - #endif -+#if defined(WEBRTC_BSD) || defined(WEBRTC_MAC) -+#include <ifaddrs.h> -+#endif - #if defined(WEBRTC_LINUX) - #include <linux/netlink.h> - #include <linux/rtnetlink.h> - #endif - - #include "common_types.h" - #include "critical_section_wrapper.h" - #include "rw_lock_wrapper.h" - #include "trace.h" - #include "typedefs.h" - #include "udp_socket_manager_wrapper.h" - --#if defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) -+#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - #define GetLastError() errno - - #define IFRSIZE ((int)(size * sizeof (struct ifreq))) - - #define NLMSG_OK_NO_WARNING(nlh,len) \ - ((len) >= (int)sizeof(struct nlmsghdr) && \ - (int)(nlh)->nlmsg_len >= (int)sizeof(struct nlmsghdr) && \ - (int)(nlh)->nlmsg_len <= (len)) - --#endif // defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) -+#endif // defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - - namespace webrtc { - - class SocketFactory : public UdpTransportImpl::SocketFactoryInterface { - public: - UdpSocketWrapper* CreateSocket(const WebRtc_Word32 id, - UdpSocketManager* mgr, - CallbackObj obj, -@@ -2366,17 +2368,17 @@ WebRtc_UWord32 UdpTransport::InetAddrIPV4(const char* ip) - { - return ::inet_addr(ip); - } - - WebRtc_Word32 UdpTransport::InetPresentationToNumeric(WebRtc_Word32 af, - const char* src, - void* dst) - { --#if defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) -+#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - const WebRtc_Word32 result = inet_pton(af, src, dst); - return result > 0 ? 0 : -1; - - #elif defined(_WIN32) - SocketAddress temp; - int length=sizeof(SocketAddress); - - if(af == AF_INET) -@@ -2488,17 +2490,17 @@ WebRtc_Word32 UdpTransport::LocalHostAddressIPV6(char n_localIP[16]) - break; - }; - } - freeaddrinfo(result); - WEBRTC_TRACE(kTraceWarning, kTraceTransport, -1, - "getaddrinfo failed to find address"); - return -1; - --#elif defined(WEBRTC_MAC) -+#elif defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - struct ifaddrs* ptrIfAddrs = NULL; - struct ifaddrs* ptrIfAddrsStart = NULL; - - getifaddrs(&ptrIfAddrsStart); - ptrIfAddrs = ptrIfAddrsStart; - while(ptrIfAddrs) - { - if(ptrIfAddrs->ifa_addr->sa_family == AF_INET6) -@@ -2680,17 +2682,17 @@ WebRtc_Word32 UdpTransport::LocalHostAddress(WebRtc_UWord32& localIP) - } - else - { - WebRtc_Word32 error = WSAGetLastError(); - WEBRTC_TRACE(kTraceWarning, kTraceTransport, -1, - "gethostbyname failed, error:%d", error); - return -1; - } --#elif (defined(WEBRTC_MAC)) -+#elif (defined(WEBRTC_BSD) || defined(WEBRTC_MAC)) - char localname[255]; - if (gethostname(localname, 255) != -1) - { - hostent* localHost; - localHost = gethostbyname(localname); - if(localHost) - { - if(localHost->h_addrtype != AF_INET) -@@ -2819,17 +2821,17 @@ WebRtc_Word32 UdpTransport::IPAddress(const SocketAddress& address, - } - - source_port = address._sockaddr_in6.sin6_port; - } - // Convert port number to network byte order. - sourcePort = htons(source_port); - return 0; - -- #elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) -+ #elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - WebRtc_Word32 ipFamily = address._sockaddr_storage.sin_family; - const void* ptrNumericIP = NULL; - - if(ipFamily == AF_INET) - { - ptrNumericIP = &(address._sockaddr_in.sin_addr); - } - else if(ipFamily == AF_INET6) -diff --git media/webrtc/trunk/webrtc/modules/utility/source/rtp_dump_impl.cc media/webrtc/trunk/webrtc/modules/utility/source/rtp_dump_impl.cc -index 69a52ec..7ac226c 100644 ---- media/webrtc/trunk/webrtc/modules/utility/source/rtp_dump_impl.cc -+++ media/webrtc/trunk/webrtc/modules/utility/source/rtp_dump_impl.cc -@@ -14,17 +14,17 @@ - #include <stdio.h> - - #include "critical_section_wrapper.h" - #include "trace.h" - - #if defined(_WIN32) - #include <Windows.h> - #include <mmsystem.h> --#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) -+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - #include <string.h> - #include <sys/time.h> - #include <time.h> - #endif - - #if (defined(_DEBUG) && defined(_WIN32)) - #define DEBUG_PRINT(expr) OutputDebugString(##expr) - #define DEBUG_PRINTP(expr, p) \ -@@ -233,17 +233,17 @@ bool RtpDumpImpl::RTCP(const WebRtc_UWord8* packet) const - return is_rtcp; - } - - // TODO (hellner): why is TickUtil not used here? - inline WebRtc_UWord32 RtpDumpImpl::GetTimeInMS() const - { - #if defined(_WIN32) - return timeGetTime(); --#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) -+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - struct timeval tv; - struct timezone tz; - unsigned long val; - - gettimeofday(&tv, &tz); - val = tv.tv_sec * 1000 + tv.tv_usec / 1000; - return val; - #else -diff --git media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc -index 653ee16..8d6fd68 100644 ---- media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc -+++ media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc -@@ -14,17 +14,23 @@ - #include <unistd.h> - #include <sys/ioctl.h> - #include <sys/stat.h> - #include <fcntl.h> - #include <stdio.h> - #include <stdlib.h> - - //v4l includes -+#if defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__) -+#include <sys/videoio.h> -+#elif defined(__sun) -+#include <sys/videodev2.h> -+#else - #include <linux/videodev2.h> -+#endif - - #include "ref_count.h" - #include "trace.h" - - - namespace webrtc - { - namespace videocapturemodule -diff --git media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc -index 12df1b3..424ea0a 100644 ---- media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc -+++ media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc -@@ -7,22 +7,30 @@ - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - - #include <sys/ioctl.h> - #include <unistd.h> - #include <sys/stat.h> - #include <fcntl.h> --#include <linux/videodev2.h> - #include <errno.h> - #include <stdio.h> - #include <sys/mman.h> - #include <string.h> - -+//v4l includes -+#if defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__) -+#include <sys/videoio.h> -+#elif defined(__sun) -+#include <sys/videodev2.h> -+#else -+#include <linux/videodev2.h> -+#endif -+ - #include <new> - - #include "ref_count.h" - #include "trace.h" - #include "thread_wrapper.h" - #include "critical_section_wrapper.h" - #include "video_capture_linux.h" - -diff --git media/webrtc/trunk/webrtc/modules/video_capture/device_info_impl.cc media/webrtc/trunk/webrtc/modules/video_capture/device_info_impl.cc -index e3f7bb5..882cede 100644 ---- media/webrtc/trunk/webrtc/modules/video_capture/device_info_impl.cc -+++ media/webrtc/trunk/webrtc/modules/video_capture/device_info_impl.cc -@@ -49,17 +49,17 @@ WebRtc_Word32 DeviceInfoImpl::NumberOfCapabilities( - if (!deviceUniqueIdUTF8) - return -1; - - _apiLock.AcquireLockShared(); - - if (_lastUsedDeviceNameLength == strlen((char*) deviceUniqueIdUTF8)) - { - // Is it the same device that is asked for again. --#if defined(WEBRTC_MAC) || defined(WEBRTC_LINUX) -+#if defined(WEBRTC_MAC) || defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) - if(strncasecmp((char*)_lastUsedDeviceName, - (char*) deviceUniqueIdUTF8, - _lastUsedDeviceNameLength)==0) - #else - if (_strnicmp((char*) _lastUsedDeviceName, - (char*) deviceUniqueIdUTF8, - _lastUsedDeviceNameLength) == 0) - #endif -@@ -86,17 +86,17 @@ WebRtc_Word32 DeviceInfoImpl::GetCapability(const char* deviceUniqueIdUTF8, - { - WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceVideoCapture, _id, - "deviceUniqueIdUTF8 parameter not set in call to GetCapability"); - return -1; - } - ReadLockScoped cs(_apiLock); - - if ((_lastUsedDeviceNameLength != strlen((char*) deviceUniqueIdUTF8)) --#if defined(WEBRTC_MAC) || defined(WEBRTC_LINUX) -+#if defined(WEBRTC_MAC) || defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) - || (strncasecmp((char*)_lastUsedDeviceName, - (char*) deviceUniqueIdUTF8, - _lastUsedDeviceNameLength)!=0)) - #else - || (_strnicmp((char*) _lastUsedDeviceName, - (char*) deviceUniqueIdUTF8, - _lastUsedDeviceNameLength) != 0)) - #endif -@@ -150,17 +150,17 @@ WebRtc_Word32 DeviceInfoImpl::GetBestMatchedCapability( - { - - - if (!deviceUniqueIdUTF8) - return -1; - - ReadLockScoped cs(_apiLock); - if ((_lastUsedDeviceNameLength != strlen((char*) deviceUniqueIdUTF8)) --#if defined(WEBRTC_MAC) || defined(WEBRTC_LINUX) -+#if defined(WEBRTC_MAC) || defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) - || (strncasecmp((char*)_lastUsedDeviceName, - (char*) deviceUniqueIdUTF8, - _lastUsedDeviceNameLength)!=0)) - #else - || (_strnicmp((char*) _lastUsedDeviceName, - (char*) deviceUniqueIdUTF8, - _lastUsedDeviceNameLength) != 0)) - #endif -diff --git media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi -index 0a9765e..8d4bbf4 100644 ---- media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi -+++ media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi -@@ -43,17 +43,17 @@ - 'conditions': [ - ['include_internal_video_capture==0', { - 'sources': [ - 'external/device_info_external.cc', - 'external/video_capture_external.cc', - ], - }, { # include_internal_video_capture == 1 - 'conditions': [ -- ['OS=="linux"', { -+ ['include_v4l2_video_capture==1', { - 'include_dirs': [ - 'linux', - ], - 'sources': [ - 'linux/device_info_linux.cc', - 'linux/device_info_linux.h', - 'linux/video_capture_linux.cc', - 'linux/video_capture_linux.h', -@@ -152,31 +152,35 @@ - 'include_dirs': [ - 'include', - ], - 'sources': [ - 'test/video_capture_unittest.cc', - 'test/video_capture_main_mac.mm', - ], - 'conditions': [ -- ['OS=="mac" or OS=="linux"', { -+ ['OS!="win" and OS!="android"', { - 'cflags': [ - '-Wno-write-strings', - ], - 'ldflags': [ - '-lpthread -lm', - ], - }], -- ['OS=="linux"', { -+ ['include_v4l2_video_capture==1', { - 'libraries': [ -- '-lrt', - '-lXext', - '-lX11', - ], - }], -+ ['OS=="linux"', { -+ 'libraries': [ -+ '-lrt', -+ ], -+ }], - ['OS=="mac"', { - 'dependencies': [ - # Link with a special main for mac so we can use the webcam. - '<(webrtc_root)/test/test.gyp:test_support_main_threaded_mac', - ], - 'xcode_settings': { - # TODO(andrew): CoreAudio and AudioToolbox shouldn't be needed. - 'OTHER_LDFLAGS': [ -diff --git media/webrtc/trunk/webrtc/system_wrappers/interface/asm_defines.h media/webrtc/trunk/webrtc/system_wrappers/interface/asm_defines.h -index 0cd85d0..45591be 100644 ---- media/webrtc/trunk/webrtc/system_wrappers/interface/asm_defines.h -+++ media/webrtc/trunk/webrtc/system_wrappers/interface/asm_defines.h -@@ -6,17 +6,17 @@ - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - - #ifndef WEBRTC_SYSTEM_WRAPPERS_INTERFACE_ASM_DEFINES_H_ - #define WEBRTC_SYSTEM_WRAPPERS_INTERFACE_ASM_DEFINES_H_ - --#if defined(__linux__) && defined(__ELF__) -+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(__ELF__) - .section .note.GNU-stack,"",%progbits - #endif - - // Define the macros used in ARM assembly code, so that for Mac or iOS builds - // we add leading underscores for the function names. - #ifdef __APPLE__ - .macro GLOBAL_FUNCTION name - .global _\name -diff --git media/webrtc/trunk/webrtc/system_wrappers/interface/tick_util.h media/webrtc/trunk/webrtc/system_wrappers/interface/tick_util.h -index 0cd85d0..45591be 100644 ---- media/webrtc/trunk/webrtc/system_wrappers/interface/tick_util.h -+++ media/webrtc/trunk/webrtc/system_wrappers/interface/tick_util.h -@@ -189,17 +189,17 @@ inline WebRtc_Word64 TickTime::QueryOsForTicks() { - // 0x0fffffff ~3.1 days, the code will not take that long to execute - // so it must have been a wrap around. - if (old > 0xf0000000 && now < 0x0fffffff) { - num_wrap_time_get_time++; - } - } - result.ticks_ = now + (num_wrap_time_get_time << 32); - #endif --#elif defined(WEBRTC_LINUX) -+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) - struct timespec ts; - // TODO(wu): Remove CLOCK_REALTIME implementation. - #ifdef WEBRTC_CLOCK_TYPE_REALTIME - clock_gettime(CLOCK_REALTIME, &ts); - #else - clock_gettime(CLOCK_MONOTONIC, &ts); - #endif - result.ticks_ = 1000000000LL * static_cast<WebRtc_Word64>(ts.tv_sec) + -@@ -236,34 +236,34 @@ inline WebRtc_Word64 TickTime::MillisecondTimestamp() { - #if _WIN32 - #ifdef USE_QUERY_PERFORMANCE_COUNTER - LARGE_INTEGER qpfreq; - QueryPerformanceFrequency(&qpfreq); - return (ticks * 1000) / qpfreq.QuadPart; - #else - return ticks; - #endif --#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) -+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - return ticks / 1000000LL; - #else - return ticks / 1000LL; - #endif - } - - inline WebRtc_Word64 TickTime::MicrosecondTimestamp() { - WebRtc_Word64 ticks = TickTime::Now().Ticks(); - #if _WIN32 - #ifdef USE_QUERY_PERFORMANCE_COUNTER - LARGE_INTEGER qpfreq; - QueryPerformanceFrequency(&qpfreq); - return (ticks * 1000) / (qpfreq.QuadPart / 1000); - #else - return ticks * 1000LL; - #endif --#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) -+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - return ticks / 1000LL; - #else - return ticks; - #endif - } - - inline WebRtc_Word64 TickTime::Ticks() const { - return ticks_; -@@ -273,33 +273,33 @@ inline WebRtc_Word64 TickTime::MillisecondsToTicks(const WebRtc_Word64 ms) { - #if _WIN32 - #ifdef USE_QUERY_PERFORMANCE_COUNTER - LARGE_INTEGER qpfreq; - QueryPerformanceFrequency(&qpfreq); - return (qpfreq.QuadPart * ms) / 1000; - #else - return ms; - #endif --#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) -+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - return ms * 1000000LL; - #else - return ms * 1000LL; - #endif - } - - inline WebRtc_Word64 TickTime::TicksToMilliseconds(const WebRtc_Word64 ticks) { - #if _WIN32 - #ifdef USE_QUERY_PERFORMANCE_COUNTER - LARGE_INTEGER qpfreq; - QueryPerformanceFrequency(&qpfreq); - return (ticks * 1000) / qpfreq.QuadPart; - #else - return ticks; - #endif --#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) -+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - return ticks / 1000000LL; - #else - return ticks / 1000LL; - #endif - } - - inline TickTime& TickTime::operator+=(const WebRtc_Word64& ticks) { - ticks_ += ticks; -@@ -318,17 +318,17 @@ inline WebRtc_Word64 TickInterval::Milliseconds() const { - #ifdef USE_QUERY_PERFORMANCE_COUNTER - LARGE_INTEGER qpfreq; - QueryPerformanceFrequency(&qpfreq); - return (interval_ * 1000) / qpfreq.QuadPart; - #else - // interval_ is in ms - return interval_; - #endif --#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) -+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - // interval_ is in ns - return interval_ / 1000000; - #else - // interval_ is usecs - return interval_ / 1000; - #endif - } - -@@ -337,17 +337,17 @@ inline WebRtc_Word64 TickInterval::Microseconds() const { - #ifdef USE_QUERY_PERFORMANCE_COUNTER - LARGE_INTEGER qpfreq; - QueryPerformanceFrequency(&qpfreq); - return (interval_ * 1000000) / qpfreq.QuadPart; - #else - // interval_ is in ms - return interval_ * 1000LL; - #endif --#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) -+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - // interval_ is in ns - return interval_ / 1000; - #else - // interval_ is usecs - return interval_; - #endif - } - -diff --git media/webrtc/trunk/webrtc/system_wrappers/source/atomic32_posix.cc media/webrtc/trunk/webrtc/system_wrappers/source/atomic32_posix.cc -index 05b0e57..993456c 100644 ---- media/webrtc/trunk/webrtc/system_wrappers/source/atomic32_posix.cc -+++ media/webrtc/trunk/webrtc/system_wrappers/source/atomic32_posix.cc -@@ -7,17 +7,16 @@ - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - - #include "atomic32.h" - - #include <assert.h> - #include <inttypes.h> --#include <malloc.h> - - #include "common_types.h" - - namespace webrtc { - - Atomic32::Atomic32(WebRtc_Word32 initial_value) - : value_(initial_value) { - assert(Is32bitAligned()); -diff --git media/webrtc/trunk/webrtc/system_wrappers/source/condition_variable.cc media/webrtc/trunk/webrtc/system_wrappers/source/condition_variable.cc -index b37d037..fcea221 100644 ---- media/webrtc/trunk/webrtc/system_wrappers/source/condition_variable.cc -+++ media/webrtc/trunk/webrtc/system_wrappers/source/condition_variable.cc -@@ -3,31 +3,33 @@ - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -+#include "condition_variable_wrapper.h" -+ - #if defined(_WIN32) - #include <windows.h> - #include "condition_variable_win.h" --#include "condition_variable_wrapper.h" --#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) -+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - #include <pthread.h> - #include "condition_variable_posix.h" --#include "condition_variable_wrapper.h" -+#else -+#include <stddef.h> // for NULL - #endif - - namespace webrtc { - - ConditionVariableWrapper* ConditionVariableWrapper::CreateConditionVariable() { - #if defined(_WIN32) - return new ConditionVariableWindows; --#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) -+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - return ConditionVariablePosix::Create(); - #else - return NULL; - #endif - } - - } // namespace webrtc -diff --git media/webrtc/trunk/webrtc/system_wrappers/source/condition_variable_posix.cc media/webrtc/trunk/webrtc/system_wrappers/source/condition_variable_posix.cc -index 48835ab..16c6033 100644 ---- media/webrtc/trunk/webrtc/system_wrappers/source/condition_variable_posix.cc -+++ media/webrtc/trunk/webrtc/system_wrappers/source/condition_variable_posix.cc -@@ -74,17 +74,17 @@ void ConditionVariablePosix::SleepCS(CriticalSectionWrapper& crit_sect) { - &crit_sect); - pthread_cond_wait(&cond_, &cs->mutex_); - } - - bool ConditionVariablePosix::SleepCS(CriticalSectionWrapper& crit_sect, - unsigned long max_time_inMS) { - const unsigned long INFINITE = 0xFFFFFFFF; - const int MILLISECONDS_PER_SECOND = 1000; --#ifndef WEBRTC_LINUX -+#if !defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD) - const int MICROSECONDS_PER_MILLISECOND = 1000; - #endif - const int NANOSECONDS_PER_SECOND = 1000000000; - const int NANOSECONDS_PER_MILLISECOND = 1000000; - - CriticalSectionPosix* cs = reinterpret_cast<CriticalSectionPosix*>( - &crit_sect); - -diff --git media/webrtc/trunk/webrtc/system_wrappers/source/cpu.cc media/webrtc/trunk/webrtc/system_wrappers/source/cpu.cc -index 3df5d18..4cd3ddf 100644 ---- media/webrtc/trunk/webrtc/system_wrappers/source/cpu.cc -+++ media/webrtc/trunk/webrtc/system_wrappers/source/cpu.cc -@@ -9,28 +9,28 @@ - */ - - #include "system_wrappers/interface/cpu_wrapper.h" - - #if defined(_WIN32) - #include "cpu_win.h" - #elif defined(WEBRTC_MAC) - #include "cpu_mac.h" --#elif defined(WEBRTC_ANDROID) -+#elif defined(WEBRTC_ANDROID) || defined(WEBRTC_BSD) - // Not implemented yet, might be possible to use Linux implementation - #else // defined(WEBRTC_LINUX) - #include "cpu_linux.h" - #endif - - namespace webrtc { - CpuWrapper* CpuWrapper::CreateCpu() { - #if defined(_WIN32) - return new CpuWindows(); - #elif defined(WEBRTC_MAC) - return new CpuWrapperMac(); --#elif defined(WEBRTC_ANDROID) -+#elif defined(WEBRTC_ANDROID) || defined(WEBRTC_BSD) - return 0; - #else - return new CpuLinux(); - #endif - } - - } // namespace webrtc -diff --git media/webrtc/trunk/webrtc/system_wrappers/source/cpu_info.cc media/webrtc/trunk/webrtc/system_wrappers/source/cpu_info.cc -index e367abf..e14d7af 100644 ---- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_info.cc -+++ media/webrtc/trunk/webrtc/system_wrappers/source/cpu_info.cc -@@ -7,23 +7,25 @@ - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - - #include "system_wrappers/interface/cpu_info.h" - - #if defined(_WIN32) - #include <Windows.h> --#elif defined(WEBRTC_MAC) --#include <sys/sysctl.h> -+#elif defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - #include <sys/types.h> -+#include <sys/sysctl.h> - #elif defined(WEBRTC_ANDROID) - // Not implemented yet, might be possible to use Linux implementation --#else // defined(WEBRTC_LINUX) -+#elif defined(WEBRTC_LINUX) - #include <sys/sysinfo.h> -+#else // defined(_SC_NPROCESSORS_ONLN) -+#include <unistd.h> - #endif - - #include "trace.h" - - namespace webrtc { - - WebRtc_UWord32 CpuInfo::number_of_cores_ = 0; - -@@ -36,29 +38,38 @@ WebRtc_UWord32 CpuInfo::DetectNumberOfCores() { - WEBRTC_TRACE(kTraceStateInfo, kTraceUtility, -1, - "Available number of cores:%d", number_of_cores_); - - #elif defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) && !defined(WEBRTC_GONK) - number_of_cores_ = get_nprocs(); - WEBRTC_TRACE(kTraceStateInfo, kTraceUtility, -1, - "Available number of cores:%d", number_of_cores_); - --#elif defined(WEBRTC_MAC) -- int name[] = {CTL_HW, HW_AVAILCPU}; -+#elif defined(WEBRTC_BSD) || defined(WEBRTC_MAC) -+ int name[] = { -+ CTL_HW, -+#ifdef HW_AVAILCPU -+ HW_AVAILCPU, -+#else -+ HW_NCPU, -+#endif -+ }; - int ncpu; - size_t size = sizeof(ncpu); - if (0 == sysctl(name, 2, &ncpu, &size, NULL, 0)) { - number_of_cores_ = static_cast<WebRtc_UWord32>(ncpu); - WEBRTC_TRACE(kTraceStateInfo, kTraceUtility, -1, - "Available number of cores:%d", number_of_cores_); - } else { - WEBRTC_TRACE(kTraceError, kTraceUtility, -1, - "Failed to get number of cores"); - number_of_cores_ = 1; - } -+#elif defined(_SC_NPROCESSORS_ONLN) -+ _numberOfCores = sysconf(_SC_NPROCESSORS_ONLN); - #else - WEBRTC_TRACE(kTraceWarning, kTraceUtility, -1, - "No function to get number of cores"); - number_of_cores_ = 1; - #endif - } - return number_of_cores_; - } -diff --git media/webrtc/trunk/webrtc/system_wrappers/source/thread_posix.cc media/webrtc/trunk/webrtc/system_wrappers/source/thread_posix.cc -index 6334490..852ebaa 100644 ---- media/webrtc/trunk/webrtc/system_wrappers/source/thread_posix.cc -+++ media/webrtc/trunk/webrtc/system_wrappers/source/thread_posix.cc -@@ -54,16 +54,27 @@ - #ifdef WEBRTC_LINUX - #include <sys/types.h> - #include <sched.h> - #include <sys/syscall.h> - #include <linux/unistd.h> - #include <sys/prctl.h> - #endif - -+#if defined(__NetBSD__) -+#include <lwp.h> -+#elif defined(__FreeBSD__) -+#include <sys/param.h> -+#include <sys/thr.h> -+#endif -+ -+#if defined(WEBRTC_BSD) && !defined(__NetBSD__) -+#include <pthread_np.h> -+#endif -+ - #include "webrtc/system_wrappers/interface/critical_section_wrapper.h" - #include "webrtc/system_wrappers/interface/event_wrapper.h" - #include "webrtc/system_wrappers/interface/trace.h" - - namespace webrtc { - - int ConvertToSystemPriority(ThreadPriority priority, int min_prio, - int max_prio) { -@@ -136,16 +147,30 @@ ThreadPosix::ThreadPosix(ThreadRunFunction func, ThreadObj obj, - } - } - - uint32_t ThreadWrapper::GetThreadId() { - #if defined(WEBRTC_ANDROID) || defined(WEBRTC_LINUX) || defined(WEBRTC_GONK) - return static_cast<uint32_t>(syscall(__NR_gettid)); - #elif defined(WEBRTC_MAC) || defined(WEBRTC_IOS) - return pthread_mach_thread_np(pthread_self()); -+#elif defined(__NetBSD__) -+ return _lwp_self(); -+#elif defined(__DragonFly__) -+ return lwp_gettid(); -+#elif defined(__OpenBSD__) -+ return reinterpret_cast<uintptr_t> (pthread_self()); -+#elif defined(__FreeBSD__) -+# if __FreeBSD_version > 900030 -+ return pthread_getthreadid_np(); -+# else -+ long lwpid; -+ thr_self(&lwpid); -+ return lwpid; -+# endif - #else - return reinterpret_cast<uint32_t>(pthread_self()); - #endif - } - - int ThreadPosix::Construct() { - int result = 0; - #if !defined(WEBRTC_ANDROID) && !defined(WEBRTC_GONK) -@@ -167,17 +192,17 @@ int ThreadPosix::Construct() { - } - - ThreadPosix::~ThreadPosix() { - pthread_attr_destroy(&attr_); - delete event_; - delete crit_state_; - } - --#define HAS_THREAD_ID !defined(WEBRTC_IOS) && !defined(WEBRTC_MAC) -+#define HAS_THREAD_ID !defined(WEBRTC_IOS) && !defined(WEBRTC_MAC) && !defined(WEBRTC_BSD) - - bool ThreadPosix::Start(unsigned int& thread_id) - { - if (!run_function_) { - return false; - } - int result = pthread_attr_setdetachstate(&attr_, PTHREAD_CREATE_DETACHED); - // Set the stack stack size to 1M. -@@ -232,31 +257,40 @@ bool ThreadPosix::Start(unsigned int& thread_id) - WEBRTC_TRACE(kTraceError, kTraceUtility, -1, - "unable to set thread priority"); - } - return true; - } - - // CPU_ZERO and CPU_SET are not available in NDK r7, so disable - // SetAffinity on Android for now. --#if (defined(WEBRTC_LINUX) && (!defined(WEBRTC_ANDROID)) && (!defined(WEBRTC_GONK))) -+#if defined(__FreeBSD__) || (defined(WEBRTC_LINUX) && \ -+ (!defined(WEBRTC_ANDROID)) && (!defined(WEBRTC_GONK))) - bool ThreadPosix::SetAffinity(const int* processor_numbers, - const unsigned int amount_of_processors) { - if (!processor_numbers || (amount_of_processors == 0)) { - return false; - } -+#if defined(__FreeBSD__) -+ cpuset_t mask; -+#else - cpu_set_t mask; -+#endif - CPU_ZERO(&mask); - - for (unsigned int processor = 0; - processor < amount_of_processors; - ++processor) { - CPU_SET(processor_numbers[processor], &mask); - } --#if defined(WEBRTC_ANDROID) || defined(WEBRTC_GONK) -+#if defined(__FreeBSD__) -+ const int result = pthread_setaffinity_np(thread_, -+ sizeof(mask), -+ &mask); -+#elif defined(WEBRTC_ANDROID) || defined(WEBRTC_GONK) - // Android. - const int result = syscall(__NR_sched_setaffinity, - pid_, - sizeof(mask), - &mask); - #else - // "Normal" Linux. - const int result = sched_setaffinity(pid_, -@@ -320,16 +353,20 @@ void ThreadPosix::Run() { - pid_ = GetThreadId(); - #endif - // The event the Start() is waiting for. - event_->Set(); - - if (set_thread_name_) { - #ifdef WEBRTC_LINUX - prctl(PR_SET_NAME, (unsigned long)name_, 0, 0, 0); -+#elif defined(__NetBSD__) -+ pthread_setname_np(pthread_self(), "%s", (void *)name_); -+#elif defined(WEBRTC_BSD) -+ pthread_set_name_np(pthread_self(), name_); - #endif - WEBRTC_TRACE(kTraceStateInfo, kTraceUtility, -1, - "Thread with name:%s started ", name_); - } else { - WEBRTC_TRACE(kTraceStateInfo, kTraceUtility, -1, - "Thread without name started"); - } - bool alive = true; -diff --git media/webrtc/trunk/webrtc/system_wrappers/source/trace_posix.cc media/webrtc/trunk/webrtc/system_wrappers/source/trace_posix.cc -index 2c7e59a..6f23fcb 100644 ---- media/webrtc/trunk/webrtc/system_wrappers/source/trace_posix.cc -+++ media/webrtc/trunk/webrtc/system_wrappers/source/trace_posix.cc -@@ -49,17 +49,17 @@ TracePosix::~TracePosix() { - WebRtc_Word32 TracePosix::AddTime(char* trace_message, - const TraceLevel level) const { - struct timeval system_time_high_res; - if (gettimeofday(&system_time_high_res, 0) == -1) { - return -1; - } - struct tm buffer; - const struct tm* system_time = -- localtime_r(&system_time_high_res.tv_sec, &buffer); -+ localtime_r((const time_t *)(&system_time_high_res.tv_sec), &buffer); - - const WebRtc_UWord32 ms_time = system_time_high_res.tv_usec / 1000; - WebRtc_UWord32 prev_tickCount = 0; - if (level == kTraceApiCall) { - prev_tickCount = prev_tick_count_; - prev_tick_count_ = ms_time; - } else { - prev_tickCount = prev_api_tick_count_; -diff --git media/webrtc/trunk/webrtc/typedefs.h media/webrtc/trunk/webrtc/typedefs.h -index 6334490..852ebaa 100644 ---- media/webrtc/trunk/webrtc/typedefs.h -+++ media/webrtc/trunk/webrtc/typedefs.h -@@ -16,17 +16,17 @@ - - // Reserved words definitions - // TODO(andrew): Remove this. - #define G_CONST const - - // For access to standard POSIXish features, use WEBRTC_POSIX instead of a - // more specific macro. - #if defined(WEBRTC_MAC) || defined(WEBRTC_LINUX) || \ -- defined(WEBRTC_ANDROID) -+ defined(WEBRTC_ANDROID) || defined(WEBRTC_BSD) - #define WEBRTC_POSIX - #endif - - // Processor architecture detection. For more info on what's defined, see: - // http://msdn.microsoft.com/en-us/library/b0084kay.aspx - // http://www.agner.org/optimize/calling_conventions.pdf - // or with gcc, run: "echo | gcc -E -dM -" - // TODO(andrew): replace WEBRTC_LITTLE_ENDIAN with WEBRTC_ARCH_LITTLE_ENDIAN. -diff --git media/webrtc/trunk/webrtc/video_engine/vie_defines.h media/webrtc/trunk/webrtc/video_engine/vie_defines.h -index 2cc18cc7..2c042a0 100644 ---- media/webrtc/trunk/webrtc/video_engine/vie_defines.h -+++ media/webrtc/trunk/webrtc/video_engine/vie_defines.h -@@ -168,17 +168,17 @@ inline int ChannelId(const int moduleId) { - - // Example: "Oct 10 2002 12:05:30 r". - #define BUILDINFO BUILDDATE TEXT(" ") BUILDTIME TEXT(" ") BUILDMODE - #define RENDER_MODULE_TYPE kRenderWindows - #endif - - // Linux specific. - #ifndef WEBRTC_ANDROID --#ifdef WEBRTC_LINUX -+#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) - // Build information macros. - #if defined(_DEBUG) - #define BUILDMODE "d" - #elif defined(DEBUG) - #define BUILDMODE "d" - #elif defined(NDEBUG) - #define BUILDMODE "r" - #else -diff --git media/webrtc/trunk/webrtc/voice_engine/voe_network_impl.cc media/webrtc/trunk/webrtc/voice_engine/voe_network_impl.cc -index 174abca..f8a2b2d 100644 ---- media/webrtc/trunk/webrtc/voice_engine/voe_network_impl.cc -+++ media/webrtc/trunk/webrtc/voice_engine/voe_network_impl.cc -@@ -467,17 +467,17 @@ int VoENetworkImpl::SetSendTOS(int channel, - int DSCP, - int priority, - bool useSetSockopt) - { - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1), - "SetSendTOS(channel=%d, DSCP=%d, useSetSockopt=%d)", - channel, DSCP, useSetSockopt); - --#if !defined(_WIN32) && !defined(WEBRTC_LINUX) && !defined(WEBRTC_MAC) -+#if !defined(_WIN32) && !defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD) && !defined(WEBRTC_MAC) - _shared->SetLastError(VE_FUNC_NOT_SUPPORTED, kTraceWarning, - "SetSendTOS() is not supported on this platform"); - return -1; - #endif - - #ifndef WEBRTC_EXTERNAL_TRANSPORT - if (!_shared->statistics().Initialized()) - { -@@ -523,17 +523,17 @@ int VoENetworkImpl::SetSendTOS(int channel, - return -1; - } - if (channelPtr->ExternalTransport()) - { - _shared->SetLastError(VE_EXTERNAL_TRANSPORT_ENABLED, kTraceError, - "SetSendTOS() external transport is enabled"); - return -1; - } --#if defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) -+#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - useSetSockopt = true; - WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_shared->instance_id(), -1), - " force useSetSockopt=true since there is no alternative" - " implementation"); - #endif - - return channelPtr->SetSendTOS(DSCP, priority, useSetSockopt); - #else -@@ -546,17 +546,17 @@ int VoENetworkImpl::SetSendTOS(int channel, - int VoENetworkImpl::GetSendTOS(int channel, - int& DSCP, - int& priority, - bool& useSetSockopt) - { - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1), - "GetSendTOS(channel=%d)", channel); - --#if !defined(_WIN32) && !defined(WEBRTC_LINUX) && !defined(WEBRTC_MAC) -+#if !defined(_WIN32) && !defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD) && !defined(WEBRTC_MAC) - _shared->SetLastError(VE_FUNC_NOT_SUPPORTED, kTraceWarning, - "GetSendTOS() is not supported on this platform"); - return -1; - #endif - #ifndef WEBRTC_EXTERNAL_TRANSPORT - if (!_shared->statistics().Initialized()) - { - _shared->SetLastError(VE_NOT_INITED, kTraceError); -diff --git media/webrtc/trunk/webrtc/voice_engine/voice_engine_defines.h media/webrtc/trunk/webrtc/voice_engine/voice_engine_defines.h -index 7d4c729..4104719 100644 ---- media/webrtc/trunk/webrtc/voice_engine/voice_engine_defines.h -+++ media/webrtc/trunk/webrtc/voice_engine/voice_engine_defines.h -@@ -409,41 +409,43 @@ namespace webrtc - - #else - #define ANDROID_NOT_SUPPORTED(stat) - #endif // #ifdef WEBRTC_LINUX - - // *** WEBRTC_MAC *** - // including iPhone - --#ifdef WEBRTC_MAC -+#if defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - - #include <pthread.h> - #include <sys/types.h> - #include <sys/socket.h> - #include <netinet/in.h> - #include <arpa/inet.h> - #include <stdio.h> - #include <string.h> - #include <stdlib.h> - #include <errno.h> - #include <sys/stat.h> - #include <unistd.h> - #include <fcntl.h> - #include <sched.h> - #include <sys/time.h> - #include <time.h> -+#if !defined(WEBRTC_BSD) - #include <AudioUnit/AudioUnit.h> - #if !defined(WEBRTC_IOS) - #include <CoreServices/CoreServices.h> - #include <CoreAudio/CoreAudio.h> - #include <AudioToolbox/DefaultAudioOutput.h> - #include <AudioToolbox/AudioConverter.h> - #include <CoreAudio/HostTime.h> - #endif -+#endif - - #define DWORD unsigned long int - #define WINAPI - #define LPVOID void * - #define FALSE 0 - #define TRUE 1 - #define SOCKADDR_IN struct sockaddr_in - #define UINT unsigned int -@@ -526,13 +528,13 @@ namespace webrtc - // Defines - // ---------------------------------------------------------------------------- - - #define IPHONE_NOT_SUPPORTED(stat) - #endif - - #else - #define IPHONE_NOT_SUPPORTED(stat) --#endif // #ifdef WEBRTC_MAC -+#endif // #if defined(WEBRTC_BSD) || defined(WEBRTC_MAC) - - - - #endif // WEBRTC_VOICE_ENGINE_VOICE_ENGINE_DEFINES_H diff --git media/webrtc/trunk/tools/gyp/pylib/gyp/generator/mozmake.py media/webrtc/trunk/tools/gyp/pylib/gyp/generator/mozmake.py index 338d0b7..2241d41 100644 --- media/webrtc/trunk/tools/gyp/pylib/gyp/generator/mozmake.py diff --git a/www/firefox/files/patch-bug844818 b/www/firefox/files/patch-bug844818 deleted file mode 100644 index 87151264c032..000000000000 --- a/www/firefox/files/patch-bug844818 +++ /dev/null @@ -1,126 +0,0 @@ -diff --git configure.in configure.in -index 7cd6e17..a1dbdf7 100644 ---- configure.in -+++ configure.in -@@ -9106,6 +9106,18 @@ elif test "${OS_TARGET}" = "Android"; th - fi - fi - -+# Keep libcubeb and audio_device backends in sync -+if test -n "$MOZ_ALSA"; then -+ EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D include_alsa_audio=1" -+else -+ EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D include_alsa_audio=0" -+fi -+if test -n "$MOZ_PULSEAUDIO"; then -+ EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D include_pulse_audio=1" -+else -+ EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D include_pulse_audio=0" -+fi -+ - # Don't try to compile sse4.1 code if toolchain doesn't support - if test -z "$HAVE_TOOLCHAIN_SUPPORT_MSSE4_1"; then - EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D yuv_disable_asm=1" -diff --git media/webrtc/trunk/webrtc/modules/audio_device/audio_device.gypi media/webrtc/trunk/webrtc/modules/audio_device/audio_device.gypi -index 8457737..dfc83ff 100644 ---- media/webrtc/trunk/webrtc/modules/audio_device/audio_device.gypi -+++ media/webrtc/trunk/webrtc/modules/audio_device/audio_device.gypi -@@ -45,11 +45,15 @@ - 'dummy/audio_device_utility_dummy.h', - ], - 'conditions': [ -- ['OS=="linux"', { -+ ['include_alsa_audio==1 or include_pulse_audio==1', { - 'include_dirs': [ - 'linux', - ], -- }], # OS==linux -+ 'defines': [ -+ # avoid pointless rename -+ 'WEBRTC_LINUX', -+ ], -+ }], # include_alsa_audio==1 or include_pulse_audio==1 - ['OS=="ios"', { - 'include_dirs': [ - 'ios', -@@ -74,14 +78,8 @@ - }], - ['include_internal_audio_device==1', { - 'sources': [ -- 'linux/alsasymboltable_linux.cc', -- 'linux/alsasymboltable_linux.h', -- 'linux/audio_device_alsa_linux.cc', -- 'linux/audio_device_alsa_linux.h', - 'linux/audio_device_utility_linux.cc', - 'linux/audio_device_utility_linux.h', -- 'linux/audio_mixer_manager_alsa_linux.cc', -- 'linux/audio_mixer_manager_alsa_linux.h', - 'linux/latebindingsymboltable_linux.cc', - 'linux/latebindingsymboltable_linux.h', - 'mac/audio_device_mac.cc', -@@ -116,28 +114,36 @@ - }, - }], - ['OS=="linux"', { -- 'defines': [ -- 'LINUX_ALSA', -- ], - 'link_settings': { - 'libraries': [ - '-ldl', - ], - }, -- 'conditions': [ -- ['include_pulse_audio==1', { -- 'defines': [ -- 'LINUX_PULSE', -- ], -- 'sources': [ -- 'linux/audio_device_pulse_linux.cc', -- 'linux/audio_device_pulse_linux.h', -- 'linux/audio_mixer_manager_pulse_linux.cc', -- 'linux/audio_mixer_manager_pulse_linux.h', -- 'linux/pulseaudiosymboltable_linux.cc', -- 'linux/pulseaudiosymboltable_linux.h', -- ], -- }], -+ }], -+ ['include_alsa_audio==1', { -+ 'defines': [ -+ 'LINUX_ALSA', -+ ], -+ 'sources': [ -+ 'linux/alsasymboltable_linux.cc', -+ 'linux/alsasymboltable_linux.h', -+ 'linux/audio_device_alsa_linux.cc', -+ 'linux/audio_device_alsa_linux.h', -+ 'linux/audio_mixer_manager_alsa_linux.cc', -+ 'linux/audio_mixer_manager_alsa_linux.h', -+ ], -+ }], -+ ['include_pulse_audio==1', { -+ 'defines': [ -+ 'LINUX_PULSE', -+ ], -+ 'sources': [ -+ 'linux/audio_device_pulse_linux.cc', -+ 'linux/audio_device_pulse_linux.h', -+ 'linux/audio_mixer_manager_pulse_linux.cc', -+ 'linux/audio_mixer_manager_pulse_linux.h', -+ 'linux/pulseaudiosymboltable_linux.cc', -+ 'linux/pulseaudiosymboltable_linux.h', - ], - }], - ['OS=="mac"', { -diff --git media/webrtc/webrtc_config.gypi media/webrtc/webrtc_config.gypi -index b504d3d..e2eb127 100644 ---- media/webrtc/webrtc_config.gypi -+++ media/webrtc/webrtc_config.gypi -@@ -9,7 +9,6 @@ - 'include_internal_video_render': 0, - 'clang_use_chrome_plugins': 0, - 'enable_protobuf': 0, -- 'include_pulse_audio': 0, - 'include_tests': 0, - 'use_system_libjpeg': 1, - 'use_system_libvpx': 1, diff --git a/www/firefox/files/patch-bug862759 b/www/firefox/files/patch-bug862759 deleted file mode 100644 index c6ff6607f75c..000000000000 --- a/www/firefox/files/patch-bug862759 +++ /dev/null @@ -1,10 +0,0 @@ ---- js/src/frontend/ParseMaps.cpp~ -+++ js/src/frontend/ParseMaps.cpp -@@ -134,5 +134,5 @@ frontend::InitAtomMap(JSContext *cx, frontend::AtomIndexMap *indices, HeapPtrAto - } - } - --template class AtomDecls<FullParseHandler>; --template class AtomDecls<SyntaxParseHandler>; -+template class frontend::AtomDecls<FullParseHandler>; -+template class frontend::AtomDecls<SyntaxParseHandler>; diff --git a/www/firefox/files/patch-bug876156 b/www/firefox/files/patch-bug876156 new file mode 100644 index 000000000000..84ecf6170671 --- /dev/null +++ b/www/firefox/files/patch-bug876156 @@ -0,0 +1,13 @@ +diff --git mfbt/Atomics.h mfbt/Atomics.h +index d79af6c..40b9336 100644 +--- mfbt/Atomics.h ++++ mfbt/Atomics.h +@@ -35,7 +35,7 @@ + */ + # if !defined(__linux__) && !defined(__OpenBSD__) && \ + (__cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__)) && \ +- __has_include(<atomic>) ++ __has_include_next(<atomic>) + # define MOZ_HAVE_CXX11_ATOMICS + # endif + /* diff --git a/www/firefox/files/patch-bug886181 b/www/firefox/files/patch-bug886181 new file mode 100644 index 000000000000..ed1c4df8348b --- /dev/null +++ b/www/firefox/files/patch-bug886181 @@ -0,0 +1,11 @@ +--- modules/libpref/src/init/all.js~ ++++ modules/libpref/src/init/all.js +@@ -193,7 +193,7 @@ pref("media.webm.enabled", true); + pref("media.dash.enabled", false); + #endif + #ifdef MOZ_GSTREAMER +-pref("media.gstreamer.enabled", false); ++pref("media.gstreamer.enabled", true); + #endif + #ifdef MOZ_WEBRTC + pref("media.navigator.enabled", true); diff --git a/www/firefox/files/patch-bug889699 b/www/firefox/files/patch-bug889699 new file mode 100644 index 000000000000..fef97da4ac50 --- /dev/null +++ b/www/firefox/files/patch-bug889699 @@ -0,0 +1,175 @@ +commit 7eb5827 +Author: Edwin Flores <eflores@mozilla.com> +Date: Sat Jul 20 12:03:08 2013 +1200 + + Bug 889699 - Make gstreamer backend return more accurate results for canPlayType() r=alessandro.d +--- + content/media/gstreamer/GStreamerFormatHelper.cpp | 90 +++++++++++++++++------ + 1 file changed, 66 insertions(+), 24 deletions(-) + +diff --git content/media/gstreamer/GStreamerFormatHelper.cpp content/media/gstreamer/GStreamerFormatHelper.cpp +index f05ff8f..39f1fdf 100644 +--- content/media/gstreamer/GStreamerFormatHelper.cpp ++++ content/media/gstreamer/GStreamerFormatHelper.cpp +@@ -6,7 +6,7 @@ + + #include "GStreamerFormatHelper.h" + #include "nsCharSeparatedTokenizer.h" +-#include "nsXPCOMStrings.h" ++#include "nsString.h" + #include "GStreamerLoader.h" + + #define ENTRY_FORMAT(entry) entry[0] +@@ -36,7 +36,7 @@ void GStreamerFormatHelper::Shutdown() { + } + } + +-char const *const GStreamerFormatHelper::mContainers[6][2] = { ++static char const *const sContainers[6][2] = { + {"video/mp4", "video/quicktime"}, + {"video/quicktime", "video/quicktime"}, + {"audio/mp4", "audio/x-m4a"}, +@@ -45,7 +45,7 @@ char const *const GStreamerFormatHelper::mContainers[6][2] = { + {"audio/mp3", "audio/mpeg, mpegversion=(int)1"}, + }; + +-char const *const GStreamerFormatHelper::mCodecs[9][2] = { ++static char const *const sCodecs[9][2] = { + {"avc1.42E01E", "video/x-h264"}, + {"avc1.42001E", "video/x-h264"}, + {"avc1.58A01E", "video/x-h264"}, +@@ -57,6 +57,15 @@ char const *const GStreamerFormatHelper::mCodecs[9][2] = { + {"mp3", "audio/mpeg, mpegversion=(int)1"}, + }; + ++static char const * const sDefaultCodecCaps[][2] = { ++ {"video/mp4", "video/x-h264"}, ++ {"video/quicktime", "video/x-h264"}, ++ {"audio/mp4", "audio/mpeg, mpegversion=(int)4"}, ++ {"audio/x-m4a", "audio/mpeg, mpegversion=(int)4"}, ++ {"audio/mp3", "audio/mpeg, layer=(int)3"}, ++ {"audio/mpeg", "audio/mpeg, layer=(int)3"} ++}; ++ + GStreamerFormatHelper::GStreamerFormatHelper() + : mFactories(nullptr), + mCookie(static_cast<uint32_t>(-1)) +@@ -66,15 +75,15 @@ GStreamerFormatHelper::GStreamerFormatHelper() + } + + mSupportedContainerCaps = gst_caps_new_empty(); +- for (unsigned int i = 0; i < G_N_ELEMENTS(mContainers); i++) { +- const char* capsString = mContainers[i][1]; ++ for (unsigned int i = 0; i < G_N_ELEMENTS(sContainers); i++) { ++ const char* capsString = sContainers[i][1]; + GstCaps* caps = gst_caps_from_string(capsString); + gst_caps_append(mSupportedContainerCaps, caps); + } + + mSupportedCodecCaps = gst_caps_new_empty(); +- for (unsigned int i = 0; i < G_N_ELEMENTS(mCodecs); i++) { +- const char* capsString = mCodecs[i][1]; ++ for (unsigned int i = 0; i < G_N_ELEMENTS(sCodecs); i++) { ++ const char* capsString = sCodecs[i][1]; + GstCaps* caps = gst_caps_from_string(capsString); + gst_caps_append(mSupportedCodecCaps, caps); + } +@@ -92,6 +101,41 @@ GStreamerFormatHelper::~GStreamerFormatHelper() { + g_list_free(mFactories); + } + ++static GstCaps * ++GetContainerCapsFromMIMEType(const char *aType) { ++ /* convert aMIMEType to gst container caps */ ++ const char* capsString = nullptr; ++ for (uint32_t i = 0; i < G_N_ELEMENTS(sContainers); i++) { ++ if (!strcmp(ENTRY_FORMAT(sContainers[i]), aType)) { ++ capsString = ENTRY_CAPS(sContainers[i]); ++ break; ++ } ++ } ++ ++ if (!capsString) { ++ /* we couldn't find any matching caps */ ++ return nullptr; ++ } ++ ++ return gst_caps_from_string(capsString); ++} ++ ++static GstCaps * ++GetDefaultCapsFromMIMEType(const char *aType) { ++ GstCaps *caps = GetContainerCapsFromMIMEType(aType); ++ ++ for (uint32_t i = 0; i < G_N_ELEMENTS(sDefaultCodecCaps); i++) { ++ if (!strcmp(sDefaultCodecCaps[i][0], aType)) { ++ GstCaps *tmp = gst_caps_from_string(sDefaultCodecCaps[i][1]); ++ ++ gst_caps_append(caps, tmp); ++ return caps; ++ } ++ } ++ ++ return nullptr; ++} ++ + bool GStreamerFormatHelper::CanHandleMediaType(const nsACString& aMIMEType, + const nsAString* aCodecs) { + if (!sLoadOK) { +@@ -101,7 +145,15 @@ bool GStreamerFormatHelper::CanHandleMediaType(const nsACString& aMIMEType, + const char *type; + NS_CStringGetData(aMIMEType, &type, NULL); + +- GstCaps* caps = ConvertFormatsToCaps(type, aCodecs); ++ GstCaps *caps; ++ if (aCodecs && !aCodecs->IsEmpty()) { ++ caps = ConvertFormatsToCaps(type, aCodecs); ++ } else { ++ // Get a minimal set of codec caps for this MIME type we should support so ++ // that we don't overreport MIME types we are able to play. ++ caps = GetDefaultCapsFromMIMEType(type); ++ } ++ + if (!caps) { + return false; + } +@@ -118,21 +170,11 @@ GstCaps* GStreamerFormatHelper::ConvertFormatsToCaps(const char* aMIMEType, + + unsigned int i; + +- /* convert aMIMEType to gst container caps */ +- const char* capsString = nullptr; +- for (i = 0; i < G_N_ELEMENTS(mContainers); i++) { +- if (!strcmp(ENTRY_FORMAT(mContainers[i]), aMIMEType)) { +- capsString = ENTRY_CAPS(mContainers[i]); +- break; +- } +- } +- +- if (!capsString) { +- /* we couldn't find any matching caps */ ++ GstCaps *caps = GetContainerCapsFromMIMEType(aMIMEType); ++ if (!caps) { + return nullptr; + } + +- GstCaps* caps = gst_caps_from_string(capsString); + /* container only */ + if (!aCodecs) { + return caps; +@@ -141,11 +183,11 @@ GstCaps* GStreamerFormatHelper::ConvertFormatsToCaps(const char* aMIMEType, + nsCharSeparatedTokenizer tokenizer(*aCodecs, ','); + while (tokenizer.hasMoreTokens()) { + const nsSubstring& codec = tokenizer.nextToken(); +- capsString = nullptr; ++ const char *capsString = nullptr; + +- for (i = 0; i < G_N_ELEMENTS(mCodecs); i++) { +- if (codec.EqualsASCII(ENTRY_FORMAT(mCodecs[i]))) { +- capsString = ENTRY_CAPS(mCodecs[i]); ++ for (i = 0; i < G_N_ELEMENTS(sCodecs); i++) { ++ if (codec.EqualsASCII(ENTRY_FORMAT(sCodecs[i]))) { ++ capsString = ENTRY_CAPS(sCodecs[i]); + break; + } + } diff --git a/www/firefox/files/patch-bug893397 b/www/firefox/files/patch-bug893397 index b9bd05aaa7f3..4d755c2ebb17 100644 --- a/www/firefox/files/patch-bug893397 +++ b/www/firefox/files/patch-bug893397 @@ -11,27 +11,27 @@ index 549ad06..2878d9f 100644 NECKO_WIFI=1 ;; Linux) -diff --git netwerk/wifi/Makefile.in netwerk/wifi/Makefile.in +diff --git netwerk/wifi/moz.build netwerk/wifi/moz.build index 07b01de..11706af 100644 ---- netwerk/wifi/Makefile.in -+++ netwerk/wifi/Makefile.in -@@ -32,6 +32,10 @@ CPPSRCS += nsWifiScannerMac.cpp - CMMSRCS = osx_corewlan.mm - endif - -+ifeq ($(OS_ARCH),FreeBSD) -+CPPSRCS += nsWifiScannerFreeBSD.cpp -+endif -+ - ifneq (,$(filter WINNT,$(OS_ARCH))) - CPPSRCS += nsWifiScannerWin.cpp - endif +--- netwerk/wifi/moz.build ++++ netwerk/wifi/moz.build +@@ -34,6 +34,10 @@ if CONFIG['OS_ARCH'] == 'Darwin': + CMMSRCS += [ + 'osx_corewlan.mm', + ] ++elif CONFIG['OS_ARCH'] == 'FreeBSD': ++ CPP_SOURCES += [ ++ 'nsWifiScannerFreeBSD.cpp', ++ ] + elif CONFIG['OS_ARCH'] == 'WINNT': + CPP_SOURCES += [ + 'nsWifiScannerWin.cpp', diff --git netwerk/wifi/nsWifiScannerFreeBSD.cpp netwerk/wifi/nsWifiScannerFreeBSD.cpp new file mode 100644 index 0000000..80d4cb6 --- /dev/null +++ netwerk/wifi/nsWifiScannerFreeBSD.cpp -@@ -0,0 +1,171 @@ +@@ -0,0 +1,172 @@ +/* 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/. */ @@ -158,10 +158,11 @@ index 0000000..80d4cb6 + + // log the data + LOG(( "FreeBSD access point: " -+ << "SSID: " << ssid << ", " -+ << "MAC: " << isr->isr_bssid << ", " -+ << "Strength: " << isr->isr_rssi ", " -+ << "Channel: " << isr->isr_freq << "MHz" )); ++ "SSID: %s, MAC: %02x-%02x-%02x-%02x-%02x-%02x, " ++ "Strength: %d, Channel: %dMHz\n", ++ ssid, isr->isr_bssid[0], isr->isr_bssid[1], isr->isr_bssid[2], ++ isr->isr_bssid[3], isr->isr_bssid[4], isr->isr_bssid[5], ++ isr->isr_rssi, isr->isr_freq)); + + // increment pointers + len -= isr->isr_len; diff --git a/www/firefox/files/patch-bug910875 b/www/firefox/files/patch-bug910875 new file mode 100644 index 000000000000..4f1d5a521e84 --- /dev/null +++ b/www/firefox/files/patch-bug910875 @@ -0,0 +1,102 @@ +diff --git media/webrtc/trunk/webrtc/modules/audio_device/audio_device_impl.cc media/webrtc/trunk/webrtc/modules/audio_device/audio_device_impl.cc +index f231b1e..6087696 100644 +--- media/webrtc/trunk/webrtc/modules/audio_device/audio_device_impl.cc ++++ media/webrtc/trunk/webrtc/modules/audio_device/audio_device_impl.cc +@@ -16,7 +16,9 @@ + #include <assert.h> + #include <string.h> + +-#if defined(_WIN32) ++#if defined(WEBRTC_DUMMY_AUDIO_BUILD) ++// do not include platform specific headers ++#elif defined(_WIN32) + #include "audio_device_utility_win.h" + #include "audio_device_wave_win.h" + #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) +@@ -32,14 +34,8 @@ + #include <stdlib.h> + #include "audio_device_utility_android.h" + #include "audio_device_jni_android.h" +-#elif defined(WEBRTC_LINUX) ++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) + #include "audio_device_utility_linux.h" +- #if defined(LINUX_ALSA) +- #include "audio_device_alsa_linux.h" +- #endif +- #if defined(LINUX_PULSE) +- #include "audio_device_pulse_linux.h" +- #endif + #elif defined(WEBRTC_IOS) + #include "audio_device_utility_ios.h" + #include "audio_device_ios.h" +@@ -47,6 +43,12 @@ + #include "audio_device_utility_mac.h" + #include "audio_device_mac.h" + #endif ++#if defined(LINUX_ALSA) ++ #include "audio_device_alsa_linux.h" ++#endif ++#if defined(LINUX_PULSE) ++ #include "audio_device_pulse_linux.h" ++#endif + #include "audio_device_dummy.h" + #include "audio_device_utility_dummy.h" + #include "critical_section_wrapper.h" +@@ -161,7 +163,7 @@ WebRtc_Word32 AudioDeviceModuleImpl::Che + #elif defined(WEBRTC_ANDROID) + platform = kPlatformAndroid; + WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "current platform is ANDROID"); +-#elif defined(WEBRTC_LINUX) ++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) + platform = kPlatformLinux; + WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "current platform is LINUX"); + #elif defined(WEBRTC_IOS) +@@ -309,7 +311,7 @@ int32_t AudioDeviceModuleImpl::CreatePlatformSpecificObjects() + + // Create the *Linux* implementation of the Audio Device + // +-#elif defined(WEBRTC_LINUX) ++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) + if ((audioLayer == kLinuxPulseAudio) || (audioLayer == kPlatformDefaultAudio)) + { + #if defined(LINUX_PULSE) +@@ -355,7 +357,7 @@ int32_t AudioDeviceModuleImpl::CreatePlatformSpecificObjects() + // + ptrAudioDeviceUtility = new AudioDeviceUtilityLinux(Id()); + } +-#endif // #if defined(WEBRTC_LINUX) ++#endif // #if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) + + // Create the *iPhone* implementation of the Audio Device + // +diff --git media/webrtc/trunk/webrtc/modules/audio_device/test/audio_device_test_api.cc media/webrtc/trunk/webrtc/modules/audio_device/test/audio_device_test_api.cc +index defd7f8..906c4a2 100644 +--- media/webrtc/trunk/webrtc/modules/audio_device/test/audio_device_test_api.cc ++++ media/webrtc/trunk/webrtc/modules/audio_device/test/audio_device_test_api.cc +@@ -197,7 +197,7 @@ class AudioDeviceAPITest: public testing::Test { + // Create default implementation instance + EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create( + kId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL); +-#elif defined(WEBRTC_LINUX) ++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) + EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create( + kId, AudioDeviceModule::kWindowsWaveAudio)) == NULL); + EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create( +@@ -1690,7 +1690,7 @@ TEST_F(AudioDeviceAPITest, CPULoad) { + + // TODO(kjellander): Fix flakiness causing failures on Windows. + // TODO(phoglund): Fix flakiness causing failures on Linux. +-#if !defined(_WIN32) && !defined(WEBRTC_LINUX) ++#if !defined(_WIN32) && !defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD) + TEST_F(AudioDeviceAPITest, StartAndStopRawOutputFileRecording) { + // NOTE: this API is better tested in a functional test + CheckInitialPlayoutStates(); +@@ -1759,7 +1759,7 @@ TEST_F(AudioDeviceAPITest, StartAndStopRawInputFileRecording) { + // - size of raw_input_not_recording.pcm shall be 0 + // - size of raw_input_not_recording.pcm shall be > 0 + } +-#endif // !WIN32 && !WEBRTC_LINUX ++#endif // !WIN32 && !WEBRTC_LINUX && !defined(WEBRTC_BSD) + + TEST_F(AudioDeviceAPITest, RecordingSampleRate) { + uint32_t sampleRate(0); diff --git a/www/firefox/files/patch-bug916216 b/www/firefox/files/patch-bug916216 new file mode 100644 index 000000000000..ca82967fa78c --- /dev/null +++ b/www/firefox/files/patch-bug916216 @@ -0,0 +1,39 @@ +--- media/webrtc/trunk/build/build_config.h~ ++++ media/webrtc/trunk/build/build_config.h +@@ -37,9 +37,15 @@ + #elif defined(_WIN32) + #define OS_WIN 1 + #define TOOLKIT_VIEWS 1 +-#elif defined(__FreeBSD__) ++#elif defined(__DragonFly__) ++#define OS_DRAGONFLY 1 ++#define TOOLKIT_GTK ++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + #define OS_FREEBSD 1 + #define TOOLKIT_GTK ++#elif defined(__NetBSD__) ++#define OS_NETBSD 1 ++#define TOOLKIT_GTK + #elif defined(__OpenBSD__) + #define OS_OPENBSD 1 + #define TOOLKIT_GTK +@@ -56,15 +62,15 @@ + + // For access to standard BSD features, use OS_BSD instead of a + // more specific macro. +-#if defined(OS_FREEBSD) || defined(OS_OPENBSD) ++#if defined(OS_DRAGONFLY) || defined(OS_FREEBSD) \ ++ || defined(OS_NETBSD) || defined(OS_OPENBSD) + #define OS_BSD 1 + #endif + + // For access to standard POSIXish features, use OS_POSIX instead of a + // more specific macro. +-#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_FREEBSD) || \ +- defined(OS_OPENBSD) || defined(OS_SOLARIS) || defined(OS_ANDROID) || \ +- defined(OS_NACL) ++#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) || \ ++ defined(OS_SOLARIS) || defined(OS_ANDROID) || defined(OS_NACL) + #define OS_POSIX 1 + #endif + diff --git a/www/firefox/files/patch-bug916589 b/www/firefox/files/patch-bug916589 new file mode 100644 index 000000000000..664a7b167314 --- /dev/null +++ b/www/firefox/files/patch-bug916589 @@ -0,0 +1,40 @@ +diff --git media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h +index 5b50785..7cf47d5 100644 +--- media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h ++++ media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h +@@ -31,11 +31,14 @@ + */ + +-#ifndef _SYS_QUEUE_H_ ++#if (defined(BSD) && !defined(__OpenBSD__)) || defined(DARWIN) ++#include_next <sys/queue.h> ++#elif !defined(_SYS_QUEUE_H_) + #define _SYS_QUEUE_H_ + +-#if !defined(__FreeBSD__) && !defined(DARWIN) + #include <stddef.h> +-#define __offsetof offsetof ++ ++#ifndef offsetof ++#define offsetof(type, field) ((size_t)(&((type *)0)->field)) + #endif + + #define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ +@@ -43,8 +46,6 @@ + (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \ + (var) = (tvar)) + +-// #define __offsetof(type, field) ((size_t)(&((type *)0)->field)) +- + /* + * This file defines four types of data structures: singly-linked lists, + * singly-linked tail queues, lists and tail queues. +@@ -285,7 +286,7 @@ struct { \ + (STAILQ_EMPTY((head)) ? \ + NULL : \ + ((struct type *) \ +- ((char *)((head)->stqh_last) - __offsetof(struct type, field)))) ++ ((char *)((head)->stqh_last) - offsetof(struct type, field)))) + + #define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) + diff --git a/www/firefox/files/patch-build-pgo-profileserver.py b/www/firefox/files/patch-build-pgo-profileserver.py index fdab788f8fe4..31a3a0889c0a 100644 --- a/www/firefox/files/patch-build-pgo-profileserver.py +++ b/www/firefox/files/patch-build-pgo-profileserver.py @@ -1,18 +1,11 @@ --- build/pgo/profileserver.py.orig 2011-02-24 21:49:47.000000000 +0100 +++ build/pgo/profileserver.py 2011-02-24 21:50:30.000000000 +0100 -@@ -43,13 +43,13 @@ if __name__ == '__main__': - t.setDaemon(True) # don't hang on exit - t.start() - -- automation.setServerInfo("localhost", PORT) -+ automation.setServerInfo("127.0.0.1", PORT) - automation.initializeProfile(PROFILE_DIRECTORY) - browserEnv = automation.environment() - browserEnv["XPCOM_DEBUG_BREAK"] = "warn" - browserEnv["MOZ_JAR_LOG_FILE"] = MOZ_JAR_LOG_FILE +@@ -59,7 +59,7 @@ if __name__ == '__main__': + env["MOZ_JAR_LOG_FILE"] = os.path.abspath(jarlog) + print "jarlog: %s" % env["MOZ_JAR_LOG_FILE"] -- url = "http://localhost:%d/index.html" % PORT -+ url = "http://127.0.0.1:%d/index.html" % PORT - appPath = os.path.join(SCRIPT_DIR, automation.DEFAULT_APP) - status = automation.runApp(url, browserEnv, appPath, PROFILE_DIRECTORY, {}, - debuggerInfo=debuggerInfo, +- cmdargs = ["http://localhost:%d/index.html" % PORT] ++ cmdargs = ["http://127.0.0.1:%d/index.html" % PORT] + runner = FirefoxRunner(profile=profile, + binary=build.get_binary_path(where="staged-package"), + cmdargs=cmdargs, diff --git a/www/firefox/files/patch-duckduckgo b/www/firefox/files/patch-duckduckgo index de6b18f3afc0..bc3a7e321f41 100644 --- a/www/firefox/files/patch-duckduckgo +++ b/www/firefox/files/patch-duckduckgo @@ -1,11 +1,7 @@ diff -r f2fa4ae74ee1 browser/locales/en-US/chrome/browser-region/region.properties --- browser/locales/en-US/chrome/browser-region/region.properties Mon Oct 24 22:54:18 2011 +0300 +++ browser/locales/en-US/chrome/browser-region/region.properties Tue Oct 25 21:13:40 2011 -0400 -@@ -4,15 +4,16 @@ - # Default search engine - browser.search.defaultenginename=Google - - # Search engine order (order displayed in the search bar dropdown)s +@@ -9,6 +9,7 @@ browser.search.order.1=Google browser.search.order.2=Yahoo browser.search.order.3=Bing @@ -13,11 +9,6 @@ diff -r f2fa4ae74ee1 browser/locales/en-US/chrome/browser-region/region.properti # This is the default set of web based feed handlers shown in the reader # selection UI - browser.contentHandlers.types.0.title=My Yahoo! - browser.contentHandlers.types.0.uri=http://add.my.yahoo.com/rss?url=%s - - # increment this number when anything gets changed in the list below. This will - # cause Firefox to re-read these prefs and inject any new handlers into the --- /dev/null 2013-02-09 00:33:00.000000000 +0100 +++ browser/locales/en-US/searchplugins/duckduckgo.xml 2013-02-09 00:40:19.000000000 +0100 @@ -0,0 +1,11 @@ diff --git a/www/firefox/files/patch-js-src-methodjit-MethodJIT.cpp b/www/firefox/files/patch-js-src-methodjit-MethodJIT.cpp deleted file mode 100644 index d29c15ccc05a..000000000000 --- a/www/firefox/files/patch-js-src-methodjit-MethodJIT.cpp +++ /dev/null @@ -1,20 +0,0 @@ ---- js/src/methodjit/MethodJIT.cpp~ -+++ js/src/methodjit/MethodJIT.cpp -@@ -171,7 +171,7 @@ - - JS_STATIC_ASSERT(offsetof(FrameRegs, sp) == 0); - --#if defined(__linux__) && defined(JS_CPU_X64) -+#if defined(__ELF__) && defined(JS_CPU_X64) - # define SYMBOL_STRING_RELOC(name) #name "@plt" - #else - # define SYMBOL_STRING_RELOC(name) SYMBOL_STRING(name) -@@ -149,7 +149,7 @@ - - #if defined(XP_MACOSX) - # define HIDE_SYMBOL(name) ".private_extern _" #name --#elif defined(__linux__) -+#elif defined(__ELF__) - # define HIDE_SYMBOL(name) ".hidden" #name - #else - # define HIDE_SYMBOL(name) diff --git a/www/firefox/files/patch-media-webrtc-trunk-testing-gtest-include-gtest-internal-gtest-port.h b/www/firefox/files/patch-media-webrtc-trunk-testing-gtest-include-gtest-internal-gtest-port.h deleted file mode 100644 index 14c7d3a684a9..000000000000 --- a/www/firefox/files/patch-media-webrtc-trunk-testing-gtest-include-gtest-internal-gtest-port.h +++ /dev/null @@ -1,17 +0,0 @@ ---- media/webrtc/trunk/testing/gtest/include/gtest/internal/gtest-port.h.orig 2012-12-09 16:28:45.641625374 +0100 -+++ media/webrtc/trunk/testing/gtest/include/gtest/internal/gtest-port.h 2012-12-09 19:09:11.664625374 +0100 -@@ -490,10 +490,10 @@ - # define GTEST_ENV_HAS_TR1_TUPLE_ 1 - # endif - --// C++11 specifies that <tuple> provides std::tuple. Users can't use --// gtest in C++11 mode until their standard library is at least that --// compliant. --# if GTEST_LANG_CXX11 -+// C++11 specifies that <tuple> provides std::tuple. Use that if gtest is used -+// in C++11 mode and libstdc++ isn't very old (binaries targeting OS X 10.6 -+// can build with clang but need to use gcc4.2's libstdc++). -+# if GTEST_LANG_CXX11 && (!defined(__GLIBCXX__) || __GLIBCXX__ > 20110325) - # define GTEST_ENV_HAS_STD_TUPLE_ 1 - # endif - diff --git a/www/firefox/files/patch-no-videoio.h b/www/firefox/files/patch-no-videoio.h new file mode 100644 index 000000000000..c20c0e039827 --- /dev/null +++ b/www/firefox/files/patch-no-videoio.h @@ -0,0 +1,22 @@ +--- 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> diff --git a/www/libxul/Makefile b/www/libxul/Makefile index 1a51c10641cf..0623fa36bda6 100644 --- a/www/libxul/Makefile +++ b/www/libxul/Makefile @@ -2,7 +2,7 @@ # $FreeBSD$ PORTNAME= libxul -DISTVERSION= 17.0.8 +DISTVERSION= 24.0 CATEGORIES?= www devel MASTER_SITES= MOZILLA/firefox/releases/${DISTVERSION}esr/source DISTNAME= firefox-${DISTVERSION}esr.source @@ -10,14 +10,16 @@ DISTNAME= firefox-${DISTVERSION}esr.source MAINTAINER?= gecko@FreeBSD.org COMMENT?= Mozilla runtime package that can be used to bootstrap XUL+XPCOM apps -BUILD_DEPENDS= nspr>=4.9.2:${PORTSDIR}/devel/nspr \ - nss>=3.13.6_1:${PORTSDIR}/security/nss \ - sqlite3>=3.7.13:${PORTSDIR}/databases/sqlite3 \ +BUILD_DEPENDS= nspr>=4.10:${PORTSDIR}/devel/nspr \ + nss>=3.15:${PORTSDIR}/security/nss \ + sqlite3>=3.7.16.1:${PORTSDIR}/databases/sqlite3 \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3 \ cairo>=1.10.2_1,1:${PORTSDIR}/graphics/cairo \ + v4l_compat>0:${PORTSDIR}/multimedia/v4l_compat \ unzip:${PORTSDIR}/archivers/unzip +LIB_DEPENDS= libv4l2.so:${PORTSDIR}/multimedia/libv4l -WRKSRC= ${WRKDIR}/mozilla-esr17 +WRKSRC= ${WRKDIR}/mozilla-esr24 CONFLICTS= libxul-1.9.* USE_AUTOTOOLS= autoconf213:env @@ -29,8 +31,8 @@ WANT_PERL= yes ALL_TARGET= default GNU_CONFIGURE= yes USE_BZIP2= yes -USES= pkgconfig gmake USE_GL= gl +USE_DOS2UNIX= media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp MAKE_ENV= SKIP_GRE_REGISTRATION=1 mozappdir=${PREFIX}/lib/${MOZILLA} LDFLAGS+= -Wl,-rpath,${PREFIX}/lib/${MOZ_RPATH} USE_LDCONFIG= ${PREFIX}/lib/${MOZILLA} @@ -38,6 +40,7 @@ USE_LDCONFIG= ${PREFIX}/lib/${MOZILLA} MOZ_OPTIONS?= --enable-application=xulrunner MOZ_EXTENSIONS= default,cookie,permissions USE_GECKO= gecko +OBJDIR_BUILD= # in-tree build broken after bug 789837 MOZILLA_EXEC_NAME=xulrunner USE_MOZILLA= # empty MOZILLA_PLIST_DIRS= bin include lib share/idl @@ -45,7 +48,13 @@ PLIST_DIRSTRY= share/idl MOZ_PKGCONFIG_FILES= libxul-embedding libxul mozilla-js \ mozilla-plugin +OPTIONS_DEFAULT=GSTREAMER + .include "${.CURDIR}/../../www/firefox/Makefile.options" + +# OSS is gone after bug 852401 +OPTIONS_SINGLE_AUDIO:=${OPTIONS_SINGLE_AUDIO:S/OSS//} + .include <bsd.port.pre.mk> .if ${USE_MOZILLA:M-nss} @@ -53,6 +62,8 @@ MOZ_PKGCONFIG_FILES+= mozilla-nss .endif post-patch: + @${REINPLACE_CMD} -e '/MOZPNG/s/=[0-9]*/=10511/' \ + ${WRKSRC}/configure.in @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${WRKSRC}/xulrunner/stub/nsXULStub.cpp diff --git a/www/libxul/distinfo b/www/libxul/distinfo index 8423f8c9a451..278ae2dcd950 100644 --- a/www/libxul/distinfo +++ b/www/libxul/distinfo @@ -1,2 +1,2 @@ -SHA256 (firefox-17.0.8esr.source.tar.bz2) = 87f846d0cc6e1b2f4c1baeb58d2123ffbc8c166a1ec81a3b1e0551fbbd6ef1e8 -SIZE (firefox-17.0.8esr.source.tar.bz2) = 90765879 +SHA256 (firefox-24.0esr.source.tar.bz2) = 3872f7c4c7b3f1f3f06dd3e4f7cc97b59a6857085af8f2df56820185e3d5cadb +SIZE (firefox-24.0esr.source.tar.bz2) = 119722621 diff --git a/www/libxul/files/extra-bug780531 b/www/libxul/files/extra-bug780531 index aa3547c397a4..26859a9bde10 100644 --- a/www/libxul/files/extra-bug780531 +++ b/www/libxul/files/extra-bug780531 @@ -1,13 +1,24 @@ --- configure.in~ +++ configure.in -@@ -5151,8 +5148,8 @@ fi +@@ -5364,15 +5364,18 @@ AC_SUBST(MOZ_SRTP) - AC_SUBST(MOZ_WEBRTC) - --case "$target_cpu" in --arm*) + dnl Use integers over floats for audio on B2G and Android, because audio + dnl backends for those platforms don't support floats. +-if test "$OS_TARGET" = "Android"; then +case "$target" in -+arm-*-linux*|*-dragonfly*|*-freebsd*|*-netbsd*|*-openbsd*) - MOZ_SAMPLE_TYPE_S16LE=1 - AC_DEFINE(MOZ_SAMPLE_TYPE_S16LE) - AC_SUBST(MOZ_SAMPLE_TYPE_S16LE) ++*-android*|*-linuxandroid*|*-dragonfly*|*-freebsd*|*-netbsd*|*-openbsd*) + MOZ_SAMPLE_TYPE_S16=1 + AC_DEFINE(MOZ_SAMPLE_TYPE_S16) + AC_SUBST(MOZ_SAMPLE_TYPE_S16) +-else ++;; ++*) + MOZ_SAMPLE_TYPE_FLOAT32=1 + AC_DEFINE(MOZ_SAMPLE_TYPE_FLOAT32) + AC_SUBST(MOZ_SAMPLE_TYPE_FLOAT32) +-fi ++;; ++esac + + dnl ======================================================== + dnl = Disable Speech API code diff --git a/www/libxul/files/patch-alsapulse b/www/libxul/files/patch-alsapulse deleted file mode 100644 index f0c38d347bea..000000000000 --- a/www/libxul/files/patch-alsapulse +++ /dev/null @@ -1,114 +0,0 @@ -diff --git configure.in configure.in -index 5980b76..11f5f77 100644 ---- configure.in -+++ configure.in -@@ -5600,13 +5600,25 @@ dnl ======================================================== - dnl = Check alsa availability on Linux if using sydneyaudio - dnl ======================================================== - -+MOZ_ARG_ENABLE_BOOL(alsa, -+[ --enable-alsa Enable Alsa support (default on Linux)], -+MOZ_ALSA=1, -+MOZ_ALSA= MOZ_ALSA_FORCE=$enableval) -+ - dnl If using sydneyaudio with Linux, ensure that the alsa library is available --if test -n "$MOZ_SYDNEYAUDIO" -a "$OS_TARGET" = "Linux"; then -+if test -n "$MOZ_SYDNEYAUDIO" -a "$OS_TARGET" = "Linux" -a "$MOZ_ALSA_FORCE" != "no"; then -+ MOZ_ALSA=1 -+fi -+ -+if test -n "$MOZ_ALSA"; then -+ AC_DEFINE(MOZ_CUBEB) - PKG_CHECK_MODULES(MOZ_ALSA, alsa, , - [echo "$MOZ_ALSA_PKG_ERRORS" - AC_MSG_ERROR([Need alsa for Ogg, Wave or WebM decoding on Linux. Disable with --disable-ogg --disable-wave --disable-webm. (On Ubuntu, you might try installing the package libasound2-dev.)])]) - fi - -+AC_SUBST(MOZ_ALSA) -+ - dnl ======================================================== - dnl = Enable PulseAudio - dnl ======================================================== -diff --git media/libcubeb/src/Makefile.in media/libcubeb/src/Makefile.in -index 5ab4dd8..c8df26f 100644 ---- media/libcubeb/src/Makefile.in -+++ media/libcubeb/src/Makefile.in -@@ -24,10 +24,6 @@ endif - - ifeq ($(OS_TARGET),Android) - # No Android implementation of libcubeb yet. --else ifeq ($(OS_TARGET),Linux) --CSRCS = \ -- cubeb_alsa.c \ -- $(NULL) - endif - - ifeq ($(OS_TARGET),Darwin) -@@ -42,6 +38,12 @@ CSRCS = \ - $(NULL) - endif - -+ifdef MOZ_ALSA -+CSRCS = \ -+ cubeb_alsa.c \ -+ $(NULL) -+endif -+ - ifdef MOZ_PULSEAUDIO - CSRCS = \ - cubeb_pulse.c \ -diff --git media/libsydneyaudio/src/Makefile.in media/libsydneyaudio/src/Makefile.in -index 8dda8ce..b19641d 100644 ---- media/libsydneyaudio/src/Makefile.in -+++ media/libsydneyaudio/src/Makefile.in -@@ -30,10 +30,6 @@ else ifeq ($(MOZ_WIDGET_TOOLKIT),android) - CSRCS = \ - sydney_audio_android.c \ - $(NULL) --else ifeq ($(OS_ARCH),Linux) --CSRCS = \ -- sydney_audio_alsa.c \ -- $(NULL) - endif - - ifeq ($(OS_ARCH),WINNT) -@@ -68,6 +64,18 @@ CSRCS = \ - $(NULL) - endif - -+ifdef MOZ_ALSA -+CSRCS = \ -+ sydney_audio_alsa.c \ -+ $(NULL) -+endif -+ -+ifdef MOZ_PULSEAUDIO -+CSRCS = \ -+ sydney_audio_pulseaudio.c \ -+ $(NULL) -+endif -+ - ifeq ($(OS_ARCH),WINNT) - OS_LIBS += winmm.lib - endif -diff --git toolkit/library/Makefile.in toolkit/library/Makefile.in -index 43384e9..e46a6e3 100644 ---- toolkit/library/Makefile.in -+++ toolkit/library/Makefile.in -@@ -370,14 +370,11 @@ endif - - EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,gkmedias,$(DIST)/lib) - --ifdef MOZ_SYDNEYAUDIO --ifeq ($(OS_ARCH),Linux) -+ifneq (,$(MOZ_CUBEB)$(MOZ_SYDNEYAUDIO)) -+ifdef MOZ_ALSA - EXTRA_DSO_LDOPTS += $(MOZ_ALSA_LIBS) - endif --endif -- - ifdef MOZ_PULSEAUDIO --ifdef MOZ_CUBEB - EXTRA_DSO_LDOPTS += $(MOZ_PULSEAUDIO_LIBS) - endif - endif diff --git a/www/libxul/files/patch-bug685258 b/www/libxul/files/patch-bug685258 deleted file mode 100644 index ead2d3858209..000000000000 --- a/www/libxul/files/patch-bug685258 +++ /dev/null @@ -1,17 +0,0 @@ -# HG changeset patch -# User Oleg Romashin <romaxa@gmail.com> -# Parent a2291c212856ad27622416e83c8311b6a33b52f1 -Bug 685258 - Pulse audio backend does not check provided playback and crashes r=derf - -diff --git a/content/media/nsAudioStream.cpp b/content/media/nsAudioStream.cpp ---- content/media/nsAudioStream.cpp -+++ content/media/nsAudioStream.cpp -@@ -429,7 +429,7 @@ nsresult nsNativeAudioStream::Init(PRInt32 aNumChannels, PRInt32 aRate, SampleFo - mFormat = aFormat; - - if (sa_stream_create_pcm(reinterpret_cast<sa_stream_t**>(&mAudioHandle), -- NULL, -+ "Mozilla", - SA_MODE_WRONLY, - SA_PCM_FORMAT_S16_NE, - aRate, diff --git a/www/libxul/files/patch-bug713802 b/www/libxul/files/patch-bug713802 deleted file mode 100644 index 7d3cc4dad110..000000000000 --- a/www/libxul/files/patch-bug713802 +++ /dev/null @@ -1,163 +0,0 @@ -commit 20586fa -Author: Karl Tomlinson <karlt+@karlt.net> -Date: Thu Sep 27 18:35:06 2012 +1200 - - b=713802 default enable GIO support and disable GnomeVFS r=glandium - - --HG-- - extra : transplant_source : wk%ADr%CA%8EN%AE%C93p/p%0A%26%0E%1D0%F20 ---- - browser/confvars.sh | 2 +- - configure.in | 20 ++++++++++---------- - xulrunner/confvars.sh | 2 +- - 3 files changed, 12 insertions(+), 12 deletions(-) - -diff --git browser/confvars.sh browser/confvars.sh -index 40ab494..eae5645 100755 ---- browser/confvars.sh -+++ browser/confvars.sh -@@ -21,7 +21,7 @@ MOZ_SERVICES_AITC=1 - MOZ_SERVICES_NOTIFICATIONS=1 - MOZ_SERVICES_SYNC=1 - MOZ_APP_VERSION=$FIREFOX_VERSION --MOZ_EXTENSIONS_DEFAULT=" gnomevfs" -+MOZ_EXTENSIONS_DEFAULT=" gio" - # MOZ_APP_DISPLAYNAME will be set by branding/configure.sh - # Changing MOZ_*BRANDING_DIRECTORY requires a clobber to ensure correct results, - # because branding dependencies are broken. -diff --git configure.in configure.in -index 87a9391..2118651 100644 ---- configure.in -+++ configure.in -@@ -4846,21 +4846,21 @@ dnl ======================================================== - - if test "$MOZ_X11" - then -- dnl build the gnomevfs extension by default only when the -+ dnl build the GIO extension by default only when the - dnl GTK2 toolkit is in use. - if test "$MOZ_ENABLE_GTK2" - then -- MOZ_ENABLE_GNOMEVFS=1 -+ MOZ_ENABLE_GIO=1 - MOZ_ENABLE_GCONF=1 - fi - - dnl ======================================================== - dnl = GnomeVFS support module - dnl ======================================================== -- MOZ_ARG_DISABLE_BOOL(gnomevfs, -- [ --disable-gnomevfs Disable GnomeVFS support ], -- MOZ_ENABLE_GNOMEVFS=, -- MOZ_ENABLE_GNOMEVFS=force) -+ MOZ_ARG_ENABLE_BOOL(gnomevfs, -+ [ --enable-gnomevfs Enable GnomeVFS support (default: disabled)], -+ MOZ_ENABLE_GNOMEVFS=force, -+ MOZ_ENABLE_GNOMEVFS=) - - if test "$MOZ_ENABLE_GNOMEVFS" - then -@@ -4884,10 +4884,10 @@ then - dnl ======================================================== - dnl = GIO support module - dnl ======================================================== -- MOZ_ARG_ENABLE_BOOL(gio, -- [ --enable-gio Enable GIO support (default: disabled)], -- MOZ_ENABLE_GIO=force, -- MOZ_ENABLE_GIO=) -+ MOZ_ARG_DISABLE_BOOL(gio, -+ [ --disable-gio Disable GIO support], -+ MOZ_ENABLE_GIO=, -+ MOZ_ENABLE_GIO=force) - - if test "$MOZ_ENABLE_GIO" -a "$MOZ_ENABLE_GTK2" - then -diff --git xulrunner/confvars.sh xulrunner/confvars.sh -index 2fa6ead..5fe2c3d 100755 ---- xulrunner/confvars.sh -+++ xulrunner/confvars.sh -@@ -10,5 +10,5 @@ MOZ_XULRUNNER=1 - MOZ_CHROME_FILE_FORMAT=omni - MOZ_APP_VERSION=$MOZILLA_VERSION - MOZ_PLACES=1 --MOZ_EXTENSIONS_DEFAULT=" gnomevfs" -+MOZ_EXTENSIONS_DEFAULT=" gio" - MOZ_URL_CLASSIFIER=1 - -commit d884d75 -Author: Karl Tomlinson <karlt+@karlt.net> -Date: Thu Sep 27 18:34:44 2012 +1200 - - b=713802 disable gnomevfs extension without --enable-gnomevfs r=glandium - - --HG-- - extra : transplant_source : i%07%81%E9%90_%C1%05b%194%9B%1E%93%FC%03%279%F9%8A ---- - configure.in | 12 +++--------- - 1 file changed, 3 insertions(+), 9 deletions(-) - -diff --git configure.in configure.in -index f2b4041..87a9391 100644 ---- configure.in -+++ configure.in -@@ -4875,12 +4875,6 @@ then - fi - MOZ_ENABLE_GNOMEVFS= - ]) -- else -- if test `echo "$MOZ_EXTENSIONS" | grep -c gnomevfs` -ne 0; then -- PKG_CHECK_MODULES(MOZ_GNOMEVFS, gnome-vfs-2.0 >= $GNOMEVFS_VERSION gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION,[ -- MOZ_GNOMEVFS_LIBS=`echo $MOZ_GNOMEVFS_LIBS | sed 's/-llinc\>//'` -- ]) -- fi - fi - - AC_SUBST(MOZ_ENABLE_GNOMEVFS) -@@ -5967,10 +5961,10 @@ MOZ_ARG_ENABLE_STRING(extensions, - done], - MOZ_EXTENSIONS="$MOZ_EXTENSIONS_DEFAULT") - --if test -z "$MOZ_ENABLE_GNOMEVFS" -a -z "$MOZ_GNOMEVFS_LIBS" -a `echo "$MOZ_EXTENSIONS" | grep -c gnomevfs` -ne 0; then -+if test -z "$MOZ_ENABLE_GNOMEVFS" -a `echo "$MOZ_EXTENSIONS" | grep -c gnomevfs` -ne 0; then - # Suppress warning on non-X11 platforms - if test -n "$MOZ_X11"; then -- AC_MSG_WARN([Cannot build gnomevfs without required libraries. Removing gnomevfs from MOZ_EXTENSIONS.]) -+ AC_MSG_WARN([Removing gnomevfs from MOZ_EXTENSIONS due to no --enable-gnomevfs.]) - fi - MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gnomevfs||'` - fi -@@ -5983,7 +5977,7 @@ fi - if test -z "$MOZ_ENABLE_GIO" -a `echo "$MOZ_EXTENSIONS" | grep -c gio` -ne 0; then - # Suppress warning on non-X11 platforms - if test -n "$MOZ_X11"; then -- AC_MSG_WARN([Cannot build gio without required libraries. Removing gio from MOZ_EXTENSIONS.]) -+ AC_MSG_WARN([Removing gio from MOZ_EXTENSIONS due to --disable-gio.]) - fi - MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gio||'` - fi - -commit ddedeea -Author: Karl Tomlinson <karlt+@karlt.net> -Date: Thu Sep 27 13:47:19 2012 +1200 - - b=713802 link gio extension against libxul for tracemalloc stack functions r=bsmedberg - - --HG-- - extra : transplant_source : %C8%A3o%BE%A0z%F7%C8%8A%E6%0E%D4s%7D%90%9C%D9%0F%06%7E ---- - extensions/gio/Makefile.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git extensions/gio/Makefile.in extensions/gio/Makefile.in -index 46412c4..ccf2846 100644 ---- extensions/gio/Makefile.in -+++ extensions/gio/Makefile.in -@@ -23,7 +23,7 @@ LOCAL_INCLUDES = $(MOZ_GIO_CFLAGS) - - EXTRA_DSO_LDOPTS = \ - $(XPCOM_GLUE_LDOPTS) \ -- $(NSPR_LIBS) \ -+ $(MOZ_COMPONENT_LIBS) \ - $(MOZ_GIO_LIBS) \ - $(NULL) - diff --git a/www/libxul/files/patch-bug722975 b/www/libxul/files/patch-bug722975 deleted file mode 100644 index 46a3381b9375..000000000000 --- a/www/libxul/files/patch-bug722975 +++ /dev/null @@ -1,61 +0,0 @@ -# HG changeset patch -# Parent 9d3c9b863c697634e434b687d456bb82fa794ecf -# User Uli Schlachter <psychon@znc.in> -Bug 722975 - --enable-system-cairo build is broken after Bug 715658 fixed - - -diff --git a/gfx/thebes/gfxPlatform.cpp b/gfx/thebes/gfxPlatform.cpp ---- gfx/thebes/gfxPlatform.cpp -+++ gfx/thebes/gfxPlatform.cpp -@@ -484,21 +484,19 @@ gfxPlatform::CreateDrawTargetForSurface( - - cairo_user_data_key_t kSourceSurface; - - void SourceBufferDestroy(void *srcBuffer) - { - static_cast<SourceSurface*>(srcBuffer)->Release(); - } - --void SourceSnapshotDetached(cairo_surface_t *nullSurf) -+void SourceSnapshotDetached(void *nullSurf) - { -- gfxImageSurface* origSurf = -- static_cast<gfxImageSurface*>(cairo_surface_get_user_data(nullSurf, &kSourceSurface)); -- -+ gfxImageSurface *origSurf = static_cast<gfxImageSurface*>(nullSurf); - origSurf->SetData(&kSourceSurface, NULL, NULL); - } - - RefPtr<SourceSurface> - gfxPlatform::GetSourceSurfaceForSurface(DrawTarget *aTarget, gfxASurface *aSurface) - { - void *userData = aSurface->GetData(&kSourceSurface); - -@@ -588,24 +586,19 @@ gfxPlatform::GetSourceSurfaceForSurface( - } - - srcBuffer = Factory::CreateWrappingDataSourceSurface(imgSurface->Data(), - imgSurface->Stride(), - size, format); - - } - -- cairo_surface_t *nullSurf = -- cairo_null_surface_create(CAIRO_CONTENT_COLOR_ALPHA); -- cairo_surface_set_user_data(nullSurf, -- &kSourceSurface, -- imgSurface, -- NULL); -- cairo_surface_attach_snapshot(imgSurface->CairoSurface(), nullSurf, SourceSnapshotDetached); -- cairo_surface_destroy(nullSurf); -+ cairo_surface_set_mime_data(imgSurface->CairoSurface(), "mozilla/magic", -+ (const unsigned char *) "data", 4, -+ SourceSnapshotDetached, imgSurface.get()); - } - - srcBuffer->AddRef(); - aSurface->SetData(&kSourceSurface, srcBuffer, SourceBufferDestroy); - - return srcBuffer; - } - diff --git a/www/libxul/files/patch-bug732340 b/www/libxul/files/patch-bug732340 deleted file mode 100644 index 95756678bd0f..000000000000 --- a/www/libxul/files/patch-bug732340 +++ /dev/null @@ -1,13 +0,0 @@ ---- gfx/harfbuzz/src/hb-ot-layout.cc.orig 2012-06-24 22:14:46.463741874 -0400 -+++ gfx/harfbuzz/src/hb-ot-layout.cc 2012-06-24 22:15:06.784770042 -0400 -@@ -537,4 +537,10 @@ hb_ot_layout_position_finish (hb_face_t - GPOS::position_finish (buffer); - } - -+#if !defined(__clang__) && defined(__GNUC__) && __GNUC_MINOR__ <= 3 -+template int SortedArrayOf<Record<LangSys> >::search<unsigned int>(unsigned int const &) const; -+template int SortedArrayOf<Record<Script> >::search<unsigned int>(unsigned int const &) const; -+template int SortedArrayOf<IntType<unsigned short> >::search<unsigned int>(unsigned int const &) const; -+template int SortedArrayOf<RangeRecord>::search<unsigned int>(unsigned int const &) const; -+#endif - diff --git a/www/libxul/files/patch-bug753046 b/www/libxul/files/patch-bug753046 deleted file mode 100644 index 3d99258b8323..000000000000 --- a/www/libxul/files/patch-bug753046 +++ /dev/null @@ -1,1207 +0,0 @@ -# Bug 753046 - Add support for DragonFly/NetBSD - -$NetBSD: patch-dom_plugins_ipc_PluginModuleChild.cpp,v 1.1 2012/03/06 12:34:09 ryoon Exp $ - ---- dom/plugins/ipc/PluginModuleChild.cpp.orig 2011-12-20 23:28:14.000000000 +0000 -+++ dom/plugins/ipc/PluginModuleChild.cpp -@@ -5,6 +5,7 @@ - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - - #ifdef MOZ_WIDGET_QT -+#include <unistd.h> // for _exit() - #include <QtCore/QTimer> - #include "nsQAppInstance.h" - #include "NestedLoopTimer.h" -@@ -228,7 +228,7 @@ PluginModuleChild::Init(const std::strin - - // TODO: use PluginPRLibrary here - --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) - mShutdownFunc = - (NP_PLUGINSHUTDOWN) PR_FindFunctionSymbol(mLibrary, "NP_Shutdown"); - -@@ -1790,7 +1790,7 @@ PluginModuleChild::AnswerNP_GetEntryPoin - PLUGIN_LOG_DEBUG_METHOD; - AssertPluginThread(); - --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) - return true; - #elif defined(OS_WIN) || defined(OS_MACOSX) - *_retval = mGetEntryPointsFunc(&mFunctions); -@@ -1823,7 +1823,7 @@ PluginModuleChild::AnswerNP_Initialize(N - SendBackUpXResources(FileDescriptor(xSocketFd, false/*don't close*/)); - #endif - --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) - *_retval = mInitializeFunc(&sBrowserFuncs, &mFunctions); - return true; - #elif defined(OS_WIN) || defined(OS_MACOSX) -$NetBSD: patch-dom_plugins_ipc_PluginModuleChild.h,v 1.1 2012/03/06 12:34:09 ryoon Exp $ - ---- dom/plugins/ipc/PluginModuleChild.h.orig 2011-12-20 23:28:14.000000000 +0000 -+++ dom/plugins/ipc/PluginModuleChild.h -@@ -340,7 +340,7 @@ private: - - // we get this from the plugin - NP_PLUGINSHUTDOWN mShutdownFunc; --#ifdef OS_LINUX -+#if defined(OS_LINUX) || defined(OS_BSD) - NP_PLUGINUNIXINIT mInitializeFunc; - #elif defined(OS_WIN) || defined(OS_MACOSX) - NP_PLUGININIT mInitializeFunc; -$NetBSD: patch-ipc_chromium_Makefile.in,v 1.1 2012/03/06 12:34:09 ryoon Exp $ - ---- ipc/chromium/Makefile.in.orig 2012-02-16 06:40:33.000000000 +0000 -+++ ipc/chromium/Makefile.in -@@ -278,6 +278,33 @@ endif - - endif # } OS_LINUX - -+ifdef OS_BSD # { -+ -+CPPSRCS += \ -+ atomicops_internals_x86_gcc.cc \ -+ process_util_bsd.cc \ -+ time_posix.cc \ -+ $(NULL) -+ -+ifdef MOZ_ENABLE_GTK2 -+CPPSRCS += \ -+ message_pump_glib.cc \ -+ $(NULL) -+endif -+ -+ifdef MOZ_ENABLE_QT -+MOCSRCS = \ -+ moc_message_pump_qt.cc \ -+ $(NULL) -+ -+CPPSRCS += \ -+ $(MOCSRCS) \ -+ message_pump_qt.cc \ -+ $(NULL) -+endif -+ -+endif # } OS_BSD -+ - # libevent - - ifndef MOZ_NATIVE_LIBEVENT # { -$NetBSD: patch-ipc_chromium_chromium-config.mk,v 1.2 2012/03/15 08:30:06 ryoon Exp $ - ---- ipc/chromium/chromium-config.mk.orig 2012-02-16 07:40:33.000000000 +0100 -+++ ipc/chromium/chromium-config.mk 2012-03-11 11:05:40.397182000 +0100 -@@ -56,17 +56,6 @@ - -I$(DEPTH)/ipc/ipdl/_ipdlheaders \ - $(NULL) - --ifeq ($(OS_ARCH),Darwin) # { -- --OS_MACOSX = 1 --OS_POSIX = 1 -- --DEFINES += \ -- -DOS_MACOSX=1 \ -- -DOS_POSIX=1 \ -- $(NULL) -- --else # } { - ifeq ($(OS_ARCH),WINNT) # { - OS_LIBS += $(call EXPAND_LIBNAME,psapi shell32 dbghelp) - -@@ -93,13 +82,65 @@ - endif - - else # } { -- --OS_LINUX = 1 - OS_POSIX = 1 -+DEFINES += -DOS_POSIX=1 -+ -+ifeq ($(OS_ARCH),Darwin) # { -+ -+OS_MACOSX = 1 -+DEFINES += \ -+ -DOS_MACOSX=1 \ -+ $(NULL) -+ -+else # } { -+ifeq ($(OS_ARCH),DragonFly) # { -+ -+OS_DRAGONFLY = 1 -+OS_BSD = 1 -+OS_LIBS += $(call EXPAND_LIBNAME,kvm) -+DEFINES += \ -+ -DOS_DRAGONFLY=1 \ -+ -DOS_BSD=1 \ -+ $(NULL) -+ -+else # } { -+ifeq ($(OS_ARCH),FreeBSD) # { -+ -+OS_FREEBSD = 1 -+OS_BSD = 1 -+OS_LIBS += $(call EXPAND_LIBNAME,kvm) -+DEFINES += \ -+ -DOS_FREEBSD=1 \ -+ -DOS_BSD=1 \ -+ $(NULL) - -+else # } { -+ifeq ($(OS_ARCH),NetBSD) # { -+ -+OS_NETBSD = 1 -+OS_BSD = 1 -+OS_LIBS += $(call EXPAND_LIBNAME,kvm) -+DEFINES += \ -+ -DOS_NETBSD=1 \ -+ -DOS_BSD=1 \ -+ $(NULL) -+ -+else # } { -+ifeq ($(OS_ARCH),OpenBSD) # { -+ -+OS_OPENBSD = 1 -+OS_BSD = 1 -+OS_LIBS += $(call EXPAND_LIBNAME,kvm) -+DEFINES += \ -+ -DOS_OPENBSD=1 \ -+ -DOS_BSD=1 \ -+ $(NULL) -+ -+else # } { -+ -+OS_LINUX = 1 - DEFINES += \ - -DOS_LINUX=1 \ -- -DOS_POSIX=1 \ - $(NULL) - - # NB: to stop gcc warnings about exporting template instantiation -@@ -107,4 +147,8 @@ - - endif # } - endif # } -+endif # } -+endif # } -+endif # } -+endif # } - -$NetBSD: patch-ipc_chromium_src_base_base__paths.h,v 1.1 2012/03/06 12:34:09 ryoon Exp $ - ---- ipc/chromium/src/base/base_paths.h.orig 2011-12-20 23:28:19.000000000 +0000 -+++ ipc/chromium/src/base/base_paths.h -@@ -13,7 +13,7 @@ - #include "base/base_paths_win.h" - #elif defined(OS_MACOSX) - #include "base/base_paths_mac.h" --#elif defined(OS_LINUX) -+#elif defined(OS_LINUX) || defined(OS_BSD) - #include "base/base_paths_linux.h" - #endif - #include "base/path_service.h" -$NetBSD: patch-ipc_chromium_src_base_debug__util__posic.cc,v 1.3 2012/04/01 15:18:45 ryoon Exp $ - ---- ipc/chromium/src/base/debug_util_posix.cc.orig 2012-03-13 01:36:53.000000000 +0000 -+++ ipc/chromium/src/base/debug_util_posix.cc -@@ -5,7 +5,7 @@ - #include "build/build_config.h" - #include "base/debug_util.h" - --#define MOZ_HAVE_EXECINFO_H (!defined(ANDROID) && !defined(__OpenBSD__)) -+#define MOZ_HAVE_EXECINFO_H (defined(OS_LINUX) && !defined(ANDROID)) - - #include <errno.h> - #include <fcntl.h> -@@ -17,9 +17,16 @@ - #include <unistd.h> - #if MOZ_HAVE_EXECINFO_H - #include <execinfo.h> -+#endif -+ -+#if defined(OS_MACOSX) || defined(OS_BSD) - #include <sys/sysctl.h> - #endif - -+#if defined(OS_DRAGONFLY) || defined(OS_FREEBSD) -+#include <sys/user.h> -+#endif -+ - #include "base/basictypes.h" - #include "base/eintr_wrapper.h" - #include "base/logging.h" -@@ -32,7 +37,7 @@ bool DebugUtil::SpawnDebuggerOnProcess(u - return false; - } - --#if defined(OS_MACOSX) -+#if defined(OS_MACOSX) || defined(OS_BSD) - - // Based on Apple's recommended method as described in - // http://developer.apple.com/qa/qa2004/qa1361.html -@@ -71,7 +76,15 @@ bool DebugUtil::BeingDebugged() { - - // This process is being debugged if the P_TRACED flag is set. - is_set = true; -+#if defined(OS_DRAGONFLY) -+ being_debugged = (info.kp_flags & P_TRACED) != 0; -+#elif defined(OS_FREEBSD) -+ being_debugged = (info.ki_flag & P_TRACED) != 0; -+#elif defined(OS_OPENBSD) -+ being_debugged = (info.p_flag & P_TRACED) != 0; -+#else - being_debugged = (info.kp_proc.p_flag & P_TRACED) != 0; -+#endif - return being_debugged; - } - -diff --git ipc/chromium/src/base/dir_reader_bsd.h ipc/chromium/src/base/dir_reader_bsd.h -new file mode 100644 -index 0000000..3fc1a87 ---- /dev/null -+++ ipc/chromium/src/base/dir_reader_bsd.h -@@ -0,0 +1,112 @@ -+// Copyright (c) 2010 The Chromium Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style license that can be -+// found in the LICENSE file. -+ -+// derived from dir_reader_linux.h -+ -+#ifndef BASE_DIR_READER_BSD_H_ -+#define BASE_DIR_READER_BSD_H_ -+#pragma once -+ -+#include <dirent.h> -+#include <errno.h> -+#include <fcntl.h> -+#include <stdint.h> -+#include <unistd.h> -+ -+#include "base/logging.h" -+#include "base/eintr_wrapper.h" -+ -+// See the comments in dir_reader_posix.h about this. -+ -+namespace base { -+ -+class DirReaderBSD { -+ public: -+ explicit DirReaderBSD(const char* directory_path) -+#ifdef O_DIRECTORY -+ : fd_(open(directory_path, O_RDONLY | O_DIRECTORY)), -+#else -+ : fd_(open(directory_path, O_RDONLY)), -+#endif -+ offset_(0), -+ size_(0) { -+ memset(buf_, 0, sizeof(buf_)); -+ } -+ -+ ~DirReaderBSD() { -+ if (fd_ >= 0) { -+ if (HANDLE_EINTR(close(fd_))) -+ DLOG(ERROR) << "Failed to close directory handle"; -+ } -+ } -+ -+ bool IsValid() const { -+ return fd_ >= 0; -+ } -+ -+ // Move to the next entry returning false if the iteration is complete. -+ bool Next() { -+ if (size_) { -+ struct dirent* dirent = reinterpret_cast<struct dirent*>(&buf_[offset_]); -+#ifdef OS_DRAGONFLY -+ offset_ += _DIRENT_DIRSIZ(dirent); -+#else -+ offset_ += dirent->d_reclen; -+#endif -+ } -+ -+ if (offset_ != size_) -+ return true; -+ -+#ifdef OS_OPENBSD -+ const int r = getdirentries(fd_, buf_, sizeof(buf_), basep_); -+#else -+ const int r = getdents(fd_, buf_, sizeof(buf_)); -+#endif -+ if (r == 0) -+ return false; -+ if (r == -1) { -+#ifdef OS_OPENBSD -+ DLOG(ERROR) << "getdirentries returned an error: " << errno; -+#else -+ DLOG(ERROR) << "getdents returned an error: " << errno; -+#endif -+ return false; -+ } -+ size_ = r; -+ offset_ = 0; -+ return true; -+ } -+ -+ const char* name() const { -+ if (!size_) -+ return NULL; -+ -+ const struct dirent* dirent = -+ reinterpret_cast<const struct dirent*>(&buf_[offset_]); -+ return dirent->d_name; -+ } -+ -+ int fd() const { -+ return fd_; -+ } -+ -+ static bool IsFallback() { -+ return false; -+ } -+ -+ private: -+ const int fd_; -+ char buf_[512]; -+#ifdef OS_OPENBSD -+ off_t *basep_; -+#endif -+ size_t offset_, size_; -+ -+ DISALLOW_COPY_AND_ASSIGN(DirReaderBSD); -+}; -+ -+} // namespace base -+ -+#endif // BASE_DIR_READER_BSD_H_ -diff --git ipc/chromium/src/base/dir_reader_posix.h ipc/chromium/src/base/dir_reader_posix.h -index 9a34492..62b280c 100644 ---- ipc/chromium/src/base/dir_reader_posix.h -+++ ipc/chromium/src/base/dir_reader_posix.h -@@ -18,16 +18,20 @@ - // seems worse than falling back to enumerating all file descriptors so we will - // probably never implement this on the Mac. - --#if defined(OS_LINUX) && !defined(OS_OPENBSD) -+#if defined(OS_LINUX) - #include "base/dir_reader_linux.h" -+#elif defined(OS_BSD) -+#include "base/dir_reader_bsd.h" - #else - #include "base/dir_reader_fallback.h" - #endif - - namespace base { - --#if defined(OS_LINUX) && !defined(OS_OPENBSD) -+#if defined(OS_LINUX) - typedef DirReaderLinux DirReaderPosix; -+#elif defined(OS_BSD) -+typedef DirReaderBSD DirReaderPosix; - #else - typedef DirReaderFallback DirReaderPosix; - #endif -$NetBSD: patch-ipc_chromium_src_base_file__util__posix.cc,v 1.2 2012/03/06 12:34:09 ryoon Exp $ - ---- ipc/chromium/src/base/file_util_posix.cc.orig 2011-12-20 23:28:19.000000000 +0000 -+++ ipc/chromium/src/base/file_util_posix.cc -@@ -31,7 +31,7 @@ - #include "base/time.h" - - // FreeBSD/OpenBSD lacks stat64, but its stat handles files >2GB just fine --#if defined(OS_FREEBSD) || defined(OS_OPENBSD) -+#ifndef HAVE_STAT64 - #define stat64 stat - #endif - -$NetBSD: patch-ipc_chromium_src_base_message__loop.cc,v 1.1 2012/03/06 12:34:09 ryoon Exp $ - ---- ipc/chromium/src/base/message_loop.cc.orig 2012-02-16 07:40:33.000000000 +0100 -+++ ipc/chromium/src/base/message_loop.cc 2012-02-21 21:24:41.000000000 +0100 -@@ -19,7 +19,7 @@ - #if defined(OS_POSIX) - #include "base/message_pump_libevent.h" - #endif --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) - #ifdef MOZ_WIDGET_GTK2 - #include "base/message_pump_glib.h" - #endif -@@ -119,7 +119,7 @@ - if (type_ == TYPE_UI) { - #if defined(OS_MACOSX) - pump_ = base::MessagePumpMac::Create(); --#elif defined(OS_LINUX) -+#elif defined(OS_LINUX) || defined(OS_BSD) - pump_ = new base::MessagePumpForUI(); - #endif // OS_LINUX - } else if (type_ == TYPE_IO) { -$NetBSD: patch-ipc_chromium_src_base_platform__thread.h,v 1.1 2012/03/06 12:34:09 ryoon Exp $ - ---- ipc/chromium/src/base/platform_thread.h.orig 2011-12-20 23:28:19.000000000 +0000 -+++ ipc/chromium/src/base/platform_thread.h -@@ -22,9 +22,12 @@ typedef void* PlatformThreadHandle; // HANDLE - #elif defined(OS_POSIX) - #include <pthread.h> - typedef pthread_t PlatformThreadHandle; --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_OPENBSD) - #include <unistd.h> - typedef pid_t PlatformThreadId; -+#elif defined(OS_BSD) -+#include <sys/types.h> -+typedef lwpid_t PlatformThreadId; - #elif defined(OS_MACOSX) - #include <mach/mach.h> - typedef mach_port_t PlatformThreadId; -$NetBSD: patch-ipc_chromium_src_base_platform__thread__posix.cc,v 1.4 2012/04/01 15:18:45 ryoon Exp $ - ---- ipc/chromium/src/base/platform_thread_posix.cc.orig 2012-03-13 01:36:53.000000000 +0000 -+++ ipc/chromium/src/base/platform_thread_posix.cc -@@ -9,16 +9,24 @@ - - #if defined(OS_MACOSX) - #include <mach/mach.h> -+#elif defined(OS_NETBSD) -+#include <lwp.h> - #elif defined(OS_LINUX) - #include <sys/syscall.h> --#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__) - #include <sys/prctl.h> --#elif !defined(__NetBSD__) --#include <pthread_np.h> -+#elif defined(OS_FREEBSD) -+#include <sys/param.h> -+#include <sys/thr.h> - #endif -+ -+#if !defined(OS_MACOSX) - #include <unistd.h> - #endif - -+#if defined(OS_BSD) && !defined(OS_NETBSD) -+#include <pthread_np.h> -+#endif -+ - #if defined(OS_MACOSX) - namespace base { - void InitThreading(); -@@ -38,9 +45,20 @@ PlatformThreadId PlatformThread::CurrentId() { - // into the kernel. - #if defined(OS_MACOSX) - return mach_thread_self(); --#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) -+#elif defined(OS_NETBSD) -+ return _lwp_self(); -+#elif defined(OS_DRAGONFLY) -+ return lwp_gettid(); -+#elif defined(OS_FREEBSD) -+# if __FreeBSD_version > 900030 -+ return pthread_getthreadid_np(); -+# else -+ long lwpid; -+ thr_self(&lwpid); -+ return lwpid; -+# endif -+#elif defined(OS_OPENBSD) -- // TODO(BSD): find a better thread ID -- return (intptr_t)(pthread_self()); -+ return (intptr_t) (pthread_self()); - #elif defined(OS_LINUX) - return syscall(__NR_gettid); - #endif -@@ -102,9 +102,9 @@ void PlatformThread::SetName(const char* name) { - // Note that glibc also has a 'pthread_setname_np' api, but it may not be - // available everywhere and it's only benefit over using prctl directly is - // that it can set the name of threads other than the current thread. --#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) -+#if defined(OS_BSD) && !defined(OS_NETBSD) - pthread_set_name_np(pthread_self(), name); --#elif defined(__NetBSD__) -+#elif defined(OS_NETBSD) - pthread_setname_np(pthread_self(), "%s", (void *)name); - #else - prctl(PR_SET_NAME, reinterpret_cast<uintptr_t>(name), 0, 0, 0); -$NetBSD: patch-ipc_chromium_src_base_process__util.h,v 1.1 2012/03/06 12:34:09 ryoon Exp $ - ---- ipc/chromium/src/base/process_util.h.orig 2011-12-21 00:28:19.000000000 +0100 -+++ ipc/chromium/src/base/process_util.h 2012-01-31 13:14:54.000000000 +0100 -@@ -280,6 +280,7 @@ class NamedProcessIterator { - const ProcessEntry* NextProcessEntry(); - - private: -+#if !defined(OS_BSD) - // Determines whether there's another process (regardless of executable) - // left in the list of all processes. Returns true and sets entry_ to - // that process's info if there is one, false otherwise. -@@ -292,18 +292,24 @@ - void InitProcessEntry(ProcessEntry* entry); - - std::wstring executable_name_; -+#endif - - #if defined(OS_WIN) - HANDLE snapshot_; - bool started_iteration_; - #elif defined(OS_LINUX) - DIR *procfs_dir_; -+#elif defined(OS_BSD) -+ std::vector<ProcessEntry> content; -+ size_t nextEntry; - #elif defined(OS_MACOSX) - std::vector<kinfo_proc> kinfo_procs_; - size_t index_of_kinfo_proc_; - #endif -+#if !defined(OS_BSD) - ProcessEntry entry_; - const ProcessFilter* filter_; -+#endif - - DISALLOW_EVIL_CONSTRUCTORS(NamedProcessIterator); - }; -$NetBSD: patch-ipc_chromium_src_base_process__util__bsd.cc,v 1.4 2012/04/01 15:18:45 ryoon Exp $ - ---- ipc/chromium/src/base/process_util_bsd.cc.orig 2012-04-01 00:04:28.000000000 +0000 -+++ ipc/chromium/src/base/process_util_bsd.cc -@@ -0,0 +1,367 @@ -+// Copyright (c) 2008 The Chromium Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style license that can be -+// found in the LICENSE file. -+ -+// derived from process_util_linux.cc and process_util_mac.cc -+ -+#include "base/process_util.h" -+ -+#include <sys/param.h> -+#include <sys/sysctl.h> -+#include <sys/wait.h> -+#if defined(OS_DRAGONFLY) || defined(OS_FREEBSD) -+#include <sys/user.h> -+#endif -+ -+#include <ctype.h> -+#include <fcntl.h> -+#include <kvm.h> -+#include <unistd.h> -+ -+#include <string> -+ -+#include "base/debug_util.h" -+#include "base/eintr_wrapper.h" -+#include "base/file_util.h" -+#include "base/logging.h" -+#include "base/string_tokenizer.h" -+#include "base/string_util.h" -+ -+#if (defined(_POSIX_SPAWN) && _POSIX_SPAWN > 0) \ -+ || (defined(OS_NETBSD) && __NetBSD_Version__ >= 599006500) -+#define HAVE_POSIX_SPAWN 1 -+#endif -+ -+/* -+ * On platforms that are not gonk based, we fall back to an arbitrary -+ * UID. This is generally the UID for user `nobody', albeit it is not -+ * always the case. -+ */ -+ -+#if defined(OS_NETBSD) || defined(OS_OPENBSD) -+# define CHILD_UNPRIVILEGED_UID 32767 -+# define CHILD_UNPRIVILEGED_GID 32767 -+#else -+# define CHILD_UNPRIVILEGED_UID 65534 -+# define CHILD_UNPRIVILEGED_GID 65534 -+#endif -+ -+#ifndef __dso_public -+# ifdef __exported -+# define __dso_public __exported -+# else -+# define __dso_public __attribute__((__visibility__("default"))) -+# endif -+#endif -+ -+#ifdef HAVE_POSIX_SPAWN -+#include <spawn.h> -+extern "C" char **environ __dso_public; -+#endif -+ -+namespace { -+ -+enum ParsingState { -+ KEY_NAME, -+ KEY_VALUE -+}; -+ -+static mozilla::EnvironmentLog gProcessLog("MOZ_PROCESS_LOG"); -+ -+} // namespace -+ -+namespace base { -+ -+#ifdef HAVE_POSIX_SPAWN -+ -+void FreeEnvVarsArray(char* array[], int length) -+{ -+ for (int i = 0; i < length; i++) { -+ free(array[i]); -+ } -+ delete[] array; -+} -+ -+bool LaunchApp(const std::vector<std::string>& argv, -+ const file_handle_mapping_vector& fds_to_remap, -+ bool wait, ProcessHandle* process_handle) { -+ return LaunchApp(argv, fds_to_remap, environment_map(), -+ wait, process_handle); -+} -+ -+bool LaunchApp(const std::vector<std::string>& argv, -+ const file_handle_mapping_vector& fds_to_remap, -+ const environment_map& env_vars_to_set, -+ bool wait, ProcessHandle* process_handle, -+ ProcessArchitecture arch) { -+ return LaunchApp(argv, fds_to_remap, env_vars_to_set, -+ SAME_PRIVILEGES_AS_PARENT, -+ wait, process_handle); -+} -+ -+bool LaunchApp(const std::vector<std::string>& argv, -+ const file_handle_mapping_vector& fds_to_remap, -+ const environment_map& env_vars_to_set, -+ ChildPrivileges privs, -+ bool wait, ProcessHandle* process_handle, -+ ProcessArchitecture arch) { -+ bool retval = true; -+ -+ char* argv_copy[argv.size() + 1]; -+ for (size_t i = 0; i < argv.size(); i++) { -+ argv_copy[i] = const_cast<char*>(argv[i].c_str()); -+ } -+ argv_copy[argv.size()] = NULL; -+ -+ // Make sure we don't leak any FDs to the child process by marking all FDs -+ // as close-on-exec. -+ SetAllFDsToCloseOnExec(); -+ -+ // Copy environment to a new char array and add the variables -+ // in env_vars_to_set. -+ // Existing variables are overwritten by env_vars_to_set. -+ int pos = 0; -+ environment_map combined_env_vars = env_vars_to_set; -+ while(environ[pos] != NULL) { -+ std::string varString = environ[pos]; -+ std::string varName = varString.substr(0, varString.find_first_of('=')); -+ std::string varValue = varString.substr(varString.find_first_of('=') + 1); -+ if (combined_env_vars.find(varName) == combined_env_vars.end()) { -+ combined_env_vars[varName] = varValue; -+ } -+ pos++; -+ } -+ int varsLen = combined_env_vars.size() + 1; -+ -+ char** vars = new char*[varsLen]; -+ int i = 0; -+ for (environment_map::const_iterator it = combined_env_vars.begin(); -+ it != combined_env_vars.end(); ++it) { -+ std::string entry(it->first); -+ entry += "="; -+ entry += it->second; -+ vars[i] = strdup(entry.c_str()); -+ i++; -+ } -+ vars[i] = NULL; -+ -+ posix_spawn_file_actions_t file_actions; -+ if (posix_spawn_file_actions_init(&file_actions) != 0) { -+ FreeEnvVarsArray(vars, varsLen); -+ return false; -+ } -+ -+ // Turn fds_to_remap array into a set of dup2 calls. -+ for (file_handle_mapping_vector::const_iterator it = fds_to_remap.begin(); -+ it != fds_to_remap.end(); -+ ++it) { -+ int src_fd = it->first; -+ int dest_fd = it->second; -+ -+ if (src_fd == dest_fd) { -+ int flags = fcntl(src_fd, F_GETFD); -+ if (flags != -1) { -+ fcntl(src_fd, F_SETFD, flags & ~FD_CLOEXEC); -+ } -+ } else { -+ if (posix_spawn_file_actions_adddup2(&file_actions, src_fd, dest_fd) != 0) { -+ posix_spawn_file_actions_destroy(&file_actions); -+ FreeEnvVarsArray(vars, varsLen); -+ return false; -+ } -+ } -+ } -+ -+ pid_t pid = 0; -+ int spawn_succeeded = (posix_spawnp(&pid, -+ argv_copy[0], -+ &file_actions, -+ NULL, -+ argv_copy, -+ vars) == 0); -+ -+ FreeEnvVarsArray(vars, varsLen); -+ -+ posix_spawn_file_actions_destroy(&file_actions); -+ -+ bool process_handle_valid = pid > 0; -+ if (!spawn_succeeded || !process_handle_valid) { -+ retval = false; -+ } else { -+ if (wait) -+ HANDLE_EINTR(waitpid(pid, 0, 0)); -+ -+ if (process_handle) -+ *process_handle = pid; -+ } -+ -+ return retval; -+} -+ -+bool LaunchApp(const CommandLine& cl, -+ bool wait, bool start_hidden, ProcessHandle* process_handle) { -+ // TODO(playmobil): Do we need to respect the start_hidden flag? -+ file_handle_mapping_vector no_files; -+ return LaunchApp(cl.argv(), no_files, wait, process_handle); -+} -+ -+#else // no posix_spawn, use fork/exec -+ -+bool LaunchApp(const std::vector<std::string>& argv, -+ const file_handle_mapping_vector& fds_to_remap, -+ bool wait, ProcessHandle* process_handle) { -+ return LaunchApp(argv, fds_to_remap, environment_map(), -+ wait, process_handle); -+} -+ -+bool LaunchApp(const std::vector<std::string>& argv, -+ const file_handle_mapping_vector& fds_to_remap, -+ const environment_map& env_vars_to_set, -+ bool wait, ProcessHandle* process_handle, -+ ProcessArchitecture arch) { -+ return LaunchApp(argv, fds_to_remap, env_vars_to_set, -+ SAME_PRIVILEGES_AS_PARENT, -+ wait, process_handle); -+} -+ -+bool LaunchApp(const std::vector<std::string>& argv, -+ const file_handle_mapping_vector& fds_to_remap, -+ const environment_map& env_vars_to_set, -+ ChildPrivileges privs, -+ bool wait, ProcessHandle* process_handle, -+ ProcessArchitecture arch) { -+ scoped_array<char*> argv_cstr(new char*[argv.size() + 1]); -+ // Illegal to allocate memory after fork and before execvp -+ InjectiveMultimap fd_shuffle1, fd_shuffle2; -+ fd_shuffle1.reserve(fds_to_remap.size()); -+ fd_shuffle2.reserve(fds_to_remap.size()); -+ -+ pid_t pid = fork(); -+ if (pid < 0) -+ return false; -+ -+ if (pid == 0) { -+ for (file_handle_mapping_vector::const_iterator -+ it = fds_to_remap.begin(); it != fds_to_remap.end(); ++it) { -+ fd_shuffle1.push_back(InjectionArc(it->first, it->second, false)); -+ fd_shuffle2.push_back(InjectionArc(it->first, it->second, false)); -+ } -+ -+ if (!ShuffleFileDescriptors(&fd_shuffle1)) -+ _exit(127); -+ -+ CloseSuperfluousFds(fd_shuffle2); -+ -+ for (size_t i = 0; i < argv.size(); i++) -+ argv_cstr[i] = const_cast<char*>(argv[i].c_str()); -+ argv_cstr[argv.size()] = NULL; -+ -+ if (privs == UNPRIVILEGED) { -+ if (setgid(CHILD_UNPRIVILEGED_GID) != 0) { -+ DLOG(ERROR) << "FAILED TO setgid() CHILD PROCESS, path: " << argv_cstr[0]; -+ _exit(127); -+ } -+ if (setuid(CHILD_UNPRIVILEGED_UID) != 0) { -+ DLOG(ERROR) << "FAILED TO setuid() CHILD PROCESS, path: " << argv_cstr[0]; -+ _exit(127); -+ } -+ if (chdir("/") != 0) -+ gProcessLog.print("==> could not chdir()\n"); -+ } -+ -+ for (environment_map::const_iterator it = env_vars_to_set.begin(); -+ it != env_vars_to_set.end(); ++it) { -+ if (setenv(it->first.c_str(), it->second.c_str(), 1/*overwrite*/)) -+ _exit(127); -+ } -+ execv(argv_cstr[0], argv_cstr.get()); -+ // if we get here, we're in serious trouble and should complain loudly -+ DLOG(ERROR) << "FAILED TO exec() CHILD PROCESS, path: " << argv_cstr[0]; -+ _exit(127); -+ } else { -+ gProcessLog.print("==> process %d launched child process %d\n", -+ GetCurrentProcId(), pid); -+ if (wait) -+ HANDLE_EINTR(waitpid(pid, 0, 0)); -+ -+ if (process_handle) -+ *process_handle = pid; -+ } -+ -+ return true; -+} -+ -+bool LaunchApp(const CommandLine& cl, -+ bool wait, bool start_hidden, -+ ProcessHandle* process_handle) { -+ file_handle_mapping_vector no_files; -+ return LaunchApp(cl.argv(), no_files, wait, process_handle); -+} -+ -+#endif -+ -+NamedProcessIterator::NamedProcessIterator(const std::wstring& executable_name, -+ const ProcessFilter* filter) -+{ -+ int numEntries; -+ kvm_t *kvm; -+ std::string exe(WideToASCII(executable_name)); -+ -+#if defined(OS_DRAGONFLY) || defined(OS_FREEBSD) -+ kvm = kvm_open(NULL, NULL, NULL, O_RDONLY, NULL); -+ struct kinfo_proc* procs = kvm_getprocs(kvm, KERN_PROC_UID, getuid(), &numEntries); -+ if (procs != NULL && numEntries > 0) { -+ for (int i = 0; i < numEntries; i++) { -+# if defined(OS_DRAGONFLY) -+ if (exe != procs[i].kp_comm) continue; -+ if (filter && !filter->Includes(procs[i].kp_pid, procs[i].kp_ppid)) continue; -+ ProcessEntry e; -+ e.pid = procs[i].kp_pid; -+ e.ppid = procs[i].kp_ppid; -+ strlcpy(e.szExeFile, procs[i].kp_comm, sizeof e.szExeFile); -+ content.push_back(e); -+# elif defined(OS_FREEBSD) -+ if (exe != procs[i].ki_comm) continue; -+ if (filter && !filter->Includes(procs[i].ki_pid, procs[i].ki_ppid)) continue; -+ ProcessEntry e; -+ e.pid = procs[i].ki_pid; -+ e.ppid = procs[i].ki_ppid; -+ strlcpy(e.szExeFile, procs[i].ki_comm, sizeof e.szExeFile); -+ content.push_back(e); -+# endif -+#else -+ kvm = kvm_open(NULL, NULL, NULL, KVM_NO_FILES, NULL); -+#if defined(OS_OPENBSD) -+ struct kinfo_proc* procs = kvm_getprocs(kvm, KERN_PROC_UID, getuid(), sizeof(struct kinfo_proc), &numEntries); -+#else -+ struct kinfo_proc2* procs = kvm_getproc2(kvm, KERN_PROC_UID, getuid(), sizeof(struct kinfo_proc2), &numEntries); -+#endif -+ if (procs != NULL && numEntries > 0) { -+ for (int i = 0; i < numEntries; i++) { -+ if (exe != procs[i].p_comm) continue; -+ if (filter && !filter->Includes(procs[i].p_pid, procs[i].p_ppid)) continue; -+ ProcessEntry e; -+ e.pid = procs[i].p_pid; -+ e.ppid = procs[i].p_ppid; -+ strlcpy(e.szExeFile, procs[i].p_comm, sizeof e.szExeFile); -+ content.push_back(e); -+#endif -+ } -+ } -+ nextEntry = 0; -+ kvm_close(kvm); -+} -+ -+NamedProcessIterator::~NamedProcessIterator() { -+} -+ -+const ProcessEntry* NamedProcessIterator::NextProcessEntry() { -+ if (nextEntry >= content.size()) return NULL; -+ return &content[nextEntry++]; -+} -+ -+bool ProcessMetrics::GetIOCounters(IoCounters* io_counters) const { -+ return false; -+} -+ -+} // namespace base -$NetBSD: patch-ipc_chromium_src_base_process__util__posix.cc,v 1.1 2012/03/06 12:34:09 ryoon Exp $ - ---- ipc/chromium/src/base/process_util_posix.cc.orig 2011-12-20 23:28:19.000000000 +0000 -+++ ipc/chromium/src/base/process_util_posix.cc -@@ -116,6 +116,11 @@ void CloseSuperfluousFds(const base::Inj - #elif defined(OS_MACOSX) - static const rlim_t kSystemDefaultMaxFds = 256; - static const char kFDDir[] = "/dev/fd"; -+#elif defined(OS_BSD) -+ // the getrlimit below should never fail, so whatever .. -+ static const rlim_t kSystemDefaultMaxFds = 1024; -+ // at least /dev/fd will exist -+ static const char kFDDir[] = "/dev/fd"; - #endif - - // Get the maximum number of FDs possible. -@@ -199,7 +204,7 @@ void CloseSuperfluousFds(const base::Inj - void SetAllFDsToCloseOnExec() { - #if defined(OS_LINUX) - const char fd_dir[] = "/proc/self/fd"; --#elif defined(OS_MACOSX) -+#elif defined(OS_MACOSX) || defined(OS_BSD) - const char fd_dir[] = "/dev/fd"; - #endif - ScopedDIR dir_closer(opendir(fd_dir)); -$NetBSD: patch-ipc_chromium_src_base_sys__info__posix.cc,v 1.2 2011/11/27 13:09:00 tnn Exp $ - ---- ipc/chromium/src/base/sys_info_posix.cc.orig 2011-11-04 21:34:00.000000000 +0000 -+++ ipc/chromium/src/base/sys_info_posix.cc -@@ -18,6 +18,11 @@ - #include <mach/mach_init.h> - #endif - -+#if defined(OS_NETBSD) -+#include <sys/param.h> -+#include <sys/sysctl.h> -+#endif -+ - #include "base/logging.h" - #include "base/string_util.h" - -@@ -26,7 +31,11 @@ namespace base { - int SysInfo::NumberOfProcessors() { - // It seems that sysconf returns the number of "logical" processors on both - // mac and linux. So we get the number of "online logical" processors. -+#ifdef _SC_NPROCESSORS_ONLN - static long res = sysconf(_SC_NPROCESSORS_ONLN); -+#else -+ static long res = 1; -+#endif - if (res == -1) { - NOTREACHED(); - return 1; -@@ -52,6 +61,20 @@ int64 SysInfo::AmountOfPhysicalMemory() - } - - return static_cast<int64>(hostinfo.max_mem); -+#elif defined(OS_NETBSD) -+ int mib[2]; -+ int rc; -+ int64_t memSize; -+ size_t len = sizeof(memSize); -+ -+ mib[0] = CTL_HW; -+ mib[1] = HW_PHYSMEM64; -+ rc = sysctl( mib, 2, &memSize, &len, NULL, 0 ); -+ if (-1 != rc) { -+ return memSize; -+ } -+ return 0; -+ - #else - long pages = sysconf(_SC_PHYS_PAGES); - long page_size = sysconf(_SC_PAGE_SIZE); -diff --git ipc/chromium/src/base/time_posix.cc ipc/chromium/src/base/time_posix.cc -index abf2a56..48791f6 100644 ---- ipc/chromium/src/base/time_posix.cc -+++ ipc/chromium/src/base/time_posix.cc -@@ -167,7 +167,7 @@ TimeTicks TimeTicks::Now() { - // With numer and denom = 1 (the expected case), the 64-bit absolute time - // reported in nanoseconds is enough to last nearly 585 years. - --#elif defined(__OpenBSD__) || defined(OS_POSIX) && \ -+#elif defined(OS_OPENBSD) || defined(OS_POSIX) && \ - defined(_POSIX_MONOTONIC_CLOCK) && _POSIX_MONOTONIC_CLOCK >= 0 - - struct timespec ts; -$NetBSD: patch-ipc_chromium_src_build_build__config.h,v 1.4 2012/04/01 15:18:45 ryoon Exp $ - ---- ipc/chromium/src/build/build_config.h.orig 2012-03-13 01:36:53.000000000 +0000 -+++ ipc/chromium/src/build/build_config.h -@@ -19,6 +19,12 @@ - #define OS_MACOSX 1 - #elif defined(__linux__) || defined(ANDROID) - #define OS_LINUX 1 -+#elif defined(__DragonFly__) -+#define OS_DRAGONFLY 1 -+#elif defined(__FreeBSD__) -+#define OS_FREEBSD 1 -+#elif defined(__NetBSD__) -+#define OS_NETBSD 1 - #elif defined(__OpenBSD__) - #define OS_OPENBSD 1 - #elif defined(_WIN32) -@@ -27,9 +33,16 @@ - #error Please add support for your platform in build/build_config.h - #endif - -+// For access to standard BSD features, use OS_BSD instead of a -+// more specific macro. -+#if defined(OS_DRAGONFLY) || defined(OS_FREEBSD) \ -+ || defined(OS_NETBSD) || defined(OS_OPENBSD) -+#define OS_BSD 1 -+#endif -+ - // For access to standard POSIX features, use OS_POSIX instead of a more - // specific macro. --#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_OPENBSD) -+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) - #define OS_POSIX 1 - #endif - -diff --git ipc/chromium/src/chrome/common/ipc_channel_posix.cc ipc/chromium/src/chrome/common/ipc_channel_posix.cc -index bd866ee..2ea5b19 100644 ---- ipc/chromium/src/chrome/common/ipc_channel_posix.cc -+++ ipc/chromium/src/chrome/common/ipc_channel_posix.cc -@@ -7,6 +7,7 @@ - #include <errno.h> - #include <fcntl.h> - #include <stddef.h> -+#include <unistd.h> - #include <sys/types.h> - #include <sys/socket.h> - #include <sys/stat.h> -$NetBSD: patch-ipc_chromium_src_chrome_common_ipc__channel__posix.h,v 1.1 2011/07/11 12:46:14 tnn Exp $ - ---- ipc/chromium/src/chrome/common/ipc_channel_posix.h.orig 2011-06-15 21:57:27.000000000 +0000 -+++ ipc/chromium/src/chrome/common/ipc_channel_posix.h -@@ -92,7 +92,7 @@ class Channel::ChannelImpl : public Mess - }; - - // This is a control message buffer large enough to hold kMaxReadFDs --#if defined(OS_MACOSX) -+#if defined(OS_MACOSX) || defined(OS_NETBSD) - // TODO(agl): OSX appears to have non-constant CMSG macros! - char input_cmsg_buf_[1024]; - #else -$NetBSD: patch-ipc_chromium_src_chrome_common_ipc__message__utils.h,v 1.1 2012/03/06 12:34:09 ryoon Exp $ - ---- ipc/chromium/src/chrome/common/ipc_message_utils.h.orig 2011-12-20 23:28:19.000000000 +0000 -+++ ipc/chromium/src/chrome/common/ipc_message_utils.h -@@ -195,7 +195,7 @@ - }; - #endif - --#if !(defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_WIN) || (defined(OS_LINUX) && defined(ARCH_CPU_64_BITS)) || defined(ARCH_CPU_S390)) -+#if !(defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_WIN) || ((defined(OS_BSD) || defined(OS_LINUX)) && defined(ARCH_CPU_64_BITS)) || defined(ARCH_CPU_S390)) - // There size_t is a synonym for |unsigned long| ... - template <> - struct ParamTraits<size_t> { -@@ -248,7 +248,7 @@ - }; - #endif // defined(OS_MACOSX) - --#if !(defined(OS_LINUX) && defined(ARCH_CPU_64_BITS)) -+#if !((defined(OS_BSD) || defined(OS_LINUX)) && defined(ARCH_CPU_64_BITS)) - // int64 is |long int| on 64-bit systems, uint64 is |unsigned long| - template <> - struct ParamTraits<int64> { -$NetBSD: patch-ipc_chromium_src_chrome_common_transport__dib.h,v 1.1 2012/03/06 12:34:09 ryoon Exp $ - ---- ipc/chromium/src/chrome/common/transport_dib.h.orig 2011-12-20 23:28:19.000000000 +0000 -+++ ipc/chromium/src/chrome/common/transport_dib.h -@@ -7,7 +7,7 @@ - - #include "base/basictypes.h" - --#if defined(OS_WIN) || defined(OS_MACOSX) -+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_BSD) - #include "base/shared_memory.h" - #endif - -@@ -66,7 +66,7 @@ class TransportDIB { - uint32 sequence_num; - }; - typedef HandleAndSequenceNum Id; --#elif defined(OS_MACOSX) -+#elif defined(OS_MACOSX) || defined(OS_BSD) - typedef base::SharedMemoryHandle Handle; - // On Mac, the inode number of the backing file is used as an id. - typedef base::SharedMemoryId Id; -@@ -108,7 +108,7 @@ class TransportDIB { - - private: - TransportDIB(); --#if defined(OS_WIN) || defined(OS_MACOSX) -+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_BSD) - explicit TransportDIB(base::SharedMemoryHandle dib); - base::SharedMemory shared_memory_; - uint32 sequence_num_; -$NetBSD: patch-ipc_glue_GeckoChildProcessHost.cpp,v 1.2 2012/03/15 08:30:06 ryoon Exp $ - ---- ipc/glue/GeckoChildProcessHost.cpp.orig 2011-12-20 23:28:19.000000000 +0000 -+++ ipc/glue/GeckoChildProcessHost.cpp -@@ -430,7 +430,7 @@ - // and passing wstrings from one config to the other is unsafe. So - // we split the logic here. - --#if defined(OS_LINUX) || defined(OS_MACOSX) -+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD) - base::environment_map newEnvVars; - // XPCOM may not be initialized in some subprocesses. We don't want - // to initialize XPCOM just for the directory service, especially -@@ -445,8 +445,8 @@ - if (NS_SUCCEEDED(rv)) { - nsCString path; - greDir->GetNativePath(path); --# ifdef OS_LINUX --# ifdef MOZ_WIDGET_ANDROID -+# if defined(OS_LINUX) || defined(OS_BSD) -+# if defined(MOZ_WIDGET_ANDROID) || defined(OS_BSD) - path += "/lib"; - # endif // MOZ_WIDGET_ANDROID - const char *ld_library_path = PR_GetEnv("LD_LIBRARY_PATH"); -@@ -557,7 +557,7 @@ - childArgv.push_back(pidstring); - - #if defined(MOZ_CRASHREPORTER) --# if defined(OS_LINUX) -+# if defined(OS_LINUX) || defined(OS_BSD) - int childCrashFd, childCrashRemapFd; - if (!CrashReporter::CreateNotificationPipeForChild( - &childCrashFd, &childCrashRemapFd)) -@@ -594,7 +594,7 @@ - #endif - - base::LaunchApp(childArgv, mFileMap, --#if defined(OS_LINUX) || defined(OS_MACOSX) -+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD) - newEnvVars, privs, - #endif - false, &process, arch); -diff --git ipc/glue/SharedMemorySysV.h ipc/glue/SharedMemorySysV.h -index f37998d..b05dc7b 100644 ---- ipc/glue/SharedMemorySysV.h -+++ ipc/glue/SharedMemorySysV.h -@@ -8,7 +8,7 @@ - #ifndef mozilla_ipc_SharedMemorySysV_h - #define mozilla_ipc_SharedMemorySysV_h - --#if defined(OS_LINUX) && !defined(ANDROID) -+#if (defined(OS_LINUX) && !defined(ANDROID)) || defined(OS_BSD) - - // SysV shared memory isn't available on Windows, but we define the - // following macro so that #ifdefs are clearer (compared to #ifdef -$NetBSD: patch-mm,v 1.13 2012/06/05 18:09:21 ryoon Exp $ - ---- toolkit/library/Makefile.in.orig 2012-05-23 18:57:09.000000000 +0000 -+++ toolkit/library/Makefile.in -@@ -534,6 +538,12 @@ EXTRA_DSO_LDOPTS += -lelf -ldemangle - endif - endif - -+ifneq (,$(filter DragonFly FreeBSD NetBSD OpenBSD,$(OS_ARCH))) -+OS_LIBS += $(call EXPAND_LIBNAME,kvm) -+# keep `environ' unresolved, see bug 14426 for binutils -+EXTRA_DSO_LDOPTS += -Wl,--warn-unresolved-symbols -+endif -+ - ifeq ($(OS_ARCH),WINNT) - OS_LIBS += $(call EXPAND_LIBNAME,shell32 ole32 version winspool comdlg32 imm32 msimg32 shlwapi psapi ws2_32 dbghelp rasapi32 rasdlg iphlpapi uxtheme setupapi secur32 sensorsapi portabledeviceguids windowscodecs wininet) - ifdef ACCESSIBILITY diff --git a/www/libxul/files/patch-bug778078 b/www/libxul/files/patch-bug778078 deleted file mode 100644 index f7bedeb8053c..000000000000 --- a/www/libxul/files/patch-bug778078 +++ /dev/null @@ -1,11 +0,0 @@ ---- toolkit/xre/nsAppRunner.cpp~ -+++ toolkit/xre/nsAppRunner.cpp -@@ -3833,7 +3833,7 @@ XREMain::XRE_main(int argc, char* argv[] - ScopedLogging log; - - #if defined(MOZ_WIDGET_GTK) --#ifdef MOZ_MEMORY -+#if defined(MOZ_MEMORY) || defined(__FreeBSD__) || defined(__NetBSD__) - // Disable the slice allocator, since jemalloc already uses similar layout - // algorithms, and using a sub-allocator tends to increase fragmentation. - // This must be done before g_thread_init() is called. diff --git a/www/libxul/files/patch-bug783463 b/www/libxul/files/patch-bug783463 index b27a1997c534..dedbb7003927 100644 --- a/www/libxul/files/patch-bug783463 +++ b/www/libxul/files/patch-bug783463 @@ -1,14 +1,14 @@ ---- gfx/skia/Makefile.in~ -+++ gfx/skia/Makefile.in -@@ -339,10 +339,9 @@ CPPSRCS += \ - SkMMapStream.cpp \ - SkOSFile.cpp \ - $(NULL) --ifeq (Linux,$(OS_TARGET)) -+ifneq (,$(or $(MOZ_X11),$(filter Linux,$(OS_TARGET)))) - CPPSRCS += \ - SkFontHost_linux.cpp \ -- SkFontHost_tables.cpp \ - SkTime_Unix.cpp \ - $(NULL) - endif +--- gfx/skia/moz.build~ ++++ gfx/skia/moz.build +@@ -188,10 +188,9 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt + 'SkMMapStream.cpp', + 'SkOSFile.cpp', + ] +- if CONFIG['OS_TARGET'] == 'Linux': ++ if CONFIG['MOZ_X11'] == 1 or CONFIG['OS_TARGET'] == 'Linux': + CPP_SOURCES += [ + 'SkFontHost_linux.cpp', +- 'SkFontHost_tables.cpp', + 'SkThread_pthread.cpp', + 'SkTime_Unix.cpp', + ] diff --git a/www/libxul/files/patch-bug784631 b/www/libxul/files/patch-bug784631 deleted file mode 100644 index 2c8a1560b877..000000000000 --- a/www/libxul/files/patch-bug784631 +++ /dev/null @@ -1,52 +0,0 @@ -commit 66b3921 -Author: Terrence Cole <terrence@mozilla.com> -Date: Tue Sep 11 12:31:04 2012 -0700 - - Bug 784631 - Fix some clang build errors in SpiderMonkey; r=Waldo f=espindola - - Computed gotos are not in the C++ standard: clang and gcc differ on semantics. ---- - js/src/jsinterp.cpp | 3 ++- - js/src/jsutil.h | 8 ++++---- - 2 files changed, 6 insertions(+), 5 deletions(-) - -diff --git js/src/jsinterp.cpp js/src/jsinterp.cpp -index 0094c72..27a64a7 100644 ---- js/src/jsinterp.cpp -+++ js/src/jsinterp.cpp -@@ -1231,6 +1231,7 @@ js::Interpret(JSContext *cx, StackFrame *entryFrame, InterpMode interpMode) - RootedPropertyName rootName0(cx); - RootedId rootId0(cx); - RootedShape rootShape0(cx); -+ DebugOnly<uint32_t> blockDepth; - - if (!entryFrame) - entryFrame = regs.fp(); -@@ -3650,7 +3651,7 @@ BEGIN_CASE(JSOP_LEAVEBLOCK) - BEGIN_CASE(JSOP_LEAVEFORLETIN) - BEGIN_CASE(JSOP_LEAVEBLOCKEXPR) - { -- DebugOnly<uint32_t> blockDepth = regs.fp()->blockChain().stackDepth(); -+ blockDepth = regs.fp()->blockChain().stackDepth(); - - regs.fp()->popBlock(cx); - -diff --git js/src/jsutil.h js/src/jsutil.h -index 8838b6f..016a877 100644 ---- js/src/jsutil.h -+++ js/src/jsutil.h -@@ -432,10 +432,10 @@ typedef size_t jsbitmap; - #if defined(__clang__) - # define JS_SILENCE_UNUSED_VALUE_IN_EXPR(expr) \ - JS_BEGIN_MACRO \ -- _Pragma("clang diagnostic push") \ -- _Pragma("clang diagnostic ignored \"-Wunused-value\"") \ -- expr; \ -- _Pragma("clang diagnostic pop") \ -+ _Pragma("(clang diagnostic push)") \ -+ _Pragma("(clang diagnostic ignored \"-Wunused-value\")") \ -+ {expr;} \ -+ _Pragma("(clang diagnostic pop)") \ - JS_END_MACRO - #elif (__GNUC__ >= 5) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) - # define JS_SILENCE_UNUSED_VALUE_IN_EXPR(expr) \ diff --git a/www/libxul/files/patch-bug786995 b/www/libxul/files/patch-bug786995 deleted file mode 100644 index 85b3abcc3d13..000000000000 --- a/www/libxul/files/patch-bug786995 +++ /dev/null @@ -1,36 +0,0 @@ -# Bug 786995 - configure should check for SSSE3 support in the whole toolchain - ---- configure.in.orig 2012-09-02 00:37:29.000000000 +0200 -+++ configure.in 2012-09-02 00:38:50.000000000 +0200 -@@ -1710,15 +1710,15 @@ - _MOZ_RTTI_FLAGS_OFF=-fno-rtti - - # Check for -mssse3 on $CC -- AC_MSG_CHECKING([for -mssse3 option to $CC]) -- HAVE_COMPILER_FLAG_MSSSE3= -+ AC_MSG_CHECKING([if toolchain supports -mssse3 option]) -+ HAVE_TOOLCHAIN_SUPPORT_MSSSE3= - _SAVE_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS -mssse3" -- AC_TRY_COMPILE(,,AC_MSG_RESULT([yes]) -- [HAVE_COMPILER_FLAG_MSSSE3=1], -+ AC_TRY_COMPILE([asm ("pmaddubsw %xmm2,%xmm3");],,AC_MSG_RESULT([yes]) -+ [HAVE_TOOLCHAIN_SUPPORT_MSSSE3=1], - AC_MSG_RESULT([no])) - CFLAGS=$_SAVE_CFLAGS -- AC_SUBST(HAVE_COMPILER_FLAG_MSSSE3) -+ AC_SUBST(HAVE_TOOLCHAIN_SUPPORT_MSSSE3) - - # Turn on GNU-specific warnings: - # -Wall - turn on a lot of warnings ---- gfx/skia/Makefile.in.orig 2012-09-02 00:39:00.000000000 +0200 -+++ gfx/skia/Makefile.in 2012-09-02 00:39:21.000000000 +0200 -@@ -365,7 +365,7 @@ - SkUtils_opts_SSE2.cpp \ - opts_check_SSE2.cpp \ - $(NULL) --ifdef HAVE_COMPILER_FLAG_MSSSE3 -+ifdef HAVE_TOOLCHAIN_SUPPORT_MSSSE3 - DEFINES += -DSK_BUILD_SSSE3 - CPPSRCS += SkBitmapProcState_opts_SSSE3.cpp - endif diff --git a/www/libxul/files/patch-bug787904 b/www/libxul/files/patch-bug787904 deleted file mode 100644 index 55f7a6046813..000000000000 --- a/www/libxul/files/patch-bug787904 +++ /dev/null @@ -1,12 +0,0 @@ ---- js/src/gc/Heap.h -+++ js/src/gc/Heap.h -@@ -108,7 +108,8 @@ struct Cell - * Bug 692267: Move page size definition to gc/Memory.h and include it - * directly once jsgc.h is no longer an installed header. - */ --#if defined(SOLARIS) && (defined(__sparc) || defined(__sparcv9)) -+#if (defined(SOLARIS) || defined(__FreeBSD__)) && \ -+ (defined(__sparc) || defined(__sparcv9) || defined(__ia64)) - const size_t PageShift = 13; - #else - const size_t PageShift = 12; diff --git a/www/libxul/files/patch-bug788039 b/www/libxul/files/patch-bug788039 deleted file mode 100644 index a678de2eab4f..000000000000 --- a/www/libxul/files/patch-bug788039 +++ /dev/null @@ -1,48 +0,0 @@ -# Bug 788039 - With no prefix search libevent via pkg-config. - ---- configure.in~ -+++ configure.in -@@ -3854,7 +3854,7 @@ fi - dnl system libevent Support - dnl ======================================================== - MOZ_ARG_WITH_STRING(system-libevent, --[ --with-system-libevent=[PFX] -+[ --with-system-libevent[=PFX] - Use system libevent [installed at prefix PFX]], - LIBEVENT_DIR=$withval) - -@@ -3863,10 +3863,11 @@ _SAVE_LDFLAGS=$LDFLAGS - _SAVE_LIBS=$LIBS - if test -z "$LIBEVENT_DIR" -o "$LIBEVENT_DIR" = no; then - MOZ_NATIVE_LIBEVENT= -+elif test "$LIBEVENT_DIR" = yes; then -+ PKG_CHECK_MODULES(MOZ_LIBEVENT, libevent, -+ MOZ_NATIVE_LIBEVENT=1, -+ AC_MSG_ERROR([--with-system-libevent requested but libevent package not found])) - else -- if test "${LIBEVENT_DIR}" = "yes"; then -- LIBEVENT_DIR=/usr -- fi - CFLAGS="-I${LIBEVENT_DIR}/include $CFLAGS" - LDFLAGS="-L${LIBEVENT_DIR}/lib $LDFLAGS" - MOZ_CHECK_HEADER(event.h, -@@ -3876,16 +3877,16 @@ else - AC_MSG_ERROR([--with-system-libevent requested but event.h not found])) - AC_CHECK_LIB(event, event_init, - [MOZ_NATIVE_LIBEVENT=1 -- MOZ_LIBEVENT_INCLUDES="${LIBEVENT_DIR}/include" -+ MOZ_LIBEVENT_CFLAGS="-I${LIBEVENT_DIR}/include" - MOZ_LIBEVENT_LIBS="-L${LIBEVENT_DIR}/lib -levent"], -- [MOZ_NATIVE_LIBEVENT= MOZ_LIBEVENT_INCLUDES= MOZ_LIBEVENT_LIBS=]) -+ [MOZ_NATIVE_LIBEVENT= MOZ_LIBEVENT_CFLAGS= MOZ_LIBEVENT_LIBS=]) - fi - CFLAGS=$_SAVE_CFLAGS - LDFLAGS=$_SAVE_LDFLAGS - LIBS=$_SAVE_LIBS - - AC_SUBST(MOZ_NATIVE_LIBEVENT) --AC_SUBST(MOZ_LIBEVENT_INCLUDES) -+AC_SUBST(MOZ_LIBEVENT_CFLAGS) - AC_SUBST(MOZ_LIBEVENT_LIBS) - - dnl ======================================================== diff --git a/www/libxul/files/patch-bug788108 b/www/libxul/files/patch-bug788108 deleted file mode 100644 index 80ff18649882..000000000000 --- a/www/libxul/files/patch-bug788108 +++ /dev/null @@ -1,20 +0,0 @@ ---- content/base/public/nsContentUtils.h~ -+++ content/base/public/nsContentUtils.h -@@ -18,17 +18,6 @@ - #include <ieeefp.h> - #endif - --//A trick to handle IEEE floating point exceptions on FreeBSD - E.D. --#ifdef __FreeBSD__ --#include <ieeefp.h> --#if !defined(__i386__) && !defined(__x86_64__) --static fp_except_t allmask = FP_X_INV|FP_X_OFL|FP_X_UFL|FP_X_DZ|FP_X_IMP; --#else --static fp_except_t allmask = FP_X_INV|FP_X_OFL|FP_X_UFL|FP_X_DZ|FP_X_IMP|FP_X_DNML; --#endif --static fp_except_t oldmask = fpsetmask(~allmask); --#endif -- - #include "nsAString.h" - #include "nsIStatefulFrame.h" - #include "nsNodeInfoManager.h" diff --git a/www/libxul/files/patch-bug788955 b/www/libxul/files/patch-bug788955 deleted file mode 100644 index 57c5f12d7ed4..000000000000 --- a/www/libxul/files/patch-bug788955 +++ /dev/null @@ -1,299 +0,0 @@ -diff --git Makefile.in Makefile.in -index e341462..f75bd55 100644 ---- Makefile.in -+++ Makefile.in -@@ -48,8 +48,10 @@ endif - ifdef MOZ_MEMORY - tier_base_dirs += memory/mozjemalloc - ifdef MOZ_JEMALLOC -+ifndef MOZ_NATIVE_JEMALLOC - tier_base_dirs += memory/jemalloc - endif -+endif - tier_base_dirs += memory/build - endif - ifndef MOZ_NATIVE_ZLIB -diff --git allmakefiles.sh allmakefiles.sh -index 6a9be4b..d2e49e3 100755 ---- allmakefiles.sh -+++ allmakefiles.sh -@@ -59,7 +59,7 @@ if [ ! "$LIBXUL_SDK" ]; then - mozglue/Makefile - mozglue/build/Makefile - " -- if [ "$MOZ_JEMALLOC" ]; then -+ if [ "$MOZ_JEMALLOC" -a -z "$MOZ_NATIVE_JEMALLOC" ]; then - add_makefiles " - memory/jemalloc/Makefile - " -diff --git configure.in configure.in -index bb05782..2f32516 100644 ---- configure.in -+++ configure.in -@@ -3711,21 +3711,22 @@ fi - - dnl Check for the existence of various allocation headers/functions - -+MALLOC_HEADERS="malloc.h malloc_np.h malloc/malloc.h sys/malloc.h" - MALLOC_H= --MOZ_CHECK_HEADER(malloc.h, [MALLOC_H=malloc.h]) --if test "$MALLOC_H" = ""; then -- MOZ_CHECK_HEADER(malloc/malloc.h, [MALLOC_H=malloc/malloc.h]) -- if test "$MALLOC_H" = ""; then -- MOZ_CHECK_HEADER(sys/malloc.h, [MALLOC_H=sys/malloc.h]) -+ -+for file in $MALLOC_HEADERS; do -+ MOZ_CHECK_HEADER($file, [MALLOC_H=$file]) -+ if test "$MALLOC_H" != ""; then -+ AC_DEFINE_UNQUOTED(MALLOC_H, <$MALLOC_H>) -+ break - fi --fi --if test "$MALLOC_H" != ""; then -- AC_DEFINE_UNQUOTED(MALLOC_H, <$MALLOC_H>) --fi -+done - - MOZ_ALLOCATING_FUNCS="strndup posix_memalign memalign valloc" - AC_CHECK_FUNCS(strndup posix_memalign memalign valloc) - -+AC_CHECK_FUNCS(malloc_usable_size) -+ - dnl See if compiler supports some gcc-style attributes - - AC_CACHE_CHECK(for __attribute__((always_inline)), -@@ -6939,6 +6940,18 @@ else - fi - - if test -z "$MOZ_MEMORY"; then -+ if test -n "$MOZ_JEMALLOC"; then -+ MOZ_NATIVE_JEMALLOC=1 -+ AC_CHECK_FUNCS(mallctl nallocm,, -+ [MOZ_NATIVE_JEMALLOC= -+ break]) -+ if test -n "$MOZ_NATIVE_JEMALLOC"; then -+ MOZ_MEMORY=1 -+ AC_DEFINE(MOZ_MEMORY) -+ AC_DEFINE(MOZ_JEMALLOC) -+ AC_DEFINE(MOZ_NATIVE_JEMALLOC) -+ fi -+ fi - case "${target}" in - *-mingw*) - if test -z "$WIN32_REDIST_DIR" -a -z "$MOZ_DEBUG"; then -@@ -7033,6 +7046,7 @@ else - fi # MOZ_MEMORY - AC_SUBST(MOZ_MEMORY) - AC_SUBST(MOZ_JEMALLOC) -+AC_SUBST(MOZ_NATIVE_JEMALLOC) - AC_SUBST(MOZ_GLUE_LDFLAGS) - AC_SUBST(MOZ_GLUE_PROGRAM_LDFLAGS) - AC_SUBST(WIN32_CRT_LIBS) -@@ -8820,10 +8834,22 @@ fi - - # Run jemalloc configure script - --if test "$MOZ_JEMALLOC" -a "$MOZ_MEMORY"; then -+if test -z "$MOZ_NATIVE_JEMALLOC" -a "$MOZ_JEMALLOC" -a "$MOZ_MEMORY" ; then - ac_configure_args="$_SUBDIR_CONFIG_ARGS --build=$build --host=$target --enable-stats --with-jemalloc-prefix=je_" -- if test "$OS_ARCH" = "Linux"; then -- MANGLE="malloc calloc valloc free realloc memalign posix_memalign malloc_usable_size" -+ case "$OS_ARCH" in -+ Linux|DragonFly|FreeBSD|NetBSD|OpenBSD) -+ MANGLE="malloc calloc valloc free realloc posix_memalign" -+ case "$OS_ARCH" in -+ Linux) -+ MANGLE="$MANGLE memalign malloc_usable_size" -+ ;; -+ FreeBSD) -+ MANGLE="$MANGLE malloc_usable_size" -+ ;; -+ esac -+ ;; -+ esac -+ if test -n "$MANGLE"; then - MANGLED= - JEMALLOC_WRAPPER= - if test -n "$_WRAP_MALLOC"; then -diff --git memory/build/Makefile.in memory/build/Makefile.in -index dca0f48..af93ee0 100644 ---- memory/build/Makefile.in -+++ memory/build/Makefile.in -@@ -22,7 +22,9 @@ CSRCS = extraMallocFuncs.c - - ifdef MOZ_JEMALLOC - CSRCS += mozjemalloc_compat.c -+ifndef MOZ_NATIVE_JEMALLOC - SHARED_LIBRARY_LIBS += $(call EXPAND_LIBNAME_PATH,jemalloc,$(DEPTH)/memory/jemalloc) -+endif - else - SHARED_LIBRARY_LIBS += $(call EXPAND_LIBNAME_PATH,jemalloc,$(DEPTH)/memory/mozjemalloc) - endif -diff --git memory/build/extraMallocFuncs.c memory/build/extraMallocFuncs.c -index 9d87629..03c8320 100644 ---- memory/build/extraMallocFuncs.c -+++ memory/build/extraMallocFuncs.c -@@ -94,8 +94,16 @@ wrap(wcsdup)(const wchar_t *src) - #endif - - #ifdef MOZ_JEMALLOC -+ -+#undef wrap -+#if defined(MOZ_NATIVE_JEMALLOC) -+#define wrap(a) a -+#else -+#define wrap(a) je_ ## a -+#endif -+ - /* Override some jemalloc defaults */ --const char *je_malloc_conf = "narenas:1,lg_chunk:20"; -+MOZ_EXPORT_DATA(const char *) wrap(malloc_conf) = "narenas:1,lg_chunk:20"; - - #ifdef ANDROID - #include <android/log.h> -diff --git memory/build/mozjemalloc_compat.c memory/build/mozjemalloc_compat.c -index 10a845a..94ad96e 100644 ---- memory/build/mozjemalloc_compat.c -+++ memory/build/mozjemalloc_compat.c -@@ -5,14 +5,21 @@ - #include "mozilla/Types.h" - #include "jemalloc_types.h" - --extern int je_mallctl(const char*, void*, size_t*, void*, size_t); -+#if defined(MOZ_NATIVE_JEMALLOC) -+#define wrap(a) a -+#else -+#define wrap(a) je_ ## a -+#endif - --MOZ_EXPORT_API (void) -+extern MOZ_IMPORT_API(int) -+wrap(mallctl)(const char*, void*, size_t*, void*, size_t); -+ -+MOZ_EXPORT_API(void) - jemalloc_stats(jemalloc_stats_t *stats) - { - size_t size = sizeof(stats->mapped); -- je_mallctl("stats.mapped", &stats->mapped, &size, NULL, 0); -- je_mallctl("stats.allocated", &stats->allocated, &size, NULL, 0); -+ wrap(mallctl)("stats.mapped", &stats->mapped, &size, NULL, 0); -+ wrap(mallctl)("stats.allocated", &stats->allocated, &size, NULL, 0); - stats->committed = -1; - stats->dirty = -1; - } -diff --git memory/jemalloc/src/src/mutex.c memory/jemalloc/src/src/mutex.c -index 37a843e..55e18c2 100644 ---- memory/jemalloc/src/src/mutex.c -+++ memory/jemalloc/src/src/mutex.c -@@ -64,7 +64,7 @@ pthread_create(pthread_t *__restrict thread, - /******************************************************************************/ - - #ifdef JEMALLOC_MUTEX_INIT_CB --int _pthread_mutex_init_calloc_cb(pthread_mutex_t *mutex, -+JEMALLOC_EXPORT int _pthread_mutex_init_calloc_cb(pthread_mutex_t *mutex, - void *(calloc_cb)(size_t, size_t)); - #endif - -diff --git memory/mozalloc/mozalloc.cpp memory/mozalloc/mozalloc.cpp -index 5b61050b..5b3399a 100644 ---- memory/mozalloc/mozalloc.cpp -+++ memory/mozalloc/mozalloc.cpp -@@ -12,16 +12,13 @@ - #include <sys/types.h> - - #if defined(MALLOC_H) --# include MALLOC_H // for memalign, valloc where available -+# include MALLOC_H // for memalign, valloc, malloc_size, malloc_usable_size - #endif // if defined(MALLOC_H) - #include <stddef.h> // for size_t - #include <stdlib.h> // for malloc, free - #if defined(XP_UNIX) - # include <unistd.h> // for valloc on *BSD - #endif //if defined(XP_UNIX) --#if defined(__FreeBSD__) --# include <malloc_np.h> // for malloc_usable_size --#endif // if defined(__FreeBSD__) - - #if defined(XP_WIN) || (defined(XP_OS2) && defined(__declspec)) - # define MOZALLOC_EXPORT __declspec(dllexport) -@@ -213,8 +210,7 @@ moz_malloc_usable_size(void *ptr) - - #if defined(XP_MACOSX) - return malloc_size(ptr); --#elif defined(MOZ_MEMORY) || (defined(XP_LINUX) && !defined(ANDROID)) || defined(__FreeBSD__) -- // Android bionic libc doesn't have malloc_usable_size. -+#elif defined(HAVE_MALLOC_USABLE_SIZE) || defined(MOZ_MEMORY) - return malloc_usable_size(ptr); - #elif defined(XP_WIN) - return _msize(ptr); -diff --git memory/mozjemalloc/jemalloc.h memory/mozjemalloc/jemalloc.h -index f0e0878..2486e83 100644 ---- memory/mozjemalloc/jemalloc.h -+++ memory/mozjemalloc/jemalloc.h -@@ -37,22 +37,29 @@ - #endif - #include "jemalloc_types.h" - -+#if defined(MOZ_NATIVE_JEMALLOC) -+#define wrap(a) a -+#else -+#define wrap(a) je_ ## a -+#endif -+ - #ifdef __cplusplus - extern "C" { - #endif - --#if defined(MOZ_MEMORY_LINUX) -+#if defined(MOZ_NATIVE_JEMALLOC) \ -+ || defined(MOZ_MEMORY_LINUX) || defined(MOZ_MEMORY_BSD) - __attribute__((weak)) - #endif - void jemalloc_stats(jemalloc_stats_t *stats); - - /* Computes the usable size in advance. */ - #if !defined(MOZ_MEMORY_DARWIN) --#if defined(MOZ_MEMORY_LINUX) -+#if defined(MOZ_MEMORY_LINUX) || defined(MOZ_MEMORY_BSD) - __attribute__((weak)) - #endif - #if defined(MOZ_JEMALLOC) --int je_nallocm(size_t *rsize, size_t size, int flags); -+MOZ_IMPORT_API(int) wrap(nallocm)(size_t *rsize, size_t size, int flags); - #else - size_t je_malloc_good_size(size_t size); - #endif -@@ -62,11 +69,11 @@ static inline size_t je_malloc_usable_size_in_advance(size_t size) { - #if defined(MOZ_MEMORY_DARWIN) - return malloc_good_size(size); - #elif defined(MOZ_JEMALLOC) -- if (je_nallocm) { -+ if (wrap(nallocm)) { - size_t ret; - if (size == 0) - size = 1; -- if (!je_nallocm(&ret, size, 0)) -+ if (!wrap(nallocm)(&ret, size, 0)) - return ret; - } - return size; -@@ -113,4 +120,6 @@ void jemalloc_purge_freed_pages(); - } /* extern "C" */ - #endif - -+#undef wrap -+ - #endif /* _JEMALLOC_H_ */ -diff --git mozglue/build/Makefile.in mozglue/build/Makefile.in -index c333647..15ba505 100644 ---- mozglue/build/Makefile.in -+++ mozglue/build/Makefile.in -@@ -23,7 +23,7 @@ FORCE_STATIC_LIB = 1 - endif - - # Keep jemalloc separated when mozglue is statically linked --ifeq (1_1,$(MOZ_MEMORY)_$(FORCE_SHARED_LIB)) -+ifeq (1_1,$(MOZ_MEMORY)_$(or $(MOZ_NATIVE_JEMALLOC),$(FORCE_SHARED_LIB))) - SHARED_LIBRARY_LIBS = $(call EXPAND_LIBNAME_PATH,memory,$(DEPTH)/memory/build) - else - # Temporary, until bug 662814 lands diff --git a/www/libxul/files/patch-bug789436 b/www/libxul/files/patch-bug789436 deleted file mode 100644 index 6d1e7069b858..000000000000 --- a/www/libxul/files/patch-bug789436 +++ /dev/null @@ -1,27 +0,0 @@ ---- toolkit/xre/nsAppRunner.cpp~ -+++ toolkit/xre/nsAppRunner.cpp -@@ -1388,11 +1388,6 @@ static int MSCRTReportHook( int aReportType, char *aMessage, int *oReturnValue) - - #endif - --#if defined(FREEBSD) --// pick up fpsetmask prototype. --#include <ieeefp.h> --#endif -- - static inline void - DumpVersion() - { -@@ -4136,12 +4131,5 @@ SetupErrorHandling(const char* progname) - - // Unbuffer stdout, needed for tinderbox tests. - setbuf(stdout, 0); -- --#if defined(FREEBSD) -- // Disable all SIGFPE's on FreeBSD, as it has non-IEEE-conformant fp -- // trap behavior that trips up on floating-point tests performed by -- // the JS engine. See bugzilla bug 9967 details. -- fpsetmask(0); --#endif - } - diff --git a/www/libxul/files/patch-bug789656 b/www/libxul/files/patch-bug789656 deleted file mode 100644 index ebc567ef27ac..000000000000 --- a/www/libxul/files/patch-bug789656 +++ /dev/null @@ -1,11 +0,0 @@ ---- media/libopus/Makefile.in~ -+++ media/libopus/Makefile.in -@@ -20,7 +20,7 @@ DEFINES += \ - -Drestrict= \ - $(NULL) - --ifneq ($(filter $(OS_ARCH),Linux Darwin),) -+ifneq ($(filter $(OS_ARCH),Linux Darwin DragonFly FreeBSD NetBSD OpenBSD),) - DEFINES += -DHAVE_LRINTF - endif - ifeq ($(OS_ARCH), WINNT) diff --git a/www/libxul/files/patch-bug789693 b/www/libxul/files/patch-bug789693 deleted file mode 100644 index 1d2b790a35d5..000000000000 --- a/www/libxul/files/patch-bug789693 +++ /dev/null @@ -1,109 +0,0 @@ ---- toolkit/components/startup/nsAppStartup.cpp -+++ toolkit/components/startup/nsAppStartup.cpp -@@ -50,18 +50,41 @@ - #include <sys/syscall.h> - #endif - --#ifdef XP_MACOSX -+#if defined(XP_MACOSX) || defined(__DragonFly__) || defined(__FreeBSD__) \ -+ || defined(__NetBSD__) || defined(__OpenBSD__) -+#include <sys/param.h> - #include <sys/sysctl.h> - #endif - --#ifdef __OpenBSD__ --#include <sys/param.h> --#include <sys/sysctl.h> -+#if defined(__DragonFly__) || defined(__FreeBSD__) -+#include <sys/user.h> - #endif - - #include "mozilla/Telemetry.h" - #include "mozilla/StartupTimeline.h" - -+#if defined(__NetBSD__) -+#undef KERN_PROC -+#define KERN_PROC KERN_PROC2 -+#define KINFO_PROC struct kinfo_proc2 -+#else -+#define KINFO_PROC struct kinfo_proc -+#endif -+ -+#if defined(XP_MACOSX) -+#define KP_START_SEC kp_proc.p_un.__p_starttime.tv_sec -+#define KP_START_USEC kp_proc.p_un.__p_starttime.tv_usec -+#elif defined(__DragonFly__) -+#define KP_START_SEC kp_start.tv_sec -+#define KP_START_USEC kp_start.tv_usec -+#elif defined(__FreeBSD__) -+#define KP_START_SEC ki_start.tv_sec -+#define KP_START_USEC ki_start.tv_usec -+#else -+#define KP_START_SEC p_ustart_sec -+#define KP_START_USEC p_ustart_usec -+#endif -+ - static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); - - #define kPrefLastSuccess "toolkit.startup.last_success" -@@ -836,42 +859,30 @@ CalculateProcessCreationTimestamp() - #endif - return timestamp; - } --#elif defined(XP_MACOSX) -+#elif defined(XP_MACOSX) || defined(__DragonFly__) || defined(__FreeBSD__) \ -+ || defined(__NetBSD__) || defined(__OpenBSD__) - static PRTime - CalculateProcessCreationTimestamp() - { -- int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; -- size_t buffer_size; -- if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) -- return 0; -+ int mib[] = { -+ CTL_KERN, -+ KERN_PROC, -+ KERN_PROC_PID, -+ getpid(), -+#if defined(__NetBSD__) || defined(__OpenBSD__) -+ sizeof(KINFO_PROC), -+ 1, -+#endif -+ }; -+ u_int miblen = sizeof(mib) / sizeof(mib[0]); - -- struct kinfo_proc *proc = (kinfo_proc*) malloc(buffer_size); -- if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { -- free(proc); -- return 0; -- } -- PRTime starttime = static_cast<PRTime>(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; -- starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; -- free(proc); -- return starttime; --} --#elif defined(__OpenBSD__) --static PRTime --CalculateProcessCreationTimestamp() --{ -- int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; -- size_t buffer_size; -- if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -+ KINFO_PROC proc; -+ size_t buffer_size = sizeof(proc); -+ if (sysctl(mib, miblen, &proc, &buffer_size, NULL, 0)) - return 0; - -- struct kinfo_proc *proc = (struct kinfo_proc*) malloc(buffer_size); -- if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { -- free(proc); -- return 0; -- } -- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC; -- starttime += proc->p_ustart_usec; -- free(proc); -+ PRTime starttime = static_cast<PRTime>(proc.KP_START_SEC) * PR_USEC_PER_SEC; -+ starttime += proc.KP_START_USEC; - return starttime; - } - #else diff --git a/www/libxul/files/patch-bug791305 b/www/libxul/files/patch-bug791305 index 534e7f2d9cac..ef75e4a17bb5 100644 --- a/www/libxul/files/patch-bug791305 +++ b/www/libxul/files/patch-bug791305 @@ -15,93 +15,383 @@ Date: Fri Sep 14 15:54:55 2012 -0400 image/decoders/nsJPEGDecoder.cpp | 311 ++------------------------------------- 2 files changed, 20 insertions(+), 297 deletions(-) +diff --git configure.in configure.in +index f0aeb5d..1c01010 100644 +--- configure.in ++++ configure.in +@@ -4027,11 +4027,7 @@ if test "$MOZ_NATIVE_JPEG" = 1; then + #include <jpeglib.h> ], + [ #if JPEG_LIB_VERSION < $MOZJPEG + #error "Insufficient JPEG library version ($MOZJPEG required)." +- #endif +- #ifndef JCS_EXTENSIONS +- #error "libjpeg-turbo JCS_EXTENSIONS required" +- #endif +- ], ++ #endif ], + MOZ_NATIVE_JPEG=1, + AC_MSG_ERROR([Insufficient JPEG library version for --with-system-jpeg])) + fi diff --git image/decoders/nsJPEGDecoder.cpp image/decoders/nsJPEGDecoder.cpp -index c1fb515..1d2a259 100644 +index 8fa8200..1d2a259 100644 --- image/decoders/nsJPEGDecoder.cpp +++ image/decoders/nsJPEGDecoder.cpp -@@ -22,6 +22,13 @@ +@@ -21,13 +21,28 @@ + extern "C" { #include "iccjpeg.h" +-} +#ifdef JCS_EXTENSIONS -+#if defined(IS_BIG_ENDIAN) -+#define MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB JCS_EXT_XRGB -+#else -+#define MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB JCS_EXT_BGRX -+#endif + #if defined(IS_BIG_ENDIAN) + #define MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB JCS_EXT_XRGB + #else + #define MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB JCS_EXT_BGRX + #endif +#else - /* Colorspace conversion (copied from jpegint.h) */ - struct jpeg_color_deconverter { - JMETHOD(void, start_pass, (j_decompress_ptr cinfo)); -@@ -34,6 +41,7 @@ METHODDEF(void) - ycc_rgb_convert_argb (j_decompress_ptr cinfo, - JSAMPIMAGE input_buf, JDIMENSION input_row, - JSAMPARRAY output_buf, int num_rows); ++/* Colorspace conversion (copied from jpegint.h) */ ++struct jpeg_color_deconverter { ++ JMETHOD(void, start_pass, (j_decompress_ptr cinfo)); ++ JMETHOD(void, color_convert, (j_decompress_ptr cinfo, ++ JSAMPIMAGE input_buf, JDIMENSION input_row, ++ JSAMPARRAY output_buf, int num_rows)); ++}; ++ ++METHODDEF(void) ++ycc_rgb_convert_argb (j_decompress_ptr cinfo, ++ JSAMPIMAGE input_buf, JDIMENSION input_row, ++ JSAMPARRAY output_buf, int num_rows); +#endif - } ++} static void cmyk_convert_rgb(JSAMPROW row, JDIMENSION width); -@@ -329,7 +340,18 @@ nsJPEGDecoder::WriteInternal(const char *aBuffer, PRUint32 aCount) + +@@ -324,6 +340,7 @@ nsJPEGDecoder::WriteInternal(const char *aBuffer, uint32_t aCount) case JCS_GRAYSCALE: case JCS_RGB: case JCS_YCbCr: +#ifdef JCS_EXTENSIONS -+ // if we're not color managing we can decode directly to -+ // MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB -+ if (mCMSMode != eCMSMode_All) { -+ mInfo.out_color_space = MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB; -+ mInfo.out_color_components = 4; -+ } else { -+ mInfo.out_color_space = JCS_RGB; -+ } + // if we're not color managing we can decode directly to + // MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB + if (mCMSMode != eCMSMode_All) { +@@ -332,6 +349,9 @@ nsJPEGDecoder::WriteInternal(const char *aBuffer, uint32_t aCount) + } else { + mInfo.out_color_space = JCS_RGB; + } +#else - mInfo.out_color_space = JCS_RGB; ++ mInfo.out_color_space = JCS_RGB; +#endif break; case JCS_CMYK: case JCS_YCCK: -@@ -397,6 +419,7 @@ nsJPEGDecoder::WriteInternal(const char *aBuffer, PRUint32 aCount) +@@ -399,6 +419,15 @@ nsJPEGDecoder::WriteInternal(const char *aBuffer, uint32_t aCount) return; /* I/O suspension */ } +#ifndef JCS_EXTENSIONS - /* Force to use our YCbCr to Packed RGB converter when possible */ - if (!mTransform && (mCMSMode != eCMSMode_All) && - mInfo.jpeg_color_space == JCS_YCbCr && mInfo.out_color_space == JCS_RGB) { -@@ -404,6 +427,7 @@ nsJPEGDecoder::WriteInternal(const char *aBuffer, PRUint32 aCount) - mInfo.out_color_components = 4; /* Packed ARGB pixels are always 4 bytes...*/ - mInfo.cconvert->color_convert = ycc_rgb_convert_argb; - } ++ /* Force to use our YCbCr to Packed RGB converter when possible */ ++ if (!mTransform && (mCMSMode != eCMSMode_All) && ++ mInfo.jpeg_color_space == JCS_YCbCr && mInfo.out_color_space == JCS_RGB) { ++ /* Special case for the most common case: transform from YCbCr direct into packed ARGB */ ++ mInfo.out_color_components = 4; /* Packed ARGB pixels are always 4 bytes...*/ ++ mInfo.cconvert->color_convert = ycc_rgb_convert_argb; ++ } +#endif /* If this is a progressive JPEG ... */ mState = mInfo.buffered_image ? JPEG_DECOMPRESS_PROGRESSIVE : JPEG_DECOMPRESS_SEQUENTIAL; -@@ -542,7 +566,11 @@ nsJPEGDecoder::OutputScanlines(bool* suspend) - PRUint32 *imageRow = ((PRUint32*)mImageData) + +@@ -544,7 +573,11 @@ nsJPEGDecoder::OutputScanlines(bool* suspend) + uint32_t *imageRow = ((uint32_t*)mImageData) + (mInfo.output_scanline * mInfo.output_width); +#ifdef JCS_EXTENSIONS -+ if (mInfo.out_color_space == MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB) { + if (mInfo.out_color_space == MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB) { +#else - if (mInfo.cconvert->color_convert == ycc_rgb_convert_argb) { ++ if (mInfo.cconvert->color_convert == ycc_rgb_convert_argb) { +#endif /* Special case: scanline will be directly converted into packed ARGB */ if (jpeg_read_scanlines(&mInfo, (JSAMPARRAY)&imageRow, 1) != 1) { *suspend = true; /* suspend */ -@@ -858,6 +887,7 @@ term_source (j_decompress_ptr jd) +@@ -854,6 +887,282 @@ term_source (j_decompress_ptr jd) } // namespace mozilla +#ifndef JCS_EXTENSIONS - /**************** YCbCr -> Cairo's RGB24/ARGB32 conversion: most common case **************/ - - /* -@@ -1130,7 +1160,8 @@ ycc_rgb_convert_argb (j_decompress_ptr cinfo, - } - } - } ++/**************** YCbCr -> Cairo's RGB24/ARGB32 conversion: most common case **************/ ++ ++/* ++ * YCbCr is defined per CCIR 601-1, except that Cb and Cr are ++ * normalized to the range 0..MAXJSAMPLE rather than -0.5 .. 0.5. ++ * The conversion equations to be implemented are therefore ++ * R = Y + 1.40200 * Cr ++ * G = Y - 0.34414 * Cb - 0.71414 * Cr ++ * B = Y + 1.77200 * Cb ++ * where Cb and Cr represent the incoming values less CENTERJSAMPLE. ++ * (These numbers are derived from TIFF 6.0 section 21, dated 3-June-92.) ++ * ++ * To avoid floating-point arithmetic, we represent the fractional constants ++ * as integers scaled up by 2^16 (about 4 digits precision); we have to divide ++ * the products by 2^16, with appropriate rounding, to get the correct answer. ++ * Notice that Y, being an integral input, does not contribute any fraction ++ * so it need not participate in the rounding. ++ * ++ * For even more speed, we avoid doing any multiplications in the inner loop ++ * by precalculating the constants times Cb and Cr for all possible values. ++ * For 8-bit JSAMPLEs this is very reasonable (only 256 entries per table); ++ * for 12-bit samples it is still acceptable. It's not very reasonable for ++ * 16-bit samples, but if you want lossless storage you shouldn't be changing ++ * colorspace anyway. ++ * The Cr=>R and Cb=>B values can be rounded to integers in advance; the ++ * values for the G calculation are left scaled up, since we must add them ++ * together before rounding. ++ */ ++ ++#define SCALEBITS 16 /* speediest right-shift on some machines */ ++ ++/* Use static tables for color processing. */ ++/* Four tables, each 256 entries of 4 bytes totals 4K which is not bad... */ ++ ++const int Cr_r_tab[(MAXJSAMPLE+1) * sizeof(int)] ={ ++ -0xb3, -0xb2, -0xb1, -0xaf, -0xae, -0xac, ++ -0xab, -0xaa, -0xa8, -0xa7, -0xa5, -0xa4, ++ -0xa3, -0xa1, -0xa0, -0x9e, -0x9d, -0x9c, ++ -0x9a, -0x99, -0x97, -0x96, -0x95, -0x93, ++ -0x92, -0x90, -0x8f, -0x8e, -0x8c, -0x8b, ++ -0x89, -0x88, -0x87, -0x85, -0x84, -0x82, ++ -0x81, -0x80, -0x7e, -0x7d, -0x7b, -0x7a, ++ -0x79, -0x77, -0x76, -0x74, -0x73, -0x72, ++ -0x70, -0x6f, -0x6d, -0x6c, -0x6b, -0x69, ++ -0x68, -0x66, -0x65, -0x64, -0x62, -0x61, ++ -0x5f, -0x5e, -0x5d, -0x5b, -0x5a, -0x58, ++ -0x57, -0x56, -0x54, -0x53, -0x51, -0x50, ++ -0x4f, -0x4d, -0x4c, -0x4a, -0x49, -0x48, ++ -0x46, -0x45, -0x43, -0x42, -0x40, -0x3f, ++ -0x3e, -0x3c, -0x3b, -0x39, -0x38, -0x37, ++ -0x35, -0x34, -0x32, -0x31, -0x30, -0x2e, ++ -0x2d, -0x2b, -0x2a, -0x29, -0x27, -0x26, ++ -0x24, -0x23, -0x22, -0x20, -0x1f, -0x1d, ++ -0x1c, -0x1b, -0x19, -0x18, -0x16, -0x15, ++ -0x14, -0x12, -0x11, -0x0f, -0x0e, -0x0d, ++ -0x0b, -0x0a, -0x08, -0x07, -0x06, -0x04, ++ -0x03, -0x01, 0x00, 0x01, 0x03, 0x04, ++ 0x06, 0x07, 0x08, 0x0a, 0x0b, 0x0d, ++ 0x0e, 0x0f, 0x11, 0x12, 0x14, 0x15, ++ 0x16, 0x18, 0x19, 0x1b, 0x1c, 0x1d, ++ 0x1f, 0x20, 0x22, 0x23, 0x24, 0x26, ++ 0x27, 0x29, 0x2a, 0x2b, 0x2d, 0x2e, ++ 0x30, 0x31, 0x32, 0x34, 0x35, 0x37, ++ 0x38, 0x39, 0x3b, 0x3c, 0x3e, 0x3f, ++ 0x40, 0x42, 0x43, 0x45, 0x46, 0x48, ++ 0x49, 0x4a, 0x4c, 0x4d, 0x4f, 0x50, ++ 0x51, 0x53, 0x54, 0x56, 0x57, 0x58, ++ 0x5a, 0x5b, 0x5d, 0x5e, 0x5f, 0x61, ++ 0x62, 0x64, 0x65, 0x66, 0x68, 0x69, ++ 0x6b, 0x6c, 0x6d, 0x6f, 0x70, 0x72, ++ 0x73, 0x74, 0x76, 0x77, 0x79, 0x7a, ++ 0x7b, 0x7d, 0x7e, 0x80, 0x81, 0x82, ++ 0x84, 0x85, 0x87, 0x88, 0x89, 0x8b, ++ 0x8c, 0x8e, 0x8f, 0x90, 0x92, 0x93, ++ 0x95, 0x96, 0x97, 0x99, 0x9a, 0x9c, ++ 0x9d, 0x9e, 0xa0, 0xa1, 0xa3, 0xa4, ++ 0xa5, 0xa7, 0xa8, 0xaa, 0xab, 0xac, ++ 0xae, 0xaf, 0xb1, 0xb2, ++ }; ++ ++const int Cb_b_tab[(MAXJSAMPLE+1) * sizeof(int)] ={ ++ -0xe3, -0xe1, -0xdf, -0xde, -0xdc, -0xda, ++ -0xd8, -0xd6, -0xd5, -0xd3, -0xd1, -0xcf, ++ -0xce, -0xcc, -0xca, -0xc8, -0xc6, -0xc5, ++ -0xc3, -0xc1, -0xbf, -0xbe, -0xbc, -0xba, ++ -0xb8, -0xb7, -0xb5, -0xb3, -0xb1, -0xaf, ++ -0xae, -0xac, -0xaa, -0xa8, -0xa7, -0xa5, ++ -0xa3, -0xa1, -0x9f, -0x9e, -0x9c, -0x9a, ++ -0x98, -0x97, -0x95, -0x93, -0x91, -0x90, ++ -0x8e, -0x8c, -0x8a, -0x88, -0x87, -0x85, ++ -0x83, -0x81, -0x80, -0x7e, -0x7c, -0x7a, ++ -0x78, -0x77, -0x75, -0x73, -0x71, -0x70, ++ -0x6e, -0x6c, -0x6a, -0x69, -0x67, -0x65, ++ -0x63, -0x61, -0x60, -0x5e, -0x5c, -0x5a, ++ -0x59, -0x57, -0x55, -0x53, -0x52, -0x50, ++ -0x4e, -0x4c, -0x4a, -0x49, -0x47, -0x45, ++ -0x43, -0x42, -0x40, -0x3e, -0x3c, -0x3a, ++ -0x39, -0x37, -0x35, -0x33, -0x32, -0x30, ++ -0x2e, -0x2c, -0x2b, -0x29, -0x27, -0x25, ++ -0x23, -0x22, -0x20, -0x1e, -0x1c, -0x1b, ++ -0x19, -0x17, -0x15, -0x13, -0x12, -0x10, ++ -0x0e, -0x0c, -0x0b, -0x09, -0x07, -0x05, ++ -0x04, -0x02, 0x00, 0x02, 0x04, 0x05, ++ 0x07, 0x09, 0x0b, 0x0c, 0x0e, 0x10, ++ 0x12, 0x13, 0x15, 0x17, 0x19, 0x1b, ++ 0x1c, 0x1e, 0x20, 0x22, 0x23, 0x25, ++ 0x27, 0x29, 0x2b, 0x2c, 0x2e, 0x30, ++ 0x32, 0x33, 0x35, 0x37, 0x39, 0x3a, ++ 0x3c, 0x3e, 0x40, 0x42, 0x43, 0x45, ++ 0x47, 0x49, 0x4a, 0x4c, 0x4e, 0x50, ++ 0x52, 0x53, 0x55, 0x57, 0x59, 0x5a, ++ 0x5c, 0x5e, 0x60, 0x61, 0x63, 0x65, ++ 0x67, 0x69, 0x6a, 0x6c, 0x6e, 0x70, ++ 0x71, 0x73, 0x75, 0x77, 0x78, 0x7a, ++ 0x7c, 0x7e, 0x80, 0x81, 0x83, 0x85, ++ 0x87, 0x88, 0x8a, 0x8c, 0x8e, 0x90, ++ 0x91, 0x93, 0x95, 0x97, 0x98, 0x9a, ++ 0x9c, 0x9e, 0x9f, 0xa1, 0xa3, 0xa5, ++ 0xa7, 0xa8, 0xaa, 0xac, 0xae, 0xaf, ++ 0xb1, 0xb3, 0xb5, 0xb7, 0xb8, 0xba, ++ 0xbc, 0xbe, 0xbf, 0xc1, 0xc3, 0xc5, ++ 0xc6, 0xc8, 0xca, 0xcc, 0xce, 0xcf, ++ 0xd1, 0xd3, 0xd5, 0xd6, 0xd8, 0xda, ++ 0xdc, 0xde, 0xdf, 0xe1, ++ }; ++ ++const int Cr_g_tab[(MAXJSAMPLE+1) * sizeof(int)] ={ ++ 0x5b6900, 0x5ab22e, 0x59fb5c, 0x59448a, 0x588db8, 0x57d6e6, ++ 0x572014, 0x566942, 0x55b270, 0x54fb9e, 0x5444cc, 0x538dfa, ++ 0x52d728, 0x522056, 0x516984, 0x50b2b2, 0x4ffbe0, 0x4f450e, ++ 0x4e8e3c, 0x4dd76a, 0x4d2098, 0x4c69c6, 0x4bb2f4, 0x4afc22, ++ 0x4a4550, 0x498e7e, 0x48d7ac, 0x4820da, 0x476a08, 0x46b336, ++ 0x45fc64, 0x454592, 0x448ec0, 0x43d7ee, 0x43211c, 0x426a4a, ++ 0x41b378, 0x40fca6, 0x4045d4, 0x3f8f02, 0x3ed830, 0x3e215e, ++ 0x3d6a8c, 0x3cb3ba, 0x3bfce8, 0x3b4616, 0x3a8f44, 0x39d872, ++ 0x3921a0, 0x386ace, 0x37b3fc, 0x36fd2a, 0x364658, 0x358f86, ++ 0x34d8b4, 0x3421e2, 0x336b10, 0x32b43e, 0x31fd6c, 0x31469a, ++ 0x308fc8, 0x2fd8f6, 0x2f2224, 0x2e6b52, 0x2db480, 0x2cfdae, ++ 0x2c46dc, 0x2b900a, 0x2ad938, 0x2a2266, 0x296b94, 0x28b4c2, ++ 0x27fdf0, 0x27471e, 0x26904c, 0x25d97a, 0x2522a8, 0x246bd6, ++ 0x23b504, 0x22fe32, 0x224760, 0x21908e, 0x20d9bc, 0x2022ea, ++ 0x1f6c18, 0x1eb546, 0x1dfe74, 0x1d47a2, 0x1c90d0, 0x1bd9fe, ++ 0x1b232c, 0x1a6c5a, 0x19b588, 0x18feb6, 0x1847e4, 0x179112, ++ 0x16da40, 0x16236e, 0x156c9c, 0x14b5ca, 0x13fef8, 0x134826, ++ 0x129154, 0x11da82, 0x1123b0, 0x106cde, 0x0fb60c, 0x0eff3a, ++ 0x0e4868, 0x0d9196, 0x0cdac4, 0x0c23f2, 0x0b6d20, 0x0ab64e, ++ 0x09ff7c, 0x0948aa, 0x0891d8, 0x07db06, 0x072434, 0x066d62, ++ 0x05b690, 0x04ffbe, 0x0448ec, 0x03921a, 0x02db48, 0x022476, ++ 0x016da4, 0x00b6d2, 0x000000, -0x00b6d2, -0x016da4, -0x022476, ++ -0x02db48, -0x03921a, -0x0448ec, -0x04ffbe, -0x05b690, -0x066d62, ++ -0x072434, -0x07db06, -0x0891d8, -0x0948aa, -0x09ff7c, -0x0ab64e, ++ -0x0b6d20, -0x0c23f2, -0x0cdac4, -0x0d9196, -0x0e4868, -0x0eff3a, ++ -0x0fb60c, -0x106cde, -0x1123b0, -0x11da82, -0x129154, -0x134826, ++ -0x13fef8, -0x14b5ca, -0x156c9c, -0x16236e, -0x16da40, -0x179112, ++ -0x1847e4, -0x18feb6, -0x19b588, -0x1a6c5a, -0x1b232c, -0x1bd9fe, ++ -0x1c90d0, -0x1d47a2, -0x1dfe74, -0x1eb546, -0x1f6c18, -0x2022ea, ++ -0x20d9bc, -0x21908e, -0x224760, -0x22fe32, -0x23b504, -0x246bd6, ++ -0x2522a8, -0x25d97a, -0x26904c, -0x27471e, -0x27fdf0, -0x28b4c2, ++ -0x296b94, -0x2a2266, -0x2ad938, -0x2b900a, -0x2c46dc, -0x2cfdae, ++ -0x2db480, -0x2e6b52, -0x2f2224, -0x2fd8f6, -0x308fc8, -0x31469a, ++ -0x31fd6c, -0x32b43e, -0x336b10, -0x3421e2, -0x34d8b4, -0x358f86, ++ -0x364658, -0x36fd2a, -0x37b3fc, -0x386ace, -0x3921a0, -0x39d872, ++ -0x3a8f44, -0x3b4616, -0x3bfce8, -0x3cb3ba, -0x3d6a8c, -0x3e215e, ++ -0x3ed830, -0x3f8f02, -0x4045d4, -0x40fca6, -0x41b378, -0x426a4a, ++ -0x43211c, -0x43d7ee, -0x448ec0, -0x454592, -0x45fc64, -0x46b336, ++ -0x476a08, -0x4820da, -0x48d7ac, -0x498e7e, -0x4a4550, -0x4afc22, ++ -0x4bb2f4, -0x4c69c6, -0x4d2098, -0x4dd76a, -0x4e8e3c, -0x4f450e, ++ -0x4ffbe0, -0x50b2b2, -0x516984, -0x522056, -0x52d728, -0x538dfa, ++ -0x5444cc, -0x54fb9e, -0x55b270, -0x566942, -0x572014, -0x57d6e6, ++ -0x588db8, -0x59448a, -0x59fb5c, -0x5ab22e, ++ }; ++ ++const int Cb_g_tab[(MAXJSAMPLE+1) * sizeof(int)] ={ ++ 0x2c8d00, 0x2c34e6, 0x2bdccc, 0x2b84b2, 0x2b2c98, 0x2ad47e, ++ 0x2a7c64, 0x2a244a, 0x29cc30, 0x297416, 0x291bfc, 0x28c3e2, ++ 0x286bc8, 0x2813ae, 0x27bb94, 0x27637a, 0x270b60, 0x26b346, ++ 0x265b2c, 0x260312, 0x25aaf8, 0x2552de, 0x24fac4, 0x24a2aa, ++ 0x244a90, 0x23f276, 0x239a5c, 0x234242, 0x22ea28, 0x22920e, ++ 0x2239f4, 0x21e1da, 0x2189c0, 0x2131a6, 0x20d98c, 0x208172, ++ 0x202958, 0x1fd13e, 0x1f7924, 0x1f210a, 0x1ec8f0, 0x1e70d6, ++ 0x1e18bc, 0x1dc0a2, 0x1d6888, 0x1d106e, 0x1cb854, 0x1c603a, ++ 0x1c0820, 0x1bb006, 0x1b57ec, 0x1affd2, 0x1aa7b8, 0x1a4f9e, ++ 0x19f784, 0x199f6a, 0x194750, 0x18ef36, 0x18971c, 0x183f02, ++ 0x17e6e8, 0x178ece, 0x1736b4, 0x16de9a, 0x168680, 0x162e66, ++ 0x15d64c, 0x157e32, 0x152618, 0x14cdfe, 0x1475e4, 0x141dca, ++ 0x13c5b0, 0x136d96, 0x13157c, 0x12bd62, 0x126548, 0x120d2e, ++ 0x11b514, 0x115cfa, 0x1104e0, 0x10acc6, 0x1054ac, 0x0ffc92, ++ 0x0fa478, 0x0f4c5e, 0x0ef444, 0x0e9c2a, 0x0e4410, 0x0debf6, ++ 0x0d93dc, 0x0d3bc2, 0x0ce3a8, 0x0c8b8e, 0x0c3374, 0x0bdb5a, ++ 0x0b8340, 0x0b2b26, 0x0ad30c, 0x0a7af2, 0x0a22d8, 0x09cabe, ++ 0x0972a4, 0x091a8a, 0x08c270, 0x086a56, 0x08123c, 0x07ba22, ++ 0x076208, 0x0709ee, 0x06b1d4, 0x0659ba, 0x0601a0, 0x05a986, ++ 0x05516c, 0x04f952, 0x04a138, 0x04491e, 0x03f104, 0x0398ea, ++ 0x0340d0, 0x02e8b6, 0x02909c, 0x023882, 0x01e068, 0x01884e, ++ 0x013034, 0x00d81a, 0x008000, 0x0027e6, -0x003034, -0x00884e, ++ -0x00e068, -0x013882, -0x01909c, -0x01e8b6, -0x0240d0, -0x0298ea, ++ -0x02f104, -0x03491e, -0x03a138, -0x03f952, -0x04516c, -0x04a986, ++ -0x0501a0, -0x0559ba, -0x05b1d4, -0x0609ee, -0x066208, -0x06ba22, ++ -0x07123c, -0x076a56, -0x07c270, -0x081a8a, -0x0872a4, -0x08cabe, ++ -0x0922d8, -0x097af2, -0x09d30c, -0x0a2b26, -0x0a8340, -0x0adb5a, ++ -0x0b3374, -0x0b8b8e, -0x0be3a8, -0x0c3bc2, -0x0c93dc, -0x0cebf6, ++ -0x0d4410, -0x0d9c2a, -0x0df444, -0x0e4c5e, -0x0ea478, -0x0efc92, ++ -0x0f54ac, -0x0facc6, -0x1004e0, -0x105cfa, -0x10b514, -0x110d2e, ++ -0x116548, -0x11bd62, -0x12157c, -0x126d96, -0x12c5b0, -0x131dca, ++ -0x1375e4, -0x13cdfe, -0x142618, -0x147e32, -0x14d64c, -0x152e66, ++ -0x158680, -0x15de9a, -0x1636b4, -0x168ece, -0x16e6e8, -0x173f02, ++ -0x17971c, -0x17ef36, -0x184750, -0x189f6a, -0x18f784, -0x194f9e, ++ -0x19a7b8, -0x19ffd2, -0x1a57ec, -0x1ab006, -0x1b0820, -0x1b603a, ++ -0x1bb854, -0x1c106e, -0x1c6888, -0x1cc0a2, -0x1d18bc, -0x1d70d6, ++ -0x1dc8f0, -0x1e210a, -0x1e7924, -0x1ed13e, -0x1f2958, -0x1f8172, ++ -0x1fd98c, -0x2031a6, -0x2089c0, -0x20e1da, -0x2139f4, -0x21920e, ++ -0x21ea28, -0x224242, -0x229a5c, -0x22f276, -0x234a90, -0x23a2aa, ++ -0x23fac4, -0x2452de, -0x24aaf8, -0x250312, -0x255b2c, -0x25b346, ++ -0x260b60, -0x26637a, -0x26bb94, -0x2713ae, -0x276bc8, -0x27c3e2, ++ -0x281bfc, -0x287416, -0x28cc30, -0x29244a, -0x297c64, -0x29d47e, ++ -0x2a2c98, -0x2a84b2, -0x2adccc, -0x2b34e6, ++ }; ++ ++ ++/* We assume that right shift corresponds to signed division by 2 with ++ * rounding towards minus infinity. This is correct for typical "arithmetic ++ * shift" instructions that shift in copies of the sign bit. But some ++ * C compilers implement >> with an unsigned shift. For these machines you ++ * must define RIGHT_SHIFT_IS_UNSIGNED. ++ * RIGHT_SHIFT provides a proper signed right shift of an INT32 quantity. ++ * It is only applied with constant shift counts. SHIFT_TEMPS must be ++ * included in the variables of any routine using RIGHT_SHIFT. ++ */ ++ ++#ifdef RIGHT_SHIFT_IS_UNSIGNED ++#define SHIFT_TEMPS INT32 shift_temp; ++#define RIGHT_SHIFT(x,shft) \ ++ ((shift_temp = (x)) < 0 ? \ ++ (shift_temp >> (shft)) | ((~((INT32) 0)) << (32-(shft))) : \ ++ (shift_temp >> (shft))) ++#else ++#define SHIFT_TEMPS ++#define RIGHT_SHIFT(x,shft) ((x) >> (shft)) +#endif - - ++ ++ ++METHODDEF(void) ++ycc_rgb_convert_argb (j_decompress_ptr cinfo, ++ JSAMPIMAGE input_buf, JDIMENSION input_row, ++ JSAMPARRAY output_buf, int num_rows) ++{ ++ JDIMENSION num_cols = cinfo->output_width; ++ JSAMPLE * range_limit = cinfo->sample_range_limit; ++ ++ SHIFT_TEMPS ++ ++ /* This is used if we don't have SSE2 */ ++ ++ while (--num_rows >= 0) { ++ JSAMPROW inptr0 = input_buf[0][input_row]; ++ JSAMPROW inptr1 = input_buf[1][input_row]; ++ JSAMPROW inptr2 = input_buf[2][input_row]; ++ input_row++; ++ uint32_t *outptr = (uint32_t *) *output_buf++; ++ for (JDIMENSION col = 0; col < num_cols; col++) { ++ int y = GETJSAMPLE(inptr0[col]); ++ int cb = GETJSAMPLE(inptr1[col]); ++ int cr = GETJSAMPLE(inptr2[col]); ++ JSAMPLE * range_limit_y = range_limit + y; ++ /* Range-limiting is essential due to noise introduced by DCT losses. */ ++ outptr[col] = 0xFF000000 | ++ ( range_limit_y[Cr_r_tab[cr]] << 16 ) | ++ ( range_limit_y[((int) RIGHT_SHIFT(Cb_g_tab[cb] + Cr_g_tab[cr], SCALEBITS))] << 8 ) | ++ ( range_limit_y[Cb_b_tab[cb]] ); ++ } ++ } ++} ++#endif ++ ++ /**************** Inverted CMYK -> RGB conversion **************/ /* + * Input is (Inverted) CMYK stored as 4 bytes per pixel. diff --git a/www/libxul/files/patch-bug791366 b/www/libxul/files/patch-bug791366 deleted file mode 100644 index 2be866d928cd..000000000000 --- a/www/libxul/files/patch-bug791366 +++ /dev/null @@ -1,95 +0,0 @@ -diff --git xpcom/base/nsMemoryReporterManager.cpp xpcom/base/nsMemoryReporterManager.cpp -index a9aff58..674e757 100644 ---- xpcom/base/nsMemoryReporterManager.cpp -+++ xpcom/base/nsMemoryReporterManager.cpp -@@ -32,7 +32,7 @@ using namespace mozilla; - # include "jemalloc.h" - #endif // MOZ_MEMORY - --#if defined(XP_LINUX) || defined(XP_MACOSX) || defined(SOLARIS) -+#ifdef XP_UNIX - - #include <sys/time.h> - #include <sys/resource.h> -@@ -95,6 +95,81 @@ static nsresult GetResident(PRInt64 *n) - return GetProcSelfStatmField(1, n); - } - -+#elif defined(__DragonFly__) || defined(__FreeBSD__) \ -+ || defined(__NetBSD__) || defined(__OpenBSD__) -+ -+#include <sys/param.h> -+#include <sys/sysctl.h> -+#if defined(__DragonFly__) || defined(__FreeBSD__) -+#include <sys/user.h> -+#endif -+ -+#include <unistd.h> -+ -+#if defined(__NetBSD__) -+#undef KERN_PROC -+#define KERN_PROC KERN_PROC2 -+#define KINFO_PROC struct kinfo_proc2 -+#else -+#define KINFO_PROC struct kinfo_proc -+#endif -+ -+#if defined(__DragonFly__) -+#define KP_SIZE(kp) (kp.kp_vm_map_size) -+#define KP_RSS(kp) (kp.kp_vm_rssize * getpagesize()) -+#elif defined(__FreeBSD__) -+#define KP_SIZE(kp) (kp.ki_size) -+#define KP_RSS(kp) (kp.ki_rssize * getpagesize()) -+#elif defined(__NetBSD__) -+#define KP_SIZE(kp) (kp.p_vm_msize * getpagesize()) -+#define KP_RSS(kp) (kp.p_vm_rssize * getpagesize()) -+#elif defined(__OpenBSD__) -+#define KP_SIZE(kp) ((kp.p_vm_dsize + kp.p_vm_ssize \ -+ + kp.p_vm_tsize) * getpagesize()) -+#define KP_RSS(kp) (kp.p_vm_rssize * getpagesize()) -+#endif -+ -+static nsresult GetKinfoProcSelf(KINFO_PROC *proc) -+{ -+ int mib[] = { -+ CTL_KERN, -+ KERN_PROC, -+ KERN_PROC_PID, -+ getpid(), -+#if defined(__NetBSD__) || defined(__OpenBSD__) -+ sizeof(KINFO_PROC), -+ 1, -+#endif -+ }; -+ u_int miblen = sizeof(mib) / sizeof(mib[0]); -+ size_t size = sizeof(KINFO_PROC); -+ if (sysctl(mib, miblen, proc, &size, NULL, 0)) -+ return NS_ERROR_FAILURE; -+ -+ return NS_OK; -+} -+ -+#define HAVE_VSIZE_AND_RESIDENT_REPORTERS 1 -+static nsresult GetVsize(PRInt64 *n) -+{ -+ KINFO_PROC proc; -+ nsresult rv = GetKinfoProcSelf(&proc); -+ if (NS_SUCCEEDED(rv)) -+ *n = KP_SIZE(proc); -+ -+ return rv; -+} -+ -+static nsresult GetResident(PRInt64 *n) -+{ -+ KINFO_PROC proc; -+ nsresult rv = GetKinfoProcSelf(&proc); -+ if (NS_SUCCEEDED(rv)) -+ *n = KP_RSS(proc); -+ -+ return rv; -+} -+ - #elif defined(SOLARIS) - - #include <procfs.h> diff --git a/www/libxul/files/patch-bug799441 b/www/libxul/files/patch-bug799441 deleted file mode 100644 index 98bc613ba60d..000000000000 --- a/www/libxul/files/patch-bug799441 +++ /dev/null @@ -1,116 +0,0 @@ -commit b9accdd -Author: Mike Hommey <mh+mozilla@glandium.org> -Date: Thu Oct 18 14:47:10 2012 +0200 - - Bug 799441 - Build GIO module in libxul. r=ted ---- - configure.in | 6 ++++++ - extensions/gio/Makefile.in | 14 +++----------- - toolkit/library/Makefile.in | 5 +++++ - toolkit/library/nsStaticXULComponents.cpp | 7 +++++++ - toolkit/toolkit-tiers.mk | 4 ++++ - 5 files changed, 25 insertions(+), 11 deletions(-) - -diff --git configure.in configure.in -index a9fb5f1..37e6db8 100644 ---- configure.in -+++ configure.in -@@ -6086,6 +6086,12 @@ if test -n "$LIBXUL_SDK_DIR" -a `echo "$MOZ_EXTENSIONS" | grep -c gio` -ne 0; th - MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gio||'` - fi - -+if test `echo "$MOZ_EXTENSIONS" | grep -c gio` -ne 0; then -+ MOZ_GIO_COMPONENT=1 -+ MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gio||'` -+fi -+AC_SUBST(MOZ_GIO_COMPONENT) -+ - if test -z "$MOZ_JSDEBUGGER" -a `echo "$MOZ_EXTENSIONS" | grep -c venkman` -ne 0; then - AC_MSG_WARN([Cannot build venkman without JavaScript debug library. Removing venkman from MOZ_EXTENSIONS.]) - MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|venkman||'` -diff --git extensions/gio/Makefile.in extensions/gio/Makefile.in -index ccf2846..79112a8 100644 ---- extensions/gio/Makefile.in -+++ extensions/gio/Makefile.in -@@ -14,6 +14,9 @@ MODULE = nkgio - LIBRARY_NAME = nkgio - SHORT_LIBNAME = nkgio - IS_COMPONENT = 1 -+EXPORT_LIBRARY = 1 -+MODULE_NAME = nsGIOModule -+LIBXUL_LIBRARY = 1 - - CPPSRCS = \ - nsGIOProtocolHandler.cpp \ -@@ -21,15 +24,4 @@ CPPSRCS = \ - - LOCAL_INCLUDES = $(MOZ_GIO_CFLAGS) - --EXTRA_DSO_LDOPTS = \ -- $(XPCOM_GLUE_LDOPTS) \ -- $(MOZ_COMPONENT_LIBS) \ -- $(MOZ_GIO_LIBS) \ -- $(NULL) -- --# make sure this component is never statically linked into the main --# application. this is necessary since we don't want to force users --# to install gio in order to use the rest of mozilla ;-) --FORCE_SHARED_LIB= 1 -- - include $(topsrcdir)/config/rules.mk -diff --git toolkit/library/Makefile.in toolkit/library/Makefile.in -index 7f9046e..6499758 100644 ---- toolkit/library/Makefile.in -+++ toolkit/library/Makefile.in -@@ -333,6 +333,11 @@ COMPONENT_LIBS += gkdebug - endif - endif - -+ifdef MOZ_GIO_COMPONENT -+DEFINES += -DMOZ_GIO_COMPONENT -+COMPONENT_LIBS += nkgio -+endif -+ - ifdef MOZ_APP_COMPONENT_LIBS - COMPONENT_LIBS += $(MOZ_APP_COMPONENT_LIBS) - endif -diff --git toolkit/library/nsStaticXULComponents.cpp toolkit/library/nsStaticXULComponents.cpp -index e1d90f2..85b21a2 100644 ---- toolkit/library/nsStaticXULComponents.cpp -+++ toolkit/library/nsStaticXULComponents.cpp -@@ -164,6 +164,12 @@ - #define PROFILER_MODULE - #endif - -+#if defined(MOZ_GIO_COMPONENT) -+#define GIO_MODULE MODULE(nsGIOModule) -+#else -+#define GIO_MODULE -+#endif -+ - #define XUL_MODULES \ - MODULE(nsUConvModule) \ - MODULE(nsI18nModule) \ -@@ -220,6 +226,7 @@ - MODULE(nsTelemetryModule) \ - MODULE(jsinspector) \ - MODULE(jsdebugger) \ -+ GIO_MODULE \ - /* end of list */ - - #define MODULE(_name) \ -diff --git toolkit/toolkit-tiers.mk toolkit/toolkit-tiers.mk -index e87d7af..4b16d23 100644 ---- toolkit/toolkit-tiers.mk -+++ toolkit/toolkit-tiers.mk -@@ -252,6 +252,10 @@ tier_platform_dirs += js/ductwork/debugger - - tier_platform_dirs += other-licenses/snappy - -+ifdef MOZ_GIO_COMPONENT -+tier_platform_dirs += extensions/gio -+endif -+ - ifdef APP_LIBXUL_STATICDIRS - # Applications can cheat and ask for code to be - # built before libxul so libxul can be linked against it. diff --git a/www/libxul/files/patch-bug803480 b/www/libxul/files/patch-bug803480 new file mode 100644 index 000000000000..5f5b4fe7f392 --- /dev/null +++ b/www/libxul/files/patch-bug803480 @@ -0,0 +1,102 @@ +diff --git configure.in configure.in +index a0575dc..be327fd 100644 +--- configure.in ++++ configure.in +@@ -4306,7 +4306,6 @@ NS_PRINTING=1 + MOZ_PDF_PRINTING= + MOZ_DISABLE_CRYPTOLEGACY= + NSS_DISABLE_DBM= +-NECKO_WIFI=1 + NECKO_COOKIES=1 + NECKO_PROTOCOLS_DEFAULT="about data file ftp http res viewsource websocket wyciwyg device" + USE_ARM_KUSER= +@@ -4336,11 +4335,6 @@ case "${target}" in + fi + + NSS_DISABLE_DBM=1 +- if test -z "$gonkdir"; then +- NECKO_WIFI= +- else +- NECKO_WIFI=1 +- fi + MOZ_THEME_FASTSTRIPE=1 + MOZ_TREE_FREETYPE=1 + MOZ_MEMORY=1 +@@ -8485,28 +8479,39 @@ done + dnl + dnl option to disable necko's wifi scanner + dnl ++ ++case "$OS_TARGET" in ++ OS2) ++ dnl OS/2 implementation of Necko-WiFi support will be added in bug 506566 ++ ;; ++ Android) ++ if test -n "$gonkdir"; then ++ NECKO_WIFI=1 ++ fi ++ ;; ++ Darwin|SunOS|WINNT) ++ NECKO_WIFI=1 ++ ;; ++ Linux) ++ if test -z "$MOZ_ENABLE_DBUS"; then ++ AC_MSG_ERROR([Necko WiFi scanning needs DBus on your platform, remove --disable-dbus or use --disable-necko-wifi]) ++ fi ++ NECKO_WIFI=1 ++ NECKO_WIFI_DBUS=1 ++ ;; ++esac ++ + MOZ_ARG_DISABLE_BOOL(necko-wifi, + [ --disable-necko-wifi Disable necko wifi scanner], + NECKO_WIFI=, + NECKO_WIFI=1) + +-if test "$OS_ARCH" = "OS2"; then +- dnl OS/2 implementation of Necko-WiFi support will be added in bug 506566 +- NECKO_WIFI= +-fi +-if test "$NECKO_WIFI" -a \ +- "$OS_ARCH" != "Linux" -a \ +- "$OS_ARCH" != "Darwin" -a \ +- "$OS_ARCH" != "SunOS" -a \ +- "$OS_ARCH" != "WINNT"; then +- AC_MSG_ERROR([Necko WiFi scanning not supported on your platform, use --disable-necko-wifi]) +-fi +- + if test "$NECKO_WIFI"; then + AC_DEFINE(NECKO_WIFI) + _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES NECKO_WIFI" + fi + AC_SUBST(NECKO_WIFI) ++AC_SUBST(NECKO_WIFI_DBUS) + + dnl + dnl option to disable cookies +diff --git netwerk/wifi/Makefile.in netwerk/wifi/Makefile.in +index 26dbd79..4cbf912 100644 +--- netwerk/wifi/Makefile.in ++++ netwerk/wifi/Makefile.in +@@ -20,7 +20,7 @@ ifeq ($(OS_ARCH),SunOS) + OS_INCLUDES += $(GLIB_CFLAGS) + endif + +-ifdef MOZ_ENABLE_DBUS ++ifdef NECKO_WIFI_DBUS + OS_INCLUDES += $(MOZ_DBUS_GLIB_CFLAGS) + endif + +diff --git netwerk/wifi/moz.build netwerk/wifi/moz.build +index 5e70211..07b01de 100644 +--- netwerk/wifi/moz.build ++++ netwerk/wifi/moz.build +@@ -43,7 +43,7 @@ elif CONFIG['OS_ARCH'] == 'SunOS': + 'nsWifiScannerSolaris.cpp', + ] + +-if CONFIG['MOZ_ENABLE_DBUS']: ++if CONFIG['NECKO_WIFI_DBUS']: + CPP_SOURCES += [ + 'nsWifiScannerDBus.cpp', + ] diff --git a/www/libxul/files/patch-bug806139 b/www/libxul/files/patch-bug806139 deleted file mode 100644 index 56791e71fb61..000000000000 --- a/www/libxul/files/patch-bug806139 +++ /dev/null @@ -1,29 +0,0 @@ ---- content/html/content/public/nsHTMLMediaElement.h~ -+++ content/html/content/public/nsHTMLMediaElement.h -@@ -311,7 +311,7 @@ public: - static bool IsH264Enabled(); - static bool IsH264Type(const nsACString& aType); - static const char gH264Types[3][16]; -- static char const *const gH264Codecs[7]; -+ static char const *const gH264Codecs[9]; - #endif - - #ifdef MOZ_MEDIA_PLUGINS ---- content/html/content/src/nsHTMLMediaElement.cpp~ -+++ content/html/content/src/nsHTMLMediaElement.cpp -@@ -2114,12 +2114,14 @@ const char nsHTMLMediaElement::gH264Type - "video/quicktime", - }; - --char const *const nsHTMLMediaElement::gH264Codecs[7] = { -+char const *const nsHTMLMediaElement::gH264Codecs[9] = { - "avc1.42E01E", - "avc1.42001E", - "avc1.58A01E", - "avc1.4D401E", - "avc1.64001E", -+ "avc1.64001F", -+ "mp4v.20.3", - "mp4a.40.2", - nullptr - }; diff --git a/www/libxul/files/patch-bug807492 b/www/libxul/files/patch-bug807492 new file mode 100644 index 000000000000..3b39766e0492 --- /dev/null +++ b/www/libxul/files/patch-bug807492 @@ -0,0 +1,628 @@ +JJdiff --git configure.in configure.in +index c167461..8346c11 100644 +--- configure.in ++++ configure.in +@@ -5246,17 +5246,17 @@ if test "$NS_PRINTING"; then + AC_DEFINE(NS_PRINT_PREVIEW) + fi + + dnl Turn off webrtc for OS's we don't handle yet, but allow + dnl --enable-webrtc to override. Can disable for everything in + dnl the master list above. + if test -n "$MOZ_WEBRTC"; then + case "$target" in +- *-linux*|*-mingw*|*-darwin*|*-android*|*-linuxandroid*) ++ *-linux*|*-mingw*|*-darwin*|*-android*|*-linuxandroid*|*-dragonfly*|*-freebsd*|*-netbsd*|*-openbsd*) + dnl Leave enabled + ;; + *) + dnl default to disabled for all others + MOZ_WEBRTC= + ;; + esac + fi +diff --git media/mtransport/objs.mk media/mtransport/objs.mk +index f1fc85f..141e8ca 100644 +--- media/mtransport/objs.mk ++++ media/mtransport/objs.mk +@@ -18,22 +18,26 @@ LOCAL_INCLUDES += \ + -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/util/libekr \ + -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/log \ + -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/registry \ + -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/stats \ + -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/plugin \ + -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/event \ + $(NULL) + +-ifeq ($(OS_TARGET), Darwin) ++ifneq (,$(filter Darwin DragonFly FreeBSD NetBSD OpenBSD,$(OS_TARGET))) + LOCAL_INCLUDES += \ + -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/darwin/include \ + -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/generic/include \ + $(NULL) ++ifeq ($(OS_TARGET), Darwin) + DEFINES += -DDARWIN ++else ++DEFINES += -DBSD ++endif + endif + + ifeq ($(OS_TARGET), Linux) + LOCAL_INCLUDES += \ + -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/linux/include \ + -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/generic/include \ + $(NULL) + DEFINES += -DLINUX +diff --git media/mtransport/test/Makefile.in media/mtransport/test/Makefile.in +index c1d5bf4..2ecf2c7 100644 +--- media/mtransport/test/Makefile.in ++++ media/mtransport/test/Makefile.in +@@ -73,22 +73,24 @@ DEFINES += -D__Userspace_os_FreeBSD=1 + else + #default_fallback; probably doesn't work + DEFINES += -D__Userspace_os_$(OS_TARGET)=1 + endif + endif + endif + endif + +-ifeq ($(OS_TARGET), Darwin) ++ifneq (,$(filter Darwin DragonFly FreeBSD NetBSD OpenBSD,$(OS_TARGET))) + LOCAL_INCLUDES += -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/darwin/include ++ifeq ($(OS_TARGET), Darwin) + DEFINES += \ + -DGTEST_USE_OWN_TR1_TUPLE=1 \ + $(NULL) + endif ++endif + + ifeq ($(OS_TARGET), Linux) + LOCAL_INCLUDES += -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/linux/include + endif + + ifeq ($(OS_TARGET), Android) + LOCAL_INCLUDES += -I$(topsrcdir)/media/mtransport/third_party/nrappkit/src/port/android/include + +diff --git media/mtransport/third_party/nICEr/nicer.gyp media/mtransport/third_party/nICEr/nicer.gyp +index 0e1f8b4..9a4b995 100644 +--- media/mtransport/third_party/nICEr/nicer.gyp ++++ media/mtransport/third_party/nICEr/nicer.gyp +@@ -126,26 +126,36 @@ + 'R_DEFINED_UINT2=uint16_t', + 'R_DEFINED_INT4=int32_t', + 'R_DEFINED_UINT4=uint32_t', + 'R_DEFINED_INT8=int64_t', + 'R_DEFINED_UINT8=uint64_t', + ], + + 'conditions' : [ +- ## Mac ++ ## Mac and BSDs + [ 'OS == "mac"', { ++ 'defines' : [ ++ 'DARWIN', ++ 'HAVE_XLOCALE', ++ ], ++ }], ++ [ 'os_bsd == 1', { ++ 'defines' : [ ++ 'BSD', ++ ], ++ }], ++ [ 'OS == "mac" or os_bsd == 1', { + 'cflags_mozilla': [ + '-Wall', + '-Wno-parentheses', + '-Wno-strict-prototypes', + '-Wmissing-prototypes', + ], + 'defines' : [ +- 'DARWIN', + 'HAVE_LIBM=1', + 'HAVE_STRDUP=1', + 'HAVE_STRLCPY=1', + 'HAVE_SYS_TIME_H=1', + 'HAVE_VFPRINTF=1', + 'NEW_STDIO' + 'RETSIGTYPE=void', + 'TIME_WITH_SYS_TIME_H=1', +diff --git media/mtransport/third_party/nICEr/src/stun/addrs.c media/mtransport/third_party/nICEr/src/stun/addrs.c +index b0b66b2..04fea94 100644 +--- media/mtransport/third_party/nICEr/src/stun/addrs.c ++++ media/mtransport/third_party/nICEr/src/stun/addrs.c +@@ -50,17 +50,19 @@ static char *RCSSTRING __UNUSED__="$Id: addrs.c,v 1.2 2008/04/28 18:21:30 ekr Ex + #else + #include <syslog.h> + /* Work around an Android NDK < r8c bug */ + #undef __unused + #include <linux/sysctl.h> + #endif + #include <net/if.h> + #ifndef LINUX ++#if !defined(__OpenBSD__) && !defined(__NetBSD__) + #include <net/if_var.h> ++#endif + #include <net/if_dl.h> + #include <net/if_types.h> + #include <sys/sockio.h> + #else + #include <linux/if.h> + #endif + #include <net/route.h> + +@@ -75,17 +77,17 @@ static char *RCSSTRING __UNUSED__="$Id: addrs.c,v 1.2 2008/04/28 18:21:30 ekr Ex + #include <netdb.h> + #endif /* UNIX */ + + #include "stun.h" + #include "addrs.h" + + + +-#ifdef DARWIN ++#if defined(BSD) || defined(DARWIN) + /* + * Copyright (c) 1983, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright +@@ -685,17 +687,17 @@ nr_stun_remove_duplicate_addrs(nr_transport_addr addrs[], int remove_loopback, i + } + + int + nr_stun_get_addrs(nr_transport_addr addrs[], int maxaddrs, int drop_loopback, int *count) + { + int _status=0; + int i; + +-#ifdef DARWIN ++#if defined(BSD) || defined(DARWIN) + _status = stun_get_mib_addrs(addrs, maxaddrs, count); + #elif defined(WIN32) + _status = stun_get_win32_addrs(addrs, maxaddrs, count); + #elif defined(__sparc__) + _status = stun_get_sparc_addrs(addrs, maxaddrs, count); + #else + _status = stun_get_siocgifconf_addrs(addrs, maxaddrs, count); + #endif +diff --git media/mtransport/third_party/nICEr/src/stun/stun.h media/mtransport/third_party/nICEr/src/stun/stun.h +index a3c51f9..eb65ac8 100644 +--- media/mtransport/third_party/nICEr/src/stun/stun.h ++++ media/mtransport/third_party/nICEr/src/stun/stun.h +@@ -36,21 +36,25 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + #ifdef WIN32 + #include <winsock2.h> + #else + #include <sys/param.h> + #include <sys/socket.h> + #include <net/if.h> + #ifndef LINUX ++#if !defined(__OpenBSD__) && !defined(__NetBSD__) + #include <net/if_var.h> ++#endif + #include <net/if_dl.h> + #include <net/if_types.h> + #endif ++#ifndef BSD + #include <net/route.h> ++#endif + #include <netinet/in.h> + #ifndef LINUX + #include <netinet/in_var.h> + #endif + #include <arpa/inet.h> + #include <netdb.h> + #endif + #include <time.h> +diff --git media/mtransport/third_party/nICEr/src/util/mbslen.c media/mtransport/third_party/nICEr/src/util/mbslen.c +index cc260b7..66af2d7 100644 +--- media/mtransport/third_party/nICEr/src/util/mbslen.c ++++ media/mtransport/third_party/nICEr/src/util/mbslen.c +@@ -38,50 +38,58 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + #include <errno.h> + #include <csi_platform.h> + + #include <assert.h> + #include <locale.h> + #include <stdlib.h> + #include <wchar.h> +-#ifdef DARWIN ++ ++#ifdef __FreeBSD__ ++#include <osreldate.h> ++# if __FreeBSD_version > 900505 ++# define HAVE_XLOCALE ++# endif ++#endif ++ ++#ifdef HAVE_XLOCALE + #include <xlocale.h> +-#endif /* DARWIN */ ++#endif /* HAVE_XLOCALE */ + + #include "nr_api.h" + #include "mbslen.h" + + /* get number of characters in a mult-byte character string */ + int + mbslen(const char *s, size_t *ncharsp) + { +-#ifdef DARWIN ++#ifdef HAVE_XLOCALE + static locale_t loc = 0; + static int initialized = 0; +-#endif /* DARWIN */ ++#endif /* HAVE_XLOCALE */ + #ifdef WIN32 + char *my_locale=0; + unsigned int i; + #endif /* WIN32 */ + int _status; + size_t nbytes; + int nchars; + mbstate_t mbs; + +-#ifdef DARWIN ++#ifdef HAVE_XLOCALE + if (! initialized) { + initialized = 1; + loc = newlocale(LC_CTYPE_MASK, "UTF-8", LC_GLOBAL_LOCALE); + } + + if (loc == 0) { + /* unable to create the UTF-8 locale */ + assert(loc != 0); /* should never happen */ +-#endif /* DARWIN */ ++#endif /* HAVE_XLOCALE */ + + #ifdef WIN32 + if (!setlocale(LC_CTYPE, 0)) + ABORT(R_INTERNAL); + + if (!(my_locale = r_strdup(setlocale(LC_CTYPE, 0)))) + ABORT(R_NO_MEMORY); + +@@ -94,28 +102,28 @@ mbslen(const char *s, size_t *ncharsp) + /* can't count UTF-8 characters with mbrlen if the locale isn't UTF-8 */ + /* null-checking setlocale is required because Android */ + char *locale = setlocale(LC_CTYPE, 0); + /* some systems use "utf8" instead of "UTF-8" like Fedora 17 */ + if (!locale || (!strcasestr(locale, "UTF-8") && !strcasestr(locale, "UTF8"))) + ABORT(R_NOT_FOUND); + #endif + +-#ifdef DARWIN ++#ifdef HAVE_XLOCALE + } +-#endif /* DARWIN */ ++#endif /* HAVE_XLOCALE */ + + memset(&mbs, 0, sizeof(mbs)); + nchars = 0; + +-#ifdef DARWIN ++#ifdef HAVE_XLOCALE + while (*s != '\0' && (nbytes = mbrlen_l(s, strlen(s), &mbs, loc)) != 0) + #else + while (*s != '\0' && (nbytes = mbrlen(s, strlen(s), &mbs)) != 0) +-#endif /* DARWIN */ ++#endif /* HAVE_XLOCALE */ + { + if (nbytes == (size_t)-1) /* should never happen */ { + ABORT(R_INTERNAL); + } + if (nbytes == (size_t)-2) /* encoding error */ { + ABORT(R_BAD_DATA); + } + +diff --git media/mtransport/third_party/nrappkit/nrappkit.gyp media/mtransport/third_party/nrappkit/nrappkit.gyp +index 3cc8e1c..74016c6 100644 +--- media/mtransport/third_party/nrappkit/nrappkit.gyp ++++ media/mtransport/third_party/nrappkit/nrappkit.gyp +@@ -142,26 +142,35 @@ + 'R_DEFINED_UINT2=uint16_t', + 'R_DEFINED_INT4=int32_t', + 'R_DEFINED_UINT4=uint32_t', + 'R_DEFINED_INT8=int64_t', + 'R_DEFINED_UINT8=uint64_t', + ], + + 'conditions' : [ +- ## Mac ++ ## Mac and BSDs + [ 'OS == "mac"', { ++ 'defines' : [ ++ 'DARWIN', ++ ], ++ }], ++ [ 'os_bsd == 1', { ++ 'defines' : [ ++ 'BSD', ++ ], ++ }], ++ [ 'OS == "mac" or os_bsd == 1', { + 'cflags_mozilla': [ + '-Wall', + '-Wno-parentheses', + '-Wno-strict-prototypes', + '-Wmissing-prototypes', + ], + 'defines' : [ +- 'DARWIN', + 'HAVE_LIBM=1', + 'HAVE_STRDUP=1', + 'HAVE_STRLCPY=1', + 'HAVE_SYS_TIME_H=1', + 'HAVE_VFPRINTF=1', + 'NEW_STDIO' + 'RETSIGTYPE=void', + 'TIME_WITH_SYS_TIME_H=1', +diff --git media/mtransport/third_party/nrappkit/src/log/r_log.c media/mtransport/third_party/nrappkit/src/log/r_log.c +index efb7ef2..aebf578 100644 +--- media/mtransport/third_party/nrappkit/src/log/r_log.c ++++ media/mtransport/third_party/nrappkit/src/log/r_log.c +@@ -43,16 +43,17 @@ static char *RCSSTRING __UNUSED__ ="$Id: r_log.c,v 1.10 2008/11/25 22:25:18 adam + #ifdef LINUX + #define _BSD_SOURCE + #endif + + #include "r_log.h" + #include "hex.h" + + #include <string.h> ++#include <errno.h> + #ifndef _MSC_VER + #include <strings.h> + #include <syslog.h> + #endif + #include <registry.h> + #include <time.h> + + +diff --git media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h +index bcb1ec0..bb73591 100644 +--- media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h ++++ media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h +@@ -33,7 +33,7 @@ + #ifndef _SYS_QUEUE_H_ + #define _SYS_QUEUE_H_ + +-#ifndef DARWIN ++#if !defined(__FreeBSD__) && !defined(DARWIN) + #include <stddef.h> + #define __offsetof offsetof + #endif +diff --git media/mtransport/third_party/nrappkit/src/util/util.c media/mtransport/third_party/nrappkit/src/util/util.c +index a7d4ff1..ff11a60 100644 +--- media/mtransport/third_party/nrappkit/src/util/util.c ++++ media/mtransport/third_party/nrappkit/src/util/util.c +@@ -40,16 +40,17 @@ + static char *RCSSTRING __UNUSED__ ="$Id: util.c,v 1.5 2007/11/21 00:09:13 adamcain Exp $"; + + #ifndef WIN32 + #include <sys/uio.h> + #include <pwd.h> + #include <dirent.h> + #endif + #include <string.h> ++#include <errno.h> + #include <ctype.h> + #include <sys/stat.h> + #ifdef OPENSSL + #include <openssl/evp.h> + #endif + #include "nr_common.h" + #include "r_common.h" + #include "registry.h" +diff --git media/webrtc/signaling/signaling.gyp media/webrtc/signaling/signaling.gyp +index 2a91e3d..31de641 100644 +--- media/webrtc/signaling/signaling.gyp ++++ media/webrtc/signaling/signaling.gyp +@@ -212,16 +212,29 @@ + 'SIPCC_BUILD', + 'HAVE_WINSOCK2_H', + 'CPR_STDINT_INCLUDE=\\"mozilla/StandardInteger.h\\"' + ], + + 'cflags_mozilla': [ + ], + }], ++ ['os_bsd==1', { ++ 'include_dirs': [ ++ ], ++ 'defines': [ ++ # avoiding pointless ifdef churn ++ 'SIP_OS_OSX', ++ 'OSX', ++ 'SECLIB_OPENSSL', ++ ], ++ ++ 'cflags_mozilla': [ ++ ], ++ }], + ['OS=="mac"', { + 'include_dirs': [ + ], + 'defines': [ + 'SIP_OS_OSX', + 'OSX', + '_FORTIFY_SOURCE=2', + ], +@@ -747,17 +760,17 @@ + 'EXTERNAL_TICK_REQUIRED', + 'GIPS_VER=3480', + ], + + 'cflags_mozilla': [ + ], + + }], +- ['OS=="mac"', { ++ ['OS=="mac" or os_bsd==1', { + + 'include_dirs': [ + ], + + 'sources': [ + # SIPSTACK + './src/sipcc/core/sipstack/sip_platform_task.c', + +@@ -792,24 +805,23 @@ + './src/sipcc/cpr/darwin/cpr_darwin_timers_using_select.c', + './src/sipcc/cpr/darwin/cpr_darwin_tst.h', + './src/sipcc/cpr/darwin/cpr_darwin_types.h', + ], + + + 'defines' : [ + 'SIP_OS_OSX', +- '_POSIX_SOURCE', ++ # using BSD extensions, leave _POSIX_SOURCE undefined + 'CPR_MEMORY_LITTLE_ENDIAN', + 'NO_SOCKET_POLLING', + 'USE_TIMER_SELECT_BASED', + 'FULL_BUILD', + 'STUBBED_OUT', + 'USE_PRINTF', +- '_DARWIN_C_SOURCE', + 'NO_NSPR_10_SUPPORT', + ], + + 'cflags_mozilla': [ + ], + }], + ], + +diff --git media/webrtc/signaling/src/sipcc/cpr/darwin/cpr_darwin_ipc.c media/webrtc/signaling/src/sipcc/cpr/darwin/cpr_darwin_ipc.c +index a7c47e1..4f191de 100644 +--- media/webrtc/signaling/src/sipcc/cpr/darwin/cpr_darwin_ipc.c ++++ media/webrtc/signaling/src/sipcc/cpr/darwin/cpr_darwin_ipc.c +@@ -317,21 +317,25 @@ cprGetMessage (cprMsgQueue_t msgQueue, boolean waitForever, void **ppUserData) + { + static const char fname[] = "cprGetMessage"; + + void *buffer = 0; + cpr_msg_queue_t *msgq; + cpr_msgq_node_t *node; + struct timespec timeout; + struct timeval tv; ++#ifndef __APPLE__ ++ struct timezone tz; ++#else + // On the iPhone, there is a DarwinAlias problem with "timezone" + struct _timezone { + int tz_minuteswest; /* of Greenwich */ + int tz_dsttime; /* type of dst correction to apply */ + } tz; ++#endif + + /* Initialize ppUserData */ + if (ppUserData) { + *ppUserData = NULL; + } + + msgq = (cpr_msg_queue_t *) msgQueue; + if (msgq == NULL) { +diff --git media/webrtc/signaling/test/Makefile.in media/webrtc/signaling/test/Makefile.in +index a30e330..cfbd8a3 100644 +--- media/webrtc/signaling/test/Makefile.in ++++ media/webrtc/signaling/test/Makefile.in +@@ -81,17 +81,17 @@ endif + ifeq (qt,$(MOZ_WIDGET_TOOLKIT)) + LIBS += \ + $(XLIBS) \ + $(TK_LIBS) \ + $(MOZ_PANGO_LIBS) \ + $(NULL) + endif + +-ifeq ($(OS_TARGET),Linux) ++ifneq (,$(filter Linux DragonFly FreeBSD NetBSD OpenBSD,$(OS_TARGET))) + LIBS += \ + $(MOZ_CAIRO_OSLIBS) \ + $(NULL) + endif + + ifeq ($(OS_TARGET),Darwin) + LIBS += \ + -framework AudioToolbox \ +diff --git media/webrtc/trunk/tools/gyp/pylib/gyp/generator/mozmake.py media/webrtc/trunk/tools/gyp/pylib/gyp/generator/mozmake.py +index 338d0b7..2241d41 100644 +--- media/webrtc/trunk/tools/gyp/pylib/gyp/generator/mozmake.py ++++ media/webrtc/trunk/tools/gyp/pylib/gyp/generator/mozmake.py +@@ -1,16 +1,17 @@ + # Copyright (c) 2012 Mozilla Foundation. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. + + import collections + import gyp + import gyp.common + import sys ++import platform + import os + import re + import shlex + + generator_wants_sorted_dependencies = True + + generator_default_variables = { + } +@@ -107,30 +108,44 @@ endif + + def ensure_directory_exists(path): + dir = os.path.dirname(path) + if dir and not os.path.exists(dir): + os.makedirs(dir) + + def GetFlavor(params): + """Returns |params.flavor| if it's set, the system's default flavor else.""" ++ system = platform.system().lower() + flavors = { +- 'win32': 'win', +- 'darwin': 'mac', +- 'sunos5': 'solaris', +- 'freebsd7': 'freebsd', +- 'freebsd8': 'freebsd', ++ 'microsoft': 'win', ++ 'windows' : 'win', ++ 'darwin' : 'mac', ++ 'sunos' : 'solaris', ++ 'dragonfly': 'bsd', ++ 'freebsd' : 'bsd', ++ 'netbsd' : 'bsd', ++ 'openbsd' : 'bsd', + } +- flavor = flavors.get(sys.platform, 'linux') +- return params.get('flavor', flavor) ++ ++ if 'flavor' in params: ++ return params['flavor'] ++ if system.startswith('cygwin'): ++ return 'win' ++ if system in flavors: ++ return flavors[system] ++ ++ return 'linux' + + + def CalculateVariables(default_variables, params): ++ flavor = GetFlavor(params) ++ if flavor == 'bsd': ++ flavor = platform.system().lower() + generator_flags = params.get('generator_flags', {}) +- default_variables['OS'] = generator_flags.get('os', GetFlavor(params)) ++ default_variables['OS'] = generator_flags.get('os', flavor) + + + def CalculateGeneratorInputInfo(params): + """Calculate the generator specific info that gets fed to input (called by + gyp).""" + generator_flags = params.get('generator_flags', {}) + if generator_flags.get('adjust_static_libraries', False): + global generator_wants_static_library_dependencies_adjusted diff --git a/www/libxul/files/patch-bug826985 b/www/libxul/files/patch-bug826985 new file mode 100644 index 000000000000..fe55ff667281 --- /dev/null +++ b/www/libxul/files/patch-bug826985 @@ -0,0 +1,164 @@ +commit 8024d93 +Author: Henrik Gulbrandsen <henrik@gulbra.net> +Date: Fri Jan 4 13:49:22 2013 +0100 + + Bug 826985 - Support more video formats for WebRTC via libv4l2 on Linux. +--- + configure.in | 7 +++++++ + media/webrtc/signaling/test/Makefile.in | 1 + + .../modules/video_capture/linux/device_info_linux.cc | 17 +++++++++++++++++ + .../modules/video_capture/linux/video_capture_linux.cc | 16 +++++++++++++++- + .../webrtc/modules/video_capture/video_capture.gypi | 11 +++++++++++ + toolkit/library/Makefile.in | 1 + + 6 files changed, 52 insertions(+), 1 deletion(-) + +diff --git configure.in configure.in +index 55e4cd1..76567b3 100644 +--- configure.in ++++ configure.in +@@ -5309,6 +5309,9 @@ if test -n "$MOZ_WEBRTC"; then + MOZ_VP8_ENCODER=1 + MOZ_VP8_ERROR_CONCEALMENT=1 + ++ dnl with libv4l2 we can support more cameras ++ PKG_CHECK_MODULES(MOZ_LIBV4L2, libv4l2) ++ + dnl enable once Signaling lands + MOZ_WEBRTC_SIGNALING=1 + AC_DEFINE(MOZ_WEBRTC_SIGNALING) +@@ -8981,6 +8984,10 @@ elif test "${OS_TARGET}" = "Android"; then + fi + fi + ++if test -n "$MOZ_LIBV4L2_LIBS"; then ++ EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D use_libv4l2=1" ++fi ++ + if test -n "$MOZ_WEBRTC"; then + AC_MSG_RESULT("generating WebRTC Makefiles...") + +diff --git media/webrtc/signaling/test/Makefile.in media/webrtc/signaling/test/Makefile.in +index b483cd1..f1dd1f0 100644 +--- media/webrtc/signaling/test/Makefile.in ++++ media/webrtc/signaling/test/Makefile.in +@@ -17,6 +17,7 @@ LIBS = \ + $(NSPR_LIBS) \ + $(NSS_LIBS) \ + $(REALTIME_LIBS) \ ++ $(MOZ_LIBV4L2_LIBS) \ + $(DEPTH)/xpcom/glue/$(LIB_PREFIX)xpcomglue_s.$(LIB_SUFFIX) \ + $(DEPTH)/media/mtransport/standalone/$(LIB_PREFIX)mtransport_s.$(LIB_SUFFIX) \ + $(DEPTH)/media/webrtc/signalingtest/signaling_ecc/$(LIB_PREFIX)ecc.$(LIB_SUFFIX) \ +diff --git media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc +index 239a292..bab496c 100644 +--- media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc ++++ media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc +@@ -26,11 +26,23 @@ + #else + #include <linux/videodev2.h> + #endif ++#ifdef HAVE_LIBV4L2 ++#include <libv4l2.h> ++#endif + + #include "ref_count.h" + #include "trace.h" + + ++#ifdef HAVE_LIBV4L2 ++#define open v4l2_open ++#define close v4l2_close ++#define dup v4l2_dup ++#define ioctl v4l2_ioctl ++#define mmap v4l2_mmap ++#define munmap v4l2_munmap ++#endif ++ + namespace webrtc + { + namespace videocapturemodule +@@ -130,6 +142,11 @@ WebRtc_Word32 DeviceInfoLinux::GetDeviceName( + memset(deviceNameUTF8, 0, deviceNameLength); + memcpy(cameraName, cap.card, sizeof(cap.card)); + ++ if (cameraName[0] == '\0') ++ { ++ sprintf(cameraName, "Camera at /dev/video%d", deviceNumber); ++ } ++ + if (deviceNameLength >= strlen(cameraName)) + { + memcpy(deviceNameUTF8, cameraName, strlen(cameraName)); +diff --git media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc +index 12df1b3..e9863ba 100644 +--- media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc ++++ media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc +@@ -25,6 +25,9 @@ + #else + #include <linux/videodev2.h> + #endif ++#ifdef HAVE_LIBV4L2 ++#include <libv4l2.h> ++#endif + + #include <new> + +@@ -26,6 +31,15 @@ + #include "critical_section_wrapper.h" + #include "video_capture_linux.h" + ++#ifdef HAVE_LIBV4L2 ++#define open v4l2_open ++#define close v4l2_close ++#define dup v4l2_dup ++#define ioctl v4l2_ioctl ++#define mmap v4l2_mmap ++#define munmap v4l2_munmap ++#endif ++ + namespace webrtc + { + namespace videocapturemodule +diff --git media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi +index d46b5aa..e452223 100644 +--- media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi ++++ media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi +@@ -7,6 +7,9 @@ + # be found in the AUTHORS file in the root of the source tree. + + { ++ 'variables': { ++ 'use_libv4l2%': 0, ++ }, + 'targets': [ + { + 'target_name': 'video_capture_module', +@@ -49,6 +52,16 @@ + }, { # include_internal_video_capture == 1 + 'conditions': [ + ['include_v4l2_video_capture==1', { ++ 'conditions': [ ++ ['use_libv4l2==1', { ++ 'defines': [ ++ 'HAVE_LIBV4L2', ++ ], ++ 'libraries': [ ++ '-lv4l2', ++ ], ++ }], ++ ], + 'include_dirs': [ + 'linux', + ], +diff --git toolkit/library/Makefile.in toolkit/library/Makefile.in +index 9c16ffa..1db3794 100644 +--- toolkit/library/Makefile.in ++++ toolkit/library/Makefile.in +@@ -405,6 +405,7 @@ endif + EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,gkmedias,$(DIST)/lib) + + ifdef MOZ_WEBRTC ++EXTRA_DSO_LDOPTS += $(MOZ_LIBV4L2_LIBS) + ifdef MOZ_PEERCONNECTION + COMPONENT_LIBS += peerconnection + endif diff --git a/www/libxul/files/patch-bug828003 b/www/libxul/files/patch-bug828003 deleted file mode 100644 index 16a7b9d46b78..000000000000 --- a/www/libxul/files/patch-bug828003 +++ /dev/null @@ -1,36 +0,0 @@ ---- gfx/qcms/qcmstypes.h -+++ gfx/qcms/qcmstypes.h -@@ -7,30 +7,12 @@ - #include "mozilla/StandardInteger.h" - - /* prtypes.h defines IS_LITTLE_ENDIAN and IS_BIG ENDIAN */ -+/* StandardInteger.h defines int*_t and uintptr_t */ - --#if defined (__SVR4) && defined (__sun) --/* int_types.h gets included somehow, so avoid redefining the types differently */ --#include <sys/int_types.h> --#elif defined (_AIX) -+#if defined(_AIX) - #include <sys/types.h> --#elif defined(__OpenBSD__) --#include <inttypes.h> --#elif !defined(ANDROID) --typedef int8_t int8_t; --typedef uint8_t uint8_t; --typedef int16_t int16_t; --typedef uint16_t uint16_t; --typedef int32_t int32_t; --typedef uint32_t uint32_t; --typedef int64_t int64_t; --typedef uint64_t uint64_t; -- --#ifdef __OS2__ --/* OS/2's stdlib typdefs uintptr_t. So we'll just include that so we don't collide */ -+#elif defined(__OS2__) - #include <stdlib.h> --#elif !defined(__intptr_t_defined) && !defined(_UINTPTR_T_DEFINED) --typedef PRUptrdiff uintptr_t; --#endif - #endif - - #else // MOZ_QCMS diff --git a/www/libxul/files/patch-bug851992 b/www/libxul/files/patch-bug851992 new file mode 100644 index 000000000000..3185452e2b44 --- /dev/null +++ b/www/libxul/files/patch-bug851992 @@ -0,0 +1,373 @@ +diff --git a/config/Makefile.in b/config/Makefile.in +--- config/Makefile.in ++++ config/Makefile.in +@@ -97,16 +97,17 @@ export:: $(export-preqs) + -DMOZ_TREE_PIXMAN=$(MOZ_TREE_PIXMAN) \ + -DMOZ_NATIVE_HUNSPELL=$(MOZ_NATIVE_HUNSPELL) \ + -DMOZ_NATIVE_BZ2=$(MOZ_NATIVE_BZ2) \ + -DMOZ_NATIVE_ZLIB=$(MOZ_NATIVE_ZLIB) \ + -DMOZ_NATIVE_PNG=$(MOZ_NATIVE_PNG) \ + -DMOZ_NATIVE_JPEG=$(MOZ_NATIVE_JPEG) \ + -DMOZ_NATIVE_LIBEVENT=$(MOZ_NATIVE_LIBEVENT) \ + -DMOZ_NATIVE_LIBVPX=$(MOZ_NATIVE_LIBVPX) \ ++ -DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \ + $(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers + $(INSTALL) system_wrappers $(DIST) + + GARBAGE_DIRS += system_wrappers + endif + + ifdef WRAP_STL_INCLUDES + ifdef GNU_CXX +diff --git a/config/system-headers b/config/system-headers +--- config/system-headers ++++ config/system-headers +@@ -1125,8 +1125,19 @@ gst/video/video.h + sys/msg.h + sys/ipc.h + sys/thr.h + sys/user.h + kvm.h + spawn.h + err.h + xlocale.h ++#if MOZ_NATIVE_ICU==1 ++unicode/locid.h ++unicode/numsys.h ++unicode/ucal.h ++unicode/ucol.h ++unicode/udat.h ++unicode/udatpg.h ++unicode/uenum.h ++unicode/unum.h ++unicode/ustring.h ++#endif +diff --git a/configure.in b/configure.in +--- configure.in ++++ configure.in +@@ -4134,16 +4134,32 @@ if test -n "$MOZ_NATIVE_FFI"; then + PKG_CHECK_MODULES(MOZ_FFI, libffi > 3.0.9) + else + PKG_CHECK_MODULES(MOZ_FFI, libffi >= 3.0.9) + fi + MOZ_JS_STATIC_LIBS="$MOZ_JS_STATIC_LIBS $MOZ_FFI_LIBS" + fi + + dnl ======================================================== ++dnl system icu support ++dnl ======================================================== ++MOZ_NATIVE_ICU= ++MOZ_ARG_WITH_BOOL(system-icu, ++[ --with-system-icu ++ Use system icu (located with pkgconfig)], ++ MOZ_NATIVE_ICU=1) ++ ++if test -n "$MOZ_NATIVE_ICU"; then ++ PKG_CHECK_MODULES(MOZ_ICU, icu-i18n >= 50.1) ++ MOZ_JS_STATIC_LIBS="$MOZ_JS_STATIC_LIBS $MOZ_ICU_LIBS" ++fi ++ ++AC_SUBST(MOZ_NATIVE_ICU) ++ ++dnl ======================================================== + dnl Java SDK support + dnl ======================================================== + + JAVA_BIN_PATH= + MOZ_ARG_WITH_STRING(java-bin-path, + [ --with-java-bin-path=dir + Location of Java binaries (java, javac, jar)], + JAVA_BIN_PATH=$withval) +diff --git a/js/src/Makefile.in b/js/src/Makefile.in +--- js/src/Makefile.in ++++ js/src/Makefile.in +@@ -232,48 +232,54 @@ endif + + ############################################# + # BEGIN ECMAScript Internationalization API + # + + # ICU headers need to be available whether we build with the complete + # Internationalization API or not - ICU stubs rely on them. + ++ifdef MOZ_NATIVE_ICU ++LOCAL_INCLUDES += $(MOZ_ICU_CFLAGS) ++else + LOCAL_INCLUDES += \ + -I$(topsrcdir)/../../intl/icu/source/common \ + -I$(topsrcdir)/../../intl/icu/source/i18n \ + $(NULL) ++endif + + ifdef ENABLE_INTL_API + + ifeq ($(OS_ARCH),WINNT) + # Parallel gmake is buggy on Windows + ICU_GMAKE_OPTIONS="-j1" + # Library names: On Windows, ICU uses modified library names for static + # and debug libraries. + ifdef MOZ_DEBUG + ICU_LIB_SUFFIX=d + endif + ICU_LIB_RENAME = $(foreach libname,$(ICU_LIB_NAMES),\ + cp -p intl/icu/lib/s$(libname)$(ICU_LIB_SUFFIX).lib intl/icu/lib/$(libname).lib;) + endif + ++ifndef MOZ_NATIVE_ICU + # - Build ICU as part of the "export" target, so things get built + # in the right order. + # - ICU requires GNU make according to its readme.html. pymake can't be used + # because it doesn't support order only dependencies. + # - Force ICU to use the standard suffix for object files because expandlibs + # will discard all files with a non-standard suffix (bug 857450). + # - Options for genrb: -k strict parsing; -R omit collation tailoring rules. + export:: + $(GMAKE) $(ICU_GMAKE_OPTIONS) -C intl/icu STATIC_O=$(OBJ_SUFFIX) GENRBOPTS='-k -R' + $(ICU_LIB_RENAME) + + distclean clean:: + $(call SUBMAKE,$@,intl/icu) ++endif + + endif + + # + # END ECMAScript Internationalization API + ############################################# + + +@@ -398,17 +404,21 @@ CFLAGS += $(MOZ_ZLIB_CFLAGS) + EXTRA_LIBS += $(MOZ_ZLIB_LIBS) + # Enable zlib usage if zlib has been located. When building the browser on + # Windows, MOZ_ZLIB_LIBS is empty because zlib is part of libmozglue. We thus + # also enable zlib if mozglue is present. + ifneq (,$(MOZ_ZLIB_LIBS)$(MOZ_GLUE_LDFLAGS)) + DEFINES += -DUSE_ZLIB + endif + +-SHARED_LIBRARY_LIBS += $(ICU_LIBS) ++ifdef MOZ_NATIVE_ICU ++EXTRA_DSO_LDOPTS += $(MOZ_ICU_LIBS) ++else ++SHARED_LIBRARY_LIBS += $(MOZ_ICU_LIBS) ++endif + + # Prevent floating point errors caused by VC++ optimizations + ifdef _MSC_VER + # XXX We should add this to CXXFLAGS, too? + CFLAGS += -fp:precise + + ifeq ($(CPU_ARCH),x86) + # Workaround compiler bug on PGO (Bug 721284) +diff --git a/js/src/config/Makefile.in b/js/src/config/Makefile.in +--- js/src/config/Makefile.in ++++ js/src/config/Makefile.in +@@ -54,16 +54,17 @@ include $(topsrcdir)/config/rules.mk + + HOST_CFLAGS += -DUNICODE -D_UNICODE + + ifdef WRAP_SYSTEM_INCLUDES + export:: \ + $(call mkdir_deps,system_wrappers_js) \ + $(NULL) + $(PYTHON) $(srcdir)/Preprocessor.py $(DEFINES) $(ACDEFINES) \ ++ -DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \ + $(srcdir)/system-headers | $(PERL) $(srcdir)/make-system-wrappers.pl system_wrappers_js + $(INSTALL) system_wrappers_js $(DIST) + + GARBAGE_DIRS += system_wrappers_js + endif + + GARBAGE += $(srcdir)/*.pyc *.pyc + +diff --git a/js/src/config/system-headers b/js/src/config/system-headers +--- js/src/config/system-headers ++++ js/src/config/system-headers +@@ -1125,8 +1125,19 @@ gst/video/video.h + sys/msg.h + sys/ipc.h + sys/thr.h + sys/user.h + kvm.h + spawn.h + err.h + xlocale.h ++#if MOZ_NATIVE_ICU==1 ++unicode/locid.h ++unicode/numsys.h ++unicode/ucal.h ++unicode/ucol.h ++unicode/udat.h ++unicode/udatpg.h ++unicode/uenum.h ++unicode/unum.h ++unicode/ustring.h ++#endif +diff --git a/js/src/configure.in b/js/src/configure.in +--- js/src/configure.in ++++ js/src/configure.in +@@ -4406,59 +4406,68 @@ if test "$ACCESSIBILITY" -a "$MOZ_ENABLE + AC_DEFINE_UNQUOTED(ATK_MINOR_VERSION, $ATK_MINOR_VERSION) + AC_DEFINE_UNQUOTED(ATK_REV_VERSION, $ATK_REV_VERSION) + fi + + + dnl ======================================================== + dnl ECMAScript Internationalization API Support (uses ICU) + dnl ======================================================== ++ICU_LIB_NAMES= ++MOZ_NATIVE_ICU= ++MOZ_ARG_WITH_BOOL(system-icu, ++[ --with-system-icu ++ Use system icu (located with pkgconfig)], ++ MOZ_NATIVE_ICU=1) ++ ++if test -n "$MOZ_NATIVE_ICU"; then ++ PKG_CHECK_MODULES(MOZ_ICU, icu-i18n >= 50.1) ++fi + + if test -n "$JS_STANDALONE"; then + ENABLE_INTL_API=1 + fi + MOZ_ARG_ENABLE_BOOL(intl-api, + [ --enable-intl-api Enable ECMAScript Internationalization API (default=yes for standalone JS)], + ENABLE_INTL_API=1, + ENABLE_INTL_API= ) + + dnl Settings for the implementation of the ECMAScript Internationalization API + if test -n "$ENABLE_INTL_API"; then + AC_DEFINE(ENABLE_INTL_API) +- # We build ICU as a static library. +- AC_DEFINE(U_STATIC_IMPLEMENTATION) +- +- case "$OS_TARGET" in +- WINNT) +- ICU_LIB_NAMES="icuin icuuc icudt" +- ;; +- Darwin|Linux) +- ICU_LIB_NAMES="icui18n icuuc icudata" +- ;; +- *) +- AC_MSG_ERROR([ECMAScript Internationalization API is not yet supported on this platform]) +- esac +- +- ICU_LIBS='$(call EXPAND_LIBNAME_PATH,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/lib)' +-else +- ICU_LIB_NAMES= +- ICU_LIBS= ++ ++ if test -z "$MOZ_NATIVE_ICU"; then ++ case "$OS_TARGET" in ++ WINNT) ++ ICU_LIB_NAMES="icuin icuuc icudt" ++ ;; ++ Darwin|Linux) ++ ICU_LIB_NAMES="icui18n icuuc icudata" ++ ;; ++ *) ++ AC_MSG_ERROR([ECMAScript Internationalization API is not yet supported on this platform]) ++ esac ++ MOZ_ICU_LIBS='$(call EXPAND_LIBNAME_PATH,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/lib)' ++ fi + fi + + AC_SUBST(ENABLE_INTL_API) + AC_SUBST(ICU_LIB_NAMES) +-AC_SUBST(ICU_LIBS) +- +-dnl Source files that use ICU should have control over which parts of the ICU +-dnl namespace they want to use. +-AC_DEFINE(U_USING_ICU_NAMESPACE,0) +- ++AC_SUBST(MOZ_ICU_LIBS) ++AC_SUBST(MOZ_NATIVE_ICU) + + dnl Settings for ICU +-if test -n "$ENABLE_INTL_API" ; then ++if test -n "$ENABLE_INTL_API" -a -z "$MOZ_NATIVE_ICU"; then ++ dnl We build ICU as a static library. ++ AC_DEFINE(U_STATIC_IMPLEMENTATION) ++ ++ dnl Source files that use ICU should have control over which parts of the ICU ++ dnl namespace they want to use. ++ AC_DEFINE(U_USING_ICU_NAMESPACE,0) ++ + # Set ICU compile options + ICU_CPPFLAGS="" + # don't use icu namespace automatically in client code + ICU_CPPFLAGS="$ICU_CPPFLAGS -DU_USING_ICU_NAMESPACE=0" + # don't include obsolete header files + ICU_CPPFLAGS="$ICU_CPPFLAGS -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1" + # remove chunks of the library that we don't need (yet) + ICU_CPPFLAGS="$ICU_CPPFLAGS -DUCONFIG_NO_LEGACY_CONVERSION" +diff --git a/js/src/gdb/Makefile.in b/js/src/gdb/Makefile.in +--- js/src/gdb/Makefile.in ++++ js/src/gdb/Makefile.in +@@ -14,16 +14,20 @@ include $(DEPTH)/config/autoconf.mk + # Building against js_static requires that we declare mfbt sybols "exported" + # on its behalf. + DEFINES += -DEXPORT_JS_API -DIMPL_MFBT + + LIBS = $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(NSPR_LIBS) $(MOZ_ZLIB_LIBS) + + LOCAL_INCLUDES += -I$(topsrcdir) -I.. + ++ifdef MOZ_NATIVE_ICU ++EXTRA_LIBS += $(MOZ_ICU_LIBS) ++endif ++ + EXTRA_LIBS += $(MOZ_FFI_LIBS) + + # Place a GDB Python auto-load file next to the gdb-tests executable, both + # in the build directory and in the dist/bin directory. + PP_TARGETS += GDB_AUTOLOAD + GDB_AUTOLOAD := gdb-tests-gdb.py.in + GDB_AUTOLOAD_FLAGS := -Dtopsrcdir=$(abspath $(topsrcdir)) + +diff --git a/js/src/jsapi-tests/Makefile.in b/js/src/jsapi-tests/Makefile.in +--- js/src/jsapi-tests/Makefile.in ++++ js/src/jsapi-tests/Makefile.in +@@ -15,16 +15,20 @@ DEFINES += -DEXPORT_JS_API + # Building against js_static requires that we declare mfbt sybols "exported" + # on its behalf. + DEFINES += -DIMPL_MFBT + + LIBS = $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(NSPR_LIBS) $(MOZ_ZLIB_LIBS) + + LOCAL_INCLUDES += -I$(topsrcdir) -I.. + ++ifdef MOZ_NATIVE_ICU ++EXTRA_LIBS += $(MOZ_ICU_LIBS) ++endif ++ + EXTRA_LIBS += $(MOZ_FFI_LIBS) + + ifdef QEMU_EXE + MOZ_POST_PROGRAM_COMMAND = $(topsrcdir)/build/qemu-wrap --qemu $(QEMU_EXE) --libdir $(CROSS_LIB) + endif + + # Place a GDB Python auto-load file next to the jsapi-tests executable in + # the build directory. +diff --git a/js/src/shell/Makefile.in b/js/src/shell/Makefile.in +--- js/src/shell/Makefile.in ++++ js/src/shell/Makefile.in +@@ -22,16 +22,19 @@ DEFINES += -DEXPORT_JS_API + # Building against js_static requires that we declare mfbt sybols "exported" + # on its behalf. + DEFINES += -DIMPL_MFBT + + LIBS = $(NSPR_LIBS) $(EDITLINE_LIBS) $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(MOZ_ZLIB_LIBS) + ifdef MOZ_NATIVE_FFI + EXTRA_LIBS += $(MOZ_FFI_LIBS) + endif ++ifdef MOZ_NATIVE_ICU ++EXTRA_LIBS += $(MOZ_ICU_LIBS) ++endif + + LOCAL_INCLUDES += -I$(topsrcdir) -I.. + + ifeq ($(OS_ARCH),Darwin) + ifeq ($(TARGET_CPU),x86_64) + DARWIN_EXE_LDFLAGS += -pagezero_size 10000 -image_base 100000000 + endif + endif diff --git a/www/libxul/files/patch-bug876156 b/www/libxul/files/patch-bug876156 new file mode 100644 index 000000000000..84ecf6170671 --- /dev/null +++ b/www/libxul/files/patch-bug876156 @@ -0,0 +1,13 @@ +diff --git mfbt/Atomics.h mfbt/Atomics.h +index d79af6c..40b9336 100644 +--- mfbt/Atomics.h ++++ mfbt/Atomics.h +@@ -35,7 +35,7 @@ + */ + # if !defined(__linux__) && !defined(__OpenBSD__) && \ + (__cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__)) && \ +- __has_include(<atomic>) ++ __has_include_next(<atomic>) + # define MOZ_HAVE_CXX11_ATOMICS + # endif + /* diff --git a/www/libxul/files/patch-bug878791 b/www/libxul/files/patch-bug878791 new file mode 100644 index 000000000000..d8a3612e1702 --- /dev/null +++ b/www/libxul/files/patch-bug878791 @@ -0,0 +1,11 @@ +--- toolkit/components/osfile/osfile_unix_allthreads.jsm.orig 2013-05-11 21:19:53.000000000 +0200 ++++ toolkit/components/osfile/osfile_unix_allthreads.jsm 2013-06-02 17:15:05.000000000 +0200 +@@ -40,7 +40,7 @@ if (typeof Components != "undefined") { + // Open libc + let libc; + let libc_candidates = [ "libSystem.B.dylib", +- "libc.so.6", ++ "libc.so.7", + "libc.so" ]; + for (let i = 0; i < libc_candidates.length; ++i) { + try { diff --git a/www/libxul/files/patch-bug886181 b/www/libxul/files/patch-bug886181 new file mode 100644 index 000000000000..ed1c4df8348b --- /dev/null +++ b/www/libxul/files/patch-bug886181 @@ -0,0 +1,11 @@ +--- modules/libpref/src/init/all.js~ ++++ modules/libpref/src/init/all.js +@@ -193,7 +193,7 @@ pref("media.webm.enabled", true); + pref("media.dash.enabled", false); + #endif + #ifdef MOZ_GSTREAMER +-pref("media.gstreamer.enabled", false); ++pref("media.gstreamer.enabled", true); + #endif + #ifdef MOZ_WEBRTC + pref("media.navigator.enabled", true); diff --git a/www/libxul/files/patch-bug889699 b/www/libxul/files/patch-bug889699 new file mode 100644 index 000000000000..fef97da4ac50 --- /dev/null +++ b/www/libxul/files/patch-bug889699 @@ -0,0 +1,175 @@ +commit 7eb5827 +Author: Edwin Flores <eflores@mozilla.com> +Date: Sat Jul 20 12:03:08 2013 +1200 + + Bug 889699 - Make gstreamer backend return more accurate results for canPlayType() r=alessandro.d +--- + content/media/gstreamer/GStreamerFormatHelper.cpp | 90 +++++++++++++++++------ + 1 file changed, 66 insertions(+), 24 deletions(-) + +diff --git content/media/gstreamer/GStreamerFormatHelper.cpp content/media/gstreamer/GStreamerFormatHelper.cpp +index f05ff8f..39f1fdf 100644 +--- content/media/gstreamer/GStreamerFormatHelper.cpp ++++ content/media/gstreamer/GStreamerFormatHelper.cpp +@@ -6,7 +6,7 @@ + + #include "GStreamerFormatHelper.h" + #include "nsCharSeparatedTokenizer.h" +-#include "nsXPCOMStrings.h" ++#include "nsString.h" + #include "GStreamerLoader.h" + + #define ENTRY_FORMAT(entry) entry[0] +@@ -36,7 +36,7 @@ void GStreamerFormatHelper::Shutdown() { + } + } + +-char const *const GStreamerFormatHelper::mContainers[6][2] = { ++static char const *const sContainers[6][2] = { + {"video/mp4", "video/quicktime"}, + {"video/quicktime", "video/quicktime"}, + {"audio/mp4", "audio/x-m4a"}, +@@ -45,7 +45,7 @@ char const *const GStreamerFormatHelper::mContainers[6][2] = { + {"audio/mp3", "audio/mpeg, mpegversion=(int)1"}, + }; + +-char const *const GStreamerFormatHelper::mCodecs[9][2] = { ++static char const *const sCodecs[9][2] = { + {"avc1.42E01E", "video/x-h264"}, + {"avc1.42001E", "video/x-h264"}, + {"avc1.58A01E", "video/x-h264"}, +@@ -57,6 +57,15 @@ char const *const GStreamerFormatHelper::mCodecs[9][2] = { + {"mp3", "audio/mpeg, mpegversion=(int)1"}, + }; + ++static char const * const sDefaultCodecCaps[][2] = { ++ {"video/mp4", "video/x-h264"}, ++ {"video/quicktime", "video/x-h264"}, ++ {"audio/mp4", "audio/mpeg, mpegversion=(int)4"}, ++ {"audio/x-m4a", "audio/mpeg, mpegversion=(int)4"}, ++ {"audio/mp3", "audio/mpeg, layer=(int)3"}, ++ {"audio/mpeg", "audio/mpeg, layer=(int)3"} ++}; ++ + GStreamerFormatHelper::GStreamerFormatHelper() + : mFactories(nullptr), + mCookie(static_cast<uint32_t>(-1)) +@@ -66,15 +75,15 @@ GStreamerFormatHelper::GStreamerFormatHelper() + } + + mSupportedContainerCaps = gst_caps_new_empty(); +- for (unsigned int i = 0; i < G_N_ELEMENTS(mContainers); i++) { +- const char* capsString = mContainers[i][1]; ++ for (unsigned int i = 0; i < G_N_ELEMENTS(sContainers); i++) { ++ const char* capsString = sContainers[i][1]; + GstCaps* caps = gst_caps_from_string(capsString); + gst_caps_append(mSupportedContainerCaps, caps); + } + + mSupportedCodecCaps = gst_caps_new_empty(); +- for (unsigned int i = 0; i < G_N_ELEMENTS(mCodecs); i++) { +- const char* capsString = mCodecs[i][1]; ++ for (unsigned int i = 0; i < G_N_ELEMENTS(sCodecs); i++) { ++ const char* capsString = sCodecs[i][1]; + GstCaps* caps = gst_caps_from_string(capsString); + gst_caps_append(mSupportedCodecCaps, caps); + } +@@ -92,6 +101,41 @@ GStreamerFormatHelper::~GStreamerFormatHelper() { + g_list_free(mFactories); + } + ++static GstCaps * ++GetContainerCapsFromMIMEType(const char *aType) { ++ /* convert aMIMEType to gst container caps */ ++ const char* capsString = nullptr; ++ for (uint32_t i = 0; i < G_N_ELEMENTS(sContainers); i++) { ++ if (!strcmp(ENTRY_FORMAT(sContainers[i]), aType)) { ++ capsString = ENTRY_CAPS(sContainers[i]); ++ break; ++ } ++ } ++ ++ if (!capsString) { ++ /* we couldn't find any matching caps */ ++ return nullptr; ++ } ++ ++ return gst_caps_from_string(capsString); ++} ++ ++static GstCaps * ++GetDefaultCapsFromMIMEType(const char *aType) { ++ GstCaps *caps = GetContainerCapsFromMIMEType(aType); ++ ++ for (uint32_t i = 0; i < G_N_ELEMENTS(sDefaultCodecCaps); i++) { ++ if (!strcmp(sDefaultCodecCaps[i][0], aType)) { ++ GstCaps *tmp = gst_caps_from_string(sDefaultCodecCaps[i][1]); ++ ++ gst_caps_append(caps, tmp); ++ return caps; ++ } ++ } ++ ++ return nullptr; ++} ++ + bool GStreamerFormatHelper::CanHandleMediaType(const nsACString& aMIMEType, + const nsAString* aCodecs) { + if (!sLoadOK) { +@@ -101,7 +145,15 @@ bool GStreamerFormatHelper::CanHandleMediaType(const nsACString& aMIMEType, + const char *type; + NS_CStringGetData(aMIMEType, &type, NULL); + +- GstCaps* caps = ConvertFormatsToCaps(type, aCodecs); ++ GstCaps *caps; ++ if (aCodecs && !aCodecs->IsEmpty()) { ++ caps = ConvertFormatsToCaps(type, aCodecs); ++ } else { ++ // Get a minimal set of codec caps for this MIME type we should support so ++ // that we don't overreport MIME types we are able to play. ++ caps = GetDefaultCapsFromMIMEType(type); ++ } ++ + if (!caps) { + return false; + } +@@ -118,21 +170,11 @@ GstCaps* GStreamerFormatHelper::ConvertFormatsToCaps(const char* aMIMEType, + + unsigned int i; + +- /* convert aMIMEType to gst container caps */ +- const char* capsString = nullptr; +- for (i = 0; i < G_N_ELEMENTS(mContainers); i++) { +- if (!strcmp(ENTRY_FORMAT(mContainers[i]), aMIMEType)) { +- capsString = ENTRY_CAPS(mContainers[i]); +- break; +- } +- } +- +- if (!capsString) { +- /* we couldn't find any matching caps */ ++ GstCaps *caps = GetContainerCapsFromMIMEType(aMIMEType); ++ if (!caps) { + return nullptr; + } + +- GstCaps* caps = gst_caps_from_string(capsString); + /* container only */ + if (!aCodecs) { + return caps; +@@ -141,11 +183,11 @@ GstCaps* GStreamerFormatHelper::ConvertFormatsToCaps(const char* aMIMEType, + nsCharSeparatedTokenizer tokenizer(*aCodecs, ','); + while (tokenizer.hasMoreTokens()) { + const nsSubstring& codec = tokenizer.nextToken(); +- capsString = nullptr; ++ const char *capsString = nullptr; + +- for (i = 0; i < G_N_ELEMENTS(mCodecs); i++) { +- if (codec.EqualsASCII(ENTRY_FORMAT(mCodecs[i]))) { +- capsString = ENTRY_CAPS(mCodecs[i]); ++ for (i = 0; i < G_N_ELEMENTS(sCodecs); i++) { ++ if (codec.EqualsASCII(ENTRY_FORMAT(sCodecs[i]))) { ++ capsString = ENTRY_CAPS(sCodecs[i]); + break; + } + } diff --git a/www/libxul/files/patch-bug893397 b/www/libxul/files/patch-bug893397 new file mode 100644 index 000000000000..4d755c2ebb17 --- /dev/null +++ b/www/libxul/files/patch-bug893397 @@ -0,0 +1,206 @@ +diff --git configure.in configure.in +index 549ad06..2878d9f 100644 +--- configure.in ++++ configure.in +@@ -8491,7 +8491,7 @@ case "$OS_TARGET" in + NECKO_WIFI=1 + fi + ;; +- Darwin|SunOS|WINNT) ++ Darwin|FreeBSD|SunOS|WINNT) + NECKO_WIFI=1 + ;; + Linux) +diff --git netwerk/wifi/moz.build netwerk/wifi/moz.build +index 07b01de..11706af 100644 +--- netwerk/wifi/moz.build ++++ netwerk/wifi/moz.build +@@ -34,6 +34,10 @@ if CONFIG['OS_ARCH'] == 'Darwin': + CMMSRCS += [ + 'osx_corewlan.mm', + ] ++elif CONFIG['OS_ARCH'] == 'FreeBSD': ++ CPP_SOURCES += [ ++ 'nsWifiScannerFreeBSD.cpp', ++ ] + elif CONFIG['OS_ARCH'] == 'WINNT': + CPP_SOURCES += [ + 'nsWifiScannerWin.cpp', +diff --git netwerk/wifi/nsWifiScannerFreeBSD.cpp netwerk/wifi/nsWifiScannerFreeBSD.cpp +new file mode 100644 +index 0000000..80d4cb6 +--- /dev/null ++++ netwerk/wifi/nsWifiScannerFreeBSD.cpp +@@ -0,0 +1,172 @@ ++/* 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/. */ ++ ++// Developed by J.R. Oldroyd <fbsd@opal.com>, December 2012. ++ ++// For FreeBSD we use the getifaddrs(3) to obtain the list of interfaces ++// and then check for those with an 802.11 media type and able to return ++// a list of stations. This is similar to ifconfig(8). ++ ++#include <sys/types.h> ++#include <sys/ioctl.h> ++#include <sys/socket.h> ++#include <net/if.h> ++#include <net/if_media.h> ++#include <net80211/ieee80211_ioctl.h> ++ ++#include <ifaddrs.h> ++#include <string.h> ++#include <unistd.h> ++ ++#include "nsWifiAccessPoint.h" ++ ++using namespace mozilla; ++ ++static nsresult ++FreeBSDGetAccessPointData(nsCOMArray<nsWifiAccessPoint> &accessPoints) ++{ ++ bool res = false; ++ char *dupn = NULL; ++ struct ifaddrs *ifal, *ifa; ++ unsigned len; ++ ++ // get list of interfaces ++ if (getifaddrs(&ifal) < 0) ++ return NS_ERROR_FAILURE; ++ ++ accessPoints.Clear(); ++ ++ // loop through the interfaces ++ for (ifa = ifal; ifa; ifa = ifa->ifa_next) { ++ int s; ++ struct ifreq ifr; ++ struct ifmediareq ifmr; ++ struct ieee80211req i802r; ++ char iscanbuf[32*1024], *vsr; ++ ++ memset(&ifr, 0, sizeof(ifr)); ++ ++ // list can contain duplicates, so ignore those ++ if (dupn != NULL && strcmp(dupn, ifa->ifa_name) == 0) ++ continue; ++ dupn = ifa->ifa_name; ++ ++ // store interface name in socket structure ++ strncpy(ifr.ifr_name, ifa->ifa_name, sizeof(ifr.ifr_name)); ++ ifr.ifr_addr.sa_family = AF_LOCAL; ++ ++ // open socket to interface ++ if ((s = socket(ifr.ifr_addr.sa_family, SOCK_DGRAM, 0)) < 0) ++ continue; ++ ++ // clear interface media structure ++ (void) memset(&ifmr, 0, sizeof(ifmr)); ++ (void) strncpy(ifmr.ifm_name, ifa->ifa_name, sizeof(ifmr.ifm_name)); ++ ++ // get interface media information ++ if (ioctl(s, SIOCGIFMEDIA, (caddr_t)&ifmr) < 0) { ++ close(s); ++ continue; ++ } ++ ++ // check interface is a WiFi interface ++ if (IFM_TYPE(ifmr.ifm_active) != IFM_IEEE80211) { ++ close(s); ++ continue; ++ } ++ ++ // perform WiFi scan ++ (void) memset(&i802r, 0, sizeof(i802r)); ++ (void) strncpy(i802r.i_name, ifa->ifa_name, sizeof(i802r.i_name)); ++ i802r.i_type = IEEE80211_IOC_SCAN_RESULTS; ++ i802r.i_data = iscanbuf; ++ i802r.i_len = sizeof(iscanbuf); ++ if (ioctl(s, SIOCG80211, &i802r) < 0) { ++ close(s); ++ continue; ++ } ++ ++ // close socket ++ close(s); ++ ++ // loop through WiFi networks and build geoloc-lookup structure ++ vsr = (char *) i802r.i_data; ++ len = i802r.i_len; ++ while (len >= sizeof(struct ieee80211req_scan_result)) { ++ struct ieee80211req_scan_result *isr; ++ char *id; ++ int idlen; ++ char ssid[IEEE80211_NWID_LEN+1]; ++ nsWifiAccessPoint *ap; ++ ++ isr = (struct ieee80211req_scan_result *) vsr; ++ ++ // determine size of this entry ++ if (isr->isr_meshid_len) { ++ id = vsr + isr->isr_ie_off + isr->isr_ssid_len; ++ idlen = isr->isr_meshid_len; ++ } ++ else { ++ id = vsr + isr->isr_ie_off; ++ idlen = isr->isr_ssid_len; ++ } ++ ++ // copy network data ++ strncpy(ssid, id, idlen); ++ ssid[idlen] = '\0'; ++ ap = new nsWifiAccessPoint(); ++ ap->setSSID(ssid, strlen(ssid)); ++ ap->setMac(isr->isr_bssid); ++ ap->setSignal(isr->isr_rssi); ++ accessPoints.AppendObject(ap); ++ res = true; ++ ++ // log the data ++ LOG(( "FreeBSD access point: " ++ "SSID: %s, MAC: %02x-%02x-%02x-%02x-%02x-%02x, " ++ "Strength: %d, Channel: %dMHz\n", ++ ssid, isr->isr_bssid[0], isr->isr_bssid[1], isr->isr_bssid[2], ++ isr->isr_bssid[3], isr->isr_bssid[4], isr->isr_bssid[5], ++ isr->isr_rssi, isr->isr_freq)); ++ ++ // increment pointers ++ len -= isr->isr_len; ++ vsr += isr->isr_len; ++ } ++ } ++ ++ freeifaddrs(ifal); ++ ++ return res ? NS_OK : NS_ERROR_FAILURE; ++} ++ ++nsresult ++nsWifiMonitor::DoScan() ++{ ++ // Regularly get the access point data. ++ ++ nsCOMArray<nsWifiAccessPoint> lastAccessPoints; ++ nsCOMArray<nsWifiAccessPoint> accessPoints; ++ ++ do { ++ nsresult rv = FreeBSDGetAccessPointData(accessPoints); ++ if (NS_FAILED(rv)) ++ return rv; ++ ++ bool accessPointsChanged = !AccessPointsEqual(accessPoints, lastAccessPoints); ++ ReplaceArray(lastAccessPoints, accessPoints); ++ ++ rv = CallWifiListeners(lastAccessPoints, accessPointsChanged); ++ NS_ENSURE_SUCCESS(rv, rv); ++ ++ // wait for some reasonable amount of time. pref? ++ LOG(("waiting on monitor\n")); ++ ++ ReentrantMonitorAutoEnter mon(mReentrantMonitor); ++ mon.Wait(PR_SecondsToInterval(60)); ++ } ++ while (mKeepGoing); ++ ++ return NS_OK; ++} diff --git a/www/libxul/files/patch-bug910875 b/www/libxul/files/patch-bug910875 new file mode 100644 index 000000000000..4f1d5a521e84 --- /dev/null +++ b/www/libxul/files/patch-bug910875 @@ -0,0 +1,102 @@ +diff --git media/webrtc/trunk/webrtc/modules/audio_device/audio_device_impl.cc media/webrtc/trunk/webrtc/modules/audio_device/audio_device_impl.cc +index f231b1e..6087696 100644 +--- media/webrtc/trunk/webrtc/modules/audio_device/audio_device_impl.cc ++++ media/webrtc/trunk/webrtc/modules/audio_device/audio_device_impl.cc +@@ -16,7 +16,9 @@ + #include <assert.h> + #include <string.h> + +-#if defined(_WIN32) ++#if defined(WEBRTC_DUMMY_AUDIO_BUILD) ++// do not include platform specific headers ++#elif defined(_WIN32) + #include "audio_device_utility_win.h" + #include "audio_device_wave_win.h" + #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) +@@ -32,14 +34,8 @@ + #include <stdlib.h> + #include "audio_device_utility_android.h" + #include "audio_device_jni_android.h" +-#elif defined(WEBRTC_LINUX) ++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) + #include "audio_device_utility_linux.h" +- #if defined(LINUX_ALSA) +- #include "audio_device_alsa_linux.h" +- #endif +- #if defined(LINUX_PULSE) +- #include "audio_device_pulse_linux.h" +- #endif + #elif defined(WEBRTC_IOS) + #include "audio_device_utility_ios.h" + #include "audio_device_ios.h" +@@ -47,6 +43,12 @@ + #include "audio_device_utility_mac.h" + #include "audio_device_mac.h" + #endif ++#if defined(LINUX_ALSA) ++ #include "audio_device_alsa_linux.h" ++#endif ++#if defined(LINUX_PULSE) ++ #include "audio_device_pulse_linux.h" ++#endif + #include "audio_device_dummy.h" + #include "audio_device_utility_dummy.h" + #include "critical_section_wrapper.h" +@@ -161,7 +163,7 @@ WebRtc_Word32 AudioDeviceModuleImpl::Che + #elif defined(WEBRTC_ANDROID) + platform = kPlatformAndroid; + WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "current platform is ANDROID"); +-#elif defined(WEBRTC_LINUX) ++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) + platform = kPlatformLinux; + WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "current platform is LINUX"); + #elif defined(WEBRTC_IOS) +@@ -309,7 +311,7 @@ int32_t AudioDeviceModuleImpl::CreatePlatformSpecificObjects() + + // Create the *Linux* implementation of the Audio Device + // +-#elif defined(WEBRTC_LINUX) ++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) + if ((audioLayer == kLinuxPulseAudio) || (audioLayer == kPlatformDefaultAudio)) + { + #if defined(LINUX_PULSE) +@@ -355,7 +357,7 @@ int32_t AudioDeviceModuleImpl::CreatePlatformSpecificObjects() + // + ptrAudioDeviceUtility = new AudioDeviceUtilityLinux(Id()); + } +-#endif // #if defined(WEBRTC_LINUX) ++#endif // #if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) + + // Create the *iPhone* implementation of the Audio Device + // +diff --git media/webrtc/trunk/webrtc/modules/audio_device/test/audio_device_test_api.cc media/webrtc/trunk/webrtc/modules/audio_device/test/audio_device_test_api.cc +index defd7f8..906c4a2 100644 +--- media/webrtc/trunk/webrtc/modules/audio_device/test/audio_device_test_api.cc ++++ media/webrtc/trunk/webrtc/modules/audio_device/test/audio_device_test_api.cc +@@ -197,7 +197,7 @@ class AudioDeviceAPITest: public testing::Test { + // Create default implementation instance + EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create( + kId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL); +-#elif defined(WEBRTC_LINUX) ++#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD) + EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create( + kId, AudioDeviceModule::kWindowsWaveAudio)) == NULL); + EXPECT_TRUE((audio_device_ = AudioDeviceModuleImpl::Create( +@@ -1690,7 +1690,7 @@ TEST_F(AudioDeviceAPITest, CPULoad) { + + // TODO(kjellander): Fix flakiness causing failures on Windows. + // TODO(phoglund): Fix flakiness causing failures on Linux. +-#if !defined(_WIN32) && !defined(WEBRTC_LINUX) ++#if !defined(_WIN32) && !defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD) + TEST_F(AudioDeviceAPITest, StartAndStopRawOutputFileRecording) { + // NOTE: this API is better tested in a functional test + CheckInitialPlayoutStates(); +@@ -1759,7 +1759,7 @@ TEST_F(AudioDeviceAPITest, StartAndStopRawInputFileRecording) { + // - size of raw_input_not_recording.pcm shall be 0 + // - size of raw_input_not_recording.pcm shall be > 0 + } +-#endif // !WIN32 && !WEBRTC_LINUX ++#endif // !WIN32 && !WEBRTC_LINUX && !defined(WEBRTC_BSD) + + TEST_F(AudioDeviceAPITest, RecordingSampleRate) { + uint32_t sampleRate(0); diff --git a/www/libxul/files/patch-bug916216 b/www/libxul/files/patch-bug916216 new file mode 100644 index 000000000000..ca82967fa78c --- /dev/null +++ b/www/libxul/files/patch-bug916216 @@ -0,0 +1,39 @@ +--- media/webrtc/trunk/build/build_config.h~ ++++ media/webrtc/trunk/build/build_config.h +@@ -37,9 +37,15 @@ + #elif defined(_WIN32) + #define OS_WIN 1 + #define TOOLKIT_VIEWS 1 +-#elif defined(__FreeBSD__) ++#elif defined(__DragonFly__) ++#define OS_DRAGONFLY 1 ++#define TOOLKIT_GTK ++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + #define OS_FREEBSD 1 + #define TOOLKIT_GTK ++#elif defined(__NetBSD__) ++#define OS_NETBSD 1 ++#define TOOLKIT_GTK + #elif defined(__OpenBSD__) + #define OS_OPENBSD 1 + #define TOOLKIT_GTK +@@ -56,15 +62,15 @@ + + // For access to standard BSD features, use OS_BSD instead of a + // more specific macro. +-#if defined(OS_FREEBSD) || defined(OS_OPENBSD) ++#if defined(OS_DRAGONFLY) || defined(OS_FREEBSD) \ ++ || defined(OS_NETBSD) || defined(OS_OPENBSD) + #define OS_BSD 1 + #endif + + // For access to standard POSIXish features, use OS_POSIX instead of a + // more specific macro. +-#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_FREEBSD) || \ +- defined(OS_OPENBSD) || defined(OS_SOLARIS) || defined(OS_ANDROID) || \ +- defined(OS_NACL) ++#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) || \ ++ defined(OS_SOLARIS) || defined(OS_ANDROID) || defined(OS_NACL) + #define OS_POSIX 1 + #endif + diff --git a/www/libxul/files/patch-bug916589 b/www/libxul/files/patch-bug916589 new file mode 100644 index 000000000000..664a7b167314 --- /dev/null +++ b/www/libxul/files/patch-bug916589 @@ -0,0 +1,40 @@ +diff --git media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h +index 5b50785..7cf47d5 100644 +--- media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h ++++ media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h +@@ -31,11 +31,14 @@ + */ + +-#ifndef _SYS_QUEUE_H_ ++#if (defined(BSD) && !defined(__OpenBSD__)) || defined(DARWIN) ++#include_next <sys/queue.h> ++#elif !defined(_SYS_QUEUE_H_) + #define _SYS_QUEUE_H_ + +-#if !defined(__FreeBSD__) && !defined(DARWIN) + #include <stddef.h> +-#define __offsetof offsetof ++ ++#ifndef offsetof ++#define offsetof(type, field) ((size_t)(&((type *)0)->field)) + #endif + + #define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ +@@ -43,8 +46,6 @@ + (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \ + (var) = (tvar)) + +-// #define __offsetof(type, field) ((size_t)(&((type *)0)->field)) +- + /* + * This file defines four types of data structures: singly-linked lists, + * singly-linked tail queues, lists and tail queues. +@@ -285,7 +286,7 @@ struct { \ + (STAILQ_EMPTY((head)) ? \ + NULL : \ + ((struct type *) \ +- ((char *)((head)->stqh_last) - __offsetof(struct type, field)))) ++ ((char *)((head)->stqh_last) - offsetof(struct type, field)))) + + #define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) + diff --git a/www/libxul/files/patch-build-pgo-profileserver.py b/www/libxul/files/patch-build-pgo-profileserver.py index 0571eb19903d..31a3a0889c0a 100644 --- a/www/libxul/files/patch-build-pgo-profileserver.py +++ b/www/libxul/files/patch-build-pgo-profileserver.py @@ -1,18 +1,11 @@ --- build/pgo/profileserver.py.orig 2011-02-24 21:49:47.000000000 +0100 +++ build/pgo/profileserver.py 2011-02-24 21:50:30.000000000 +0100 -@@ -77,13 +77,13 @@ - t.setDaemon(True) # don't hang on exit - t.start() - -- automation.setServerInfo("localhost", PORT) -+ automation.setServerInfo("127.0.0.1", PORT) - automation.initializeProfile(PROFILE_DIRECTORY) - browserEnv = automation.environment() - browserEnv["XPCOM_DEBUG_BREAK"] = "warn" - browserEnv["MOZ_JAR_LOG_DIR"] = MOZ_JAR_LOG_DIR +@@ -59,7 +59,7 @@ if __name__ == '__main__': + env["MOZ_JAR_LOG_FILE"] = os.path.abspath(jarlog) + print "jarlog: %s" % env["MOZ_JAR_LOG_FILE"] -- url = "http://localhost:%d/index.html" % PORT -+ url = "http://127.0.0.1:%d/index.html" % PORT - appPath = os.path.join(SCRIPT_DIR, automation.DEFAULT_APP) - status = automation.runApp(url, browserEnv, appPath, PROFILE_DIRECTORY, {}, - debuggerInfo=debuggerInfo, +- cmdargs = ["http://localhost:%d/index.html" % PORT] ++ cmdargs = ["http://127.0.0.1:%d/index.html" % PORT] + runner = FirefoxRunner(profile=profile, + binary=build.get_binary_path(where="staged-package"), + cmdargs=cmdargs, diff --git a/www/libxul/files/patch-clang33 b/www/libxul/files/patch-clang33 deleted file mode 100644 index dbf18eb4b70d..000000000000 --- a/www/libxul/files/patch-clang33 +++ /dev/null @@ -1,25 +0,0 @@ ---- js/src/jspropertycacheinlines.h~ -+++ js/src/jspropertycacheinlines.h -@@ -31,7 +31,7 @@ JS_ALWAYS_INLINE void - js::PropertyCache::test(JSContext *cx, jsbytecode *pc, JSObject *&obj, - JSObject *&pobj, PropertyCacheEntry *&entry, PropertyName *&name) - { -- AssertRootingUnnecessary assert(cx); -+ js::AssertRootingUnnecessary assert(cx); - - JS_ASSERT(this == &JS_PROPERTY_CACHE(cx)); - ---- js/src/vm/ObjectImpl-inl.h~ -+++ js/src/vm/ObjectImpl-inl.h -@@ -176,9 +176,9 @@ js::ObjectImpl::initializeSlotRange(uint - JSCompartment *comp = compartment(); - uint32_t offset = start; - for (HeapSlot *sp = fixedStart; sp < fixedEnd; sp++) -- sp->init(comp, this->asObjectPtr(), offset++, UndefinedValue()); -+ sp->init(comp, this->asObjectPtr(), offset++, js::UndefinedValue()); - for (HeapSlot *sp = slotsStart; sp < slotsEnd; sp++) -- sp->init(comp, this->asObjectPtr(), offset++, UndefinedValue()); -+ sp->init(comp, this->asObjectPtr(), offset++, js::UndefinedValue()); - } - - inline bool diff --git a/www/libxul/files/patch-duckduckgo b/www/libxul/files/patch-duckduckgo new file mode 100644 index 000000000000..bc3a7e321f41 --- /dev/null +++ b/www/libxul/files/patch-duckduckgo @@ -0,0 +1,47 @@ +diff -r f2fa4ae74ee1 browser/locales/en-US/chrome/browser-region/region.properties +--- browser/locales/en-US/chrome/browser-region/region.properties Mon Oct 24 22:54:18 2011 +0300 ++++ browser/locales/en-US/chrome/browser-region/region.properties Tue Oct 25 21:13:40 2011 -0400 +@@ -9,6 +9,7 @@ + browser.search.order.1=Google + browser.search.order.2=Yahoo + browser.search.order.3=Bing ++browser.search.order.4=DuckDuckGo + + # This is the default set of web based feed handlers shown in the reader + # selection UI +--- /dev/null 2013-02-09 00:33:00.000000000 +0100 ++++ browser/locales/en-US/searchplugins/duckduckgo.xml 2013-02-09 00:40:19.000000000 +0100 +@@ -0,0 +1,11 @@ ++<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/"> ++<ShortName>DuckDuckGo</ShortName> ++<Description>We believe in better search and not tracking.</Description> ++<InputEncoding>UTF-8</InputEncoding> ++<Image height="16" width="16" type="image/x-icon">data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAANcNAADXDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJmlk8pf6+v3s/v7+++zr/fcnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnIOwBJyDscCcg7PZttJ7/7Pfs//////++xO7/S5GA/ycg7P8nIOz2JyDscCcg7AEAAAAAAAAAAAAAAAAnIOwBJyDstScg7P8nIOz/Y8p5/2fHZf9Yv0z/YcF2/1rBUv8nIOz/JyDs/ycg7P8nIOy1JyDsAQAAAAAAAAAAJyDscCcg7P8nIOz/JyDs/4jQoP/p9+n//////05X3v9LkYD/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAJyDsJicg7PYnIOz/JyDs/zUu7f/+/v////////////89N+7/JyDs/yUo7f8nIOz/JyDs/ycg7P8nIOz2JyDsJicg7IAnIOz/JyDs/ycg7P9hXPH////////////t/P//GIr2/wfD+/8Gyfz/DKv5/yM57/8nIOz/JyDs/ycg7H8nIOyzJyDs/ycg7P8nIOz/jov1////////////Otz9/w3G/P8cWfH/JSvt/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDs5icg7P8nIOz/JyDs/7u5+f///////////27l/v8E0v3/BNL9/wTQ/f8Oofn/IT7v/ycg7P8nIOz/JyDs5icg7OYnIOz/JyDs/ycg7P/p6P3/uWsC////////////5fr//6Po/f8Thfb/DKv5/w6f+f8nIOz/JyDs/ycg7OYnIOyzJyDs/ycg7P8nIOz/9/b+/////////////////7lrAv/V1Pv/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDsgCcg7P8nIOz/JyDs/8/N+///////////////////////iIX1/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDsfycg7CYnIOz2JyDs/ycg7P9FP+7/q6n4/+7u/f/n5v3/fXn0/yoj7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7CYAAAAAJyDscCcg7P8nIOz/wsD6/+no/f/Y1/z/eHTz/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAAAAAACcg7AEnIOy1JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7LUnIOwBAAAAAAAAAAAAAAAAJyDsAScg7HAnIOz2JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7HAnIOwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJicg7IAnIOyzJyDs5icg7OYnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAA+B8AAPAPAADAAwAAwAMAAIABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAACAAQAAwAMAAMADAADwDwAA+B8AAA==</Image> ++<Url type="text/html" method="GET" template="https://duckduckgo.com/"> ++<Param name="q" value="{searchTerms}"/> ++<Param name="t" value="freebsd"/> ++</Url> ++<SearchForm>https://duckduckgo.com/</SearchForm> ++</SearchPlugin> +diff -r f2fa4ae74ee1 browser/locales/en-US/searchplugins/list.txt +--- browser/locales/en-US/searchplugins/list.txt Mon Oct 24 22:54:18 2011 +0300 ++++ browser/locales/en-US/searchplugins/list.txt Tue Oct 25 21:13:40 2011 -0400 +@@ -1,7 +1,8 @@ + amazondotcom + bing ++duckduckgo + eBay + google + twitter + wikipedia + yahoo +--- browser/app/profile/firefox.js.orig 2013-02-09 12:26:02.000000000 +0100 ++++ browser/app/profile/firefox.js 2013-02-09 12:26:19.000000000 +0100 +@@ -341,6 +341,7 @@ + pref("browser.search.order.1", "chrome://browser-region/locale/region.properties"); + pref("browser.search.order.2", "chrome://browser-region/locale/region.properties"); + pref("browser.search.order.3", "chrome://browser-region/locale/region.properties"); ++pref("browser.search.order.4", "chrome://browser-region/locale/region.properties"); + + // search bar results always open in a new tab + pref("browser.search.openintab", false); diff --git a/www/libxul/files/patch-ipc-chromium-Makefile.in b/www/libxul/files/patch-ipc-chromium-Makefile.in index b660c3662bb0..0e20edf2ee37 100644 --- a/www/libxul/files/patch-ipc-chromium-Makefile.in +++ b/www/libxul/files/patch-ipc-chromium-Makefile.in @@ -1,20 +1,5 @@ --- ipc/chromium/Makefile.in~ +++ ipc/chromium/Makefile.in -@@ -43,6 +43,14 @@ include $(DEPTH)/config/autoconf.mk - - OS_CXXFLAGS := $(filter-out -fshort-wchar,$(OS_CXXFLAGS)) - -+# workaround IPC hang with libevent2 -+ifndef MOZ_DEBUG -+ifneq (,$(filter 4.2.%, $(CXX_VERSION))) -+MOZ_OPTIMIZE_FLAGS = -O1 -+OS_CXXFLAGS += $(MOZ_OPTIMIZE_FLAGS) -+endif -+endif -+ - LIBRARY_NAME = chromium_s - FORCE_STATIC_LIB = 1 - LIBXUL_LIBRARY = 1 @@ -55,9 +60,7 @@ vpath %.c \ $(srcdir)/src/third_party/libevent \ $(NULL) diff --git a/www/libxul/files/patch-ipc-chromium-src-base-message_pump_libevent.cc b/www/libxul/files/patch-ipc-chromium-src-base-message_pump_libevent.cc index 7d4dc959eedf..02b6a5e90eca 100644 --- a/www/libxul/files/patch-ipc-chromium-src-base-message_pump_libevent.cc +++ b/www/libxul/files/patch-ipc-chromium-src-base-message_pump_libevent.cc @@ -1,9 +1,9 @@ --- ipc/chromium/src/base/message_pump_libevent.cc~ +++ ipc/chromium/src/base/message_pump_libevent.cc -@@ -15,7 +15,7 @@ - #include "base/scoped_nsautorelease_pool.h" +@@ -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" diff --git a/www/libxul/files/patch-js-src-methodjit-MethodJIT.cpp b/www/libxul/files/patch-js-src-methodjit-MethodJIT.cpp deleted file mode 100644 index d29c15ccc05a..000000000000 --- a/www/libxul/files/patch-js-src-methodjit-MethodJIT.cpp +++ /dev/null @@ -1,20 +0,0 @@ ---- js/src/methodjit/MethodJIT.cpp~ -+++ js/src/methodjit/MethodJIT.cpp -@@ -171,7 +171,7 @@ - - JS_STATIC_ASSERT(offsetof(FrameRegs, sp) == 0); - --#if defined(__linux__) && defined(JS_CPU_X64) -+#if defined(__ELF__) && defined(JS_CPU_X64) - # define SYMBOL_STRING_RELOC(name) #name "@plt" - #else - # define SYMBOL_STRING_RELOC(name) SYMBOL_STRING(name) -@@ -149,7 +149,7 @@ - - #if defined(XP_MACOSX) - # define HIDE_SYMBOL(name) ".private_extern _" #name --#elif defined(__linux__) -+#elif defined(__ELF__) - # define HIDE_SYMBOL(name) ".hidden" #name - #else - # define HIDE_SYMBOL(name) diff --git a/www/libxul/files/patch-media-libsydneyaudio-src-sydney_audio_oss.c b/www/libxul/files/patch-media-libsydneyaudio-src-sydney_audio_oss.c deleted file mode 100644 index a7fd5f1ffd09..000000000000 --- a/www/libxul/files/patch-media-libsydneyaudio-src-sydney_audio_oss.c +++ /dev/null @@ -1,13 +0,0 @@ ---- media/libsydneyaudio/src/sydney_audio_oss.c~ -+++ media/libsydneyaudio/src/sydney_audio_oss.c -@@ -446,6 +446,10 @@ static void audio_callback(void* data) - printf("!"); /* not enough audio data */ - #endif - bytes = bytes-bytes_to_copy; -+ struct timespec ts = {0, 1000000}; -+ pthread_mutex_unlock(&s->mutex); -+ nanosleep(&ts, NULL); -+ pthread_mutex_lock(&s->mutex); - break; - } - free(s->bl_head); diff --git a/www/libxul/files/patch-media-webrtc-trunk-src-system_wrappers-source-spreadsortlib-spreadsort.hpp b/www/libxul/files/patch-media-webrtc-trunk-src-system_wrappers-source-spreadsortlib-spreadsort.hpp new file mode 100644 index 000000000000..eeb58e7baa20 --- /dev/null +++ b/www/libxul/files/patch-media-webrtc-trunk-src-system_wrappers-source-spreadsortlib-spreadsort.hpp @@ -0,0 +1,16 @@ +--- media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp~ ++++ media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp +@@ -21,6 +21,13 @@ Scott McMurray + #include "constants.hpp" + #include <cstring> + ++#ifdef __FreeBSD__ ++# include <osreldate.h> ++# if __FreeBSD_version < 900506 ++# define getchar boost_getchar ++# endif ++#endif ++ + namespace boost { + namespace detail { + //This only works on unsigned data types diff --git a/www/libxul/files/patch-no-videoio.h b/www/libxul/files/patch-no-videoio.h new file mode 100644 index 000000000000..c20c0e039827 --- /dev/null +++ b/www/libxul/files/patch-no-videoio.h @@ -0,0 +1,22 @@ +--- 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> diff --git a/www/libxul/files/patch-z-bug762445 b/www/libxul/files/patch-z-bug762445 deleted file mode 100644 index fd42fea9cab2..000000000000 --- a/www/libxul/files/patch-z-bug762445 +++ /dev/null @@ -1,70 +0,0 @@ -commit b44dc8e -Author: Jan Beich <jbeich@tormail.org> -Date: Fri Oct 12 18:49:59 2012 +0000 - - Bug 762445 - Add jemalloc3 glue for heap-committed, heap-dirty in about:memory. ---- - memory/build/mozjemalloc_compat.c | 34 ++++++++++++++++++++++++++++------ - 1 file changed, 28 insertions(+), 6 deletions(-) - -diff --git memory/build/mozjemalloc_compat.c memory/build/mozjemalloc_compat.c -index 94ad96e..7adfef5 100644 ---- memory/build/mozjemalloc_compat.c -+++ memory/build/mozjemalloc_compat.c -@@ -11,15 +11,50 @@ - #define wrap(a) je_ ## a - #endif - --extern MOZ_IMPORT_API(int) -+/* -+ * CTL_* macros are from memory/jemalloc/src/src/stats.c with changes: -+ * - drop `t' argument to avoid redundancy in calculating type size -+ * - require `i' argument for arena number explicitly -+ */ -+ -+#define CTL_GET(n, v) do { \ -+ size_t sz = sizeof(v); \ -+ wrap(mallctl)(n, &v, &sz, NULL, 0); \ -+} while (0) -+ -+#define CTL_I_GET(n, v, i) do { \ -+ size_t mib[6]; \ -+ size_t miblen = sizeof(mib) / sizeof(mib[0]); \ -+ size_t sz = sizeof(v); \ -+ wrap(mallctlnametomib)(n, mib, &miblen); \ -+ mib[2] = i; \ -+ wrap(mallctlbymib)(mib, miblen, &v, &sz, NULL, 0); \ -+} while (0) -+ -+MOZ_IMPORT_API(int) - wrap(mallctl)(const char*, void*, size_t*, void*, size_t); -+MOZ_IMPORT_API(int) -+wrap(mallctlnametomib)(const char *name, size_t *mibp, size_t *miblenp); -+MOZ_IMPORT_API(int) -+wrap(mallctlbymib)(const size_t *mib, size_t miblen, void *oldp, size_t *oldlenp, void *newp, size_t newlen); - - MOZ_EXPORT_API(void) - jemalloc_stats(jemalloc_stats_t *stats) - { -- size_t size = sizeof(stats->mapped); -- wrap(mallctl)("stats.mapped", &stats->mapped, &size, NULL, 0); -- wrap(mallctl)("stats.allocated", &stats->allocated, &size, NULL, 0); -- stats->committed = -1; -- stats->dirty = -1; -+ unsigned narenas; -+ size_t active, allocated, mapped, page, pdirty; -+ -+ CTL_GET("arenas.narenas", narenas); -+ CTL_GET("arenas.page", page); -+ CTL_GET("stats.active", active); -+ CTL_GET("stats.allocated", allocated); -+ CTL_GET("stats.mapped", mapped); -+ -+ /* get the summation for all arenas, i == narenas */ -+ CTL_I_GET("stats.arenas.0.pdirty", pdirty, narenas); -+ -+ stats->allocated = allocated; -+ stats->mapped = mapped; -+ stats->dirty = pdirty * page; -+ stats->committed = active + stats->dirty; - } diff --git a/www/libxul/files/pkg-deinstall.in b/www/libxul/files/pkg-deinstall.in new file mode 100644 index 000000000000..c54266e6984f --- /dev/null +++ b/www/libxul/files/pkg-deinstall.in @@ -0,0 +1,24 @@ +#!/bin/sh +# Created by: Thierry Thomas (<thierry@pompo.net>) +# Fix the chrome registry. + +umask 022 +PATH=/bin:/usr/bin + +[ "x$1" = "x" ] && exit 1 +[ "x$2" != "xDEINSTALL" ] && exit 0 + +MOZDIR=%%MOZDIR%% + +rm -rf ${MOZDIR}/chrome/overlayinfo +rm -f ${MOZDIR}/chrome/*.rdf +rm -f ${MOZDIR}/component.reg +rm -f ${MOZDIR}/components/*.dat +rm -f ${MOZDIR}/components.ini +rm -f ${MOZDIR}/defaults.ini +rm -f ${MOZDIR}/chrome/app-chrome.manifest +rm -rf ${MOZDIR}/updates +find %%MOZDIR%%/plugins/ -depth 1 -type l -delete > /dev/null 2>&1 +find %%MOZDIR%%/extensions/ -depth 1 -type l -delete > /dev/null 2>&1 + +exit 0 diff --git a/www/libxul/files/pkg-install.in b/www/libxul/files/pkg-install.in new file mode 100644 index 000000000000..bb5cc73af4e8 --- /dev/null +++ b/www/libxul/files/pkg-install.in @@ -0,0 +1,33 @@ +#!/bin/sh +# Created by: Thierry Thomas (<thierry@pompo.net>) +# Fix the chrome registry. + +umask 022 +PATH=/bin:/usr/bin + +[ "x$1" = "x" ] && exit 1 +[ "x$2" != "xPOST-INSTALL" ] && exit 0 + +MOZDIR=%%MOZDIR%% +MOZBIN=${MOZDIR}/%%MOZILLA_BIN%% +REGXPCOM=${MOZDIR}/regxpcom +REGCHROME=${MOZDIR}/regchrome + +rm -rf ${MOZDIR}/chrome/overlayinfo +rm -f ${MOZDIR}/chrome/*.rdf +mkdir -p ${MOZDIR}/chrome/overlayinfo +rm -f ${MOZDIR}/component.reg + +cd ${MOZDIR} || exit 1 +if [ -f ${REGXPCOM} ]; then + ./run-mozilla.sh ${REGXPCOM} || true +fi +if [ -f ${REGCHROME} ]; then + ./run-mozilla.sh ${REGCHROME} || true +fi +if [ -f ${MOZBIN} -a "${1%-*}" = "nvu" ]; then + ./run-mozilla.sh ${MOZBIN} -register > /dev/null 2>&1 +fi +cp -R %%LOCALBASE%%/lib/xpi/symlinks/%%MOZILLA%%/ %%MOZDIR%%/extensions/ > /dev/null 2>&1 + +exit 0 diff --git a/www/linux-firefox/Makefile b/www/linux-firefox/Makefile index 726227ea9219..fdd58bc51515 100644 --- a/www/linux-firefox/Makefile +++ b/www/linux-firefox/Makefile @@ -2,19 +2,17 @@ # $FreeBSD$ PORTNAME= firefox -PORTVERSION= 23.0 +DISTVERSION= 24.0 PORTEPOCH= 1 CATEGORIES= www -MASTER_SITES= MOZILLA/${PORTNAME}/releases/${PORTVERSION}/linux-i686/en-US +MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/linux-i686/en-US +DISTNAME= ${PORTNAME}-${DISTVERSION}esr MAINTAINER= gecko@FreeBSD.org COMMENT= Web browser based on the browser portion of Mozilla -EXTRACT_DEPENDS=${NONEXISTENT}:${PORTSDIR}/www/linux-seamonkey:extract - -CONFLICTS= linux-firefox-24.* linux-firefox-1[07].* -USE_LDCONFIG= yes USE_BZIP2= yes +REPLACE_GRE= yes USE_LINUX_APPS= dbusglib dbuslibs alsalib alsa-plugins-oss @@ -23,23 +21,4 @@ APP_SUBDIR= browser/ # plugins, extensions .include "${.CURDIR}/../linux-seamonkey/Makefile.common" -# XXX remove after linux_base-c6 and linux-c6-gtk2 become default -# using seamonkey gre for linux_base-f10 compat -post-extract: replace-gre -replace-gre: version-compat-check - @${ECHO_MSG} "===> GRE versions are compatible, replacing with" \ - "$$(${MAKE} -V PKGNAME -C ${.CURDIR}/../linux-seamonkey)" - cd $$(${MAKE} -V WRKSRC -C ${.CURDIR}/../linux-seamonkey); \ - ${CP} lib* dependentlibs.list ${WRKSRC} - -version-compat-check: - @${ECHO_MSG} "===> Checking GRE version is compatible with" \ - "$$(${MAKE} -V PKGNAME -C ${.CURDIR}/../linux-seamonkey)" - @ff_gre_version=$$(${AWK} -F= '/Milestone/ { print $$2 }' ${WRKSRC}/platform.ini); \ - sm_gre_version=$$(${AWK} -F= '/Milestone/ { print $$2 }' $$(${MAKE} -V WRKSRC -C ${.CURDIR}/../linux-seamonkey)/platform.ini); \ - if [ $$ff_gre_version != $$sm_gre_version ]; then \ - ${ECHO_MSG} "===> GRE versions aren't compatible, aborting"; \ - exit 1; \ - fi - .include <bsd.port.mk> diff --git a/www/linux-firefox/distinfo b/www/linux-firefox/distinfo index f5ca792100aa..1b175b553ef9 100644 --- a/www/linux-firefox/distinfo +++ b/www/linux-firefox/distinfo @@ -1,2 +1,2 @@ -SHA256 (firefox-23.0.tar.bz2) = 5a3318f5a8c0ad3d039f22fd58694211f18169ef9a7b5b9fbe122a8fab0f5685 -SIZE (firefox-23.0.tar.bz2) = 26109538 +SHA256 (firefox-24.0esr.tar.bz2) = 5c5b38252dc95df688f20b8acea952211fce61803e99a56e3bb23623cf856f5a +SIZE (firefox-24.0esr.tar.bz2) = 29023319 diff --git a/www/linux-seamonkey/Makefile b/www/linux-seamonkey/Makefile index 3bb2a0bcc02b..12691a0365f7 100644 --- a/www/linux-seamonkey/Makefile +++ b/www/linux-seamonkey/Makefile @@ -2,9 +2,9 @@ # $FreeBSD$ PORTNAME= seamonkey -PORTVERSION= 2.20 +DISTVERSION= 2.21 CATEGORIES= www -MASTER_SITES= MOZILLA/${PORTNAME}/releases/${PORTVERSION}/linux-i686/en-US +MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/linux-i686/en-US MAINTAINER= gecko@FreeBSD.org COMMENT= The open source, standards compliant web browser diff --git a/www/linux-seamonkey/Makefile.common b/www/linux-seamonkey/Makefile.common index 82f389b301a9..f08e8262ee12 100644 --- a/www/linux-seamonkey/Makefile.common +++ b/www/linux-seamonkey/Makefile.common @@ -1,14 +1,14 @@ -# New ports collection makefile for: mozilla linux binary ports -# Date created: 1 May 2006 -# Whom: Andrew Pantyukhin <infofarmer@FreeBSD.org> -# +# Created by: Andrew Pantyukhin <infofarmer@FreeBSD.org> # $FreeBSD$ -# CATEGORIES+= linux MASTER_SITES?= MOZILLA/${PORTNAME}/releases/${PORTVERSION}esr/linux-i686/en-US PKGNAMEPREFIX?= linux- +.if defined(REPLACE_GRE) +EXTRACT_DEPENDS+=${NONEXISTENT}:${.CURDIR}/../../www/linux-seamonkey:extract +.endif + NO_BUILD= yes ONLY_FOR_ARCHS= i386 amd64 APP_NAME= ${PKGBASE} @@ -38,18 +38,34 @@ post-extract: @${MKDIR} ${WRKSRC}/${APP_SUBDIR}extensions .endif -.if ${CATEGORIES:Mwww} +.if defined(REPLACE_GRE) +# XXX remove after linux_base-c6 and linux-c6-gtk2 become default +# using seamonkey gre for linux_base-f10 compat +post-extract: replace-gre +replace-gre: version-compat-check + @${ECHO_MSG} "===> GRE versions are compatible, replacing with" \ + "$$(${MAKE} -V PKGNAME -C ${.CURDIR}/../../www/linux-seamonkey)" + cd $$(${MAKE} -V WRKSRC -C ${.CURDIR}/../../www/linux-seamonkey); \ + ${CP} lib* dependentlibs.list ${WRKSRC} + +version-compat-check: + @${ECHO_MSG} "===> Checking GRE version is compatible with" \ + "$$(${MAKE} -V PKGNAME -C ${.CURDIR}/../../www/linux-seamonkey)" + @ff_gre_version=$$(${AWK} -F= '/Milestone/ { print $$2 }' ${WRKSRC}/platform.ini); \ + sm_gre_version=$$(${AWK} -F= '/Milestone/ { print $$2 }' $$(${MAKE} -V WRKSRC -C ${.CURDIR}/../../www/linux-seamonkey)/platform.ini); \ + if [ $$ff_gre_version != $$sm_gre_version ]; then \ + ${ECHO_MSG} "===> GRE versions aren't compatible, aborting"; \ + exit 1; \ + fi +.endif + .if !target(post-patch) post-patch: @${MKDIR} ${PREFS_FILE:H} - # no AFMT_FLOAT support in kernel (bug 780531) - ${ECHO} 'pref("media.use_cubeb", false);' >> ${PREFS_FILE} - # out-of-process plugins don't work with linuxulator (ports/170402) ${ECHO} 'pref("dom.ipc.plugins.enabled", false);' >> ${PREFS_FILE} .endif -.endif .if !target(do-install) do-install: diff --git a/www/linux-seamonkey/distinfo b/www/linux-seamonkey/distinfo index 50d33cd40823..a786f2181101 100644 --- a/www/linux-seamonkey/distinfo +++ b/www/linux-seamonkey/distinfo @@ -1,2 +1,2 @@ -SHA256 (seamonkey-2.20.tar.bz2) = d2ac37fbb15f1d2a4297fc12c9db2116e64f6318c3a3b63c6e05dbffdec835e7 -SIZE (seamonkey-2.20.tar.bz2) = 27791845 +SHA256 (seamonkey-2.21.tar.bz2) = ff6f361e1db0add6d4c38e5594a8b99c31f11992ae56dc2981329f66439161e2 +SIZE (seamonkey-2.21.tar.bz2) = 29490026 |