From 73dd5b7bae732bd6b73e24e56ee4c93ef26182e3 Mon Sep 17 00:00:00 2001 From: "Gerardo J. Puerta" Date: Tue, 15 Sep 2020 10:56:07 +0200 Subject: [PATCH] Adding isort --- dev-lang/rust/Manifest | 17 + ...nore-broken-and-non-applicable-tests.patch | 89 ++ dev-lang/rust/files/1.44.0-libressl.patch | 45 + dev-lang/rust/rust-1.44.1.ebuild | 502 ++++++++++ dev-libs/nspr/Manifest | 17 + dev-libs/nspr/files/nspr-4.10.6-solaris.patch | 32 + .../files/nspr-4.21-ipv6-musl-support.patch | 53 + dev-libs/nspr/files/nspr-4.23-prtime.patch | 26 + dev-libs/nspr/files/nspr-4.7.0-prtime.patch | 26 + dev-libs/nspr/files/nspr-4.7.1-solaris.patch | 14 + .../nspr-4.8.4-darwin-install_name.patch | 25 + .../nspr/files/nspr-4.8.9-link-flags.patch | 28 + .../nspr/files/nspr-4.9.5_nspr_config.patch | 11 + dev-libs/nspr/metadata.xml | 8 + dev-libs/nspr/nspr-4.22.ebuild | 120 +++ dev-libs/nspr/nspr-4.24.ebuild | 122 +++ dev-libs/nspr/nspr-4.25.ebuild | 122 +++ dev-libs/nspr/nspr-4.26.ebuild | 122 +++ dev-libs/nss/Manifest | 7 + .../nss-3.21-gentoo-fixup-warnings.patch | 10 + .../nss/files/nss-3.23-hppa-byte_order.patch | 16 + .../files/nss-3.53-fix-building-on-ppc.patch | 39 + .../nss/files/nss-3.53-gentoo-fixups.patch | 290 ++++++ dev-libs/nss/nss-3.55.ebuild | 351 +++++++ dev-libs/wayland/Manifest | 1 + dev-libs/wayland/metadata.xml | 8 + dev-libs/wayland/wayland-1.17.0.ebuild | 62 ++ dev-libs/wayland/wayland-9999.ebuild | 73 ++ dev-python/isort/Manifest | 3 + dev-python/isort/files/0001-no-setup.patch | 15 + dev-python/isort/isort-5.5.2.ebuild | 24 + dev-util/cargo/Manifest | 1 + dev-util/cargo/cargo-1.44.1.ebuild | 13 + dev-util/cbindgen/Manifest | 41 + dev-util/cbindgen/cbindgen-0.14.3.ebuild | 54 + dev-util/cbindgen/cbindgen-0.14.4.ebuild | 54 + media-libs/harfbuzz/Manifest | 7 + media-libs/harfbuzz/harfbuzz-2.5.3-r1.ebuild | 110 +++ media-libs/harfbuzz/harfbuzz-2.6.4.ebuild | 95 ++ media-libs/harfbuzz/harfbuzz-2.6.8.ebuild | 116 +++ media-libs/harfbuzz/metadata.xml | 20 + media-libs/libvpx/Manifest | 8 + media-libs/libvpx/app.log | 12 + .../files/libvpx-1.3.0-sparc-configure.patch | 10 + ...x-1.7.0-CVE-2019-9232_9325_9371_9433.patch | 211 ++++ media-libs/libvpx/libvpx-1.8.2.ebuild | 118 +++ media-libs/libvpx/libvpx-1.9.0.ebuild | 119 +++ media-libs/libwebp/Manifest | 5 +- media-libs/libwebp/libwebp-1.1.0.ebuild | 70 ++ virtual/cargo/Manifest | 1 + virtual/cargo/cargo-1.44.1.ebuild | 13 + virtual/rust/Manifest | 1 + virtual/rust/rust-1.44.1.ebuild | 14 + www-client/chromium/Manifest | 13 + .../chromium/chromium-84.0.4147.89.ebuild | 890 +++++++++++++++++ www-client/chromium/files/01-chromium.conf | 33 + .../chromium/files/chromium-83-vaapi.patch | 183 ++++ .../files/chromium-84-mediaalloc.patch | 41 + .../chromium/files/chromium-84-pipewire.patch | 792 +++++++++++++++ .../chromium/files/chromium-browser.xml | 14 + .../chromium/files/chromium-launcher-r4.sh | 53 + www-client/chromium/files/chromium.default | 5 + www-client/chromium/metadata.xml | 21 + www-client/firefox/Manifest | 94 ++ www-client/firefox/firefox-80.0.1.ebuild | 933 ++++++++++++++++++ x11-terms/kitty/app.log | 11 + 66 files changed, 6453 insertions(+), 1 deletion(-) create mode 100644 dev-lang/rust/Manifest create mode 100644 dev-lang/rust/files/0012-Ignore-broken-and-non-applicable-tests.patch create mode 100644 dev-lang/rust/files/1.44.0-libressl.patch create mode 100644 dev-lang/rust/rust-1.44.1.ebuild create mode 100644 dev-libs/nspr/Manifest create mode 100644 dev-libs/nspr/files/nspr-4.10.6-solaris.patch create mode 100644 dev-libs/nspr/files/nspr-4.21-ipv6-musl-support.patch create mode 100644 dev-libs/nspr/files/nspr-4.23-prtime.patch create mode 100644 dev-libs/nspr/files/nspr-4.7.0-prtime.patch create mode 100644 dev-libs/nspr/files/nspr-4.7.1-solaris.patch create mode 100644 dev-libs/nspr/files/nspr-4.8.4-darwin-install_name.patch create mode 100644 dev-libs/nspr/files/nspr-4.8.9-link-flags.patch create mode 100644 dev-libs/nspr/files/nspr-4.9.5_nspr_config.patch create mode 100644 dev-libs/nspr/metadata.xml create mode 100644 dev-libs/nspr/nspr-4.22.ebuild create mode 100644 dev-libs/nspr/nspr-4.24.ebuild create mode 100644 dev-libs/nspr/nspr-4.25.ebuild create mode 100644 dev-libs/nspr/nspr-4.26.ebuild create mode 100644 dev-libs/nss/Manifest create mode 100644 dev-libs/nss/files/nss-3.21-gentoo-fixup-warnings.patch create mode 100644 dev-libs/nss/files/nss-3.23-hppa-byte_order.patch create mode 100644 dev-libs/nss/files/nss-3.53-fix-building-on-ppc.patch create mode 100644 dev-libs/nss/files/nss-3.53-gentoo-fixups.patch create mode 100644 dev-libs/nss/nss-3.55.ebuild create mode 100644 dev-libs/wayland/Manifest create mode 100644 dev-libs/wayland/metadata.xml create mode 100644 dev-libs/wayland/wayland-1.17.0.ebuild create mode 100644 dev-libs/wayland/wayland-9999.ebuild create mode 100644 dev-python/isort/Manifest create mode 100644 dev-python/isort/files/0001-no-setup.patch create mode 100644 dev-python/isort/isort-5.5.2.ebuild create mode 100644 dev-util/cargo/Manifest create mode 100644 dev-util/cargo/cargo-1.44.1.ebuild create mode 100644 dev-util/cbindgen/Manifest create mode 100644 dev-util/cbindgen/cbindgen-0.14.3.ebuild create mode 100644 dev-util/cbindgen/cbindgen-0.14.4.ebuild create mode 100644 media-libs/harfbuzz/Manifest create mode 100644 media-libs/harfbuzz/harfbuzz-2.5.3-r1.ebuild create mode 100644 media-libs/harfbuzz/harfbuzz-2.6.4.ebuild create mode 100644 media-libs/harfbuzz/harfbuzz-2.6.8.ebuild create mode 100644 media-libs/harfbuzz/metadata.xml create mode 100644 media-libs/libvpx/app.log create mode 100644 media-libs/libvpx/files/libvpx-1.3.0-sparc-configure.patch create mode 100644 media-libs/libvpx/files/libvpx-1.7.0-CVE-2019-9232_9325_9371_9433.patch create mode 100644 media-libs/libvpx/libvpx-1.8.2.ebuild create mode 100644 media-libs/libvpx/libvpx-1.9.0.ebuild create mode 100644 media-libs/libwebp/libwebp-1.1.0.ebuild create mode 100644 virtual/cargo/Manifest create mode 100644 virtual/cargo/cargo-1.44.1.ebuild create mode 100644 virtual/rust/Manifest create mode 100644 virtual/rust/rust-1.44.1.ebuild create mode 100644 www-client/chromium/Manifest create mode 100644 www-client/chromium/chromium-84.0.4147.89.ebuild create mode 100644 www-client/chromium/files/01-chromium.conf create mode 100644 www-client/chromium/files/chromium-83-vaapi.patch create mode 100644 www-client/chromium/files/chromium-84-mediaalloc.patch create mode 100644 www-client/chromium/files/chromium-84-pipewire.patch create mode 100644 www-client/chromium/files/chromium-browser.xml create mode 100755 www-client/chromium/files/chromium-launcher-r4.sh create mode 100644 www-client/chromium/files/chromium.default create mode 100644 www-client/chromium/metadata.xml create mode 100644 www-client/firefox/Manifest create mode 100644 www-client/firefox/firefox-80.0.1.ebuild create mode 100644 x11-terms/kitty/app.log diff --git a/dev-lang/rust/Manifest b/dev-lang/rust/Manifest new file mode 100644 index 0000000..341221e --- /dev/null +++ b/dev-lang/rust/Manifest @@ -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 diff --git a/dev-lang/rust/files/0012-Ignore-broken-and-non-applicable-tests.patch b/dev-lang/rust/files/0012-Ignore-broken-and-non-applicable-tests.patch new file mode 100644 index 0000000..45fda8a --- /dev/null +++ b/dev-lang/rust/files/0012-Ignore-broken-and-non-applicable-tests.patch @@ -0,0 +1,89 @@ +From 1879d1d1a284bf51c752e47db284ce22701ed5d0 Mon Sep 17 00:00:00 2001 +From: Samuel Holland +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 + diff --git a/dev-lang/rust/files/1.44.0-libressl.patch b/dev-lang/rust/files/1.44.0-libressl.patch new file mode 100644 index 0000000..3bbae36 --- /dev/null +++ b/dev-lang/rust/files/1.44.0-libressl.patch @@ -0,0 +1,45 @@ +From 3d1be8d8981a0f847e935312a78bd2ba5129f90e Mon Sep 17 00:00:00 2001 +From: Stefan Strogin +Date: Fri, 5 Jun 2020 06:37:06 +0300 +Subject: [PATCH] Support LibreSSL 3.2.x + +Signed-off-by: Stefan Strogin +--- + 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 + diff --git a/dev-lang/rust/rust-1.44.1.ebuild b/dev-lang/rust/rust-1.44.1.ebuild new file mode 100644 index 0000000..3ddcdaa --- /dev/null +++ b/dev-lang/rust/rust-1.44.1.ebuild @@ -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// /,}] + ) + "${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/ + + # extra targets defined as a bash array + # spec format: :: + # 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 :: + local cross_llvm_target="${cross_target_spec%%:*}" + # extracts toolchain triples, : + 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 +} diff --git a/dev-libs/nspr/Manifest b/dev-libs/nspr/Manifest new file mode 100644 index 0000000..6262236 --- /dev/null +++ b/dev-libs/nspr/Manifest @@ -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 diff --git a/dev-libs/nspr/files/nspr-4.10.6-solaris.patch b/dev-libs/nspr/files/nspr-4.10.6-solaris.patch new file mode 100644 index 0000000..6ae04f4 --- /dev/null +++ b/dev-libs/nspr/files/nspr-4.10.6-solaris.patch @@ -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' diff --git a/dev-libs/nspr/files/nspr-4.21-ipv6-musl-support.patch b/dev-libs/nspr/files/nspr-4.21-ipv6-musl-support.patch new file mode 100644 index 0000000..2c8ebd4 --- /dev/null +++ b/dev-libs/nspr/files/nspr-4.21-ipv6-musl-support.patch @@ -0,0 +1,53 @@ +From 8c57451f44d7ceb37bfb4ae6e457fc70b1f58d0a Mon Sep 17 00:00:00 2001 +From: Moritz Kick +Date: Wed, 20 Mar 2019 13:36:06 -0500 +Subject: [PATCH] Added IPv6 compatibility for musl libc + +Signed-off-by: Moritz Kick +Signed-off-by: Jory Pratt +--- + 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 + diff --git a/dev-libs/nspr/files/nspr-4.23-prtime.patch b/dev-libs/nspr/files/nspr-4.23-prtime.patch new file mode 100644 index 0000000..087e427 --- /dev/null +++ b/dev-libs/nspr/files/nspr-4.23-prtime.patch @@ -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 diff --git a/dev-libs/nspr/files/nspr-4.7.0-prtime.patch b/dev-libs/nspr/files/nspr-4.7.0-prtime.patch new file mode 100644 index 0000000..2de3ba3 --- /dev/null +++ b/dev-libs/nspr/files/nspr-4.7.0-prtime.patch @@ -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 diff --git a/dev-libs/nspr/files/nspr-4.7.1-solaris.patch b/dev-libs/nspr/files/nspr-4.7.1-solaris.patch new file mode 100644 index 0000000..1afab1d --- /dev/null +++ b/dev-libs/nspr/files/nspr-4.7.1-solaris.patch @@ -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 diff --git a/dev-libs/nspr/files/nspr-4.8.4-darwin-install_name.patch b/dev-libs/nspr/files/nspr-4.8.4-darwin-install_name.patch new file mode 100644 index 0000000..4045e90 --- /dev/null +++ b/dev-libs/nspr/files/nspr-4.8.4-darwin-install_name.patch @@ -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" diff --git a/dev-libs/nspr/files/nspr-4.8.9-link-flags.patch b/dev-libs/nspr/files/nspr-4.8.9-link-flags.patch new file mode 100644 index 0000000..5d37018 --- /dev/null +++ b/dev-libs/nspr/files/nspr-4.8.9-link-flags.patch @@ -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 diff --git a/dev-libs/nspr/files/nspr-4.9.5_nspr_config.patch b/dev-libs/nspr/files/nspr-4.9.5_nspr_config.patch new file mode 100644 index 0000000..a22b0b9 --- /dev/null +++ b/dev-libs/nspr/files/nspr-4.9.5_nspr_config.patch @@ -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 diff --git a/dev-libs/nspr/metadata.xml b/dev-libs/nspr/metadata.xml new file mode 100644 index 0000000..d9b367e --- /dev/null +++ b/dev-libs/nspr/metadata.xml @@ -0,0 +1,8 @@ + + + + + mozilla@gentoo.org + Gentoo Mozilla Team + + diff --git a/dev-libs/nspr/nspr-4.22.ebuild b/dev-libs/nspr/nspr-4.22.ebuild new file mode 100644 index 0000000..bc21896 --- /dev/null +++ b/dev-libs/nspr/nspr-4.22.ebuild @@ -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 +} diff --git a/dev-libs/nspr/nspr-4.24.ebuild b/dev-libs/nspr/nspr-4.24.ebuild new file mode 100644 index 0000000..1e664e4 --- /dev/null +++ b/dev-libs/nspr/nspr-4.24.ebuild @@ -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 +} diff --git a/dev-libs/nspr/nspr-4.25.ebuild b/dev-libs/nspr/nspr-4.25.ebuild new file mode 100644 index 0000000..1e664e4 --- /dev/null +++ b/dev-libs/nspr/nspr-4.25.ebuild @@ -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 +} diff --git a/dev-libs/nspr/nspr-4.26.ebuild b/dev-libs/nspr/nspr-4.26.ebuild new file mode 100644 index 0000000..22a70f0 --- /dev/null +++ b/dev-libs/nspr/nspr-4.26.ebuild @@ -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 +} diff --git a/dev-libs/nss/Manifest b/dev-libs/nss/Manifest new file mode 100644 index 0000000..cd8d637 --- /dev/null +++ b/dev-libs/nss/Manifest @@ -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 diff --git a/dev-libs/nss/files/nss-3.21-gentoo-fixup-warnings.patch b/dev-libs/nss/files/nss-3.21-gentoo-fixup-warnings.patch new file mode 100644 index 0000000..14234e8 --- /dev/null +++ b/dev-libs/nss/files/nss-3.21-gentoo-fixup-warnings.patch @@ -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 diff --git a/dev-libs/nss/files/nss-3.23-hppa-byte_order.patch b/dev-libs/nss/files/nss-3.23-hppa-byte_order.patch new file mode 100644 index 0000000..63cfadd --- /dev/null +++ b/dev-libs/nss/files/nss-3.23-hppa-byte_order.patch @@ -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 */ diff --git a/dev-libs/nss/files/nss-3.53-fix-building-on-ppc.patch b/dev-libs/nss/files/nss-3.53-fix-building-on-ppc.patch new file mode 100644 index 0000000..962b9cb --- /dev/null +++ b/dev-libs/nss/files/nss-3.53-fix-building-on-ppc.patch @@ -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 +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 +--- + 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 + diff --git a/dev-libs/nss/files/nss-3.53-gentoo-fixups.patch b/dev-libs/nss/files/nss-3.53-gentoo-fixups.patch new file mode 100644 index 0000000..2d8bdb6 --- /dev/null +++ b/dev-libs/nss/files/nss-3.53-gentoo-fixups.patch @@ -0,0 +1,290 @@ +From 1b3c48499abb000d708abe5f05413c1f4155e086 Mon Sep 17 00:00:00 2001 +From: Jory Pratt +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 <&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 + diff --git a/dev-libs/nss/nss-3.55.ebuild b/dev-libs/nss/nss-3.55.ebuild new file mode 100644 index 0000000..827349d --- /dev/null +++ b/dev-libs/nss/nss-3.55.ebuild @@ -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 +} diff --git a/dev-libs/wayland/Manifest b/dev-libs/wayland/Manifest new file mode 100644 index 0000000..54c86a1 --- /dev/null +++ b/dev-libs/wayland/Manifest @@ -0,0 +1 @@ +DIST wayland-1.17.0.tar.xz 437680 BLAKE2B 2f4eb54c5ded90453b4e2812f7b5086aa211196ec9f7333d316cdb829269d55db570ccb45a67ee07a039633245e630ab54da6403ff4754d59366f3c13fb87549 SHA512 c5051aab5ff078b368c196ecfedb33ccd961265bb914845d7ed81de361bb86ae18299575baa6c4eceb0d82cf8b495e8293f31b51d1cbc05d84af0a199ab3f946 diff --git a/dev-libs/wayland/metadata.xml b/dev-libs/wayland/metadata.xml new file mode 100644 index 0000000..e943b72 --- /dev/null +++ b/dev-libs/wayland/metadata.xml @@ -0,0 +1,8 @@ + + + + + x11@gentoo.org + X11 + + diff --git a/dev-libs/wayland/wayland-1.17.0.ebuild b/dev-libs/wayland/wayland-1.17.0.ebuild new file mode 100644 index 0000000..a417499 --- /dev/null +++ b/dev-libs/wayland/wayland-1.17.0.ebuild @@ -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} + !/CXXLINK/' \ + src/Makefile.am || die + sed -i \ + -e '/libharfbuzz_la_LINK = /s/\/CXXLINK/' \ + src/Makefile.in || die + sed -i \ + -e '/AM_V_CCLD/s/\/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 +} diff --git a/media-libs/harfbuzz/harfbuzz-2.6.4.ebuild b/media-libs/harfbuzz/harfbuzz-2.6.4.ebuild new file mode 100644 index 0000000..930f719 --- /dev/null +++ b/media-libs/harfbuzz/harfbuzz-2.6.4.ebuild @@ -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/\/CXXLINK/' \ + src/Makefile.am || die + sed -i \ + -e '/libharfbuzz_la_LINK = /s/\/CXXLINK/' \ + src/Makefile.in || die + sed -i \ + -e '/AM_V_CCLD/s/\/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 +} diff --git a/media-libs/harfbuzz/harfbuzz-2.6.8.ebuild b/media-libs/harfbuzz/harfbuzz-2.6.8.ebuild new file mode 100644 index 0000000..bdc327a --- /dev/null +++ b/media-libs/harfbuzz/harfbuzz-2.6.8.ebuild @@ -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/\/CXXLINK/' \ + src/Makefile.am || die + sed -i \ + -e '/libharfbuzz_la_LINK = /s/\/CXXLINK/' \ + src/Makefile.in || die + sed -i \ + -e '/AM_V_CCLD/s/\/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 +} diff --git a/media-libs/harfbuzz/metadata.xml b/media-libs/harfbuzz/metadata.xml new file mode 100644 index 0000000..cb52496 --- /dev/null +++ b/media-libs/harfbuzz/metadata.xml @@ -0,0 +1,20 @@ + + + + + polynomial-c@gentoo.org + Lars Wendler + + + office@gentoo.org + Gentoo Office project + + + gnome@gentoo.org + Gentoo GNOME Desktop + + + Compile with GLib Unicode support + Use graphite to render complex non-Roman writing systems + + diff --git a/media-libs/libvpx/Manifest b/media-libs/libvpx/Manifest index b8fd826..66a9c66 100644 --- a/media-libs/libvpx/Manifest +++ b/media-libs/libvpx/Manifest @@ -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 diff --git a/media-libs/libvpx/app.log b/media-libs/libvpx/app.log new file mode 100644 index 0000000..74439db --- /dev/null +++ b/media-libs/libvpx/app.log @@ -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. diff --git a/media-libs/libvpx/files/libvpx-1.3.0-sparc-configure.patch b/media-libs/libvpx/files/libvpx-1.3.0-sparc-configure.patch new file mode 100644 index 0000000..2ddea4d --- /dev/null +++ b/media-libs/libvpx/files/libvpx-1.3.0-sparc-configure.patch @@ -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" diff --git a/media-libs/libvpx/files/libvpx-1.7.0-CVE-2019-9232_9325_9371_9433.patch b/media-libs/libvpx/files/libvpx-1.7.0-CVE-2019-9232_9325_9371_9433.patch new file mode 100644 index 0000000..623eccd --- /dev/null +++ b/media-libs/libvpx/files/libvpx-1.7.0-CVE-2019-9232_9325_9371_9433.patch @@ -0,0 +1,211 @@ +Backports of + +From 46e17f0cb4a80b36755c84b8bf15731d3386c08f Mon Sep 17 00:00:00 2001 +From: kyslov +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 +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 +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 +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 +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_ptr; ++ std::unique_ptr 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; + } + } diff --git a/media-libs/libvpx/libvpx-1.8.2.ebuild b/media-libs/libvpx/libvpx-1.8.2.ebuild new file mode 100644 index 0000000..31d1774 --- /dev/null +++ b/media-libs/libvpx/libvpx-1.8.2.ebuild @@ -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 +} diff --git a/media-libs/libvpx/libvpx-1.9.0.ebuild b/media-libs/libvpx/libvpx-1.9.0.ebuild new file mode 100644 index 0000000..7505ae6 --- /dev/null +++ b/media-libs/libvpx/libvpx-1.9.0.ebuild @@ -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 +} diff --git a/media-libs/libwebp/Manifest b/media-libs/libwebp/Manifest index 7c54bde..331bc09 100644 --- a/media-libs/libwebp/Manifest +++ b/media-libs/libwebp/Manifest @@ -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 diff --git a/media-libs/libwebp/libwebp-1.1.0.ebuild b/media-libs/libwebp/libwebp-1.1.0.ebuild new file mode 100644 index 0000000..0758ca3 --- /dev/null +++ b/media-libs/libwebp/libwebp-1.1.0.ebuild @@ -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} +} diff --git a/virtual/cargo/Manifest b/virtual/cargo/Manifest new file mode 100644 index 0000000..ea109f7 --- /dev/null +++ b/virtual/cargo/Manifest @@ -0,0 +1 @@ +EBUILD cargo-1.44.1.ebuild 203 BLAKE2B 519296c1f49182c41d92fdbfbe86bdbdca04ab9c84e01fbb709150c3d2dd000a4372eb2cc005f9a9914432f47e354f25421ce0041977d7e8a07c50aec725638e SHA512 c1ae8e4d284daea75640d3bb7c98dd3ebacd9e3a8e0876d77961a23465d9c30664608bc40bddd2f45d490be37a252b6ae526beeb415a1aceaa3ed05e852f7c7c diff --git a/virtual/cargo/cargo-1.44.1.ebuild b/virtual/cargo/cargo-1.44.1.ebuild new file mode 100644 index 0000000..d20e764 --- /dev/null +++ b/virtual/cargo/cargo-1.44.1.ebuild @@ -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}" diff --git a/virtual/rust/Manifest b/virtual/rust/Manifest new file mode 100644 index 0000000..a5108b0 --- /dev/null +++ b/virtual/rust/Manifest @@ -0,0 +1 @@ +EBUILD rust-1.44.1.ebuild 259 BLAKE2B d6d92a6d0ce4f3aeb04678b38053660c621646aa68fa9e213f5b677af11c10631d4c5278f084806c0658f237335c656ef6f851c44dd343a39195196117c1cbba SHA512 396652f4a4ca721887fc3a28b7ae1a6611bd24ea9f725e9959d63ce30a1cb7979c100409f9922e6037e134fab167d6f2051442a1e0223b7c403d72fc151ba595 diff --git a/virtual/rust/rust-1.44.1.ebuild b/virtual/rust/rust-1.44.1.ebuild new file mode 100644 index 0000000..652f26a --- /dev/null +++ b/virtual/rust/rust-1.44.1.ebuild @@ -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}* )" diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest new file mode 100644 index 0000000..5637601 --- /dev/null +++ b/www-client/chromium/Manifest @@ -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 diff --git a/www-client/chromium/chromium-84.0.4147.89.ebuild b/www-client/chromium/chromium-84.0.4147.89.ebuild new file mode 100644 index 0000000..b9b7158 --- /dev/null +++ b/www-client/chromium/chromium-84.0.4147.89.ebuild @@ -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? ( ! 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 +} diff --git a/www-client/chromium/files/01-chromium.conf b/www-client/chromium/files/01-chromium.conf new file mode 100644 index 0000000..310754b --- /dev/null +++ b/www-client/chromium/files/01-chromium.conf @@ -0,0 +1,33 @@ + + + + + + + + + + +]> + + + + + + + + + diff --git a/www-client/chromium/files/chromium-83-vaapi.patch b/www-client/chromium/files/chromium-83-vaapi.patch new file mode 100644 index 0000000..0b519ae --- /dev/null +++ b/www-client/chromium/files/chromium-83-vaapi.patch @@ -0,0 +1,183 @@ +From 7cda9be20eedac2f972f4b99d71a7732d87f1b9b Mon Sep 17 00:00:00 2001 +From: Mike Lothian +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 +--- + 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 diff --git a/www-client/chromium/files/chromium-84-mediaalloc.patch b/www-client/chromium/files/chromium-84-mediaalloc.patch new file mode 100644 index 0000000..69f0229 --- /dev/null +++ b/www-client/chromium/files/chromium-84-mediaalloc.patch @@ -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 ++ + #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::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 ++#include + #include + #include + #include +@@ -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::max()); + // Enable OOM crashes in the shim for all malloc calls that fail. + _set_new_mode(1); + _set_new_handler(&OnNoMemory); diff --git a/www-client/chromium/files/chromium-84-pipewire.patch b/www-client/chromium/files/chromium-84-pipewire.patch new file mode 100644 index 0000000..82bb462 --- /dev/null +++ b/www-client/chromium/files/chromium-84-pipewire.patch @@ -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 + #include + #include +-#include +-#include ++ ++#include ++#include ++#include ++#include + + #include + #include +@@ -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(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(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_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_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_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_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_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(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(desktop_size_.width()), +- static_cast(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_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_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_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(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(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(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( ++ 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(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(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(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 result(new BasicDesktopFrame(desktop_size_)); ++ DesktopSize frame_size = desktop_size_; ++ if (video_crop_size_initialized_) { ++ frame_size = video_crop_size_; ++ } ++ ++ std::unique_ptr 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 ++BaseCapturerPipeWire::CreateRawScreenCapturer( ++ const DesktopCaptureOptions& options) { ++ std::unique_ptr capturer = ++ std::make_unique(BaseCapturerPipeWire::CaptureSourceType::kAny); ++ return std::move(capturer);} ++ ++// static ++std::unique_ptr ++BaseCapturerPipeWire::CreateRawWindowCapturer( ++ const DesktopCaptureOptions& options) { ++ ++ std::unique_ptr capturer = ++ std::make_unique(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 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 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 CreateRawScreenCapturer( ++ const DesktopCaptureOptions& options); ++ ++ static std::unique_ptr 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 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 diff --git a/www-client/chromium/files/chromium-browser.xml b/www-client/chromium/files/chromium-browser.xml new file mode 100644 index 0000000..6294331 --- /dev/null +++ b/www-client/chromium/files/chromium-browser.xml @@ -0,0 +1,14 @@ + + + + + + + Chromium + chromium-browser + chromium-browser %s + chromium-browser + false + + + diff --git a/www-client/chromium/files/chromium-launcher-r4.sh b/www-client/chromium/files/chromium-launcher-r4.sh new file mode 100755 index 0000000..076d9de --- /dev/null +++ b/www-client/chromium/files/chromium-launcher-r4.sh @@ -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} "$@" + diff --git a/www-client/chromium/files/chromium.default b/www-client/chromium/files/chromium.default new file mode 100644 index 0000000..c140cde --- /dev/null +++ b/www-client/chromium/files/chromium.default @@ -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="" diff --git a/www-client/chromium/metadata.xml b/www-client/chromium/metadata.xml new file mode 100644 index 0000000..c54bc9e --- /dev/null +++ b/www-client/chromium/metadata.xml @@ -0,0 +1,21 @@ + + + + + chromium@gentoo.org + Chromium in Gentoo Project + + + Enable closure type-checking for Chrome's web technology-based UI. Requires Java. + Split build into more shared libraries to speed up linking. Mostly intended for debugging and development, NOT RECOMMENDED for general use. + Enable support for Google Hangouts features such as screen sharing + Disable optimized assembly code that is not PIC friendly + Enable proprietary codecs like H.264, MP3 + Build the SUID sandbox, which is only needed on CONFIG_USER_NS=n kernels + Use system ffmpeg instead of the bundled one + Use system icu instead of the bundled one + Use system libvpx instead of the bundled one + Use bundled tcmalloc instead of system malloc + Unsupported closed-source DRM capability (required by Netflix VOD) + + diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest new file mode 100644 index 0000000..6f95b79 --- /dev/null +++ b/www-client/firefox/Manifest @@ -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 diff --git a/www-client/firefox/firefox-80.0.1.ebuild b/www-client/firefox/firefox-80.0.1.ebuild new file mode 100644 index 0000000..47cde60 --- /dev/null +++ b/www-client/firefox/firefox-80.0.1.ebuild @@ -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" <=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 +} diff --git a/x11-terms/kitty/app.log b/x11-terms/kitty/app.log new file mode 100644 index 0000000..e99aa21 --- /dev/null +++ b/x11-terms/kitty/app.log @@ -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