Adding isort

This commit is contained in:
Gerardo J. Puerta 2020-09-15 10:56:07 +02:00
parent 20d0f8b41c
commit 73dd5b7bae
66 changed files with 6453 additions and 1 deletions

17
dev-lang/rust/Manifest Normal file
View File

@ -0,0 +1,17 @@
AUX 0012-Ignore-broken-and-non-applicable-tests.patch 3387 BLAKE2B 6809f3d5c2cf5698d516ccd74dbbf66cc4265200f75567fa197743672895ddee418367751ac3d99a263ff3417ed89718cd3602c609d0dfac7ba2fd5ac18dce76 SHA512 0c41c238dc0b5a7130398d8c1d6bb6987c9bff704c89875830e9d6ad28d49d9b300c1fe7c982ef9be9a92ed0057f6fc04a604d189d1aec2dc2b014d6d50a7d8d
AUX 1.44.0-libressl.patch 8969 BLAKE2B 1ae707140a93fd76ec825e0e8c49f1408cda5a3b290a07c974d8ba8ba9b82e230bc2a4864cdecc744425d77ded819690da9328af2f648c636e8fd9ba3f0bb131 SHA512 81421ce6a0eb89bb51ff6a95be79159fce18be51c341f29aaf9d18e9b4aa1d3324e0c3472f72881c94a053b6dc4490c16b5ca2ac9cece0ea2d01051e3ed28a56
DIST rust-1.43.1-aarch64-unknown-linux-gnu.tar.xz 104148868 BLAKE2B ac5db9eb58c502253d001e0c93aef867bc584d045960a1d3c2caf6772a7c1f4fbad7da579d7c72b3376804f61f1332a54e9fc7099ba5f4a65f7e5435df28894a SHA512 b54fad5493344d2370bd77110f0ffb0231f41ab8aa9707e9303304957c5d9067dc83089432eb175605b78dc771dfcf7abfcce63d7fecdbb759dd224c17d12da0
DIST rust-1.43.1-arm-unknown-linux-gnueabi.tar.xz 104779424 BLAKE2B 63c05d7403970bd4a237a6b690bcb8e78f310816a953af43da8d258a74102cd560c8674656c2036b1f391dc964ba6d2be2736bc10686c2365cc332b5c76a5502 SHA512 ea2eae6da6c757c07cf9631c706365c743c58f28b514444763ea70fed4c8fcefc5c36d55136afffc2f5e0d25e9b1fdf3243cb9def7e0f57e37b5a4783d44a61b
DIST rust-1.43.1-arm-unknown-linux-gnueabihf.tar.xz 103569032 BLAKE2B fc94eeb777a72fcb1b2821b5d10bb9eaca535d76e8caee3d06aed989107460e00146516c5be5714e9739c49d5170809fc132624f9a035afba146db883346c57a SHA512 1c523dafceb29f916a192261f673048c8f781453bcee237e0e333d694d7d7b71735544906f2edea9e0a8a48fc66a478645ae8ae865a171f4f9a94f0d8e6800c1
DIST rust-1.43.1-armv7-unknown-linux-gnueabihf.tar.xz 108430484 BLAKE2B a3c57930b4e7096f409a2129abef60fbdfadad59f29e428296f3151187eac286e82bdb2d0ca879db87563cdc707dbcabbb5e9048b54303653209b98268ab9cf3 SHA512 0812b3229dd47f1b5cadb49020e68d28b4267ac0489d0c2e448f21e3b0b6519bbf216ac9b20b747e035033842a6eb3b13a98706f2eddca2c088d9396dcb2c21e
DIST rust-1.43.1-i686-unknown-linux-gnu.tar.xz 125731548 BLAKE2B 3a3278e409a69f3e8195bab39871b5594571c1c8f2ea2a5f8c9786a739f709381c13c1b2a3209ef62cb7c5b8aec47dd769cf3e658ed57e5037522759fa1a244e SHA512 c7423bccfb15f3df6043ec1d81203c9db9b3229dedd347cab09d3cc3b183f53aa0707f59964efccd63418e1c6ad21e7ee7dcc1495eda8c4ecb55ee8e6b3ac034
DIST rust-1.43.1-mips-unknown-linux-gnu.tar.xz 95924004 BLAKE2B fc1da442dfaa535b81029ed40a85cd0d55766d84c34f0d97bf36376c44e44fd5305b429854b9c964515e10f83a06b36a6ad9daae5714e142491d99e58b1d0a07 SHA512 fe3b11e586d506dc917f0e04009a994a16575ac534a2716b49e66a0344060a26ee6c7e912b6cd7b5f010a97f59604515f899bc1b6c38f0ea86e8cecc20152dd6
DIST rust-1.43.1-mips64-unknown-linux-gnuabi64.tar.xz 100980364 BLAKE2B 12439df511c3ad43ed24cb0e648a212314a747e203680929ed3e136505eb29af3dcb007162aaa337fbac56a9b1b8f1c405217756ec712c400bc0f4d9aefd64b8 SHA512 6c0d7f172e76e21596d305df7b1a38fde66a946972765de92ccc139cf8f2e8755864b7bd94328b9639023df6be51af08428f41ed78de4ba8d43620673b9f7ecb
DIST rust-1.43.1-mipsel-unknown-linux-gnu.tar.xz 98512180 BLAKE2B b5e8cdf2b8d65cc39bfb325afda9ae75a360967a4f6f413f3b01257bc34130fcc873dc128a4e48bbcad774d69b9a4aae0d4a8182819a4411809af6a0c636b403 SHA512 cb01eac951384fbf2ead5b7d4acbf92485de0bbaa7e3a272a46a8934066d720d248a19a67ffc88b7b239c15478e8691b94302807dc7652e042c9b8edded6da12
DIST rust-1.43.1-powerpc-unknown-linux-gnu.tar.xz 105007576 BLAKE2B 8392f36025ca91742fad9755c945b42e616272cc97c33087090c6462a5ba9f1de82a0167ed53568b5cdd4c593464ed2858811fd0c9ae8559a1cba37be6db5305 SHA512 d10da49f19b79f843ae369bdff3e5040b93934dc50dac3c09bd346c24dfa7394364da647c08206d5cef4c853b7e59d1062c16e6eeba0ffc01736eeba63dd3eb6
DIST rust-1.43.1-powerpc64-unknown-linux-gnu.tar.xz 107189572 BLAKE2B ba561d45b8f9a7f446b17313d92db31b30a07d657dbc59667076ee216d66e4b2ec3811821bc6d1fde6bba811d2c46473c6e3bc06162fe4e1ffe040ad23542742 SHA512 695591807892c8f08801cd145ebc6a91ee4222000210baaaa0d6c8acf1ac6a96f4bf2566871def04d15a9965b7e3ea4287e37d7851fb14010518694d8ede75e6
DIST rust-1.43.1-powerpc64le-unknown-linux-gnu.tar.xz 112921244 BLAKE2B 9fa67664fc90c1f6095d98b756cae747be2ad863b894b393d4e9ecc3a1bd527b0d26f1bae2988981b98d4d582d2b60a18c62b3db3b5fa017439e034f576e7582 SHA512 da447ec44ebf998290a73420437c8d434a6c196cfe1c3331a9adf40abf7acd97a231e352a8626bbfa961da8e0c4f450aa59d573254257f72cce4068eeb8112a1
DIST rust-1.43.1-s390x-unknown-linux-gnu.tar.xz 119547480 BLAKE2B 8ce0d64e2d47f23cb927f3ea3a0f469e3cafc191ac1d47e580bce6cf0b35887484542f7d1b857d9bace5f696a072adb7e17e8c5f64af9bf1fbcc305707a15f9f SHA512 f087e50a91b1cc4a12bf15aea1cefbda9b89518febcecc0d56ea7d0a6a682be06cff7777d0a0b4812e96f3fb3295e7799bf200c1599c88cb7083a78d5002f14a
DIST rust-1.43.1-x86_64-unknown-linux-gnu.tar.xz 112817212 BLAKE2B c6153889d9872ed5a60bfc43bc8c98e71654fffdd79ce775c3eb4376ed4714c5532e6aaecb769e447f3ae0bb7a11aed75754a5e879404742cb0813080dcf67eb SHA512 2fc573ca2826d9f03044f746ae4d7715b4e31b9ac933289607aa3449a538bb4dfd519540576a1d0d286c0d754a7ba6ce38beef6aded1090d3af3091b6ba2a9ee
DIST rustc-1.44.1-src.tar.xz 94756856 BLAKE2B 60f536c3ba0fa1fec4b6333ee57809ee5226090ad5041c14a136b4356ff3b898062e06c3fe54effe873e27931ac8fcb902cd48a38615a8de7eebc6ecb3bdc2bd SHA512 1c17002edae844a710db9b144c17171416330dc565343c65af8a6e112fb61555e2025bb4cf33cac1229d7df689e6ff8858b91ae00552400ccacafaf1de11849b
EBUILD rust-1.44.1.ebuild 14912 BLAKE2B 107391d3f6cbd0974c06398f7b9fec061cca9dd24ffd72ca903d5b9758edc630070b841a5973b0688ea17dc5afe95141874734bd365fa6d9fb283b97df7bf27e SHA512 78456cbe534f7735d3b2400f52ad07cd1a1dd3db5ae8c834d62f8744e4b4f5205d04b83d462d0a25a82f53158c19c7f625792d8c2cfbbdb63bc41f373b2ebf8f

View File

@ -0,0 +1,89 @@
From 1879d1d1a284bf51c752e47db284ce22701ed5d0 Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Sun, 16 Sep 2018 16:38:48 +0000
Subject: [PATCH 12/15] Ignore broken and non-applicable tests
c-link-to-rust-va-list-fn: unstable feature, broken on aarch64, #56475
env-funky-keys: can't handle LD_PRELOAD (e.g. sandbox)
long-linker-command-lines: takes >10 minutes to run (but still passes)
simd-intrinsic-generic-bitmask.rs: broken on BE, #59356
sparc-struct-abi: no sparc target
sysroot-crates-are-unstable: can't run rustc without RPATH
---
src/test/codegen/sparc-struct-abi.rs | 1 +
src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile | 2 ++
src/test/run-make-fulldeps/long-linker-command-lines/Makefile | 2 ++
src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile | 2 ++
src/test/ui/env-funky-keys.rs | 1 +
src/test/ui/simd/simd-intrinsic-generic-bitmask.rs | 2 ++
6 files changed, 10 insertions(+)
diff --git a/src/test/codegen/sparc-struct-abi.rs b/src/test/codegen/sparc-struct-abi.rs
index 78e5b14a212..6f93e93286b 100644
--- a/src/test/codegen/sparc-struct-abi.rs
+++ b/src/test/codegen/sparc-struct-abi.rs
@@ -4,6 +4,7 @@
// only-sparc64
// compile-flags: -O --target=sparc64-unknown-linux-gnu --crate-type=rlib
+// ignore-test
#![feature(no_core, lang_items)]
#![no_core]
diff --git a/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile b/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile
index f124ca2ab61..363b18f0985 100644
--- a/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile
+++ b/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile
@@ -1,3 +1,5 @@
+# ignore-aarch64
+
-include ../tools.mk
all:
diff --git a/src/test/run-make-fulldeps/long-linker-command-lines/Makefile b/src/test/run-make-fulldeps/long-linker-command-lines/Makefile
index 5876fbc94bc..5f167ece1a2 100644
--- a/src/test/run-make-fulldeps/long-linker-command-lines/Makefile
+++ b/src/test/run-make-fulldeps/long-linker-command-lines/Makefile
@@ -1,3 +1,5 @@
+# ignore-test
+
-include ../tools.mk
all:
diff --git a/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile b/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile
index 9e770706857..6d92ec5cec8 100644
--- a/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile
+++ b/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile
@@ -1,1 +1,3 @@
+# ignore-test
+
all:
python2.7 test.py
diff --git a/src/test/ui/env-funky-keys.rs b/src/test/ui/env-funky-keys.rs
index c5c824ac58d..f3fe047a79c 100644
--- a/src/test/ui/env-funky-keys.rs
+++ b/src/test/ui/env-funky-keys.rs
@@ -1,6 +1,7 @@
// run-pass
// Ignore this test on Android, because it segfaults there.
+// ignore-test
// ignore-android
// ignore-windows
// ignore-cloudabi no execve
diff --git a/src/test/ui/simd/simd-intrinsic-generic-bitmask.rs b/src/test/ui/simd/simd-intrinsic-generic-bitmask.rs
index b28f742a92e..3ee4ccce731 100644
--- a/src/test/ui/simd/simd-intrinsic-generic-bitmask.rs
+++ b/src/test/ui/simd/simd-intrinsic-generic-bitmask.rs
@@ -2,6 +2,8 @@
#![allow(non_camel_case_types)]
// ignore-emscripten
+// ignore-powerpc
+// ignore-powerpc64
// Test that the simd_bitmask intrinsic produces correct results.
--
2.24.1

View File

@ -0,0 +1,45 @@
From 3d1be8d8981a0f847e935312a78bd2ba5129f90e Mon Sep 17 00:00:00 2001
From: Stefan Strogin <steils@gentoo.org>
Date: Fri, 5 Jun 2020 06:37:06 +0300
Subject: [PATCH] Support LibreSSL 3.2.x
Signed-off-by: Stefan Strogin <steils@gentoo.org>
---
vendor/openssl-sys/.cargo-checksum.json | 2 +-
vendor/openssl-sys/build/main.rs | 5 ++++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/vendor/openssl-sys/.cargo-checksum.json b/vendor/openssl-sys/.cargo-checksum.json
index 7f63bae3d..76025fe7f 100644
--- a/vendor/openssl-sys/.cargo-checksum.json
+++ b/vendor/openssl-sys/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"CHANGELOG.md":"ffd4bbaeec2740afbcab5a6828f9e65523aaff8638e3d5d13c93a3241fb8ed2f","Cargo.toml":"3eb2f65dda1aa74c8b47814878b56bf4999b4d01bc5864fc9f3c0ece9a5694a7","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"949fb3913ec7f94229242978dfeee5e19261b6d7506fc91dcd153bb0d2a84895","build/cfgs.rs":"56cee620b082d87b1c9cdeba7c6c022e6aa7d3a99e2b66ec18a534ceaf2e2bb7","build/expando.c":"c4fa8a4424b2321f1857edfc5ce1ac1f03eda54440367d3142310c0eb5553004","build/find_normal.rs":"0a2dc417eace7fc72c27b9046ebaf53c75e418b27baa877434925a81fe6c23ed","build/find_vendored.rs":"7bf0e59c5646d72ee5a4392ad970fdf5c20288ddaf54dd86a8caff49583b38f5","build/main.rs":"6e800f4dc5c2cbbd54d1b1b995a2915ff941e17e11300d7091858210d3ce788d","src/aes.rs":"822bf666db351fe6ef9607c918081d6ad378fc1cedb05290bb746f86980c6088","src/asn1.rs":"254025cb408dbeff73bee6d06325acba9042cb11db30bdad04eedfb789be84b3","src/bio.rs":"1f38a3ec4029511fecd7a51548965a265f3e7772891b5514e22bfb1d061b3a90","src/bn.rs":"c71b9c79f704a94a889d27bf75e7e5b1f9f10b0df0aeb485aef509cf05d7467f","src/cms.rs":"f21a403fea95e7b7efe0539a429831cfa51c8818adb79c7ebf73ae2a6f2dc87e","src/conf.rs":"511e008c18039f54d856d70b80009426fc7f4ce34fe4304e2c58ebf465031de0","src/crypto.rs":"a1279719ade9704be3d9af55ff679abbe918d525f332ca15810146d45e9080cf","src/dh.rs":"7cc334e86d16b3eae165dfa3a6c8e488bc0fe590c17beda38893d2e9d784d5a6","src/dsa.rs":"ae79baf231681900ea76304285b3ffacf5298c90b8c04d371269cf4adbb5b9fa","src/dtls1.rs":"45e1dbf94a42d587fd948d553dc30187aa6aa2b5b82d554cf725ff36df768aa0","src/ec.rs":"81372dfe497db2fc90457a470a3b8ccb249828b3ce2bf4fd2da8ec42afd6a6b3","src/err.rs":"f6641be5df397086a9db80667e191fb1d92972c29151e617df86672c1a16d3ad","src/evp.rs":"5afdfc0ab87259b13a55375c178ae3af934b3281240aa24ca27afac7acccea42","src/hmac.rs":"fa3976d94a1383f300bdec228270afb8b47c97bb019d727c7d59ba783be3c42e","src/lib.rs":"c464eca1beb33844718044946f6ffb1bc27356d65b5b70ebcd2d4082520e7235","src/macros.rs":"638fb9098f6024e82b331eeee50c64cefdb58456dba28ee42560be655a0c2bf6","src/obj_mac.rs":"7203d356f7654c5805600b823eccf8e1d9d9cbce9a01859938612a3f0aae4cdc","src/object.rs":"7539eb2164c3fe2162a339ef5b45f1c835010a1522307803815779a01825eed7","src/ocsp.rs":"1db59566d2f072f7ae981f0c07e1604fcdf60e66845afe0689d588f8e4272115","src/ossl_typ.rs":"13bf789702e37dc4b9f74f3a0e61ae6e5602e4dedf45c05d884c41257b32d76c","src/pem.rs":"4427060f543ae9e6745d9a8f7f76cb72acfb06afacaf396b011afff6a221714b","src/pkcs12.rs":"93aab2820008ad90dc346a7dcc02f9201d94bff0bb7d1d71031c097850287c50","src/pkcs7.rs":"5370c8d4bfbf1502fa33aff635cb730e7c87814580f1df9bdb1412a492377813","src/rand.rs":"469601b4fbb56d4dbf5cf5d7bb8483e3bde411edea18601e7d1ed6ef27180fd3","src/rsa.rs":"0e8c1f0bc37620a9208175542143bfd411ae88188974d2d5b37a2b8b77d0e2c8","src/safestack.rs":"6c39e28565d34efad707d77561d4caa99e3f028fcac3a2ef6fd403a78de1190c","src/sha.rs":"1a6b028a63654d2419417a9a8af790cd22409a4643682a0686ecdb9441264eba","src/srtp.rs":"306047f3f31828fe7d15de154b375f071ae07012a94c0b5c909f5fe57962a11b","src/ssl.rs":"34ad7d5413d77f9052815cfd7344d5a21868b5ae0d38dadd6f4ed3b5c4b33760","src/ssl3.rs":"9336c816e00847d552dea22587d4ac72ff3cbd469fa5ff750423a19ea11e68eb","src/stack.rs":"1a509907283e5a2bf88cf193ce607f49ce7d2d95547c2ce2abc0fd4567aad334","src/tls1.rs":"60ca3dea1bbfda645bde563b4a878dac129c3f760e3ad572381000fc7a8ef522","src/x509.rs":"20e221731587221aab00aef21b4e4bebb7635603d265d424f3dd3c60d4c511e2","src/x509_vfy.rs":"5609f6300ab37a4d4755c81f7af1e6bb93a2f1a6f333c6e42f1e73ebf83ddc05","src/x509v3.rs":"30c58ce7d80670cc597d041e0f59862c1100e38743fc9dde2aec6dc811a4a558"},"package":"1024c0a59774200a555087a6da3f253a9095a5f344e353b212ac4c8b8e450986"}
\ No newline at end of file
+{"files":{"CHANGELOG.md":"ffd4bbaeec2740afbcab5a6828f9e65523aaff8638e3d5d13c93a3241fb8ed2f","Cargo.toml":"3eb2f65dda1aa74c8b47814878b56bf4999b4d01bc5864fc9f3c0ece9a5694a7","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"949fb3913ec7f94229242978dfeee5e19261b6d7506fc91dcd153bb0d2a84895","build/cfgs.rs":"56cee620b082d87b1c9cdeba7c6c022e6aa7d3a99e2b66ec18a534ceaf2e2bb7","build/expando.c":"c4fa8a4424b2321f1857edfc5ce1ac1f03eda54440367d3142310c0eb5553004","build/find_normal.rs":"0a2dc417eace7fc72c27b9046ebaf53c75e418b27baa877434925a81fe6c23ed","build/find_vendored.rs":"7bf0e59c5646d72ee5a4392ad970fdf5c20288ddaf54dd86a8caff49583b38f5","build/main.rs":"049f7020b6a1f8bb831cb750054fbc0f408e048e34c0817644696ec9d0cfb06e","src/aes.rs":"822bf666db351fe6ef9607c918081d6ad378fc1cedb05290bb746f86980c6088","src/asn1.rs":"254025cb408dbeff73bee6d06325acba9042cb11db30bdad04eedfb789be84b3","src/bio.rs":"1f38a3ec4029511fecd7a51548965a265f3e7772891b5514e22bfb1d061b3a90","src/bn.rs":"c71b9c79f704a94a889d27bf75e7e5b1f9f10b0df0aeb485aef509cf05d7467f","src/cms.rs":"f21a403fea95e7b7efe0539a429831cfa51c8818adb79c7ebf73ae2a6f2dc87e","src/conf.rs":"511e008c18039f54d856d70b80009426fc7f4ce34fe4304e2c58ebf465031de0","src/crypto.rs":"a1279719ade9704be3d9af55ff679abbe918d525f332ca15810146d45e9080cf","src/dh.rs":"7cc334e86d16b3eae165dfa3a6c8e488bc0fe590c17beda38893d2e9d784d5a6","src/dsa.rs":"ae79baf231681900ea76304285b3ffacf5298c90b8c04d371269cf4adbb5b9fa","src/dtls1.rs":"45e1dbf94a42d587fd948d553dc30187aa6aa2b5b82d554cf725ff36df768aa0","src/ec.rs":"81372dfe497db2fc90457a470a3b8ccb249828b3ce2bf4fd2da8ec42afd6a6b3","src/err.rs":"f6641be5df397086a9db80667e191fb1d92972c29151e617df86672c1a16d3ad","src/evp.rs":"5afdfc0ab87259b13a55375c178ae3af934b3281240aa24ca27afac7acccea42","src/hmac.rs":"fa3976d94a1383f300bdec228270afb8b47c97bb019d727c7d59ba783be3c42e","src/lib.rs":"c464eca1beb33844718044946f6ffb1bc27356d65b5b70ebcd2d4082520e7235","src/macros.rs":"638fb9098f6024e82b331eeee50c64cefdb58456dba28ee42560be655a0c2bf6","src/obj_mac.rs":"7203d356f7654c5805600b823eccf8e1d9d9cbce9a01859938612a3f0aae4cdc","src/object.rs":"7539eb2164c3fe2162a339ef5b45f1c835010a1522307803815779a01825eed7","src/ocsp.rs":"1db59566d2f072f7ae981f0c07e1604fcdf60e66845afe0689d588f8e4272115","src/ossl_typ.rs":"13bf789702e37dc4b9f74f3a0e61ae6e5602e4dedf45c05d884c41257b32d76c","src/pem.rs":"4427060f543ae9e6745d9a8f7f76cb72acfb06afacaf396b011afff6a221714b","src/pkcs12.rs":"93aab2820008ad90dc346a7dcc02f9201d94bff0bb7d1d71031c097850287c50","src/pkcs7.rs":"5370c8d4bfbf1502fa33aff635cb730e7c87814580f1df9bdb1412a492377813","src/rand.rs":"469601b4fbb56d4dbf5cf5d7bb8483e3bde411edea18601e7d1ed6ef27180fd3","src/rsa.rs":"0e8c1f0bc37620a9208175542143bfd411ae88188974d2d5b37a2b8b77d0e2c8","src/safestack.rs":"6c39e28565d34efad707d77561d4caa99e3f028fcac3a2ef6fd403a78de1190c","src/sha.rs":"1a6b028a63654d2419417a9a8af790cd22409a4643682a0686ecdb9441264eba","src/srtp.rs":"306047f3f31828fe7d15de154b375f071ae07012a94c0b5c909f5fe57962a11b","src/ssl.rs":"34ad7d5413d77f9052815cfd7344d5a21868b5ae0d38dadd6f4ed3b5c4b33760","src/ssl3.rs":"9336c816e00847d552dea22587d4ac72ff3cbd469fa5ff750423a19ea11e68eb","src/stack.rs":"1a509907283e5a2bf88cf193ce607f49ce7d2d95547c2ce2abc0fd4567aad334","src/tls1.rs":"60ca3dea1bbfda645bde563b4a878dac129c3f760e3ad572381000fc7a8ef522","src/x509.rs":"20e221731587221aab00aef21b4e4bebb7635603d265d424f3dd3c60d4c511e2","src/x509_vfy.rs":"5609f6300ab37a4d4755c81f7af1e6bb93a2f1a6f333c6e42f1e73ebf83ddc05","src/x509v3.rs":"30c58ce7d80670cc597d041e0f59862c1100e38743fc9dde2aec6dc811a4a558"},"package":"1024c0a59774200a555087a6da3f253a9095a5f344e353b212ac4c8b8e450986"}
diff --git a/vendor/openssl-sys/build/main.rs b/vendor/openssl-sys/build/main.rs
index 162e11a66..6754ddeef 100644
--- a/vendor/openssl-sys/build/main.rs
+++ b/vendor/openssl-sys/build/main.rs
@@ -204,6 +204,9 @@ See rust-openssl README for more information:
(3, 0, 0) => ('3', '0', '0'),
(3, 0, 1) => ('3', '0', '1'),
(3, 0, _) => ('3', '0', 'x'),
+ (3, 1, 0) => ('3', '1', '0'),
+ (3, 1, _) => ('3', '1', 'x'),
+ (3, 2, _) => ('3', '2', 'x'),
_ => version_error(),
};
@@ -244,7 +247,7 @@ fn version_error() -> ! {
"
This crate is only compatible with OpenSSL 1.0.1 through 1.1.1, or LibreSSL 2.5
-through 3.0.x, but a different version of OpenSSL was found. The build is now aborting
+through 3.2.x, but a different version of OpenSSL was found. The build is now aborting
due to this version mismatch.
"
--
2.27.0

View File

@ -0,0 +1,502 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{6,7,8} )
inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing multilib-build python-any-r1 rust-toolchain toolchain-funcs
if [[ ${PV} = *beta* ]]; then
betaver=${PV//*beta}
BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
MY_P="rustc-beta"
SLOT="beta/${PV}"
SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz"
else
ABI_VER="$(ver_cut 1-2)"
SLOT="stable/${ABI_VER}"
MY_P="rustc-${PV}"
SRC="${MY_P}-src.tar.xz"
KEYWORDS="amd64 arm arm64 ppc64 x86"
fi
RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).1"
DESCRIPTION="Systems programming language from Mozilla"
HOMEPAGE="https://www.rust-lang.org/"
SRC_URI="
https://static.rust-lang.org/dist/${SRC} -> rustc-${PV}-src.tar.xz
!system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
"
ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430
NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore )
ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?}
LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
IUSE="clippy cpu_flags_x86_sse2 debug doc libressl miri nightly parallel-compiler rls rustfmt system-bootstrap system-llvm wasm ${ALL_LLVM_TARGETS[*]}"
# Please keep the LLVM dependency block separate. Since LLVM is slotted,
# we need to *really* make sure we're not pulling more than one slot
# simultaneously.
# How to use it:
# 1. List all the working slots (with min versions) in ||, newest first.
# 2. Update the := to specify *max* version, e.g. < 11.
# 3. Specify LLVM_MAX_SLOT, e.g. 10.
LLVM_DEPEND="
|| (
sys-devel/llvm:10[${LLVM_TARGET_USEDEPS// /,}]
sys-devel/llvm:9[${LLVM_TARGET_USEDEPS// /,}]
)
<sys-devel/llvm-11:=
wasm? ( sys-devel/lld )
"
LLVM_MAX_SLOT=10
BOOTSTRAP_DEPEND="|| ( >=dev-lang/rust-1.$(($(ver_cut 2) - 1)) >=dev-lang/rust-bin-1.$(($(ver_cut 2) - 1)) )"
# libgit2 should be at least same as bundled into libgit-sys #707746
COMMON_DEPEND="
>=dev-libs/libgit2-0.99:=
net-libs/libssh2:=
net-libs/http-parser:=
net-misc/curl:=[ssl]
sys-libs/zlib:=
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl:0= )
elibc_musl? ( sys-libs/libunwind )
system-llvm? (
${LLVM_DEPEND}
)
"
DEPEND="${COMMON_DEPEND}
${PYTHON_DEPS}
|| (
>=sys-devel/gcc-4.7
>=sys-devel/clang-3.5
)
system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
!system-llvm? (
dev-util/cmake
dev-util/ninja
)
"
RDEPEND="${COMMON_DEPEND}
>=app-eselect/eselect-rust-20190311
"
REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
miri? ( nightly )
parallel-compiler? ( nightly )
wasm? ( llvm_targets_WebAssembly )
x86? ( cpu_flags_x86_sse2 )
"
QA_FLAGS_IGNORED="
usr/bin/.*-${PV}
usr/lib.*/lib.*.so
usr/lib/rustlib/.*/codegen-backends/librustc_codegen_llvm-llvm.so
usr/lib/rustlib/.*/lib/lib.*.so
"
QA_SONAME="
usr/lib.*/lib.*.so
usr/lib.*/librustc_macros.*.s
"
# tests need a bit more work, currently they are causing multiple
# re-compilations and somewhat fragile.
RESTRICT="test"
PATCHES=(
"${FILESDIR}"/0012-Ignore-broken-and-non-applicable-tests.patch
"${FILESDIR}"/1.44.0-libressl.patch
)
S="${WORKDIR}/${MY_P}-src"
toml_usex() {
usex "$1" true false
}
pre_build_checks() {
CHECKREQS_DISK_BUILD="9G"
eshopts_push -s extglob
if is-flagq '-g?(gdb)?([1-9])'; then
CHECKREQS_DISK_BUILD="15G"
fi
eshopts_pop
check-reqs_pkg_setup
}
pkg_pretend() {
pre_build_checks
}
pkg_setup() {
pre_build_checks
python-any-r1_pkg_setup
# required to link agains system libs, otherwise
# crates use bundled sources and compile own static version
export LIBGIT2_SYS_USE_PKG_CONFIG=1
export LIBSSH2_SYS_USE_PKG_CONFIG=1
export PKG_CONFIG_ALLOW_CROSS=1
if use system-llvm; then
llvm_pkg_setup
local llvm_config="$(get_llvm_prefix "$LLVM_MAX_SLOT")/bin/llvm-config"
export LLVM_LINK_SHARED=1
export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
fi
}
src_prepare() {
if ! use system-bootstrap; then
local rust_stage0_root="${WORKDIR}"/rust-stage0
local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)"
"${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
--destdir="${rust_stage0_root}" --prefix=/ || die
fi
default
}
src_configure() {
local rust_target="" rust_targets="" arch_cflags
# Collect rust target names to compile standard libs for all ABIs.
for v in $(multilib_get_enabled_abi_pairs); do
rust_targets="${rust_targets},\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
done
if use wasm; then
rust_targets="${rust_targets},\"wasm32-unknown-unknown\""
if use system-llvm; then
# un-hardcode rust-lld linker for this target
# https://bugs.gentoo.org/715348
sed -i '/linker:/ s/rust-lld/wasm-ld/' src/librustc_target/spec/wasm32_base.rs || die
fi
fi
rust_targets="${rust_targets#,}"
local tools="\"cargo\","
if use clippy; then
tools="\"clippy\",$tools"
fi
if use miri; then
tools="\"miri\",$tools"
fi
if use rls; then
tools="\"rls\",\"analysis\",\"src\",$tools"
fi
if use rustfmt; then
tools="\"rustfmt\",$tools"
fi
local rust_stage0_root
if use system-bootstrap; then
rust_stage0_root="$(rustc --print sysroot)"
else
rust_stage0_root="${WORKDIR}"/rust-stage0
fi
rust_target="$(rust_abi)"
cat <<- EOF > "${S}"/config.toml
[llvm]
optimize = $(toml_usex !debug)
release-debuginfo = $(toml_usex debug)
assertions = $(toml_usex debug)
ninja = true
targets = "${LLVM_TARGETS// /;}"
experimental-targets = ""
link-shared = $(toml_usex system-llvm)
[build]
build = "${rust_target}"
host = ["${rust_target}"]
target = [${rust_targets}]
cargo = "${rust_stage0_root}/bin/cargo"
rustc = "${rust_stage0_root}/bin/rustc"
docs = $(toml_usex doc)
compiler-docs = $(toml_usex doc)
submodules = false
python = "${EPYTHON}"
locked-deps = true
vendor = true
extended = true
tools = [${tools}]
verbose = 2
sanitizers = false
profiler = false
cargo-native-static = false
[install]
prefix = "${EPREFIX}/usr"
libdir = "lib"
docdir = "share/doc/${PF}"
mandir = "share/man"
[rust]
optimize = true
debug = $(toml_usex debug)
debug-assertions = $(toml_usex debug)
debuginfo-level-rustc = 0
backtrace = true
incremental = false
default-linker = "$(tc-getCC)"
parallel-compiler = $(toml_usex parallel-compiler)
channel = "$(usex nightly nightly stable)"
rpath = false
verbose-tests = true
optimize-tests = $(toml_usex !debug)
codegen-tests = true
dist-src = false
lld = $(usex system-llvm false $(toml_usex wasm))
backtrace-on-ice = true
jemalloc = false
[dist]
src-tarball = false
EOF
for v in $(multilib_get_enabled_abi_pairs); do
rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
arch_cflags="$(get_abi_CFLAGS ${v##*.})"
cat <<- EOF >> "${S}"/config.env
CFLAGS_${rust_target}=${arch_cflags}
EOF
cat <<- EOF >> "${S}"/config.toml
[target.${rust_target}]
cc = "$(tc-getBUILD_CC)"
cxx = "$(tc-getBUILD_CXX)"
linker = "$(tc-getCC)"
ar = "$(tc-getAR)"
EOF
# librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
if use elibc_musl; then
cat <<- EOF >> "${S}"/config.toml
crt-static = false
EOF
fi
if use system-llvm; then
cat <<- EOF >> "${S}"/config.toml
llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
EOF
fi
done
if use wasm; then
cat <<- EOF >> "${S}"/config.toml
[target.wasm32-unknown-unknown]
linker = "$(usex system-llvm lld rust-lld)"
EOF
fi
if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then #whitespace intentionally shifted below
# experimental cross support
# discussion: https://bugs.gentoo.org/679878
# TODO: c*flags, clang, system-llvm, cargo.eclass target support
# it would be much better if we could split out stdlib
# complilation to separate ebuild and abuse CATEGORY to
# just install to /usr/lib/rustlib/<target>
# extra targets defined as a bash array
# spec format: <LLVM target>:<rust-target>:<CTARGET>
# best place would be /etc/portage/env/dev-lang/rust
# Example:
# RUST_CROSS_TARGETS=(
# "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
# )
# no extra hand holding is done, no target transformations, all
# values are passed as-is with just basic checks, so it's up to user to supply correct values
# valid rust targets can be obtained with
# rustc --print target-list
# matching cross toolchain has to be installed
# matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
# only gcc toolchains installed with crossdev are checked for now.
# BUG: we can't pass host flags to cross compiler, so just filter for now
# BUG: this should be more fine-grained.
filter-flags '-mcpu=*' '-march=*' '-mtune=*'
local cross_target_spec
for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
# extracts first element form <LLVM target>:<rust-target>:<CTARGET>
local cross_llvm_target="${cross_target_spec%%:*}"
# extracts toolchain triples, <rust-target>:<CTARGET>
local cross_triples="${cross_target_spec#*:}"
# extracts first element after before : separator
local cross_rust_target="${cross_triples%%:*}"
# extracts last element after : separator
local cross_toolchain="${cross_triples##*:}"
use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
cat <<- EOF >> "${S}"/config.toml
[target.${cross_rust_target}]
cc = "${cross_toolchain}-gcc"
cxx = "${cross_toolchain}-g++"
linker = "${cross_toolchain}-gcc"
ar = "${cross_toolchain}-ar"
EOF
if use system-llvm; then
cat <<- EOF >> "${S}"/config.toml
llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
EOF
fi
# append cross target to "normal" target list
# example 'target = ["powerpc64le-unknown-linux-gnu"]'
# becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
rust_targets="${rust_targets},\"${cross_rust_target}\""
sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
ewarn
ewarn "Enabled ${rust_target} rust target"
ewarn "Using ${cross_toolchain} cross toolchain"
ewarn
if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
ewarn "'sys-devel/binutils[multitarget]' is not installed"
ewarn "'strip' will be unable to strip cross libraries"
ewarn "cross targets will be installed with full debug information"
ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
ewarn
ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
ewarn
fi
done
fi # I_KNOW_WHAT_I_AM_DOING_CROSS
einfo "Rust configured with the following settings:"
cat "${S}"/config.toml || die
}
src_compile() {
env $(cat "${S}"/config.env) RUST_BACKTRACE=1\
"${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
}
src_test() {
env $(cat "${S}"/config.env) RUST_BACKTRACE=1\
"${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml -j$(makeopts_jobs) --no-doc --no-fail-fast \
src/test/codegen \
src/test/codegen-units \
src/test/compile-fail \
src/test/incremental \
src/test/mir-opt \
src/test/pretty \
src/test/run-fail \
src/test/run-make \
src/test/run-make-fulldeps \
src/test/ui \
src/test/ui-fulldeps || die
}
src_install() {
env $(cat "${S}"/config.env) DESTDIR="${D}" \
"${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml || die
# bug #689562, #689160
rm "${D}/etc/bash_completion.d/cargo" || die
rmdir "${D}"/etc{/bash_completion.d,} || die
dobashcomp build/tmp/dist/cargo-image/etc/bash_completion.d/cargo
mv "${ED}/usr/bin/rustc" "${ED}/usr/bin/rustc-${PV}" || die
mv "${ED}/usr/bin/rustdoc" "${ED}/usr/bin/rustdoc-${PV}" || die
mv "${ED}/usr/bin/rust-gdb" "${ED}/usr/bin/rust-gdb-${PV}" || die
mv "${ED}/usr/bin/rust-gdbgui" "${ED}/usr/bin/rust-gdbgui-${PV}" || die
mv "${ED}/usr/bin/rust-lldb" "${ED}/usr/bin/rust-lldb-${PV}" || die
mv "${ED}/usr/bin/cargo" "${ED}/usr/bin/cargo-${PV}" || die
if use clippy; then
mv "${ED}/usr/bin/clippy-driver" "${ED}/usr/bin/clippy-driver-${PV}" || die
mv "${ED}/usr/bin/cargo-clippy" "${ED}/usr/bin/cargo-clippy-${PV}" || die
fi
if use miri; then
mv "${ED}/usr/bin/miri" "${ED}/usr/bin/miri-${PV}" || die
mv "${ED}/usr/bin/cargo-miri" "${ED}/usr/bin/cargo-miri-${PV}" || die
fi
if use rls; then
mv "${ED}/usr/bin/rls" "${ED}/usr/bin/rls-${PV}" || die
fi
if use rustfmt; then
mv "${ED}/usr/bin/rustfmt" "${ED}/usr/bin/rustfmt-${PV}" || die
mv "${ED}/usr/bin/cargo-fmt" "${ED}/usr/bin/cargo-fmt-${PV}" || die
fi
# Move public shared libs to abi specific libdir
# Private and target specific libs MUST stay in /usr/lib/rustlib/${rust_target}/lib
if [[ $(get_libdir) != lib ]]; then
dodir /usr/$(get_libdir)
mv "${ED}/usr/lib"/*.so "${ED}/usr/$(get_libdir)/" || die
fi
dodoc COPYRIGHT
rm "${ED}/usr/share/doc/${P}"/*.old || die
rm "${ED}/usr/share/doc/${P}/LICENSE-APACHE" || die
rm "${ED}/usr/share/doc/${P}/LICENSE-MIT" || die
# note: eselect-rust adds EROOT to all paths below
cat <<-EOF > "${T}/provider-${P}"
/usr/bin/cargo
/usr/bin/rustdoc
/usr/bin/rust-gdb
/usr/bin/rust-gdbgui
/usr/bin/rust-lldb
EOF
if use clippy; then
echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
fi
if use miri; then
echo /usr/bin/miri >> "${T}/provider-${P}"
echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
fi
if use rls; then
echo /usr/bin/rls >> "${T}/provider-${P}"
fi
if use rustfmt; then
echo /usr/bin/rustfmt >> "${T}/provider-${P}"
echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
fi
insinto /etc/env.d/rust
doins "${T}/provider-${P}"
}
pkg_postinst() {
eselect rust update --if-unset
elog "Rust installs a helper script for calling GDB and LLDB,"
elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
if has_version app-editors/emacs; then
elog "install app-emacs/rust-mode to get emacs support for rust."
fi
if has_version app-editors/gvim || has_version app-editors/vim; then
elog "install app-vim/rust-vim to get vim support for rust."
fi
if use elibc_musl; then
ewarn "${PN} on *-musl targets is configured with crt-static"
ewarn ""
ewarn "you will need to set RUSTFLAGS=\"-C target-feature=-crt-static\" in make.conf"
ewarn "to use it with portage, otherwise you may see failures like"
ewarn "error: cannot produce proc-macro for serde_derive v1.0.98 as the target "
ewarn "x86_64-unknown-linux-musl does not support these crate types"
fi
}
pkg_postrm() {
eselect rust cleanup
}

17
dev-libs/nspr/Manifest Normal file
View File

@ -0,0 +1,17 @@
AUX nspr-4.10.6-solaris.patch 973 BLAKE2B 8370bedb05c718d7b73d57b5ac5c720ca62499d6d7b7a039da608a9c514996c2d987ba0135b7dcac509d1b9363908f0c0cff6fe47e1f7ca94b7efbd8c19aeeca SHA512 d4e4c44d02be7aafe09e633f2ee747c323036f7438cb87864d91bcd9bb8ac072065353aa4e8a785e38724d33bfdc8adb0e460dbf44ff7fbd8c8dd32b569074f1
AUX nspr-4.21-ipv6-musl-support.patch 1645 BLAKE2B 0b383804d5e66037041b91dcb7ddd52dd4533384ca5671ed1d36a71740b130863dd2b531867edab804fbb8cfab112282e17d607d7e298eb249ead620f99a55be SHA512 f241e607491d1192272221023d5f3e84b3e88957e7b66ce4d9ba1bcf2ab6639facc08eeb838a0e6753456f41dde4ced4fe99f923e0889030d844c23c62fad4e2
AUX nspr-4.23-prtime.patch 814 BLAKE2B 2106a841b34445310cef07e15cb77ae4c9465cca9a7dc68acd68408a66383c90bee1fafeaaa144e1b8344d1edae27407714f193a452ffc3d425212e3b2c40fc5 SHA512 9f51a03852f0b3d4352c14ee849ec8af9b3dbef68eaa2755cb5a630018f91e3a2a4fce5742078b8be51e76995218a0cfc7ef8b0c013e8c47f746a61185795eae
AUX nspr-4.7.0-prtime.patch 859 BLAKE2B d7869ee8e46f34e53546c28e7f9032497744d31b82d0fb47edb8c2ff5787392423698353e1374ebb5f9ed11470dff5ca62995e8f44f310756799bc9eae55ada5 SHA512 d8421bc11de5ec5e116c7eba3f31fcdde27796a64948d16aa1fb1822a29a92d8810056719ca60bcb96b1734b0e84c95250075c18acbcb631786249af7d679492
AUX nspr-4.7.1-solaris.patch 411 BLAKE2B 0c1f0e621aec9e150bd8c279f46c18256c451b2555b9f264f0da7432fb0e7d5d69e1bbbb7adc9a448d88ca269be41943f2ee60e1cc8e115542e300c1d7c61185 SHA512 11bd4ab3f98cbad2586f999370291d387fe7a817bab9feda9f5493f284410a73318e90072c0052a8216d9ae1cdc5b2a862a99315e09b72560d9bad6ebc16eb79
AUX nspr-4.8.4-darwin-install_name.patch 1046 BLAKE2B 1182149b03bd2c03fc4051bf98c61cdd4245da21a51d5f9b10149e12f5326992d587f0fe04bab79c26acee4aa2e4dded5ddf8c697b5cd4f2e34ea730c6ca7fe0 SHA512 dd00bc2108d6c7a64945afeaf97f31189250c90c3d63c86fa2b2b091ef812cc7c5f8c0f17211a02b497f50efc1c3668c840e21a45f514ff1103e22c659e820f2
AUX nspr-4.8.9-link-flags.patch 931 BLAKE2B 6aa6aa1cf3b856a95b7baa20f58e9ed83b8b29ccce37bab39e10e0e76c433ae5c79839b5f7f9bdaf8b2475c8e3692ff4a57c246dfa4e1fed6866ab284826ee0d SHA512 0bb61dc09d287f1324749c983404e1f03fdf7014fbbd32cc5abe452fc2f32b90b759d8f18d964a61da044b5a7221f5ba274d94c93c07c8a7359e3c937e44b975
AUX nspr-4.9.5_nspr_config.patch 251 BLAKE2B 65ae8b981e758e2955b7a3358f24b7b17dc1ef59f0e78f9fd9ddee740a4da3825bafea34f3900200b3f6edefed7d0797c194cb0339d4e36551615d599156108d SHA512 3f118b7142a19dcc7e26b348cec6029c78d585a57cc2bfc2ab7ca13d2ef953e576dab0ac044316e3165d0201bf27253afa732109f914da6f7a39f19facff8310
DIST nspr-4.22.tar.gz 1078701 BLAKE2B 8b37031ffebf79320c91ce674d7c3a0cfbef25bfb006cb9aaff44f090110b35ea2768f83dae4a793723f8e2f3aecabc1a4b8042cd1b0ab0aade30781e43f9d62 SHA512 d34271f0692905162f71b02cf6f62a8ebf779159335e4ed286ee8d51faaad633a61c9392bada86d976bca2b5aa47c8760085de30dbd13c9cfa423582c31db37b
DIST nspr-4.24.tar.gz 1078825 BLAKE2B 3a773768c31334fa4f3f406d838d430dccfbcf5f7bd34dca422b199265f17fc08ef3d5d1e6df5468efeeeace8b5f8a38ece518e6bdbcdf811c2642d43be80c6c SHA512 b020031ed7a8997099c11e0772779c7b10d15b4f6b14e2b1832732943e8b8224afa952ce04a1914c1553af9d3973a6d9cacf08058ee6fff35102e3b2ec0943c1
DIST nspr-4.25.tar.gz 1079633 BLAKE2B 377e5ec0e60cca13f1ee988adb10870bbb6cb9e4eb61e4434152418d4f8d446741a192d7019298ec2669b8e190cacb6a1ca9c4b2838e9b14dd3590ed40facdd2 SHA512 b9aa576e0da37e8729088fe559d94030cf18f277c1f7a30104d3088a804913343ed884645c0adb62144da475e20934b359f897bf3ae9a6ebb5f9daf283d5a562
DIST nspr-4.26.tar.gz 1079778 BLAKE2B db83afa5e3ab2e0ef92aa236db6d9f25e963b77df7c71400e691dc3e882ec6d63cbf13996eb1ae1a03a294def419e1669e38fe42990c66efedce03f121087e6c SHA512 d6632cde3570ee386ee1459257eba99f91dd62fa905fd82679222c83d63c185b76d8dca0422d4349de2dfce603472ae52bc0dcced0f142acb733374c74155d3c
EBUILD nspr-4.22.ebuild 3892 BLAKE2B 5633707738207a3a7b2dfcbb8798f2ad134f95f8a39e6f8619685e33b1acd5bcc3fa4784cceaf8225f7d5973caab467d79a4378c7399c8ec64bb08e6932d729c SHA512 0021005fde55f4c02782ad4f0ee5528e7df231e84e040503a1055fa42d4c09fb1db396108ae283a0096f4ddd34b24c16b4419c44fd9ed19d7a4878425a2337f4
EBUILD nspr-4.24.ebuild 3758 BLAKE2B 456721c50f3e99ebf0b13408df92a3e41bfa270b1f521025f5d2929c3a0a33f2a4ad81d8dc59cb907ce28611c91a64e2a25bfabdc9e5d81c00f7fdc0622c4c9d SHA512 4f64f4628fe87661a0a01cc0bc189fd3b5f18796f2fb000511d038757751ee59044d8d04bd5bdedbffdc222d1bdb60548e84fd408c73aa45e7398a2c88fc6f18
EBUILD nspr-4.25.ebuild 3758 BLAKE2B 456721c50f3e99ebf0b13408df92a3e41bfa270b1f521025f5d2929c3a0a33f2a4ad81d8dc59cb907ce28611c91a64e2a25bfabdc9e5d81c00f7fdc0622c4c9d SHA512 4f64f4628fe87661a0a01cc0bc189fd3b5f18796f2fb000511d038757751ee59044d8d04bd5bdedbffdc222d1bdb60548e84fd408c73aa45e7398a2c88fc6f18
EBUILD nspr-4.26.ebuild 3930 BLAKE2B 93e41000e906be98a34555fa1970189139db9d4b0c23dafac29ec4e5db93965981d614e15886333665db3d255ef3545a48efe7819755e973497d22367681d292 SHA512 b6edf7eb6685ec60f549c4ca542146fc02673c59369d6c691dbfe98106e319b7c0bc2817629296a447bfce720467f64c290106356b5eb26348227169d0841919
MISC metadata.xml 250 BLAKE2B 9e6643b2a0b90fc083246090047db38d3b9a3b71db8542051307b7e87394135d3337e1ea54b83a0c7474661a0fd07d950385b44cbed6ee95f6e6ad718bd0b062 SHA512 ba5e7c1f6ee117471a3804bc54211e7f89c75e965a865f45f85015a0a28ec7d511ef9bbc196eef8245dc9259f54b04eb3563d83811a293bb946cf0977563892b

View File

@ -0,0 +1,32 @@
* drop Solaris linker stuff
--- a/configure.in
+++ b/configure.in
@@ -1988,26 +1988,14 @@
CPU_ARCH=`uname -p`
MDCPUCFG_H=_solaris.cfg
PR_MD_CSRCS=solaris.c
- LD=/usr/ccs/bin/ld
MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
RESOLVE_LINK_SYMBOLS=1
- case "${OS_RELEASE}" in
- 5.8|5.9)
- ;;
- *)
- # It is safe to use the -Bdirect linker flag on Solaris 10 or later.
- USE_B_DIRECT=1
- ;;
- esac
if test -n "$GNU_CC"; then
DSO_CFLAGS=-fPIC
if `$CC -print-prog-name=ld` -v 2>&1 | grep -c GNU >/dev/null; then
GCC_USE_GNU_LD=1
fi
- DSO_LDOPTS='-shared -Wl,-h,$(notdir $@),-z,combreloc,-z,defs,-z,ignore'
- if test -n "$USE_B_DIRECT"; then
- DSO_LDOPTS="$DSO_LDOPTS,-Bdirect"
- fi
+ DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
else
DSO_CFLAGS=-KPIC
DSO_LDOPTS='-G -h $(notdir $@) -z combreloc -z defs -z ignore'

View File

@ -0,0 +1,53 @@
From 8c57451f44d7ceb37bfb4ae6e457fc70b1f58d0a Mon Sep 17 00:00:00 2001
From: Moritz Kick <gentoo@blackphoenix.de>
Date: Wed, 20 Mar 2019 13:36:06 -0500
Subject: [PATCH] Added IPv6 compatibility for musl libc
Signed-off-by: Moritz Kick <gentoo@blackphoenix.de>
Signed-off-by: Jory Pratt <anarchy@gentoo.org>
---
pr/include/md/_linux.h | 13 +------------
1 file changed, 1 insertion(+), 12 deletions(-)
diff --git a/pr/include/md/_linux.h b/pr/include/md/_linux.h
index 2370ab8..612184c 100644
--- a/pr/include/md/_linux.h
+++ b/pr/include/md/_linux.h
@@ -289,33 +289,22 @@ static inline PRInt32 _MD_ATOMIC_SET(PRInt32 *ptr, PRInt32 nv)
#endif /* __arm__ */
#define USE_SETJMP
-#if (defined(__GLIBC__) && __GLIBC__ >= 2) || defined(ANDROID)
#define _PR_POLL_AVAILABLE
-#endif
#undef _PR_USE_POLL
#define _PR_STAT_HAS_ONLY_ST_ATIME
#if defined(__alpha) || defined(__ia64__)
#define _PR_HAVE_LARGE_OFF_T
-#elif (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) \
- || defined(ANDROID)
-#define _PR_HAVE_OFF64_T
#else
-#define _PR_NO_LARGE_FILES
+#define _PR_HAVE_OFF64_T
#endif
-#if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) \
- || defined(ANDROID)
#define _PR_INET6
#define _PR_HAVE_INET_NTOP
#define _PR_HAVE_GETHOSTBYNAME2
#define _PR_HAVE_GETADDRINFO
#define _PR_INET6_PROBE
-#endif
#ifndef ANDROID
#define _PR_HAVE_SYSV_SEMAPHORES
#define PR_HAVE_SYSV_NAMED_SHARED_MEMORY
-#endif
-/* Android has gethostbyname_r but not gethostbyaddr_r or gethostbyname2_r. */
-#if (__GLIBC__ >= 2) && defined(_PR_PTHREADS)
#define _PR_HAVE_GETHOST_R
#define _PR_HAVE_GETHOST_R_INT
#endif
--
2.21.0

View File

@ -0,0 +1,26 @@
--- a/pr/src/misc/prtime.c
+++ b/pr/src/misc/prtime.c
@@ -1621,7 +1621,7 @@
case TT_EET: zone_offset = 2 * 60; break;
case TT_JST: zone_offset = 9 * 60; break;
default:
- PR_ASSERT (0);
+ return PR_FAILURE;
break;
}
}
@@ -1677,11 +1677,12 @@
struct tm localTime;
time_t secs;
- PR_ASSERT(result->tm_month > -1 &&
+ if (!(result->tm_month > -1 &&
result->tm_mday > 0 &&
result->tm_hour > -1 &&
result->tm_min > -1 &&
- result->tm_sec > -1);
+ result->tm_sec > -1))
+ return PR_FAILURE;
/*
* To obtain time_t from a tm structure representing the local

View File

@ -0,0 +1,26 @@
--- a/pr/src/misc/prtime.c
+++ b/pr/src/misc/prtime.c
@@ -1536,7 +1536,7 @@
case TT_EET: zone_offset = 2 * 60; break;
case TT_JST: zone_offset = 9 * 60; break;
default:
- PR_ASSERT (0);
+ return PR_FAILURE;
break;
}
}
@@ -1578,11 +1578,12 @@
struct tm localTime;
time_t secs;
- PR_ASSERT(result->tm_month > -1 &&
+ if (!(result->tm_month > -1 &&
result->tm_mday > 0 &&
result->tm_hour > -1 &&
result->tm_min > -1 &&
- result->tm_sec > -1);
+ result->tm_sec > -1))
+ return PR_FAILURE;
/*
* To obtain time_t from a tm structure representing the local

View File

@ -0,0 +1,14 @@
Same magic as haubi did for glib compilation, which works again here
resolving a linker problem on Solaris with GNU ld. Bug #222625
--- a/pr/src/Makefile.in
+++ b/pr/src/Makefile.in
@@ -95,7 +95,7 @@
endif
ifdef USE_PTHREADS
-OS_LIBS = -lpthread ${LIBRT} -lsocket -lnsl -ldl -lc
+OS_LIBS = -pthread ${LIBRT} -lsocket -lnsl -ldl -lc
else
ifdef LOCAL_THREADS_ONLY
OS_LIBS = -lsocket -lnsl -ldl -lc

View File

@ -0,0 +1,25 @@
Don't use @executable_path, it messed up linking against nspr from e.g.
nss.
--- a/configure.in
+++ b/configure.in
@@ -1007,7 +1007,7 @@
;;
esac
DSO_CFLAGS=-fPIC
- DSO_LDOPTS='-dynamiclib -compatibility_version 1 -current_version 1 -all_load -install_name @executable_path/$@ -headerpad_max_install_names'
+ DSO_LDOPTS='-dynamiclib -compatibility_version 1 -current_version 1 -all_load -install_name $(libdir)/$@ -headerpad_max_install_names'
_OPTIMIZE_FLAGS=-O2
MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
STRIP="$STRIP -x -S"
--- a/configure
+++ b/configure
@@ -1007,7 +1007,7 @@
;;
esac
DSO_CFLAGS=-fPIC
- DSO_LDOPTS='-dynamiclib -compatibility_version 1 -current_version 1 -all_load -install_name @executable_path/$@ -headerpad_max_install_names'
+ DSO_LDOPTS='-dynamiclib -compatibility_version 1 -current_version 1 -all_load -install_name $(libdir)/$@ -headerpad_max_install_names'
_OPTIMIZE_FLAGS=-O2
MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
STRIP="$STRIP -x -S"

View File

@ -0,0 +1,28 @@
Use CFLAGS when linking. Some flags can add functionality to generated
code that requires extra libs to be linked in (eg. libgomp when using
autoparallelization). Other flags are required when building and linking
(eg. -flto).
https://bugs.gentoo.org/365975
--- a/config/autoconf.mk.in
+++ b/config/autoconf.mk.in
@@ -81,6 +81,7 @@ OS_DLLFLAGS = @OS_DLLFLAGS@
DLLFLAGS = @DLLFLAGS@
EXEFLAGS = @EXEFLAGS@
OPTIMIZER = @OPTIMIZER@
+LD_CFLAGS = @CFLAGS@
PROFILE_GEN_CFLAGS = @PROFILE_GEN_CFLAGS@
PROFILE_GEN_LDFLAGS = @PROFILE_GEN_LDFLAGS@
--- a/config/config.mk
+++ b/config/config.mk
@@ -72,7 +72,7 @@ NOMD_CFLAGS = $(CC_ONLY_FLAGS) $(OPTIMIZER) $(NOMD_OS_CFLAGS)\
NOMD_CCFLAGS = $(CCC_ONLY_FLAGS) $(OPTIMIZER) $(NOMD_OS_CFLAGS)\
$(XP_DEFINE) $(DEFINES) $(INCLUDES) $(XCFLAGS)
-LDFLAGS = $(OS_LDFLAGS)
+LDFLAGS = $(LD_CFLAGS) $(OS_LDFLAGS)
# Enable profile-guided optimization
ifdef MOZ_PROFILE_GENERATE

View File

@ -0,0 +1,11 @@
--- a/config/nspr-config.in
+++ b/config/nspr-config.in
@@ -126,7 +126,7 @@
fi
if test "$echo_libs" = "yes"; then
- libdirs=-L$libdir
+ libdirs=""
if test -n "$lib_plds"; then
libdirs="$libdirs -lplds${major_version}"
fi

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>mozilla@gentoo.org</email>
<name>Gentoo Mozilla Team</name>
</maintainer>
</pkgmetadata>

View File

@ -0,0 +1,120 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit autotools toolchain-funcs multilib-minimal
MIN_PV="$(ver_cut 2)"
DESCRIPTION="Netscape Portable Runtime"
HOMEPAGE="http://www.mozilla.org/projects/nspr/"
SRC_URI="https://archive.mozilla.org/pub/nspr/releases/v${PV}/src/${P}.tar.gz"
LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )"
SLOT="0"
KEYWORDS="alpha amd64 arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
IUSE="debug elibc_musl"
MULTILIB_CHOST_TOOLS=(
/usr/bin/nspr-config
)
PATCHES=(
"${FILESDIR}"/${PN}-4.7.0-prtime.patch
"${FILESDIR}"/${PN}-4.7.1-solaris.patch
"${FILESDIR}"/${PN}-4.10.6-solaris.patch
"${FILESDIR}"/${PN}-4.8.4-darwin-install_name.patch
"${FILESDIR}"/${PN}-4.8.9-link-flags.patch
# We do not need to pass -L$libdir via nspr-config --libs
"${FILESDIR}"/${PN}-4.9.5_nspr_config.patch
)
src_prepare() {
cd "${S}"/nspr || die
default
use elibc_musl && eapply "${FILESDIR}"/${PN}-4.21-ipv6-musl-support.patch
# rename configure.in to configure.ac for new autotools compatibility
if [[ -e "${S}"/nspr/configure.in ]] ; then
einfo "Renaming configure.in to configure.ac"
mv "${S}"/nspr/configure.{in,ac} || die
fi
# We must run eautoconf to regenerate configure
eautoconf
# make sure it won't find Perl out of Prefix
sed -i -e "s/perl5//g" "${S}"/nspr/configure || die
# Respect LDFLAGS
sed -i -e 's/\$(MKSHLIB) \$(OBJS)/\$(MKSHLIB) \$(LDFLAGS) \$(OBJS)/g' \
"${S}"/nspr/config/rules.mk || die
}
multilib_src_configure() {
# We use the standard BUILD_xxx but nspr uses HOST_xxx
tc-export_build_env BUILD_CC
export HOST_CC=${BUILD_CC} HOST_CFLAGS=${BUILD_CFLAGS} HOST_LDFLAGS=${BUILD_LDFLAGS}
tc-export AR CC CXX RANLIB
[[ ${CBUILD} != ${CHOST} ]] \
&& export CROSS_COMPILE=1 \
|| unset CROSS_COMPILE
local myconf=(
--libdir="${EPREFIX}/usr/$(get_libdir)"
$(use_enable debug)
$(use_enable !debug optimize)
)
# The configure has some fancy --enable-{{n,x}32,64bit} switches
# that trigger some code conditional to platform & arch. This really
# matters for the few common arches (x86, ppc) but we pass a little
# more of them to be future-proof.
# use ABI first, this will work for most cases
case "${ABI}" in
alpha|arm|hppa|m68k|o32|ppc|s390|sh|sparc|x86) ;;
n32) myconf+=( --enable-n32 );;
x32) myconf+=( --enable-x32 );;
s390x|*64) myconf+=( --enable-64bit );;
default) # no abi actually set, fall back to old check
einfo "Running a short build test to determine 64bit'ness"
echo > "${T}"/test.c || die
${CC} ${CFLAGS} ${CPPFLAGS} -c "${T}"/test.c -o "${T}"/test.o || die
case $(file "${T}"/test.o) in
*32-bit*x86-64*) myconf+=( --enable-x32 );;
*64-bit*|*ppc64*|*x86_64*) myconf+=( --enable-64bit );;
*32-bit*|*ppc*|*i386*) ;;
*) die "Failed to detect whether your arch is 64bits or 32bits, disable distcc if you're using it, please";;
esac ;;
*) ;;
esac
# Ancient autoconf needs help finding the right tools.
LC_ALL="C" ECONF_SOURCE="${S}/nspr" \
ac_cv_path_AR="${AR}" \
econf "${myconf[@]}"
}
multilib_src_install() {
# Their build system is royally confusing, as usual
MINOR_VERSION=${MIN_PV} # Used for .so version
emake DESTDIR="${D}" install
einfo "removing static libraries as upstream has requested!"
rm "${ED}"/usr/$(get_libdir)/*.a || die "failed to remove static libraries."
# install nspr-config
dobin config/nspr-config
# Remove stupid files in /usr/bin
rm "${ED}"/usr/bin/prerr.properties || die
# This is used only to generate prerr.c and prerr.h at build time.
# No other projects use it, and we don't want to depend on perl.
# Talked to upstream and they agreed w/punting.
rm "${ED}"/usr/bin/compile-et.pl || die
}

View File

@ -0,0 +1,122 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit autotools toolchain-funcs multilib-minimal
MIN_PV="$(ver_cut 2)"
DESCRIPTION="Netscape Portable Runtime"
HOMEPAGE="http://www.mozilla.org/projects/nspr/"
SRC_URI="https://archive.mozilla.org/pub/nspr/releases/v${PV}/src/${P}.tar.gz"
LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )"
SLOT="0"
KEYWORDS="*"
IUSE="debug elibc_musl"
MULTILIB_CHOST_TOOLS=(
/usr/bin/nspr-config
)
PATCHES=(
"${FILESDIR}"/${PN}-4.23-prtime.patch
"${FILESDIR}"/${PN}-4.7.1-solaris.patch
"${FILESDIR}"/${PN}-4.10.6-solaris.patch
"${FILESDIR}"/${PN}-4.8.4-darwin-install_name.patch
"${FILESDIR}"/${PN}-4.8.9-link-flags.patch
# We do not need to pass -L$libdir via nspr-config --libs
"${FILESDIR}"/${PN}-4.9.5_nspr_config.patch
)
src_prepare() {
cd "${S}"/nspr || die
default
use elibc_musl && eapply "${FILESDIR}"/${PN}-4.21-ipv6-musl-support.patch
# rename configure.in to configure.ac for new autotools compatibility
if [[ -e "${S}"/nspr/configure.in ]] ; then
einfo "Renaming configure.in to configure.ac"
mv "${S}"/nspr/configure.{in,ac} || die
else
elog "configure.in rename logic can be removed from ebuild."
fi
# We must run eautoconf to regenerate configure
eautoconf
# make sure it won't find Perl out of Prefix
sed -i -e "s/perl5//g" "${S}"/nspr/configure || die
# Respect LDFLAGS
sed -i -e 's/\$(MKSHLIB) \$(OBJS)/\$(MKSHLIB) \$(LDFLAGS) \$(OBJS)/g' \
"${S}"/nspr/config/rules.mk || die
}
multilib_src_configure() {
# We use the standard BUILD_xxx but nspr uses HOST_xxx
tc-export_build_env BUILD_CC
export HOST_CC=${BUILD_CC} HOST_CFLAGS=${BUILD_CFLAGS} HOST_LDFLAGS=${BUILD_LDFLAGS}
tc-export AR CC CXX RANLIB
[[ ${CBUILD} != ${CHOST} ]] \
&& export CROSS_COMPILE=1 \
|| unset CROSS_COMPILE
local myconf=(
--libdir="${EPREFIX}/usr/$(get_libdir)"
$(use_enable debug)
$(use_enable !debug optimize)
)
# The configure has some fancy --enable-{{n,x}32,64bit} switches
# that trigger some code conditional to platform & arch. This really
# matters for the few common arches (x86, ppc) but we pass a little
# more of them to be future-proof.
# use ABI first, this will work for most cases
case "${ABI}" in
alpha|arm|hppa|m68k|o32|ppc|s390|sh|sparc|x86) ;;
n32) myconf+=( --enable-n32 );;
x32) myconf+=( --enable-x32 );;
s390x|*64) myconf+=( --enable-64bit );;
default) # no abi actually set, fall back to old check
einfo "Running a short build test to determine 64bit'ness"
echo > "${T}"/test.c || die
${CC} ${CFLAGS} ${CPPFLAGS} -c "${T}"/test.c -o "${T}"/test.o || die
case $(file "${T}"/test.o) in
*32-bit*x86-64*) myconf+=( --enable-x32 );;
*64-bit*|*ppc64*|*x86_64*) myconf+=( --enable-64bit );;
*32-bit*|*ppc*|*i386*) ;;
*) die "Failed to detect whether your arch is 64bits or 32bits, disable distcc if you're using it, please";;
esac ;;
*) ;;
esac
# Ancient autoconf needs help finding the right tools.
LC_ALL="C" ECONF_SOURCE="${S}/nspr" \
ac_cv_path_AR="${AR}" \
econf "${myconf[@]}"
}
multilib_src_install() {
# Their build system is royally confusing, as usual
MINOR_VERSION=${MIN_PV} # Used for .so version
emake DESTDIR="${D}" install
einfo "removing static libraries as upstream has requested!"
rm "${ED}"/usr/$(get_libdir)/*.a || die "failed to remove static libraries."
# install nspr-config
dobin config/nspr-config
# Remove stupid files in /usr/bin
rm "${ED}"/usr/bin/prerr.properties || die
# This is used only to generate prerr.c and prerr.h at build time.
# No other projects use it, and we don't want to depend on perl.
# Talked to upstream and they agreed w/punting.
rm "${ED}"/usr/bin/compile-et.pl || die
}

View File

@ -0,0 +1,122 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit autotools toolchain-funcs multilib-minimal
MIN_PV="$(ver_cut 2)"
DESCRIPTION="Netscape Portable Runtime"
HOMEPAGE="http://www.mozilla.org/projects/nspr/"
SRC_URI="https://archive.mozilla.org/pub/nspr/releases/v${PV}/src/${P}.tar.gz"
LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )"
SLOT="0"
KEYWORDS="*"
IUSE="debug elibc_musl"
MULTILIB_CHOST_TOOLS=(
/usr/bin/nspr-config
)
PATCHES=(
"${FILESDIR}"/${PN}-4.23-prtime.patch
"${FILESDIR}"/${PN}-4.7.1-solaris.patch
"${FILESDIR}"/${PN}-4.10.6-solaris.patch
"${FILESDIR}"/${PN}-4.8.4-darwin-install_name.patch
"${FILESDIR}"/${PN}-4.8.9-link-flags.patch
# We do not need to pass -L$libdir via nspr-config --libs
"${FILESDIR}"/${PN}-4.9.5_nspr_config.patch
)
src_prepare() {
cd "${S}"/nspr || die
default
use elibc_musl && eapply "${FILESDIR}"/${PN}-4.21-ipv6-musl-support.patch
# rename configure.in to configure.ac for new autotools compatibility
if [[ -e "${S}"/nspr/configure.in ]] ; then
einfo "Renaming configure.in to configure.ac"
mv "${S}"/nspr/configure.{in,ac} || die
else
elog "configure.in rename logic can be removed from ebuild."
fi
# We must run eautoconf to regenerate configure
eautoconf
# make sure it won't find Perl out of Prefix
sed -i -e "s/perl5//g" "${S}"/nspr/configure || die
# Respect LDFLAGS
sed -i -e 's/\$(MKSHLIB) \$(OBJS)/\$(MKSHLIB) \$(LDFLAGS) \$(OBJS)/g' \
"${S}"/nspr/config/rules.mk || die
}
multilib_src_configure() {
# We use the standard BUILD_xxx but nspr uses HOST_xxx
tc-export_build_env BUILD_CC
export HOST_CC=${BUILD_CC} HOST_CFLAGS=${BUILD_CFLAGS} HOST_LDFLAGS=${BUILD_LDFLAGS}
tc-export AR CC CXX RANLIB
[[ ${CBUILD} != ${CHOST} ]] \
&& export CROSS_COMPILE=1 \
|| unset CROSS_COMPILE
local myconf=(
--libdir="${EPREFIX}/usr/$(get_libdir)"
$(use_enable debug)
$(use_enable !debug optimize)
)
# The configure has some fancy --enable-{{n,x}32,64bit} switches
# that trigger some code conditional to platform & arch. This really
# matters for the few common arches (x86, ppc) but we pass a little
# more of them to be future-proof.
# use ABI first, this will work for most cases
case "${ABI}" in
alpha|arm|hppa|m68k|o32|ppc|s390|sh|sparc|x86) ;;
n32) myconf+=( --enable-n32 );;
x32) myconf+=( --enable-x32 );;
s390x|*64) myconf+=( --enable-64bit );;
default) # no abi actually set, fall back to old check
einfo "Running a short build test to determine 64bit'ness"
echo > "${T}"/test.c || die
${CC} ${CFLAGS} ${CPPFLAGS} -c "${T}"/test.c -o "${T}"/test.o || die
case $(file "${T}"/test.o) in
*32-bit*x86-64*) myconf+=( --enable-x32 );;
*64-bit*|*ppc64*|*x86_64*) myconf+=( --enable-64bit );;
*32-bit*|*ppc*|*i386*) ;;
*) die "Failed to detect whether your arch is 64bits or 32bits, disable distcc if you're using it, please";;
esac ;;
*) ;;
esac
# Ancient autoconf needs help finding the right tools.
LC_ALL="C" ECONF_SOURCE="${S}/nspr" \
ac_cv_path_AR="${AR}" \
econf "${myconf[@]}"
}
multilib_src_install() {
# Their build system is royally confusing, as usual
MINOR_VERSION=${MIN_PV} # Used for .so version
emake DESTDIR="${D}" install
einfo "removing static libraries as upstream has requested!"
rm "${ED}"/usr/$(get_libdir)/*.a || die "failed to remove static libraries."
# install nspr-config
dobin config/nspr-config
# Remove stupid files in /usr/bin
rm "${ED}"/usr/bin/prerr.properties || die
# This is used only to generate prerr.c and prerr.h at build time.
# No other projects use it, and we don't want to depend on perl.
# Talked to upstream and they agreed w/punting.
rm "${ED}"/usr/bin/compile-et.pl || die
}

View File

@ -0,0 +1,122 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit autotools toolchain-funcs multilib-minimal
MIN_PV="$(ver_cut 2)"
DESCRIPTION="Netscape Portable Runtime"
HOMEPAGE="http://www.mozilla.org/projects/nspr/"
SRC_URI="https://archive.mozilla.org/pub/nspr/releases/v${PV}/src/${P}.tar.gz"
LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
IUSE="debug elibc_musl"
MULTILIB_CHOST_TOOLS=(
/usr/bin/nspr-config
)
PATCHES=(
"${FILESDIR}"/${PN}-4.23-prtime.patch
"${FILESDIR}"/${PN}-4.7.1-solaris.patch
"${FILESDIR}"/${PN}-4.10.6-solaris.patch
"${FILESDIR}"/${PN}-4.8.4-darwin-install_name.patch
"${FILESDIR}"/${PN}-4.8.9-link-flags.patch
# We do not need to pass -L$libdir via nspr-config --libs
"${FILESDIR}"/${PN}-4.9.5_nspr_config.patch
)
src_prepare() {
cd "${S}"/nspr || die
default
use elibc_musl && eapply "${FILESDIR}"/${PN}-4.21-ipv6-musl-support.patch
# rename configure.in to configure.ac for new autotools compatibility
if [[ -e "${S}"/nspr/configure.in ]] ; then
einfo "Renaming configure.in to configure.ac"
mv "${S}"/nspr/configure.{in,ac} || die
else
elog "configure.in rename logic can be removed from ebuild."
fi
# We must run eautoconf to regenerate configure
eautoconf
# make sure it won't find Perl out of Prefix
sed -i -e "s/perl5//g" "${S}"/nspr/configure || die
# Respect LDFLAGS
sed -i -e 's/\$(MKSHLIB) \$(OBJS)/\$(MKSHLIB) \$(LDFLAGS) \$(OBJS)/g' \
"${S}"/nspr/config/rules.mk || die
}
multilib_src_configure() {
# We use the standard BUILD_xxx but nspr uses HOST_xxx
tc-export_build_env BUILD_CC
export HOST_CC=${BUILD_CC} HOST_CFLAGS=${BUILD_CFLAGS} HOST_LDFLAGS=${BUILD_LDFLAGS}
tc-export AR CC CXX RANLIB
[[ ${CBUILD} != ${CHOST} ]] \
&& export CROSS_COMPILE=1 \
|| unset CROSS_COMPILE
local myconf=(
--libdir="${EPREFIX}/usr/$(get_libdir)"
$(use_enable debug)
$(use_enable !debug optimize)
)
# The configure has some fancy --enable-{{n,x}32,64bit} switches
# that trigger some code conditional to platform & arch. This really
# matters for the few common arches (x86, ppc) but we pass a little
# more of them to be future-proof.
# use ABI first, this will work for most cases
case "${ABI}" in
alpha|arm|hppa|m68k|o32|ppc|s390|sh|sparc|x86) ;;
n32) myconf+=( --enable-n32 );;
x32) myconf+=( --enable-x32 );;
s390x|*64) myconf+=( --enable-64bit );;
default) # no abi actually set, fall back to old check
einfo "Running a short build test to determine 64bit'ness"
echo > "${T}"/test.c || die
${CC} ${CFLAGS} ${CPPFLAGS} -c "${T}"/test.c -o "${T}"/test.o || die
case $(file "${T}"/test.o) in
*32-bit*x86-64*) myconf+=( --enable-x32 );;
*64-bit*|*ppc64*|*x86_64*) myconf+=( --enable-64bit );;
*32-bit*|*ppc*|*i386*) ;;
*) die "Failed to detect whether your arch is 64bits or 32bits, disable distcc if you're using it, please";;
esac ;;
*) ;;
esac
# Ancient autoconf needs help finding the right tools.
LC_ALL="C" ECONF_SOURCE="${S}/nspr" \
ac_cv_path_AR="${AR}" \
econf "${myconf[@]}"
}
multilib_src_install() {
# Their build system is royally confusing, as usual
MINOR_VERSION=${MIN_PV} # Used for .so version
emake DESTDIR="${D}" install
einfo "removing static libraries as upstream has requested!"
rm "${ED}"/usr/$(get_libdir)/*.a || die "failed to remove static libraries."
# install nspr-config
dobin config/nspr-config
# Remove stupid files in /usr/bin
rm "${ED}"/usr/bin/prerr.properties || die
# This is used only to generate prerr.c and prerr.h at build time.
# No other projects use it, and we don't want to depend on perl.
# Talked to upstream and they agreed w/punting.
rm "${ED}"/usr/bin/compile-et.pl || die
}

7
dev-libs/nss/Manifest Normal file
View File

@ -0,0 +1,7 @@
AUX nss-3.21-gentoo-fixup-warnings.patch 178 BLAKE2B b51f80310db3db416d8aeaf9117ef801389b5b2df47c04aff51bf0759dd5bff41b09d1e9011f99b345d5769a3aab19acb943ee97f8437465518115f6902a0da1 SHA512 7667a020311ca11e8f1836bc146e4a3c94ff2a489882dbe87debcccfeaafeb50e6607574c64254a826b4b6f0bb436b310a3386fff4a58324f0e5e58debaa9d51
AUX nss-3.23-hppa-byte_order.patch 460 BLAKE2B 97358cc8fbea0b0d3beee0697833e48ef01039ceb08fd00792a7f7ef68409eb076022c03764ab079fdaa971a0358130002fa11c0c182ebeb33dcdf660be26408 SHA512 ad0097bb6cf409d61eb28202d7460c87e983d6db977aba38ff9ef2749b3f7bb8fdadce4174f5bf806350ae33733097a1f444792d31cc43574b28341893642e5a
AUX nss-3.53-fix-building-on-ppc.patch 1206 BLAKE2B e6189802769197b290fd332ee2b7d074c0bacf47313998117734dafd1eb6a536db19bc8a329944d9fad51a6f9f90f81d98181272e0068bf852fea7ca928d2713 SHA512 859162070aa3c5e6e8be259f5e6648d37a5194a02958310f8caf56ff772dcaa4ebb26e4d754c99608fc7a45b641c5088cccd9e2c7d9c92c5ccc85c6b47320720
AUX nss-3.53-gentoo-fixups.patch 6886 BLAKE2B 1c605d8db02ebe0492c41955207368197a79990e43e219a71962cb28ac0cecd9e0acc2b76e16f5b116fdb8bf8790d96046cb4f376df9b8634ac48e54924589f8 SHA512 51031f92519f57d4b57a547cf549f2d5da1c5a7212d4b304fb0d71d6a85a5aefd64724ec9075c14c9b49c1e99c3ffe91cbec501c3504985aa9b16eacf2aa15ed
DIST nss-3.55.tar.gz 81759883 BLAKE2B 5b663d2b1861eb74cf070f2711b4db1afbfbc40b08e1f117e6b4a62e9f997de06889de3afc654cf6547c371ab2a1183904a1a014d1dc4b3e94f734107c81e1cf SHA512 acae7b803a3219cd4b78216cb8a6352805741e42eca6a42a5e6289ebbabc6189c7c6bc138cbd8a93d8631d06175c4d34e72957d49fe726adada6aaa2566e399e
DIST nss-cacert-class1-class3.patch 22950 BLAKE2B 9d5e60df5f161a3c27c41e5a9419440a54f888eda454e3cde5ebe626d4075b65cf9938b5144d0fb022377f4bd415bff5e5c67d104409860aa9391b3eb8872c68 SHA512 a5aa740bf110a3f0262e3f1ef2fc739ac2b44f042e220039d48aee8e97cd764d5c10718220364f4098aba955882bd02cadb5481512388971a8290312f88a7df0
EBUILD nss-3.55.ebuild 8992 BLAKE2B 45d0ef7e3ecac0a19c75b5193cf3f21aad28fce9ee03d30785cd133c0357e3b71e62800154ce22df775e168a0eb5f99601db55f90bc3271d2ea5a8faee2a580f SHA512 8bbcd696bfd436eb76d4eee53db228c2d8c1351217ae9e171fd1e9a38e7c4903ff303c6931be733f3e2153e474f65668567bf720d6840f7325145b179d99b14f

View File

@ -0,0 +1,10 @@
--- nss/coreconf/Linux.mk
+++ nss/coreconf/Linux.mk
@@ -130,6 +130,7 @@
OPTIMIZER += -gdwarf-2
endif
endif
+OPTIMIZER += -fno-strict-aliasing
endif
ifndef COMPILER_TAG

View File

@ -0,0 +1,16 @@
--- nss/lib/dbm/include/mcom_db.h
+++ nss/lib/dbm/include/mcom_db.h
@@ -110,11 +110,13 @@
#endif /* !BYTE_ORDER */
#endif /* __sun */
+#ifndef BYTE_ORDER
#if defined(__hpux) || defined(__hppa)
#define BYTE_ORDER BIG_ENDIAN
#define BIG_ENDIAN 4321
#define LITTLE_ENDIAN 1234 /* LSB first: i386, vax, all NT risc */
#endif
+#endif /* !BYTE_ORDER */
#if defined(AIXV3) || defined(AIX)
/* BYTE_ORDER, LITTLE_ENDIAN, BIG_ENDIAN are all defined here */

View File

@ -0,0 +1,39 @@
https://bugzilla.mozilla.org/show_bug.cgi?id=1642174
From a7a862bab5e4aae4615ddae3cbe230345f92ed0d Mon Sep 17 00:00:00 2001
From: Lauri Kasanen <cand@gmx.com>
Date: Mon, 1 Jun 2020 12:11:45 +0300
Subject: [PATCH v3] Bug 1642174 /usr/bin/ld: OBJS/Linux_SINGLE_SHLIB/sha512-p8.o:
ABI version 2 is not compatible with ABI version 1 output
Don't try to build the SHA-2 accelerated asm on old-ABI ppc.
Currently make only, I don't have enough gyp-fu to do that side.
However, the reporters of 1642174 and 1635625 both used make, not gyp.
Signed-off-by: Lauri Kasanen <cand@gmx.com>
---
lib/freebl/Makefile | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/lib/freebl/Makefile b/lib/freebl/Makefile
index 5f7384429..e0461c7d3 100644
--- a/lib/freebl/Makefile
+++ b/lib/freebl/Makefile
@@ -267,9 +267,12 @@ ifeq ($(CPU_ARCH),arm)
endif
ifeq ($(CPU_ARCH),ppc)
EXTRA_SRCS += gcm-ppc.c
- ASFILES += sha512-p8.s
ifdef USE_64
DEFINES += -DNSS_NO_INIT_SUPPORT
+ PPC_ABI := $(shell $(CC) -dM -E - < /dev/null | awk '$$2 == "_CALL_ELF" {print $$3}')
+ ifeq ($(PPC_ABI),2)
+ ASFILES += sha512-p8.s
+ endif
endif # USE_64
endif # ppc
endif # Linux
--
2.19.1

View File

@ -0,0 +1,290 @@
From 1b3c48499abb000d708abe5f05413c1f4155e086 Mon Sep 17 00:00:00 2001
From: Jory Pratt <anarchy@gentoo.org>
Date: Mon, 8 Jun 2020 12:22:29 -0500
Subject: [PATCH] Add pkg-config and nss-config for Gentoo
---
Makefile | 15 +----
config/Makefile | 40 ++++++++++++
config/nss-config.in | 145 +++++++++++++++++++++++++++++++++++++++++++
config/nss.pc.in | 12 ++++
manifest.mn | 2 +-
5 files changed, 200 insertions(+), 14 deletions(-)
create mode 100644 config/Makefile
create mode 100644 config/nss-config.in
create mode 100644 config/nss.pc.in
diff --git a/Makefile b/Makefile
index eb4ed1a..f979d90 100644
--- a/Makefile
+++ b/Makefile
@@ -4,6 +4,8 @@
# 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/.
+default: nss_build_all
+
#######################################################################
# (1) Include initial platform-independent assignments (MANDATORY). #
#######################################################################
@@ -48,12 +50,9 @@ include $(CORE_DEPTH)/coreconf/rules.mk
#######################################################################
nss_build_all:
- $(MAKE) build_nspr
$(MAKE) all
- $(MAKE) latest
nss_clean_all:
- $(MAKE) clobber_nspr
$(MAKE) clobber
NSPR_CONFIG_STATUS = $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME)/config.status
@@ -138,16 +137,6 @@ $(NSPR_CONFIG_STATUS): $(NSPR_CONFIGURE)
--prefix='$(NSS_GYP_PREFIX)'
endif
-build_nspr: $(NSPR_CONFIG_STATUS)
- $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME)
- $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME)/pr/tests
-
-install_nspr: build_nspr
- $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME) install
-
-clobber_nspr: $(NSPR_CONFIG_STATUS)
- $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME) clobber
-
build_docs:
$(MAKE) -C $(CORE_DEPTH)/doc
diff --git a/config/Makefile b/config/Makefile
new file mode 100644
index 0000000..aaf1991
--- /dev/null
+++ b/config/Makefile
@@ -0,0 +1,40 @@
+CORE_DEPTH = ..
+DEPTH = ..
+
+include $(CORE_DEPTH)/coreconf/config.mk
+
+NSS_MAJOR_VERSION = $(shell grep -F "NSS_VMAJOR" ../lib/nss/nss.h | awk '{print $$3}')
+NSS_MINOR_VERSION = $(shell grep -F "NSS_VMINOR" ../lib/nss/nss.h | awk '{print $$3}')
+NSS_PATCH_VERSION = $(shell grep -F "NSS_VPATCH" ../lib/nss/nss.h | awk '{print $$3}')
+PREFIX = /usr
+
+all: export libs
+
+export:
+ # Create the nss.pc file
+ mkdir -p $(DIST)/lib/pkgconfig
+ sed -e "s,@prefix@,$(PREFIX)," \
+ -e "s,@exec_prefix@,\$${prefix}," \
+ -e "s,@libdir@,\$${prefix}/lib64," \
+ -e "s,@includedir@,\$${prefix}/include/nss," \
+ -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION),g" \
+ -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \
+ -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \
+ nss.pc.in > nss.pc
+ chmod 0644 nss.pc
+ ln -sf ../../../../config/nss.pc $(DIST)/lib/pkgconfig
+
+ # Create the nss-config script
+ mkdir -p $(DIST)/bin
+ sed -e "s,@prefix@,$(PREFIX)," \
+ -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION)," \
+ -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \
+ -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \
+ nss-config.in > nss-config
+ chmod 0755 nss-config
+ ln -sf ../../../config/nss-config $(DIST)/bin
+
+libs:
+
+dummy: all export libs
+
diff --git a/config/nss-config.in b/config/nss-config.in
new file mode 100644
index 0000000..3a957b8
--- /dev/null
+++ b/config/nss-config.in
@@ -0,0 +1,145 @@
+#!/bin/sh
+
+prefix=@prefix@
+
+major_version=@NSS_MAJOR_VERSION@
+minor_version=@NSS_MINOR_VERSION@
+patch_version=@NSS_PATCH_VERSION@
+
+usage()
+{
+ cat <<EOF
+Usage: nss-config [OPTIONS] [LIBRARIES]
+Options:
+ [--prefix[=DIR]]
+ [--exec-prefix[=DIR]]
+ [--includedir[=DIR]]
+ [--libdir[=DIR]]
+ [--version]
+ [--libs]
+ [--cflags]
+Dynamic Libraries:
+ nss
+ ssl
+ smime
+ nssutil
+EOF
+ exit $1
+}
+
+if test $# -eq 0; then
+ usage 1 1>&2
+fi
+
+lib_ssl=yes
+lib_smime=yes
+lib_nss=yes
+lib_nssutil=yes
+
+while test $# -gt 0; do
+ case "$1" in
+ -*=*) optarg=$(echo "$1" | sed 's/[-_a-zA-Z0-9]*=//') ;;
+ *) optarg= ;;
+ esac
+
+ case $1 in
+ --prefix=*)
+ prefix=${optarg}
+ ;;
+ --prefix)
+ echo_prefix=yes
+ ;;
+ --exec-prefix=*)
+ exec_prefix=${optarg}
+ ;;
+ --exec-prefix)
+ echo_exec_prefix=yes
+ ;;
+ --includedir=*)
+ includedir=${optarg}
+ ;;
+ --includedir)
+ echo_includedir=yes
+ ;;
+ --libdir=*)
+ libdir=${optarg}
+ ;;
+ --libdir)
+ echo_libdir=yes
+ ;;
+ --version)
+ echo ${major_version}.${minor_version}.${patch_version}
+ ;;
+ --cflags)
+ echo_cflags=yes
+ ;;
+ --libs)
+ echo_libs=yes
+ ;;
+ ssl)
+ lib_ssl=yes
+ ;;
+ smime)
+ lib_smime=yes
+ ;;
+ nss)
+ lib_nss=yes
+ ;;
+ nssutil)
+ lib_nssutil=yes
+ ;;
+ *)
+ usage 1 1>&2
+ ;;
+ esac
+ shift
+done
+
+# Set variables that may be dependent upon other variables
+if test -z "${exec_prefix}"; then
+ exec_prefix=$(pkg-config --variable=exec_prefix nss)
+fi
+if test -z "${includedir}"; then
+ includedir=$(pkg-config --variable=includedir nss)
+fi
+if test -z "${libdir}"; then
+ libdir=$(pkg-config --variable=libdir nss)
+fi
+
+if test "${echo_prefix}" = "yes"; then
+ echo ${prefix}
+fi
+
+if test "${echo_exec_prefix}" = "yes"; then
+ echo ${exec_prefix}
+fi
+
+if test "${echo_includedir}" = "yes"; then
+ echo ${includedir}
+fi
+
+if test "${echo_libdir}" = "yes"; then
+ echo ${libdir}
+fi
+
+if test "${echo_cflags}" = "yes"; then
+ echo -I${includedir}
+fi
+
+if test "${echo_libs}" = "yes"; then
+ libdirs=""
+ if test -n "${lib_ssl}"; then
+ libdirs="${libdirs} -lssl${major_version}"
+ fi
+ if test -n "${lib_smime}"; then
+ libdirs="${libdirs} -lsmime${major_version}"
+ fi
+ if test -n "${lib_nss}"; then
+ libdirs="${libdirs} -lnss${major_version}"
+ fi
+ if test -n "${lib_nssutil}"; then
+ libdirs="${libdirs} -lnssutil${major_version}"
+ fi
+ echo ${libdirs}
+fi
+
diff --git a/config/nss.pc.in b/config/nss.pc.in
new file mode 100644
index 0000000..03f1e39
--- /dev/null
+++ b/config/nss.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: NSS
+Description: Network Security Services
+Version: @NSS_MAJOR_VERSION@.@NSS_MINOR_VERSION@.@NSS_PATCH_VERSION@
+Requires: nspr >= 4.25
+Libs: -lssl3 -lsmime3 -lnss3 -lnssutil3
+Cflags: -I${includedir}
+
diff --git a/manifest.mn b/manifest.mn
index dada8ab..72dc9b3 100644
--- a/manifest.mn
+++ b/manifest.mn
@@ -10,7 +10,7 @@ IMPORTS = nspr20/v4.8 \
RELEASE = nss
-DIRS = coreconf lib cmd cpputil gtests
+DIRS = coreconf lib cmd cpputil config
lib: coreconf
cmd: lib
--
2.26.2

View File

@ -0,0 +1,351 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit eutils flag-o-matic multilib toolchain-funcs multilib-minimal
NSPR_VER="4.26"
RTM_NAME="NSS_${PV//./_}_RTM"
DESCRIPTION="Mozilla's Network Security Services library that implements PKI support"
HOMEPAGE="http://www.mozilla.org/projects/security/pki/nss/"
SRC_URI="https://archive.mozilla.org/pub/security/nss/releases/${RTM_NAME}/src/${P}.tar.gz
cacert? ( https://dev.gentoo.org/~axs/distfiles/${PN}-cacert-class1-class3.patch )"
LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
IUSE="cacert utils"
# pkg-config called by nss-config -> virtual/pkgconfig in RDEPEND
RDEPEND="
>=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}]
>=dev-db/sqlite-3.8.2[${MULTILIB_USEDEP}]
>=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]
virtual/pkgconfig
"
DEPEND="${RDEPEND}"
RESTRICT="test"
S="${WORKDIR}/${P}/${PN}"
MULTILIB_CHOST_TOOLS=(
/usr/bin/nss-config
)
PATCHES=(
# Custom changes for gentoo
"${FILESDIR}/${PN}-3.53-gentoo-fixups.patch"
"${FILESDIR}/${PN}-3.21-gentoo-fixup-warnings.patch"
"${FILESDIR}/${PN}-3.23-hppa-byte_order.patch"
"${FILESDIR}/${PN}-3.53-fix-building-on-ppc.patch"
)
src_prepare() {
if use cacert ; then #521462
PATCHES+=(
"${DISTDIR}/${PN}-cacert-class1-class3.patch"
)
fi
default
pushd coreconf >/dev/null || die
# hack nspr paths
echo 'INCLUDES += -I$(DIST)/include/dbm' \
>> headers.mk || die "failed to append include"
# modify install path
sed -e '/CORE_DEPTH/s:SOURCE_PREFIX.*$:SOURCE_PREFIX = $(CORE_DEPTH)/dist:' \
-i source.mk || die
# Respect LDFLAGS
sed -i -e 's/\$(MKSHLIB) -o/\$(MKSHLIB) \$(LDFLAGS) -o/g' rules.mk
popd >/dev/null || die
# Fix pkgconfig file for Prefix
sed -i -e "/^PREFIX =/s:= /usr:= ${EPREFIX}/usr:" \
config/Makefile || die
# use host shlibsign if need be #436216
if tc-is-cross-compiler ; then
sed -i \
-e 's:"${2}"/shlibsign:shlibsign:' \
cmd/shlibsign/sign.sh || die
fi
# dirty hack
sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../freebl/\$(OBJDIR):" \
lib/ssl/config.mk || die
sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../../lib/freebl/\$(OBJDIR):" \
cmd/platlibs.mk || die
multilib_copy_sources
strip-flags
}
multilib_src_configure() {
# Ensure we stay multilib aware
sed -i -e "/@libdir@/ s:lib64:$(get_libdir):" config/Makefile || die
}
nssarch() {
# Most of the arches are the same as $ARCH
local t=${1:-${CHOST}}
case ${t} in
aarch64*)echo "aarch64";;
hppa*) echo "parisc";;
i?86*) echo "i686";;
x86_64*) echo "x86_64";;
*) tc-arch ${t};;
esac
}
nssbits() {
local cc cppflags="${1}CPPFLAGS" cflags="${1}CFLAGS"
if [[ ${1} == BUILD_ ]]; then
cc=$(tc-getBUILD_CC)
else
cc=$(tc-getCC)
fi
echo > "${T}"/test.c || die
${cc} ${!cppflags} ${!cflags} -c "${T}"/test.c -o "${T}/${1}test.o" || die
case $(file "${T}/${1}test.o") in
*32-bit*x86-64*) echo USE_X32=1;;
*64-bit*|*ppc64*|*x86_64*) echo USE_64=1;;
*32-bit*|*ppc*|*i386*) ;;
*) die "Failed to detect whether ${cc} builds 64bits or 32bits, disable distcc if you're using it, please";;
esac
}
multilib_src_compile() {
# use ABI to determine bit'ness, or fallback if unset
local buildbits mybits
case "${ABI}" in
n32) mybits="USE_N32=1";;
x32) mybits="USE_X32=1";;
s390x|*64) mybits="USE_64=1";;
${DEFAULT_ABI})
einfo "Running compilation test to determine bit'ness"
mybits=$(nssbits)
;;
esac
# bitness of host may differ from target
if tc-is-cross-compiler; then
buildbits=$(nssbits BUILD_)
fi
local makeargs=(
CC="$(tc-getCC)"
CCC="$(tc-getCXX)"
AR="$(tc-getAR) rc \$@"
RANLIB="$(tc-getRANLIB)"
OPTIMIZER=
${mybits}
)
# Take care of nspr settings #436216
local myCPPFLAGS="${CPPFLAGS} $($(tc-getPKG_CONFIG) nspr --cflags)"
unset NSPR_INCLUDE_DIR
export NSS_ALLOW_SSLKEYLOGFILE=1
export NSS_ENABLE_WERROR=0 #567158
export BUILD_OPT=1
export NSS_USE_SYSTEM_SQLITE=1
export NSDISTMODE=copy
export FREEBL_NO_DEPEND=1
export FREEBL_LOWHASH=1
export NSS_SEED_ONLY_DEV_URANDOM=1
export USE_SYSTEM_ZLIB=1
export ZLIB_LIBS=-lz
export ASFLAGS=""
local d
# Build the host tools first.
LDFLAGS="${BUILD_LDFLAGS}" \
XCFLAGS="${BUILD_CFLAGS}" \
NSPR_LIB_DIR="${T}/fakedir" \
emake -j1 -C coreconf \
CC="$(tc-getBUILD_CC)" \
${buildbits-${mybits}}
makeargs+=( NSINSTALL="${PWD}/$(find -type f -name nsinstall)" )
# Then build the target tools.
for d in . lib/dbm ; do
CPPFLAGS="${myCPPFLAGS}" \
XCFLAGS="${CFLAGS} ${CPPFLAGS}" \
NSPR_LIB_DIR="${T}/fakedir" \
emake -j1 "${makeargs[@]}" -C ${d} OS_TEST="$(nssarch)"
done
}
# Altering these 3 libraries breaks the CHK verification.
# All of the following cause it to break:
# - stripping
# - prelink
# - ELF signing
# http://www.mozilla.org/projects/security/pki/nss/tech-notes/tn6.html
# Either we have to NOT strip them, or we have to forcibly resign after
# stripping.
#local_libdir="$(get_libdir)"
#export STRIP_MASK="
# */${local_libdir}/libfreebl3.so*
# */${local_libdir}/libnssdbm3.so*
# */${local_libdir}/libsoftokn3.so*"
export NSS_CHK_SIGN_LIBS="freebl3 nssdbm3 softokn3"
generate_chk() {
local shlibsign="$1"
local libdir="$2"
einfo "Resigning core NSS libraries for FIPS validation"
shift 2
local i
for i in ${NSS_CHK_SIGN_LIBS} ; do
local libname=lib${i}.so
local chkname=lib${i}.chk
"${shlibsign}" \
-i "${libdir}"/${libname} \
-o "${libdir}"/${chkname}.tmp \
&& mv -f \
"${libdir}"/${chkname}.tmp \
"${libdir}"/${chkname} \
|| die "Failed to sign ${libname}"
done
}
cleanup_chk() {
local libdir="$1"
shift 1
local i
for i in ${NSS_CHK_SIGN_LIBS} ; do
local libfname="${libdir}/lib${i}.so"
# If the major version has changed, then we have old chk files.
[ ! -f "${libfname}" -a -f "${libfname}.chk" ] \
&& rm -f "${libfname}.chk"
done
}
multilib_src_install() {
pushd dist >/dev/null || die
dodir /usr/$(get_libdir)
cp -L */lib/*$(get_libname) "${ED}"/usr/$(get_libdir) || die "copying shared libs failed"
local i
for i in crmf freebl nssb nssckfw ; do
cp -L */lib/lib${i}.a "${ED}"/usr/$(get_libdir) || die "copying libs failed"
done
# Install nss-config and pkgconfig file
dodir /usr/bin
cp -L */bin/nss-config "${ED}"/usr/bin || die
dodir /usr/$(get_libdir)/pkgconfig
cp -L */lib/pkgconfig/nss.pc "${ED}"/usr/$(get_libdir)/pkgconfig || die
# create an nss-softokn.pc from nss.pc for libfreebl and some private headers
# bug 517266
sed -e 's#Libs:#Libs: -lfreebl#' \
-e 's#Cflags:#Cflags: -I${includedir}/private#' \
*/lib/pkgconfig/nss.pc >"${ED}"/usr/$(get_libdir)/pkgconfig/nss-softokn.pc \
|| die "could not create nss-softokn.pc"
# all the include files
insinto /usr/include/nss
doins public/nss/*.{h,api}
insinto /usr/include/nss/private
doins private/nss/{blapi,alghmac,cmac}.h
popd >/dev/null || die
local f nssutils
# Always enabled because we need it for chk generation.
nssutils=( shlibsign )
if multilib_is_native_abi ; then
if use utils; then
# The tests we do not need to install.
#nssutils_test="bltest crmftest dbtest dertimetest
#fipstest remtest sdrtest"
# checkcert utils has been removed in nss-3.22:
# https://bugzilla.mozilla.org/show_bug.cgi?id=1187545
# https://hg.mozilla.org/projects/nss/rev/df1729d37870
# certcgi has been removed in nss-3.36:
# https://bugzilla.mozilla.org/show_bug.cgi?id=1426602
nssutils+=(
addbuiltin
atob
baddbdir
btoa
certutil
cmsutil
conflict
crlutil
derdump
digest
makepqg
mangle
modutil
multinit
nonspr10
ocspclnt
oidcalc
p7content
p7env
p7sign
p7verify
pk11mode
pk12util
pp
rsaperf
selfserv
signtool
signver
ssltap
strsclnt
symkeyutil
tstclnt
vfychain
vfyserv
)
# install man-pages for utils (bug #516810)
doman doc/nroff/*.1
fi
pushd dist/*/bin >/dev/null || die
for f in ${nssutils[@]}; do
dobin ${f}
done
popd >/dev/null || die
fi
# Prelink breaks the CHK files. We don't have any reliable way to run
# shlibsign after prelink.
dodir /etc/prelink.conf.d
printf -- "-b ${EPREFIX}/usr/$(get_libdir)/lib%s.so\n" ${NSS_CHK_SIGN_LIBS} \
> "${ED}"/etc/prelink.conf.d/nss.conf
}
pkg_postinst() {
multilib_pkg_postinst() {
# We must re-sign the libraries AFTER they are stripped.
local shlibsign="${EROOT}/usr/bin/shlibsign"
# See if we can execute it (cross-compiling & such). #436216
"${shlibsign}" -h >&/dev/null
if [[ $? -gt 1 ]] ; then
shlibsign="shlibsign"
fi
generate_chk "${shlibsign}" "${EROOT}"/usr/$(get_libdir)
}
multilib_foreach_abi multilib_pkg_postinst
}
pkg_postrm() {
multilib_pkg_postrm() {
cleanup_chk "${EROOT}"/usr/$(get_libdir)
}
multilib_foreach_abi multilib_pkg_postrm
}

View File

@ -0,0 +1 @@
DIST wayland-1.17.0.tar.xz 437680 BLAKE2B 2f4eb54c5ded90453b4e2812f7b5086aa211196ec9f7333d316cdb829269d55db570ccb45a67ee07a039633245e630ab54da6403ff4754d59366f3c13fb87549 SHA512 c5051aab5ff078b368c196ecfedb33ccd961265bb914845d7ed81de361bb86ae18299575baa6c4eceb0d82cf8b495e8293f31b51d1cbc05d84af0a199ab3f946

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>x11@gentoo.org</email>
<name>X11</name>
</maintainer>
</pkgmetadata>

View File

@ -0,0 +1,62 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=7
SRC_URI="https://wayland.freedesktop.org/releases/${P}.tar.xz"
inherit autotools libtool toolchain-funcs out-of-source
DESCRIPTION="Wayland protocol libraries"
HOMEPAGE="https://wayland.freedesktop.org/ https://gitlab.freedesktop.org/wayland/wayland"
LICENSE="MIT"
SLOT="0"
IUSE="doc static-libs"
KEYWORDS="*"
BDEPEND="
virtual/pkgconfig
doc? (
>=app-doc/doxygen-1.6[dot]
app-text/xmlto
>=media-gfx/graphviz-2.26.0
sys-apps/grep[pcre]
)
"
DEPEND="
>=dev-libs/expat-2.1.0-r3:=
dev-libs/libxml2:=
>=virtual/libffi-3.0.13-r1:=
"
RDEPEND="${DEPEND}
!<media-libs/mesa-18.1.1-r1
"
src_prepare() {
default
[[ $PV = 9999* ]] && eautoreconf || elibtoolize
}
my_src_configure() {
local myeconfargs=(
--disable-static
$(use_enable doc documentation)
$(use_enable doc dtd-validation)
)
tc-is-cross-compiler && myeconfargs+=( --with-host-scanner )
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
}
my_src_install_all() {
find "${D}" -name '*.la' -delete || die
einstalldocs
}
src_test() {
# We set it on purpose to only a short subdir name, as socket paths are
# created in there, which are 108 byte limited. With this it hopefully
# barely fits to the limit with /var/tmp/portage/$CAT/$PF/temp/xdr
export XDG_RUNTIME_DIR="${T}"/xdr
mkdir "${XDG_RUNTIME_DIR}" || die
chmod 0700 "${XDG_RUNTIME_DIR}" || die
}

View File

@ -0,0 +1,73 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
EGIT_REPO_URI="https://anongit.freedesktop.org/git/wayland/wayland.git"
if [[ ${PV} = 9999* ]]; then
GIT_ECLASS="git-r3"
fi
inherit autotools libtool ltprune multilib-minimal toolchain-funcs $GIT_ECLASS
DESCRIPTION="Wayland protocol libraries"
HOMEPAGE="https://wayland.freedesktop.org/"
if [[ $PV = 9999* ]]; then
SRC_URI=""
else
SRC_URI="https://wayland.freedesktop.org/releases/${P}.tar.xz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
fi
LICENSE="MIT"
SLOT="0"
IUSE="doc static-libs"
RDEPEND=">=dev-libs/expat-2.1.0-r3:=[${MULTILIB_USEDEP}]
>=virtual/libffi-3.0.13-r1:=[${MULTILIB_USEDEP}]
dev-libs/libxml2:=
!!<media-libs/mesa-18.1.1-r1"
DEPEND="${RDEPEND}
doc? (
>=app-doc/doxygen-1.6[dot]
app-text/xmlto
>=media-gfx/graphviz-2.26.0
sys-apps/grep[pcre]
)
virtual/pkgconfig"
src_prepare() {
default
[[ $PV = 9999* ]] && eautoreconf || elibtoolize
}
multilib_src_configure() {
local myconf
if tc-is-cross-compiler ; then
myconf+=' --with-host-scanner '
fi
ECONF_SOURCE="${S}" econf \
--disable-static \
$(multilib_native_use_enable doc documentation) \
$(multilib_native_enable dtd-validation) \
${myconf}
}
multilib_src_install_all() {
prune_libtool_files
einstalldocs
}
src_test() {
# We set it on purpose to only a short subdir name, as socket paths are
# created in there, which are 108 byte limited. With this it hopefully
# barely fits to the limit with /var/tmp/portage/$CAT/$PF/temp/xdr
export XDG_RUNTIME_DIR="${T}"/xdr
mkdir "${XDG_RUNTIME_DIR}" || die
chmod 0700 "${XDG_RUNTIME_DIR}" || die
multilib-minimal_src_test
}

View File

@ -0,0 +1,3 @@
AUX 0001-no-setup.patch 337 BLAKE2B ab8c5e068ad379165571c150ec64cc774c536558f384b579ab0c605512a6def2f4f8a5623079485b69dc3e6567c391c545d351d5a6740e5a0abf58733e2ead45 SHA512 71986adb4307bb7615c80a10875e286e699dafc12526b2864695f44a6f4773617ba23f1f35e99c57cc31f6ea21fd16057093e7fd828028234f1feb183e18462a
DIST isort-5.5.2.tar.gz 145020 BLAKE2B 718c3e748333e17a29b19a46779c40b21a674efb3b3358851973f383719a64fda44ab352bd005e368e0bec3d5c20472c27dba8f0e62ef53c7fd80785a4cc0228 SHA512 687e523073b671f7144027ce05b388566809673ffa36bc5890a51eb38f3a85c40d9861e6d2ee70e70710725579fe63a28ca45c0a8bc902761ad02bfe4656e5d2
EBUILD isort-5.5.2.ebuild 511 BLAKE2B e6e5fb31d5829a81cff2f3d9015357e172bf838db184d0f1d105ac90cd12c7dd16789e4e6f5ac258903e68a0e45d69835af8278a73c807b30782fb0cce6da67f SHA512 5721ce2d38b6d4edb08d427998b4f272c386d8adddc6e7cafdc1955211716cf9411d4f3426c3afb3c9f3097992c4d99a5695f27d5ab27507a6d8ffcdad6b2aca

View File

@ -0,0 +1,15 @@
--- a/setup.py 2020-09-15 10:50:44.048973353 +0200
+++ b/setup.py 2020-09-15 10:50:50.498973117 +0200
@@ -6,11 +6,7 @@
'isort._future',
'isort._vendored.toml',
'isort.deprecated',
- 'isort.stdlibs',
- 'tests',
- 'tests.integration',
- 'tests.unit',
- 'tests.unit.profiles']
+ 'isort.stdlibs']
package_data = \
{'': ['*']}

View File

@ -0,0 +1,24 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3+ pypy3 )
inherit distutils-r1
DESCRIPTION="A python utility/library to sort imports"
HOMEPAGE="https://pypi.org/project/isort/"
SRC_URI="https://files.pythonhosted.org/packages/49/af/6dc35623937fe93a6bccfd95a7b6fc295b34aca75c0d676a765ddb026dc1/isort-5.5.2.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="*"
BDEPEND="dev-python/setuptools"
PATCHES=(
"${FILESDIR}/0001-no-setup.patch"
)
src_prepare() {
default
}

1
dev-util/cargo/Manifest Normal file
View File

@ -0,0 +1 @@
EBUILD cargo-1.44.1.ebuild 203 BLAKE2B 519296c1f49182c41d92fdbfbe86bdbdca04ab9c84e01fbb709150c3d2dd000a4372eb2cc005f9a9914432f47e354f25421ce0041977d7e8a07c50aec725638e SHA512 c1ae8e4d284daea75640d3bb7c98dd3ebacd9e3a8e0876d77961a23465d9c30664608bc40bddd2f45d490be37a252b6ae526beeb415a1aceaa3ed05e852f7c7c

View File

@ -0,0 +1,13 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="Package manager for Rust"
HOMEPAGE=""
SRC_URI=""
LICENSE=""
SLOT="0"
KEYWORDS="*"
RDEPEND="=virtual/rust-${PV}"

View File

@ -0,0 +1,41 @@
DIST ansi_term-0.11.0.crate 17087 BLAKE2B 9bd35c045a01ce4c6c4a5db1b4f15e9412bb97426eec19d4421dffbec633de8d13452c13c1dc1b30998690b78d7ed38311aca700087f13a81f66bd1d5d7300c4 SHA512 a637466a380748f939b3af090b8c0333f35581925bc03f4dda9b3f95d338836403cf5487ae3af9ff68f8245a837f8ab061aabe57a126a6a2c20f2e972c77d1fa
DIST atty-0.2.13.crate 4764 BLAKE2B 673eea1d377fc3aca792a3a8bd2a5c058f3041abc76a8760dd6acab7f19fa610f812c57d81a4dbf773675cad3df483904c66e66b45d83393402f747c6db60d89 SHA512 4554ca7dedb4c2e8693e5847ef1fe66161ed4cb2c19156bb03f41ce7e7ea21838369dabaf447a60d1468de8bfbb7087438c12934c4569dde63df074f168569ad
DIST bitflags-1.2.1.crate 16745 BLAKE2B 0fa6d3ce44aad7616d5cd02aad8c1d0b0fed4022650eb43067c4a72e6fc88da05442674fa51826e4858a47c9de233e1ba2229820af094197cd11bb416ceffb2b SHA512 ad89b3798845e23737a620bba581c2ff1ff3e15bac12555c765e201d2c0b90ecea0cdbc5b5b1a3fa9858c385e8e041f8226f5acfae5bbbe9925643fff2bf3f0b
DIST c2-chacha-0.2.3.crate 13336 BLAKE2B 0b548907ce4c9ee502ec96307ca003d168e8bcf9007ec667661d158f33de36fc2e832cb3c36cadc2523f6ba8b9aeff4dcb16e7f95a9a34ae02e8bd5d00f65cf2 SHA512 302498f75d1befdb8bf8b61d0eff2762f0e86000c3909d819a377be2fec72e830bfb4530e24059906b499cef17ab56229f5627fb998ad9ba34a7c6c0de748538
DIST cbindgen-0.14.3.crate 165874 BLAKE2B 0155bccbacc70a2f8173117dde46c3bb48e07d0a0616b53ea56cade436cb6da1aa7106a82bf4ac55954cafbea1790f9200bdd3132032d3306ec755be0bb2f05c SHA512 abce798aff93260c28b0717df5fd25cf24b3eb89c9d05df4832d06169ec30db8e1c17a300f88087c6fbd4414a6aae6788e162dde838aac01c499afcb145c8461
DIST cbindgen-0.14.4.crate 172123 BLAKE2B e86fe619d824b25884570c7a34bdb6ceb3d4906b2309a3c16b29b46284f7bd855991910000a54605eaf2786ce4f570b647a469a2d02831919d9c0a17feda694f SHA512 1d1dfbb159aad25ecbe77368ced803a0cf219a00238364d95b1866f371912e10932e9a6ccda7acd8541b270b1880bda4a29af095a8d83b79a792e31d1ce2bd78
DIST cfg-if-0.1.10.crate 7933 BLAKE2B 063a96ed176f34f788666b40adc483d147fc011dee941ab60569ddd0e57502b5dd06ed71090f4e14ce005d06e240500a286f74652615e9d068fba649610d8cf8 SHA512 9d22616bfb4a75770a828a0a3cddac6787297a5fdc53eb17e25811cc94de717f2de8bd66d53c5d65ba1c83d8892aefee5ae758cf56a1ef0a0c3120f70b244339
DIST clap-2.33.0.crate 196458 BLAKE2B 3bb62d817afc77b421a6282746b9b61367d224de6b614c7ed66bde452ce1046728077dab3368a46635b5c74d82ba3196586d87c0201478ce5b89638910dadb1a SHA512 f1075031414d48e4340bfe308904a95a31b72460724773c52a0bc8c004e625a04c904a39fc5420cb8c26a633321f9b5f4f69019c7aae5ed89900b63ed8c21a91
DIST getrandom-0.1.13.crate 24581 BLAKE2B a61df4369526f860eef6952a021c3f473562cc4171c373c105d8944c305370592cd98a6c28cc0f8d00496f6b47cb900a4498dad942d0b6f60b4d8163d8904f14 SHA512 534b01d28bc9e69a5ad1e84f34aa4154939c27d70c5f557f15e669fa8894c375486ee945a6a6d8adaf1b6b7accda0e24963f70e77dd51ee0638a6ae6daa38925
DIST heck-0.3.1.crate 54666 BLAKE2B 99f7ceb44ea6af445749989730ce1e14156018ff046a136be2e6474b285088e1d90d6f8af9352affbbde5bac7e5a32971dd99f249f968105e9793b7de76def07 SHA512 134722192c46fd64b38d2fbec3a2511c560916e906491a72c4ec9d99b9f716dc58942fb99cac99b9a6ef2de5b5ad1d1c1155f292d091401b6873347d80c086d6
DIST itoa-0.4.4.crate 11147 BLAKE2B bb6f1caf1e58dc313bd3cfa2cf81252cb2ebc15e1f4c9adfcdedf46c5fa79811d5b0cbd58f1e91d1f62bf85d7b941b0dba535814fb43b5b70a38db791b45717c SHA512 f5e04bd908457e7592243ce64a99c5283428b767f4cc17d77946770411b06fccb0250625263c3e84a02a018ea7e8a0e4216e1929a71988bab8e1dbf603d3801d
DIST libc-0.2.66.crate 457815 BLAKE2B 5da379ea738b75189e106d4be821c999394043303b8bb6a9caecdb1b53e449f11a58edc4589193611b76e7baf00e155ba1077bcca4d0cfae30826e946a0075f0 SHA512 5bf5645a7cbe626108cd71e1d189286ed161fcd3ea12cd34f4e392be4cf93bf78feb6128b1101bedc41a71091398f26771f3efd3880f779ee0be00f706914975
DIST log-0.4.8.crate 31297 BLAKE2B 31037fdc2fc94f4ab8a6e89a251b0bc29975027dc7efb7cc86a8e848dfc8e2ae50acdb177b7ba9f7c1f20ec01e50798f89abb772d67a33f1b060ac617cf9a8ab SHA512 0b71f97d5964134b5eea1332347e177806b2f171d0be5c410c0ff1539470b242ba9f0933fafd853e4171a43b5e373a150af18918924be431c7216022553a8a3b
DIST ppv-lite86-0.2.6.crate 20522 BLAKE2B 6e1e4f3d0daa02148df390be19d3575626e66f6a78dbf27c1275f097c4307b80d8182f7795a270aa2c34d8c31c8c3eecc88e9507a6c9def0e91af11233aba90b SHA512 b9764a841364eb89157c828a183fdf6aeeb63d1d35e4f5dcba79e5d8e20eee8f22c845636c5c7bc980da1d141d838528d5f190546b23aa5e4e51e626a0ddce3d
DIST proc-macro2-1.0.6.crate 35414 BLAKE2B abec56bdf8bf2109337e007c59c7c9c78ff0af3848c9b45567b2ee1d5120ace78fdf327c61becf917ef64366e5947792608631f197d182753eeeaf81ffd2a1cd SHA512 d0a6358eb6f9334128a5b47c096bfc57452e13d603c9514df433409069c00468fa2b3c76761d7f3696abb061c1c3ba24150e0cf9be2c5d571d580238d2d27853
DIST quote-1.0.2.crate 23023 BLAKE2B 4091809b4fc9b8d0b56be814b127d6ffd7c1507becba85dc905606cbe85f46233dc4b429c1e865e7c7de336cb936d956169ceb5dd45b489b7722022ccf818a3a SHA512 67778dff9dc5c4edcdd6454b74ad9353bb6c0c4e51c16cb82f2e393a7d7a0cde084d3c93279b718a8398c40af0a9377ebfae5321e69e635efd8390c125b75ce4
DIST rand-0.7.2.crate 111438 BLAKE2B c9e81a0b2bcf5a3d425865dad2babd90187da55b9c70fce4aea4ed2e2ffe9cfe4e66bb280f1acee11e1f1ad17d3a73e906ac6cd35e6a2124852b66093293bd48 SHA512 d29d10e9788f0f44b56b2981aca01a115eca1018e6afe2428fca088cc9432f27d014c6f1f0c819317052f4c64a9c54cee8834eb08e081f292ad65160dcdd014c
DIST rand_chacha-0.2.1.crate 11475 BLAKE2B 698f830845e24b85fe52b11e9a1c621dcdbe4232bc22f3dc0b1d2fcd4427045f302f74134d9b451fc5b4f9ac559fb2bc06f3d0eec5eddb6fd6cf3e6d3030855e SHA512 30933fdb94ca8d4bf040a7e08a42944a0d7c2f3f6a9a3d547e74bc32f922b0eb79d85afb1f6c85c78dc115170e70bdf96b36f0478d61ba5651876d5350ad18f6
DIST rand_core-0.5.1.crate 21116 BLAKE2B e74791f941a79971f2741172d489d546373c9abcb0dfbffcb7b97b858ec800b2e0c97df4ac636f3aa1b8dd6c14685edf317336d577f31b5c6cb7d89a157e547a SHA512 4f7500b35e165e6c817fdd67a50745d5497d24e554bb554705097e37258751e8755c4d6b8a69fcb5e1977708ba78620bc35d640e4e018fcd4e88d9dbdbebdcbf
DIST rand_hc-0.2.0.crate 11670 BLAKE2B 55fd048f2524cecd4f0e17927a81111e3070a8cc6a5b0234a46445400ad5527194edf8c91fb5ad6538f4958d53044ab02424f61a38adb2931e2cb7568c458ee8 SHA512 bca185612bed5cee4da76fb68fe854105da276f5bf2da464e596d586b925df798cc692ed881e276ab77c36b4b0551930966c93656be122ad05899d87853533b0
DIST redox_syscall-0.1.56.crate 17117 BLAKE2B 57b1b01ef3cbc6f55def6c9a0dcde16bd98e83badcef993e26ae3ce849abcd1b1c10f4da931c605970d77f92471734764a537e7329291a221343fde23f3591eb SHA512 17a3044327aa733c830dd74e210d6bda32622617d1c5af9d70d7647232d8569ad0b04ccb14042cbabb5d97ad98e3f1f5a9968a75387354ffb4d175e9577115a1
DIST remove_dir_all-0.5.2.crate 8907 BLAKE2B 585f49f83db3ace90dd0b4fc77aab7525844194c82d36cc33ab8999aaa6226d24a130c30f55e2c46a08273cc554d9d4c8bc51958aa7dbf1045085b2e22639e4e SHA512 d19a45398a93adbcef9f233f6b3eaf4a63ae95f5bbae00c880b40c5edd34449e7f798ebcd4d11843c68ddfa15e11bed21d434b224e4a175dcb64ae011c13c8cd
DIST ryu-1.0.2.crate 42001 BLAKE2B c25f0454bfac40de3150b8c263c6d2842e64f86f441a69ab5e5722a2383a9a07c7539837f6e50996619eb0c4a5da212556a4dd21a761a250785fe0a9c4e18a3c SHA512 c681e037f1eea488bad7fb5ecc79af52377bd4b9eeed95eb213201219d7f100702000f81947aff8f18641235fb62c138a30eb20c1f93ae518a4d9960a598bb64
DIST serde-1.0.104.crate 73258 BLAKE2B 98d63f91c61ac4693e17e0b137379cffd6608933b84d2211509be6b3b25b181592d5e907549fac6ae2e4a45255b8003e1bfd0db683429ac3e78d8ee097d3d79c SHA512 638a1dacc158d69658a005e599adc19d6bc80d0c663f527b1ff906f729e70e027eacc4ea5b9b2c675ac990d5997f50f9d46d614ba95b0c73bb9606aba46b053a
DIST serde_derive-1.0.104.crate 49658 BLAKE2B d4a9ecb4a8df87776a83d645778dc050803b16fd5c9889f28e231238223d424dd25b101412e89741fb47be624d1773acf97f6e38809c81110b696701975168df SHA512 303c3d126ca56b0a7126a87e9e1be8bd60bdb212ed21b5e1aee015313fd769f1d260869c41b0335bd467fd4e3fc6bb26f428c7c4b35e9a55c009797cfa745d1e
DIST serde_json-1.0.44.crate 70325 BLAKE2B c8f5836e3448bbf5fd666b30e747b90f84eb7dbaaf078026456082b5403bbcc1931c70528abbf0e605872271861c1e7dabfe1f42d5a13c2b02f5abb28b342e61 SHA512 ce1c68bfd2ceaa8b7f45cd34cfbc71dcfe3905b06fa47032403c54aa9eed0e618cd526938eb78dbc201e9480dbd64b4bfb405f2119478229f5cea12056dcf5e4
DIST strsim-0.8.0.crate 9309 BLAKE2B 40a8be506c43ee1ffe006ddc7dee98c3d418bdd205d57b78f5d1e4c9312feb57e1eaf952e02d92d4e0932db240c6fba45beb06ea8c4fc6de1cf1faa8b6a3a939 SHA512 1d55a8d946cd55f5f37d06aea536549ded95739fa58c0f2da285a0041154c181f663682bdcac643aa198b3e762d694a04f058db985c62ebe22b5c16327ba6d34
DIST syn-1.0.11.crate 193782 BLAKE2B 17e0b40ee69575efea77249343af2fa67af0990f08ac8efced152ebb88ad1301211306a2317ec163219d485a097878f8552ca353f43f35ffd5d172e6c92da0df SHA512 6b361c6cb27aebb3da5e81db270e7cd0fe8bfb11289c25ce46127214e222c2b64f53164c8869de41b77e9b780f967454ed5d7c5b73442ae292eadc4dea77494c
DIST tempfile-3.1.0.crate 25823 BLAKE2B a34721369923771d5f9a2fc64adaff2bff41da97a0ce79e01aaedb8d6670867220c671c0d23f7a8a9c71b09c0559efe4e7c9bab1f7f9d890866be1de1ce050a9 SHA512 a87ee51c36a81a8a8eb8f091eb57926682f38b707f7f641332d8752170e6c139a656ae49c6861f51e07c2fab5c86cc9b2ac158f5d89c6bff15d18934dd4e7ba5
DIST textwrap-0.11.0.crate 17322 BLAKE2B 257428908342774593bbd3528fcdae710712ff54e8a711393a24356d8ba0e16e466a4b20c05f942c48ca76b3b5b5aaa90ec202f782cad892caa8b71ccf124da6 SHA512 f5c0fe4f28ff1a3a0931e8e235b5157a45f67967985bcc752418c5ec3481fca44a8ae4800088889b37e8cd0533f53d3c456d5ffd19b767b3f83a87b49a2e209a
DIST toml-0.5.5.crate 54805 BLAKE2B 2b319f37165164793866bc4a470ed99447fdccb59242c94e5311906dc764f54131f2bc14921caab56bf84706d12800fb26a58210e3e58728f4076edc9a66e771 SHA512 8f6a04dc24ea775a9a28cc948039f20540ec983c46b287ebfa820e29cc5867803765ce099283f79d3b4a22c513b386603dbd8130808cb3354bc63b5d4706cb33
DIST unicode-segmentation-1.6.0.crate 90703 BLAKE2B b7d63bb8b62cabc604084957aaff021df24a1291f0ebdcddc424cceefe10ad399ed53152211c3e7557e39e21255166f922256f9f8e1fb488d3bae368b49a378e SHA512 80c6f92d9b39602a05809dc63a7cb05a305441689b6056801097a882a36c9795aabd660f884f707daa7e7fe6ad4983f6e245c226962cc982dbfeea2ddfddf41e
DIST unicode-width-0.1.7.crate 16644 BLAKE2B 8cc5ee2dfeeda8ffe3405a0d4f1576d2b3b8ede1a42cbefb0ba3bd0d71b53a92ceade86c4a06e9d5b31382955dc6e1152ae5cd279dc26dbc51f478dad1d0f64d SHA512 39b8a539c9009d0421f54ae68b139f21456c9cb03d743b58535a977f98bc9655cf42eaacfadbcff796c187a6f315ae16259ee22be9c2da5aa042172c6b464d84
DIST unicode-xid-0.2.0.crate 14994 BLAKE2B e66b4255798f0ef1c81fb852613fee396a042d780d2158a171dbb5e7dedad0b3d2522f5401ae5d215f89ab8be4f5c371b046e4845693a65554c2a6eedc5d1e28 SHA512 590f727d8d8354023062ae5fe7ac5bed1bcf79d86b883effd7f33b3ea3b1c8922998a63d621ca6962a969e890fa6edd009871f21cd57b1969264f41ba3f78359
DIST vec_map-0.8.1.crate 14959 BLAKE2B f5c179ccb4349d543747d5e3bb3edfca4bc9f3f64ba3c2d40fb1d9cba98433b7a0641387aafda6347c9b3603592c64bd820b217b46fbfcd37f802f298e5793ab SHA512 026cf10dc7ba98ae51dd312fc847cbaea41c25f0da5db6e0e22c2ecf75584bbf876d7bd96035fbbcf6696d702d5a3f25977e02a2d77cf519aa21e3ed05710e40
DIST wasi-0.7.0.crate 33941 BLAKE2B de1e4e577a1237a233f81ff1a3bd7f888020a42d93a807187a154a3ae0593397358a8667a065f0cdd5497dd2a89889e418d33a0d42ab1631b3f99677e9ebd665 SHA512 1950e78df7f0ba21b917680633d092704f1fb906bd973de4ddc43cedb7bf449f6e881d50e3aa0d5595e8d58796915d582b69c116ef536f819b6f035affea18f0
DIST winapi-0.3.8.crate 1128308 BLAKE2B e0e8ef6121f222b0500525192ebb69b26b71cc16f9ba92186f8ad6acc9de4cb8cc7c738f9c31f5bd223d2e34c93c496e8448c973d69797776004670c70abf69c SHA512 5a899ee5f09f30d742b8b8eba78da05cd9f4c664408fdeb9370373f8756a962a23e3f1c07619e745b3270138606c9a369076c02c3f5353f657df09d203d9a736
DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2
DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513
EBUILD cbindgen-0.14.3.ebuild 970 BLAKE2B ebc12682113ef7cd06974b72bb5d45ad3005475e3bac615d061efe7a3b3493a2964633f3a77d2691ce0587835f552b924572fdc7803fdd33e67ae44ac9647ab8 SHA512 aaf99043f26afaac6bb138bc0cf5dd66c6f4eaf2568c17988f77e9ed93a5ff3ee4e36fcdb3ce71897b00b7d94a1f012b53faf86ef342a10fc2b6fc5a7befab15
EBUILD cbindgen-0.14.4.ebuild 973 BLAKE2B d4b703a2fa4022ee6e8c683c73a6c29ef9b4de3aca7bebbe36f97deb8d7165b79dcce230ad0cdc9a1cddf14c0d933464e33c4d1b3a07378d0434765c4f96254d SHA512 f73de464787bba6289cf8eb24c0a77714b20de3fc3d5d4af36a00f39d5bc9f4a76f1d763811fd63afd9ff3a9b07abdc3a5b0b9f1cef6bca2a1a6584d8aec9023

View File

@ -0,0 +1,54 @@
# Copyright 2017-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
CRATES="
ansi_term-0.11.0
atty-0.2.13
bitflags-1.2.1
c2-chacha-0.2.3
cbindgen-0.14.3
cfg-if-0.1.10
clap-2.33.0
getrandom-0.1.13
heck-0.3.1
itoa-0.4.4
libc-0.2.66
log-0.4.8
ppv-lite86-0.2.6
proc-macro2-1.0.6
quote-1.0.2
rand-0.7.2
rand_chacha-0.2.1
rand_core-0.5.1
rand_hc-0.2.0
redox_syscall-0.1.56
remove_dir_all-0.5.2
ryu-1.0.2
serde-1.0.104
serde_derive-1.0.104
serde_json-1.0.44
strsim-0.8.0
syn-1.0.11
tempfile-3.1.0
textwrap-0.11.0
toml-0.5.5
unicode-segmentation-1.6.0
unicode-width-0.1.7
unicode-xid-0.2.0
vec_map-0.8.1
wasi-0.7.0
winapi-0.3.8
winapi-i686-pc-windows-gnu-0.4.0
winapi-x86_64-pc-windows-gnu-0.4.0
"
inherit cargo
DESCRIPTION="A tool for generating C bindings to Rust code"
HOMEPAGE="https://github.com/eqrion/cbindgen/"
SRC_URI="$(cargo_crate_uris ${CRATES})"
LICENSE="MIT MPL-2.0"
SLOT="0"
KEYWORDS="amd64 ~arm arm64 ~ppc64 x86"

View File

@ -0,0 +1,54 @@
# Copyright 2017-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
CRATES="
ansi_term-0.11.0
atty-0.2.13
bitflags-1.2.1
c2-chacha-0.2.3
cbindgen-0.14.4
cfg-if-0.1.10
clap-2.33.0
getrandom-0.1.13
heck-0.3.1
itoa-0.4.4
libc-0.2.66
log-0.4.8
ppv-lite86-0.2.6
proc-macro2-1.0.6
quote-1.0.2
rand-0.7.2
rand_chacha-0.2.1
rand_core-0.5.1
rand_hc-0.2.0
redox_syscall-0.1.56
remove_dir_all-0.5.2
ryu-1.0.2
serde-1.0.104
serde_derive-1.0.104
serde_json-1.0.44
strsim-0.8.0
syn-1.0.11
tempfile-3.1.0
textwrap-0.11.0
toml-0.5.5
unicode-segmentation-1.6.0
unicode-width-0.1.7
unicode-xid-0.2.0
vec_map-0.8.1
wasi-0.7.0
winapi-0.3.8
winapi-i686-pc-windows-gnu-0.4.0
winapi-x86_64-pc-windows-gnu-0.4.0
"
inherit cargo
DESCRIPTION="A tool for generating C bindings to Rust code"
HOMEPAGE="https://github.com/eqrion/cbindgen/"
SRC_URI="$(cargo_crate_uris ${CRATES})"
LICENSE="MIT MPL-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"

View File

@ -0,0 +1,7 @@
DIST harfbuzz-2.5.3.tar.xz 5685712 BLAKE2B a9d8a46b6a0667c598ea011f020b09d8fd795105483a8b307ee2a9399de2b84bf3b29659f9a3f7500250879bbb412003ee6f68aaba01b68824bd489615f737e6 SHA512 a2e6cedbe0e505fa31b540e0d0bc6c0b07080bd39879c27e04d351103e21201d75a809dd2fad559bf994b82b311f67ad85778cbbfb670d7e2580beafa09e93ff
DIST harfbuzz-2.6.4.tar.xz 5967468 BLAKE2B 24d215324a408a724f47a901c4a56605144d15373518bd52643ece83705d0c63582a80635ecef6a6d8d2f5f39c750076d553fb39aaa8c0dd41702ee910c32f24 SHA512 d8664bb64fda11ff7646693070637e3827f8b3d1de50e11ecf108ce4d19c878b26b2ba4cff278da6e6cc0cb431e1630d9eaa7c32a9bebb9655a7aa8dabf7114f
DIST harfbuzz-2.6.8.tar.xz 8976516 BLAKE2B 46401ae06ec70172621d2aa354901f03173a273abdb0db909332946643e82b4286be690ac717a29304e9db121dd7f693b4ce19522de772f5d140986d6333e7ce SHA512 651b23d7d4fab6fef472ee57db39bbaebc31c2f40ea3a482c1499ad1a7b549b86a2bccbe9da191c8e9ecdf464191dd3c9a7485546b51695ad8ab3c0329732d9d
EBUILD harfbuzz-2.5.3-r1.ebuild 3033 BLAKE2B fe45f37cd4e9b419188d38603aa8b83c2af8c67175ec350cc6e34f6f8e7f7b18b6aff0c0c6adbfb67661f18432687ee09386ca4e5bb6b4c63579c6b74826a6cf SHA512 29832f1637d6f3c09786831601ada4fe763538201d1143fdea9ad97a36362ad1a1c30eddd23ec220d15e15bf88996fb6764c6fcf8eecef8f3bb3bf832686b038
EBUILD harfbuzz-2.6.4.ebuild 2261 BLAKE2B 7781e96662022e898341482977d14125c87b2ea379e6913b4c34a2be12ff7155f7fa7098221af659f80eac7a3dbbb1d3852c189fad93bc1015c68c611ec65cab SHA512 10e977d1273df060436361b89d8f9daee3c9bb23637409b070f49c2af5fbc35bf91e2b6985173bd2d797ebd5530271972a0491f1ce515bd03d4b8ab5e5af6e19
EBUILD harfbuzz-2.6.8.ebuild 3172 BLAKE2B 232619df1e95eb0caa3cb4c04697ed49b30f4a7703d71f42f23eea057537eac686217e64ec91db04b1cfa24bab37ea265d40523ddb41adf7e9da3f099073a042 SHA512 1142604a0975cd202231b58261d689bba20f4c38f13c50e81ce3d7c22f717530c8dece6c8e10824cf9c446d02096042d6caac071945115b36272aec9b2779540
MISC metadata.xml 645 BLAKE2B aadcef9412392874d361b5c09e7450bf88db64fa704558553861cf16ffd1a5b5715291fefc0624e3ad0d86a537cdbd2b810fa093b289428e68a19c82049188ef SHA512 645e451768a5dba2e16d18b51ece20fa28172450bf22e29fe73ed29748f712187f997ce2f6f0a24c725f0cb10434b4a65c6de9a5fd1aa7d820e00b7dca8b8b63

View File

@ -0,0 +1,110 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_7 )
inherit flag-o-matic libtool multilib-minimal python-any-r1 xdg-utils
DESCRIPTION="An OpenType text shaping engine"
HOMEPAGE="https://www.freedesktop.org/wiki/Software/HarfBuzz"
if [[ ${PV} = 9999 ]] ; then
EGIT_REPO_URI="https://anongit.freedesktop.org/git/harfbuzz.git"
inherit git-r3 autotools
else
SRC_URI="https://www.freedesktop.org/software/${PN}/release/${P}.tar.xz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi
LICENSE="Old-MIT ISC icu"
SLOT="0/0.9.18" # 0.9.18 introduced the harfbuzz-icu split; bug #472416
IUSE="+cairo debug +glib +graphite icu +introspection static-libs test +truetype"
REQUIRED_USE="introspection? ( glib )"
RDEPEND="
cairo? ( x11-libs/cairo:= )
glib? ( >=dev-libs/glib-2.38:2[${MULTILIB_USEDEP}] )
graphite? ( >=media-gfx/graphite2-1.2.1:=[${MULTILIB_USEDEP}] )
icu? ( >=dev-libs/icu-51.2-r1:=[${MULTILIB_USEDEP}] )
introspection? ( >=dev-libs/gobject-introspection-1.34:= )
truetype? ( >=media-libs/freetype-2.5.0.1:2=[${MULTILIB_USEDEP}] )
"
DEPEND="${RDEPEND}
test? ( ${PYTHON_DEPS} )
"
BDEPEND="
dev-util/gtk-doc-am
virtual/pkgconfig
"
# eautoreconf requires gobject-introspection-common
# ragel needed if regenerating *.hh files from *.rl
if [[ ${PV} = 9999 ]] ; then
DEPEND+="
>=dev-libs/gobject-introspection-common-1.34
dev-util/ragel
"
fi
pkg_setup() {
use test && python-any-r1_pkg_setup
if ! use debug ; then
append-cppflags -DHB_NDEBUG
fi
}
src_prepare() {
default
xdg_environment_reset
if [[ ${CHOST} == *-darwin* || ${CHOST} == *-solaris* ]] ; then
# on Darwin/Solaris we need to link with g++, like automake defaults
# to, but overridden by upstream because on Linux this is not
# necessary, bug #449126
sed -i \
-e 's/\<LINK\>/CXXLINK/' \
src/Makefile.am || die
sed -i \
-e '/libharfbuzz_la_LINK = /s/\<LINK\>/CXXLINK/' \
src/Makefile.in || die
sed -i \
-e '/AM_V_CCLD/s/\<LINK\>/CXXLINK/' \
test/api/Makefile.in || die
fi
[[ ${PV} == 9999 ]] && eautoreconf
elibtoolize # for Solaris
# bug 618772
append-cxxflags -std=c++14
}
multilib_src_configure() {
# harfbuzz-gobject only used for instrospection, bug #535852
local myeconfargs=(
--without-coretext
--without-fontconfig #609300
--without-uniscribe
$(use_enable static-libs static)
$(multilib_native_use_with cairo)
$(use_with glib)
$(use_with introspection gobject)
$(use_with graphite graphite2)
$(use_with icu)
$(multilib_native_use_enable introspection)
$(use_with truetype freetype)
)
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
if multilib_is_native_abi; then
ln -s "${S}"/docs/html docs/html || die
fi
}
multilib_src_install_all() {
einstalldocs
find "${ED}" -name "*.la" -delete || die
}

View File

@ -0,0 +1,95 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{7,8} )
inherit flag-o-matic libtool python-any-r1 xdg-utils
DESCRIPTION="An OpenType text shaping engine"
HOMEPAGE="https://www.freedesktop.org/wiki/Software/HarfBuzz"
SRC_URI="https://www.freedesktop.org/software/${PN}/release/${P}.tar.xz"
KEYWORDS="*"
LICENSE="Old-MIT ISC icu"
SLOT="0/0.9.18" # 0.9.18 introduced the harfbuzz-icu split; bug #472416
IUSE="+cairo debug +glib +graphite icu +introspection static-libs test +truetype"
REQUIRED_USE="introspection? ( glib )"
RDEPEND="
cairo? ( >=x11-libs/cairo-1.8.0:= )
glib? ( >=dev-libs/glib-2.38:2 )
graphite? ( >=media-gfx/graphite2-1.2.0:= )
icu? ( >=dev-libs/icu-51.2-r1:= )
introspection? ( >=dev-libs/gobject-introspection-1.34:= )
truetype? ( >=media-libs/freetype-2.4.2:2= )
"
DEPEND="${RDEPEND}
test? ( ${PYTHON_DEPS} )
"
BDEPEND="
dev-util/gtk-doc-am
virtual/pkgconfig
"
pkg_setup() {
use test && python-any-r1_pkg_setup
if ! use debug ; then
append-cppflags -DHB_NDEBUG
fi
}
src_prepare() {
default
xdg_environment_reset
if [[ ${CHOST} == *-darwin* || ${CHOST} == *-solaris* ]] ; then
# on Darwin/Solaris we need to link with g++, like automake defaults
# to, but overridden by upstream because on Linux this is not
# necessary, bug #449126
sed -i \
-e 's/\<LINK\>/CXXLINK/' \
src/Makefile.am || die
sed -i \
-e '/libharfbuzz_la_LINK = /s/\<LINK\>/CXXLINK/' \
src/Makefile.in || die
sed -i \
-e '/AM_V_CCLD/s/\<LINK\>/CXXLINK/' \
test/api/Makefile.in || die
fi
[[ ${PV} == 9999 ]] && eautoreconf
elibtoolize # for Solaris
# bug 618772
append-cxxflags -std=c++14
}
src_configure() {
# harfbuzz-gobject only used for instrospection, bug #535852
local myeconfargs=(
--without-coretext
--without-fontconfig #609300
--without-uniscribe
$(use_enable static-libs static)
$(use_with cairo)
$(use_with glib)
$(use_with introspection gobject)
$(use_with graphite graphite2)
$(use_with icu)
$(use_enable introspection)
$(use_with truetype freetype)
)
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
ln -s "${S}"/docs/html docs/html
}
src_install() {
default
einstalldocs
find "${ED}" -name "*.la" -delete || die
}

View File

@ -0,0 +1,116 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{6,7,8} )
inherit autotools flag-o-matic libtool multilib-minimal python-any-r1 xdg-utils
DESCRIPTION="An OpenType text shaping engine"
HOMEPAGE="https://www.freedesktop.org/wiki/Software/HarfBuzz"
if [[ ${PV} = 9999 ]] ; then
EGIT_REPO_URI="https://github.com/harfbuzz/harfbuzz.git"
inherit git-r3
else
SRC_URI="https://github.com/${PN}/${PN}/releases/download/${PV}/${P}.tar.xz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi
LICENSE="Old-MIT ISC icu"
SLOT="0/0.9.18" # 0.9.18 introduced the harfbuzz-icu split; bug #472416
IUSE="+cairo debug +glib +graphite icu +introspection static-libs test +truetype"
RESTRICT="!test? ( test )"
REQUIRED_USE="introspection? ( glib )"
RDEPEND="
cairo? ( x11-libs/cairo:= )
glib? ( >=dev-libs/glib-2.38:2[${MULTILIB_USEDEP}] )
graphite? ( >=media-gfx/graphite2-1.2.1:=[${MULTILIB_USEDEP}] )
icu? ( >=dev-libs/icu-51.2-r1:=[${MULTILIB_USEDEP}] )
introspection? ( >=dev-libs/gobject-introspection-1.34:= )
truetype? ( >=media-libs/freetype-2.5.0.1:2=[${MULTILIB_USEDEP}] )
"
DEPEND="${RDEPEND}
test? ( ${PYTHON_DEPS} )
"
BDEPEND="
dev-util/gtk-doc-am
virtual/pkgconfig
"
# eautoreconf requires gobject-introspection-common
# ragel needed if regenerating *.hh files from *.rl
if [[ ${PV} = 9999 ]] ; then
DEPEND+="
>=dev-libs/gobject-introspection-common-1.34
dev-util/ragel
"
fi
pkg_setup() {
use test && python-any-r1_pkg_setup
if ! use debug ; then
append-cppflags -DHB_NDEBUG
fi
}
src_prepare() {
default
xdg_environment_reset
if [[ ${CHOST} == *-darwin* || ${CHOST} == *-solaris* ]] ; then
# on Darwin/Solaris we need to link with g++, like automake defaults
# to, but overridden by upstream because on Linux this is not
# necessary, bug #449126
sed -i \
-e 's/\<LINK\>/CXXLINK/' \
src/Makefile.am || die
sed -i \
-e '/libharfbuzz_la_LINK = /s/\<LINK\>/CXXLINK/' \
src/Makefile.in || die
sed -i \
-e '/AM_V_CCLD/s/\<LINK\>/CXXLINK/' \
test/api/Makefile.in || die
fi
sed -i \
-e 's:tests/macos.tests::' \
test/shaping/data/in-house/Makefile.sources \
test/shaping/data/in-house/Makefile.in || die # bug 726120
eautoreconf
elibtoolize # for Solaris
# bug 618772
append-cxxflags -std=c++14
}
multilib_src_configure() {
# harfbuzz-gobject only used for instrospection, bug #535852
local myeconfargs=(
--without-coretext
--without-fontconfig #609300
--without-uniscribe
$(use_enable static-libs static)
$(multilib_native_use_with cairo)
$(use_with glib)
$(use_with introspection gobject)
$(use_with graphite graphite2)
$(use_with icu)
$(multilib_native_use_enable introspection)
$(use_with truetype freetype)
)
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
if multilib_is_native_abi; then
ln -s "${S}"/docs/html docs/html || die
fi
}
multilib_src_install_all() {
einstalldocs
find "${ED}" -type f -name "*.la" -delete || die
}

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>polynomial-c@gentoo.org</email>
<name>Lars Wendler</name>
</maintainer>
<maintainer type="project">
<email>office@gentoo.org</email>
<name>Gentoo Office project</name>
</maintainer>
<maintainer type="project">
<email>gnome@gentoo.org</email>
<name>Gentoo GNOME Desktop</name>
</maintainer>
<use>
<flag name="glib">Compile with GLib Unicode support</flag>
<flag name="graphite">Use graphite to render complex non-Roman writing systems</flag>
</use>
</pkgmetadata>

View File

@ -1,2 +1,10 @@
AUX libvpx-1.3.0-sparc-configure.patch 406 BLAKE2B 02b1f0484a9659fdc90eb567db517a8b63f679521ae9ab510bfaa88b9fd5e1430d0eceeb8e4a138b00cb43ac4a1db6451dd29a808367973dc885fe5b9eacd665 SHA512 159ba5577fc0eee3e958740d8607a7570f374a8f64a36f1e7832a126482ec0bb96ba2be451eefdf50d84a412a2be73ae75da3d69da78ec13dfe0e24a14685035
AUX libvpx-1.7.0-CVE-2019-9232_9325_9371_9433.patch 8035 BLAKE2B 785a8769741e5af10ce0f18f6ef9f091d1335ca1c8515c9b653d3a177a620a8b3360b7df03f058b63e42259d6e4ccb6863e0ec9acd69886627a222ea3b8beb2d SHA512 b5af677b7f8fc6c61ea1c99c094103549cbe1a0163da70f51d4c34eec40b507a7bf8f84f97ee141a15c33bfaf2a6cb36c572a08465407fb17eb9b6a1364a3819
DIST libvpx-1.7.0.tar.gz 2679797 BLAKE2B de7992adb517e375c5be2a9facf2b4a73174adcaef11185ed6d3102c2f6b73f378b0d415c5e3a4d915b3a6889bd8b31ba3e8c007a87a433a345ef7696a1dd899 SHA512 8b3b766b550f8d86907628d7ed88035f9a2612aac21542e0fd5ad35b905eb82cbe1be02a1a24afce7a3bcc4766f62611971f72724761996b392136c40a1e7ff0
DIST libvpx-1.8.2.tar.gz 5312988 BLAKE2B 4d27eb457c20e70f5b68b589962692d4938cf69e889009cd6aa74cbefb3afd53ba2733420e5a8feb1388558969d95d5a26e1fc60b9b8ef6a0be8dade7d54ee0b SHA512 da2ab0775a28ddd78654bbe46886e833d4ef7ba91867fc1427dceced735b6177eff06b24f204c075c50c3a5cadc5be6a1fb213c44df189218a543b52554f3a38
DIST libvpx-1.9.0.tar.gz 5326239 BLAKE2B 6403a5d8326235a8d27ca3727f45398556cbe72cd125ae358c22f729cc01d6a81917cca8a6e97ad0ed01e7fc04ca4212baf21f371323b93ccc8830c4a11acf91 SHA512 8d544552b35000ea5712aec220b78bb5f7dc210704b2f609365214cb95a4f5a0e343b362723d829cb4a9ac203b10d5443700ba84b28fd6b2fefbabb40663e298
DIST libvpx-testdata-1.8.2.tar.xz 422945340 BLAKE2B 117c26e77b9cda30ca083382981fd88139905fec756e362c6c8497adee26796cd9adab752b197b1eedb9f5e26970100c08fd0e3bd42184fd3e12afe927acad3e SHA512 a1616d1c199983d47157c2e99b409e781df86804048f9a7345f2e682ffc2c6d79ab95f5cf3ccb01c0db498e79686086d9c7aa2c2c07e53cb7f642afd1e38ea35
DIST libvpx-testdata-1.9.0.tar.xz 450868860 BLAKE2B aaed7f2ef4f70ff352e39be2630e3a5cd803e8d2408c4fd5c3e06e040a75d2f593a10bc267a497aa91eaceb64286e81f69e86ca0940160e4f34b62c08e91df7b SHA512 bcc89062a436d652d15d5852a842cb4985c4783855b943ab11667c022b5082887129fd9579b8da3af209a3031f95ff8dc625c380f79559db160501cd676736ea
EBUILD libvpx-1.7.0.ebuild 4063 BLAKE2B 4712537cf3ebaa5bffb0af30fa5100e3b5f20c016f8a4d9f68cb2c43317b393a00af19028f4fde48f38e1f66248da5713d653a5c27a87e1f52f29f935c951e9c SHA512 5bdce3f25d09c925de12e986294684a03209def39d630732efb12eda411f3e13a5c64c54d5f9fe51b8cad695dd43c5474eb4bd06a4c59d4dc284b5eb3be5d7d4
EBUILD libvpx-1.8.2.ebuild 3436 BLAKE2B 5c78fa513348cad6d6a1560a72fc4d0c15c746ea6f52843182f3b30d8d71e1f76ee245c95291ba9356a147de1f73f65f5a7a147aa1cd6d861fdaf5831ec7fe62 SHA512 2fc98db752426b5530a3c42b9a4a03a4e38e79d2746d42be3d5ffce155c9aa5e49f6d17a28c2535bb5fbdae8bea31fd90e0e15fa74ee51dface9b90a2357ae1a
EBUILD libvpx-1.9.0.ebuild 3464 BLAKE2B 0c9d235a33c0b764ebf7c5dac44cf78083d81d622ea6c939c897360850ec34fd0e46b24994d1a68e5daf7c1f89edcfb8fa31d3cd9d48d373bbab7900baf04595 SHA512 60595a1d6b225caa1e29ee4a22fd8064cf1e537b3610e1a016052c9fd4c1da2a603b7acb183ccf83ff23ef716ad052b8f88a2a9cc7aa11feca7eddf9070936c5

12
media-libs/libvpx/app.log Normal file
View File

@ -0,0 +1,12 @@
2020-09-07 19:21:43,046 [ DEBUG]: Program started with: ['/home/gerardo/Dev/gerardo/samsung_remote/samsung_remote.py', '-p']
2020-09-07 19:21:44,648 [ ERROR]: No Samsung TV found in the network.
2020-09-07 19:21:46,489 [ DEBUG]: Program started with: ['/home/gerardo/Dev/gerardo/samsung_remote/samsung_remote.py', '-p']
2020-09-07 19:21:48,091 [ ERROR]: No Samsung TV found in the network.
2020-09-07 19:21:49,638 [ DEBUG]: Program started with: ['/home/gerardo/Dev/gerardo/samsung_remote/samsung_remote.py', '-p']
2020-09-07 19:21:51,240 [ ERROR]: No Samsung TV found in the network.
2020-09-07 19:21:51,940 [ DEBUG]: Program started with: ['/home/gerardo/Dev/gerardo/samsung_remote/samsung_remote.py', '-p']
2020-09-07 19:21:53,542 [ ERROR]: No Samsung TV found in the network.
2020-09-07 19:21:54,019 [ DEBUG]: Program started with: ['/home/gerardo/Dev/gerardo/samsung_remote/samsung_remote.py', '-p']
2020-09-07 19:21:55,621 [ ERROR]: No Samsung TV found in the network.
2020-09-07 19:21:59,630 [ DEBUG]: Program started with: ['/home/gerardo/Dev/gerardo/samsung_remote/samsung_remote.py', '-p']
2020-09-07 19:22:01,232 [ ERROR]: No Samsung TV found in the network.

View File

@ -0,0 +1,10 @@
--- a/configure
+++ b/configure
@@ -109,6 +109,7 @@
all_platforms="${all_platforms} ppc64-darwin9-gcc"
all_platforms="${all_platforms} ppc64-linux-gcc"
all_platforms="${all_platforms} sparc-solaris-gcc"
+all_platforms="${all_platforms} sparc-linux-gcc"
all_platforms="${all_platforms} x86-android-gcc"
all_platforms="${all_platforms} x86-darwin8-gcc"
all_platforms="${all_platforms} x86-darwin8-icc"

View File

@ -0,0 +1,211 @@
Backports of
From 46e17f0cb4a80b36755c84b8bf15731d3386c08f Mon Sep 17 00:00:00 2001
From: kyslov <kyslov@google.com>
Date: Fri, 4 Jan 2019 17:04:09 -0800
Subject: [PATCH] Fix OOB memory access on fuzzed data
From 0681cff1ad36b3ef8ec242f59b5a6c4234ccfb88 Mon Sep 17 00:00:00 2001
From: James Zern <jzern@google.com>
Date: Tue, 24 Jul 2018 21:36:50 -0700
Subject: [PATCH] vp9: fix OOB read in decoder_peek_si_internal
From f00890eecdf8365ea125ac16769a83aa6b68792d Mon Sep 17 00:00:00 2001
From: James Zern <jzern@google.com>
Date: Tue, 11 Dec 2018 18:06:20 -0800
Subject: [PATCH] update libwebm to libwebm-1.0.0.27-352-g6ab9fcf
From 34d54b04e98dd0bac32e9aab0fbda0bf501bc742 Mon Sep 17 00:00:00 2001
From: James Zern <jzern@google.com>
Date: Tue, 9 Apr 2019 18:37:44 -0700
Subject: [PATCH] update libwebm to libwebm-1.0.0.27-358-gdbf1d10
From 52add5896661d186dec284ed646a4b33b607d2c7 Mon Sep 17 00:00:00 2001
From: Jerome Jiang <jianj@google.com>
Date: Wed, 23 May 2018 15:43:00 -0700
Subject: [PATCH] VP8: Fix use-after-free in postproc.
to address CVE-2019-9232 CVE-2019-9325 CVE-2019-9371 CVE-2019-9433
--- a/test/decode_api_test.cc
+++ b/test/decode_api_test.cc
@@ -138,8 +138,30 @@ TEST(DecodeAPI, Vp9InvalidDecode) {
EXPECT_EQ(VPX_CODEC_OK, vpx_codec_destroy(&dec));
}
-TEST(DecodeAPI, Vp9PeekSI) {
+void TestPeekInfo(const uint8_t *const data, uint32_t data_sz,
+ uint32_t peek_size) {
const vpx_codec_iface_t *const codec = &vpx_codec_vp9_dx_algo;
+ // Verify behavior of vpx_codec_decode. vpx_codec_decode doesn't even get
+ // to decoder_peek_si_internal on frames of size < 8.
+ if (data_sz >= 8) {
+ vpx_codec_ctx_t dec;
+ EXPECT_EQ(VPX_CODEC_OK, vpx_codec_dec_init(&dec, codec, NULL, 0));
+ EXPECT_EQ((data_sz < peek_size) ? VPX_CODEC_UNSUP_BITSTREAM
+ : VPX_CODEC_CORRUPT_FRAME,
+ vpx_codec_decode(&dec, data, data_sz, NULL, 0));
+ vpx_codec_iter_t iter = NULL;
+ EXPECT_EQ(NULL, vpx_codec_get_frame(&dec, &iter));
+ EXPECT_EQ(VPX_CODEC_OK, vpx_codec_destroy(&dec));
+ }
+
+ // Verify behavior of vpx_codec_peek_stream_info.
+ vpx_codec_stream_info_t si;
+ si.sz = sizeof(si);
+ EXPECT_EQ((data_sz < peek_size) ? VPX_CODEC_UNSUP_BITSTREAM : VPX_CODEC_OK,
+ vpx_codec_peek_stream_info(codec, data, data_sz, &si));
+}
+
+TEST(DecodeAPI, Vp9PeekStreamInfo) {
// The first 9 bytes are valid and the rest of the bytes are made up. Until
// size 10, this should return VPX_CODEC_UNSUP_BITSTREAM and after that it
// should return VPX_CODEC_CORRUPT_FRAME.
@@ -150,24 +172,18 @@ TEST(DecodeAPI, Vp9PeekSI) {
};
for (uint32_t data_sz = 1; data_sz <= 32; ++data_sz) {
- // Verify behavior of vpx_codec_decode. vpx_codec_decode doesn't even get
- // to decoder_peek_si_internal on frames of size < 8.
- if (data_sz >= 8) {
- vpx_codec_ctx_t dec;
- EXPECT_EQ(VPX_CODEC_OK, vpx_codec_dec_init(&dec, codec, NULL, 0));
- EXPECT_EQ(
- (data_sz < 10) ? VPX_CODEC_UNSUP_BITSTREAM : VPX_CODEC_CORRUPT_FRAME,
- vpx_codec_decode(&dec, data, data_sz, NULL, 0));
- vpx_codec_iter_t iter = NULL;
- EXPECT_EQ(NULL, vpx_codec_get_frame(&dec, &iter));
- EXPECT_EQ(VPX_CODEC_OK, vpx_codec_destroy(&dec));
- }
+ TestPeekInfo(data, data_sz, 10);
+ }
+}
+
+TEST(DecodeAPI, Vp9PeekStreamInfoTruncated) {
+ // This profile 1 header requires 10.25 bytes, ensure
+ // vpx_codec_peek_stream_info doesn't over read.
+ const uint8_t profile1_data[10] = { 0xa4, 0xe9, 0x30, 0x68, 0x53,
+ 0xe9, 0x30, 0x68, 0x53, 0x04 };
- // Verify behavior of vpx_codec_peek_stream_info.
- vpx_codec_stream_info_t si;
- si.sz = sizeof(si);
- EXPECT_EQ((data_sz < 10) ? VPX_CODEC_UNSUP_BITSTREAM : VPX_CODEC_OK,
- vpx_codec_peek_stream_info(codec, data, data_sz, &si));
+ for (uint32_t data_sz = 1; data_sz <= 10; ++data_sz) {
+ TestPeekInfo(profile1_data, data_sz, 11);
}
}
#endif // CONFIG_VP9_DECODER
--- a/third_party/libwebm/mkvparser/mkvparser.cc
+++ b/third_party/libwebm/mkvparser/mkvparser.cc
@@ -5307,8 +5307,8 @@ long VideoTrack::Parse(Segment* pSegment, const Info& info,
const long long stop = pos + s.size;
- Colour* colour = NULL;
- Projection* projection = NULL;
+ std::unique_ptr<Colour> colour_ptr;
+ std::unique_ptr<Projection> projection_ptr;
while (pos < stop) {
long long id, size;
@@ -5357,11 +5357,19 @@ long VideoTrack::Parse(Segment* pSegment, const Info& info,
if (rate <= 0)
return E_FILE_FORMAT_INVALID;
} else if (id == libwebm::kMkvColour) {
- if (!Colour::Parse(pReader, pos, size, &colour))
+ Colour* colour = NULL;
+ if (!Colour::Parse(pReader, pos, size, &colour)) {
return E_FILE_FORMAT_INVALID;
+ } else {
+ colour_ptr.reset(colour);
+ }
} else if (id == libwebm::kMkvProjection) {
- if (!Projection::Parse(pReader, pos, size, &projection))
+ Projection* projection = NULL;
+ if (!Projection::Parse(pReader, pos, size, &projection)) {
return E_FILE_FORMAT_INVALID;
+ } else {
+ projection_ptr.reset(projection);
+ }
}
pos += size; // consume payload
@@ -5392,8 +5400,8 @@ long VideoTrack::Parse(Segment* pSegment, const Info& info,
pTrack->m_display_unit = display_unit;
pTrack->m_stereo_mode = stereo_mode;
pTrack->m_rate = rate;
- pTrack->m_colour = colour;
- pTrack->m_projection = projection;
+ pTrack->m_colour = colour_ptr.release();
+ pTrack->m_projection = projection_ptr.release();
pResult = pTrack;
return 0; // success
--- a/vp8/common/postproc.c
+++ b/vp8/common/postproc.c
@@ -65,7 +65,7 @@ void vp8_deblock(VP8_COMMON *cm, YV12_BUFFER_CONFIG *source,
double level = 6.0e-05 * q * q * q - .0067 * q * q + .306 * q + .0065;
int ppl = (int)(level + .5);
- const MODE_INFO *mode_info_context = cm->show_frame_mi;
+ const MODE_INFO *mode_info_context = cm->mi;
int mbr, mbc;
/* The pixel thresholds are adjusted according to if or not the macroblock
--- a/vp8/decoder/dboolhuff.h
+++ b/vp8/decoder/dboolhuff.h
@@ -76,7 +76,7 @@ static int vp8dx_decode_bool(BOOL_DECODER *br, int probability) {
}
{
- register int shift = vp8_norm[range];
+ const unsigned char shift = vp8_norm[(unsigned char)range];
range <<= shift;
value <<= shift;
count -= shift;
--- a/vp9/vp9_dx_iface.c
+++ b/vp9/vp9_dx_iface.c
@@ -97,7 +97,7 @@ static vpx_codec_err_t decoder_peek_si_internal(
const uint8_t *data, unsigned int data_sz, vpx_codec_stream_info_t *si,
int *is_intra_only, vpx_decrypt_cb decrypt_cb, void *decrypt_state) {
int intra_only_flag = 0;
- uint8_t clear_buffer[10];
+ uint8_t clear_buffer[11];
if (data + data_sz <= data) return VPX_CODEC_INVALID_PARAM;
@@ -158,6 +158,9 @@ static vpx_codec_err_t decoder_peek_si_internal(
if (profile > PROFILE_0) {
if (!parse_bitdepth_colorspace_sampling(profile, &rb))
return VPX_CODEC_UNSUP_BITSTREAM;
+ // The colorspace info may cause vp9_read_frame_size() to need 11
+ // bytes.
+ if (data_sz < 11) return VPX_CODEC_UNSUP_BITSTREAM;
}
rb.bit_offset += REF_FRAMES; // refresh_frame_flags
vp9_read_frame_size(&rb, (int *)&si->w, (int *)&si->h);
--- a/vpx_dsp/bitreader.h
+++ b/vpx_dsp/bitreader.h
@@ -94,7 +94,7 @@ static INLINE int vpx_read(vpx_reader *r, int prob) {
}
{
- register int shift = vpx_norm[range];
+ const unsigned char shift = vpx_norm[(unsigned char)range];
range <<= shift;
value <<= shift;
count -= shift;
--- a/vpx_dsp/bitreader_buffer.c
+++ b/vpx_dsp/bitreader_buffer.c
@@ -23,7 +23,7 @@ int vpx_rb_read_bit(struct vpx_read_bit_buffer *rb) {
rb->bit_offset = off + 1;
return bit;
} else {
- rb->error_handler(rb->error_handler_data);
+ if (rb->error_handler != NULL) rb->error_handler(rb->error_handler_data);
return 0;
}
}

View File

@ -0,0 +1,118 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
inherit toolchain-funcs multilib-minimal
# To create a new testdata tarball:
# 1. Unpack source tarbll or checkout git tag
# 2. export LIBVPX_TEST_DATA_PATH=libvpx-testdata
# 3. configure --enable-unit-tests --enable-vp9-highbitdepth
# 4. make testdata
# 5. tar -cjf libvpx-testdata-${MY_PV}.tar.xz libvpx-testdata
LIBVPX_TESTDATA_VER=1.8.2
DESCRIPTION="WebM VP8 and VP9 Codec SDK"
HOMEPAGE="https://www.webmproject.org"
SRC_URI="https://github.com/webmproject/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
test? ( https://dev.gentoo.org/~whissi/dist/libvpx/${PN}-testdata-${LIBVPX_TESTDATA_VER}.tar.xz )"
LICENSE="BSD"
SLOT="0/6"
KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
IUSE="doc +highbitdepth postproc static-libs svc test +threads"
REQUIRED_USE="test? ( threads )"
# Disable test phase when USE="-test"
RESTRICT="!test? ( test )"
BDEPEND="abi_x86_32? ( dev-lang/yasm )
abi_x86_64? ( dev-lang/yasm )
abi_x86_x32? ( dev-lang/yasm )
x86-fbsd? ( dev-lang/yasm )
amd64-fbsd? ( dev-lang/yasm )
doc? (
app-doc/doxygen
dev-lang/php
)
"
PATCHES=(
"${FILESDIR}/libvpx-1.3.0-sparc-configure.patch" # 501010
)
src_configure() {
# https://bugs.gentoo.org/show_bug.cgi?id=384585
# https://bugs.gentoo.org/show_bug.cgi?id=465988
# copied from php-pear-r1.eclass
addpredict /usr/share/snmp/mibs/.index #nowarn
addpredict /var/lib/net-snmp/ #nowarn
addpredict /var/lib/net-snmp/mib_indexes #nowarn
addpredict /session_mm_cli0.sem #nowarn
multilib-minimal_src_configure
}
multilib_src_configure() {
unset CODECS #357487
# #498364: sse doesn't work without sse2 enabled,
local myconfargs=(
--prefix="${EPREFIX}"/usr
--libdir="${EPREFIX}"/usr/$(get_libdir)
--enable-pic
--enable-vp8
--enable-vp9
--enable-shared
--extra-cflags="${CFLAGS}"
$(use_enable postproc)
$(use_enable svc experimental)
$(use_enable static-libs static)
$(use_enable test unit-tests)
$(use_enable threads multithread)
$(use_enable highbitdepth vp9-highbitdepth)
)
# let the build system decide which AS to use (it honours $AS but
# then feeds it with yasm flags without checking...) #345161
tc-export AS
case "${CHOST}" in
i?86*) export AS=yasm;;
x86_64*) export AS=yasm;;
esac
# powerpc toolchain is not recognized anymore, #694368
[[ ${CHOST} == powerpc-* ]] && myconfargs+=( --force-target=generic-gnu )
# Build with correct toolchain.
tc-export CC CXX AR NM
# Link with gcc by default, the build system should override this if needed.
export LD="${CC}"
if multilib_is_native_abi; then
myconfargs+=( $(use_enable doc install-docs) $(use_enable doc docs) )
else
# not needed for multilib and will be overwritten anyway.
myconfargs+=( --disable-examples --disable-install-docs --disable-docs )
fi
echo "${S}"/configure "${myconfargs[@]}" >&2
"${S}"/configure "${myconfargs[@]}"
}
multilib_src_compile() {
# build verbose by default and do not build examples that will not be installed
emake verbose=yes GEN_EXAMPLES=
}
multilib_src_test() {
local -x LD_LIBRARY_PATH="${BUILD_DIR}"
local -x LIBVPX_TEST_DATA_PATH="${WORKDIR}/${PN}-testdata"
emake verbose=yes GEN_EXAMPLES= test
}
multilib_src_install() {
emake verbose=yes GEN_EXAMPLES= DESTDIR="${D}" install
multilib_is_native_abi && use doc && dodoc -r docs/html
}

View File

@ -0,0 +1,119 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
inherit toolchain-funcs multilib-minimal
# To create a new testdata tarball:
# 1. Unpack source tarball or checkout git tag
# 2. mkdir libvpx-testdata
# 3. export LIBVPX_TEST_DATA_PATH=libvpx-testdata
# 4. configure --enable-unit-tests --enable-vp9-highbitdepth
# 5. make testdata
# 6. tar -caf libvpx-testdata-${MY_PV}.tar.xz libvpx-testdata
LIBVPX_TESTDATA_VER=1.9.0
DESCRIPTION="WebM VP8 and VP9 Codec SDK"
HOMEPAGE="https://www.webmproject.org"
SRC_URI="https://github.com/webmproject/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
test? ( https://dev.gentoo.org/~whissi/dist/libvpx/${PN}-testdata-${LIBVPX_TESTDATA_VER}.tar.xz )"
LICENSE="BSD"
SLOT="0/6"
KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
IUSE="doc +highbitdepth postproc static-libs svc test +threads"
REQUIRED_USE="test? ( threads )"
# Disable test phase when USE="-test"
RESTRICT="!test? ( test )"
BDEPEND="abi_x86_32? ( dev-lang/yasm )
abi_x86_64? ( dev-lang/yasm )
abi_x86_x32? ( dev-lang/yasm )
x86-fbsd? ( dev-lang/yasm )
amd64-fbsd? ( dev-lang/yasm )
doc? (
app-doc/doxygen
dev-lang/php
)
"
PATCHES=(
"${FILESDIR}/libvpx-1.3.0-sparc-configure.patch" # 501010
)
src_configure() {
# https://bugs.gentoo.org/show_bug.cgi?id=384585
# https://bugs.gentoo.org/show_bug.cgi?id=465988
# copied from php-pear-r1.eclass
addpredict /usr/share/snmp/mibs/.index #nowarn
addpredict /var/lib/net-snmp/ #nowarn
addpredict /var/lib/net-snmp/mib_indexes #nowarn
addpredict /session_mm_cli0.sem #nowarn
multilib-minimal_src_configure
}
multilib_src_configure() {
unset CODECS #357487
# #498364: sse doesn't work without sse2 enabled,
local myconfargs=(
--prefix="${EPREFIX}"/usr
--libdir="${EPREFIX}"/usr/$(get_libdir)
--enable-pic
--enable-vp8
--enable-vp9
--enable-shared
--extra-cflags="${CFLAGS}"
$(use_enable postproc)
$(use_enable svc experimental)
$(use_enable static-libs static)
$(use_enable test unit-tests)
$(use_enable threads multithread)
$(use_enable highbitdepth vp9-highbitdepth)
)
# let the build system decide which AS to use (it honours $AS but
# then feeds it with yasm flags without checking...) #345161
tc-export AS
case "${CHOST}" in
i?86*) export AS=yasm;;
x86_64*) export AS=yasm;;
esac
# powerpc toolchain is not recognized anymore, #694368
[[ ${CHOST} == powerpc-* ]] && myconfargs+=( --force-target=generic-gnu )
# Build with correct toolchain.
tc-export CC CXX AR NM
# Link with gcc by default, the build system should override this if needed.
export LD="${CC}"
if multilib_is_native_abi; then
myconfargs+=( $(use_enable doc install-docs) $(use_enable doc docs) )
else
# not needed for multilib and will be overwritten anyway.
myconfargs+=( --disable-examples --disable-install-docs --disable-docs )
fi
echo "${S}"/configure "${myconfargs[@]}" >&2
"${S}"/configure "${myconfargs[@]}"
}
multilib_src_compile() {
# build verbose by default and do not build examples that will not be installed
emake verbose=yes GEN_EXAMPLES=
}
multilib_src_test() {
local -x LD_LIBRARY_PATH="${BUILD_DIR}"
local -x LIBVPX_TEST_DATA_PATH="${WORKDIR}/${PN}-testdata"
emake verbose=yes GEN_EXAMPLES= test
}
multilib_src_install() {
emake verbose=yes GEN_EXAMPLES= DESTDIR="${D}" install
multilib_is_native_abi && use doc && dodoc -r docs/html
}

View File

@ -1 +1,4 @@
DIST libwebp-1.0.1.tar.gz 4030276 SHA512 44e0c278b4569c03c39a1e047bccd7b4270bda12feae0dadc54f8a61fd6a66be011229f1e7e853f64749bcd9ea9e8146989e2b632459b67a4aaea4a8033a1361
DIST libwebp-1.0.1.tar.gz 4030276 BLAKE2B 4ea3b31bac14c61fbedad14ed675adb4cc0deaed83f8c58f8d589ab2453a8cff33d7832acba39c673aa31cbb3d5c6b487151173d162f92a3698115833b03b694 SHA512 44e0c278b4569c03c39a1e047bccd7b4270bda12feae0dadc54f8a61fd6a66be011229f1e7e853f64749bcd9ea9e8146989e2b632459b67a4aaea4a8033a1361
DIST libwebp-1.1.0.tar.gz 4033877 BLAKE2B ac6c2267f43ba42079975938c8fecb75237a494ab8a4ca71b68a49c3d219afa92079fd94431ccbcc363a1e6aef890642a658f429b8d75cd90dd5d735fa37dcef SHA512 c8440059a985587d4876a5e7fc2d07523bc7f582a04ee5dab0ef07df32b9635b907224de2cc15246c831dd5d9215569770196626badccc3171fe2832d7cb4549
EBUILD libwebp-1.0.1.ebuild 1780 BLAKE2B afaa8d09c4ea4ae4e7c6c9a9f58620518e46b2b9946dbb148291c507c7daa568831063db2ce1dd0e7ae4539114ee3e82ce0a0f4ad1f07a739d8e6409e39c22b7 SHA512 b258c8ab17c12ccf7c5daf68edfb6bbde1fcb32f65949ecdb6ca8df8c48fd437971e4bf4ef6890b4fe4ee5438c7ad96e772fb4f20925f4012b7a6b87d80b5115
EBUILD libwebp-1.1.0.ebuild 1852 BLAKE2B a79fb48b5a141d098e38652d4da6f6b195e167faeecc78b7c14b1ff7b448fd8891de4fc10381d8a6ed3f39a6821a9aae35c77b92fa33a67b43a20d8c6f9d980d SHA512 2fbccf21e2ca844f1399a5fd0ef51f726291113708612a9639d4dcfd1f078c70cac5885f0f0c2f01cfbfd592fdfe0ef331272595fd34f4fc499841330d6477b5

View File

@ -0,0 +1,70 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit autotools libtool multilib-minimal
MY_P="${P/_/-}"
DESCRIPTION="A lossy image compression format"
HOMEPAGE="https://developers.google.com/speed/webp/download"
SRC_URI="http://downloads.webmproject.org/releases/webp/${MY_P}.tar.gz"
LICENSE="BSD"
SLOT="0/7" # subslot = libwebp soname version
[[ "${PV}" = *_rc* ]] || \
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="cpu_flags_arm_neon cpu_flags_x86_sse2 cpu_flags_x86_sse4_1 gif +jpeg opengl +png static-libs swap-16bit-csp tiff"
# TODO: dev-lang/swig bindings in swig/ subdirectory
RDEPEND="gif? ( media-libs/giflib:= )
jpeg? ( virtual/jpeg:0= )
opengl? (
media-libs/freeglut
virtual/opengl
)
png? ( media-libs/libpng:0= )
tiff? ( media-libs/tiff:0= )"
DEPEND="${RDEPEND}"
S="${WORKDIR}/${MY_P}"
src_prepare() {
default
# Fix libtool relinking, bug 499270.
#elibtoolize
eautoreconf
}
multilib_src_configure() {
local args=(
--enable-libwebpmux
--enable-libwebpdemux
--enable-libwebpdecoder
$(use_enable static-libs static)
$(use_enable swap-16bit-csp)
$(use_enable jpeg)
$(use_enable png)
$(use_enable opengl gl)
$(use_enable tiff)
$(use_enable cpu_flags_x86_sse2 sse2)
$(use_enable cpu_flags_x86_sse4_1 sse4.1)
$(use_enable cpu_flags_arm_neon neon)
# Only used for gif2webp binary wrt #486646
$(multilib_native_use_enable gif)
)
ECONF_SOURCE="${S}" econf "${args[@]}"
}
multilib_src_install() {
emake DESTDIR="${D}" install
}
multilib_src_install_all() {
find "${ED}" -type f -name "*.la" -delete || die
dodoc AUTHORS ChangeLog doc/*.txt NEWS README{,.mux}
}

1
virtual/cargo/Manifest Normal file
View File

@ -0,0 +1 @@
EBUILD cargo-1.44.1.ebuild 203 BLAKE2B 519296c1f49182c41d92fdbfbe86bdbdca04ab9c84e01fbb709150c3d2dd000a4372eb2cc005f9a9914432f47e354f25421ce0041977d7e8a07c50aec725638e SHA512 c1ae8e4d284daea75640d3bb7c98dd3ebacd9e3a8e0876d77961a23465d9c30664608bc40bddd2f45d490be37a252b6ae526beeb415a1aceaa3ed05e852f7c7c

View File

@ -0,0 +1,13 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="Package manager for Rust"
HOMEPAGE=""
SRC_URI=""
LICENSE=""
SLOT="0"
KEYWORDS="*"
RDEPEND="=virtual/rust-${PV}"

1
virtual/rust/Manifest Normal file
View File

@ -0,0 +1 @@
EBUILD rust-1.44.1.ebuild 259 BLAKE2B d6d92a6d0ce4f3aeb04678b38053660c621646aa68fa9e213f5b677af11c10631d4c5278f084806c0658f237335c656ef6f851c44dd343a39195196117c1cbba SHA512 396652f4a4ca721887fc3a28b7ae1a6611bd24ea9f725e9959d63ce30a1cb7979c100409f9922e6037e134fab167d6f2051442a1e0223b7c403d72fc151ba595

View File

@ -0,0 +1,14 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="Virtual for Rust language compiler"
HOMEPAGE=""
SRC_URI=""
LICENSE=""
SLOT="0"
KEYWORDS="*"
BDEPEND=""
RDEPEND="|| ( =dev-lang/rust-bin-${PV}* =dev-lang/rust-${PV}* )"

View File

@ -0,0 +1,13 @@
AUX 01-chromium.conf 967 BLAKE2B d5da500872d5fdca245420942e1a5718ebd1bd4d47d0496306910c5929d4336b69082b48a6190e4617efebdbec68fd5fe8c67be3f8f3a2a943f42b778adafe71 SHA512 e66bc79027cf2311cea810ab02e59ffeac9698f3a83d773ebf96d14e4e95e62a96cf16e416b3638681c0be7d4b72da47091d4f8933dc3388c7f9dc5cafae5505
AUX chromium-83-vaapi.patch 8203 BLAKE2B c36a2c695b4ffe00fff585d1f260d06ca0fc686a6d05442e746806b8a1d1a35396f4334ab480d4e3aa851d2d7cfff373606bcd8e15330e51f96d49779a25f98c SHA512 e0e930e4e5713b86ad87c9d5e901ed608dd982ab6cb6c0e8fa2cc7033a6d10dd85968a1e21d377ee35ba4b75068f7aadeda42fc11a85de3121a58e28bffd3cdf
AUX chromium-84-mediaalloc.patch 1242 BLAKE2B 3545ea4f8d71a062f71c20f4fa3e1460dbd02d3512ce6445ac4f948582a51bdcbd98829eff9b01cb7b920313d1f849534c46a942eed209a56ca373da8e938b6b SHA512 7799be695afe24844aad35ee4ed2aeb338b36a06e29a7f8d8a9c5d2b2769167469b8cdfa3f8814e6976c26a2731fc73741dc1c0b095695e1a21bfd3db166f7b4
AUX chromium-84-pipewire.patch 31734 BLAKE2B 72b756453dd761ad1023e35797bd718ce44ce96eeb91c52478e161f859beb31e11a3167572c2039cdabcf614ef59d1112f0f3315e24c0755470a3b1e74957922 SHA512 da211745e2300f2619997c6a277ebcd103c17eb37d9bad4ced163d5dafb3f67e06f47eadd6415ffde24cfec6754577c93ee0177507fa7b1a98a81f98dc98ebcd
AUX chromium-browser.xml 408 BLAKE2B f780619ee2c179c84a5b636f773801c0b9ea718d5b63aac84554bb77cf32e1e59b01156e18d99bd84cd11708c8df4b828a68848348da4c6c9abd3877ad18466b SHA512 12c42129e3146c88264c85abdb0e20281eb36fd62dc4f3626f2534dd21e385acf46e21f7940911ea49182293cbcc72e6e76efde3e0056de3ae9e97064a68252c
AUX chromium-launcher-r4.sh 1609 BLAKE2B 77d840d6195a83859539e061f5cc304beccf8a20d1ab947c73cb858b44b3d4bd2930ae7f25c08e972cda18616601a6f5dc66cf3c61988813e99e4d4c9d50c942 SHA512 1d6211bf0703aa8df6ff9e584040470f004d84de9c81d38caee52bb96e38aa2bbd8e495dfcb85105275b53eaf6a4f1de5b89eaab9995e94f8cf313d74061c923
AUX chromium.default 148 BLAKE2B 5ee5b582c59a6e4bef87bbb0e232e2470ad412b1fbbb3b9af6ef7153edb55c5b9080cc16a5a115b0c5b3c381aa87ce57a7b12bdd2070e67dac10a6c2995ddbaf SHA512 0d4849e03592fb58b05e62a43021eca7e61615616c8907c3b2e445402e03adaf9e8fa25b0a745d6c31eb037456215cc02b59e345a3a06d932e76cf990c92d739
DIST chromium-84-patchset-3.tar.xz 20148 BLAKE2B d910570b43f63bcf4ead90ca4e4005a08d7c85b5b4e7af2a70ec4bc18265cbe8b075523878710075cfee4e0631eb3374e1e6d06251f4bf03377954807b1951e9 SHA512 316db8b0359b10a988242a0d665475d912fa9b610a547478d8c39b337afc02780a54d7024e231eb4fd402063cf439f6e2b4bb92a4968c8e0c3e69d84a2ae1664
DIST chromium-84.0.4147.89.tar.xz 845153972 BLAKE2B e8101805af6278fc9c49041071e7cd6d53fe79ba74b83b636584db57f459f003559758a51a1cd155d7fe3d5d0d21c95d37f84e638644c6e08b39ea02cce902be SHA512 cc207a5f09a89e42bc12fd491d5d0ef11c04daaa324aa696d2f8a37679b8f2171d3b265296968c3312e158b0fd2c059e12727a7463d3bd2f640d5bbd43c4f676
DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf
DIST xcb-proto-1.14.tar.xz 143384 BLAKE2B 60212b0f0ce039a64a2e6cbbc78564eeffc57cff20987b37dc780d8d97ae888a7dbfbbaadc6e0e4bedfc5d1e360f16318e3825ad8406de668d9c7c66cf7f4b5d SHA512 de66d568163b6da2be9d6c59984f3afa3acd119a781378638045fd68018665ef5c9af98f024e9962ba3eb7c7a4d85c27ba70ffafceb2324ccc6940f34de16690
EBUILD chromium-84.0.4147.89.ebuild 27404 BLAKE2B cd207fc3b0f0164f6142a69769e7a1fab4c2f2706b04f7611659e23e5e988814ae25b663b528915a2e1965784d18d9df163ff64f9be16ece3fa6dc5701fe3ab4 SHA512 198046b4eab1f246f9ab6b9d0e012e0877cfcbadd62ca227bf70f17ff830b98f652a22f1be5e4d0f30fd9c7410b3b1ea69603225f0171afaa4a561fb97805a27
MISC metadata.xml 1351 BLAKE2B fb5be12f788385e19aa41ab929c0c0f2744a61cc83b19ed973174cee564043a871f68fadb721ee91d688020aa1daba5fb2bca4535c53630bd88cc0ede527ef53 SHA512 ae812473401017ce399461a829e7182e6e28c56b01c1da926883bd3edf751fa804dc88f429c77a3f533647b2115c960a7bba21572735dcf3d039a6d87fabf51d

View File

@ -0,0 +1,890 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python2_7 )
CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
sv sw ta te th tr uk vi zh-CN zh-TW"
inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
DESCRIPTION="Open-source version of Google Chrome web browser"
HOMEPAGE="https://chromium.org/"
XCB_PROTO_VERSION="1.14"
PATCHSET="3"
PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip
https://www.x.org/releases/individual/proto/xcb-proto-${XCB_PROTO_VERSION}.tar.xz
https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 arm64 ~x86"
IUSE="+closure-compile component-build cups cpu_flags_arm_neon +hangouts headless kerberos +memsaver ozone pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc vaapi wayland widevine"
RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
REQUIRED_USE="
component-build? ( !suid )
wayland? ( ozone )
vaapi? ( !ozone )
"
COMMON_X_DEPEND="
media-libs/mesa:=[gbm]
x11-libs/libX11:=
x11-libs/libXcomposite:=
x11-libs/libXcursor:=
x11-libs/libXdamage:=
x11-libs/libXext:=
x11-libs/libXfixes:=
>=x11-libs/libXi-1.6.0:=
x11-libs/libXrandr:=
x11-libs/libXrender:=
x11-libs/libXtst:=
x11-libs/libXScrnSaver:=
x11-libs/libxcb:=
"
COMMON_DEPEND="
app-arch/bzip2:=
cups? ( >=net-print/cups-1.3.11:= )
dev-libs/expat:=
dev-libs/glib:2
>=dev-libs/libxml2-2.9.4-r3:=[icu]
dev-libs/nspr:=
>=dev-libs/nss-3.26:=
>=media-libs/alsa-lib-1.0.19:=
media-libs/fontconfig:=
media-libs/freetype:=
>=media-libs/harfbuzz-2.4.0:0=[icu(-)]
media-libs/libjpeg-turbo:=
media-libs/libpng:=
system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc,svc] )
pulseaudio? ( media-sound/pulseaudio:= )
system-ffmpeg? (
>=media-video/ffmpeg-4:=
|| (
media-video/ffmpeg[-samba]
>=net-fs/samba-4.5.10-r1[-debug(-)]
)
>=media-libs/opus-1.3.1:=
)
sys-apps/dbus:=
sys-apps/pciutils:=
virtual/udev
x11-libs/cairo:=
x11-libs/gdk-pixbuf:2
x11-libs/pango:=
media-libs/flac:=
>=media-libs/libwebp-0.4.0:=
sys-libs/zlib:=[minizip]
kerberos? ( virtual/krb5 )
vaapi? ( x11-libs/libva:= )
ozone? (
!headless? (
${COMMON_X_DEPEND}
x11-libs/gtk+:3[wayland?,X]
wayland? (
dev-libs/wayland:=
dev-libs/libffi:=
x11-libs/libdrm:=
x11-libs/libxkbcommon:=
)
)
)
!ozone? (
>=app-accessibility/at-spi2-atk-2.26:2
>=app-accessibility/at-spi2-core-2.26:2
>=dev-libs/atk-2.26
x11-libs/gtk+:3[X]
${COMMON_X_DEPEND}
)
"
# For nvidia-drivers blocker, see bug #413637 .
RDEPEND="${COMMON_DEPEND}
x11-misc/xdg-utils
virtual/opengl
virtual/ttf-fonts
selinux? ( sec-policy/selinux-chromium )
tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
"
DEPEND="${COMMON_DEPEND}
"
# dev-vcs/git - https://bugs.gentoo.org/593476
BDEPEND="
${PYTHON_DEPS}
>=app-arch/gzip-1.7
app-arch/unzip
dev-lang/perl
>=dev-util/gn-0.1726
dev-vcs/git
>=dev-util/gperf-3.0.3
>=dev-util/ninja-1.7.2
>=net-libs/nodejs-7.6.0[inspector]
sys-apps/hwids[usb(+)]
>=sys-devel/bison-2.4.3
sys-devel/flex
virtual/pkgconfig
closure-compile? ( virtual/jre )
"
: ${CHROMIUM_FORCE_CLANG=no}
: ${CHROMIUM_FORCE_LIBCXX=no}
if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
BDEPEND+=" >=sys-devel/clang-9"
fi
if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
RDEPEND+=" >=sys-libs/libcxx-9"
DEPEND+=" >=sys-libs/libcxx-9"
else
COMMON_DEPEND="
app-arch/snappy:=
dev-libs/libxslt:=
>=dev-libs/re2-0.2019.08.01:=
>=media-libs/openh264-1.6.0:=
system-icu? ( >=dev-libs/icu-67.1:= )
"
RDEPEND+="${COMMON_DEPEND}"
DEPEND+="${COMMON_DEPEND}"
fi
if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
fi
DISABLE_AUTOFORMATTING="yes"
DOC_CONTENTS="
Some web pages may require additional fonts to display properly.
Try installing some of the following packages if some characters
are not displayed properly:
- media-fonts/arphicfonts
- media-fonts/droid
- media-fonts/ipamonafont
- media-fonts/noto
- media-fonts/ja-ipafonts
- media-fonts/takao-fonts
- media-fonts/wqy-microhei
- media-fonts/wqy-zenhei
To fix broken icons on the Downloads page, you should install an icon
theme that covers the appropriate MIME types, and configure this as your
GTK+ icon theme.
For native file dialogs in KDE, install kde-apps/kdialog.
To make password storage work with your desktop environment you may
have install one of the supported credentials management applications:
- app-crypt/libsecret (GNOME)
- kde-frameworks/kwallet (KDE)
If you have one of above packages installed, but don't want to use
them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
in /etc/chromium/default.
"
PATCHES=(
"${FILESDIR}/chromium-84-mediaalloc.patch"
"${FILESDIR}/chromium-83-vaapi.patch"
"${FILESDIR}/chromium-84-pipewire.patch"
)
pre_build_checks() {
if [[ ${MERGE_TYPE} != binary ]]; then
local -x CPP="$(tc-getCXX) -E"
if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
die "At least gcc 9.2 is required"
fi
# component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
die "Component build with tcmalloc requires FEATURES=-usersandbox."
fi
if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
if use component-build; then
die "Component build with clang requires fuzzer headers."
fi
fi
fi
# Check build requirements, bug #541816 and bug #471810 .
CHECKREQS_MEMORY="3G"
CHECKREQS_DISK_BUILD="7G"
if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
if use custom-cflags || use component-build; then
CHECKREQS_DISK_BUILD="25G"
fi
if ! use component-build; then
CHECKREQS_MEMORY="16G"
fi
fi
check-reqs_pkg_setup
}
pkg_pretend() {
pre_build_checks
}
pkg_setup() {
pre_build_checks
chromium_suid_sandbox_check_kernel_config
}
src_prepare() {
# Calling this here supports resumption via FEATURES=keepwork
python_setup
eapply "${WORKDIR}/patches"
default
mkdir -p third_party/node/linux/node-linux-x64/bin || die
ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
local keeplibs=(
base/third_party/cityhash
base/third_party/double_conversion
base/third_party/dynamic_annotations
base/third_party/icu
base/third_party/nspr
base/third_party/superfasthash
base/third_party/symbolize
base/third_party/valgrind
base/third_party/xdg_mime
base/third_party/xdg_user_dirs
buildtools/third_party/libc++
buildtools/third_party/libc++abi
chrome/third_party/mozilla_security_manager
courgette/third_party
net/third_party/mozilla_security_manager
net/third_party/nss
net/third_party/quic
net/third_party/uri_template
third_party/abseil-cpp
third_party/angle
third_party/angle/src/common/third_party/base
third_party/angle/src/common/third_party/smhasher
third_party/angle/src/common/third_party/xxhash
third_party/angle/src/third_party/compiler
third_party/angle/src/third_party/libXNVCtrl
third_party/angle/src/third_party/trace_event
third_party/angle/src/third_party/volk
third_party/angle/third_party/glslang
third_party/angle/third_party/spirv-headers
third_party/angle/third_party/spirv-tools
third_party/angle/third_party/vulkan-headers
third_party/angle/third_party/vulkan-loader
third_party/angle/third_party/vulkan-tools
third_party/angle/third_party/vulkan-validation-layers
third_party/apple_apsl
third_party/axe-core
third_party/blink
third_party/boringssl
third_party/boringssl/src/third_party/fiat
third_party/breakpad
third_party/breakpad/breakpad/src/third_party/curl
third_party/brotli
third_party/cacheinvalidation
third_party/catapult
third_party/catapult/common/py_vulcanize/third_party/rcssmin
third_party/catapult/common/py_vulcanize/third_party/rjsmin
third_party/catapult/third_party/beautifulsoup4
third_party/catapult/third_party/html5lib-python
third_party/catapult/third_party/polymer
third_party/catapult/third_party/six
third_party/catapult/tracing/third_party/d3
third_party/catapult/tracing/third_party/gl-matrix
third_party/catapult/tracing/third_party/jpeg-js
third_party/catapult/tracing/third_party/jszip
third_party/catapult/tracing/third_party/mannwhitneyu
third_party/catapult/tracing/third_party/oboe
third_party/catapult/tracing/third_party/pako
third_party/ced
third_party/cld_3
third_party/closure_compiler
third_party/crashpad
third_party/crashpad/crashpad/third_party/lss
third_party/crashpad/crashpad/third_party/zlib
third_party/crc32c
third_party/cros_system_api
third_party/dav1d
third_party/dawn
third_party/depot_tools
third_party/devscripts
third_party/devtools-frontend
third_party/devtools-frontend/src/front_end/third_party/acorn
third_party/devtools-frontend/src/front_end/third_party/codemirror
third_party/devtools-frontend/src/front_end/third_party/fabricjs
third_party/devtools-frontend/src/front_end/third_party/lighthouse
third_party/devtools-frontend/src/front_end/third_party/wasmparser
third_party/devtools-frontend/src/third_party
third_party/dom_distiller_js
third_party/emoji-segmenter
third_party/flatbuffers
third_party/freetype
third_party/libgifcodec
third_party/glslang
third_party/google_input_tools
third_party/google_input_tools/third_party/closure_library
third_party/google_input_tools/third_party/closure_library/third_party/closure
third_party/googletest
third_party/harfbuzz-ng/utils
third_party/hunspell
third_party/iccjpeg
third_party/inspector_protocol
third_party/jinja2
third_party/jsoncpp
third_party/jstemplate
third_party/khronos
third_party/leveldatabase
third_party/libXNVCtrl
third_party/libaddressinput
third_party/libaom
third_party/libaom/source/libaom/third_party/vector
third_party/libaom/source/libaom/third_party/x86inc
third_party/libavif
third_party/libjingle
third_party/libphonenumber
third_party/libsecret
third_party/libsrtp
third_party/libsync
third_party/libudev
third_party/libwebm
third_party/libxml/chromium
third_party/libyuv
third_party/llvm
third_party/lottie
third_party/lss
third_party/lzma_sdk
third_party/mako
third_party/markupsafe
third_party/mesa
third_party/metrics_proto
third_party/modp_b64
third_party/nasm
third_party/node
third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
third_party/one_euro_filter
third_party/openscreen
third_party/openscreen/src/third_party/mozilla
third_party/openscreen/src/third_party/tinycbor/src/src
third_party/ots
third_party/pdfium
third_party/pdfium/third_party/agg23
third_party/pdfium/third_party/base
third_party/pdfium/third_party/bigint
third_party/pdfium/third_party/freetype
third_party/pdfium/third_party/lcms
third_party/pdfium/third_party/libopenjpeg20
third_party/pdfium/third_party/libpng16
third_party/pdfium/third_party/libtiff
third_party/pdfium/third_party/skia_shared
third_party/perfetto
third_party/pffft
third_party/ply
third_party/polymer
third_party/private-join-and-compute
third_party/protobuf
third_party/protobuf/third_party/six
third_party/pyjson5
third_party/qcms
third_party/rnnoise
third_party/s2cellid
third_party/schema_org
third_party/simplejson
third_party/skia
third_party/skia/include/third_party/skcms
third_party/skia/include/third_party/vulkan
third_party/skia/third_party/skcms
third_party/skia/third_party/vulkan
third_party/smhasher
third_party/spirv-headers
third_party/SPIRV-Tools
third_party/sqlite
third_party/swiftshader
third_party/swiftshader/third_party/astc-encoder
third_party/swiftshader/third_party/llvm-7.0
third_party/swiftshader/third_party/llvm-subzero
third_party/swiftshader/third_party/marl
third_party/swiftshader/third_party/subzero
third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
third_party/unrar
third_party/usrsctp
third_party/vulkan
third_party/web-animations-js
third_party/webdriver
third_party/webrtc
third_party/webrtc/common_audio/third_party/ooura
third_party/webrtc/common_audio/third_party/spl_sqrt_floor
third_party/webrtc/modules/third_party/fft
third_party/webrtc/modules/third_party/g711
third_party/webrtc/modules/third_party/g722
third_party/webrtc/rtc_base/third_party/base64
third_party/webrtc/rtc_base/third_party/sigslot
third_party/widevine
third_party/woff2
third_party/wuffs
third_party/zlib/google
tools/grit/third_party/six
url/third_party/mozilla
v8/src/third_party/siphash
v8/src/third_party/valgrind
v8/src/third_party/utf8-decoder
v8/third_party/inspector_protocol
v8/third_party/v8
# gyp -> gn leftovers
base/third_party/libevent
third_party/adobe
third_party/speech-dispatcher
third_party/usb_ids
third_party/xdg-utils
)
if ! use system-ffmpeg; then
keeplibs+=( third_party/ffmpeg third_party/opus )
fi
if ! use system-icu; then
keeplibs+=( third_party/icu )
fi
if ! use system-libvpx; then
keeplibs+=( third_party/libvpx )
keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
# we need to generate ppc64 stuff because upstream does not ship it yet
# it has to be done before unbundling.
if use ppc64; then
pushd third_party/libvpx >/dev/null || die
mkdir -p source/config/linux/ppc64 || die
./generate_gni.sh || die
popd >/dev/null || die
fi
fi
if use tcmalloc; then
keeplibs+=( third_party/tcmalloc )
fi
if use ozone && use wayland && ! use headless ; then
keeplibs+=( third_party/wayland )
fi
if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
keeplibs+=( third_party/libxml )
keeplibs+=( third_party/libxslt )
keeplibs+=( third_party/openh264 )
keeplibs+=( third_party/re2 )
keeplibs+=( third_party/snappy )
if use system-icu; then
keeplibs+=( third_party/icu )
fi
fi
# Remove most bundled libraries. Some are still needed.
build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
}
src_configure() {
# Calling this here supports resumption via FEATURES=keepwork
python_setup
local myconf_gn=""
# Make sure the build system will use the right tools, bug #340795.
tc-export AR CC CXX NM
if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
# Force clang since gcc is pretty broken at the moment.
CC=${CHOST}-clang
CXX=${CHOST}-clang++
strip-unsupported-flags
fi
if tc-is-clang; then
myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
else
if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
die "Compiling with sys-libs/libcxx requires clang."
fi
myconf_gn+=" is_clang=false"
fi
# Define a custom toolchain for GN
myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
if tc-is-cross-compiler; then
tc-export BUILD_{AR,CC,CXX,NM}
myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
else
myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
fi
# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
myconf_gn+=" is_debug=false"
# Component build isn't generally intended for use by end users. It's mostly useful
# for development and debugging.
myconf_gn+=" is_component_build=$(usex component-build true false)"
myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
myconf_gn+=" enable_nacl=false"
# Use system-provided libraries.
# TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
# TODO: use_system_hunspell (upstream changes needed).
# TODO: use_system_libsrtp (bug #459932).
# TODO: use_system_protobuf (bug #525560).
# TODO: use_system_ssl (http://crbug.com/58087).
# TODO: use_system_sqlite (http://crbug.com/22208).
# libevent: https://bugs.gentoo.org/593458
local gn_system_libraries=(
flac
fontconfig
freetype
# Need harfbuzz_from_pkgconfig target
#harfbuzz-ng
libdrm
libjpeg
libpng
libwebp
zlib
)
if use system-ffmpeg; then
gn_system_libraries+=( ffmpeg opus )
fi
if use system-icu; then
gn_system_libraries+=( icu )
fi
if use system-libvpx; then
gn_system_libraries+=( libvpx )
fi
if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
# unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
gn_system_libraries+=( libxml )
gn_system_libraries+=( libxslt )
gn_system_libraries+=( openh264 )
gn_system_libraries+=( re2 )
gn_system_libraries+=( snappy )
fi
build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
# See dependency logic in third_party/BUILD.gn
myconf_gn+=" use_system_harfbuzz=true"
# Disable deprecated libgnome-keyring dependency, bug #713012
myconf_gn+=" use_gnome_keyring=false"
# Optional dependencies.
myconf_gn+=" closure_compile=$(usex closure-compile true false)"
myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
myconf_gn+=" enable_widevine=$(usex widevine true false)"
myconf_gn+=" use_cups=$(usex cups true false)"
myconf_gn+=" use_kerberos=$(usex kerberos true false)"
myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
myconf_gn+=" use_vaapi=$(usex vaapi true false)"
# TODO: link_pulseaudio=true for GN.
myconf_gn+=" fieldtrial_testing_like_official_build=true"
# Never use bundled gold binary. Disable gold linker flags for now.
# Do not use bundled clang.
# Trying to use gold results in linker crash.
myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
# Disable forced lld, bug 641556
myconf_gn+=" use_lld=false"
ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
# Note: these are for Gentoo use ONLY. For your own distribution,
# please get your own set of keys. Feel free to contact chromium@gentoo.org
# for more info.
local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
local google_default_client_id="329227923882.apps.googleusercontent.com"
local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
myconf_gn+=" google_api_key=\"${google_api_key}\""
myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
local myarch="$(tc-arch)"
# Avoid CFLAGS problems, bug #352457, bug #390147.
if ! use custom-cflags; then
replace-flags "-Os" "-O2"
strip-flags
# Debug info section overflows without component build
# Prevent linker from running out of address space, bug #471810 .
if ! use component-build || use x86; then
filter-flags "-g*"
fi
# Prevent libvpx build failures. Bug 530248, 544702, 546984.
if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
fi
fi
if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
append-flags -stdlib=libc++
append-ldflags -stdlib=libc++
fi
if [[ $myarch = amd64 ]] ; then
myconf_gn+=" target_cpu=\"x64\""
ffmpeg_target_arch=x64
elif [[ $myarch = x86 ]] ; then
myconf_gn+=" target_cpu=\"x86\""
ffmpeg_target_arch=ia32
# This is normally defined by compiler_cpu_abi in
# build/config/compiler/BUILD.gn, but we patch that part out.
append-flags -msse2 -mfpmath=sse -mmmx
elif [[ $myarch = arm64 ]] ; then
myconf_gn+=" target_cpu=\"arm64\""
ffmpeg_target_arch=arm64
elif [[ $myarch = arm ]] ; then
myconf_gn+=" target_cpu=\"arm\""
ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
elif [[ $myarch = ppc64 ]] ; then
myconf_gn+=" target_cpu=\"ppc64\""
ffmpeg_target_arch=ppc64
else
die "Failed to determine target arch, got '$myarch'."
fi
# Make sure that -Werror doesn't get added to CFLAGS by the build system.
# Depending on GCC version the warnings are different and we don't want
# the build to fail because of that.
myconf_gn+=" treat_warnings_as_errors=false"
# Disable fatal linker warnings, bug 506268.
myconf_gn+=" fatal_linker_warnings=false"
# Bug 491582.
export TMPDIR="${WORKDIR}/temp"
mkdir -p -m 755 "${TMPDIR}" || die
# https://bugs.gentoo.org/654216
addpredict /dev/dri/ #nowarn
#if ! use system-ffmpeg; then
if false; then
local build_ffmpeg_args=""
if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
build_ffmpeg_args+=" --disable-asm"
fi
# Re-configure bundled ffmpeg. See bug #491378 for example reasons.
einfo "Configuring bundled ffmpeg..."
pushd third_party/ffmpeg > /dev/null || die
chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
--branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
chromium/scripts/copy_config.sh || die
chromium/scripts/generate_gn.py || die
popd > /dev/null || die
fi
# Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
# Explicitly disable ICU data file support for system-icu builds.
if use system-icu; then
myconf_gn+=" icu_use_data_file=false"
fi
# Use bundled xcb-proto, bug #727000
myconf_gn+=" xcbproto_path=\"${WORKDIR}/xcb-proto-${XCB_PROTO_VERSION}/src\""
# Enable ozone support
if use ozone; then
myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
myconf_gn+=" ozone_platform_headless=true"
if ! use headless; then
myconf_gn+=" use_system_libdrm=true"
myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
myconf_gn+=" ozone_platform_x11=true"
myconf_gn+=" ozone_platform_headless=true"
if use wayland; then
myconf_gn+=" use_system_minigbm=true use_xkbcommon=true"
myconf_gn+=" ozone_platform=\"wayland\""
else
myconf_gn+=" ozone_platform=\"x11\""
fi
else
myconf_gn+=" ozone_platform=\"headless\""
fi
fi
if use screencast; then
myconf_gn+=" rtc_use_pipewire=true rtc_link_pipewire=true"
myconf_gn+=" rtc_use_pipewire_version=\"0.3\""
fi
einfo "Configuring Chromium..."
set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
echo "$@"
"$@" || die
}
src_compile() {
if use memsaver; then
# limit number of jobs based on available memory:
mem=$(grep ^MemTotal /proc/meminfo | awk '{print $2}')
jobs=$((mem/2500000))
if [ ${jobs} -lt 1 ]; then
jobs=-j1
else
jobs=-j${jobs}
fi
einfo "Using jobs setting of ${jobs}"
else
jobs=""
einfo "Using default Portage jobs setting."
fi
# Final link uses lots of file descriptors.
ulimit -n 2048
# Calling this here supports resumption via FEATURES=keepwork
python_setup
# https://bugs.gentoo.org/717456
# Use bundled xcb-proto, because system xcb-proto doesn't have Python 2.7 support
local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0:${WORKDIR}/xcb-proto-${XCB_PROTO_VERSION}${PYTHONPATH+:}${PYTHONPATH}"
#"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
# Build mksnapshot and pax-mark it.
local x
for x in mksnapshot v8_context_snapshot_generator; do
if tc-is-cross-compiler; then
eninja ${jobs} -C out/Release "host/${x}"
pax-mark m "out/Release/host/${x}"
else
eninja ${jobs} -C out/Release "${x}"
pax-mark m "out/Release/${x}"
fi
done
eninja ${jobs} -C out/Release chrome chromedriver
use suid && eninja ${jobs} -C out/Release chrome_sandbox
pax-mark m out/Release/chrome
# Build manpage; bug #684550
sed -e 's|@@PACKAGE@@|chromium-browser|g;
s|@@MENUNAME@@|Chromium|g;' \
chrome/app/resources/manpage.1.in > \
out/Release/chromium-browser.1 || die
# Build desktop file; bug #706786
sed -e 's|@@MENUNAME@@|Chromium|g;
s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
s|@@PACKAGE@@|chromium-browser|g;
s|\(^Exec=\)/usr/bin/|\1|g;' \
chrome/installer/linux/common/desktop.template > \
out/Release/chromium-browser-chromium.desktop || die
}
src_install() {
local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
exeinto "${CHROMIUM_HOME}"
doexe out/Release/chrome
if use suid; then
newexe out/Release/chrome_sandbox chrome-sandbox
fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
fi
doexe out/Release/chromedriver
ozone_auto_session () {
use ozone && use wayland && ! use headless && echo true || echo false
}
local sedargs=( -e
"s:/usr/lib/:/usr/$(get_libdir)/:g;
s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
)
sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r4.sh" > chromium-launcher.sh || die
doexe chromium-launcher.sh
if use vaapi; then
insinto /usr/share/drirc.d
newins "${FILESDIR}"/01-chromium.conf 01-chromium.conf
fi
# It is important that we name the target "chromium-browser",
# xdg-utils expect it; bug #355517.
dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
# keep the old symlink around for consistency
dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
# Allow users to override command-line options, bug #357629.
insinto /etc/chromium
newins "${FILESDIR}/chromium.default" "default"
pushd out/Release/locales > /dev/null || die
chromium_remove_language_paks
popd
insinto "${CHROMIUM_HOME}"
doins out/Release/*.bin
doins out/Release/*.pak
(
shopt -s nullglob
local files=(out/Release/*.so)
[[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
)
if ! use system-icu; then
doins out/Release/icudtl.dat
fi
doins -r out/Release/locales
doins -r out/Release/resources
if [[ -d out/Release/swiftshader ]]; then
insinto "${CHROMIUM_HOME}/swiftshader"
doins out/Release/swiftshader/*.so
fi
# Install icons
local branding size
for size in 16 24 32 48 64 128 256 ; do
case ${size} in
16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
*) branding="chrome/app/theme/chromium" ;;
esac
newicon -s ${size} "${branding}/product_logo_${size}.png" \
chromium-browser.png
done
# Install desktop entry
domenu out/Release/chromium-browser-chromium.desktop
# Install GNOME default application entry (bug #303100).
insinto /usr/share/gnome-control-center/default-apps
newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
# Install manpage; bug #684550
doman out/Release/chromium-browser.1
dosym chromium-browser.1 /usr/share/man/man1/chromium.1
readme.gentoo_create_doc
}
pkg_postrm() {
xdg_icon_cache_update
xdg_desktop_database_update
}
pkg_postinst() {
xdg_icon_cache_update
xdg_desktop_database_update
readme.gentoo_print_elog
}

View File

@ -0,0 +1,33 @@
<?xml version="1.0" standalone="yes"?>
<!--
============================================
Application bugs worked around in this file:
============================================
* Work around misrendering with Chromium and vaapi on gallium drivers
-->
<!DOCTYPE driconf [
<!ELEMENT driconf (device+)>
<!ELEMENT device (application+)>
<!ATTLIST device driver CDATA #IMPLIED>
<!ELEMENT application (option+)>
<!ATTLIST application name CDATA #REQUIRED
executable CDATA #REQUIRED>
<!ELEMENT option EMPTY>
<!ATTLIST option name CDATA #REQUIRED
value CDATA #REQUIRED>
]>
<driconf>
<!-- Please always enable app-specific workarounds for all drivers and
screens. -->
<device>
<application name="Chromium" executable="chrome">
<option name="allow_rgb10_configs" value="false" />
</application>
</device>
</driconf>

View File

@ -0,0 +1,183 @@
From 7cda9be20eedac2f972f4b99d71a7732d87f1b9b Mon Sep 17 00:00:00 2001
From: Mike Lothian <mike@fireburn.co.uk>
Date: Thu, 23 Apr 2020 09:51:10 +0100
Subject: [PATCH] Enable VAVDA, VAVEA and VAJDA on linux with VAAPI only
This patch contains all the changes necessary to use VA-API along with
vaapi-driver to run all media use cases supported with hardware acceleration.
It is intended to remain as experimental accessible from chrome://flags on linux.
It requires libva/intel-vaapi-driver to be installed on the system path where
chrome is executed. Other drivers could be tested if available. Flags are
kept independent for linux, where this feature has to be enabled before
actually using it. This should not change how other OSes use the flags
already, the new flags will show at the buttom on the section of unavailable
experiments
The changes cover a range of compiler pre-processor flags to enable the stack.
It moves the presandbox operations to the vaapi_wrapper class as the hook function
is available there. vaInit will open driver on the correct installed folder.
chrome flags consolidtation into only two flags for linux. Mjpeg and accelerated
video are used. The other flags are kept for ChromeOS and other OSes.
Developer testing was made on skylake hardware, ChromeOS and Ubuntu.
BUG=NONE
TEST="subjective testing with VAVDA,VAVEA and VAJDA, autotest for encoder"
TEST="and decoder hardware accelerated"
TEST="have libva/intel-vaapi-driver installed and not installed in the system"
TEST="repeat on different hardware families"
R=posciak@chromium.org
R=kcwu@chromium.org
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Ifbbf5c9e5221a8b5733fc6d4d0cf984a1f103171
Signed-off-by: Daniel Charles <daniel.charles@intel.com>
---
chrome/browser/about_flags.cc | 8 ++++----
chrome/browser/flag_descriptions.cc | 9 ++++++---
chrome/browser/flag_descriptions.h | 10 ++++++++--
gpu/config/software_rendering_list.json | 3 ++-
media/gpu/vaapi/vaapi_video_decode_accelerator.cc | 5 +++++
5 files changed, 25 insertions(+), 10 deletions(-)
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 65f76461ec12..5820726d7ad5 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -2153,7 +2153,7 @@ const FeatureEntry kFeatureEntries[] = {
"disable-accelerated-video-decode",
flag_descriptions::kAcceleratedVideoDecodeName,
flag_descriptions::kAcceleratedVideoDecodeDescription,
- kOsMac | kOsWin | kOsCrOS | kOsAndroid,
+ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux,
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
},
{
@@ -2585,12 +2585,12 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kWebXrForceRuntimeDescription, kOsDesktop,
MULTI_VALUE_TYPE(kWebXrForceRuntimeChoices)},
#endif // ENABLE_VR
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
{"disable-accelerated-mjpeg-decode",
flag_descriptions::kAcceleratedMjpegDecodeName,
- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
+ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
-#endif // OS_CHROMEOS
+#endif // OS_CHROMEOS | OS_LINUX
{"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName,
flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop,
FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)},
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index e80fab827621..98b36fa0bcca 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -2980,16 +2980,19 @@ const char kMetalDescription[] =
#endif
-// Chrome OS -------------------------------------------------------------------
-
-#if defined(OS_CHROMEOS)
+// Chrome OS and Linux -------------------------------------------------------------------
+#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
const char kAcceleratedMjpegDecodeName[] =
"Hardware-accelerated mjpeg decode for captured frame";
const char kAcceleratedMjpegDecodeDescription[] =
"Enable hardware-accelerated mjpeg decode for captured frame where "
"available.";
+#endif
+// Chrome OS -----------------------------------------------------------------------------
+
+#if defined(OS_CHROMEOS)
const char kAggregatedMlAppRankingName[] = "Rank suggested apps with ML.";
const char kAggregatedMlAppRankingDescription[] =
"Use the aggregated ML model to rank the suggested apps.";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 7672b58e6a25..a3baa084c5a0 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -1711,13 +1711,19 @@ extern const char kMetalDescription[];
#endif // defined(OS_MACOSX)
-// Chrome OS ------------------------------------------------------------------
+// Chrome OS and Linux ---------------------------------------------------------
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
extern const char kAcceleratedMjpegDecodeName[];
extern const char kAcceleratedMjpegDecodeDescription[];
+#endif
+
+// Chrome OS -------------------------------------------------------------------
+
+#if defined(OS_CHROMEOS)
+
extern const char kAggregatedMlAppRankingName[];
extern const char kAggregatedMlAppRankingDescription[];
diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json
index 68bed9e49ddf..5e7fe9cf433b 100644
--- a/gpu/config/software_rendering_list.json
+++ b/gpu/config/software_rendering_list.json
@@ -337,11 +337,12 @@
},
{
"id": 48,
- "description": "Accelerated video decode is unavailable on Linux",
+ "description": "Accelerated VA-API video decode is not supported on NVIDIA platforms",
"cr_bugs": [137247, 1032907],
"os": {
"type": "linux"
},
+ "vendor_id": "0x10de",
"exceptions": [
{
"machine_model_name": ["Chromecast"]
diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
index 5020b2b8bf96..a6f1d681b851 100644
--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
@@ -66,6 +66,7 @@ void ReportToUMA(VAVDADecoderFailure failure) {
VAVDA_DECODER_FAILURES_MAX + 1);
}
+#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
// Returns true if the CPU is an Intel Gemini Lake or later (including Kaby
// Lake) Cpu platform id's are referenced from the following file in kernel
// source arch/x86/include/asm/intel-family.h
@@ -78,6 +79,7 @@ bool IsGeminiLakeOrLater() {
cpuid.model() >= kGeminiLakeModelId;
return is_geminilake_or_later;
}
+#endif
} // namespace
@@ -1155,6 +1157,8 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
return BufferAllocationMode::kNormal;
+#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
+ // Move this to chromeOs only as it is causing problem in some intel linux drivers
// On Gemini Lake, Kaby Lake and later we can pass to libva the client's
// PictureBuffers to decode onto, which skips the use of the Vpp unit and its
// associated format reconciliation copy, avoiding all internal buffer
@@ -1171,6 +1175,7 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
num_extra_pics_ = 3;
return BufferAllocationMode::kNone;
}
+#endif
// If we're here, we have to use the Vpp unit and allocate buffers for
// |decoder_|; usually we'd have to allocate the |decoder_|s
--
2.26.2

View File

@ -0,0 +1,41 @@
https://bugs.chromium.org/p/chromium/issues/detail?id=1095962
--- /media/base/media.cc
+++ /media/base/media.cc
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include <limits>
+
#include "media/base/media.h"
#include "base/allocator/buildflags.h"
@@ -41,7 +43,7 @@
#if BUILDFLAG(USE_ALLOCATOR_SHIM)
// Remove allocation limit from ffmpeg, so calls go down to shim layer.
- av_max_alloc(0);
+ av_max_alloc(std::numeric_limits<size_t>::max());
#endif // BUILDFLAG(USE_ALLOCATOR_SHIM)
#endif // BUILDFLAG(ENABLE_FFMPEG)
--- /third_party/ffmpeg/chromium/dllmain.cc
+++ /third_party/ffmpeg/chromium/dllmain.cc
@@ -3,6 +3,7 @@
// found in the LICENSE file.
#include <intrin.h>
+#include <limits>
#include <new.h>
#include <stdlib.h>
#include <windows.h>
@@ -28,7 +29,7 @@
if (reason == DLL_PROCESS_ATTACH) {
DisableThreadLibraryCalls(instance);
// Remove allocation limit from ffmpeg, so calls go down to shim layer.
- av_max_alloc(0);
+ av_max_alloc(std::numeric_limits<size_t>::max());
// Enable OOM crashes in the shim for all malloc calls that fail.
_set_new_mode(1);
_set_new_handler(&OnNoMemory);

View File

@ -0,0 +1,792 @@
Index: chromium-83.0.4103.116/third_party/webrtc/modules/desktop_capture/BUILD.gn
===================================================================
--- chromium-83.0.4103.116.orig/third_party/webrtc/modules/desktop_capture/BUILD.gn
+++ chromium-83.0.4103.116/third_party/webrtc/modules/desktop_capture/BUILD.gn
@@ -196,7 +196,7 @@ if (is_linux) {
if (rtc_link_pipewire) {
pkg_config("pipewire") {
- packages = [ "libpipewire-0.2" ]
+ packages = [ "libpipewire-${rtc_use_pipewire_version}", "libspa-${rtc_use_spa_version}" ]
}
} else {
# When libpipewire is not directly linked, use stubs to allow for dlopening of
Index: chromium-83.0.4103.116/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc
===================================================================
--- chromium-83.0.4103.116.orig/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc
+++ chromium-83.0.4103.116/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc
@@ -14,8 +14,11 @@
#include <glib-object.h>
#include <spa/param/format-utils.h>
#include <spa/param/props.h>
-#include <spa/param/video/raw-utils.h>
-#include <spa/support/type-map.h>
+
+#include <linux/dma-buf.h>
+#include <sys/mman.h>
+#include <sys/ioctl.h>
+#include <sys/syscall.h>
#include <memory>
#include <utility>
@@ -51,31 +54,35 @@ const char kPipeWireLib[] = "libpipewire
#endif
// static
-void BaseCapturerPipeWire::OnStateChanged(void* data,
- pw_remote_state old_state,
- pw_remote_state state,
- const char* error_message) {
- BaseCapturerPipeWire* that = static_cast<BaseCapturerPipeWire*>(data);
- RTC_DCHECK(that);
+void BaseCapturerPipeWire::SyncDmaBuf(int fd, uint64_t start_or_end) {
+ struct dma_buf_sync sync = { 0 };
- switch (state) {
- case PW_REMOTE_STATE_ERROR:
- RTC_LOG(LS_ERROR) << "PipeWire remote state error: " << error_message;
- break;
- case PW_REMOTE_STATE_CONNECTED:
- RTC_LOG(LS_INFO) << "PipeWire remote state: connected.";
- that->CreateReceivingStream();
- break;
- case PW_REMOTE_STATE_CONNECTING:
- RTC_LOG(LS_INFO) << "PipeWire remote state: connecting.";
+ sync.flags = start_or_end | DMA_BUF_SYNC_READ;
+
+ while(true) {
+ int ret;
+ ret = ioctl (fd, DMA_BUF_IOCTL_SYNC, &sync);
+ if (ret == -1 && errno == EINTR) {
+ continue;
+ } else if (ret == -1) {
+ RTC_LOG(LS_ERROR) << "Failed to synchronize DMA buffer: " << g_strerror(errno);
break;
- case PW_REMOTE_STATE_UNCONNECTED:
- RTC_LOG(LS_INFO) << "PipeWire remote state: unconnected.";
+ } else {
break;
+ }
}
}
// static
+void BaseCapturerPipeWire::OnCoreError(void *data,
+ uint32_t id,
+ int seq,
+ int res,
+ const char *message) {
+ RTC_LOG(LS_ERROR) << "core error: " << message;
+}
+
+// static
void BaseCapturerPipeWire::OnStreamStateChanged(void* data,
pw_stream_state old_state,
pw_stream_state state,
@@ -87,76 +94,54 @@ void BaseCapturerPipeWire::OnStreamState
case PW_STREAM_STATE_ERROR:
RTC_LOG(LS_ERROR) << "PipeWire stream state error: " << error_message;
break;
- case PW_STREAM_STATE_CONFIGURE:
- pw_stream_set_active(that->pw_stream_, true);
- break;
- case PW_STREAM_STATE_UNCONNECTED:
- case PW_STREAM_STATE_CONNECTING:
- case PW_STREAM_STATE_READY:
case PW_STREAM_STATE_PAUSED:
case PW_STREAM_STATE_STREAMING:
+ case PW_STREAM_STATE_UNCONNECTED:
+ case PW_STREAM_STATE_CONNECTING:
break;
}
}
// static
-void BaseCapturerPipeWire::OnStreamFormatChanged(void* data,
- const struct spa_pod* format) {
+void BaseCapturerPipeWire::OnStreamParamChanged(void *data, uint32_t id,
+ const struct spa_pod *format) {
BaseCapturerPipeWire* that = static_cast<BaseCapturerPipeWire*>(data);
RTC_DCHECK(that);
- RTC_LOG(LS_INFO) << "PipeWire stream format changed.";
+ RTC_LOG(LS_INFO) << "PipeWire stream param changed.";
- if (!format) {
- pw_stream_finish_format(that->pw_stream_, /*res=*/0, /*params=*/nullptr,
- /*n_params=*/0);
+ if (!format || id != SPA_PARAM_Format) {
return;
}
- that->spa_video_format_ = new spa_video_info_raw();
- spa_format_video_raw_parse(format, that->spa_video_format_,
- &that->pw_type_->format_video);
+ spa_format_video_raw_parse(format, &that->spa_video_format_);
- auto width = that->spa_video_format_->size.width;
- auto height = that->spa_video_format_->size.height;
+ auto width = that->spa_video_format_.size.width;
+ auto height = that->spa_video_format_.size.height;
auto stride = SPA_ROUND_UP_N(width * kBytesPerPixel, 4);
auto size = height * stride;
+ that->desktop_size_ = DesktopSize(width, height);
+
uint8_t buffer[1024] = {};
auto builder = spa_pod_builder{buffer, sizeof(buffer)};
// Setup buffers and meta header for new format.
- const struct spa_pod* params[2];
- params[0] = reinterpret_cast<spa_pod*>(spa_pod_builder_object(
- &builder,
- // id to enumerate buffer requirements
- that->pw_core_type_->param.idBuffers,
- that->pw_core_type_->param_buffers.Buffers,
- // Size: specified as integer (i) and set to specified size
- ":", that->pw_core_type_->param_buffers.size, "i", size,
- // Stride: specified as integer (i) and set to specified stride
- ":", that->pw_core_type_->param_buffers.stride, "i", stride,
- // Buffers: specifies how many buffers we want to deal with, set as
- // integer (i) where preferred number is 8, then allowed number is defined
- // as range (r) from min and max values and it is undecided (u) to allow
- // negotiation
- ":", that->pw_core_type_->param_buffers.buffers, "iru", 8,
- SPA_POD_PROP_MIN_MAX(1, 32),
- // Align: memory alignment of the buffer, set as integer (i) to specified
- // value
- ":", that->pw_core_type_->param_buffers.align, "i", 16));
- params[1] = reinterpret_cast<spa_pod*>(spa_pod_builder_object(
- &builder,
- // id to enumerate supported metadata
- that->pw_core_type_->param.idMeta, that->pw_core_type_->param_meta.Meta,
- // Type: specified as id or enum (I)
- ":", that->pw_core_type_->param_meta.type, "I",
- that->pw_core_type_->meta.Header,
- // Size: size of the metadata, specified as integer (i)
- ":", that->pw_core_type_->param_meta.size, "i",
- sizeof(struct spa_meta_header)));
-
- pw_stream_finish_format(that->pw_stream_, /*res=*/0, params, /*n_params=*/2);
+ const struct spa_pod* params[3];
+ params[0] = reinterpret_cast<spa_pod *>(spa_pod_builder_add_object(&builder,
+ SPA_TYPE_OBJECT_ParamBuffers, SPA_PARAM_Buffers,
+ SPA_PARAM_BUFFERS_size, SPA_POD_Int(size),
+ SPA_PARAM_BUFFERS_stride, SPA_POD_Int(stride),
+ SPA_PARAM_BUFFERS_buffers, SPA_POD_CHOICE_RANGE_Int(8, 1, 32)));
+ params[1] = reinterpret_cast<spa_pod *>(spa_pod_builder_add_object(&builder,
+ SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta,
+ SPA_PARAM_META_type, SPA_POD_Id(SPA_META_Header),
+ SPA_PARAM_META_size, SPA_POD_Int(sizeof(struct spa_meta_header))));
+ params[2] = reinterpret_cast<spa_pod *>(spa_pod_builder_add_object(&builder,
+ SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta,
+ SPA_PARAM_META_type, SPA_POD_Id (SPA_META_VideoCrop),
+ SPA_PARAM_META_size, SPA_POD_Int (sizeof(struct spa_meta_region))));
+ pw_stream_update_params(that->pw_stream_, params, 3);
}
// static
@@ -164,15 +149,25 @@ void BaseCapturerPipeWire::OnStreamProce
BaseCapturerPipeWire* that = static_cast<BaseCapturerPipeWire*>(data);
RTC_DCHECK(that);
- pw_buffer* buf = nullptr;
+ struct pw_buffer *next_buffer;
+ struct pw_buffer *buffer = nullptr;
- if (!(buf = pw_stream_dequeue_buffer(that->pw_stream_))) {
+ next_buffer = pw_stream_dequeue_buffer(that->pw_stream_);
+ while (next_buffer) {
+ buffer = next_buffer;
+ next_buffer = pw_stream_dequeue_buffer(that->pw_stream_);
+
+ if (next_buffer)
+ pw_stream_queue_buffer (that->pw_stream_, buffer);
+ }
+
+ if (!buffer) {
return;
}
- that->HandleBuffer(buf);
+ that->HandleBuffer(buffer);
- pw_stream_queue_buffer(that->pw_stream_, buf);
+ pw_stream_queue_buffer(that->pw_stream_, buffer);
}
BaseCapturerPipeWire::BaseCapturerPipeWire(CaptureSourceType source_type)
@@ -183,38 +178,22 @@ BaseCapturerPipeWire::~BaseCapturerPipeW
pw_thread_loop_stop(pw_main_loop_);
}
- if (pw_type_) {
- delete pw_type_;
- }
-
- if (spa_video_format_) {
- delete spa_video_format_;
- }
-
if (pw_stream_) {
pw_stream_destroy(pw_stream_);
}
- if (pw_remote_) {
- pw_remote_destroy(pw_remote_);
+ if (pw_core_) {
+ pw_core_disconnect(pw_core_);
}
- if (pw_core_) {
- pw_core_destroy(pw_core_);
+ if (pw_context_) {
+ pw_context_destroy(pw_context_);
}
if (pw_main_loop_) {
pw_thread_loop_destroy(pw_main_loop_);
}
- if (pw_loop_) {
- pw_loop_destroy(pw_loop_);
- }
-
- if (current_frame_) {
- free(current_frame_);
- }
-
if (start_request_signal_id_) {
g_dbus_connection_signal_unsubscribe(connection_, start_request_signal_id_);
}
@@ -284,27 +263,35 @@ void BaseCapturerPipeWire::InitPipeWire(
pw_init(/*argc=*/nullptr, /*argc=*/nullptr);
- pw_loop_ = pw_loop_new(/*properties=*/nullptr);
- pw_main_loop_ = pw_thread_loop_new(pw_loop_, "pipewire-main-loop");
-
- pw_core_ = pw_core_new(pw_loop_, /*properties=*/nullptr);
- pw_core_type_ = pw_core_get_type(pw_core_);
- pw_remote_ = pw_remote_new(pw_core_, nullptr, /*user_data_size=*/0);
+ pw_main_loop_ = pw_thread_loop_new("pipewire-main-loop", nullptr);
+ pw_context_ = pw_context_new(pw_thread_loop_get_loop(pw_main_loop_), nullptr, 0);
+ if (!pw_context_) {
+ RTC_LOG(LS_ERROR) << "Failed to create PipeWire context";
+ return;
+ }
- InitPipeWireTypes();
+ pw_core_ = pw_context_connect(pw_context_, nullptr, 0);
+ if (!pw_core_) {
+ RTC_LOG(LS_ERROR) << "Failed to connect PipeWire context";
+ return;
+ }
// Initialize event handlers, remote end and stream-related.
- pw_remote_events_.version = PW_VERSION_REMOTE_EVENTS;
- pw_remote_events_.state_changed = &OnStateChanged;
+ pw_core_events_.version = PW_VERSION_CORE_EVENTS;
+ pw_core_events_.error = &OnCoreError;
pw_stream_events_.version = PW_VERSION_STREAM_EVENTS;
pw_stream_events_.state_changed = &OnStreamStateChanged;
- pw_stream_events_.format_changed = &OnStreamFormatChanged;
+ pw_stream_events_.param_changed = &OnStreamParamChanged;
pw_stream_events_.process = &OnStreamProcess;
- pw_remote_add_listener(pw_remote_, &spa_remote_listener_, &pw_remote_events_,
- this);
- pw_remote_connect_fd(pw_remote_, pw_fd_);
+ pw_core_add_listener(pw_core_, &spa_core_listener_, &pw_core_events_, this);
+
+ pw_stream_ = CreateReceivingStream();
+ if (!pw_stream_) {
+ RTC_LOG(LS_ERROR) << "Failed to create PipeWire stream";
+ return;
+ }
if (pw_thread_loop_start(pw_main_loop_) < 0) {
RTC_LOG(LS_ERROR) << "Failed to start main PipeWire loop";
@@ -314,81 +301,131 @@ void BaseCapturerPipeWire::InitPipeWire(
RTC_LOG(LS_INFO) << "PipeWire remote opened.";
}
-void BaseCapturerPipeWire::InitPipeWireTypes() {
- spa_type_map* map = pw_core_type_->map;
- pw_type_ = new PipeWireType();
-
- spa_type_media_type_map(map, &pw_type_->media_type);
- spa_type_media_subtype_map(map, &pw_type_->media_subtype);
- spa_type_format_video_map(map, &pw_type_->format_video);
- spa_type_video_format_map(map, &pw_type_->video_format);
-}
-
-void BaseCapturerPipeWire::CreateReceivingStream() {
+pw_stream* BaseCapturerPipeWire::CreateReceivingStream() {
spa_rectangle pwMinScreenBounds = spa_rectangle{1, 1};
- spa_rectangle pwScreenBounds =
- spa_rectangle{static_cast<uint32_t>(desktop_size_.width()),
- static_cast<uint32_t>(desktop_size_.height())};
-
- spa_fraction pwFrameRateMin = spa_fraction{0, 1};
- spa_fraction pwFrameRateMax = spa_fraction{60, 1};
-
- pw_properties* reuseProps =
- pw_properties_new_string("pipewire.client.reuse=1");
- pw_stream_ = pw_stream_new(pw_remote_, "webrtc-consume-stream", reuseProps);
+ spa_rectangle pwMaxScreenBounds = spa_rectangle{INT32_MAX, INT32_MAX};
+ auto stream = pw_stream_new(pw_core_, "webrtc-pipewire-stream", nullptr);
+
+ if (!stream) {
+ RTC_LOG(LS_ERROR) << "Could not create receiving stream.";
+ return nullptr;
+ }
uint8_t buffer[1024] = {};
- const spa_pod* params[1];
- spa_pod_builder builder = spa_pod_builder{buffer, sizeof(buffer)};
- params[0] = reinterpret_cast<spa_pod*>(spa_pod_builder_object(
- &builder,
- // id to enumerate formats
- pw_core_type_->param.idEnumFormat, pw_core_type_->spa_format, "I",
- pw_type_->media_type.video, "I", pw_type_->media_subtype.raw,
- // Video format: specified as id or enum (I), preferred format is BGRx,
- // then allowed formats are enumerated (e) and the format is undecided (u)
- // to allow negotiation
- ":", pw_type_->format_video.format, "Ieu", pw_type_->video_format.BGRx,
- SPA_POD_PROP_ENUM(2, pw_type_->video_format.RGBx,
- pw_type_->video_format.BGRx),
- // Video size: specified as rectangle (R), preferred size is specified as
- // first parameter, then allowed size is defined as range (r) from min and
- // max values and the format is undecided (u) to allow negotiation
- ":", pw_type_->format_video.size, "Rru", &pwScreenBounds, 2,
- &pwMinScreenBounds, &pwScreenBounds,
- // Frame rate: specified as fraction (F) and set to minimum frame rate
- // value
- ":", pw_type_->format_video.framerate, "F", &pwFrameRateMin,
- // Max frame rate: specified as fraction (F), preferred frame rate is set
- // to maximum value, then allowed frame rate is defined as range (r) from
- // min and max values and it is undecided (u) to allow negotiation
- ":", pw_type_->format_video.max_framerate, "Fru", &pwFrameRateMax, 2,
- &pwFrameRateMin, &pwFrameRateMax));
+ const spa_pod* params[2];
+ spa_pod_builder builder = SPA_POD_BUILDER_INIT(buffer, sizeof (buffer));
+
+ params[0] = reinterpret_cast<spa_pod *>(spa_pod_builder_add_object(&builder,
+ SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat,
+ SPA_FORMAT_mediaType, SPA_POD_Id(SPA_MEDIA_TYPE_video),
+ SPA_FORMAT_mediaSubtype, SPA_POD_Id(SPA_MEDIA_SUBTYPE_raw),
+ SPA_FORMAT_VIDEO_format, SPA_POD_CHOICE_ENUM_Id(5, SPA_VIDEO_FORMAT_BGRx, SPA_VIDEO_FORMAT_RGBx, SPA_VIDEO_FORMAT_RGBA,
+ SPA_VIDEO_FORMAT_BGRx, SPA_VIDEO_FORMAT_BGRA),
+ SPA_FORMAT_VIDEO_size, SPA_POD_CHOICE_RANGE_Rectangle(&pwMinScreenBounds,
+ &pwMinScreenBounds,
+ &pwMaxScreenBounds),
+ 0));
+ pw_stream_add_listener(stream, &spa_stream_listener_, &pw_stream_events_, this);
- pw_stream_add_listener(pw_stream_, &spa_stream_listener_, &pw_stream_events_,
- this);
pw_stream_flags flags = static_cast<pw_stream_flags>(
- PW_STREAM_FLAG_AUTOCONNECT | PW_STREAM_FLAG_INACTIVE |
- PW_STREAM_FLAG_MAP_BUFFERS);
- if (pw_stream_connect(pw_stream_, PW_DIRECTION_INPUT, /*port_path=*/nullptr,
- flags, params,
- /*n_params=*/1) != 0) {
+ PW_STREAM_FLAG_AUTOCONNECT | PW_STREAM_FLAG_INACTIVE);
+
+ if (pw_stream_connect(stream, PW_DIRECTION_INPUT, pw_stream_node_id_, PW_STREAM_FLAG_AUTOCONNECT, params, 1) != 0) {
RTC_LOG(LS_ERROR) << "Could not connect receiving stream.";
portal_init_failed_ = true;
- return;
}
+
+ return stream;
}
void BaseCapturerPipeWire::HandleBuffer(pw_buffer* buffer) {
+ struct spa_meta_region* video_crop;
spa_buffer* spaBuffer = buffer->buffer;
- void* src = nullptr;
+ uint8_t *map = nullptr;
+ uint8_t* src = nullptr;
+ uint8_t* dst = nullptr;
+
+ if (spaBuffer->datas[0].chunk->size == 0) {
+ map = nullptr;
+ src = nullptr;
+ } else if (spaBuffer->datas[0].type == SPA_DATA_MemFd) {
+ map = static_cast<uint8_t*>(mmap(
+ nullptr, spaBuffer->datas[0].maxsize + spaBuffer->datas[0].mapoffset,
+ PROT_READ, MAP_PRIVATE, spaBuffer->datas[0].fd, 0));
+
+ if (map == MAP_FAILED) {
+ RTC_LOG(LS_ERROR) << "Failed to mmap the memory: " << std::strerror(errno);
+ return;
+ }
- if (!(src = spaBuffer->datas[0].data)) {
+ src = SPA_MEMBER(map, spaBuffer->datas[0].mapoffset, uint8_t);
+ } else if (spaBuffer->datas[0].type == SPA_DATA_DmaBuf) {
+ int fd;
+ fd = spaBuffer->datas[0].fd;
+
+ map = static_cast<uint8_t*>(mmap(
+ nullptr, spaBuffer->datas[0].maxsize + spaBuffer->datas[0].mapoffset,
+ PROT_READ, MAP_PRIVATE, fd, 0));
+
+ if (map == MAP_FAILED) {
+ RTC_LOG(LS_ERROR) << "Failed to mmap the memory: " << std::strerror(errno);
+ return;
+ }
+
+ SyncDmaBuf(fd, DMA_BUF_SYNC_START);
+
+ src = SPA_MEMBER(map, spaBuffer->datas[0].mapoffset, uint8_t);
+ } else if (spaBuffer->datas[0].type == SPA_DATA_MemPtr) {
+ map = nullptr;
+ src = static_cast<uint8_t*>(spaBuffer->datas[0].data);
+ } else {
return;
}
- uint32_t maxSize = spaBuffer->datas[0].maxsize;
- int32_t srcStride = spaBuffer->datas[0].chunk->stride;
+ if (!src) {
+ return;
+ }
+
+ DesktopSize prev_crop_size = DesktopSize(0, 0);
+ if (video_crop_size_initialized_) {
+ prev_crop_size = video_crop_size_;
+ }
+
+ if ((video_crop = static_cast<struct spa_meta_region*>(
+ spa_buffer_find_meta_data(spaBuffer, SPA_META_VideoCrop, sizeof(*video_crop))))) {
+ RTC_DCHECK(video_crop->region.size.width <= desktop_size_.width() &&
+ video_crop->region.size.height <= desktop_size_.height());
+ if ((video_crop->region.size.width != desktop_size_.width() ||
+ video_crop->region.size.height != desktop_size_.height()) && video_crop->region.size.width && video_crop->region.size.height) {
+ video_crop_size_ = DesktopSize(video_crop->region.size.width, video_crop->region.size.height);
+ video_crop_size_initialized_ = true;
+ } else {
+ video_crop_size_initialized_ = false;
+ }
+ } else {
+ video_crop_size_initialized_ = false;
+ }
+
+ size_t frame_size;
+ if (video_crop_size_initialized_) {
+ frame_size =
+ video_crop_size_.width() * video_crop_size_.height() * kBytesPerPixel;
+ } else {
+ frame_size =
+ desktop_size_.width() * desktop_size_.height() * kBytesPerPixel;
+ }
+
+ if (!current_frame_ ||
+ (video_crop_size_initialized_ && !video_crop_size_.equals(prev_crop_size))) {
+ current_frame_ = std::make_unique<uint8_t[]>(frame_size);
+ }
+ RTC_DCHECK(current_frame_ != nullptr);
+
+ const int32_t dstStride = video_crop_size_initialized_
+ ? video_crop_size_.width() * kBytesPerPixel
+ : desktop_size_.width() * kBytesPerPixel;
+ const int32_t srcStride = spaBuffer->datas[0].chunk->stride;
+
if (srcStride != (desktop_size_.width() * kBytesPerPixel)) {
RTC_LOG(LS_ERROR) << "Got buffer with stride different from screen stride: "
<< srcStride
@@ -397,21 +434,40 @@ void BaseCapturerPipeWire::HandleBuffer(
return;
}
- if (!current_frame_) {
- current_frame_ = static_cast<uint8_t*>(malloc(maxSize));
+ dst = current_frame_.get();
+
+ // Adjust source content based on crop video position
+ if (video_crop_size_initialized_ &&
+ (video_crop->region.position.y + video_crop_size_.height() <= desktop_size_.height())) {
+ for (int i = 0; i < video_crop->region.position.y; ++i) {
+ src += srcStride;
+ }
+ }
+ const int xOffset =
+ video_crop_size_initialized_ && (video_crop->region.position.x + video_crop_size_.width() <=
+ desktop_size_.width())
+ ? video_crop->region.position.x * kBytesPerPixel
+ : 0;
+ const int height = video_crop_size_initialized_ ? video_crop_size_.height() : desktop_size_.height();
+ for (int i = 0; i < height; ++i) {
+ // Adjust source content based on crop video position if needed
+ src += xOffset;
+ std::memcpy(dst, src, dstStride);
+ // If both sides decided to go with the RGBx format we need to convert it to
+ // BGRx to match color format expected by WebRTC.
+ if (spa_video_format_.format == SPA_VIDEO_FORMAT_RGBx ||
+ spa_video_format_.format == SPA_VIDEO_FORMAT_RGBA) {
+ ConvertRGBxToBGRx(dst, dstStride);
+ }
+ src += srcStride - xOffset;
+ dst += dstStride;
}
- RTC_DCHECK(current_frame_ != nullptr);
- // If both sides decided to go with the RGBx format we need to convert it to
- // BGRx to match color format expected by WebRTC.
- if (spa_video_format_->format == pw_type_->video_format.RGBx) {
- uint8_t* tempFrame = static_cast<uint8_t*>(malloc(maxSize));
- std::memcpy(tempFrame, src, maxSize);
- ConvertRGBxToBGRx(tempFrame, maxSize);
- std::memcpy(current_frame_, tempFrame, maxSize);
- free(tempFrame);
- } else {
- std::memcpy(current_frame_, src, maxSize);
+ if (map) {
+ if (spaBuffer->datas[0].type == SPA_DATA_DmaBuf) {
+ SyncDmaBuf(spaBuffer->datas[0].fd, DMA_BUF_SYNC_END);
+ }
+ munmap(map, spaBuffer->datas[0].maxsize + spaBuffer->datas[0].mapoffset);
}
}
@@ -770,10 +826,7 @@ void BaseCapturerPipeWire::OnStartReques
g_variant_get(variant, "(u@a{sv})", &stream_id, &options);
RTC_DCHECK(options != nullptr);
- g_variant_lookup(options, "size", "(ii)", &width, &height);
-
- that->desktop_size_.set(width, height);
-
+ that->pw_stream_node_id_ = stream_id;
g_variant_unref(options);
g_variant_unref(variant);
}
@@ -859,10 +912,15 @@ void BaseCapturerPipeWire::CaptureFrame(
return;
}
- std::unique_ptr<DesktopFrame> result(new BasicDesktopFrame(desktop_size_));
+ DesktopSize frame_size = desktop_size_;
+ if (video_crop_size_initialized_) {
+ frame_size = video_crop_size_;
+ }
+
+ std::unique_ptr<DesktopFrame> result(new BasicDesktopFrame(frame_size));
result->CopyPixelsFrom(
- current_frame_, (desktop_size_.width() * kBytesPerPixel),
- DesktopRect::MakeWH(desktop_size_.width(), desktop_size_.height()));
+ current_frame_.get(), (frame_size.width() * kBytesPerPixel),
+ DesktopRect::MakeWH(frame_size.width(), frame_size.height()));
if (!result) {
callback_->OnCaptureResult(Result::ERROR_TEMPORARY, nullptr);
return;
@@ -887,4 +945,22 @@ bool BaseCapturerPipeWire::SelectSource(
return true;
}
+// static
+std::unique_ptr<DesktopCapturer>
+BaseCapturerPipeWire::CreateRawScreenCapturer(
+ const DesktopCaptureOptions& options) {
+ std::unique_ptr<BaseCapturerPipeWire> capturer =
+ std::make_unique<BaseCapturerPipeWire>(BaseCapturerPipeWire::CaptureSourceType::kAny);
+ return std::move(capturer);}
+
+// static
+std::unique_ptr<DesktopCapturer>
+BaseCapturerPipeWire::CreateRawWindowCapturer(
+ const DesktopCaptureOptions& options) {
+
+ std::unique_ptr<BaseCapturerPipeWire> capturer =
+ std::make_unique<BaseCapturerPipeWire>(BaseCapturerPipeWire::CaptureSourceType::kAny);
+ return std::move(capturer);
+}
+
} // namespace webrtc
Index: chromium-83.0.4103.116/third_party/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc
===================================================================
--- chromium-83.0.4103.116.orig/third_party/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc
+++ chromium-83.0.4103.116/third_party/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc
@@ -16,7 +16,7 @@
namespace webrtc {
WindowCapturerPipeWire::WindowCapturerPipeWire()
- : BaseCapturerPipeWire(BaseCapturerPipeWire::CaptureSourceType::Window) {}
+ : BaseCapturerPipeWire(BaseCapturerPipeWire::CaptureSourceType::kWindow) {}
WindowCapturerPipeWire::~WindowCapturerPipeWire() {}
// static
Index: chromium-83.0.4103.116/third_party/webrtc/modules/desktop_capture/window_capturer_linux.cc
===================================================================
--- chromium-83.0.4103.116.orig/third_party/webrtc/modules/desktop_capture/window_capturer_linux.cc
+++ chromium-83.0.4103.116/third_party/webrtc/modules/desktop_capture/window_capturer_linux.cc
@@ -28,7 +28,7 @@ std::unique_ptr<DesktopCapturer> Desktop
const DesktopCaptureOptions& options) {
#if defined(WEBRTC_USE_PIPEWIRE)
if (options.allow_pipewire() && DesktopCapturer::IsRunningUnderWayland()) {
- return WindowCapturerPipeWire::CreateRawWindowCapturer(options);
+ return BaseCapturerPipeWire::CreateRawWindowCapturer(options);
}
#endif // defined(WEBRTC_USE_PIPEWIRE)
Index: chromium-83.0.4103.116/third_party/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc
===================================================================
--- chromium-83.0.4103.116.orig/third_party/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc
+++ chromium-83.0.4103.116/third_party/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc
@@ -16,7 +16,7 @@
namespace webrtc {
ScreenCapturerPipeWire::ScreenCapturerPipeWire()
- : BaseCapturerPipeWire(BaseCapturerPipeWire::CaptureSourceType::Screen) {}
+ : BaseCapturerPipeWire(BaseCapturerPipeWire::CaptureSourceType::kScreen) {}
ScreenCapturerPipeWire::~ScreenCapturerPipeWire() {}
// static
Index: chromium-83.0.4103.116/third_party/webrtc/modules/desktop_capture/screen_capturer_linux.cc
===================================================================
--- chromium-83.0.4103.116.orig/third_party/webrtc/modules/desktop_capture/screen_capturer_linux.cc
+++ chromium-83.0.4103.116/third_party/webrtc/modules/desktop_capture/screen_capturer_linux.cc
@@ -28,8 +28,8 @@ std::unique_ptr<DesktopCapturer> Desktop
const DesktopCaptureOptions& options) {
#if defined(WEBRTC_USE_PIPEWIRE)
if (options.allow_pipewire() && DesktopCapturer::IsRunningUnderWayland()) {
- return ScreenCapturerPipeWire::CreateRawScreenCapturer(options);
- }
+ return BaseCapturerPipeWire::CreateRawScreenCapturer(options);
+}
#endif // defined(WEBRTC_USE_PIPEWIRE)
#if defined(WEBRTC_USE_X11)
Index: chromium-83.0.4103.116/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.h
===================================================================
--- chromium-83.0.4103.116.orig/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.h
+++ chromium-83.0.4103.116/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.h
@@ -22,17 +22,13 @@
namespace webrtc {
-class PipeWireType {
- public:
- spa_type_media_type media_type;
- spa_type_media_subtype media_subtype;
- spa_type_format_video format_video;
- spa_type_video_format video_format;
-};
-
class BaseCapturerPipeWire : public DesktopCapturer {
public:
- enum CaptureSourceType { Screen = 1, Window };
+ enum CaptureSourceType : uint32_t {
+ kScreen = 0b01,
+ kWindow = 0b10,
+ kAny = 0b11
+ };
explicit BaseCapturerPipeWire(CaptureSourceType source_type);
~BaseCapturerPipeWire() override;
@@ -43,28 +39,32 @@ class BaseCapturerPipeWire : public Desk
bool GetSourceList(SourceList* sources) override;
bool SelectSource(SourceId id) override;
+ static std::unique_ptr<DesktopCapturer> CreateRawScreenCapturer(
+ const DesktopCaptureOptions& options);
+
+ static std::unique_ptr<DesktopCapturer> CreateRawWindowCapturer(
+ const DesktopCaptureOptions& options);
+
private:
// PipeWire types -->
+ pw_context* pw_context_ = nullptr;
pw_core* pw_core_ = nullptr;
- pw_type* pw_core_type_ = nullptr;
pw_stream* pw_stream_ = nullptr;
- pw_remote* pw_remote_ = nullptr;
- pw_loop* pw_loop_ = nullptr;
pw_thread_loop* pw_main_loop_ = nullptr;
- PipeWireType* pw_type_ = nullptr;
+ spa_hook spa_core_listener_ = {};
spa_hook spa_stream_listener_ = {};
- spa_hook spa_remote_listener_ = {};
+ pw_core_events pw_core_events_ = {};
pw_stream_events pw_stream_events_ = {};
- pw_remote_events pw_remote_events_ = {};
- spa_video_info_raw* spa_video_format_ = nullptr;
+ struct spa_video_info_raw spa_video_format_;
+ guint32 pw_stream_node_id_ = 0;
gint32 pw_fd_ = -1;
CaptureSourceType capture_source_type_ =
- BaseCapturerPipeWire::CaptureSourceType::Screen;
+ BaseCapturerPipeWire::CaptureSourceType::kAny;
// <-- end of PipeWire types
@@ -79,33 +79,38 @@ class BaseCapturerPipeWire : public Desk
guint sources_request_signal_id_ = 0;
guint start_request_signal_id_ = 0;
+ bool video_crop_size_initialized_ = false;
+ DesktopSize video_crop_size_;;
DesktopSize desktop_size_ = {};
DesktopCaptureOptions options_ = {};
- uint8_t* current_frame_ = nullptr;
+ std::unique_ptr<uint8_t[]> current_frame_;
Callback* callback_ = nullptr;
bool portal_init_failed_ = false;
void InitPortal();
void InitPipeWire();
- void InitPipeWireTypes();
- void CreateReceivingStream();
+ pw_stream* CreateReceivingStream();
void HandleBuffer(pw_buffer* buffer);
void ConvertRGBxToBGRx(uint8_t* frame, uint32_t size);
- static void OnStateChanged(void* data,
- pw_remote_state old_state,
- pw_remote_state state,
- const char* error);
+ static void SyncDmaBuf(int fd, uint64_t start_or_end);
+ static void OnCoreError(void *data,
+ uint32_t id,
+ int seq,
+ int res,
+ const char *message);
+ static void OnStreamParamChanged(void *data,
+ uint32_t id,
+ const struct spa_pod *format);
static void OnStreamStateChanged(void* data,
pw_stream_state old_state,
pw_stream_state state,
const char* error_message);
- static void OnStreamFormatChanged(void* data, const struct spa_pod* format);
static void OnStreamProcess(void* data);
static void OnNewBuffer(void* data, uint32_t id);
Index: chromium-83.0.4103.116/third_party/webrtc/webrtc.gni
===================================================================
--- chromium-83.0.4103.116.orig/third_party/webrtc/webrtc.gni
+++ chromium-83.0.4103.116/third_party/webrtc/webrtc.gni
@@ -114,6 +114,10 @@ declare_args() {
# supported Ubuntu and Debian distributions.
rtc_use_pipewire = is_desktop_linux && use_sysroot
+ # Sets the pipewire pkg-config version to use if rtc_use_pipewire is true
+ rtc_use_pipewire_version = "0.3"
+ rtc_use_spa_version = "0.2"
+
# Set this to link PipeWire directly instead of using the dlopen.
rtc_link_pipewire = false

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE default-apps SYSTEM "gnome-da-list.dtd">
<default-apps>
<web-browsers>
<web-browser>
<name>Chromium</name>
<executable>chromium-browser</executable>
<command>chromium-browser %s</command>
<icon-name>chromium-browser</icon-name>
<run-in-terminal>false</run-in-terminal>
</web-browser>
</web-browsers>
</default-apps>

View File

@ -0,0 +1,53 @@
#!/bin/bash
# Allow the user to override command-line flags, bug #357629.
# This is based on Debian's chromium-browser package, and is intended
# to be consistent with Debian.
for f in /etc/chromium/*; do
[[ -f ${f} ]] && source "${f}"
done
# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system
# default CHROMIUM_FLAGS (from /etc/chromium/default).
CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-"$CHROMIUM_FLAGS"}
# Let the wrapped binary know that it has been run through the wrapper
export CHROME_WRAPPER=$(readlink -f "$0")
PROGDIR=${CHROME_WRAPPER%/*}
case ":$PATH:" in
*:$PROGDIR:*)
# $PATH already contains $PROGDIR
;;
*)
# Append $PROGDIR to $PATH
export PATH="$PATH:$PROGDIR"
;;
esac
if [[ ${EUID} == 0 && -O ${XDG_CONFIG_HOME:-${HOME}} ]]; then
# Running as root with HOME owned by root.
# Pass --user-data-dir to work around upstream failsafe.
CHROMIUM_FLAGS="--user-data-dir=${XDG_CONFIG_HOME:-${HOME}/.config}/chromium
${CHROMIUM_FLAGS}"
fi
# Select session type
if @@OZONE_AUTO_SESSION@@; then
if [[ -z ${XDG_SESSION_TYPE+x} ]]; then
if [[ -z ${WAYLAND_DISPLAY+x} ]]; then
CHROMIUM_FLAGS="--ozone-platform=x11 ${CHROMIUM_FLAGS}"
else
CHROMIUM_FLAGS="--ozone-platform=wayland ${CHROMIUM_FLAGS}"
fi
else
CHROMIUM_FLAGS="--ozone-platform=${XDG_SESSION_TYPE} ${CHROMIUM_FLAGS}"
fi
fi
# Set the .desktop file name
export CHROME_DESKTOP="chromium-browser-chromium.desktop"
exec -a "chromium-browser" "$PROGDIR/chrome" --extra-plugin-dir=/usr/lib/nsbrowser/plugins ${CHROMIUM_FLAGS} "$@"

View File

@ -0,0 +1,5 @@
# Default settings for chromium. This file is sourced by /bin/bash from
# the chromium launcher.
# Options to pass to chromium.
#CHROMIUM_FLAGS=""

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>chromium@gentoo.org</email>
<name>Chromium in Gentoo Project</name>
</maintainer>
<use>
<flag name="closure-compile">Enable closure type-checking for Chrome's web technology-based UI. Requires Java.</flag>
<flag name="component-build">Split build into more shared libraries to speed up linking. Mostly intended for debugging and development, NOT RECOMMENDED for general use.</flag>
<flag name="hangouts">Enable support for Google Hangouts features such as screen sharing</flag>
<flag name="pic">Disable optimized assembly code that is not PIC friendly</flag>
<flag name="proprietary-codecs">Enable proprietary codecs like H.264, MP3</flag>
<flag name="suid">Build the SUID sandbox, which is only needed on CONFIG_USER_NS=n kernels</flag>
<flag name="system-ffmpeg">Use system ffmpeg instead of the bundled one</flag>
<flag name="system-icu">Use system icu instead of the bundled one</flag>
<flag name="system-libvpx">Use system libvpx instead of the bundled one</flag>
<flag name="tcmalloc">Use bundled tcmalloc instead of system malloc</flag>
<flag name="widevine">Unsupported closed-source DRM capability (required by Netflix VOD)</flag>
</use>
</pkgmetadata>

View File

@ -0,0 +1,94 @@
DIST firefox-80.0-patches-02.tar.xz 26280 BLAKE2B 11445bae206ed9e8cbadb7f9c2a2ca143c50d4924e663e3b83533f5b6b2aab4e1c760c9c21e1c7ed7d324443ce5df50d1f6b1284184ddaaacbe6c040c5835dee SHA512 51ea389c14757636eea87d9cdb64015072b85ca79e86c68a299568b2a02a8225116c40f0b6306bb15cb73ea9ba18e1767d5e0c21e0aa6dd202cf6ae3d74c304a
DIST firefox-80.0.1-ach.xpi 504583 BLAKE2B d885d46f9eafa9e4c390318b4d01a9c3bd6ffe559c5a619fa7fddd8edd17599c61162499e7ef6b24a68e067ac1e5434e428519bb2dcec1d1b288ba22b7547be4 SHA512 ac19b518cc92f39e8fe16eb86f9c1a273db0f7ba4bf9ce001c41dac2b33400ebe3131ad5205009ffe96ff1e067212f7edc2f083f8cab29f8457af77efc299335
DIST firefox-80.0.1-af.xpi 444291 BLAKE2B c71a2cc6c6e56855ced7a4a85dacdb11265bdde39e5e0f5337f35a031cec45487a71fdc1ad35530fdb71360a38dcc81dec789a54da41f653db5dc0bb36a34b31 SHA512 29bd2b91adf1976a7d9a40ee0db8a8fb17036bfa28a2ea2eaff2f17ea91cc3ac49b4bf99259315e3ed8e38cc229a68a1c68212e4c13fa851d6e94efa01a3e410
DIST firefox-80.0.1-an.xpi 542426 BLAKE2B 7d9d8d305c9819d2840b29876aa4074971887904e172f3d5ebc090dfc5ebf5ca9d6e7cbca490fbe0c4e53eb41952732d047e235ed18a344315bd198566a92a3e SHA512 b6e490f206b4d20e6bc652b9daa24f78f1b4447e32ea77394b92e73ec0de6f21d30e22ca3ee87f2a95e437cdf7cab6a6a81307a8ec1451e69f761671cc03a5b0
DIST firefox-80.0.1-ar.xpi 591816 BLAKE2B 4d8aceaa4e7e44394be8961a3515dc98dab892bf3ff15a3cc93d35501db33f8764a8579fbb6196ce85d68134f3cdead11549946e2f73a986d49731594c9e762b SHA512 412181e35fc61a871076867c00133670c4b04e199ac4bf0909923f850cc60825cf8411eb42a449c0d921b5702d2463a485826731b53b76302e06702c44ca7c8b
DIST firefox-80.0.1-ast.xpi 502149 BLAKE2B 1e196ecdf387c4769f8a5000df918679b95d83d1d06306b60a7146d4b11328e6883baf85c6ea04023cafa4e50f67301f6276dcd4e70593a9149e3f06f25dedea SHA512 1dba93dec0eafd28b13ced483d098e57b77816d9a64f6fc7089516d1adc23c8834c672fa2ba52e53ce8b1599f55779c24fac0a54151f3cf84d3ebfd0265065ea
DIST firefox-80.0.1-az.xpi 539349 BLAKE2B fbda6488399d8dc1e9f5d9dad3be9b6ba7d32bfd826a3ec28d6b0b020ca83505b2ef5121e36636ca837d3675d1aa7dffe57f3df3b85094d91e75b24339d599bd SHA512 7a044fc2cfc7e36f0e8407e804ce29deb6441c33e69e11458f010b614edc5f01bd4d03086eb4e81c2fce970878b16b294520e3c6309d1398552dc39d5adbc106
DIST firefox-80.0.1-be.xpi 652311 BLAKE2B 14299f1248968272127d6562a85b049e0a4da11da7f8f30169e569fcee9a6c9ead73f807a4a216622d100005b9d7af5ad8279352e8c02e9c56aa2eef69111e6d SHA512 96a02f58e3a9604342cb0b755c6ae4bc35c8e48adecaf407566cf10bf2ef5ab7dd1c83951377cc21d631912811b25cff1ca40a1dff74271c29f71c7ab0b390f3
DIST firefox-80.0.1-bg.xpi 614701 BLAKE2B 872d0bf0598f4f942278bee24d497c846e65e8ebf9217eaab0ca2a3fdcdac43a0cac71c044e86a8fb7671a5d3c6ce630ee674ff41e7c9738d3419090ffe79e92 SHA512 974fbe862f264b98a8045e306ef09817e739f8a1d6c092b60503f73d8667702df88a090abc4f492982ce11ff3b0e138a4c615bd400622a3901b63531155c1d64
DIST firefox-80.0.1-bn.xpi 635296 BLAKE2B 4a08afd0d38908cea8040f872d9763e19466538229168fd7c75e993c3b2b8f8eaff0dfac5e7b6fda86c34abff7795f1a9af0b2cc71c9062168d6ac9faecfd7d2 SHA512 64bdd07e317c5aa04cec65fff262982aadd7aeabdfe7ae07068807e2bc6ff62042cc051d7422b7df5904a0e3ab32697f46f4ac6f9cfa118b19fc475de2373651
DIST firefox-80.0.1-br.xpi 555844 BLAKE2B 480f327adf194a66dab2b4c5ecbd8f3d3dee3cce7b2b83710fa9628a584e062ec210f857caedb950209fe71524242a8efe9660daf209ff27110c9cd87e8ee5ee SHA512 9f199d06d38f4dee320bd818d3c0dd570faab221beeb4f8029b1ef4a69e385c8b7d58db7926ced1fbf65c8f20bf4406c1545dd4ba42cc2a1144d2aed6e8623b2
DIST firefox-80.0.1-bs.xpi 513421 BLAKE2B f231f7007833bf3e1d874e7b7fd95e07c5c31c8a155b4017f8b00a34bc409944922b06f05e65753984ac5fdd18177a0c190a0c5396a9866b03fe45a24e670823 SHA512 c6e0ef8fcdaca6988ebbc8fa44ca1c32489c8c6667d0e30f560eef525a813789a0b6f5c721632909a936863f29320ea0054fbbdb41328a9594cc541f5fcd5d2a
DIST firefox-80.0.1-ca.xpi 564258 BLAKE2B 547a8d2fb678dc8eb6198f761fa45df2538dd0d6584d7734c28267a30532158e7b37702c60033724e083ddad9727bb61fc8ac1b782e3b60af601838fe3dc9ed5 SHA512 26c71d36c773dcae5dbd42af3075722a40e7e763a9a00529837f8847dd59683d7404ab6bdf90543f8fadd1aac35658a93f143051cae1c12a36bbe1ba8a95578d
DIST firefox-80.0.1-cak.xpi 589532 BLAKE2B be2d5d21657c1bffe4538130458715c1a36c709c6452ecba8894ac47cc3cccacbe23f62195221ceede8a89a96787f46db68308ed953fba3cc6c6f90e87d17451 SHA512 bd4299a8940c187b502555955c5fd7a52b52ea785bedacfbd115f2933c4c34a0a18425cd5bb5e0861abd986e125d83ff05d277c223863a6db1b6a8bedf8a8df9
DIST firefox-80.0.1-cs.xpi 590314 BLAKE2B fa0a9d9d8544437b1513ed0b8fc07757e5ec34bae697dfdf15ab9b44aa262635b0d1a56877181f5ab3e5dd32ac22bee0195546b32ddbac02ecc5de716c5966ae SHA512 65b1b5824424017d3819e789a8951095c0cf7dba3f0671c501a5344f3a91cab6fe0cf0c3940685156b961489fa6b65b279f33a1cb4ae59328d00ee7e393d824d
DIST firefox-80.0.1-cy.xpi 574272 BLAKE2B 3ab8d320bf2fd48f5825d24975ca1266d726f50181a61b5cec28bcfce96d8159c24da05da83d57187c2f46ef998d914ad4c3fea9f793b26dc12dd27530009468 SHA512 81400a51bcb20feba7300b2ec8143d788e8962284852a15b1702345b344aae62b1403c8ebf4a808d2a4ff55674284b827db8ba81d0c77928f701bd7cd6287812
DIST firefox-80.0.1-da.xpi 564645 BLAKE2B 375f10fee6b2af1cddfd145fbc7616e8289a17c6273a509cfc8c42bd94c3dac161517c536cb94763ef317df9aaf34d195db6af8d4fa950f06060f2a5f51c707d SHA512 b1e8748883ab511f7023b52846b19633e17ed49d9d5e96cc0a1062dc5eb7f60094d39b542c947190eb07d2be00e87192615a4015cac5700565a7247dcfbe0fd6
DIST firefox-80.0.1-de.xpi 588247 BLAKE2B ba6a54fabc42338259e01a658dec8e090cdc0bae1482ff1841ddd7499ae4cb2a10c83e4dd1ab33d0101762126f454a44e4b083142deff0a44d48c0c112a17902 SHA512 a23868386debc06a8f4c1dde2625bba796c59a9898bf560ddffbcff0035b84832faca828d3b507c63437372097a818b4b51dca51304131bc8f21694a6b54adeb
DIST firefox-80.0.1-dsb.xpi 598372 BLAKE2B fff3b0e5f2c93e9cf12781742f6b00dd4347a2ab4ef5eec05e81ca14c470a658a27b22f1c6bd3d9956716a0e0f98f8c3b8e7dd5d0247162c16b38a4f3a33feaf SHA512 615ec77f46da620ec1d4ef9fc96bf8ef43edc4a3c1476737cbf2403d73220b9224316cc6924146ed5f9ac17e40e0f6a03b90053015be74c9fcba055b05e45a85
DIST firefox-80.0.1-el.xpi 673926 BLAKE2B 8dd6b2a74c10f711fadde537242e6de9394513853639d3766a2f88b2eb6e9bc06e195389b0813424254a9409abac80a574abdd48f2164bdad6d1544dbc57fcc5 SHA512 3ea62e7ba20503446f7231d594d84b6d81380d0614c38ba0a1a1f9f873a5860feeba791b7bcad626064bd2194b86492be182ec94fdbcb53a4cbad7650d7003c1
DIST firefox-80.0.1-en-CA.xpi 541479 BLAKE2B cc38108b9165fced8ca6e04aa794f9ae6226b9ed7ea645650ee066e4f2054c84ab9ba386c89ecd71783ee21f837c06def205b7fc780a9273cfd8fa9843515903 SHA512 0122922c50c2254ac7d64361552d5c5c10c3492f97525857bb00f64d99ea9681f00143f8d7a521dd05ea26b6b3450bf2b8a0a9c98aea1d7535321798375f085e
DIST firefox-80.0.1-en-GB.xpi 539266 BLAKE2B f90521d2352332c006041ed22b1d180a74c504cc1a61a9a6dde4b76e77fbc5cc9750152d409835349f508f04a2bebc39f491313a5bf770af785ada0251766e8a SHA512 4eaaeabe1a86165700c78f160d379e14df40330b17fa83c89b63fdddd65f39ea18104b9684b582357bb946dec6fdc224511874ef7167fcb9c8f5f8dbbdec2cbe
DIST firefox-80.0.1-eo.xpi 566633 BLAKE2B fe5e6bbee2e655cfc05487809f07f532b548b43751d649ca24a1a5b285101d366c82770b3dc729364f6b11c9b805881df39e153f5c7492f17e2a1e25c876d521 SHA512 e6df7e49d3f2a85311883cca891eceaacd96a6ca8e37a4d800cabb0da846b576379a3ed1824fb35a27794696527dd421571a3982d4a6008033c41cc4ced4733a
DIST firefox-80.0.1-es-AR.xpi 579597 BLAKE2B 3fc4229892c3faceee2e303e94cd14601f0c6132bed513e2f2b9e57b05fbbf7ac48521fc56af4048330e526d9d6b3fa506caaa54b8837f92a5c2f3c3df890b6f SHA512 202b95ccdebe79cffa5c7b911829ee819170f2ee5ea1f9a86cb11c81b392c2481c8ce6dd75a87efb7451e80bde0faeea51d2130efe863cfea10afd882ccf8632
DIST firefox-80.0.1-es-CL.xpi 577631 BLAKE2B 8e44e19d6be3356d9a7f0d561ad07adf148b27fd57aa5f07d9f0512c2e3ffa2fe36a4f8634ab3aa4a84c6e90b8936d1a69e4e62b01adeac5a0d70171db1e6c1b SHA512 9902c486aa1950ebbca5800732da224f4d0a6c212d5a439158830d2b49d3a0cb199d336e112c5393dc28b585e5ea459d24d0628691b8f44b6e852ab3529a5ca3
DIST firefox-80.0.1-es-ES.xpi 562989 BLAKE2B cab474e30600e0e3a8950544febf8ee3cdc8a3ed06a2dfd5d0489ecf9b6a1b742fe27933d5dc7eeae5ac2b7ee0430ebfd85cfbb0721acc33863f22eb1e8ec90d SHA512 dd895d61f68998630196c1b67827b6391faf9aa67692496ff457cdb609ecea22472598fff3a8efd969e1f7bf6917e6e87bb230cf9ea2d14dbdab033c2202020b
DIST firefox-80.0.1-es-MX.xpi 575053 BLAKE2B 21c9ae4af67530b975a018607c1d83f12ff670a06f5f13afff4bbc79a2ef397624f6329939fbb516ba150a78c1080fa29b8443480162c0c213d5034bce916961 SHA512 c7d1750afa49e066bf991a36307f46c5207204eb1899faa52cdf9a148566270ad98fa4e392292805b7fbbc2847d7990a91fd6b5d759d18ba4d4feaac9614b089
DIST firefox-80.0.1-et.xpi 537589 BLAKE2B 591615c642322acfc71d4c082d70977ffe5bef875dfa5423451cd6b15bebca9f0f71c725f90474f7c86b77662779f802621dc7467e4210690ba7b0ab275b2fc1 SHA512 aa1b000d1cda7c6386e433f58e818b526b4a00fb2c6cd52e314b9df73428d9b1727c36b563e8f74f3be95e269ddd683069ec977dc0418489fed262694afd5d9b
DIST firefox-80.0.1-eu.xpi 558572 BLAKE2B 624888cb8367888a76d6d33c0ed9a72b7cbd903df5f50466c1c99af59456ab40327f630fabd16318bffab3f085f1518ab735dcc335162b3270f26774df22c382 SHA512 445129660e64aaeee890ed17817e07f1b81396e56c7825d42d820461d35431e063d52638a8e70628fc0ddcc3c95f70ce6c6147f73926cd13117d21c3e4400756
DIST firefox-80.0.1-fa.xpi 597158 BLAKE2B 56cdef645e9ffa0985ee1d19d3a690a5e20748789272c01469609b9e557bfbcd8c765a5e894aef6e50408c5fae9b201285b326ad25b4f53096966d62c65ce198 SHA512 618edb84fe834b0a07d6f92e474a8daa6f6020131af4a650e67b53cb209dae073e41c7ecf3d3106a02c6a0a8d763ef1c7c115e3ffab8893c1fdf5c651c1c450b
DIST firefox-80.0.1-ff.xpi 533516 BLAKE2B 04d8d9942fedf9036656aeb5e9a72122bfbb8849963b849e811b53fd20ec8f44f28bffe707f0321e3c75e102bdd88e7e83bbc46871bc76e29a5f28ef20dcb4a4 SHA512 9c88ea9c89335148ed8e4e7921c20362d1081aead5a4bf9cdf20bbfbb62de9b30e73ea4b5e7a7608617810cca02cca666293f18af2e27906c4b3663109258639
DIST firefox-80.0.1-fi.xpi 564288 BLAKE2B 3064fd38df3fdd759679b946875b74e0095229c42772fd1669f495fed787dfb11b7bf6b7d8b7fc4bc4093c094699df7555d350d267badd1680078ab085baf567 SHA512 75cffb30b10e3a65bc1005bc07ad8d2bd2322a86979ba8076c181f4172ac24b50ef2705a50edf005baa55fbe43f20f9d3966d8efe626954a4de5cee9a4495c19
DIST firefox-80.0.1-fr.xpi 588643 BLAKE2B c82dce22ffe0967cdb3634be383fa7be466d43593c52d5f9c8c632a41c4d59471023efe6bdfea48c7825bea7ef81e5205933ce264af66dde7052395323a0f4e1 SHA512 97c1d0630ebdda03e82bae7f05460ac01d259349168795893552e519c4cbbaee5e510c5873769a7689f65a3ea8a42e6b57e1803b6ed931efd8af4fb504744edf
DIST firefox-80.0.1-fy-NL.xpi 573865 BLAKE2B ea8138bd570e2464526f612e9f16a83de673f4f48954f0052950ec907ac83a9e837f3351ef91dcc6f04d4b48f5f7d581086a1d2aae310de6281a8a4bef81bcc2 SHA512 7b3c109910b9430bbc5e03903af418eab74e7f6dfd190ae896814c724bcdf77717561e5afacb871280789952a4fc13f6b9358ce39ebe47f1a105ee717e4e8f55
DIST firefox-80.0.1-ga-IE.xpi 516236 BLAKE2B 0d81cc6ece708e073c25b514451f7f555f6d24f8bcf91862e28df88881267896fb0f39a62f6281b1440cb78ce151716f460efc74d3349001ef1567f7bbcc65ee SHA512 65e5b043cdad51329c4895ab6fe8e80cf29afad58ffca585a77d827ca70f03259c86c3383e260438a47e993af93fcd05198a102dff2efe0e47d1b836c7af6e25
DIST firefox-80.0.1-gd.xpi 546276 BLAKE2B 0031948453692579fc83cccf78ce642820fcfc7626b8063ee443bb2c45d0c41cf99521af45d4e41adce736ba65be08e4113afade05ee9cb15c900e653890c883 SHA512 017bffbc2748785a83c3068d472e53d4ca6aec335b1aaba2b25371172353463657c87a4f255e892282373c6499a38d154790a0a9db146637f71839bc2a3e6311
DIST firefox-80.0.1-gl.xpi 510190 BLAKE2B c43f142183f552a622709a4bbebbe6c70fe5717de979713095bd5a284787a3fedef5ad361a2212bd4e269ae36ea3d9fc05503d0531041e6b20ab15c4e7ef274e SHA512 8bdef6d9a9dc93291103ecf086e54a2f1b5c825b5b16a799ed7e289c27e40afa33203cbdc06737410010bd5d63395f56762967474f19029d3fd448ce3bf01bec
DIST firefox-80.0.1-gn.xpi 590791 BLAKE2B 1ddbce705dbe7d8376dc85572cddc622aa5b3bc0fa7558bdf4a3ed6460b4778a4917f586bf7ac9d2685dbbd807cc175331bdfe47e45d35fba4b6cc9eb1ea9ad2 SHA512 7b0ba306f99c4b1b184d691a8dbc850d3dc6163f98c0a06b702396bb4779a97fa766ead27da314e4a0e77e8bcfb62c99bac08c9f4d6c7e69479f3d4db43454e1
DIST firefox-80.0.1-gu-IN.xpi 604461 BLAKE2B 20af1b1f004c2ca8e2fe0c253e79d2c0b74ac063d447040d5681e73f87a9eab87b30c0e6f3872ea7b3a66bd4a0ca5655dcb2de890ee6d815b395262f71676bc1 SHA512 f6ed907d915b5247becc4bdde4c0162ead1e23bb09503bf97e18f7308fe54d22436f0166618b1456ee586d72fc7fa30ed787910a21c0443881d379710e42d969
DIST firefox-80.0.1-he.xpi 592098 BLAKE2B c68b749791ebde80692f2de63da6ce4da9a1f42025bb9d8db468c2980ff0c0a8e37d11c3cd56d0066d4aa7e95cf89ece27ecec90c68d4c7bcdf709b19266058a SHA512 35c343af1655da469a40841f47b2d55be613593ea6dc7d919e8a92cbe0397c5c6846964788f4b5352947daa804c6fa33f5d18445c10188715de9a74ed53f4027
DIST firefox-80.0.1-hi-IN.xpi 625903 BLAKE2B 58eee14246b5bd011dd5d8b80f6e550062091c11a6ac9bd68a2e0440fd976fad9be85d1fb48dda4cf84ee77ebff5a2ae0647a976098c828154fb986f7f94d782 SHA512 910c22111eddc6cba2089876ae726b580c6883d7fdbef6cce12b41977abb8aab69447a262aa748c35de77476eb015141ead769925d1d06a10fc671290d0db493
DIST firefox-80.0.1-hr.xpi 570021 BLAKE2B 08bbee83abbfa45bfbccb6665cee2c28c9725e0a47cda940575a552fec7d08b26161d878731ae36c3f2d6973329d342920a7e65bafc48bf6fb5fe587cff0ee8d SHA512 2be01411f887388770afc99efdc2fd77ca02327d51c8f4d1a717f13f0dbc147ba7fc39a56a686512cbf4cbef3d4b6a5ad85c0d03c878eb5b44386c47fe15eb8b
DIST firefox-80.0.1-hsb.xpi 595914 BLAKE2B f755c918266cdf4e052729deba5d5a325878489438eeed30523eb6e3c7896df07c33172286e8313e7e4f4c6045187e6b5a615d1f7deba4a38daa63b49745a9dd SHA512 4084e9a4c65e57d6efc16d1f7927772ac6fa87c7c136ed4f7a82fa19db76d236ab06e08eec234612702d42e32968fd1699836b314c2ff7770f8cd84db209dbc5
DIST firefox-80.0.1-hu.xpi 600741 BLAKE2B ffd3bbcbca34377f2ec0d9ef7ff183a4fd62bd99e53317806f1419b6859804b3b9d7926cf09cff7bd6e1ce2f621c307cf0142aad68cde00c1d1800e4fe6d9888 SHA512 066da2326aefcaa07433083230debc48689be0aa82701111e9b7dfc2ac45724047029a0332401d66cab53b90bba243839f28014f773cea442a5e25ea8b387e23
DIST firefox-80.0.1-hy-AM.xpi 651784 BLAKE2B 874cd0c9c62087d131382b1be57a30536ec45e5c58886fb79ba1315dd6bf8fce68330b2046cf0d16c6e7e4390e46f6fe1e7a6dd62e6ca32007dbe58a7129f3a9 SHA512 7689b2fdccd31f057c69ef02ec2ff925cdbf02fdde70e929879ef4ce426458b51ad5576ce99af58b2aa250e1c497c333d21648effe254e8310a666cc07564718
DIST firefox-80.0.1-ia.xpi 565290 BLAKE2B 75e6b194b15b16cf46339c48ea24775bc5dd113170a0aba9078446a9b40c4dc208f9f81045bb4ba8928d2d0f1319b6620235e2b228fa9b923b405ce93f993b81 SHA512 d14576bf7bd9c686e3e5cd9fb1b0477f95db0cc02040e00b66939e494743779ba705eeb01e1f8a6730b079e9c6a1aa40f5bc6874f3c708c2d4a0614f15fdb13c
DIST firefox-80.0.1-id.xpi 558440 BLAKE2B 5fc4cd0ff0b7a4338be2de63a5ef45febc6a0fd203e5a4c50a622b4b6a3c82d2e244bcc80460dac87ee8049310f5dd83ef9b1be4cd9f1c27902640e5a52f26e0 SHA512 d7606b3422e6cba126dab8ebe68d3d4fc77c93eafddc118191a7dad474dafa402907388bb269f9a6654a44be06aa61f72698e893b608e944afa8ed524b2e5605
DIST firefox-80.0.1-is.xpi 529509 BLAKE2B 8b96219b2cd711d13b23cdd1f3d3d59ae603dabcfcab31eb98961f0482b61e930ebcf074a008fed654fe958b94dc0861c8521b0094c282cbfdb4c5282efa90c1 SHA512 5fa2a46a70ad0b88ba40a495ae9c1687aef359fdab8f721185352b124f15c755af8fa0ee6fff3abb5dc79daa5b560fc12e671438280b03a5e1523460409d5a30
DIST firefox-80.0.1-it.xpi 463581 BLAKE2B 05c9459abdbc3808fb959cfffae271868b8aa1952fe3af48ec1481f032ddd53b1e3aaa62b28ff7b4ae44dc90e15b3aafa5900dd46f1473fcb6c2dcbf16cc6ba2 SHA512 a5d20ee02f37575457af1ed9a1ddd40cee0cc1b85dc6ce79e033550abafccc85f0f8436ef04f28683fee777e391644d10b812fdd308be5f967079b13eda19e92
DIST firefox-80.0.1-ja.xpi 601243 BLAKE2B 404e4004234e9e81665dbfa6a2014ef8e3e8b72d1f143400c3fa097c7c3ad4e66f5d3cb84e1d846a104eb041c5a10884bd25a3218081402ab97ca91d65db0f13 SHA512 073f13c1ad5287adfd3602791547a544d6cbba24720e7d7ee205bd11fcca2a458d32370a41443a46732599b8286132787a7618ab18363b20adf39b9962afab55
DIST firefox-80.0.1-ka.xpi 626403 BLAKE2B 63217d95585b900ad6a6e13d41067f394c4d2eea5f249745c4b82ca75fc440f1f3b521b50d7c47da3d2ff332cfd5df9327206a0176c0a224d08becb4391e2fe7 SHA512 b30c64ce4272816dc9d7d88f6e0e1a6bd45b85eac63823182a85b6eb176219c74ab024394b7016961dab4516af1973de845085d1bdc5ce8c4c76e8cba4ac3bca
DIST firefox-80.0.1-kab.xpi 583640 BLAKE2B 265db8138bff8e07f11963cda3f1b4ede8156f96bdea9709bf71fd518244f7f3be144df52e25f6ea2db7aac70fcbfafdbd1da0fcce42bce372438c456ac3dbf2 SHA512 e123117fc4dd8469e244de5f1714e2d4438413b2370dd6659e074fc6738ef558d8e0a566a028d8e87062fea8cbe153403fe4d231ead32cb7d4043ec6aad3384a
DIST firefox-80.0.1-kk.xpi 649669 BLAKE2B 677335f9c33159810f6a73d4e0c080efd3d294e2c1bdcac8d5fec4bcfba61ddb504ca6943af83c8dc4d82ea86ab16df29eedffa326f712b1d7fa1c93da5c918e SHA512 20af3efbe6269624422f1ee7a9254528febef20c09c402152da9a86cc076fdc4fa51e730df7ef154edb1ffc048553675a3d2ad356c9e06a0e0e0107e7823a797
DIST firefox-80.0.1-km.xpi 568463 BLAKE2B 9daa1e7bbe2ca082578b8cd9484b3574a9112f66300c198ed5c9cb6e40dfe4261ee6115c7207676646baecbe0fcb085e48cb6edbc7a6607aabb6b4e0009be7aa SHA512 b9e4c78612d2ce6d20c8628aa2fbfd0edae3e175852c14ed4489e72e0036a1627f3218425a72862b4bf2745b3299caf6e5306751fccd083211153e472dea2b45
DIST firefox-80.0.1-kn.xpi 559704 BLAKE2B ea4c2031c7efc41556de3356e64270ae9a2f964e38f28f97138ecf26b146cc39b8a58ba2d90fca5c851139aefc443aa78921429f7a11d0e52d020efe6b80768d SHA512 526b88bfec9b1c33a120e7ec2f045d20e19704b48db87d84faeca5c8ee5ef56159e12601869b2d2233c293b599907f76333789a1d3c503ff6377a1c76caa5be5
DIST firefox-80.0.1-ko.xpi 614390 BLAKE2B 56fd747d8eb0eb5da2b102a55e202c5d5c7f5cbfe38509ba26808240bde470d432878a3e689fe6afd67364556ca2768a3f096ec55cda5b64bade4400e037c325 SHA512 50f6484898aaf1a9bdd91eae4c5ffaf55c05a5b28aa4af825dcadc64ebe18db77ec97108648bebf87aa1273ba1855a0c2f405820643f98a31c604e7a6b04e942
DIST firefox-80.0.1-lij.xpi 528971 BLAKE2B cbdd1aef2f7377915a7d8db05695d105c473eed6503f225b702539650488d80e61ed04abf165185802e8f661b6fda160c9cc733992b4d479809c35c641718077 SHA512 66feafb6d43fc5099083d25d8462850a575f2f43b4755e5c3e3bdcaf33c554f462a4df0b199a93486f3bf24950b0ed5415bb835df0520f5c7a62a81547ef30ee
DIST firefox-80.0.1-lt.xpi 587840 BLAKE2B 5c51f5aa2c97e17f01ee6ab29bbbbb91afb312f2ad89c76bffe03762aaf2140ecd98bdad75333a975900dbf6759ff31f0738c5ab5aef42a1d6fc3af01492bea6 SHA512 5d38561dcb9312dc62dd4f06a7674b277d0be1317f9fb1b6e1eeaa889f0d0466a7c1ad529b2f8d58de65f51d5abd9829999f33db30fefe9a5a3b54014c60208f
DIST firefox-80.0.1-lv.xpi 519818 BLAKE2B fe825a830cedb1b40b903be1a17031f0f52f8bb79005aedeba0691f54c6cdd02a315d0ba5d17da3abb2ef79aed52ee56828010fe0916a9c21466ca859b48a412 SHA512 789d712a7c399178f43e5c108e2727ee6be58b999df4248f2669d2837299da79d0cdd20f3dbdbccfc1656056573470633ed3f65fd1903e2e509b5645298e48ac
DIST firefox-80.0.1-mk.xpi 482548 BLAKE2B 53d581e920ed2f790a7184f37b2bd2b4d312b45e629a8dc2753d21bae585cc2ad072e2773adcf5e96a38a669e8a04d1a5647395fcd00fed961f116fd34f06459 SHA512 a31bd6b70316f986b9c7edd3dc797103d49a193f180371dd875eb17391fe94b92103606cb06fba2378b8fe1329475c54b8296969496eaacd0f140e83038ec49d
DIST firefox-80.0.1-mr.xpi 601274 BLAKE2B 7cf25f0a127183d79ba5bb1c4181cd0d5e799dbfc96d7dca1da2cedb7d1498a5068443df6acf2a6820c5281ad1378cc21d1fb27e734be968dc8a1980a8962ccb SHA512 4d9ccad61a868483ce700b28ace409c7907822c0c5bf261bf8f4497aecd685fc760226ebc5af08d8678a8a582ab59a282ecb73c595ffa62e404f39bf37f73c6d
DIST firefox-80.0.1-ms.xpi 502900 BLAKE2B 904cdf465d8015a73584a98c97d4ed168f2bec898c02762a87a82f2cfc621d0d8bc25d6bdaacf0ee4803f43a3f1f0fb71655d0aef7990e0ac2b0581c3ce59253 SHA512 1c83be4e5c2b7267f8956a534596c31bedd9680539f5b93731c92c42012d987024dc1785fa647e9db9ef5554e5ea469e132906b4d41789e2d31d7539b0c698a6
DIST firefox-80.0.1-my.xpi 557148 BLAKE2B fa611100ac7fffa5c5538493679aa7b6a257ab8300ad583928601ec8332e13f811bed34274b03a75a5ba84253dd54703dbad7f477fd82708b11fb951dfdd3ffe SHA512 bce7f873f4379d3ad12804894c0d52ef38f0f4addb43e556cc8370fbd8c5b2d8a5370a9007a6808192223d51aba6413d3596db8c262f22347d7d27d2027a41cd
DIST firefox-80.0.1-nb-NO.xpi 559668 BLAKE2B 02bc6ca754b8402bc452789fe92f9042e9c3cb8cbd55831b9b89300765cfd92ab231aab452b2958444cc591e5b70da38a97c464d64fe9246f7f88afca463f070 SHA512 85cef35f5c975b313db2ff28c7b432957a96de41fd87fa727ed30363b72fea30926d4893d65d877b6a9f65c195ec4381cc56eceaf825afae9a95efabe8c612b5
DIST firefox-80.0.1-nl.xpi 567581 BLAKE2B 10ed307f355c46ab738ff303b9ef7de255b22805dca76b6edb62b0831ebef44ab8d591b572e74c72483d0d2ebd02dad0e111d42529dc36ace894f5ac3e63caa8 SHA512 c83f5444ef5e10ea9f8578674bba1f1e957d93703177adb1abb13d191f202df184ec2e91ea15f559e9f350f5edd3e7ae61f0b79a3709ea9380f0c9902a8b9554
DIST firefox-80.0.1-nn-NO.xpi 562491 BLAKE2B 06b2608a77a3f548433a504257c16abfe35634383ccc469568da9ecb28524dda1cbf4dfdfcb26812a5f43fb8d3930c422e6c77d68b4a326094f1dc2fea034ec8 SHA512 42a57f7927029864e682db3507dad6189d2518649b4520de0ffdbfb8f7ec687ce3df50630859832fb0ec2f3f0f45a5998e8cbce11999ff6b02d17276c3b1e026
DIST firefox-80.0.1-oc.xpi 584239 BLAKE2B aae9400ba32879130cfc1b80b4d5a2a78fccf17e31d76e29ddb38d241f3adb5dcad3e36761d742560151f0916e6e897d9a31846262ac386d2802ea478a06262e SHA512 b78f228736a66e0f9378a80dfd41aa5c8bf33d80271f38ce65c41f956f7d8c06fa84e7089e3e14073966c60de6bab11dd1f0c3f9f3400f1448d792171d0f21d9
DIST firefox-80.0.1-pa-IN.xpi 613847 BLAKE2B c8af3f2ca1d007225ccd274aff221f4a9006a9f451fa8ffcf949f8027ad82ba09e985127afb26a12bb02865d8d417a7320b2e1a537bd4d9322c5c31025921c43 SHA512 39080e2f2c4522b699cdbc4f118423e1a10d2f5ac2b18fd5e90af85cefdcb76d1ca04c31a8e1174e1b79773ebd76f0c10c08b61e328cf620f706af130b40e4b8
DIST firefox-80.0.1-pl.xpi 588634 BLAKE2B d360327bf88a7ec2578759a7f42d015d4dad50324ca08c77bfadbe21c3524cc0e16842e3ad491a8774093f8bda8ebaece0704331871ee6dffb8dd827be32be66 SHA512 26264d3e7a26b4fd24d7e1fa36efe1989308a814a062033f9f45d6c4ed7ff2e32272eadf1382a14c04cdf83da961b6f6bfd0f5fb472bf86d2a8d2124fbfdb12d
DIST firefox-80.0.1-pt-BR.xpi 569418 BLAKE2B e72d3bdf4bd3a9eb2c36f0adb0d623373d466cb2b2a8366fc8b85ffc8c5647a83e41d3585c108721d860b8b7c26fc127470025da634076b115ee88da4b9aa2ba SHA512 35610b0e440cf5b0ba2757eefeb4f02a1e50488e4be983c80bf09f7bf97e26b7a21143aac672277e33b784908b9f261b54fa3239f989d4130f5aa62a17da2ece
DIST firefox-80.0.1-pt-PT.xpi 579182 BLAKE2B 798376fbe011db8102010f868127c914d0d1cc8b43dd7a860321dffac88e42140cfbf82aed048ab0b4d42d7ac7375196719930f1df72f94ef3e91dc5b857b81c SHA512 8f7681c7518299f0373db051be6ad5928148dd6b2c0032312683b114e524ef2ff8dc5501c17dbb02b7aeb5185c19d550eb8475a361006ceeb54299563fbbe87b
DIST firefox-80.0.1-rm.xpi 566373 BLAKE2B 89d577b27425f5d11958d40b3d91005af652232d682d97fd471152e2189b6f6bebf82ebdb78f01bf22eb073dbd3c4c11f691cb0f39126b84e0df67ad4fc1d07d SHA512 0bce2deb89c88f7a65fc8690b9db5086d5d985075db69c3994f949158ac0cde7de7bba2814317ba42d60bf48d9e3f7723d7864dbabd9d9029f6f026efcd2af20
DIST firefox-80.0.1-ro.xpi 586939 BLAKE2B e4cfb3cfd2e0c058709aa5da299725802c8297ead947715f2bd3f5e9f44ad3ed6f985721365d63f9a3876b4dae7b397c17f3ec5ec200a8f3ef1abd3038682236 SHA512 a5561578101ac24e94458b3b55e0386716b4d33da5427bc58385832bd49e033f7d4ff2c6887952e4e3004f21e4efcde6e672439c36ef7503c3099ab4730ec39f
DIST firefox-80.0.1-ru.xpi 666218 BLAKE2B 8cfb67d44e0e9faf5d4c4ecb2a651ea89a5d75d8372360ea89663783bc0c759277b405867d53d7f5397ef31564e4bca502d2111ab5bae7b3ccd2b652cff15009 SHA512 3d425e8b742463548c97d9c268975fc58320708e17572d99adf1ed4a6f787bcdc6ad9b3722edbd2664eeae6a998dfced00b385d664749c0ce261871da987023e
DIST firefox-80.0.1-si.xpi 534116 BLAKE2B 26f5fcc5514eddcea5666beaa8761720e833d0eddee23dba117d45eac921aa1a97ce31f9a3d70c27c30403639a88ad379d4bc63f2c21b049dd471a6980d8dab8 SHA512 4ad417d78c783a95c87bbf3deb05586a4accb204785c049c75a89f3b49bcfa1464319223e0a25cdf10c99028e5530937d199abbb5dfd87933eba1b086e60d67c
DIST firefox-80.0.1-sk.xpi 587987 BLAKE2B a63ab967999d3acadc8f6cf6f84e4bebcecba5e94b3a89e0d0c169f36b36febd01d6ee17dd08700467dde01db780eafa3de9bd4fc3a1d8d05ea344bf6555e078 SHA512 6d2288823d4f2a254afea66b1ea8712d10f55d8b31793eb8bd29211a2ac68f31265f1e9de6ab0e20e2d60bc70584de7044a63b925bf77b9a91bf084a8e9a79e2
DIST firefox-80.0.1-sl.xpi 569766 BLAKE2B e75cf413532d4745c52bc93dff95a7f5fcdbc695ea1752013f42cbca936a50f1f059c97ea42839e2df27414d9815863bb82500a7266659f52552ad7eb2588e72 SHA512 55e6bc7d0e3fef21b4a0f04080a87a441f6c5e064cc98cad0f43620b58a44ccd7279f7d2dd658cde1bcba760cf0883f69677161f098b2de4d190f783e1ea54ec
DIST firefox-80.0.1-son.xpi 454608 BLAKE2B 97a9c1ab015fc47e42a6c3d0b5287fcbf0248282be45ce9818e74bb39ddda493afd2f876a18ecde61e6c804d7697baa861886081f37966a7d87d2d0c79b3df83 SHA512 c9ab1150312d4ab20f269a92d09d9fd9942382ba6aadc0d4d039c5c877b44151269314c52c5e026a0ee1005e8fcc0f2cc2972c42e8fc6863a25520e1b7f2681f
DIST firefox-80.0.1-sq.xpi 580208 BLAKE2B 78b9c0dea75df234c4f0b6aad3c689c3e151571fc002d76946c31fd0c34392eab04ece2f4bf3aa270ff6d575c96de9178de56b40c4d5b0ce2191e8313da26717 SHA512 a9a1bfbfe224f5beec6157225b942067ebf1037349a644bfe2c2bf1b08e3c48346f620d68d70079ba309e2a6649b98dbbe3339f87d1c4a32af3ed7ac945be90e
DIST firefox-80.0.1-sr.xpi 614268 BLAKE2B c71628dffd7c1e9c261979457dba2e33f8d3ef1b5793d9856f1eedec58322ee889418982623a197a747037e63ce1a77563b6503b045a81c7ad5a4b6ac6240349 SHA512 f87036a3c1dab96891618a940991c36302265ca7dcd2a4db387701b607ec91aca38e3f5ebd086c36b16b0326c0fdb9c03bb5b3cccf4f4d1281d9ecaca306b493
DIST firefox-80.0.1-sv-SE.xpi 573128 BLAKE2B e29abcfd0d6726316d0eb19b3b1e97e9421f34157eb6428eb56c54fa4f7ec5edfb0af513fa2a3082cfb6aa96e0c6a84504f3f3536d8bf982e0cc011f0698edf1 SHA512 710d65786c8ed82fec8ea627e789deb6a065859c19eccbaecf9ce5012f58740b2781fbe7f2b5724dcd7be38db8f01721c7ea7d354a4409acf9b84d511bb6dc3d
DIST firefox-80.0.1-ta.xpi 573981 BLAKE2B 379297acd4f411840c69b726e88ced981e781bb7c58460d59024b0b2b3a859c7a3226106b6e6b4411543360202a44cf1264a2957ccc5d28aecc37ed824fce5e2 SHA512 2b819f416ca0958a841977853f7179c6ed0f8377f4c6b8912cafe21179f3485ba84db48f49912d3730c31ae83ddcde84ef0e2695250f8067aeb5641677f7a2ef
DIST firefox-80.0.1-te.xpi 612546 BLAKE2B c231b2923e2e160b37bd1b58adb63403f627729ebb8c632fc1e9a74a6022c781b576354e0e0228f386c784a70b9920f66a31b0893781c5d8d46b23fcb24a8a73 SHA512 d1302b4069a9cce98b1079f7167db9e6b80f094a33dde214bfb23ad3a19dd17f8d044e0dd0926f3570ec1d0bf19856457fb9cfe69e65cfcb162c66153ee619e8
DIST firefox-80.0.1-th.xpi 639043 BLAKE2B 562417f922589f396a756a94606036ca460c4dd0ff2e27cd40163639f1f5c35debd2302e1c4f23d8df86d5a9b0a0e7bd0a6e79303d6b1d8e423639352b12ab46 SHA512 e051e224e9f7cb29f1a85aed2b0c4b73238c1ef01e3d7777ae47a71fbbe4f32402999a5fd918d3a486348621e48a28d21ea92b2af14f251107995e3f860a3f69
DIST firefox-80.0.1-tr.xpi 584648 BLAKE2B a3f7c00083deb58d03179c6765083b70e70b0de472cfd600156d9c0e6a588e94a0c7d62b75dd6ada47b4f1bd2b25bff6b4b6073f167c25736033cbe5fb23b0cb SHA512 094c89edfad656766cfb03cd057dfa14bb93ecc61ae69ab7f7bdc654247f0daa08c35f1011667f7c3db27676ba92d973c1bf5b5ea4668995786f159cd428a13b
DIST firefox-80.0.1-uk.xpi 659416 BLAKE2B 8f72b0c16dea0d6448a193c3064cb9aef5d6572055750de4f642e857702934bf21555f318f67d64665111012ce5ffacabb7e1a052d11e5059ac260fe120806ce SHA512 6e08758c438a8200b23a32c61929f9624cb208ff2501de66af5b4abc8e5c4c49507ebf0213d267803db5284724677b43d4eb662759fdf9970b3637def24c296d
DIST firefox-80.0.1-ur.xpi 615360 BLAKE2B 0cc5e0080d42743f830bafc5606375ec624e722203586c7c6be3cbcbf50fdcdffcc9e7c14a9c78e24adaf3988b9969f987178bf839670ded7e495008435f0c82 SHA512 229ab1aa8f403250ced2d247d21f3e17b484420352a830a8bb7633228e4bac4712b5d2b8ee93c82da0974046afab104eb68cbea3d0dc03a8abef756e2c4138ab
DIST firefox-80.0.1-uz.xpi 522574 BLAKE2B a7f23d146defbcd0b2450d3bc9f7ecbec013caa1c5f742e969ead1834a9056cefdf274837b11606a8fa590cd50437c41f32bef412dc9d14e991375b1a161cac0 SHA512 e163e411c3e3bd767144ece491ce31a422d6b30d1d457298a884fff695d011fa8450e9886c681c7a8541a704373c4cdeb73493d8e941a1e630ebb9918a43876e
DIST firefox-80.0.1-vi.xpi 609394 BLAKE2B 080fcf58e2a1478ed2fda6aa2e19f39880534aae830a9ddc1ed892970e984d55dae5154004871b8c68d4ed46c5f709ccabcdbad8158f86a95f247398bb68cfc4 SHA512 5febff5088076d865fdeb389980472a054045d9a2b18bbd19dbff7c9bf6544934f4de87f1b7d09e8f43c8f3006df9f86823dde82e68d595474bb96ee430bf6bc
DIST firefox-80.0.1-xh.xpi 458212 BLAKE2B 9f82a968b99bfaac375486e1f15a860433dcdda451ee8d46e80e7aeedfced39f0984f26142b46f318c6890ed917a1d92e6d44e5a084932160274167b718497d6 SHA512 454d7eb2bcdc5fda55c6376d77147e0f9e00f3b0b96c3b09521393e1a2516f97339533c35d08f456bc344a76ba72da42d99a0bae24c24f103eb9675967a23790
DIST firefox-80.0.1-zh-CN.xpi 611635 BLAKE2B 3263f493ddc0ad7f5ae018f5dba479e9daa64ff9c119bb9e8aff13076ac55fc654519d78837c68beb89219848e134211d95c12be302b079e913ab58ff36a5ee2 SHA512 ab90e7c21368a78c3eda23325b138fd2da02be577856f4ebee59d1988a2b2799876bdbd8c54040c6c45ff45804a4659a52b276df6da1424dc2a48b295b3699db
DIST firefox-80.0.1-zh-TW.xpi 611178 BLAKE2B e84b0defc7990b6c775a9ee9a5ba7dd54a60a41ca1e618d87b72c1033eb08a814de335a1d59b9aa84fff70d164f8755f2143b188128da5c84fd2eb4ea08b4b77 SHA512 253f80d60eb05d05d366642e2ebb78430b3b9acb36baa553b3cffa5a1d4773e1a422e770557a3ae791d7704ed22f5ded6713313886b696548bf49c91bfb7dfbf
DIST firefox-80.0.1.source.tar.xz 334690792 BLAKE2B 47c8cdb2c8c0088b5dc8abbdfba8be685dfdd4d079b155aebb1431a5f8b448b94d90e188d08426053be961f228d3b4e7852626f502397099e99e4a897e7dadfa SHA512 97a54e5f0ff0e34d0994b9ea67250fda1e9a51acb1129a5f6ce632ca5d15132ae4e5eb18c1a9a609a14f5012daf87c6e1a5049e096dd1c32cac9e2c981381d10
EBUILD firefox-80.0.1.ebuild 28853 BLAKE2B 5b48db6f1c2434ce1dd57dc57b79ed18266b74478dcef62fc34ab062ec5e264c07b0fe196549f743691e1a4c05186322f52627331e76ecd232320429a65904a5 SHA512 c8323a71a8cd774f8831c04e65dc648ba15fb90e9cfef69e71a2c05cb90a4b9391d3fdf066003e096084efa9ec84eeb640fb0c47a2dfcbb85741e07cb56d936a

View File

@ -0,0 +1,933 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
VIRTUALX_REQUIRED="pgo"
WANT_AUTOCONF="2.1"
MOZ_ESR=""
PYTHON_COMPAT=( python3_{7,8,9} )
PYTHON_REQ_USE='ncurses,sqlite,ssl,threads(+)'
# This list can be updated with scripts/get_langs.sh from the mozilla overlay
MOZ_LANGS=( ach af an ar ast az be bg bn br bs ca cak cs cy da de dsb
el en en-CA en-GB en-US eo es-AR es-CL es-ES es-MX et eu fa ff fi fr
fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM ia id is it ja ka
kab kk km kn ko lij lt lv mk mr ms my nb-NO nl nn-NO oc pa-IN pl pt-BR
pt-PT rm ro ru si sk sl son sq sr sv-SE ta te th tr uk ur uz vi xh
zh-CN zh-TW )
# Convert the ebuild version to the upstream mozilla version, used by mozlinguas
MOZ_PV="${PV/_alpha/a}" # Handle alpha for SRC_URI
MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
if [[ ${MOZ_ESR} == 1 ]] ; then
# ESR releases have slightly different version numbers
MOZ_PV="${MOZ_PV}esr"
fi
# Patch version
PATCH="${PN}-80.0-patches-02"
MOZ_HTTP_URI="https://archive.mozilla.org/pub/${PN}/releases"
MOZ_SRC_URI="${MOZ_HTTP_URI}/${MOZ_PV}/source/${PN}-${MOZ_PV}.source.tar.xz"
if [[ "${PV}" == *_rc* ]]; then
MOZ_HTTP_URI="https://archive.mozilla.org/pub/${PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
MOZ_LANGPACK_PREFIX="linux-i686/xpi/"
MOZ_SRC_URI="${MOZ_HTTP_URI}/source/${PN}-${MOZ_PV}.source.tar.xz -> $P.tar.xz"
fi
LLVM_MAX_SLOT=10
inherit check-reqs eapi7-ver flag-o-matic toolchain-funcs eutils \
gnome2-utils llvm mozcoreconf-v6 pax-utils xdg-utils \
autotools mozlinguas-v2 multiprocessing virtualx
DESCRIPTION="Firefox Web Browser"
HOMEPAGE="https://www.mozilla.com/firefox"
KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
SLOT="0"
LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
IUSE="bindist clang cpu_flags_x86_avx2 dbus debug eme-free geckodriver
+gmp-autoupdate hardened hwaccel jack lto cpu_flags_arm_neon
+openh264 pgo pulseaudio screencast +screenshot selinux +system-av1
+system-harfbuzz +system-icu +system-jpeg +system-libevent
+system-libvpx +system-webp test wayland wifi"
REQUIRED_USE="pgo? ( lto )
screencast? ( wayland )"
RESTRICT="!bindist? ( bindist )
!test? ( test )"
PATCH_URIS=( https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${PATCH}.tar.xz )
SRC_URI="${SRC_URI}
${MOZ_SRC_URI}
${PATCH_URIS[@]}"
CDEPEND="
>=dev-libs/nss-3.55
>=dev-libs/nspr-4.26
dev-libs/atk
dev-libs/expat
>=x11-libs/cairo-1.10[X]
>=x11-libs/gtk+-2.18:2
>=x11-libs/gtk+-3.4.0:3[X]
x11-libs/gdk-pixbuf
>=x11-libs/pango-1.22.0
>=media-libs/libpng-1.6.35:0=[apng]
>=media-libs/mesa-10.2:*
media-libs/fontconfig
>=media-libs/freetype-2.4.10
kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) )
virtual/freedesktop-icon-theme
>=x11-libs/pixman-0.19.2
>=dev-libs/glib-2.26:2
>=sys-libs/zlib-1.2.3
>=dev-libs/libffi-3.0.10:=
media-video/ffmpeg
x11-libs/libX11
x11-libs/libXcomposite
x11-libs/libXdamage
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXrender
x11-libs/libXt
dbus? (
sys-apps/dbus
dev-libs/dbus-glib
)
screencast? ( media-video/pipewire:0/0.3 )
system-av1? (
>=media-libs/dav1d-0.3.0:=
>=media-libs/libaom-1.0.0:=
)
system-harfbuzz? (
>=media-libs/harfbuzz-2.6.8:0=
>=media-gfx/graphite2-1.3.13
)
system-icu? ( >=dev-libs/icu-67.1:= )
system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] )
system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
system-webp? ( >=media-libs/libwebp-1.1.0:0= )
wifi? (
kernel_linux? (
sys-apps/dbus
dev-libs/dbus-glib
net-misc/networkmanager
)
)
jack? ( virtual/jack )
selinux? ( sec-policy/selinux-mozilla )"
RDEPEND="${CDEPEND}
jack? ( virtual/jack )
openh264? ( media-libs/openh264:*[plugin] )
pulseaudio? (
|| (
media-sound/pulseaudio
>=media-sound/apulse-0.1.12-r4
)
)
selinux? ( sec-policy/selinux-mozilla )"
DEPEND="${CDEPEND}
app-arch/zip
app-arch/unzip
>=dev-util/cbindgen-0.14.3
>=net-libs/nodejs-10.19.0
>=sys-devel/binutils-2.30
sys-apps/findutils
virtual/pkgconfig
>=virtual/rust-1.43.0
|| (
(
sys-devel/clang:10
!clang? ( sys-devel/llvm:10 )
clang? (
=sys-devel/lld-10*
sys-devel/llvm:10[gold]
pgo? ( =sys-libs/compiler-rt-sanitizers-10*[profile] )
)
)
(
sys-devel/clang:9
!clang? ( sys-devel/llvm:9 )
clang? (
=sys-devel/lld-9*
sys-devel/llvm:9[gold]
pgo? ( =sys-libs/compiler-rt-sanitizers-9*[profile] )
)
)
(
sys-devel/clang:8
!clang? ( sys-devel/llvm:8 )
clang? (
=sys-devel/lld-8*
sys-devel/llvm:8[gold]
pgo? ( =sys-libs/compiler-rt-sanitizers-8*[profile] )
)
)
(
sys-devel/clang:7
!clang? ( sys-devel/llvm:7 )
clang? (
=sys-devel/lld-7*
sys-devel/llvm:7[gold]
pgo? ( =sys-libs/compiler-rt-sanitizers-7*[profile] )
)
)
)
pulseaudio? (
|| (
media-sound/pulseaudio
>=media-sound/apulse-0.1.12-r4[sdk]
)
)
wayland? ( >=x11-libs/gtk+-3.11:3[wayland] )
amd64? ( >=dev-lang/yasm-1.1 virtual/opengl )
x86? ( >=dev-lang/yasm-1.1 virtual/opengl )
!system-av1? (
amd64? ( >=dev-lang/nasm-2.13 )
x86? ( >=dev-lang/nasm-2.13 )
)"
S="${WORKDIR}/firefox-${PV%_*}"
BUILD_OBJ_DIR="${S}/ff"
# allow GMP_PLUGIN_LIST to be set in an eclass or
# overridden in the enviromnent (advanced hackers only)
if [[ -z $GMP_PLUGIN_LIST ]] ; then
GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
fi
llvm_check_deps() {
if ! has_version --host-root "sys-devel/clang:${LLVM_SLOT}" ; then
ewarn "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
return 1
fi
if use clang ; then
if ! has_version --host-root "=sys-devel/lld-${LLVM_SLOT}*" ; then
ewarn "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
return 1
fi
if use pgo ; then
if ! has_version --host-root "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then
ewarn "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
return 1
fi
fi
fi
einfo "Will use LLVM slot ${LLVM_SLOT}!" >&2
}
pkg_pretend() {
if [[ ${MERGE_TYPE} != binary ]] ; then
if use pgo ; then
if ! has usersandbox $FEATURES ; then
die "You must enable usersandbox as X server can not run as root!"
fi
fi
# Ensure we have enough disk space to compile
if use pgo || use lto || use debug || use test ; then
CHECKREQS_DISK_BUILD="11G"
else
CHECKREQS_DISK_BUILD="5G"
fi
check-reqs_pkg_pretend
fi
}
pkg_setup() {
moz_pkgsetup
if [[ ${MERGE_TYPE} != binary ]] ; then
# Ensure we have enough disk space to compile
if use pgo || use lto || use debug || use test ; then
CHECKREQS_DISK_BUILD="11G"
else
CHECKREQS_DISK_BUILD="5G"
fi
check-reqs_pkg_setup
# Avoid PGO profiling problems due to enviroment leakage
# These should *always* be cleaned up anyway
unset DBUS_SESSION_BUS_ADDRESS \
DISPLAY \
ORBIT_SOCKETDIR \
SESSION_MANAGER \
XDG_CACHE_HOME \
XDG_SESSION_COOKIE \
XAUTHORITY
addpredict /proc/self/oom_score_adj
llvm_pkg_setup
fi
if ! use bindist ; then
einfo
elog "You are enabling official branding. You may not redistribute this build"
elog "to any users on your network or the internet. Doing so puts yourself into"
elog "a legal problem with Mozilla Foundation."
elog "You can disable it by emerging ${PN} _with_ the bindist USE-flag."
fi
}
src_unpack() {
default
# Unpack language packs
mozlinguas_src_unpack
}
src_prepare() {
use pgo && rm "${WORKDIR}"/firefox/0032-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch
eapply "${WORKDIR}/firefox"
# Make LTO respect MAKEOPTS
sed -i \
-e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
"${S}"/build/moz.configure/lto-pgo.configure \
|| die "sed failed to set num_cores"
# Make ICU respect MAKEOPTS
sed -i \
-e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
"${S}"/intl/icu_sources_data.py \
|| die "sed failed to set num_cores"
# sed-in toolchain prefix
sed -i \
-e "s/objdump/${CHOST}-objdump/" \
"${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \
|| die "sed failed to set toolchain prefix"
# Allow user to apply any additional patches without modifing ebuild
eapply_user
einfo "Removing pre-built binaries ..."
find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
# Enable gnomebreakpad
if use debug ; then
sed -i -e "s:GNOME_DISABLE_CRASH_DIALOG=1:GNOME_DISABLE_CRASH_DIALOG=0:g" \
"${S}"/build/unix/run-mozilla.sh || die "sed failed!"
fi
# Drop -Wl,--as-needed related manipulation for ia64 as it causes ld sefgaults, bug #582432
if use ia64 ; then
sed -i \
-e '/^OS_LIBS += no_as_needed/d' \
-e '/^OS_LIBS += as_needed/d' \
"${S}"/widget/gtk/mozgtk/gtk2/moz.build \
"${S}"/widget/gtk/mozgtk/gtk3/moz.build \
|| die "sed failed to drop --as-needed for ia64"
fi
# Fix sandbox violations during make clean, bug 372817
sed -e "s:\(/no-such-file\):${T}\1:g" \
-i "${S}"/config/rules.mk \
-i "${S}"/nsprpub/configure{.in,} \
|| die
# Don't exit with error when some libs are missing which we have in
# system.
sed '/^MOZ_PKG_FATAL_WARNINGS/s@= 1@= 0@' \
-i "${S}"/browser/installer/Makefile.in || die
# Don't error out when there's no files to be removed:
sed 's@\(xargs rm\)$@\1 -f@' \
-i "${S}"/toolkit/mozapps/installer/packager.mk || die
# Keep codebase the same even if not using official branding
sed '/^MOZ_DEV_EDITION=1/d' \
-i "${S}"/browser/branding/aurora/configure.sh || die
# rustfmt, a tool to format Rust code, is optional and not required to build Firefox.
# However, when available, an unsupported version can cause problems, bug #669548
sed -i -e "s@check_prog('RUSTFMT', add_rustup_path('rustfmt')@check_prog('RUSTFMT', add_rustup_path('rustfmt_do_not_use')@" \
"${S}"/build/moz.configure/rust.configure || die
# Autotools configure is now called old-configure.in
# This works because there is still a configure.in that happens to be for the
# shell wrapper configure script
eautoreconf old-configure.in
# Must run autoconf in js/src
cd "${S}"/js/src || die
eautoconf old-configure.in
# Clear checksums that present a problem
sed -i 's/\("files":{\)[^}]*/\1/' "${S}"/third_party/rust/target-lexicon-0.9.0/.cargo-checksum.json || die
}
src_configure() {
MEXTENSIONS="default"
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: These are for Gentoo Linux use ONLY. For your own distribution, please
# get your own set of keys.
_google_api_key=AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc
# Add information about TERM to output (build.log) to aid debugging
# blessings problems
if [[ -n "${TERM}" ]] ; then
einfo "TERM is set to: \"${TERM}\""
else
einfo "TERM is unset."
fi
if use clang && ! tc-is-clang ; then
# Force clang
einfo "Enforcing the use of clang due to USE=clang ..."
CC=${CHOST}-clang
CXX=${CHOST}-clang++
strip-unsupported-flags
elif ! use clang && ! tc-is-gcc ; then
# Force gcc
einfo "Enforcing the use of gcc due to USE=-clang ..."
CC=${CHOST}-gcc
CXX=${CHOST}-g++
strip-unsupported-flags
fi
####################################
#
# mozconfig, CFLAGS and CXXFLAGS setup
#
####################################
mozconfig_init
# common config components
mozconfig_annotate 'system_libs' \
--with-system-zlib
# Must pass release in order to properly select linker
mozconfig_annotate 'Enable by Gentoo' --enable-release
# libclang.so is not properly detected work around issue
mozconfig_annotate '' --with-libclang-path="$(llvm-config --libdir)"
if use pgo ; then
if ! has userpriv $FEATURES ; then
eerror "Building firefox with USE=pgo and FEATURES=-userpriv is not supported!"
fi
fi
# Don't let user's LTO flags clash with upstream's flags
filter-flags -flto*
if use lto ; then
local show_old_compiler_warning=
if use clang ; then
# At this stage CC is adjusted and the following check will
# will work
if [[ $(clang-major-version) -lt 7 ]] ; then
show_old_compiler_warning=1
fi
# Upstream only supports lld when using clang
mozconfig_annotate "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld
else
if [[ $(gcc-major-version) -lt 8 ]] ; then
show_old_compiler_warning=1
fi
if ! use cpu_flags_x86_avx2 ; then
local _gcc_version_with_ipa_cdtor_fix="8.3"
local _current_gcc_version="$(gcc-major-version).$(gcc-minor-version)"
if ver_test "${_current_gcc_version}" -lt "${_gcc_version_with_ipa_cdtor_fix}" ; then
# due to a GCC bug, GCC will produce AVX2 instructions
# even if the CPU doesn't support AVX2, https://gcc.gnu.org/ml/gcc-patches/2018-12/msg01142.html
einfo "Disable IPA cdtor due to bug in GCC and missing AVX2 support -- triggered by USE=lto"
append-ldflags -fdisable-ipa-cdtor
else
einfo "No GCC workaround required, GCC version is already patched!"
fi
else
einfo "No GCC workaround required, system supports AVX2"
fi
# Linking only works when using ld.gold when LTO is enabled
mozconfig_annotate "forcing ld=gold due to USE=lto" --enable-linker=gold
fi
if [[ -n "${show_old_compiler_warning}" ]] ; then
# Checking compiler's major version uses CC variable. Because we allow
# user to control used compiler via USE=clang flag, we cannot use
# initial value. So this is the earliest stage where we can do this check
# because pkg_pretend is not called in the main phase function sequence
# environment saving is not guaranteed so we don't know if we will have
# correct compiler until now.
ewarn ""
ewarn "USE=lto requires up-to-date compiler (>=gcc-8 or >=clang-7)."
ewarn "You are on your own -- expect build failures. Don't file bugs using that unsupported configuration!"
ewarn ""
sleep 5
fi
mozconfig_annotate '+lto' --enable-lto=thin
if use pgo ; then
mozconfig_annotate '+pgo' MOZ_PGO=1
fi
else
# Avoid auto-magic on linker
if use clang ; then
# This is upstream's default
mozconfig_annotate "forcing ld=lld due to USE=clang" --enable-linker=lld
elif tc-ld-is-gold ; then
mozconfig_annotate "linker is set to gold" --enable-linker=gold
else
mozconfig_annotate "linker is set to bfd" --enable-linker=bfd
fi
fi
# It doesn't compile on alpha without this LDFLAGS
use alpha && append-ldflags "-Wl,--no-relax"
# Add full relro support for hardened
use hardened && append-ldflags "-Wl,-z,now"
# Modifications to better support ARM, bug 553364
if use cpu_flags_arm_neon ; then
mozconfig_annotate '' --with-fpu=neon
if ! tc-is-clang ; then
# thumb options aren't supported when using clang, bug 666966
mozconfig_annotate '' --with-thumb=yes
mozconfig_annotate '' --with-thumb-interwork=no
fi
fi
if [[ ${CHOST} == armv*h* ]] ; then
mozconfig_annotate '' --with-float-abi=hard
if ! use system-libvpx ; then
sed -i -e "s|softfp|hard|" \
"${S}"/media/libvpx/moz.build
fi
fi
mozconfig_use_enable !bindist official-branding
mozconfig_use_enable debug
mozconfig_use_enable debug tests
if ! use debug ; then
mozconfig_annotate 'disabled by Gentoo' --disable-debug-symbols
else
mozconfig_annotate 'enabled by Gentoo' --enable-debug-symbols
fi
# These are enabled by default in all mozilla applications
mozconfig_annotate '' --with-system-nspr
mozconfig_annotate '' --with-system-nss
mozconfig_annotate '' --x-includes="${SYSROOT}${EPREFIX}"/usr/include \
--x-libraries="${SYSROOT}${EPREFIX}"/usr/$(get_libdir)
mozconfig_annotate '' --prefix="${EPREFIX}"/usr
mozconfig_annotate '' --libdir="${EPREFIX}"/usr/$(get_libdir)
mozconfig_annotate '' --disable-crashreporter
mozconfig_annotate 'Gentoo default' --with-system-png
mozconfig_annotate '' --enable-system-ffi
mozconfig_annotate '' --with-intl-api
mozconfig_annotate '' --enable-system-pixman
# Instead of the standard --build= and --host=, mozilla uses --host instead
# of --build, and --target intstead of --host.
# Note, mozilla also has --build but it does not do what you think it does.
# Set both --target and --host as mozilla uses python to guess values otherwise
mozconfig_annotate '' --target="${CHOST}"
mozconfig_annotate '' --host="${CBUILD:-${CHOST}}"
mozconfig_annotate '' --with-toolchain-prefix="${CHOST}-"
if use system-libevent ; then
mozconfig_annotate '' --with-system-libevent="${SYSROOT}${EPREFIX}"/usr
fi
if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
mozconfig_annotate '' --enable-rust-simd
fi
# use the gtk3 toolkit (the only one supported at this point)
# TODO: Will this result in automagic dependency on x11-libs/gtk+[wayland]?
if use wayland ; then
mozconfig_annotate '' --enable-default-toolkit=cairo-gtk3-wayland
else
mozconfig_annotate '' --enable-default-toolkit=cairo-gtk3
fi
mozconfig_use_with system-av1
mozconfig_use_with system-harfbuzz
mozconfig_use_with system-harfbuzz system-graphite2
mozconfig_use_with system-icu
mozconfig_use_with system-jpeg
mozconfig_use_with system-libvpx
mozconfig_use_with system-webp
mozconfig_use_enable pulseaudio
# force the deprecated alsa sound code if pulseaudio is disabled
if use kernel_linux && ! use pulseaudio ; then
mozconfig_annotate '-pulseaudio' --enable-alsa
fi
# Disable built-in ccache support to avoid sandbox violation, #665420
# Use FEATURES=ccache instead!
mozconfig_annotate '' --without-ccache
sed -i -e 's/ccache_stats = None/return None/' \
python/mozbuild/mozbuild/controller/building.py || \
die "Failed to disable ccache stats call"
mozconfig_use_enable dbus
mozconfig_use_enable wifi necko-wifi
mozconfig_use_enable geckodriver
# enable JACK, bug 600002
mozconfig_use_enable jack
mozconfig_use_enable screencast pipewire
# Enable/Disable eme support
use eme-free && mozconfig_annotate '+eme-free' --disable-eme
# Setup api key for location services and safebrowsing, https://bugzilla.mozilla.org/show_bug.cgi?id=1531176#c34
echo -n "${_google_api_key}" > "${S}"/google-api-key
mozconfig_annotate '' --with-google-location-service-api-keyfile="${S}/google-api-key"
mozconfig_annotate '' --with-google-safebrowsing-api-keyfile="${S}/google-api-key"
mozconfig_annotate '' --enable-extensions="${MEXTENSIONS}"
# allow elfhack to work in combination with unstripped binaries
# when they would normally be larger than 2GiB.
append-ldflags "-Wl,--compress-debug-sections=zlib"
if use clang ; then
# https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
# https://bugzilla.mozilla.org/show_bug.cgi?id=1483822
# toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64')
local disable_elf_hack=
if use amd64 ; then
disable_elf_hack=yes
elif use x86 ; then
disable_elf_hack=yes
elif use arm ; then
disable_elf_hack=yes
fi
if [[ -n ${disable_elf_hack} ]] ; then
mozconfig_annotate 'elf-hack is broken when using Clang' --disable-elf-hack
fi
fi
echo "mk_add_options MOZ_OBJDIR=${BUILD_OBJ_DIR}" >> "${S}"/.mozconfig
echo "mk_add_options XARGS=/usr/bin/xargs" >> "${S}"/.mozconfig
# Finalize and report settings
mozconfig_final
mkdir -p "${S}"/third_party/rust/libloading/.deps
# workaround for funky/broken upstream configure...
SHELL="${SHELL:-${EPREFIX}/bin/bash}" MOZ_NOSPAM=1 \
./mach configure || die
}
src_compile() {
local _virtx=
if use pgo ; then
_virtx=virtx
# Reset and cleanup environment variables used by GNOME/XDG
gnome2_environment_reset
addpredict /root
fi
GDK_BACKEND=x11 \
MOZ_MAKE_FLAGS="${MAKEOPTS} -O" \
SHELL="${SHELL:-${EPREFIX}/bin/bash}" \
MOZ_NOSPAM=1 \
${_virtx} \
./mach build --verbose \
|| die
}
src_install() {
cd "${BUILD_OBJ_DIR}" || die
# Pax mark xpcshell for hardened support, only used for startupcache creation.
pax-mark m "${BUILD_OBJ_DIR}"/dist/bin/xpcshell
# Add our default prefs for firefox
cp "${FILESDIR}"/gentoo-default-prefs.js-3 \
"${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \
|| die
# set dictionary path, to use system hunspell
echo "pref(\"spellchecker.dictionary_path\", \"${EPREFIX}/usr/share/myspell\");" \
>>"${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" || die
# force the graphite pref if system-harfbuzz is enabled, since the pref cant disable it
if use system-harfbuzz ; then
echo "sticky_pref(\"gfx.font_rendering.graphite.enabled\",true);" \
>>"${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" || die
fi
# force cairo as the canvas renderer on platforms without skia support
if [[ $(tc-endian) == "big" ]] ; then
echo "sticky_pref(\"gfx.canvas.azure.backends\",\"cairo\");" \
>>"${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" || die
echo "sticky_pref(\"gfx.content.azure.backends\",\"cairo\");" \
>>"${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" || die
fi
# Augment this with hwaccel prefs
if use hwaccel ; then
cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-1 >> \
"${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \
|| die
fi
if ! use screenshot ; then
echo "pref(\"extensions.screenshots.disabled\", true);" >> \
"${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \
|| die
fi
echo "pref(\"extensions.autoDisableScopes\", 3);" >> \
"${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \
|| die
if ! use gmp-autoupdate ; then
local plugin
for plugin in "${GMP_PLUGIN_LIST[@]}" ; do
echo "pref(\"media.${plugin}.autoupdate\", false);" >> \
"${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \
|| die
done
fi
cd "${S}"
MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL:-${EPREFIX}/bin/bash}" MOZ_NOSPAM=1 \
DESTDIR="${D}" ./mach install || die
if use geckodriver ; then
cp "${BUILD_OBJ_DIR}"/dist/bin/geckodriver "${ED%/}"${MOZILLA_FIVE_HOME} || die
pax-mark m "${ED%/}"${MOZILLA_FIVE_HOME}/geckodriver
dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver
fi
# Install language packs
MOZEXTENSION_TARGET="distribution/extensions" MOZ_INSTALL_L10N_XPIFILE="1" mozlinguas_src_install
local size sizes icon_path icon name
if use bindist ; then
sizes="16 32 48"
icon_path="${S}/browser/branding/aurora"
# Firefox's new rapid release cycle means no more codenames
# Let's just stick with this one...
icon="aurora"
name="Aurora"
# Override preferences to set the MOZ_DEV_EDITION defaults, since we
# don't define MOZ_DEV_EDITION to avoid profile debaucles.
# (source: browser/app/profile/firefox.js)
cat >>"${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" <<PROFILE_EOF
pref("app.feedback.baseURL", "https://input.mozilla.org/%LOCALE%/feedback/firefoxdev/%VERSION%/");
sticky_pref("lightweightThemes.selectedThemeID", "firefox-devedition@mozilla.org");
sticky_pref("browser.devedition.theme.enabled", true);
sticky_pref("devtools.theme", "dark");
PROFILE_EOF
else
sizes="16 22 24 32 48 64 128 256"
icon_path="${S}/browser/branding/official"
icon="${PN}"
name="Mozilla Firefox"
fi
# Disable built-in auto-update because we update firefox through package manager
insinto ${MOZILLA_FIVE_HOME}/distribution/
newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
# Install icons and .desktop for menu entry
for size in ${sizes} ; do
insinto "/usr/share/icons/hicolor/${size}x${size}/apps"
newins "${icon_path}/default${size}.png" "${icon}.png"
done
# Install a 48x48 icon into /usr/share/pixmaps for legacy DEs
newicon "${icon_path}/default48.png" "${icon}.png"
local display_protocols="auto X11" use_wayland="false"
if use wayland ; then
display_protocols+=" Wayland"
use_wayland="true"
fi
local app_name desktop_filename display_protocol exec_command
for display_protocol in ${display_protocols} ; do
app_name="${name} on ${display_protocol}"
desktop_filename="${PN}-${display_protocol,,}.desktop"
case ${display_protocol} in
Wayland)
exec_command='firefox-wayland --name firefox-wayland'
newbin "${FILESDIR}"/firefox-wayland.sh firefox-wayland
;;
X11)
if ! use wayland ; then
# Exit loop here because there's no choice so
# we don't need wrapper/.desktop file for X11.
continue
fi
exec_command='firefox-x11 --name firefox-x11'
newbin "${FILESDIR}"/firefox-x11.sh firefox-x11
;;
*)
app_name="${name}"
desktop_filename="${PN}.desktop"
exec_command='firefox'
;;
esac
newmenu "${FILESDIR}/icon/${PN}-r2.desktop" "${desktop_filename}"
sed -i \
-e "s:@NAME@:${app_name}:" \
-e "s:@EXEC@:${exec_command}:" \
-e "s:@ICON@:${icon}:" \
"${ED%/}/usr/share/applications/${desktop_filename}" || die
done
rm "${ED%/}"/usr/bin/firefox || die
newbin "${FILESDIR}"/firefox.sh firefox
local wrapper
for wrapper in \
"${ED%/}"/usr/bin/firefox \
"${ED%/}"/usr/bin/firefox-x11 \
"${ED%/}"/usr/bin/firefox-wayland \
; do
[[ ! -f "${wrapper}" ]] && continue
sed -i \
-e "s:@PREFIX@:${EPREFIX%/}/usr:" \
-e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
"${wrapper}" || die
done
# Don't install llvm-symbolizer from sys-devel/llvm package
[[ -f "${ED%/}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] && \
rm "${ED%/}${MOZILLA_FIVE_HOME}/llvm-symbolizer"
# firefox and firefox-bin are identical
rm "${ED%/}"${MOZILLA_FIVE_HOME}/firefox-bin || die
dosym firefox ${MOZILLA_FIVE_HOME}/firefox-bin
# Required in order to use plugins and even run firefox on hardened.
pax-mark m "${ED%/}"${MOZILLA_FIVE_HOME}/{firefox,plugin-container}
}
pkg_preinst() {
# if the apulse libs are available in MOZILLA_FIVE_HOME then apulse
# doesn't need to be forced into the LD_LIBRARY_PATH
if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
einfo "APULSE found - Generating library symlinks for sound support"
local lib
pushd "${ED}"${MOZILLA_FIVE_HOME} &>/dev/null || die
for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do
# a quickpkg rolled by hand will grab symlinks as part of the package,
# so we need to avoid creating them if they already exist.
if [[ ! -L ${lib##*/} ]] ; then
ln -s "${lib}" ${lib##*/} || die
fi
done
popd &>/dev/null || die
fi
}
pkg_postinst() {
xdg_desktop_database_update
xdg_icon_cache_update
if ! use gmp-autoupdate ; then
elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or"
elog "installing into new profiles:"
local plugin
for plugin in "${GMP_PLUGIN_LIST[@]}" ; do
elog "\t ${plugin}"
done
elog
fi
if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
elog "Apulse was detected at merge time on this system and so it will always be"
elog "used for sound. If you wish to use pulseaudio instead please unmerge"
elog "media-sound/apulse."
elog
fi
local show_doh_information show_normandy_information
if [[ -z "${REPLACING_VERSIONS}" ]] ; then
# New install; Tell user that DoH is disabled by default
show_doh_information=yes
show_normandy_information=yes
else
local replacing_version
for replacing_version in ${REPLACING_VERSIONS} ; do
if ver_test "${replacing_version}" -lt 70 ; then
# Tell user only once about our DoH default
show_doh_information=yes
fi
if ver_test "${replacing_version}" -lt 74.0-r2 ; then
# Tell user only once about our Normandy default
show_normandy_information=yes
fi
done
fi
if [[ -n "${show_doh_information}" ]] ; then
elog
elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):"
elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all"
elog "DNS traffic to Cloudflare by default is not a good idea and applications"
elog "should respect OS configured settings), \"network.trr.mode\" was set to 5"
elog "(\"Off by choice\") by default."
elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences."
fi
# bug 713782
if [[ -n "${show_normandy_information}" ]] ; then
elog
elog "Upstream operates a service named Normandy which allows Mozilla to"
elog "push changes for default settings or even install new add-ons remotely."
elog "While this can be useful to address problems like 'Armagadd-on 2.0' or"
elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security"
elog "concerns prevail, which is why we have switched off the use of this"
elog "service by default."
elog
elog "To re-enable this service set"
elog
elog " app.normandy.enabled=true"
elog
elog "in about:config."
fi
}
pkg_postrm() {
xdg_desktop_database_update
xdg_icon_cache_update
}

11
x11-terms/kitty/app.log Normal file
View File

@ -0,0 +1,11 @@
2020-08-07 10:53:53,568 [ DEBUG]: Program started with: ['/home/gerardo/Dev/gerardo/samsung_remote/samsung_remote.py', '-p']
2020-08-07 10:53:56,416 [ DEBUG]: [TV]UE40D8000 model UE40D8000 found in ip 192.168.1.142
2020-08-07 10:53:56,416 [ DEBUG]: Model: D returns method: legacy
2020-08-07 10:53:56,416 [ DEBUG]: Model: D returns method: legacy
2020-08-07 10:53:56,419 [ INFO]: Sending handshake.
2020-08-07 10:53:56,529 [ DEBUG]: Connected to 'iapp.samsung'.
2020-08-07 10:53:56,529 [ DEBUG]: Access granted.
2020-08-07 10:53:56,529 [ INFO]: Sending control command: KEY_POWEROFF
2020-08-07 10:53:56,543 [ DEBUG]: Control accepted.
2020-08-07 10:53:56,743 [ DEBUG]: Connection closed.
2020-08-07 10:53:56,843 [ INFO]: Turning off [TV]UE40D8000 succeed