diff --git a/app-backup/deja-dup/Manifest b/app-backup/deja-dup/Manifest
new file mode 100644
index 0000000..71dbff2
--- /dev/null
+++ b/app-backup/deja-dup/Manifest
@@ -0,0 +1,3 @@
+DIST deja-dup-40.6.tar.bz2 1309271 BLAKE2B f266ae458988a3195df006263a4104846934b8d723de950e2feb31e2d509a42909df0a33a88aa4bf022dc5395e54302fb96371b6ba362fada1ac6e2da25992b1 SHA512 3a582386a0ebc25a45ab9c3ac1a5e2710d4454c6004935c23e77e524905bde113efe75eb53136cdd08ed181ec6aa4eec38c8bdebe13796f83e0a65894de532a6
+EBUILD deja-dup-40.6.ebuild 1157 BLAKE2B 531a2fbc7fb59e889dc5dab6c0a0cb36d3ec4603595f64c7424667b0392e6268c7c25251334308fce5ecc89be208d11852c0a33c06246df3b89e0312ac659133 SHA512 53e298aebaf46877592ddb034355a97bf41dd42a42e0859e7b56c59ab773b7c3677f4cfea40cecd843201cb30620834698bc7cda1ede07e099f55f6a7ecb68a5
+MISC metadata.xml 425 BLAKE2B 8973d6823641d5c69a21ba4d5862dd9a361ce5771537f42b50f2b54b36ad1d9217b358f7289c5981586330c1ad0673ca421caa30db2259f6c92a479735f46c15 SHA512 ba6a6a6530d8a6f582be2c3029dfc221c8cdad945486017820b1e8ba6dc144de27469f7093db5b565ed8b9e28652f9a553362687ada5105ff55f0c6be103ba47
diff --git a/app-backup/deja-dup/deja-dup-40.6.ebuild b/app-backup/deja-dup/deja-dup-40.6.ebuild
new file mode 100644
index 0000000..09f409b
--- /dev/null
+++ b/app-backup/deja-dup/deja-dup-40.6.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils gnome2 vala meson
+
+DESCRIPTION="Simple backup tool using duplicity back-end"
+HOMEPAGE="https://launchpad.net/deja-dup/"
+SRC_URI="https://gitlab.gnome.org/World/${PN}/-/archive/${PV}/${PN}-${PV}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="nautilus test"
+RESTRICT="test" # bug#????
+
+COMMON_DEPEND="
+ app-admin/packagekit-base
+ app-crypt/libsecret[vala]
+ >=dev-libs/glib-2.34:2[dbus]
+ >=dev-libs/libpeas-1.0
+ >=x11-libs/gtk+-3.10:3
+ >=x11-libs/libnotify-0.7
+ >=app-backup/duplicity-0.6.23
+ dev-libs/dbus-glib
+ nautilus? ( gnome-base/nautilus )
+"
+RDEPEND="${COMMON_DEPEND}
+ gnome-base/dconf
+ gnome-base/gvfs[fuse]
+"
+DEPEND="${COMMON_DEPEND}
+ $(vala_depend)
+ app-text/yelp-tools
+ dev-perl/Locale-gettext
+ virtual/pkgconfig
+ dev-util/intltool
+ sys-devel/gettext
+"
+
+src_prepare() {
+ default
+}
+
+src_configure() {
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+}
+
+pkg_postinst() {
+ gnome2_icon_cache_update
+ glib-compile-schemas /usr/share/glib-2.0/schemas/
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+}
+
diff --git a/app-backup/deja-dup/metadata.xml b/app-backup/deja-dup/metadata.xml
new file mode 100644
index 0000000..e0a16e6
--- /dev/null
+++ b/app-backup/deja-dup/metadata.xml
@@ -0,0 +1,14 @@
+
+
+
+
+ gnome@gentoo.org
+ Gentoo GNOME Desktop
+
+
+
+ deja-dup
+
+
diff --git a/dev-lang/php/Manifest b/dev-lang/php/Manifest
new file mode 100644
index 0000000..f00168d
--- /dev/null
+++ b/dev-lang/php/Manifest
@@ -0,0 +1,21 @@
+AUX 20php5-envd 145 BLAKE2B 06476b8fc04d1e835496b417ac752f0834ddbe8584e4fddc6db0aa5e6845b82cdea0a1355c77125375dcdd0f0a3c19de5f3a8a64ee93950f96c437a16f971567 SHA512 581aa86479e3cd584ee1bc6dc6d4a135fe8ec343fe5519566d728d81f7018cfb23658bd0c0368951d380982c75adbb4f45acf3c146868aaf4e4ec8e9f2fad1ce
+AUX 5.6-mbstring-oniguruma-6.8.patch 880 BLAKE2B 7526874436b0fee12d0bc80487abe8a2e152491b52d2b3c041e4162284a3be580d88649704d360e85b0985d6406d2d26fe55c147a091fef1adbe7631cedafeeb SHA512 8767aa16f72fec2e4d79d8b15559ffe6afcf97c1664d963befc5565ead5eb3a5291982ece941441f57cfac21589c5e8eecf359b111b27a880919f77652e4de65
+AUX apache.patch 297 BLAKE2B 8e6270cfdfa074e10471b147f747a8211c8b3043ec825d8674445d02d91d5a0a31bf4630ec0d339cc4fa49c3a7f77206910d6ec14cbaa66fddf7d3a60f5b2b94 SHA512 d606829873ed9fd7db369e98ca1efea574a781de0df0137e0905a4294f532d6718d398a58371ce2c2ddb3d4d5a82958200c2b6fadb07fa5f7a3261bb34f51483
+AUX libressl-compatibility.patch 2978 BLAKE2B 714e268149d973beb0d2d76f90e15adde57acb7aed028131c6dee2a34b11980fedff487ccec67e20d9a9094014878e13bd7e180e98bb0ee304c5916324016823 SHA512 58ed57061f31da72c96cbca6f6e86d1466c96c8562dfa6551b4a8d16bd6e537b848ca34cbe57c5c220c72158e176f9cd7c07d282fe1fd69ebf5475c48bf95c26
+AUX mbstring-oniguruma-6.8.patch 1488 BLAKE2B 181aacdd5fc01e5b11246d624cd88a5d3184c00343abb8a9e36d1e224dce185a81521c0498d562e51768e4c035806f007f9cd5ed930b7abe2a3da2e5b519f5b3 SHA512 5a3334ca98da9ac22be67021e4e859c89826aec8393d4b56c4e52336a5fc689acd2579ff44ac984a40711ccaf917a810264b07a0071f8161da18e2bffd3d0c05
+AUX php-5.6-intl-detect-icu-via-pkg-config.patch 5715 BLAKE2B 609192a91736ae7417365b7040606dc4dae43333c63eda79879cd45f74c34613563e4c4625cb5f1401cb59f78db0b9328e808b9293eab63aac34069847b3058a SHA512 89e109422f2eb8efa2408851592528c0bcc2103c902bffdc72208096489c3d2593cc4baeac2bde6266f3e08028f90e7c4960e2b9a17323216dbd68b19fe84c44
+AUX php-5.6-intl-icu-memory-corruption.patch 2374 BLAKE2B eb970251333796622491b40ac9da4aeca4d0775e11f579bb7fd63078a44d35f5fc4987155f190ca07cbdd98e8b6f532e0ba92a770b3f7ed61405f361f888001a SHA512 b5533f2e9665204ca62dcfd24d8988c3dde453068919e00dc26bb02409ac50da2d42ad1fc00815aea2f13410f0d5d95fadfb820d13c944eb2d8be9060f3787f1
+AUX php-5.6-intl-use-icu-namespace.patch 11150 BLAKE2B 0117eba8f33d4ed07484e3dad15fd7ff34282f1ad57b441f4794c0dcec650fb19f32a7fbb345d4feee54efc1ef470d118f8f2d7c6b422a0ba3aa22c0ca5c83f3 SHA512 ef440c9fd157739ea80dc68aecb3d9ea3f97d9347e44152e198eda3763c05d252f0913eae09c5945e372497e2be8eace55a9d004cdfb61281ea17208c6e6aed1
+AUX php-5.6-no-bison-warnings.patch 1428 BLAKE2B d37bc7a1ae803aa4a14d32f0ca5613b7bc82610248d6de5ef7b6078fdcfa944cd1c245aa919137ff0d6968c8621b5acf2638386307c46fdbb8c98eba991eb674 SHA512 8f751c638c833d535e022434cd8ace5c175703bf61dfab7bea3e52d9419700e2b85c4cca40da9ab6056e8fd9c0bc1fab55810bb1193bed14ce0a50ce653fe62b
+AUX php-7.0.33-intl-detect-icu-via-pkg-config.patch 5832 BLAKE2B 7f48cb80ee4d51a4385845f1cc10babbbc2dbd40c245f13711467a8cb6244e85eafe59a03c50b99d0d07465a335cefff765296ab92e8b8a8ee2cc8543c4f5e4a SHA512 a08a3e59c77ab5313cdb7f8d8d496071fbaa6765e7bb878012c283eb7103093b511afbf0c234b760fe56ac4e13817746db9990880e5056d36a0d0b1779dd239c
+AUX php-7.0.33-intl-icu-memory-corruption.patch 2385 BLAKE2B 37123710c6cf3f8c99bce365d299079810317cd9aff32e7b725d89fdcedfe0503335b568c5b09f45fdeee8506cd3f691bda24eea1f6101d39a655feff818e57f SHA512 904188088bd2a8a68e2d2019df96d61abfcd7ff7e306f078bcfcd610ea0deda5007392a135c62e2fa2feac27ea6379087835beb36bb76edd1a4055ebe84c1a97
+AUX php-7.0.33-intl-use-icu-namespace.patch 11180 BLAKE2B 5a5d6bd74f2cee846ce58e754443a9b0d689aac1c1705166ea16ea0292f7f4d2b6a83519db5391414cd97de88bc25b7a4d43ba2adc90427e62b134d662ea924d SHA512 faa289791e4ac2c176a27056fb63683cd444c36b6b5118299327179a753e9a1a8589dc6f20e0e3e2d6645312500fbe0d8d9cb4db39e29e7fa22d3d19283b36e8
+AUX php-7.1.25-intl-detect-icu-via-pkg-config.patch 4608 BLAKE2B 3639c5a39bae61d3032c18a85982769c2d8a5837a67cc8b3ec7cd25263d15f4923a04c74f21b10cd5cc17c0cd9d657431dc3052cddaa289a6eb1dac0cf975350 SHA512 567fb3486af02e487cdde11e2a6f706b2fc19722e5e9f4b63320bb2226e30ff79b14780f3f661378bf5bea2150b47af93fb5b39003465895fdf420691d4dbc44
+AUX php-7.1.25-intl-use-icu-namespace.patch 11396 BLAKE2B 7664703a7bafb38d252f5eeec926ee0b7eaf4d75e71ef98c2e7d3f612b7d48d38b66764286d67299a38a704500db2e3215dc375d64a8f277b904aff80211fa60 SHA512 c7b61cade203a338a576aff0b4b76a22f0d686d53e91fbf4c5171e0429317460f7404c78a0c076a3000957100af2d17caba6245bf37afc6177fb43c7fafa7679
+AUX php-7.2.13-intl-use-icu-namespace.patch 11499 BLAKE2B 0dca597d5afd0309595499e3ff860e2d83183e570d02f202a1e2966d430606f09b8dc7427c4007e791914c8ee093a2e7cbf7372baa7896ac06d1912f2e707c09 SHA512 1332eb76feda2100685e319ae046512cf12b55a0d2be537c2172ccf035b547d851f84fb7941389882d7e3d674d91441e018c7b8f1e3f0d4cced05c314d5821fe
+AUX php-fpm_at-simple.service 316 BLAKE2B 0ba10f3e3b004fbf14956e1e4f04f59b8a127e6717fe6b92c09b9f931033a11551c75fbbee9010f6b694c5a8758ca0eec9eed457ae304ba0dea8f2c256c3b8d4 SHA512 7367a3f8d3874f8e0c76f331ba613a0250db02f60ad9f87affaf448dcb5bc34bcecb91d88f415764a12b24b46ae3d1b738a002af9f77a4b707e916e83a0021fd
+AUX php-fpm_at.service 317 BLAKE2B f13fc38fcc0575a8517ee8d07b120efda37eabd2355061d0fdc303604c6b02ad42d7301180d86c977d5e585f5dd685343c592e37a6e0f44933707be79e0b77e0 SHA512 27982f9e2d958bfa75c89c7d3531e48d17fc388b1cdcbc8e09051b236b1184ee2baabdfcc567c19d9fcd067d4b3b86f171015616d8da42fccdabd89432d865e8
+AUX php-freetype-2.9.1.patch 7667 BLAKE2B efc8f829bbad11b3e7b654d0882213ecb9aae766060d51f93446a6293a2f607339faba484c7b0b2f9318a5c5442da3c09e25aeda20dbc5e3258bf1009f8625b4 SHA512 0a06189f6fb3513cd2dcf9ddb590360475e2dd9a7aa8b13ab66c389c1ed40ce2361681f017cd3c6219f5b40a0a9d4978e57ca3ee4bacb7657db3285136fd2875
+AUX php-iodbc-header-location.patch 481 BLAKE2B 9ea6a5d529dc7a8c78eeee800900372bc14309a05e352b2838da32e1384b61b507fdb623c9400094aa5b637eb1a87da92c72600eff79b18b8989ef90af56a0fa SHA512 86469f657d8807f005c28fd2149770c881add8f243fdfea087956c7987277597fe400a7af23f624f26da270356604717ed9cd04771154d7cf2ffe7237972372b
+DIST php-7.3.17.tar.xz 12116072 BLAKE2B 5f8a0b1a3de9b7e750d249593be0a3eb9e62040691ebe4549da74d8c321dcd88e970d92285f49a924ef0f38118779d540a94810c08ece2df7dbd8584a8f83c56 SHA512 ac99a645a7442c322b8334cb4d091474bb0486b5efe11f8ffc16e4a2c0ecf8dbb5d958206372617350ec70b579dd4756f4d166c2863f3892db480e9bfbd14837
+EBUILD php-7.3.17.ebuild 22531 BLAKE2B 5e7829bfce6c1d99cf39cf1058f2c3f896de26a71880a1365ed4fca9c40977208165d201bb5abffda0e8c39d722d4565a62200cf438f043cafd82192e9f21e57 SHA512 929c387adb105d805a16536f7fa87f2d8c134c39485eeec6433ca5a154d302a64d904b8c5b25796f1f4f1e5deab304e0363e692e6784d2a4ea8ed36a163e18c1
diff --git a/dev-lang/php/files/20php5-envd b/dev-lang/php/files/20php5-envd
new file mode 100644
index 0000000..f6033ae
--- /dev/null
+++ b/dev-lang/php/files/20php5-envd
@@ -0,0 +1,2 @@
+MANPATH="/usr/lib/php5/man/"
+CONFIG_PROTECT_MASK="/etc/php/cli-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/apache2-php5/ext-active/"
diff --git a/dev-lang/php/files/5.6-mbstring-oniguruma-6.8.patch b/dev-lang/php/files/5.6-mbstring-oniguruma-6.8.patch
new file mode 100644
index 0000000..642b261
--- /dev/null
+++ b/dev-lang/php/files/5.6-mbstring-oniguruma-6.8.patch
@@ -0,0 +1,12 @@
+diff -aurN a/ext/mbstring/php_mbregex.c b/ext/mbstring/php_mbregex.c
+--- a/ext/mbstring/php_mbregex.c 2018-03-28 17:28:58.000000000 -0400
++++ b/ext/mbstring/php_mbregex.c 2018-04-04 12:53:23.268296387 -0400
+@@ -454,7 +454,7 @@
+ OnigUChar err_str[ONIG_MAX_ERROR_MESSAGE_LEN];
+
+ found = zend_hash_find(&MBREX(ht_rc), (char *)pattern, patlen+1, (void **) &rc);
+- if (found == FAILURE || (*rc)->options != options || (*rc)->enc != enc || (*rc)->syntax != syntax) {
++ if (found == FAILURE || onig_get_options(*rc) != options || onig_get_encoding(*rc) != enc || onig_get_syntax(*rc) != syntax) {
+ if ((err_code = onig_new(&retval, (OnigUChar *)pattern, (OnigUChar *)(pattern + patlen), options, enc, syntax, &err_info)) != ONIG_NORMAL) {
+ onig_error_code_to_str(err_str, err_code, &err_info);
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "mbregex compile err: %s", err_str);
diff --git a/dev-lang/php/files/apache.patch b/dev-lang/php/files/apache.patch
new file mode 100644
index 0000000..ce30d69
--- /dev/null
+++ b/dev-lang/php/files/apache.patch
@@ -0,0 +1,10 @@
+--- a/sapi/apache2handler/config.m4
++++ b/sapi/apache2handler/config.m4
+@@ -111,7 +111,6 @@
+ PHP_BUILD_THREAD_SAFE
+ fi
+ else
+- APACHE_THREADED_MPM=`$APXS_HTTPD -V 2>/dev/null | grep 'threaded:.*yes'`
+ if test -n "$APACHE_THREADED_MPM"; then
+ PHP_BUILD_THREAD_SAFE
+ fi
diff --git a/dev-lang/php/files/libressl-compatibility.patch b/dev-lang/php/files/libressl-compatibility.patch
new file mode 100644
index 0000000..3b9c39d
--- /dev/null
+++ b/dev-lang/php/files/libressl-compatibility.patch
@@ -0,0 +1,65 @@
+--- a/ext/openssl/openssl.c 2018-04-04 14:26:34.583000000 +0000
++++ b/ext/openssl/openssl.c 2018-04-04 14:20:16.907000000 +0000
+@@ -73,7 +73,7 @@
+ #ifdef HAVE_OPENSSL_MD2_H
+ #define OPENSSL_ALGO_MD2 4
+ #endif
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined (LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
+ #define OPENSSL_ALGO_DSS1 5
+ #endif
+ #define OPENSSL_ALGO_SHA224 6
+@@ -560,7 +560,7 @@
+ #endif
+
+ /* {{{ OpenSSL compatibility functions and macros */
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined (LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
+ #define EVP_PKEY_get0_RSA(_pkey) _pkey->pkey.rsa
+ #define EVP_PKEY_get0_DH(_pkey) _pkey->pkey.dh
+ #define EVP_PKEY_get0_DSA(_pkey) _pkey->pkey.dsa
+@@ -677,7 +677,7 @@
+ return M_ASN1_STRING_data(asn1);
+ }
+
+-#if OPENSSL_VERSION_NUMBER < 0x10002000L || defined (LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER < 0x10002000L || (defined (LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
+
+ static int X509_get_signature_nid(const X509 *x)
+ {
+@@ -1324,7 +1324,7 @@
+ mdtype = (EVP_MD *) EVP_md2();
+ break;
+ #endif
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined (LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
+ case OPENSSL_ALGO_DSS1:
+ mdtype = (EVP_MD *) EVP_dss1();
+ break;
+@@ -1450,7 +1450,7 @@
+ #ifdef HAVE_OPENSSL_MD2_H
+ REGISTER_LONG_CONSTANT("OPENSSL_ALGO_MD2", OPENSSL_ALGO_MD2, CONST_CS|CONST_PERSISTENT);
+ #endif
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined (LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
+ REGISTER_LONG_CONSTANT("OPENSSL_ALGO_DSS1", OPENSSL_ALGO_DSS1, CONST_CS|CONST_PERSISTENT);
+ #endif
+ REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA224", OPENSSL_ALGO_SHA224, CONST_CS|CONST_PERSISTENT);
+@@ -3620,7 +3620,7 @@
+ RETURN_FALSE;
+ }
+
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !(defined (LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
+ /* Due to changes in OpenSSL 1.1 related to locking when decoding CSR,
+ * the pub key is not changed after assigning. It means if we pass
+ * a private key, it will be returned including the private part.
+@@ -3631,7 +3631,7 @@
+ /* Retrieve the public key from the CSR */
+ tpubkey = X509_REQ_get_pubkey(csr);
+
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !(defined (LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
+ /* We need to free the CSR as it was duplicated */
+ X509_REQ_free(csr);
+ #endif
diff --git a/dev-lang/php/files/mbstring-oniguruma-6.8.patch b/dev-lang/php/files/mbstring-oniguruma-6.8.patch
new file mode 100644
index 0000000..c238f88
--- /dev/null
+++ b/dev-lang/php/files/mbstring-oniguruma-6.8.patch
@@ -0,0 +1,30 @@
+From 4072b2787074ee8e247a6639585b49e10c5a55fe Mon Sep 17 00:00:00 2001
+From: "Christoph M. Becker"
+Date: Tue, 20 Mar 2018 16:35:39 +0100
+Subject: [PATCH] Fix #76113: mbstring does not build with Oniguruma 6.8.1
+
+As of Oniguruma 6.8.1, the regex structure has been moved from the
+public `oniguruma.h` to the private `regint.h`. Thus, it is no longer
+possible to directly access the struct's members, and actually, there
+is no need to, since there are respective accessor functions available
+at least of 2.3.1.
+---
+ ext/mbstring/php_mbregex.c | 2 +-
+ 1 file changed, 1 insertions(+), 1 deletion(-)
+
+diff --git a/ext/mbstring/php_mbregex.c b/ext/mbstring/php_mbregex.c
+index a5a6cd0..7a70c63 100644
+--- a/ext/mbstring/php_mbregex.c
++++ b/ext/mbstring/php_mbregex.c
+@@ -452,7 +452,7 @@ static php_mb_regex_t *php_mbregex_compile_pattern(const char *pattern, int patl
+ OnigUChar err_str[ONIG_MAX_ERROR_MESSAGE_LEN];
+
+ rc = zend_hash_str_find_ptr(&MBREX(ht_rc), (char *)pattern, patlen);
+- if (!rc || rc->options != options || rc->enc != enc || rc->syntax != syntax) {
++ if (!rc || onig_get_options(rc) != options || onig_get_encoding(rc) != enc || onig_get_syntax(rc) != syntax) {
+ if ((err_code = onig_new(&retval, (OnigUChar *)pattern, (OnigUChar *)(pattern + patlen), options, enc, syntax, &err_info)) != ONIG_NORMAL) {
+ onig_error_code_to_str(err_str, err_code, &err_info);
+ php_error_docref(NULL, E_WARNING, "mbregex compile err: %s", err_str);
+--
+2.1.4
+
diff --git a/dev-lang/php/files/php-5.6-intl-detect-icu-via-pkg-config.patch b/dev-lang/php/files/php-5.6-intl-detect-icu-via-pkg-config.patch
new file mode 100644
index 0000000..dea2949
--- /dev/null
+++ b/dev-lang/php/files/php-5.6-intl-detect-icu-via-pkg-config.patch
@@ -0,0 +1,154 @@
+Based on the following upstream commits:
+
+https://github.com/php/php-src/commit/9a8e7b571896f39f83cb000fdb7c466b6d328d52
+https://github.com/php/php-src/pull/3701
+https://github.com/php/php-src/commit/2bd299f7318492fd7e5cafffa562d76ba60e69d4
+
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -2201,49 +2201,16 @@ dnl
+ dnl Common setup macro for ICU
+ dnl
+ AC_DEFUN([PHP_SETUP_ICU],[
+- PHP_ARG_WITH(icu-dir,,
+- [ --with-icu-dir=DIR Specify where ICU libraries and headers can be found], DEFAULT, no)
++ PKG_CHECK_MODULES([ICU], [icu-io >= 50.1])
+
+- if test "$PHP_ICU_DIR" = "no"; then
+- PHP_ICU_DIR=DEFAULT
+- fi
+-
+- if test "$PHP_ICU_DIR" = "DEFAULT"; then
+- dnl Try to find icu-config
+- AC_PATH_PROG(ICU_CONFIG, icu-config, no, [$PATH:/usr/local/bin])
+- else
+- ICU_CONFIG="$PHP_ICU_DIR/bin/icu-config"
+- fi
+-
+- AC_MSG_CHECKING([for location of ICU headers and libraries])
+-
+- dnl Trust icu-config to know better what the install prefix is..
+- icu_install_prefix=`$ICU_CONFIG --prefix 2> /dev/null`
+- if test "$?" != "0" || test -z "$icu_install_prefix"; then
+- AC_MSG_RESULT([not found])
+- AC_MSG_ERROR([Unable to detect ICU prefix or $ICU_CONFIG failed. Please verify ICU install prefix and make sure icu-config works.])
+- else
+- AC_MSG_RESULT([$icu_install_prefix])
+-
+- dnl Check ICU version
+- AC_MSG_CHECKING([for ICU 4.0 or greater])
+- icu_version_full=`$ICU_CONFIG --version`
+- ac_IFS=$IFS
+- IFS="."
+- set $icu_version_full
+- IFS=$ac_IFS
+- icu_version=`expr [$]1 \* 1000 + [$]2`
+- AC_MSG_RESULT([found $icu_version_full])
++ PHP_EVAL_INCLINE($ICU_CFLAGS)
++ PHP_EVAL_LIBLINE($ICU_LIBS, $1)
+
+- if test "$icu_version" -lt "4000"; then
+- AC_MSG_ERROR([ICU version 4.0 or later is required])
+- fi
++ ICU_CFLAGS="$ICU_CFLAGS -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1"
++ ICU_CXXFLAGS="$ICU_CXXFLAGS -DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit"
+
+- ICU_VERSION=$icu_version
+- ICU_INCS=`$ICU_CONFIG --cppflags-searchpath`
+- ICU_LIBS=`$ICU_CONFIG --ldflags --ldflags-icuio`
+- PHP_EVAL_INCLINE($ICU_INCS)
+- PHP_EVAL_LIBLINE($ICU_LIBS, $1)
++ if test "$PKG_CONFIG icu-io --atleast-version=60"; then
++ ICU_CFLAGS="$ICU_CFLAGS -DU_HIDE_OBSOLETE_UTF_OLD_H=1"
+ fi
+ ])
+
+--- a/ext/intl/config.m4
++++ b/ext/intl/config.m4
+@@ -9,18 +9,10 @@ if test "$PHP_INTL" != "no"; then
+ PHP_SETUP_ICU(INTL_SHARED_LIBADD)
+ PHP_SUBST(INTL_SHARED_LIBADD)
+ PHP_REQUIRE_CXX()
+- if test "$icu_version" -ge "4002"; then
+- icu_spoof_src=" spoofchecker/spoofchecker_class.c \
+- spoofchecker/spoofchecker.c\
+- spoofchecker/spoofchecker_create.c\
+- spoofchecker/spoofchecker_main.c"
+- else
+- icu_spoof_src=""
+- fi
++ INTL_COMMON_FLAGS="$ICU_CFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
+ PHP_NEW_EXTENSION(intl, php_intl.c \
+ intl_error.c \
+ intl_convert.c \
+- intl_convertcpp.cpp \
+ collator/collator.c \
+ collator/collator_class.c \
+ collator/collator_sort.c \
+@@ -32,8 +24,6 @@ if test "$PHP_INTL" != "no"; then
+ collator/collator_is_numeric.c \
+ collator/collator_error.c \
+ common/common_error.c \
+- common/common_enum.cpp \
+- common/common_date.cpp \
+ converter/converter.c \
+ formatter/formatter.c \
+ formatter/formatter_main.c \
+@@ -53,17 +43,12 @@ if test "$PHP_INTL" != "no"; then
+ dateformat/dateformat_attr.c \
+ dateformat/dateformat_data.c \
+ dateformat/dateformat_format.c \
+- dateformat/dateformat_format_object.cpp \
+ dateformat/dateformat_parse.c \
+- dateformat/dateformat_create.cpp \
+- dateformat/dateformat_attrcpp.cpp \
+- dateformat/dateformat_helpers.cpp \
+ msgformat/msgformat.c \
+ msgformat/msgformat_attr.c \
+ msgformat/msgformat_class.c \
+ msgformat/msgformat_data.c \
+ msgformat/msgformat_format.c \
+- msgformat/msgformat_helpers.cpp \
+ msgformat/msgformat_parse.c \
+ grapheme/grapheme_string.c \
+ grapheme/grapheme_util.c \
+@@ -73,6 +58,20 @@ if test "$PHP_INTL" != "no"; then
+ transliterator/transliterator.c \
+ transliterator/transliterator_class.c \
+ transliterator/transliterator_methods.c \
++ idn/idn.c \
++ spoofchecker/spoofchecker_class.c \
++ spoofchecker/spoofchecker.c\
++ spoofchecker/spoofchecker_create.c\
++ spoofchecker/spoofchecker_main.c, $ext_shared,,$INTL_COMMON_FLAGS,cxx)
++
++ PHP_INTL_CPP_SOURCES="intl_convertcpp.cpp \
++ common/common_enum.cpp \
++ common/common_date.cpp \
++ dateformat/dateformat_format_object.cpp \
++ dateformat/dateformat_create.cpp \
++ dateformat/dateformat_attrcpp.cpp \
++ dateformat/dateformat_helpers.cpp \
++ msgformat/msgformat_helpers.cpp \
+ timezone/timezone_class.cpp \
+ timezone/timezone_methods.cpp \
+ calendar/calendar_class.cpp \
+@@ -83,9 +82,15 @@ if test "$PHP_INTL" != "no"; then
+ breakiterator/breakiterator_methods.cpp \
+ breakiterator/rulebasedbreakiterator_methods.cpp \
+ breakiterator/codepointiterator_internal.cpp \
+- breakiterator/codepointiterator_methods.cpp \
+- idn/idn.c \
+- $icu_spoof_src, $ext_shared,,$ICU_INCS -Wno-write-strings)
++ breakiterator/codepointiterator_methods.cpp"
++
++ PHP_INTL_CPP_FLAGS="$ICU_CXXFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
++ if test "$ext_shared" = "no"; then
++ PHP_ADD_SOURCES(PHP_EXT_DIR(intl), $PHP_INTL_CPP_SOURCES, $PHP_INTL_CPP_FLAGS)
++ else
++ PHP_ADD_SOURCES_X(PHP_EXT_DIR(intl), $PHP_INTL_CPP_SOURCES, $PHP_INTL_CPP_FLAGS, shared_objects_intl, yes)
++ fi
++
+ PHP_ADD_BUILD_DIR($ext_builddir/collator)
+ PHP_ADD_BUILD_DIR($ext_builddir/converter)
+ PHP_ADD_BUILD_DIR($ext_builddir/common)
diff --git a/dev-lang/php/files/php-5.6-intl-icu-memory-corruption.patch b/dev-lang/php/files/php-5.6-intl-icu-memory-corruption.patch
new file mode 100644
index 0000000..1b18f7f
--- /dev/null
+++ b/dev-lang/php/files/php-5.6-intl-icu-memory-corruption.patch
@@ -0,0 +1,88 @@
+Based on the following upstream commits:
+
+https://github.com/php/php-src/commit/45a05f38410d4a67c8c83c09906e2cfb42fc6e4c
+https://github.com/php/php-src/commit/534684d1042978f3c21caf9b665a7aca27f3f325
+
+--- a/ext/intl/msgformat/msgformat_helpers.cpp
++++ b/ext/intl/msgformat/msgformat_helpers.cpp
+@@ -27,6 +27,7 @@
+ #include
+ #include
+ #include
++#include
+
+ #include
+
+@@ -45,6 +46,7 @@ extern "C" {
+
+ #if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 48
+ #define HAS_MESSAGE_PATTERN 1
++#define HAS_MISALLOCATE_MEMORY_BUG 1
+ #endif
+
+ U_NAMESPACE_BEGIN
+@@ -345,6 +347,26 @@ static void umsg_set_timezone(MessageFormatter_object *mfo,
+ return; /* already done */
+ }
+
++#ifdef HAS_MISALLOCATE_MEMORY_BUG
++ /* There is a bug in ICU which prevents MessageFormatter::getFormats()
++ to handle more than 10 formats correctly. The enumerator could be
++ used to walk through the present formatters using getFormat(), which
++ however seems to provide just a readonly access. This workaround
++ prevents crash when there are > 10 formats but doesn't set any error.
++ As a result, only DateFormatters with > 10 subformats are affected.
++ This workaround should be ifdef'd out, when the bug has been fixed
++ in ICU. */
++ icu::StringEnumeration* fnames = mf->getFormatNames(err.code);
++ if (!fnames || U_FAILURE(err.code)) {
++ return;
++ }
++ count = fnames->count(err.code);
++ delete fnames;
++ if (count > 10) {
++ return;
++ }
++#endif
++
+ formats = mf->getFormats(count);
+
+ if (formats == NULL) {
+--- /dev/null
++++ b/ext/intl/tests/bug74484_MessageFormatter.phpt
+@@ -0,0 +1,35 @@
++--TEST--
++Bug #74484 MessageFormatter::formatMessage memory corruption with 11+ named placeholder
++--SKIPIF--
++
++--FILE--
++ 1,
++ 'b' => 2,
++ 'c' => 3,
++ 'd' => 4,
++ 'e' => 5,
++ 'f' => 6,
++ 'g' => 7,
++ 'h' => 8,
++ 'i' => 9,
++ 'j' => 10,
++ 'k' => 11,
++ 'l' => 12
++);
++
++var_dump(MessageFormatter::formatMessage('en_US', $text, $vars));
++
++?>
++==DONE==
++--EXPECT--
++string(26) "1 2 3 4 5 6 7 8 9 10 11 12"
++==DONE==
diff --git a/dev-lang/php/files/php-5.6-intl-use-icu-namespace.patch b/dev-lang/php/files/php-5.6-intl-use-icu-namespace.patch
new file mode 100644
index 0000000..715adb3
--- /dev/null
+++ b/dev-lang/php/files/php-5.6-intl-use-icu-namespace.patch
@@ -0,0 +1,365 @@
+Based on the following upstream commits:
+
+https://github.com/php/php-src/commit/8d35a423838eb462cd39ee535c5d003073cc5f22
+https://github.com/php/php-src/commit/d8200e48857aeaf09f7127751efc5632ef7660a7
+https://github.com/php/php-src/commit/9a8e7b571896f39f83cb000fdb7c466b6d328d52
+
+--- a/ext/intl/breakiterator/breakiterator_class.cpp
++++ b/ext/intl/breakiterator/breakiterator_class.cpp
+@@ -38,6 +38,7 @@ extern "C" {
+ }
+
+ using PHP::CodePointBreakIterator;
++using icu::RuleBasedBreakIterator;
+
+ /* {{{ Global variables */
+ zend_class_entry *BreakIterator_ce_ptr;
+--- a/ext/intl/breakiterator/breakiterator_class.h
++++ b/ext/intl/breakiterator/breakiterator_class.h
+@@ -26,6 +26,8 @@
+
+ #ifndef USE_BREAKITERATOR_POINTER
+ typedef void BreakIterator;
++#else
++using icu::BreakIterator;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/breakiterator/breakiterator_methods.cpp
++++ b/ext/intl/breakiterator/breakiterator_methods.cpp
+@@ -32,6 +32,8 @@ extern "C" {
+ }
+
+ using PHP::CodePointBreakIterator;
++using icu::BreakIterator;
++using icu::Locale;
+
+ U_CFUNC PHP_METHOD(BreakIterator, __construct)
+ {
+--- a/ext/intl/breakiterator/codepointiterator_internal.cpp
++++ b/ext/intl/breakiterator/codepointiterator_internal.cpp
+@@ -31,6 +31,8 @@ typedef union {
+
+ using namespace PHP;
+
++using icu::UCharCharacterIterator;
++
+ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(CodePointBreakIterator);
+
+ CodePointBreakIterator::CodePointBreakIterator()
+--- a/ext/intl/breakiterator/codepointiterator_internal.h
++++ b/ext/intl/breakiterator/codepointiterator_internal.h
+@@ -18,8 +18,11 @@
+ #define CODEPOINTITERATOR_INTERNAL_H
+
+ #include
++#include
+
+-using U_ICU_NAMESPACE::BreakIterator;
++using icu::BreakIterator;
++using icu::CharacterIterator;
++using icu::UnicodeString;
+
+ namespace PHP {
+
+--- a/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
++++ b/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
+@@ -25,6 +25,9 @@ extern "C" {
+
+ #include "../intl_convertcpp.h"
+
++using icu::RuleBasedBreakIterator;
++using icu::Locale;
++
+ static inline RuleBasedBreakIterator *fetch_rbbi(BreakIterator_object *bio) {
+ return (RuleBasedBreakIterator*)bio->biter;
+ }
+--- a/ext/intl/calendar/calendar_class.cpp
++++ b/ext/intl/calendar/calendar_class.cpp
+@@ -34,6 +34,9 @@ extern "C" {
+ #include
+ }
+
++using icu::GregorianCalendar;
++using icu::Locale;
++
+ /* {{{ Global variables */
+ zend_class_entry *Calendar_ce_ptr;
+ zend_class_entry *GregorianCalendar_ce_ptr;
+--- a/ext/intl/calendar/calendar_class.h
++++ b/ext/intl/calendar/calendar_class.h
+@@ -26,6 +26,8 @@
+
+ #ifndef USE_CALENDAR_POINTER
+ typedef void Calendar;
++#else
++using icu::Calendar;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/calendar/calendar_methods.cpp
++++ b/ext/intl/calendar/calendar_methods.cpp
+@@ -40,6 +40,8 @@ extern "C" {
+ }
+ #include "../common/common_enum.h"
+
++using icu::Locale;
++
+ U_CFUNC PHP_METHOD(IntlCalendar, __construct)
+ {
+ zend_throw_exception( NULL,
+--- a/ext/intl/calendar/gregoriancalendar_methods.cpp
++++ b/ext/intl/calendar/gregoriancalendar_methods.cpp
+@@ -23,6 +23,8 @@
+ #include
+ #include
+ #include
++#include
++
+ extern "C" {
+ #include "../php_intl.h"
+ #define USE_TIMEZONE_POINTER 1
+@@ -32,6 +34,11 @@ extern "C" {
+ #include
+ }
+
++using icu::GregorianCalendar;
++using icu::Locale;
++using icu::UnicodeString;
++using icu::StringPiece;
++
+ static inline GregorianCalendar *fetch_greg(Calendar_object *co) {
+ return (GregorianCalendar*)co->ucal;
+ }
+--- a/ext/intl/common/common_date.cpp
++++ b/ext/intl/common/common_date.cpp
+@@ -25,6 +25,9 @@ extern "C" {
+ #include
+ }
+
++using icu::TimeZone;
++using icu::UnicodeString;
++
+ #ifndef INFINITY
+ #define INFINITY (DBL_MAX+DBL_MAX)
+ #endif
+--- a/ext/intl/common/common_date.h
++++ b/ext/intl/common/common_date.h
+@@ -28,6 +28,8 @@ U_CDECL_END
+
+ #include
+
++using icu::TimeZone;
++
+ U_CFUNC TimeZone *timezone_convert_datetimezone(int type, void *object, int is_datetime, intl_error *outside_error, const char *func TSRMLS_DC);
+ U_CFUNC int intl_datetime_decompose(zval *z, double *millis, TimeZone **tz,
+ intl_error *err, const char *func TSRMLS_DC);
+--- a/ext/intl/common/common_enum.h
++++ b/ext/intl/common/common_enum.h
+@@ -69,6 +69,7 @@ U_CFUNC void zoi_with_current_get_current_data(zend_object_iterator *iter, zval
+ U_CFUNC void zoi_with_current_invalidate_current(zend_object_iterator *iter TSRMLS_DC);
+
+ #ifdef __cplusplus
++using icu::StringEnumeration;
+ U_CFUNC void IntlIterator_from_StringEnumeration(StringEnumeration *se, zval *object TSRMLS_DC);
+ #endif
+
+--- a/ext/intl/converter/converter.c
++++ b/ext/intl/converter/converter.c
+@@ -18,6 +18,8 @@
+ #include "zend_exceptions.h"
+
+ #include
++#include
++#include
+ #include
+ #include
+
+--- a/ext/intl/dateformat/dateformat_format_object.cpp
++++ b/ext/intl/dateformat/dateformat_format_object.cpp
+@@ -33,6 +33,12 @@ extern "C" {
+ #include "../common/common_date.h"
+ }
+
++using icu::Locale;
++using icu::DateFormat;
++using icu::GregorianCalendar;
++using icu::StringPiece;
++using icu::SimpleDateFormat;
++
+ static const DateFormat::EStyle valid_styles[] = {
+ DateFormat::kNone,
+ DateFormat::kFull,
+--- a/ext/intl/dateformat/dateformat_helpers.cpp
++++ b/ext/intl/dateformat/dateformat_helpers.cpp
+@@ -28,6 +28,8 @@ extern "C" {
+ #include "../calendar/calendar_class.h"
+ }
+
++using icu::GregorianCalendar;
++
+ int datefmt_process_calendar_arg(zval* calendar_zv,
+ Locale const& locale,
+ const char *func_name,
+--- a/ext/intl/dateformat/dateformat_helpers.h
++++ b/ext/intl/dateformat/dateformat_helpers.h
+@@ -22,11 +22,16 @@
+ #endif
+
+ #include
++#include
+
+ extern "C" {
+ #include "../php_intl.h"
+ }
+
++using icu::Locale;
++using icu::Calendar;
++using icu::DateFormat;
++
+ int datefmt_process_calendar_arg(zval* calendar_zv,
+ Locale const& locale,
+ const char *func_name,
+--- a/ext/intl/grapheme/grapheme_string.c
++++ b/ext/intl/grapheme/grapheme_string.c
+@@ -24,6 +24,7 @@
+ #include "grapheme_util.h"
+
+ #include
++#include
+ #include
+ #include
+ #include
+@@ -860,10 +861,10 @@ PHP_FUNCTION(grapheme_extract)
+ pstr = str + start;
+
+ /* just in case pstr points in the middle of a character, move forward to the start of the next char */
+- if ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
++ if ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
+ unsigned char *str_end = str + str_len;
+
+- while ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
++ while ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
+ pstr++;
+ if ( pstr >= str_end ) {
+ intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
+--- a/ext/intl/intl_convertcpp.h
++++ b/ext/intl/intl_convertcpp.h
+@@ -25,6 +25,8 @@
+
+ #include
+
++using icu::UnicodeString;
++
+ int intl_stringFromChar(UnicodeString &ret, char *str, int32_t str_len, UErrorCode *status);
+
+ int intl_charFromString(const UnicodeString &from, char **res, int *res_len, UErrorCode *status);
+--- a/ext/intl/msgformat/msgformat_helpers.cpp
++++ b/ext/intl/msgformat/msgformat_helpers.cpp
+@@ -76,6 +76,16 @@ MessageFormatAdapter::getMessagePattern(MessageFormat* m) {
+ #endif
+ U_NAMESPACE_END
+
++using icu::Formattable;
++using icu::Format;
++using icu::DateFormat;
++using icu::MessageFormat;
++#ifdef HAS_MESSAGE_PATTERN
++using icu::MessagePattern;
++#endif
++using icu::MessageFormatAdapter;
++using icu::FieldPosition;
++
+ U_CFUNC int32_t umsg_format_arg_count(UMessageFormat *fmt)
+ {
+ int32_t fmt_count = 0;
+@@ -227,15 +237,16 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
+ UnicodeString typeString = mp.getSubstring(type_part);
+ /* This is all based on the rules in the docs for MessageFormat
+ * @see http://icu-project.org/apiref/icu4c/classMessageFormat.html */
+- if (typeString == "number") {
++#define ASCII_LITERAL(s) UNICODE_STRING(s, sizeof(s)-1)
++ if (typeString == ASCII_LITERAL("number")) {
+ MessagePattern::Part style_part = mp.getPart(i + 1); /* Not advancing i */
+ if (style_part.getType() == UMSGPAT_PART_TYPE_ARG_STYLE) {
+ UnicodeString styleString = mp.getSubstring(style_part);
+- if (styleString == "integer") {
++ if (styleString == ASCII_LITERAL("integer")) {
+ type = Formattable::kInt64;
+- } else if (styleString == "currency") {
++ } else if (styleString == ASCII_LITERAL("currency")) {
+ type = Formattable::kDouble;
+- } else if (styleString == "percent") {
++ } else if (styleString == ASCII_LITERAL("percent")) {
+ type = Formattable::kDouble;
+ } else { /* some style invalid/unknown to us */
+ type = Formattable::kDouble;
+@@ -243,12 +254,13 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
+ } else { // if missing style, part, make it a double
+ type = Formattable::kDouble;
+ }
+- } else if ((typeString == "date") || (typeString == "time")) {
++ } else if ((typeString == ASCII_LITERAL("date")) || (typeString == ASCII_LITERAL("time"))) {
+ type = Formattable::kDate;
+- } else if ((typeString == "spellout") || (typeString == "ordinal")
+- || (typeString == "duration")) {
++ } else if ((typeString == ASCII_LITERAL("spellout")) || (typeString == ASCII_LITERAL("ordinal"))
++ || (typeString == ASCII_LITERAL("duration"))) {
+ type = Formattable::kDouble;
+ }
++#undef ASCII_LITERAL
+ } else {
+ /* If there's no UMSGPAT_PART_TYPE_ARG_TYPE right after a
+ * UMSGPAT_ARG_TYPE_SIMPLE argument, then the pattern
+--- a/ext/intl/normalizer/normalizer_normalize.c
++++ b/ext/intl/normalizer/normalizer_normalize.c
+@@ -24,6 +24,7 @@
+ #include "normalizer_class.h"
+ #include "normalizer_normalize.h"
+ #include "intl_convert.h"
++#include
+
+ /* {{{ proto string Normalizer::normalize( string $input [, string $form = FORM_C] )
+ * Normalize a string. }}} */
+--- a/ext/intl/timezone/timezone_class.cpp
++++ b/ext/intl/timezone/timezone_class.cpp
+@@ -37,6 +37,8 @@ extern "C" {
+ #include
+ }
+
++using icu::Calendar;
++
+ /* {{{ Global variables */
+ U_CDECL_BEGIN
+ zend_class_entry *TimeZone_ce_ptr = NULL;
+--- a/ext/intl/timezone/timezone_class.h
++++ b/ext/intl/timezone/timezone_class.h
+@@ -29,6 +29,8 @@
+
+ #ifndef USE_TIMEZONE_POINTER
+ typedef void TimeZone;
++#else
++using icu::TimeZone;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/timezone/timezone_methods.cpp
++++ b/ext/intl/timezone/timezone_methods.cpp
+@@ -23,6 +23,7 @@
+ #include
+ #include
+ #include
++#include
+ #include "intl_convertcpp.h"
+
+ #include "../common/common_date.h"
+@@ -37,6 +38,9 @@ extern "C" {
+ }
+ #include "common/common_enum.h"
+
++using icu::Locale;
++using icu::Calendar;
++
+ U_CFUNC PHP_METHOD(IntlTimeZone, __construct)
+ {
+ zend_throw_exception( NULL,
diff --git a/dev-lang/php/files/php-5.6-no-bison-warnings.patch b/dev-lang/php/files/php-5.6-no-bison-warnings.patch
new file mode 100644
index 0000000..1896659
--- /dev/null
+++ b/dev-lang/php/files/php-5.6-no-bison-warnings.patch
@@ -0,0 +1,42 @@
+From d3466a04345b31dfc62d94fe994b40321a6418ec Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky
+Date: Thu, 29 Sep 2016 15:43:06 -0400
+Subject: [PATCH 1/1] Zend/acinclude.m4: don't warn about >=bison-3.0.1
+ versions.
+
+The PHP configure script will emit a warning if it thinks your bison
+version is insufficient:
+
+ WARNING: This bison version is not supported for regeneration of
+ the Zend/PHP parsers (found: 3.0, min: 204, excluded: 3.0).
+
+However, there is an error in the test that causes it to treat all
+3.0.x versions as if they were 3.0. The result is that users get
+warned about a perfectly acceptable version of bison.
+
+This patch is meant only for Gentoo, where we can require a working
+version of bison (something newer than 3.0.1). Having done so, this
+patch removes the check and the WARNING.
+
+Gentoo-Bug: 593278
+PHP-Bug: 69055
+---
+ Zend/acinclude.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Zend/acinclude.m4 b/Zend/acinclude.m4
+index 7fa8c99..9d6cb1d 100644
+--- a/Zend/acinclude.m4
++++ b/Zend/acinclude.m4
+@@ -9,7 +9,7 @@ AC_DEFUN([LIBZEND_BISON_CHECK],[
+ # non-working versions, e.g. "3.0 3.2";
+ # remove "none" when introducing the first incompatible bison version an
+ # separate any following additions by spaces
+- bison_version_exclude="3.0"
++ bison_version_exclude=""
+
+ # for standalone build of Zend Engine
+ test -z "$SED" && SED=sed
+--
+2.7.3
+
diff --git a/dev-lang/php/files/php-7.0.33-intl-detect-icu-via-pkg-config.patch b/dev-lang/php/files/php-7.0.33-intl-detect-icu-via-pkg-config.patch
new file mode 100644
index 0000000..d23ec91
--- /dev/null
+++ b/dev-lang/php/files/php-7.0.33-intl-detect-icu-via-pkg-config.patch
@@ -0,0 +1,159 @@
+Based on the following upstream commits:
+
+https://github.com/php/php-src/commit/9a8e7b571896f39f83cb000fdb7c466b6d328d52
+https://github.com/php/php-src/pull/3701
+https://github.com/php/php-src/commit/2bd299f7318492fd7e5cafffa562d76ba60e69d4
+
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -2205,49 +2205,16 @@ dnl
+ dnl Common setup macro for ICU
+ dnl
+ AC_DEFUN([PHP_SETUP_ICU],[
+- PHP_ARG_WITH(icu-dir,,
+- [ --with-icu-dir=DIR Specify where ICU libraries and headers can be found], DEFAULT, no)
++ PKG_CHECK_MODULES([ICU], [icu-io >= 50.1])
+
+- if test "$PHP_ICU_DIR" = "no"; then
+- PHP_ICU_DIR=DEFAULT
+- fi
+-
+- if test "$PHP_ICU_DIR" = "DEFAULT"; then
+- dnl Try to find icu-config
+- AC_PATH_PROG(ICU_CONFIG, icu-config, no, [$PATH:/usr/local/bin])
+- else
+- ICU_CONFIG="$PHP_ICU_DIR/bin/icu-config"
+- fi
+-
+- AC_MSG_CHECKING([for location of ICU headers and libraries])
+-
+- dnl Trust icu-config to know better what the install prefix is..
+- icu_install_prefix=`$ICU_CONFIG --prefix 2> /dev/null`
+- if test "$?" != "0" || test -z "$icu_install_prefix"; then
+- AC_MSG_RESULT([not found])
+- AC_MSG_ERROR([Unable to detect ICU prefix or $ICU_CONFIG failed. Please verify ICU install prefix and make sure icu-config works.])
+- else
+- AC_MSG_RESULT([$icu_install_prefix])
+-
+- dnl Check ICU version
+- AC_MSG_CHECKING([for ICU 4.0 or greater])
+- icu_version_full=`$ICU_CONFIG --version`
+- ac_IFS=$IFS
+- IFS="."
+- set $icu_version_full
+- IFS=$ac_IFS
+- icu_version=`expr [$]1 \* 1000 + [$]2`
+- AC_MSG_RESULT([found $icu_version_full])
++ PHP_EVAL_INCLINE($ICU_CFLAGS)
++ PHP_EVAL_LIBLINE($ICU_LIBS, $1)
+
+- if test "$icu_version" -lt "4000"; then
+- AC_MSG_ERROR([ICU version 4.0 or later is required])
+- fi
++ ICU_CFLAGS="$ICU_CFLAGS -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1"
++ ICU_CXXFLAGS="$ICU_CXXFLAGS -DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit"
+
+- ICU_VERSION=$icu_version
+- ICU_INCS=`$ICU_CONFIG --cppflags-searchpath`
+- ICU_LIBS=`$ICU_CONFIG --ldflags --ldflags-icuio`
+- PHP_EVAL_INCLINE($ICU_INCS)
+- PHP_EVAL_LIBLINE($ICU_LIBS, $1)
++ if test "$PKG_CONFIG icu-io --atleast-version=60"; then
++ ICU_CFLAGS="$ICU_CFLAGS -DU_HIDE_OBSOLETE_UTF_OLD_H=1"
+ fi
+ ])
+
+--- a/ext/intl/config.m4
++++ b/ext/intl/config.m4
+@@ -9,18 +9,10 @@ if test "$PHP_INTL" != "no"; then
+ PHP_SETUP_ICU(INTL_SHARED_LIBADD)
+ PHP_SUBST(INTL_SHARED_LIBADD)
+ PHP_REQUIRE_CXX()
+- if test "$icu_version" -ge "4002"; then
+- icu_spoof_src=" spoofchecker/spoofchecker_class.c \
+- spoofchecker/spoofchecker.c\
+- spoofchecker/spoofchecker_create.c\
+- spoofchecker/spoofchecker_main.c"
+- else
+- icu_spoof_src=""
+- fi
++ INTL_COMMON_FLAGS="$ICU_CFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
+ PHP_NEW_EXTENSION(intl, php_intl.c \
+ intl_error.c \
+ intl_convert.c \
+- intl_convertcpp.cpp \
+ collator/collator.c \
+ collator/collator_class.c \
+ collator/collator_sort.c \
+@@ -32,8 +24,6 @@ if test "$PHP_INTL" != "no"; then
+ collator/collator_is_numeric.c \
+ collator/collator_error.c \
+ common/common_error.c \
+- common/common_enum.cpp \
+- common/common_date.cpp \
+ converter/converter.c \
+ formatter/formatter.c \
+ formatter/formatter_main.c \
+@@ -53,17 +43,12 @@ if test "$PHP_INTL" != "no"; then
+ dateformat/dateformat_attr.c \
+ dateformat/dateformat_data.c \
+ dateformat/dateformat_format.c \
+- dateformat/dateformat_format_object.cpp \
+ dateformat/dateformat_parse.c \
+- dateformat/dateformat_create.cpp \
+- dateformat/dateformat_attrcpp.cpp \
+- dateformat/dateformat_helpers.cpp \
+ msgformat/msgformat.c \
+ msgformat/msgformat_attr.c \
+ msgformat/msgformat_class.c \
+ msgformat/msgformat_data.c \
+ msgformat/msgformat_format.c \
+- msgformat/msgformat_helpers.cpp \
+ msgformat/msgformat_parse.c \
+ grapheme/grapheme_string.c \
+ grapheme/grapheme_util.c \
+@@ -73,6 +58,21 @@ if test "$PHP_INTL" != "no"; then
+ transliterator/transliterator.c \
+ transliterator/transliterator_class.c \
+ transliterator/transliterator_methods.c \
++ uchar/uchar.c \
++ idn/idn.c \
++ spoofchecker/spoofchecker_class.c \
++ spoofchecker/spoofchecker.c\
++ spoofchecker/spoofchecker_create.c\
++ spoofchecker/spoofchecker_main.c, $ext_shared,,$INTL_COMMON_FLAGS,cxx)
++
++ PHP_INTL_CPP_SOURCES="intl_convertcpp.cpp \
++ common/common_enum.cpp \
++ common/common_date.cpp \
++ dateformat/dateformat_format_object.cpp \
++ dateformat/dateformat_create.cpp \
++ dateformat/dateformat_attrcpp.cpp \
++ dateformat/dateformat_helpers.cpp \
++ msgformat/msgformat_helpers.cpp \
+ timezone/timezone_class.cpp \
+ timezone/timezone_methods.cpp \
+ calendar/calendar_class.cpp \
+@@ -83,10 +83,15 @@ if test "$PHP_INTL" != "no"; then
+ breakiterator/breakiterator_methods.cpp \
+ breakiterator/rulebasedbreakiterator_methods.cpp \
+ breakiterator/codepointiterator_internal.cpp \
+- breakiterator/codepointiterator_methods.cpp \
+- uchar/uchar.c \
+- idn/idn.c \
+- $icu_spoof_src, $ext_shared,,$ICU_INCS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1,cxx)
++ breakiterator/codepointiterator_methods.cpp"
++
++ PHP_INTL_CPP_FLAGS="$ICU_CXXFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
++ if test "$ext_shared" = "no"; then
++ PHP_ADD_SOURCES(PHP_EXT_DIR(intl), $PHP_INTL_CPP_SOURCES, $PHP_INTL_CPP_FLAGS)
++ else
++ PHP_ADD_SOURCES_X(PHP_EXT_DIR(intl), $PHP_INTL_CPP_SOURCES, $PHP_INTL_CPP_FLAGS, shared_objects_intl, yes)
++ fi
++
+ PHP_ADD_BUILD_DIR($ext_builddir/collator)
+ PHP_ADD_BUILD_DIR($ext_builddir/converter)
+ PHP_ADD_BUILD_DIR($ext_builddir/common)
+--
+2.19.2
+
diff --git a/dev-lang/php/files/php-7.0.33-intl-icu-memory-corruption.patch b/dev-lang/php/files/php-7.0.33-intl-icu-memory-corruption.patch
new file mode 100644
index 0000000..e6e7f59
--- /dev/null
+++ b/dev-lang/php/files/php-7.0.33-intl-icu-memory-corruption.patch
@@ -0,0 +1,91 @@
+Based on the following upstream commits:
+
+https://github.com/php/php-src/commit/45a05f38410d4a67c8c83c09906e2cfb42fc6e4c
+https://github.com/php/php-src/commit/534684d1042978f3c21caf9b665a7aca27f3f325
+
+--- a/ext/intl/msgformat/msgformat_helpers.cpp
++++ b/ext/intl/msgformat/msgformat_helpers.cpp
+@@ -27,6 +27,7 @@
+ #include
+ #include
+ #include
++#include
+
+ #include
+
+@@ -45,6 +46,7 @@ extern "C" {
+
+ #if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 48
+ #define HAS_MESSAGE_PATTERN 1
++#define HAS_MISALLOCATE_MEMORY_BUG 1
+ #endif
+
+ U_NAMESPACE_BEGIN
+@@ -345,6 +347,26 @@ static void umsg_set_timezone(MessageFormatter_object *mfo,
+ return; /* already done */
+ }
+
++#ifdef HAS_MISALLOCATE_MEMORY_BUG
++ /* There is a bug in ICU which prevents MessageFormatter::getFormats()
++ to handle more than 10 formats correctly. The enumerator could be
++ used to walk through the present formatters using getFormat(), which
++ however seems to provide just a readonly access. This workaround
++ prevents crash when there are > 10 formats but doesn't set any error.
++ As a result, only DateFormatters with > 10 subformats are affected.
++ This workaround should be ifdef'd out, when the bug has been fixed
++ in ICU. */
++ icu::StringEnumeration* fnames = mf->getFormatNames(err.code);
++ if (!fnames || U_FAILURE(err.code)) {
++ return;
++ }
++ count = fnames->count(err.code);
++ delete fnames;
++ if (count > 10) {
++ return;
++ }
++#endif
++
+ formats = mf->getFormats(count);
+
+ if (formats == NULL) {
+--- /dev/null
++++ b/ext/intl/tests/bug74484_MessageFormatter.phpt
+@@ -0,0 +1,35 @@
++--TEST--
++Bug #74484 MessageFormatter::formatMessage memory corruption with 11+ named placeholder
++--SKIPIF--
++
++--FILE--
++ 1,
++ 'b' => 2,
++ 'c' => 3,
++ 'd' => 4,
++ 'e' => 5,
++ 'f' => 6,
++ 'g' => 7,
++ 'h' => 8,
++ 'i' => 9,
++ 'j' => 10,
++ 'k' => 11,
++ 'l' => 12
++);
++
++var_dump(MessageFormatter::formatMessage('en_US', $text, $vars));
++
++?>
++==DONE==
++--EXPECT--
++string(26) "1 2 3 4 5 6 7 8 9 10 11 12"
++==DONE==
+--
+2.19.2
+
diff --git a/dev-lang/php/files/php-7.0.33-intl-use-icu-namespace.patch b/dev-lang/php/files/php-7.0.33-intl-use-icu-namespace.patch
new file mode 100644
index 0000000..4b25abe
--- /dev/null
+++ b/dev-lang/php/files/php-7.0.33-intl-use-icu-namespace.patch
@@ -0,0 +1,369 @@
+Based on the following upstream commits:
+
+https://github.com/php/php-src/commit/8d35a423838eb462cd39ee535c5d003073cc5f22
+https://github.com/php/php-src/commit/d8200e48857aeaf09f7127751efc5632ef7660a7
+https://github.com/php/php-src/commit/9a8e7b571896f39f83cb000fdb7c466b6d328d52
+
+--- a/ext/intl/breakiterator/breakiterator_class.cpp
++++ b/ext/intl/breakiterator/breakiterator_class.cpp
+@@ -38,6 +38,7 @@ extern "C" {
+ }
+
+ using PHP::CodePointBreakIterator;
++using icu::RuleBasedBreakIterator;
+
+ /* {{{ Global variables */
+ zend_class_entry *BreakIterator_ce_ptr;
+--- a/ext/intl/breakiterator/breakiterator_class.h
++++ b/ext/intl/breakiterator/breakiterator_class.h
+@@ -26,6 +26,8 @@
+
+ #ifndef USE_BREAKITERATOR_POINTER
+ typedef void BreakIterator;
++#else
++using icu::BreakIterator;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/breakiterator/breakiterator_methods.cpp
++++ b/ext/intl/breakiterator/breakiterator_methods.cpp
+@@ -32,6 +32,8 @@ extern "C" {
+ }
+
+ using PHP::CodePointBreakIterator;
++using icu::BreakIterator;
++using icu::Locale;
+
+ U_CFUNC PHP_METHOD(BreakIterator, __construct)
+ {
+--- a/ext/intl/breakiterator/codepointiterator_internal.cpp
++++ b/ext/intl/breakiterator/codepointiterator_internal.cpp
+@@ -33,6 +33,8 @@ typedef union {
+
+ using namespace PHP;
+
++using icu::UCharCharacterIterator;
++
+ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(CodePointBreakIterator);
+
+ CodePointBreakIterator::CodePointBreakIterator()
+--- a/ext/intl/breakiterator/codepointiterator_internal.h
++++ b/ext/intl/breakiterator/codepointiterator_internal.h
+@@ -18,8 +18,11 @@
+ #define CODEPOINTITERATOR_INTERNAL_H
+
+ #include
++#include
+
+-using U_ICU_NAMESPACE::BreakIterator;
++using icu::BreakIterator;
++using icu::CharacterIterator;
++using icu::UnicodeString;
+
+ namespace PHP {
+
+--- a/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
++++ b/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
+@@ -26,6 +26,9 @@ extern "C" {
+ #include "../intl_convertcpp.h"
+ #include "../intl_common.h"
+
++using icu::RuleBasedBreakIterator;
++using icu::Locale;
++
+ static inline RuleBasedBreakIterator *fetch_rbbi(BreakIterator_object *bio) {
+ return (RuleBasedBreakIterator*)bio->biter;
+ }
+--- a/ext/intl/calendar/calendar_class.cpp
++++ b/ext/intl/calendar/calendar_class.cpp
+@@ -34,6 +34,9 @@ extern "C" {
+ #include
+ }
+
++using icu::GregorianCalendar;
++using icu::Locale;
++
+ /* {{{ Global variables */
+ zend_class_entry *Calendar_ce_ptr;
+ zend_class_entry *GregorianCalendar_ce_ptr;
+--- a/ext/intl/calendar/calendar_class.h
++++ b/ext/intl/calendar/calendar_class.h
+@@ -26,6 +26,8 @@
+
+ #ifndef USE_CALENDAR_POINTER
+ typedef void Calendar;
++#else
++using icu::Calendar;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/calendar/calendar_methods.cpp
++++ b/ext/intl/calendar/calendar_methods.cpp
+@@ -40,6 +40,8 @@ extern "C" {
+ }
+ #include "../common/common_enum.h"
+
++using icu::Locale;
++
+ U_CFUNC PHP_METHOD(IntlCalendar, __construct)
+ {
+ zend_throw_exception( NULL,
+--- a/ext/intl/calendar/gregoriancalendar_methods.cpp
++++ b/ext/intl/calendar/gregoriancalendar_methods.cpp
+@@ -23,6 +23,8 @@
+ #include
+ #include
+ #include
++#include
++
+ extern "C" {
+ #include "../php_intl.h"
+ #include "../intl_common.h"
+@@ -34,6 +36,11 @@ extern "C" {
+ #include "zend_exceptions.h"
+ }
+
++using icu::GregorianCalendar;
++using icu::Locale;
++using icu::UnicodeString;
++using icu::StringPiece;
++
+ static inline GregorianCalendar *fetch_greg(Calendar_object *co) {
+ return (GregorianCalendar*)co->ucal;
+ }
+--- a/ext/intl/common/common_date.cpp
++++ b/ext/intl/common/common_date.cpp
+@@ -25,6 +25,9 @@ extern "C" {
+ #include
+ }
+
++using icu::TimeZone;
++using icu::UnicodeString;
++
+ #ifndef INFINITY
+ #define INFINITY (DBL_MAX+DBL_MAX)
+ #endif
+--- a/ext/intl/common/common_date.h
++++ b/ext/intl/common/common_date.h
+@@ -28,6 +28,8 @@ U_CDECL_END
+
+ #include
+
++using icu::TimeZone;
++
+ U_CFUNC TimeZone *timezone_convert_datetimezone(int type, void *object, int is_datetime, intl_error *outside_error, const char *func);
+ U_CFUNC int intl_datetime_decompose(zval *z, double *millis, TimeZone **tz,
+ intl_error *err, const char *func);
+--- a/ext/intl/common/common_enum.h
++++ b/ext/intl/common/common_enum.h
+@@ -75,6 +75,7 @@ U_CFUNC zval *zoi_with_current_get_current_data(zend_object_iterator *iter);
+ U_CFUNC void zoi_with_current_invalidate_current(zend_object_iterator *iter);
+
+ #ifdef __cplusplus
++using icu::StringEnumeration;
+ U_CFUNC void IntlIterator_from_StringEnumeration(StringEnumeration *se, zval *object);
+ #endif
+
+--- a/ext/intl/converter/converter.c
++++ b/ext/intl/converter/converter.c
+@@ -18,6 +18,8 @@
+ #include "zend_exceptions.h"
+
+ #include
++#include
++#include
+ #include
+ #include
+
+--- a/ext/intl/dateformat/dateformat_format_object.cpp
++++ b/ext/intl/dateformat/dateformat_format_object.cpp
+@@ -33,6 +33,12 @@ extern "C" {
+ #include "../common/common_date.h"
+ }
+
++using icu::Locale;
++using icu::DateFormat;
++using icu::GregorianCalendar;
++using icu::StringPiece;
++using icu::SimpleDateFormat;
++
+ static const DateFormat::EStyle valid_styles[] = {
+ DateFormat::kNone,
+ DateFormat::kFull,
+--- a/ext/intl/dateformat/dateformat_helpers.cpp
++++ b/ext/intl/dateformat/dateformat_helpers.cpp
+@@ -28,6 +28,8 @@ extern "C" {
+ #include "../calendar/calendar_class.h"
+ }
+
++using icu::GregorianCalendar;
++
+ int datefmt_process_calendar_arg(zval* calendar_zv,
+ Locale const& locale,
+ const char *func_name,
+--- a/ext/intl/dateformat/dateformat_helpers.h
++++ b/ext/intl/dateformat/dateformat_helpers.h
+@@ -22,11 +22,16 @@
+ #endif
+
+ #include
++#include
+
+ extern "C" {
+ #include "../php_intl.h"
+ }
+
++using icu::Locale;
++using icu::Calendar;
++using icu::DateFormat;
++
+ int datefmt_process_calendar_arg(zval* calendar_zv,
+ Locale const& locale,
+ const char *func_name,
+--- a/ext/intl/grapheme/grapheme_string.c
++++ b/ext/intl/grapheme/grapheme_string.c
+@@ -24,6 +24,7 @@
+ #include "grapheme_util.h"
+
+ #include
++#include
+ #include
+ #include
+ #include
+@@ -831,10 +832,10 @@ PHP_FUNCTION(grapheme_extract)
+ pstr = str + start;
+
+ /* just in case pstr points in the middle of a character, move forward to the start of the next char */
+- if ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
+- char *str_end = str + str_len;
++ if ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
++ unsigned char *str_end = str + str_len;
+
+- while ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
++ while ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
+ pstr++;
+ if ( pstr >= str_end ) {
+ intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
+--- a/ext/intl/intl_convertcpp.h
++++ b/ext/intl/intl_convertcpp.h
+@@ -26,6 +26,8 @@
+ #include
+ #include
+
++using icu::UnicodeString;
++
+ int intl_stringFromChar(UnicodeString &ret, char *str, size_t str_len, UErrorCode *status);
+
+ zend_string* intl_charFromString(const UnicodeString &from, UErrorCode *status);
+--- a/ext/intl/msgformat/msgformat_helpers.cpp
++++ b/ext/intl/msgformat/msgformat_helpers.cpp
+@@ -76,6 +76,16 @@ MessageFormatAdapter::getMessagePattern(MessageFormat* m) {
+ #endif
+ U_NAMESPACE_END
+
++using icu::Formattable;
++using icu::Format;
++using icu::DateFormat;
++using icu::MessageFormat;
++#ifdef HAS_MESSAGE_PATTERN
++using icu::MessagePattern;
++#endif
++using icu::MessageFormatAdapter;
++using icu::FieldPosition;
++
+ U_CFUNC int32_t umsg_format_arg_count(UMessageFormat *fmt)
+ {
+ int32_t fmt_count = 0;
+@@ -227,15 +237,16 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
+ UnicodeString typeString = mp.getSubstring(type_part);
+ /* This is all based on the rules in the docs for MessageFormat
+ * @see http://icu-project.org/apiref/icu4c/classMessageFormat.html */
+- if (typeString == "number") {
++#define ASCII_LITERAL(s) UNICODE_STRING(s, sizeof(s)-1)
++ if (typeString == ASCII_LITERAL("number")) {
+ MessagePattern::Part style_part = mp.getPart(i + 1); /* Not advancing i */
+ if (style_part.getType() == UMSGPAT_PART_TYPE_ARG_STYLE) {
+ UnicodeString styleString = mp.getSubstring(style_part);
+- if (styleString == "integer") {
++ if (styleString == ASCII_LITERAL("integer")) {
+ type = Formattable::kInt64;
+- } else if (styleString == "currency") {
++ } else if (styleString == ASCII_LITERAL("currency")) {
+ type = Formattable::kDouble;
+- } else if (styleString == "percent") {
++ } else if (styleString == ASCII_LITERAL("percent")) {
+ type = Formattable::kDouble;
+ } else { /* some style invalid/unknown to us */
+ type = Formattable::kDouble;
+@@ -243,12 +254,13 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
+ } else { // if missing style, part, make it a double
+ type = Formattable::kDouble;
+ }
+- } else if ((typeString == "date") || (typeString == "time")) {
++ } else if ((typeString == ASCII_LITERAL("date")) || (typeString == ASCII_LITERAL("time"))) {
+ type = Formattable::kDate;
+- } else if ((typeString == "spellout") || (typeString == "ordinal")
+- || (typeString == "duration")) {
++ } else if ((typeString == ASCII_LITERAL("spellout")) || (typeString == ASCII_LITERAL("ordinal"))
++ || (typeString == ASCII_LITERAL("duration"))) {
+ type = Formattable::kDouble;
+ }
++#undef ASCII_LITERAL
+ } else {
+ /* If there's no UMSGPAT_PART_TYPE_ARG_TYPE right after a
+ * UMSGPAT_ARG_TYPE_SIMPLE argument, then the pattern
+--- a/ext/intl/normalizer/normalizer_normalize.c
++++ b/ext/intl/normalizer/normalizer_normalize.c
+@@ -24,6 +24,7 @@
+ #include "normalizer_class.h"
+ #include "normalizer_normalize.h"
+ #include "intl_convert.h"
++#include
+
+ /* {{{ proto string Normalizer::normalize( string $input [, string $form = FORM_C] )
+ * Normalize a string. }}} */
+--- a/ext/intl/timezone/timezone_class.cpp
++++ b/ext/intl/timezone/timezone_class.cpp
+@@ -37,6 +37,8 @@ extern "C" {
+ #include
+ }
+
++using icu::Calendar;
++
+ /* {{{ Global variables */
+ U_CDECL_BEGIN
+ zend_class_entry *TimeZone_ce_ptr = NULL;
+--- a/ext/intl/timezone/timezone_class.h
++++ b/ext/intl/timezone/timezone_class.h
+@@ -29,6 +29,8 @@
+
+ #ifndef USE_TIMEZONE_POINTER
+ typedef void TimeZone;
++#else
++using icu::TimeZone;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/timezone/timezone_methods.cpp
++++ b/ext/intl/timezone/timezone_methods.cpp
+@@ -23,6 +23,7 @@
+ #include
+ #include
+ #include
++#include
+ #include "intl_convertcpp.h"
+
+ #include "../common/common_date.h"
+@@ -37,6 +38,9 @@ extern "C" {
+ }
+ #include "common/common_enum.h"
+
++using icu::Locale;
++using icu::Calendar;
++
+ U_CFUNC PHP_METHOD(IntlTimeZone, __construct)
+ {
+ zend_throw_exception( NULL,
+--
+2.19.2
+
diff --git a/dev-lang/php/files/php-7.1.25-intl-detect-icu-via-pkg-config.patch b/dev-lang/php/files/php-7.1.25-intl-detect-icu-via-pkg-config.patch
new file mode 100644
index 0000000..2d4254d
--- /dev/null
+++ b/dev-lang/php/files/php-7.1.25-intl-detect-icu-via-pkg-config.patch
@@ -0,0 +1,121 @@
+Based on the following upstream commits:
+
+https://github.com/php/php-src/commit/9a8e7b571896f39f83cb000fdb7c466b6d328d52
+https://github.com/php/php-src/pull/3701
+https://github.com/php/php-src/commit/2bd299f7318492fd7e5cafffa562d76ba60e69d4
+
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -2205,52 +2205,16 @@ dnl
+ dnl Common setup macro for ICU
+ dnl
+ AC_DEFUN([PHP_SETUP_ICU],[
+- PHP_ARG_WITH(icu-dir,,
+- [ --with-icu-dir=DIR Specify where ICU libraries and headers can be found], DEFAULT, no)
++ PKG_CHECK_MODULES([ICU], [icu-io >= 50.1])
+
+- if test "$PHP_ICU_DIR" = "no"; then
+- PHP_ICU_DIR=DEFAULT
+- fi
+-
+- if test "$PHP_ICU_DIR" = "DEFAULT"; then
+- dnl Try to find icu-config
+- AC_PATH_PROG(ICU_CONFIG, icu-config, no, [$PATH:/usr/local/bin])
+- else
+- ICU_CONFIG="$PHP_ICU_DIR/bin/icu-config"
+- fi
+-
+- AC_MSG_CHECKING([for location of ICU headers and libraries])
+-
+- dnl Trust icu-config to know better what the install prefix is..
+- icu_install_prefix=`$ICU_CONFIG --prefix 2> /dev/null`
+- if test "$?" != "0" || test -z "$icu_install_prefix"; then
+- AC_MSG_RESULT([not found])
+- AC_MSG_ERROR([Unable to detect ICU prefix or $ICU_CONFIG failed. Please verify ICU install prefix and make sure icu-config works.])
+- else
+- AC_MSG_RESULT([$icu_install_prefix])
+-
+- dnl Check ICU version
+- AC_MSG_CHECKING([for ICU 4.0 or greater])
+- icu_version_full=`$ICU_CONFIG --version`
+- ac_IFS=$IFS
+- IFS="."
+- set $icu_version_full
+- IFS=$ac_IFS
+- icu_version=`expr [$]1 \* 1000 + [$]2`
+- AC_MSG_RESULT([found $icu_version_full])
+-
+- if test "$icu_version" -lt "4000"; then
+- AC_MSG_ERROR([ICU version 4.0 or later is required])
+- fi
++ PHP_EVAL_INCLINE($ICU_CFLAGS)
++ PHP_EVAL_LIBLINE($ICU_LIBS, $1)
+
+- ICU_VERSION=$icu_version
+- ICU_INCS=`$ICU_CONFIG --cppflags-searchpath`
+- ICU_LIBS=`$ICU_CONFIG --ldflags --ldflags-icuio`
+- PHP_EVAL_INCLINE($ICU_INCS)
+- PHP_EVAL_LIBLINE($ICU_LIBS, $1)
++ ICU_CFLAGS="$ICU_CFLAGS -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1"
++ ICU_CXXFLAGS="$ICU_CXXFLAGS -DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit"
+
+- ICU_CXXFLAGS=`$ICU_CONFIG --cxxflags`
+- ICU_CXXFLAGS="$ICU_CXXFLAGS -DU_USING_ICU_NAMESPACE=1"
++ if test "$PKG_CONFIG icu-io --atleast-version=60"; then
++ ICU_CFLAGS="$ICU_CFLAGS -DU_HIDE_OBSOLETE_UTF_OLD_H=1"
+ fi
+ ])
+
+--- a/ext/intl/config.m4
++++ b/ext/intl/config.m4
+@@ -9,15 +9,7 @@ if test "$PHP_INTL" != "no"; then
+ PHP_SETUP_ICU(INTL_SHARED_LIBADD)
+ PHP_SUBST(INTL_SHARED_LIBADD)
+ PHP_REQUIRE_CXX()
+- INTL_COMMON_FLAGS="$ICU_INCS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
+- if test "$icu_version" -ge "4002"; then
+- icu_spoof_src=" spoofchecker/spoofchecker_class.c \
+- spoofchecker/spoofchecker.c\
+- spoofchecker/spoofchecker_create.c\
+- spoofchecker/spoofchecker_main.c"
+- else
+- icu_spoof_src=""
+- fi
++ INTL_COMMON_FLAGS="$ICU_CFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
+ PHP_NEW_EXTENSION(intl, php_intl.c \
+ intl_error.c \
+ intl_convert.c \
+@@ -68,9 +60,12 @@ if test "$PHP_INTL" != "no"; then
+ transliterator/transliterator_methods.c \
+ uchar/uchar.c \
+ idn/idn.c \
+- $icu_spoof_src, $ext_shared,,$INTL_COMMON_FLAGS,cxx)
++ spoofchecker/spoofchecker_class.c \
++ spoofchecker/spoofchecker.c\
++ spoofchecker/spoofchecker_create.c\
++ spoofchecker/spoofchecker_main.c, $ext_shared,,$INTL_COMMON_FLAGS,cxx)
+
+- PHP_INTL_CXX_SOURCES="intl_convertcpp.cpp \
++ PHP_INTL_CPP_SOURCES="intl_convertcpp.cpp \
+ common/common_enum.cpp \
+ common/common_date.cpp \
+ dateformat/dateformat_format_object.cpp \
+@@ -89,11 +84,12 @@ if test "$PHP_INTL" != "no"; then
+ breakiterator/rulebasedbreakiterator_methods.cpp \
+ breakiterator/codepointiterator_internal.cpp \
+ breakiterator/codepointiterator_methods.cpp"
+- PHP_INTL_CXX_FLAGS="$INTL_COMMON_FLAGS $ICU_CXXFLAGS"
++
++ PHP_INTL_CPP_FLAGS="$ICU_CXXFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
+ if test "$ext_shared" = "no"; then
+- PHP_ADD_SOURCES(PHP_EXT_DIR(intl), $PHP_INTL_CXX_SOURCES, $PHP_INTL_CXX_FLAGS)
++ PHP_ADD_SOURCES(PHP_EXT_DIR(intl), $PHP_INTL_CPP_SOURCES, $PHP_INTL_CPP_FLAGS)
+ else
+- PHP_ADD_SOURCES_X(PHP_EXT_DIR(intl), $PHP_INTL_CXX_SOURCES, $PHP_INTL_CXX_FLAGS, shared_objects_intl, yes)
++ PHP_ADD_SOURCES_X(PHP_EXT_DIR(intl), $PHP_INTL_CPP_SOURCES, $PHP_INTL_CPP_FLAGS, shared_objects_intl, yes)
+ fi
+
+ PHP_ADD_BUILD_DIR($ext_builddir/collator)
+--
+2.19.2
+
diff --git a/dev-lang/php/files/php-7.1.25-intl-use-icu-namespace.patch b/dev-lang/php/files/php-7.1.25-intl-use-icu-namespace.patch
new file mode 100644
index 0000000..5a1cc47
--- /dev/null
+++ b/dev-lang/php/files/php-7.1.25-intl-use-icu-namespace.patch
@@ -0,0 +1,379 @@
+Based on the following upstream commits:
+
+https://github.com/php/php-src/commit/8d35a423838eb462cd39ee535c5d003073cc5f22
+https://github.com/php/php-src/commit/d8200e48857aeaf09f7127751efc5632ef7660a7
+https://github.com/php/php-src/commit/9a8e7b571896f39f83cb000fdb7c466b6d328d52
+
+--- a/ext/intl/breakiterator/breakiterator_class.cpp
++++ b/ext/intl/breakiterator/breakiterator_class.cpp
+@@ -38,6 +38,7 @@ extern "C" {
+ }
+
+ using PHP::CodePointBreakIterator;
++using icu::RuleBasedBreakIterator;
+
+ /* {{{ Global variables */
+ zend_class_entry *BreakIterator_ce_ptr;
+--- a/ext/intl/breakiterator/breakiterator_class.h
++++ b/ext/intl/breakiterator/breakiterator_class.h
+@@ -26,6 +26,8 @@
+
+ #ifndef USE_BREAKITERATOR_POINTER
+ typedef void BreakIterator;
++#else
++using icu::BreakIterator;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/breakiterator/breakiterator_methods.cpp
++++ b/ext/intl/breakiterator/breakiterator_methods.cpp
+@@ -32,6 +32,8 @@ extern "C" {
+ }
+
+ using PHP::CodePointBreakIterator;
++using icu::BreakIterator;
++using icu::Locale;
+
+ U_CFUNC PHP_METHOD(BreakIterator, __construct)
+ {
+--- a/ext/intl/breakiterator/codepointiterator_internal.cpp
++++ b/ext/intl/breakiterator/codepointiterator_internal.cpp
+@@ -33,6 +33,8 @@ typedef union {
+
+ using namespace PHP;
+
++using icu::UCharCharacterIterator;
++
+ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(CodePointBreakIterator);
+
+ CodePointBreakIterator::CodePointBreakIterator()
+--- a/ext/intl/breakiterator/codepointiterator_internal.h
++++ b/ext/intl/breakiterator/codepointiterator_internal.h
+@@ -18,8 +18,11 @@
+ #define CODEPOINTITERATOR_INTERNAL_H
+
+ #include
++#include
+
+-using U_ICU_NAMESPACE::BreakIterator;
++using icu::BreakIterator;
++using icu::CharacterIterator;
++using icu::UnicodeString;
+
+ namespace PHP {
+
+--- a/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
++++ b/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
+@@ -26,6 +26,9 @@ extern "C" {
+ #include "../intl_convertcpp.h"
+ #include "../intl_common.h"
+
++using icu::RuleBasedBreakIterator;
++using icu::Locale;
++
+ static inline RuleBasedBreakIterator *fetch_rbbi(BreakIterator_object *bio) {
+ return (RuleBasedBreakIterator*)bio->biter;
+ }
+--- a/ext/intl/calendar/calendar_class.cpp
++++ b/ext/intl/calendar/calendar_class.cpp
+@@ -34,6 +34,9 @@ extern "C" {
+ #include
+ }
+
++using icu::GregorianCalendar;
++using icu::Locale;
++
+ /* {{{ Global variables */
+ zend_class_entry *Calendar_ce_ptr;
+ zend_class_entry *GregorianCalendar_ce_ptr;
+--- a/ext/intl/calendar/calendar_class.h
++++ b/ext/intl/calendar/calendar_class.h
+@@ -26,6 +26,8 @@
+
+ #ifndef USE_CALENDAR_POINTER
+ typedef void Calendar;
++#else
++using icu::Calendar;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/calendar/calendar_methods.cpp
++++ b/ext/intl/calendar/calendar_methods.cpp
+@@ -40,6 +40,8 @@ extern "C" {
+ }
+ #include "../common/common_enum.h"
+
++using icu::Locale;
++
+ U_CFUNC PHP_METHOD(IntlCalendar, __construct)
+ {
+ zend_throw_exception( NULL,
+--- a/ext/intl/calendar/gregoriancalendar_methods.cpp
++++ b/ext/intl/calendar/gregoriancalendar_methods.cpp
+@@ -23,6 +23,8 @@
+ #include
+ #include
+ #include
++#include
++
+ extern "C" {
+ #include "../php_intl.h"
+ #include "../intl_common.h"
+@@ -34,6 +36,11 @@ extern "C" {
+ #include "zend_exceptions.h"
+ }
+
++using icu::GregorianCalendar;
++using icu::Locale;
++using icu::UnicodeString;
++using icu::StringPiece;
++
+ static inline GregorianCalendar *fetch_greg(Calendar_object *co) {
+ return (GregorianCalendar*)co->ucal;
+ }
+--- a/ext/intl/common/common_date.cpp
++++ b/ext/intl/common/common_date.cpp
+@@ -25,6 +25,9 @@ extern "C" {
+ #include
+ }
+
++using icu::TimeZone;
++using icu::UnicodeString;
++
+ #ifndef INFINITY
+ #define INFINITY (DBL_MAX+DBL_MAX)
+ #endif
+--- a/ext/intl/common/common_date.h
++++ b/ext/intl/common/common_date.h
+@@ -28,6 +28,8 @@ U_CDECL_END
+
+ #include
+
++using icu::TimeZone;
++
+ U_CFUNC TimeZone *timezone_convert_datetimezone(int type, void *object, int is_datetime, intl_error *outside_error, const char *func);
+ U_CFUNC int intl_datetime_decompose(zval *z, double *millis, TimeZone **tz,
+ intl_error *err, const char *func);
+--- a/ext/intl/common/common_enum.h
++++ b/ext/intl/common/common_enum.h
+@@ -75,6 +75,7 @@ U_CFUNC zval *zoi_with_current_get_current_data(zend_object_iterator *iter);
+ U_CFUNC void zoi_with_current_invalidate_current(zend_object_iterator *iter);
+
+ #ifdef __cplusplus
++using icu::StringEnumeration;
+ U_CFUNC void IntlIterator_from_StringEnumeration(StringEnumeration *se, zval *object);
+ #endif
+
+--- a/ext/intl/converter/converter.c
++++ b/ext/intl/converter/converter.c
+@@ -18,6 +18,8 @@
+ #include "zend_exceptions.h"
+
+ #include
++#include
++#include
+ #include
+ #include
+
+--- a/ext/intl/dateformat/dateformat_format_object.cpp
++++ b/ext/intl/dateformat/dateformat_format_object.cpp
+@@ -33,6 +33,12 @@ extern "C" {
+ #include "../common/common_date.h"
+ }
+
++using icu::Locale;
++using icu::DateFormat;
++using icu::GregorianCalendar;
++using icu::StringPiece;
++using icu::SimpleDateFormat;
++
+ static const DateFormat::EStyle valid_styles[] = {
+ DateFormat::kNone,
+ DateFormat::kFull,
+--- a/ext/intl/dateformat/dateformat_helpers.cpp
++++ b/ext/intl/dateformat/dateformat_helpers.cpp
+@@ -28,6 +28,8 @@ extern "C" {
+ #include "../calendar/calendar_class.h"
+ }
+
++using icu::GregorianCalendar;
++
+ int datefmt_process_calendar_arg(zval* calendar_zv,
+ Locale const& locale,
+ const char *func_name,
+--- a/ext/intl/dateformat/dateformat_helpers.h
++++ b/ext/intl/dateformat/dateformat_helpers.h
+@@ -22,11 +22,16 @@
+ #endif
+
+ #include
++#include
+
+ extern "C" {
+ #include "../php_intl.h"
+ }
+
++using icu::Locale;
++using icu::Calendar;
++using icu::DateFormat;
++
+ int datefmt_process_calendar_arg(zval* calendar_zv,
+ Locale const& locale,
+ const char *func_name,
+--- a/ext/intl/grapheme/grapheme_string.c
++++ b/ext/intl/grapheme/grapheme_string.c
+@@ -24,6 +24,7 @@
+ #include "grapheme_util.h"
+
+ #include
++#include
+ #include
+ #include
+ #include
+@@ -835,10 +836,10 @@ PHP_FUNCTION(grapheme_extract)
+ pstr = str + start;
+
+ /* just in case pstr points in the middle of a character, move forward to the start of the next char */
+- if ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
+- char *str_end = str + str_len;
++ if ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
++ unsigned char *str_end = str + str_len;
+
+- while ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
++ while ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
+ pstr++;
+ if ( pstr >= str_end ) {
+ intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
+--- a/ext/intl/intl_convertcpp.h
++++ b/ext/intl/intl_convertcpp.h
+@@ -26,6 +26,8 @@
+ #include
+ #include
+
++using icu::UnicodeString;
++
+ int intl_stringFromChar(UnicodeString &ret, char *str, size_t str_len, UErrorCode *status);
+
+ zend_string* intl_charFromString(const UnicodeString &from, UErrorCode *status);
+--- a/ext/intl/msgformat/msgformat_helpers.cpp
++++ b/ext/intl/msgformat/msgformat_helpers.cpp
+@@ -78,6 +78,16 @@ MessageFormatAdapter::getMessagePattern(MessageFormat* m) {
+ #endif
+ U_NAMESPACE_END
+
++using icu::Formattable;
++using icu::Format;
++using icu::DateFormat;
++using icu::MessageFormat;
++#ifdef HAS_MESSAGE_PATTERN
++using icu::MessagePattern;
++#endif
++using icu::MessageFormatAdapter;
++using icu::FieldPosition;
++
+ U_CFUNC int32_t umsg_format_arg_count(UMessageFormat *fmt)
+ {
+ int32_t fmt_count = 0;
+@@ -229,15 +239,16 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
+ UnicodeString typeString = mp.getSubstring(type_part);
+ /* This is all based on the rules in the docs for MessageFormat
+ * @see http://icu-project.org/apiref/icu4c/classMessageFormat.html */
+- if (typeString == "number") {
++#define ASCII_LITERAL(s) UNICODE_STRING(s, sizeof(s)-1)
++ if (typeString == ASCII_LITERAL("number")) {
+ MessagePattern::Part style_part = mp.getPart(i + 1); /* Not advancing i */
+ if (style_part.getType() == UMSGPAT_PART_TYPE_ARG_STYLE) {
+ UnicodeString styleString = mp.getSubstring(style_part);
+- if (styleString == "integer") {
++ if (styleString == ASCII_LITERAL("integer")) {
+ type = Formattable::kInt64;
+- } else if (styleString == "currency") {
++ } else if (styleString == ASCII_LITERAL("currency")) {
+ type = Formattable::kDouble;
+- } else if (styleString == "percent") {
++ } else if (styleString == ASCII_LITERAL("percent")) {
+ type = Formattable::kDouble;
+ } else { /* some style invalid/unknown to us */
+ type = Formattable::kDouble;
+@@ -245,12 +256,13 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
+ } else { // if missing style, part, make it a double
+ type = Formattable::kDouble;
+ }
+- } else if ((typeString == "date") || (typeString == "time")) {
++ } else if ((typeString == ASCII_LITERAL("date")) || (typeString == ASCII_LITERAL("time"))) {
+ type = Formattable::kDate;
+- } else if ((typeString == "spellout") || (typeString == "ordinal")
+- || (typeString == "duration")) {
++ } else if ((typeString == ASCII_LITERAL("spellout")) || (typeString == ASCII_LITERAL("ordinal"))
++ || (typeString == ASCII_LITERAL("duration"))) {
+ type = Formattable::kDouble;
+ }
++#undef ASCII_LITERAL
+ } else {
+ /* If there's no UMSGPAT_PART_TYPE_ARG_TYPE right after a
+ * UMSGPAT_ARG_TYPE_SIMPLE argument, then the pattern
+--- a/ext/intl/normalizer/normalizer_normalize.c
++++ b/ext/intl/normalizer/normalizer_normalize.c
+@@ -24,6 +24,7 @@
+ #include "normalizer_class.h"
+ #include "normalizer_normalize.h"
+ #include "intl_convert.h"
++#include
+
+ /* {{{ proto string Normalizer::normalize( string $input [, string $form = FORM_C] )
+ * Normalize a string. }}} */
+--- a/ext/intl/timezone/timezone_class.cpp
++++ b/ext/intl/timezone/timezone_class.cpp
+@@ -37,6 +37,8 @@ extern "C" {
+ #include
+ }
+
++using icu::Calendar;
++
+ /* {{{ Global variables */
+ U_CDECL_BEGIN
+ zend_class_entry *TimeZone_ce_ptr = NULL;
+--- a/ext/intl/timezone/timezone_class.h
++++ b/ext/intl/timezone/timezone_class.h
+@@ -29,6 +29,8 @@
+
+ #ifndef USE_TIMEZONE_POINTER
+ typedef void TimeZone;
++#else
++using icu::TimeZone;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/timezone/timezone_methods.cpp
++++ b/ext/intl/timezone/timezone_methods.cpp
+@@ -23,6 +23,7 @@
+ #include
+ #include
+ #include
++#include
+ #include "intl_convertcpp.h"
+
+ #include "../common/common_date.h"
+@@ -37,6 +38,9 @@ extern "C" {
+ }
+ #include "common/common_enum.h"
+
++using icu::Locale;
++using icu::Calendar;
++
+ U_CFUNC PHP_METHOD(IntlTimeZone, __construct)
+ {
+ zend_throw_exception( NULL,
+--- a/ext/intl/uchar/uchar.c
++++ b/ext/intl/uchar/uchar.c
+@@ -3,6 +3,7 @@
+ #include "intl_convert.h"
+
+ #include
++#include
+
+ #define IC_METHOD(mname) PHP_METHOD(IntlChar, mname)
+
+--
+2.19.2
+
diff --git a/dev-lang/php/files/php-7.2.13-intl-use-icu-namespace.patch b/dev-lang/php/files/php-7.2.13-intl-use-icu-namespace.patch
new file mode 100644
index 0000000..b5d2b47
--- /dev/null
+++ b/dev-lang/php/files/php-7.2.13-intl-use-icu-namespace.patch
@@ -0,0 +1,379 @@
+Based on the following upstream commits:
+
+https://github.com/php/php-src/commit/8d35a423838eb462cd39ee535c5d003073cc5f22
+https://github.com/php/php-src/commit/d8200e48857aeaf09f7127751efc5632ef7660a7
+https://github.com/php/php-src/commit/9a8e7b571896f39f83cb000fdb7c466b6d328d52
+
+--- a/ext/intl/breakiterator/breakiterator_class.cpp
++++ b/ext/intl/breakiterator/breakiterator_class.cpp
+@@ -38,6 +38,7 @@ extern "C" {
+ }
+
+ using PHP::CodePointBreakIterator;
++using icu::RuleBasedBreakIterator;
+
+ /* {{{ Global variables */
+ zend_class_entry *BreakIterator_ce_ptr;
+--- a/ext/intl/breakiterator/breakiterator_class.h
++++ b/ext/intl/breakiterator/breakiterator_class.h
+@@ -26,6 +26,8 @@
+
+ #ifndef USE_BREAKITERATOR_POINTER
+ typedef void BreakIterator;
++#else
++using icu::BreakIterator;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/breakiterator/breakiterator_methods.cpp
++++ b/ext/intl/breakiterator/breakiterator_methods.cpp
+@@ -32,6 +32,8 @@ extern "C" {
+ }
+
+ using PHP::CodePointBreakIterator;
++using icu::BreakIterator;
++using icu::Locale;
+
+ U_CFUNC PHP_METHOD(BreakIterator, __construct)
+ {
+--- a/ext/intl/breakiterator/codepointiterator_internal.cpp
++++ b/ext/intl/breakiterator/codepointiterator_internal.cpp
+@@ -33,6 +33,8 @@ typedef union {
+
+ using namespace PHP;
+
++using icu::UCharCharacterIterator;
++
+ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(CodePointBreakIterator);
+
+ CodePointBreakIterator::CodePointBreakIterator()
+--- a/ext/intl/breakiterator/codepointiterator_internal.h
++++ b/ext/intl/breakiterator/codepointiterator_internal.h
+@@ -18,8 +18,11 @@
+ #define CODEPOINTITERATOR_INTERNAL_H
+
+ #include
++#include
+
+-using U_ICU_NAMESPACE::BreakIterator;
++using icu::BreakIterator;
++using icu::CharacterIterator;
++using icu::UnicodeString;
+
+ namespace PHP {
+
+--- a/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
++++ b/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
+@@ -26,6 +26,9 @@ extern "C" {
+ #include "../intl_convertcpp.h"
+ #include "../intl_common.h"
+
++using icu::RuleBasedBreakIterator;
++using icu::Locale;
++
+ static inline RuleBasedBreakIterator *fetch_rbbi(BreakIterator_object *bio) {
+ return (RuleBasedBreakIterator*)bio->biter;
+ }
+--- a/ext/intl/calendar/calendar_class.cpp
++++ b/ext/intl/calendar/calendar_class.cpp
+@@ -34,6 +34,9 @@ extern "C" {
+ #include
+ }
+
++using icu::GregorianCalendar;
++using icu::Locale;
++
+ /* {{{ Global variables */
+ zend_class_entry *Calendar_ce_ptr;
+ zend_class_entry *GregorianCalendar_ce_ptr;
+--- a/ext/intl/calendar/calendar_class.h
++++ b/ext/intl/calendar/calendar_class.h
+@@ -26,6 +26,8 @@
+
+ #ifndef USE_CALENDAR_POINTER
+ typedef void Calendar;
++#else
++using icu::Calendar;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/calendar/calendar_methods.cpp
++++ b/ext/intl/calendar/calendar_methods.cpp
+@@ -40,6 +40,8 @@ extern "C" {
+ }
+ #include "../common/common_enum.h"
+
++using icu::Locale;
++
+ U_CFUNC PHP_METHOD(IntlCalendar, __construct)
+ {
+ zend_throw_exception( NULL,
+--- a/ext/intl/calendar/gregoriancalendar_methods.cpp
++++ b/ext/intl/calendar/gregoriancalendar_methods.cpp
+@@ -23,6 +23,8 @@
+ #include
+ #include
+ #include
++#include
++
+ extern "C" {
+ #include "../php_intl.h"
+ #include "../intl_common.h"
+@@ -34,6 +36,11 @@ extern "C" {
+ #include "zend_exceptions.h"
+ }
+
++using icu::GregorianCalendar;
++using icu::Locale;
++using icu::UnicodeString;
++using icu::StringPiece;
++
+ static inline GregorianCalendar *fetch_greg(Calendar_object *co) {
+ return (GregorianCalendar*)co->ucal;
+ }
+--- a/ext/intl/common/common_date.cpp
++++ b/ext/intl/common/common_date.cpp
+@@ -27,6 +27,9 @@ extern "C" {
+
+ #include "zend_portability.h"
+
++using icu::TimeZone;
++using icu::UnicodeString;
++
+ /* {{{ timezone_convert_datetimezone
+ * The timezone in DateTime and DateTimeZone is not unified. */
+ U_CFUNC TimeZone *timezone_convert_datetimezone(int type,
+--- a/ext/intl/common/common_date.h
++++ b/ext/intl/common/common_date.h
+@@ -28,6 +28,8 @@ U_CDECL_END
+
+ #include
+
++using icu::TimeZone;
++
+ U_CFUNC TimeZone *timezone_convert_datetimezone(int type, void *object, int is_datetime, intl_error *outside_error, const char *func);
+ U_CFUNC int intl_datetime_decompose(zval *z, double *millis, TimeZone **tz,
+ intl_error *err, const char *func);
+--- a/ext/intl/common/common_enum.h
++++ b/ext/intl/common/common_enum.h
+@@ -75,6 +75,7 @@ U_CFUNC zval *zoi_with_current_get_current_data(zend_object_iterator *iter);
+ U_CFUNC void zoi_with_current_invalidate_current(zend_object_iterator *iter);
+
+ #ifdef __cplusplus
++using icu::StringEnumeration;
+ U_CFUNC void IntlIterator_from_StringEnumeration(StringEnumeration *se, zval *object);
+ #endif
+
+--- a/ext/intl/converter/converter.c
++++ b/ext/intl/converter/converter.c
+@@ -18,6 +18,8 @@
+ #include "zend_exceptions.h"
+
+ #include
++#include
++#include
+ #include
+ #include
+
+--- a/ext/intl/dateformat/dateformat_format_object.cpp
++++ b/ext/intl/dateformat/dateformat_format_object.cpp
+@@ -33,6 +33,12 @@ extern "C" {
+ #include "../common/common_date.h"
+ }
+
++using icu::Locale;
++using icu::DateFormat;
++using icu::GregorianCalendar;
++using icu::StringPiece;
++using icu::SimpleDateFormat;
++
+ static const DateFormat::EStyle valid_styles[] = {
+ DateFormat::kNone,
+ DateFormat::kFull,
+--- a/ext/intl/dateformat/dateformat_helpers.cpp
++++ b/ext/intl/dateformat/dateformat_helpers.cpp
+@@ -28,6 +28,8 @@ extern "C" {
+ #include "../calendar/calendar_class.h"
+ }
+
++using icu::GregorianCalendar;
++
+ int datefmt_process_calendar_arg(zval* calendar_zv,
+ Locale const& locale,
+ const char *func_name,
+--- a/ext/intl/dateformat/dateformat_helpers.h
++++ b/ext/intl/dateformat/dateformat_helpers.h
+@@ -22,11 +22,16 @@
+ #endif
+
+ #include
++#include
+
+ extern "C" {
+ #include "../php_intl.h"
+ }
+
++using icu::Locale;
++using icu::Calendar;
++using icu::DateFormat;
++
+ int datefmt_process_calendar_arg(zval* calendar_zv,
+ Locale const& locale,
+ const char *func_name,
+--- a/ext/intl/grapheme/grapheme_string.c
++++ b/ext/intl/grapheme/grapheme_string.c
+@@ -24,6 +24,7 @@
+ #include "grapheme_util.h"
+
+ #include
++#include
+ #include
+ #include
+ #include
+@@ -834,10 +835,10 @@ PHP_FUNCTION(grapheme_extract)
+ pstr = str + start;
+
+ /* just in case pstr points in the middle of a character, move forward to the start of the next char */
+- if ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
+- char *str_end = str + str_len;
++ if ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
++ unsigned char *str_end = str + str_len;
+
+- while ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
++ while ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
+ pstr++;
+ if ( pstr >= str_end ) {
+ intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
+--- a/ext/intl/intl_convertcpp.h
++++ b/ext/intl/intl_convertcpp.h
+@@ -26,6 +26,8 @@
+ #include
+ #include
+
++using icu::UnicodeString;
++
+ int intl_stringFromChar(UnicodeString &ret, char *str, size_t str_len, UErrorCode *status);
+
+ zend_string* intl_charFromString(const UnicodeString &from, UErrorCode *status);
+--- a/ext/intl/msgformat/msgformat_helpers.cpp
++++ b/ext/intl/msgformat/msgformat_helpers.cpp
+@@ -78,6 +78,16 @@ MessageFormatAdapter::getMessagePattern(MessageFormat* m) {
+ #endif
+ U_NAMESPACE_END
+
++using icu::Formattable;
++using icu::Format;
++using icu::DateFormat;
++using icu::MessageFormat;
++#ifdef HAS_MESSAGE_PATTERN
++using icu::MessagePattern;
++#endif
++using icu::MessageFormatAdapter;
++using icu::FieldPosition;
++
+ U_CFUNC int32_t umsg_format_arg_count(UMessageFormat *fmt)
+ {
+ int32_t fmt_count = 0;
+@@ -229,15 +239,16 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
+ UnicodeString typeString = mp.getSubstring(type_part);
+ /* This is all based on the rules in the docs for MessageFormat
+ * @see http://icu-project.org/apiref/icu4c/classMessageFormat.html */
+- if (typeString == "number") {
++#define ASCII_LITERAL(s) UNICODE_STRING(s, sizeof(s)-1)
++ if (typeString == ASCII_LITERAL("number")) {
+ MessagePattern::Part style_part = mp.getPart(i + 1); /* Not advancing i */
+ if (style_part.getType() == UMSGPAT_PART_TYPE_ARG_STYLE) {
+ UnicodeString styleString = mp.getSubstring(style_part);
+- if (styleString == "integer") {
++ if (styleString == ASCII_LITERAL("integer")) {
+ type = Formattable::kInt64;
+- } else if (styleString == "currency") {
++ } else if (styleString == ASCII_LITERAL("currency")) {
+ type = Formattable::kDouble;
+- } else if (styleString == "percent") {
++ } else if (styleString == ASCII_LITERAL("percent")) {
+ type = Formattable::kDouble;
+ } else { /* some style invalid/unknown to us */
+ type = Formattable::kDouble;
+@@ -245,12 +256,13 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
+ } else { // if missing style, part, make it a double
+ type = Formattable::kDouble;
+ }
+- } else if ((typeString == "date") || (typeString == "time")) {
++ } else if ((typeString == ASCII_LITERAL("date")) || (typeString == ASCII_LITERAL("time"))) {
+ type = Formattable::kDate;
+- } else if ((typeString == "spellout") || (typeString == "ordinal")
+- || (typeString == "duration")) {
++ } else if ((typeString == ASCII_LITERAL("spellout")) || (typeString == ASCII_LITERAL("ordinal"))
++ || (typeString == ASCII_LITERAL("duration"))) {
+ type = Formattable::kDouble;
+ }
++#undef ASCII_LITERAL
+ } else {
+ /* If there's no UMSGPAT_PART_TYPE_ARG_TYPE right after a
+ * UMSGPAT_ARG_TYPE_SIMPLE argument, then the pattern
+--- a/ext/intl/normalizer/normalizer_normalize.c
++++ b/ext/intl/normalizer/normalizer_normalize.c
+@@ -24,6 +24,7 @@
+ #include "normalizer_class.h"
+ #include "normalizer_normalize.h"
+ #include "intl_convert.h"
++#include
+
+ /* {{{ proto string Normalizer::normalize( string $input [, string $form = FORM_C] )
+ * Normalize a string. }}} */
+--- a/ext/intl/timezone/timezone_class.cpp
++++ b/ext/intl/timezone/timezone_class.cpp
+@@ -37,6 +37,8 @@ extern "C" {
+ #include
+ }
+
++using icu::Calendar;
++
+ /* {{{ Global variables */
+ U_CDECL_BEGIN
+ zend_class_entry *TimeZone_ce_ptr = NULL;
+--- a/ext/intl/timezone/timezone_class.h
++++ b/ext/intl/timezone/timezone_class.h
+@@ -29,6 +29,8 @@
+
+ #ifndef USE_TIMEZONE_POINTER
+ typedef void TimeZone;
++#else
++using icu::TimeZone;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/timezone/timezone_methods.cpp
++++ b/ext/intl/timezone/timezone_methods.cpp
+@@ -23,6 +23,7 @@
+ #include
+ #include
+ #include
++#include
+ #include "intl_convertcpp.h"
+
+ #include "../common/common_date.h"
+@@ -37,6 +38,9 @@ extern "C" {
+ }
+ #include "common/common_enum.h"
+
++using icu::Locale;
++using icu::Calendar;
++
+ U_CFUNC PHP_METHOD(IntlTimeZone, __construct)
+ {
+ zend_throw_exception( NULL,
+--- a/ext/intl/uchar/uchar.c
++++ b/ext/intl/uchar/uchar.c
+@@ -3,6 +3,7 @@
+ #include "intl_convert.h"
+
+ #include
++#include
+
+ #define IC_METHOD(mname) PHP_METHOD(IntlChar, mname)
+
+--
+2.19.2
+
diff --git a/dev-lang/php/files/php-fpm_at-simple.service b/dev-lang/php/files/php-fpm_at-simple.service
new file mode 100644
index 0000000..5f0482e
--- /dev/null
+++ b/dev-lang/php/files/php-fpm_at-simple.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=The PHP FastCGI Process Manager
+After=network.target
+
+[Service]
+Type=simple
+PIDFile=/run/php-fpm/php-fpm-%I.pid
+ExecStart=/usr/libexec/php-fpm-launcher php%I -y /etc/php/fpm-php%I/php-fpm.conf --nodaemonize
+ExecReload=/bin/kill -USR2 $MAINPID
+PrivateTmp=true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/dev-lang/php/files/php-fpm_at.service b/dev-lang/php/files/php-fpm_at.service
new file mode 100644
index 0000000..152c1ab
--- /dev/null
+++ b/dev-lang/php/files/php-fpm_at.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=The PHP FastCGI Process Manager
+After=network.target
+
+[Service]
+Type=notify
+PIDFile=/run/php-fpm/php-fpm-%I.pid
+ExecStart=/usr/libexec/php-fpm-launcher php%I -y /etc/php/fpm-php%I/php-fpm.conf --nodaemonize
+ExecReload=/bin/kill -USR2 $MAINPID
+PrivateTmp=true
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/dev-lang/php/files/php-freetype-2.9.1.patch b/dev-lang/php/files/php-freetype-2.9.1.patch
new file mode 100644
index 0000000..02dfd9c
--- /dev/null
+++ b/dev-lang/php/files/php-freetype-2.9.1.patch
@@ -0,0 +1,233 @@
+--- a/ext/gd/config.m4 2018-04-24 11:09:54.000000000 -0400
++++ b/ext/gd/config.m4 2018-05-04 15:18:49.867283889 -0400
+@@ -186,21 +186,36 @@
+ AC_DEFUN([PHP_GD_FREETYPE2],[
+ if test "$PHP_FREETYPE_DIR" != "no"; then
+
+- for i in $PHP_FREETYPE_DIR /usr/local /usr; do
+- if test -f "$i/bin/freetype-config"; then
+- FREETYPE2_DIR=$i
+- FREETYPE2_CONFIG="$i/bin/freetype-config"
+- break
++ AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
++ AC_MSG_CHECKING(for freetype2)
++
++ if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists freetype2 ; then
++
++ FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags freetype2`
++ FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2`
++ FREETYPE2_VERSION=`$PKG_CONFIG --modversion freetype2`
++ FREETYPE2_DIR="found"
++
++ AC_MSG_RESULT(from pkgconfig: version $FREETYPE2_VERSION found)
++ else
++
++ for i in $PHP_FREETYPE_DIR /usr/local /usr; do
++ if test -f "$i/bin/freetype-config"; then
++ FREETYPE2_DIR=$i
++ FREETYPE2_CONFIG="$i/bin/freetype-config"
++ break
++ fi
++ done
++
++ if test -z "$FREETYPE2_DIR"; then
++ AC_MSG_ERROR([freetype-config not found.])
+ fi
+- done
+
+- if test -z "$FREETYPE2_DIR"; then
+- AC_MSG_ERROR([freetype-config not found.])
++ FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
++ FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
++ AC_MSG_RESULT(found via freetype-config)
+ fi
+
+- FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
+- FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
+-
+ PHP_EVAL_INCLINE($FREETYPE2_CFLAGS)
+ PHP_EVAL_LIBLINE($FREETYPE2_LIBS, GD_SHARED_LIBADD)
+ AC_DEFINE(HAVE_LIBFREETYPE,1,[ ])
+--- a/configure 2018-04-24 11:10:05.000000000 -0400
++++ b/configure 2018-05-04 15:18:45.626367913 -0400
+@@ -34348,21 +34348,79 @@
+
+ if test "$PHP_FREETYPE_DIR" != "no"; then
+
+- for i in $PHP_FREETYPE_DIR /usr/local /usr; do
+- if test -f "$i/bin/freetype-config"; then
+- FREETYPE2_DIR=$i
+- FREETYPE2_CONFIG="$i/bin/freetype-config"
+- break
++ # Extract the first word of "pkg-config", so it can be a program name with args.
++set dummy pkg-config; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_path_PKG_CONFIG+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ case $PKG_CONFIG in
++ [\\/]* | ?:[\\/]*)
++ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
++ ;;
++ *)
++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++ test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
++ ;;
++esac
++fi
++PKG_CONFIG=$ac_cv_path_PKG_CONFIG
++if test -n "$PKG_CONFIG"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
++$as_echo "$PKG_CONFIG" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freetype2" >&5
++$as_echo_n "checking for freetype2... " >&6; }
++
++
++ if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists freetype2 ; then
++
++ FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags freetype2`
++ FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2`
++ FREETYPE2_VERSION=`$PKG_CONFIG --modversion freetype2`
++ FREETYPE2_DIR="found"
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: from pkgconfig: version $FREETYPE2_VERSION found" >&5
++$as_echo "from pkgconfig: version $FREETYPE2_VERSION found" >&6; }
++ else
++
++ for i in $PHP_FREETYPE_DIR /usr/local /usr; do
++ if test -f "$i/bin/freetype-config"; then
++ FREETYPE2_DIR=$i
++ FREETYPE2_CONFIG="$i/bin/freetype-config"
++ break
++ fi
++ done
++
++ if test -z "$FREETYPE2_DIR"; then
++ as_fn_error $? "freetype-config not found." "$LINENO" 5
+ fi
+- done
+
+- if test -z "$FREETYPE2_DIR"; then
+- as_fn_error $? "freetype-config not found." "$LINENO" 5
++ FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
++ FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found via freetype-config" >&5
++$as_echo "found via freetype-config" >&6; }
+ fi
+
+- FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
+- FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
+-
+
+ for ac_i in $FREETYPE2_CFLAGS; do
+ case $ac_i in
+@@ -36019,21 +36076,78 @@
+
+ if test "$PHP_FREETYPE_DIR" != "no"; then
+
+- for i in $PHP_FREETYPE_DIR /usr/local /usr; do
+- if test -f "$i/bin/freetype-config"; then
+- FREETYPE2_DIR=$i
+- FREETYPE2_CONFIG="$i/bin/freetype-config"
+- break
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freetype2" >&5
++$as_echo_n "checking for freetype2... " >&6; }
++ # Extract the first word of "pkg-config", so it can be a program name with args.
++set dummy pkg-config; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_path_PKG_CONFIG+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ case $PKG_CONFIG in
++ [\\/]* | ?:[\\/]*)
++ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
++ ;;
++ *)
++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++ test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
++ ;;
++esac
++fi
++PKG_CONFIG=$ac_cv_path_PKG_CONFIG
++if test -n "$PKG_CONFIG"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
++$as_echo "$PKG_CONFIG" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++
++ if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists freetype2 ; then
++
++ FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags freetype2`
++ FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2`
++ FREETYPE2_VERSION=`$PKG_CONFIG --modversion freetype2`
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: from pkgconfig: version $FREETYPE_VERSON found" >&5
++$as_echo "from pkgconfig: version $FREETYPE_VERSON found" >&6; }
++ else
++
++ for i in $PHP_FREETYPE_DIR /usr/local /usr; do
++ if test -f "$i/bin/freetype-config"; then
++ FREETYPE2_DIR=$i
++ FREETYPE2_CONFIG="$i/bin/freetype-config"
++ break
++ fi
++ done
++
++ if test -z "$FREETYPE2_DIR"; then
++ as_fn_error $? "freetype-config not found." "$LINENO" 5
+ fi
+- done
+
+- if test -z "$FREETYPE2_DIR"; then
+- as_fn_error $? "freetype-config not found." "$LINENO" 5
++ FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
++ FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found via freetype-config" >&5
++$as_echo "found via freetype-config" >&6; }
+ fi
+
+- FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
+- FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
+-
+
+ for ac_i in $FREETYPE2_CFLAGS; do
+ case $ac_i in
diff --git a/dev-lang/php/files/php-iodbc-header-location.patch b/dev-lang/php/files/php-iodbc-header-location.patch
new file mode 100644
index 0000000..e34f09b
--- /dev/null
+++ b/dev-lang/php/files/php-iodbc-header-location.patch
@@ -0,0 +1,14 @@
+diff -aurN a/ext/pdo_odbc/config.m4 b/ext/pdo_odbc/config.m4
+--- a/ext/pdo_odbc/config.m4 2019-11-26 15:13:39.000000000 -0500
++++ b/ext/pdo_odbc/config.m4 2019-12-06 10:39:56.296658492 -0500
+@@ -85,6 +85,10 @@
+ PDO_ODBC_LIBDIR="$pdo_odbc_def_libdir"
+ fi
+
++ if test "$pdo_odbc_def_lib" = "iodbc" ; then
++ PDO_ODBC_INCDIR="$PDO_ODBC_INCDIR/iodbc"
++ fi
++
+ AC_MSG_RESULT([$pdo_odbc_flavour
+ libs $PDO_ODBC_LIBDIR,
+ headers $PDO_ODBC_INCDIR])
diff --git a/dev-lang/php/php-7.3.17.ebuild b/dev-lang/php/php-7.3.17.ebuild
new file mode 100644
index 0000000..189bf20
--- /dev/null
+++ b/dev-lang/php/php-7.3.17.ebuild
@@ -0,0 +1,748 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit flag-o-matic eapi7-ver systemd autotools
+
+MY_PV=${PV/_rc/RC}
+DESCRIPTION="The PHP language runtime engine"
+HOMEPAGE="https://secure.php.net/"
+SRC_URI="https://secure.php.net/distributions/${P}.tar.xz"
+
+LICENSE="PHP-3.01
+ BSD
+ Zend-2.0
+ bcmath? ( LGPL-2.1+ )
+ fpm? ( BSD-2 )
+ gd? ( gd )
+ unicode? ( BSD-2 LGPL-2.1 )"
+
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+
+S="${WORKDIR}/${PN}-${MY_PV}"
+
+# We can build the following SAPIs in the given order
+SAPIS="embed cli cgi fpm apache2 phpdbg"
+
+# SAPIs and SAPI-specific USE flags (cli SAPI is default on):
+IUSE="${IUSE}
+ ${SAPIS/cli/+cli}
+ threads"
+
+IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk
+ coverage +ctype curl debug
+ enchant exif +fileinfo +filter firebird
+ flatfile ftp gd gdbm gmp +hash +iconv imap inifile
+ intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl lmdb
+ mhash mssql mysql mysqli nls
+ oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
+ readline recode selinux +session session-mm sharedmem
+ +simplexml snmp soap sockets sodium spell sqlite ssl
+ sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode wddx webp
+ +xml xmlreader xmlwriter xmlrpc xpm xslt zip zip-encryption zlib"
+
+# The supported (that is, autodetected) versions of BDB are listed in
+# the ./configure script. Other versions *work*, but we need to stick to
+# the ones that can be detected to avoid a repeat of bug #564824.
+COMMON_DEPEND="
+ >=app-eselect/eselect-php-0.9.1[apache2?,fpm?]
+ >=dev-libs/libpcre2-10.30[unicode]
+ fpm? ( acl? ( sys-apps/acl ) )
+ apache2? ( || ( >=www-servers/apache-2.4[apache2_modules_unixd,threads=]
+ =net-misc/curl-7.10.5 )
+ enchant? ( =sys-libs/zlib-1.2.0.4 )
+ gdbm? ( >=sys-libs/gdbm-1.8.0:0= )
+ gmp? ( dev-libs/gmp:0= )
+ iconv? ( virtual/libiconv )
+ imap? ( virtual/imap-c-client[kerberos=,ssl=] )
+ intl? ( dev-libs/icu:= )
+ iodbc? ( dev-db/libiodbc )
+ kerberos? ( virtual/krb5 )
+ ldap? ( >=net-nds/openldap-1.2.11 )
+ ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 )
+ libedit? ( || ( sys-freebsd/freebsd-lib dev-libs/libedit ) )
+ lmdb? ( dev-db/lmdb:= )
+ mssql? ( dev-db/freetds[mssql] )
+ nls? ( sys-devel/gettext )
+ oci8-instant-client? ( dev-db/oracle-instantclient-basic )
+ odbc? ( >=dev-db/unixODBC-1.8.13 )
+ postgres? ( dev-db/postgresql:* )
+ qdbm? ( dev-db/qdbm )
+ readline? ( sys-libs/readline:0= )
+ recode? ( app-text/recode )
+ session-mm? ( dev-libs/mm )
+ simplexml? ( >=dev-libs/libxml2-2.6.8 )
+ snmp? ( >=net-analyzer/net-snmp-5.2 )
+ soap? ( >=dev-libs/libxml2-2.6.8 )
+ sodium? ( dev-libs/libsodium:= )
+ spell? ( >=app-text/aspell-0.50 )
+ sqlite? ( >=dev-db/sqlite-3.7.6.3 )
+ ssl? (
+ !libressl? ( >=dev-libs/openssl-1.0.1:0= )
+ libressl? ( dev-libs/libressl:0= )
+ )
+ tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) )
+ tokyocabinet? ( dev-db/tokyocabinet )
+ truetype? ( =media-libs/freetype-2* )
+ unicode? ( dev-libs/oniguruma:= )
+ wddx? ( >=dev-libs/libxml2-2.6.8 )
+ webp? ( media-libs/libwebp:0= )
+ xml? ( >=dev-libs/libxml2-2.6.8 )
+ xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv )
+ xmlreader? ( >=dev-libs/libxml2-2.6.8 )
+ xmlwriter? ( >=dev-libs/libxml2-2.6.8 )
+ xpm? ( x11-libs/libXpm )
+ xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 )
+ zip? ( >=sys-libs/zlib-1.2.0.4:0= )
+ zip-encryption? ( >=dev-libs/libzip-1.2.0:= )
+ zlib? ( >=sys-libs/zlib-1.2.0.4:0= )
+"
+
+RDEPEND="${COMMON_DEPEND}
+ virtual/mta
+ fpm? (
+ selinux? ( sec-policy/selinux-phpfpm )
+ systemd? ( sys-apps/systemd ) )"
+
+# Bison isn't actually needed when building from a release tarball
+# However, the configure script will warn if it's absent or if you
+# have an incompatible version installed. See bug 593278.
+DEPEND="${COMMON_DEPEND}
+ app-arch/xz-utils
+ >=sys-devel/bison-3.0.1"
+
+# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
+REQUIRED_USE="
+ || ( cli cgi fpm apache2 embed phpdbg )
+ cli? ( ^^ ( readline libedit ) )
+ truetype? ( gd zlib )
+ webp? ( gd zlib )
+ cjk? ( gd zlib )
+ exif? ( gd zlib )
+ xpm? ( gd zlib )
+ gd? ( zlib )
+ simplexml? ( xml )
+ soap? ( xml )
+ wddx? ( xml )
+ xmlrpc? ( || ( xml iconv ) )
+ xmlreader? ( xml )
+ xslt? ( xml )
+ ldap-sasl? ( ldap )
+ mhash? ( hash )
+ phar? ( hash )
+ qdbm? ( !gdbm )
+ readline? ( !libedit )
+ recode? ( !imap !mysqli !mysql )
+ session-mm? ( session !threads )
+ mysql? ( || ( mysqli pdo ) )
+ zip-encryption? ( zip )
+"
+PATCHES=(
+ "${FILESDIR}/php-freetype-2.9.1.patch"
+)
+
+PHP_MV="$(ver_cut 1)"
+
+php_install_ini() {
+ local phpsapi="${1}"
+
+ # work out where we are installing the ini file
+ php_set_ini_dir "${phpsapi}"
+
+ # Always install the production INI file, bug 611214.
+ local phpinisrc="php.ini-production-${phpsapi}"
+ cp php.ini-production "${phpinisrc}" || die
+
+ # default to /tmp for save_path, bug #282768
+ sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die
+
+ # Set the extension dir
+ sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \
+ -i "${phpinisrc}" || die
+
+ # Set the include path to point to where we want to find PEAR packages
+ sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die
+
+ dodir "${PHP_INI_DIR#${EPREFIX}}"
+ insinto "${PHP_INI_DIR#${EPREFIX}}"
+ newins "${phpinisrc}" php.ini
+
+ elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}"
+ elog
+
+ dodir "${PHP_EXT_INI_DIR#${EPREFIX}}"
+ dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}"
+
+ if use opcache; then
+ elog "Adding opcache to $PHP_EXT_INI_DIR"
+ echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \
+ "${D}/${PHP_EXT_INI_DIR}"/opcache.ini
+ dosym "${PHP_EXT_INI_DIR#${EPREFIX}}/opcache.ini" \
+ "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini"
+ fi
+
+ # SAPI-specific handling
+ if [[ "${sapi}" == "fpm" ]] ; then
+ einfo "Installing FPM config files php-fpm.conf and www.conf"
+ insinto "${PHP_INI_DIR#${EPREFIX}}"
+ doins sapi/fpm/php-fpm.conf
+ insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d"
+ doins sapi/fpm/www.conf
+ fi
+
+ dodoc php.ini-{development,production}
+}
+
+php_set_ini_dir() {
+ PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}"
+ PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext"
+ PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active"
+}
+
+src_prepare() {
+ default
+
+ # In php-7.x, the FPM pool configuration files have been split off
+ # of the main config. By default the pool config files go in
+ # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the
+ # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later
+ # we'll install the pool configuration file "www.conf" there.
+ php_set_ini_dir fpm
+ sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \
+ sapi/fpm/php-fpm.conf.in \
+ || die 'failed to move the include directory in php-fpm.conf'
+
+ # Bug 669566 - necessary so that build tools are updated for commands like pecl
+ # Force rebuilding aclocal.m4
+ rm -f aclocal.m4 || die "failed to remove aclocal.m4 in src_prepare"
+ eautoreconf
+}
+
+src_configure() {
+ addpredict /usr/share/snmp/mibs/.index #nowarn
+ addpredict /var/lib/net-snmp/mib_indexes #nowarn
+
+ PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
+
+ # The php-fpm config file wants localstatedir to be ${EPREFIX}/var
+ # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002.
+ local our_conf=(
+ --prefix="${PHP_DESTDIR}"
+ --mandir="${PHP_DESTDIR}/man"
+ --infodir="${PHP_DESTDIR}/info"
+ --libdir="${PHP_DESTDIR}/lib"
+ --with-libdir="$(get_libdir)"
+ --localstatedir="${EPREFIX}/var"
+ --without-pear
+ $(use_enable threads maintainer-zts)
+ )
+
+ our_conf+=(
+ $(use_with argon2 password-argon2 "${EPREFIX}/usr")
+ $(use_enable bcmath bcmath)
+ $(use_with bzip2 bz2 "${EPREFIX}/usr")
+ $(use_enable calendar calendar)
+ $(use_enable coverage gcov)
+ $(use_enable ctype ctype)
+ $(use_with curl curl "${EPREFIX}/usr")
+ $(use_enable xml dom)
+ $(use_with enchant enchant "${EPREFIX}/usr")
+ $(use_enable exif exif)
+ $(use_enable fileinfo fileinfo)
+ $(use_enable filter filter)
+ $(use_enable ftp ftp)
+ $(use_with nls gettext "${EPREFIX}/usr")
+ $(use_with gmp gmp "${EPREFIX}/usr")
+ $(use_enable hash hash)
+ $(use_with mhash mhash "${EPREFIX}/usr")
+ $(use_with iconv iconv \
+ $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr"))
+ $(use_enable intl intl)
+ $(use_enable ipv6 ipv6)
+ $(use_enable json json)
+ $(use_with kerberos kerberos "${EPREFIX}/usr")
+ $(use_enable xml libxml)
+ $(use_with xml libxml-dir "${EPREFIX}/usr")
+ $(use_enable unicode mbstring)
+ $(use_with unicode onig "${EPREFIX}/usr")
+ $(use_with ssl openssl "${EPREFIX}/usr")
+ $(use_with ssl openssl-dir "${EPREFIX}/usr")
+ $(use_enable pcntl pcntl)
+ $(use_enable phar phar)
+ $(use_enable pdo pdo)
+ $(use_enable opcache opcache)
+ $(use_with postgres pgsql "${EPREFIX}/usr")
+ $(use_enable posix posix)
+ $(use_with spell pspell "${EPREFIX}/usr")
+ $(use_with recode recode "${EPREFIX}/usr")
+ $(use_enable simplexml simplexml)
+ $(use_enable sharedmem shmop)
+ $(use_with snmp snmp "${EPREFIX}/usr")
+ $(use_enable soap soap)
+ $(use_enable sockets sockets)
+ $(use_with sodium sodium "${EPREFIX}/usr")
+ $(use_with sqlite sqlite3 "${EPREFIX}/usr")
+ $(use_enable sysvipc sysvmsg)
+ $(use_enable sysvipc sysvsem)
+ $(use_enable sysvipc sysvshm)
+ $(use_with tidy tidy "${EPREFIX}/usr")
+ $(use_enable tokenizer tokenizer)
+ $(use_enable wddx wddx)
+ $(use_enable xml xml)
+ $(use_enable xmlreader xmlreader)
+ $(use_enable xmlwriter xmlwriter)
+ $(use_with xmlrpc xmlrpc)
+ $(use_with xslt xsl "${EPREFIX}/usr")
+ $(use_enable zip zip)
+ $(use_with zip-encryption libzip "${EPREFIX}/usr")
+ $(use_with zlib zlib "${EPREFIX}/usr")
+ $(use_enable debug debug)
+ )
+
+ # DBA support
+ if use cdb || use berkdb || use flatfile || use gdbm || use inifile \
+ || use qdbm || use lmdb || use tokyocabinet ; then
+ our_conf+=( "--enable-dba${shared}" )
+ fi
+
+ # DBA drivers support
+ our_conf+=(
+ $(use_with cdb cdb)
+ $(use_with berkdb db4 "${EPREFIX}/usr")
+ $(use_enable flatfile flatfile)
+ $(use_with gdbm gdbm "${EPREFIX}/usr")
+ $(use_enable inifile inifile)
+ $(use_with qdbm qdbm "${EPREFIX}/usr")
+ $(use_with lmdb lmdb "${EPREFIX}/usr")
+ )
+
+ # Support for the GD graphics library
+ our_conf+=(
+ $(use_with truetype freetype-dir "${EPREFIX}/usr")
+ $(use_enable cjk gd-jis-conv)
+ $(use_with gd jpeg-dir "${EPREFIX}/usr")
+ $(use_with gd png-dir "${EPREFIX}/usr")
+ $(use_with xpm xpm-dir "${EPREFIX}/usr")
+ )
+ if use webp; then
+ our_conf+=( --with-webp-dir="${EPREFIX}/usr" )
+ fi
+ # enable gd last, so configure can pick up the previous settings
+ our_conf+=( $(use_with gd gd) )
+
+ # IMAP support
+ if use imap ; then
+ our_conf+=(
+ $(use_with imap imap "${EPREFIX}/usr")
+ $(use_with ssl imap-ssl "${EPREFIX}/usr")
+ )
+ fi
+
+ # Interbase/firebird support
+ our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") )
+
+ # LDAP support
+ if use ldap ; then
+ our_conf+=(
+ $(use_with ldap ldap "${EPREFIX}/usr")
+ $(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr")
+ )
+ fi
+
+ # MySQL support
+ local mysqllib="mysqlnd"
+ local mysqlilib="mysqlnd"
+
+ our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") )
+
+ local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock"
+ if use mysql || use mysqli ; then
+ our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") )
+ fi
+
+ # ODBC support
+ our_conf+=(
+ $(use_with odbc unixODBC "${EPREFIX}/usr")
+ $(use_with iodbc iodbc "${EPREFIX}/usr")
+ )
+
+ # Oracle support
+ our_conf+=( $(use_with oci8-instant-client oci8) )
+
+ # PDO support
+ if use pdo ; then
+ our_conf+=(
+ $(use_with mssql pdo-dblib "${EPREFIX}/usr")
+ $(use_with mysql pdo-mysql "${mysqllib}")
+ $(use_with postgres pdo-pgsql)
+ $(use_with sqlite pdo-sqlite "${EPREFIX}/usr")
+ $(use_with firebird pdo-firebird "${EPREFIX}/usr")
+ $(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr")
+ $(use_with oci8-instant-client pdo-oci)
+ )
+ fi
+
+ # readline/libedit support
+ our_conf+=(
+ $(use_with readline readline "${EPREFIX}/usr")
+ $(use_with libedit libedit "${EPREFIX}/usr")
+ )
+
+ # Session support
+ if use session ; then
+ our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") )
+ else
+ our_conf+=( $(use_enable session session) )
+ fi
+
+ # Use pic for shared modules such as apache2's mod_php
+ our_conf+=( --with-pic )
+
+ # we use the system copy of pcre
+ # --with-pcre-regex affects ext/pcre
+ # --with-pcre-dir affects ext/filter and ext/zip
+ # --with-pcre-valgrind cannot be enabled with system pcre
+ # Many arches don't support pcre-jit
+ our_conf+=(
+ --with-pcre-regex="${EPREFIX}/usr"
+ --with-pcre-dir="${EPREFIX}/usr"
+ --without-pcre-valgrind
+ --without-pcre-jit
+ )
+
+ # Catch CFLAGS problems
+ # Fixes bug #14067.
+ # Changed order to run it in reverse for bug #32022 and #12021.
+ replace-cpu-flags "k6*" "i586"
+
+ # Cache the ./configure test results between SAPIs.
+ our_conf+=( --cache-file="${T}/config.cache" )
+
+ # Support user-passed configuration parameters
+ our_conf+=( ${EXTRA_ECONF:-} )
+
+ # Support the Apache2 extras, they must be set globally for all
+ # SAPIs to work correctly, especially for external PHP extensions
+
+ mkdir -p "${WORKDIR}/sapis-build" || die
+ for one_sapi in $SAPIS ; do
+ use "${one_sapi}" || continue
+ php_set_ini_dir "${one_sapi}"
+
+ # The BUILD_DIR variable is used to determine where to output
+ # the files that autotools creates. This was all originally
+ # based on the autotools-utils eclass.
+ BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}"
+ cp -a "${S}" "${BUILD_DIR}" || die
+ cd "${BUILD_DIR}" || die
+
+ local sapi_conf=(
+ --with-config-file-path="${PHP_INI_DIR}"
+ --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}"
+ )
+
+ for sapi in $SAPIS ; do
+ case "$sapi" in
+ cli|cgi|embed|fpm|phpdbg)
+ if [[ "${one_sapi}" == "${sapi}" ]] ; then
+ sapi_conf+=( "--enable-${sapi}" )
+ if [[ "fpm" == "${sapi}" ]] ; then
+ sapi_conf+=(
+ $(use_with acl fpm-acl)
+ $(use_with systemd fpm-systemd)
+ )
+ fi
+ else
+ sapi_conf+=( "--disable-${sapi}" )
+ fi
+ ;;
+
+ apache2)
+ if [[ "${one_sapi}" == "${sapi}" ]] ; then
+ sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" )
+ else
+ sapi_conf+=( --without-apxs2 )
+ fi
+ ;;
+ esac
+ done
+
+ # Construct the $myeconfargs array by concatenating $our_conf
+ # (the common args) and $sapi_conf (the SAPI-specific args).
+ local myeconfargs=( "${our_conf[@]}" )
+ myeconfargs+=( "${sapi_conf[@]}" )
+
+ pushd "${BUILD_DIR}" > /dev/null || die
+ econf "${myeconfargs[@]}"
+ popd > /dev/null || die
+ done
+}
+
+src_compile() {
+ # snmp seems to run during src_compile, too (bug #324739)
+ addpredict /usr/share/snmp/mibs/.index #nowarn
+ addpredict /var/lib/net-snmp/mib_indexes #nowarn
+
+ for sapi in ${SAPIS} ; do
+ if use "${sapi}"; then
+ cd "${WORKDIR}/sapis-build/$sapi" || \
+ die "Failed to change dir to ${WORKDIR}/sapis-build/$1"
+ emake
+ fi
+ done
+}
+
+src_install() {
+ # see bug #324739 for what happens when we don't have that
+ addpredict /usr/share/snmp/mibs/.index #nowarn
+
+ # grab the first SAPI that got built and install common files from there
+ local first_sapi=""
+ for sapi in $SAPIS ; do
+ if use $sapi ; then
+ first_sapi=$sapi
+ break
+ fi
+ done
+
+ # Makefile forgets to create this before trying to write to it...
+ dodir "${PHP_DESTDIR#${EPREFIX}}/bin"
+
+ # Install php environment (without any sapis)
+ cd "${WORKDIR}/sapis-build/$first_sapi" || die
+ emake INSTALL_ROOT="${D}" \
+ install-build install-headers install-programs
+
+ local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)"
+
+ # Create the directory where we'll put version-specific php scripts
+ keepdir "/usr/share/php${PHP_MV}"
+
+ local sapi="", file=""
+ local sapi_list=""
+
+ for sapi in ${SAPIS}; do
+ if use "${sapi}" ; then
+ einfo "Installing SAPI: ${sapi}"
+ cd "${WORKDIR}/sapis-build/${sapi}" || die
+
+ if [[ "${sapi}" == "apache2" ]] ; then
+ # We're specifically not using emake install-sapi as libtool
+ # may cause unnecessary relink failures (see bug #351266)
+ insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/"
+ newins ".libs/libphp${PHP_MV}$(get_libname)" \
+ "libphp${PHP_MV}$(get_libname)"
+ keepdir "/usr/$(get_libdir)/apache2/modules"
+ else
+ # needed each time, php_install_ini would reset it
+ local dest="${PHP_DESTDIR#${EPREFIX}}"
+ into "${dest}"
+ case "$sapi" in
+ cli)
+ source="sapi/cli/php"
+ ;;
+ cgi)
+ source="sapi/cgi/php-cgi"
+ ;;
+ fpm)
+ source="sapi/fpm/php-fpm"
+ ;;
+ embed)
+ source="libs/libphp${PHP_MV}$(get_libname)"
+ ;;
+ phpdbg)
+ source="sapi/phpdbg/phpdbg"
+ ;;
+ *)
+ die "unhandled sapi in src_install"
+ ;;
+ esac
+
+ if [[ "${source}" == *"$(get_libname)" ]]; then
+ dolib.so "${source}"
+ else
+ dobin "${source}"
+ local name="$(basename ${source})"
+ dosym "${dest}/bin/${name}" "/usr/bin/${name}${SLOT}"
+ fi
+ fi
+
+ php_install_ini "${sapi}"
+
+ # construct correct SAPI string for php-config
+ # thanks to ferringb for the bash voodoo
+ if [[ "${sapi}" == "apache2" ]]; then
+ sapi_list="${sapi_list:+${sapi_list} }apache2handler"
+ else
+ sapi_list="${sapi_list:+${sapi_list} }${sapi}"
+ fi
+ fi
+ done
+
+ # Installing opcache module
+ if use opcache ; then
+ into "${PHP_DESTDIR#${EPREFIX}}"
+ dolib.so "modules/opcache$(get_libname)"
+ fi
+
+ # Install env.d files
+ newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}"
+ sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
+ sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
+
+ # set php-config variable correctly (bug #278439)
+ sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \
+ "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die
+
+ if use fpm ; then
+ if use systemd; then
+ systemd_newunit "${FILESDIR}/php-fpm_at.service" \
+ "php-fpm@${SLOT}.service"
+ else
+ systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \
+ "php-fpm@${SLOT}.service"
+ fi
+ fi
+}
+
+src_test() {
+ echo ">>> Test phase [test]: ${CATEGORY}/${PF}"
+ PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php"
+ if [[ ! -x "${PHP_BIN}" ]] ; then
+ ewarn "Test phase requires USE=cli, skipping"
+ return
+ else
+ export TEST_PHP_EXECUTABLE="${PHP_BIN}"
+ fi
+
+ if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then
+ export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi"
+ fi
+
+ if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then
+ export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg"
+ fi
+
+ REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \
+ "session.save_path=${T}" \
+ "${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \
+ "session.save_path=${T}"
+
+ for name in ${EXPECTED_TEST_FAILURES}; do
+ mv "${name}.out" "${name}.out.orig" 2>/dev/null || die
+ done
+
+ local failed="$(find -name '*.out')"
+ if [[ ${failed} != "" ]] ; then
+ ewarn "The following test cases failed unexpectedly:"
+ for name in ${failed}; do
+ ewarn " ${name/.out/}"
+ done
+ else
+ einfo "No unexpected test failures, all fine"
+ fi
+
+ if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then
+ local passed=""
+ for name in ${EXPECTED_TEST_FAILURES}; do
+ [[ -f "${name}.diff" ]] && continue
+ passed="${passed} ${name}"
+ done
+ if [[ ${passed} != "" ]] ; then
+ einfo "The following test cases passed unexpectedly:"
+ for name in ${passed}; do
+ ewarn " ${passed}"
+ done
+ else
+ einfo "None of the known-to-fail tests passed, all fine"
+ fi
+ fi
+}
+
+pkg_postinst() {
+ # Output some general info to the user
+ if use apache2 ; then
+ elog
+ elog "To enable PHP in apache, you will need to add \"-D PHP\" to"
+ elog "your apache2 command. OpenRC users can append that string to"
+ elog "APACHE2_OPTS in /etc/conf.d/apache2."
+ elog
+ elog "The apache module configuration file 70_mod_php.conf is"
+ elog "provided (and maintained) by eselect-php."
+ elog
+ fi
+
+ # Create the symlinks for php
+ for m in ${SAPIS}; do
+ [[ ${m} == 'embed' ]] && continue;
+ if use $m ; then
+ local ci=$(eselect php show $m)
+ if [[ -z $ci ]]; then
+ eselect php set $m php${SLOT} || die
+ einfo "Switched ${m} to use php:${SLOT}"
+ einfo
+ elif [[ $ci != "php${SLOT}" ]] ; then
+ elog "To switch $m to use php:${SLOT}, run"
+ elog " eselect php set $m php${SLOT}"
+ elog
+ fi
+ fi
+ done
+
+ # Remove dead symlinks for SAPIs that were just disabled. For
+ # example, if the user has the cgi SAPI enabled, then he has an
+ # eselect-php symlink for it. If he later reinstalls PHP with
+ # USE="-cgi", that symlink will break. This call to eselect is
+ # supposed to remove that dead link per bug 572436.
+ eselect php cleanup || die
+
+ if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then
+ elog "To build extensions for this version of PHP, you will need to"
+ elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable."
+ elog
+ fi
+
+ # Warn about the removal of PHP_INI_VERSION if the user has it set.
+ if [[ -n "${PHP_INI_VERSION}" ]]; then
+ ewarn 'The PHP_INI_VERSION variable has been phased out. You may'
+ ewarn 'remove it from your configuration at your convenience. See'
+ ewarn
+ ewarn ' https://bugs.gentoo.org/611214'
+ ewarn
+ ewarn 'for more information.'
+ fi
+
+ elog "For details on how version slotting works, please see"
+ elog "the wiki:"
+ elog
+ elog " https://wiki.gentoo.org/wiki/PHP"
+ elog
+}
+
+pkg_postrm() {
+ # This serves two purposes. First, if we have just removed the last
+ # installed version of PHP, then this will remove any dead symlinks
+ # belonging to eselect-php. Second, if a user upgrades slots from
+ # (say) 5.6 to 7.0 and depcleans the old slot, then this will update
+ # his existing symlinks to point to the new 7.0 installation. The
+ # latter is bug 432962.
+ #
+ # Note: the eselect-php package may not be installed at this point,
+ # so we can't die() if this command fails.
+ eselect php cleanup
+}
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// /,}]
+ )
+ =dev-lang/rust-1.$(($(ver_cut 2) - 1)) >=dev-lang/rust-bin-1.$(($(ver_cut 2) - 1)) )"
+
+# libgit2 should be at least same as bundled into libgit-sys #707746
+COMMON_DEPEND="
+ >=dev-libs/libgit2-0.99:=
+ net-libs/libssh2:=
+ net-libs/http-parser:=
+ net-misc/curl:=[ssl]
+ sys-libs/zlib:=
+ !libressl? ( dev-libs/openssl:0= )
+ libressl? ( dev-libs/libressl:0= )
+ elibc_musl? ( sys-libs/libunwind )
+ system-llvm? (
+ ${LLVM_DEPEND}
+ )
+"
+
+DEPEND="${COMMON_DEPEND}
+ ${PYTHON_DEPS}
+ || (
+ >=sys-devel/gcc-4.7
+ >=sys-devel/clang-3.5
+ )
+ system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
+ !system-llvm? (
+ dev-util/cmake
+ dev-util/ninja
+ )
+"
+
+RDEPEND="${COMMON_DEPEND}
+ >=app-eselect/eselect-rust-20190311
+"
+
+REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
+ miri? ( nightly )
+ parallel-compiler? ( nightly )
+ wasm? ( llvm_targets_WebAssembly )
+ x86? ( cpu_flags_x86_sse2 )
+"
+
+QA_FLAGS_IGNORED="
+ usr/bin/.*-${PV}
+ usr/lib.*/lib.*.so
+ usr/lib/rustlib/.*/codegen-backends/librustc_codegen_llvm-llvm.so
+ usr/lib/rustlib/.*/lib/lib.*.so
+"
+
+QA_SONAME="
+ usr/lib.*/lib.*.so
+ usr/lib.*/librustc_macros.*.s
+"
+
+# tests need a bit more work, currently they are causing multiple
+# re-compilations and somewhat fragile.
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}"/0012-Ignore-broken-and-non-applicable-tests.patch
+ "${FILESDIR}"/1.44.0-libressl.patch
+)
+
+S="${WORKDIR}/${MY_P}-src"
+
+toml_usex() {
+ usex "$1" true false
+}
+
+pre_build_checks() {
+ CHECKREQS_DISK_BUILD="9G"
+ eshopts_push -s extglob
+ if is-flagq '-g?(gdb)?([1-9])'; then
+ CHECKREQS_DISK_BUILD="15G"
+ fi
+ eshopts_pop
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+ python-any-r1_pkg_setup
+
+ # required to link agains system libs, otherwise
+ # crates use bundled sources and compile own static version
+ export LIBGIT2_SYS_USE_PKG_CONFIG=1
+ export LIBSSH2_SYS_USE_PKG_CONFIG=1
+ export PKG_CONFIG_ALLOW_CROSS=1
+
+ if use system-llvm; then
+ llvm_pkg_setup
+
+ local llvm_config="$(get_llvm_prefix "$LLVM_MAX_SLOT")/bin/llvm-config"
+
+ export LLVM_LINK_SHARED=1
+ export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
+ fi
+}
+
+src_prepare() {
+ if ! use system-bootstrap; then
+ local rust_stage0_root="${WORKDIR}"/rust-stage0
+ local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)"
+
+ "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
+ --destdir="${rust_stage0_root}" --prefix=/ || die
+ fi
+
+ default
+}
+
+src_configure() {
+ local rust_target="" rust_targets="" arch_cflags
+
+ # Collect rust target names to compile standard libs for all ABIs.
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_targets="${rust_targets},\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
+ done
+ if use wasm; then
+ rust_targets="${rust_targets},\"wasm32-unknown-unknown\""
+ if use system-llvm; then
+ # un-hardcode rust-lld linker for this target
+ # https://bugs.gentoo.org/715348
+ sed -i '/linker:/ s/rust-lld/wasm-ld/' src/librustc_target/spec/wasm32_base.rs || die
+ fi
+ fi
+ rust_targets="${rust_targets#,}"
+
+ local tools="\"cargo\","
+ if use clippy; then
+ tools="\"clippy\",$tools"
+ fi
+ if use miri; then
+ tools="\"miri\",$tools"
+ fi
+ if use rls; then
+ tools="\"rls\",\"analysis\",\"src\",$tools"
+ fi
+ if use rustfmt; then
+ tools="\"rustfmt\",$tools"
+ fi
+
+ local rust_stage0_root
+ if use system-bootstrap; then
+ rust_stage0_root="$(rustc --print sysroot)"
+ else
+ rust_stage0_root="${WORKDIR}"/rust-stage0
+ fi
+
+ rust_target="$(rust_abi)"
+
+ cat <<- EOF > "${S}"/config.toml
+ [llvm]
+ optimize = $(toml_usex !debug)
+ release-debuginfo = $(toml_usex debug)
+ assertions = $(toml_usex debug)
+ ninja = true
+ targets = "${LLVM_TARGETS// /;}"
+ experimental-targets = ""
+ link-shared = $(toml_usex system-llvm)
+ [build]
+ build = "${rust_target}"
+ host = ["${rust_target}"]
+ target = [${rust_targets}]
+ cargo = "${rust_stage0_root}/bin/cargo"
+ rustc = "${rust_stage0_root}/bin/rustc"
+ docs = $(toml_usex doc)
+ compiler-docs = $(toml_usex doc)
+ submodules = false
+ python = "${EPYTHON}"
+ locked-deps = true
+ vendor = true
+ extended = true
+ tools = [${tools}]
+ verbose = 2
+ sanitizers = false
+ profiler = false
+ cargo-native-static = false
+ [install]
+ prefix = "${EPREFIX}/usr"
+ libdir = "lib"
+ docdir = "share/doc/${PF}"
+ mandir = "share/man"
+ [rust]
+ optimize = true
+ debug = $(toml_usex debug)
+ debug-assertions = $(toml_usex debug)
+ debuginfo-level-rustc = 0
+ backtrace = true
+ incremental = false
+ default-linker = "$(tc-getCC)"
+ parallel-compiler = $(toml_usex parallel-compiler)
+ channel = "$(usex nightly nightly stable)"
+ rpath = false
+ verbose-tests = true
+ optimize-tests = $(toml_usex !debug)
+ codegen-tests = true
+ dist-src = false
+ lld = $(usex system-llvm false $(toml_usex wasm))
+ backtrace-on-ice = true
+ jemalloc = false
+ [dist]
+ src-tarball = false
+ EOF
+
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
+ arch_cflags="$(get_abi_CFLAGS ${v##*.})"
+
+ cat <<- EOF >> "${S}"/config.env
+ CFLAGS_${rust_target}=${arch_cflags}
+ EOF
+
+ cat <<- EOF >> "${S}"/config.toml
+ [target.${rust_target}]
+ cc = "$(tc-getBUILD_CC)"
+ cxx = "$(tc-getBUILD_CXX)"
+ linker = "$(tc-getCC)"
+ ar = "$(tc-getAR)"
+ EOF
+ # librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ if use elibc_musl; then
+ cat <<- EOF >> "${S}"/config.toml
+ crt-static = false
+ EOF
+ fi
+ if use system-llvm; then
+ cat <<- EOF >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
+ EOF
+ fi
+ done
+ if use wasm; then
+ cat <<- EOF >> "${S}"/config.toml
+ [target.wasm32-unknown-unknown]
+ linker = "$(usex system-llvm lld rust-lld)"
+ EOF
+ fi
+
+ if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then #whitespace intentionally shifted below
+ # experimental cross support
+ # discussion: https://bugs.gentoo.org/679878
+ # TODO: c*flags, clang, system-llvm, cargo.eclass target support
+ # it would be much better if we could split out stdlib
+ # complilation to separate ebuild and abuse CATEGORY to
+ # just install to /usr/lib/rustlib/
+
+ # 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}
+ !=dev-libs/expat-2.1.0-r3:=[${MULTILIB_USEDEP}]
+ >=virtual/libffi-3.0.13-r1:=[${MULTILIB_USEDEP}]
+ dev-libs/libxml2:=
+ !!=app-doc/doxygen-1.6[dot]
+ app-text/xmlto
+ >=media-gfx/graphviz-2.26.0
+ sys-apps/grep[pcre]
+ )
+ virtual/pkgconfig"
+
+src_prepare() {
+ default
+ [[ $PV = 9999* ]] && eautoreconf || elibtoolize
+}
+
+multilib_src_configure() {
+ local myconf
+ if tc-is-cross-compiler ; then
+ myconf+=' --with-host-scanner '
+ fi
+
+ ECONF_SOURCE="${S}" econf \
+ --disable-static \
+ $(multilib_native_use_enable doc documentation) \
+ $(multilib_native_enable dtd-validation) \
+ ${myconf}
+}
+
+multilib_src_install_all() {
+ prune_libtool_files
+ einstalldocs
+}
+
+src_test() {
+ # We set it on purpose to only a short subdir name, as socket paths are
+ # created in there, which are 108 byte limited. With this it hopefully
+ # barely fits to the limit with /var/tmp/portage/$CAT/$PF/temp/xdr
+ export XDG_RUNTIME_DIR="${T}"/xdr
+ mkdir "${XDG_RUNTIME_DIR}" || die
+ chmod 0700 "${XDG_RUNTIME_DIR}" || die
+
+ multilib-minimal_src_test
+}
diff --git a/dev-python/isort/Manifest b/dev-python/isort/Manifest
new file mode 100644
index 0000000..dfd0f5f
--- /dev/null
+++ b/dev-python/isort/Manifest
@@ -0,0 +1,3 @@
+AUX 0001-no-setup.patch 337 BLAKE2B ab8c5e068ad379165571c150ec64cc774c536558f384b579ab0c605512a6def2f4f8a5623079485b69dc3e6567c391c545d351d5a6740e5a0abf58733e2ead45 SHA512 71986adb4307bb7615c80a10875e286e699dafc12526b2864695f44a6f4773617ba23f1f35e99c57cc31f6ea21fd16057093e7fd828028234f1feb183e18462a
+DIST isort-5.5.2.tar.gz 145020 BLAKE2B 718c3e748333e17a29b19a46779c40b21a674efb3b3358851973f383719a64fda44ab352bd005e368e0bec3d5c20472c27dba8f0e62ef53c7fd80785a4cc0228 SHA512 687e523073b671f7144027ce05b388566809673ffa36bc5890a51eb38f3a85c40d9861e6d2ee70e70710725579fe63a28ca45c0a8bc902761ad02bfe4656e5d2
+EBUILD isort-5.5.2.ebuild 511 BLAKE2B e6e5fb31d5829a81cff2f3d9015357e172bf838db184d0f1d105ac90cd12c7dd16789e4e6f5ac258903e68a0e45d69835af8278a73c807b30782fb0cce6da67f SHA512 5721ce2d38b6d4edb08d427998b4f272c386d8adddc6e7cafdc1955211716cf9411d4f3426c3afb3c9f3097992c4d99a5695f27d5ab27507a6d8ffcdad6b2aca
diff --git a/dev-python/isort/files/0001-no-setup.patch b/dev-python/isort/files/0001-no-setup.patch
new file mode 100644
index 0000000..344ca50
--- /dev/null
+++ b/dev-python/isort/files/0001-no-setup.patch
@@ -0,0 +1,15 @@
+--- a/setup.py 2020-09-15 10:50:44.048973353 +0200
++++ b/setup.py 2020-09-15 10:50:50.498973117 +0200
+@@ -6,11 +6,7 @@
+ 'isort._future',
+ 'isort._vendored.toml',
+ 'isort.deprecated',
+- 'isort.stdlibs',
+- 'tests',
+- 'tests.integration',
+- 'tests.unit',
+- 'tests.unit.profiles']
++ 'isort.stdlibs']
+
+ package_data = \
+ {'': ['*']}
diff --git a/dev-python/isort/isort-5.5.2.ebuild b/dev-python/isort/isort-5.5.2.ebuild
new file mode 100644
index 0000000..e3dc7e4
--- /dev/null
+++ b/dev-python/isort/isort-5.5.2.ebuild
@@ -0,0 +1,24 @@
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3+ pypy3 )
+inherit distutils-r1
+
+DESCRIPTION="A python utility/library to sort imports"
+HOMEPAGE="https://pypi.org/project/isort/"
+SRC_URI="https://files.pythonhosted.org/packages/49/af/6dc35623937fe93a6bccfd95a7b6fc295b34aca75c0d676a765ddb026dc1/isort-5.5.2.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="*"
+
+BDEPEND="dev-python/setuptools"
+
+PATCHES=(
+ "${FILESDIR}/0001-no-setup.patch"
+)
+
+src_prepare() {
+ default
+}
diff --git a/dev-python/pypeg2/Manifest b/dev-python/pypeg2/Manifest
new file mode 100644
index 0000000..5f7649f
--- /dev/null
+++ b/dev-python/pypeg2/Manifest
@@ -0,0 +1,4 @@
+AUX pypeg2-2.15.1-test.patch 399 BLAKE2B 64afae813084e2bcceb3354d6a9819425f5454d7febbb3df12d7b7f73329bfeed1a93fd7bbd046c69899f26757d984fd70964e13809ba9bb30305b80d35cdbc8 SHA512 20428aa41858da3b73a262ec2f36aed0df8626999eae27438a6bad1908b1dc79056ab33069c273aae56eabc02dfd0c080daaf42fee7e7c92ec32b95244ba41c4
+DIST pyPEG2-2.15.2.tar.gz 40334 BLAKE2B 7a171824da4c0ccc3bfaef4e429efb16f5c8c4e03dd47c5cd59656a51fe37c9d0b3940e58e2f321a4d9976f66935fd5b9d526d24bd1e0342ef15a3a1341e77a3 SHA512 f78e3b1294169167809c5fe05f2a69af2bd6c7c4c1bcbebafb4aa6b8ae6ead181a46b051e41193bc31f49c4b4fa7b1ef231d172217c11d301d0ee21d8e411b6f
+EBUILD pypeg2-2.15.2.ebuild 712 BLAKE2B 371026db2309714ca361fd70087ecfe4efef8bedc1b73926f6e41088567c4b1c5e9b112f20c20e9fe1c6ddba75b77e5e5afdac9780fd3557eb2592f808f3a8a3 SHA512 b4fa4038ccc509f3d6ae3208937b8543f477423fb6284c8f2bd684fd29d9fd94468afeab932aea914ba999c9fc6ef329f68d07cfd0d3a5bfe51c21ce4bbce313
+MISC metadata.xml 362 BLAKE2B c34e5f667750e99f16f44361c62c79d138767c94e664be039f81f7b7fb6f295e6610aeca962ece7097dfbc1372e92e697ad99572c036910352362379eb3ab4cc SHA512 7eb0a3fbe48ee8f34bb9f697aa951faece1ce5da90319a5bd8f9958d569eebd2c91539d0d1bd46c51cdc77ddb5c858bb6d158be7268666af668a935e1c4998e7
diff --git a/dev-python/pypeg2/files/pypeg2-2.15.1-test.patch b/dev-python/pypeg2/files/pypeg2-2.15.1-test.patch
new file mode 100644
index 0000000..6ca8839
--- /dev/null
+++ b/dev-python/pypeg2/files/pypeg2-2.15.1-test.patch
@@ -0,0 +1,12 @@
+Drop seemingly wrong test line that throws an AttributeError.
+
+--- pyPEG2-2.15.1/pypeg2/test/test_pyPEG2.py
++++ pyPEG2-2.15.1/pypeg2/test/test_pyPEG2.py
+@@ -255,7 +255,6 @@
+ def runTest(self):
+ r = pypeg2.parse("!all", type(self).C1)
+ self.assertEqual(str(r), "all")
+- self.assertEqual(r._ignore1, None)
+
+ class ParseOmitTestCase(ParserTestCase):
+ def runTest(self):
diff --git a/dev-python/pypeg2/metadata.xml b/dev-python/pypeg2/metadata.xml
new file mode 100644
index 0000000..1194ecf
--- /dev/null
+++ b/dev-python/pypeg2/metadata.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ python@gentoo.org
+ Python
+
+
+ pyPEG2
+ fdik/pypeg
+
+
diff --git a/dev-python/pypeg2/pypeg2-2.15.2.ebuild b/dev-python/pypeg2/pypeg2-2.15.2.ebuild
new file mode 100644
index 0000000..a51dfb3
--- /dev/null
+++ b/dev-python/pypeg2/pypeg2-2.15.2.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_5,3_6,3_7} )
+
+inherit distutils-r1
+
+MY_PN=pyPEG2
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="An intrinsic PEG Parser-Interpreter for Python"
+HOMEPAGE="https://fdik.org/pyPEG/
+ https://bitbucket.org/fdik/pypeg/
+ https://pypi.org/project/pyPEG2/"
+SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="dev-python/lxml[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+S=${WORKDIR}/${MY_P}
+
+PATCHES=( "${FILESDIR}"/${PN}-2.15.1-test.patch )
+
+python_test() {
+ "${PYTHON}" -m unittest discover || die "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-util/cargo/Manifest b/dev-util/cargo/Manifest
new file mode 100644
index 0000000..ea109f7
--- /dev/null
+++ b/dev-util/cargo/Manifest
@@ -0,0 +1 @@
+EBUILD cargo-1.44.1.ebuild 203 BLAKE2B 519296c1f49182c41d92fdbfbe86bdbdca04ab9c84e01fbb709150c3d2dd000a4372eb2cc005f9a9914432f47e354f25421ce0041977d7e8a07c50aec725638e SHA512 c1ae8e4d284daea75640d3bb7c98dd3ebacd9e3a8e0876d77961a23465d9c30664608bc40bddd2f45d490be37a252b6ae526beeb415a1aceaa3ed05e852f7c7c
diff --git a/dev-util/cargo/cargo-1.44.1.ebuild b/dev-util/cargo/cargo-1.44.1.ebuild
new file mode 100644
index 0000000..d20e764
--- /dev/null
+++ b/dev-util/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/dev-util/cbindgen/Manifest b/dev-util/cbindgen/Manifest
new file mode 100644
index 0000000..976f453
--- /dev/null
+++ b/dev-util/cbindgen/Manifest
@@ -0,0 +1,41 @@
+DIST ansi_term-0.11.0.crate 17087 BLAKE2B 9bd35c045a01ce4c6c4a5db1b4f15e9412bb97426eec19d4421dffbec633de8d13452c13c1dc1b30998690b78d7ed38311aca700087f13a81f66bd1d5d7300c4 SHA512 a637466a380748f939b3af090b8c0333f35581925bc03f4dda9b3f95d338836403cf5487ae3af9ff68f8245a837f8ab061aabe57a126a6a2c20f2e972c77d1fa
+DIST atty-0.2.13.crate 4764 BLAKE2B 673eea1d377fc3aca792a3a8bd2a5c058f3041abc76a8760dd6acab7f19fa610f812c57d81a4dbf773675cad3df483904c66e66b45d83393402f747c6db60d89 SHA512 4554ca7dedb4c2e8693e5847ef1fe66161ed4cb2c19156bb03f41ce7e7ea21838369dabaf447a60d1468de8bfbb7087438c12934c4569dde63df074f168569ad
+DIST bitflags-1.2.1.crate 16745 BLAKE2B 0fa6d3ce44aad7616d5cd02aad8c1d0b0fed4022650eb43067c4a72e6fc88da05442674fa51826e4858a47c9de233e1ba2229820af094197cd11bb416ceffb2b SHA512 ad89b3798845e23737a620bba581c2ff1ff3e15bac12555c765e201d2c0b90ecea0cdbc5b5b1a3fa9858c385e8e041f8226f5acfae5bbbe9925643fff2bf3f0b
+DIST c2-chacha-0.2.3.crate 13336 BLAKE2B 0b548907ce4c9ee502ec96307ca003d168e8bcf9007ec667661d158f33de36fc2e832cb3c36cadc2523f6ba8b9aeff4dcb16e7f95a9a34ae02e8bd5d00f65cf2 SHA512 302498f75d1befdb8bf8b61d0eff2762f0e86000c3909d819a377be2fec72e830bfb4530e24059906b499cef17ab56229f5627fb998ad9ba34a7c6c0de748538
+DIST cbindgen-0.14.3.crate 165874 BLAKE2B 0155bccbacc70a2f8173117dde46c3bb48e07d0a0616b53ea56cade436cb6da1aa7106a82bf4ac55954cafbea1790f9200bdd3132032d3306ec755be0bb2f05c SHA512 abce798aff93260c28b0717df5fd25cf24b3eb89c9d05df4832d06169ec30db8e1c17a300f88087c6fbd4414a6aae6788e162dde838aac01c499afcb145c8461
+DIST cbindgen-0.14.4.crate 172123 BLAKE2B e86fe619d824b25884570c7a34bdb6ceb3d4906b2309a3c16b29b46284f7bd855991910000a54605eaf2786ce4f570b647a469a2d02831919d9c0a17feda694f SHA512 1d1dfbb159aad25ecbe77368ced803a0cf219a00238364d95b1866f371912e10932e9a6ccda7acd8541b270b1880bda4a29af095a8d83b79a792e31d1ce2bd78
+DIST cfg-if-0.1.10.crate 7933 BLAKE2B 063a96ed176f34f788666b40adc483d147fc011dee941ab60569ddd0e57502b5dd06ed71090f4e14ce005d06e240500a286f74652615e9d068fba649610d8cf8 SHA512 9d22616bfb4a75770a828a0a3cddac6787297a5fdc53eb17e25811cc94de717f2de8bd66d53c5d65ba1c83d8892aefee5ae758cf56a1ef0a0c3120f70b244339
+DIST clap-2.33.0.crate 196458 BLAKE2B 3bb62d817afc77b421a6282746b9b61367d224de6b614c7ed66bde452ce1046728077dab3368a46635b5c74d82ba3196586d87c0201478ce5b89638910dadb1a SHA512 f1075031414d48e4340bfe308904a95a31b72460724773c52a0bc8c004e625a04c904a39fc5420cb8c26a633321f9b5f4f69019c7aae5ed89900b63ed8c21a91
+DIST getrandom-0.1.13.crate 24581 BLAKE2B a61df4369526f860eef6952a021c3f473562cc4171c373c105d8944c305370592cd98a6c28cc0f8d00496f6b47cb900a4498dad942d0b6f60b4d8163d8904f14 SHA512 534b01d28bc9e69a5ad1e84f34aa4154939c27d70c5f557f15e669fa8894c375486ee945a6a6d8adaf1b6b7accda0e24963f70e77dd51ee0638a6ae6daa38925
+DIST heck-0.3.1.crate 54666 BLAKE2B 99f7ceb44ea6af445749989730ce1e14156018ff046a136be2e6474b285088e1d90d6f8af9352affbbde5bac7e5a32971dd99f249f968105e9793b7de76def07 SHA512 134722192c46fd64b38d2fbec3a2511c560916e906491a72c4ec9d99b9f716dc58942fb99cac99b9a6ef2de5b5ad1d1c1155f292d091401b6873347d80c086d6
+DIST itoa-0.4.4.crate 11147 BLAKE2B bb6f1caf1e58dc313bd3cfa2cf81252cb2ebc15e1f4c9adfcdedf46c5fa79811d5b0cbd58f1e91d1f62bf85d7b941b0dba535814fb43b5b70a38db791b45717c SHA512 f5e04bd908457e7592243ce64a99c5283428b767f4cc17d77946770411b06fccb0250625263c3e84a02a018ea7e8a0e4216e1929a71988bab8e1dbf603d3801d
+DIST libc-0.2.66.crate 457815 BLAKE2B 5da379ea738b75189e106d4be821c999394043303b8bb6a9caecdb1b53e449f11a58edc4589193611b76e7baf00e155ba1077bcca4d0cfae30826e946a0075f0 SHA512 5bf5645a7cbe626108cd71e1d189286ed161fcd3ea12cd34f4e392be4cf93bf78feb6128b1101bedc41a71091398f26771f3efd3880f779ee0be00f706914975
+DIST log-0.4.8.crate 31297 BLAKE2B 31037fdc2fc94f4ab8a6e89a251b0bc29975027dc7efb7cc86a8e848dfc8e2ae50acdb177b7ba9f7c1f20ec01e50798f89abb772d67a33f1b060ac617cf9a8ab SHA512 0b71f97d5964134b5eea1332347e177806b2f171d0be5c410c0ff1539470b242ba9f0933fafd853e4171a43b5e373a150af18918924be431c7216022553a8a3b
+DIST ppv-lite86-0.2.6.crate 20522 BLAKE2B 6e1e4f3d0daa02148df390be19d3575626e66f6a78dbf27c1275f097c4307b80d8182f7795a270aa2c34d8c31c8c3eecc88e9507a6c9def0e91af11233aba90b SHA512 b9764a841364eb89157c828a183fdf6aeeb63d1d35e4f5dcba79e5d8e20eee8f22c845636c5c7bc980da1d141d838528d5f190546b23aa5e4e51e626a0ddce3d
+DIST proc-macro2-1.0.6.crate 35414 BLAKE2B abec56bdf8bf2109337e007c59c7c9c78ff0af3848c9b45567b2ee1d5120ace78fdf327c61becf917ef64366e5947792608631f197d182753eeeaf81ffd2a1cd SHA512 d0a6358eb6f9334128a5b47c096bfc57452e13d603c9514df433409069c00468fa2b3c76761d7f3696abb061c1c3ba24150e0cf9be2c5d571d580238d2d27853
+DIST quote-1.0.2.crate 23023 BLAKE2B 4091809b4fc9b8d0b56be814b127d6ffd7c1507becba85dc905606cbe85f46233dc4b429c1e865e7c7de336cb936d956169ceb5dd45b489b7722022ccf818a3a SHA512 67778dff9dc5c4edcdd6454b74ad9353bb6c0c4e51c16cb82f2e393a7d7a0cde084d3c93279b718a8398c40af0a9377ebfae5321e69e635efd8390c125b75ce4
+DIST rand-0.7.2.crate 111438 BLAKE2B c9e81a0b2bcf5a3d425865dad2babd90187da55b9c70fce4aea4ed2e2ffe9cfe4e66bb280f1acee11e1f1ad17d3a73e906ac6cd35e6a2124852b66093293bd48 SHA512 d29d10e9788f0f44b56b2981aca01a115eca1018e6afe2428fca088cc9432f27d014c6f1f0c819317052f4c64a9c54cee8834eb08e081f292ad65160dcdd014c
+DIST rand_chacha-0.2.1.crate 11475 BLAKE2B 698f830845e24b85fe52b11e9a1c621dcdbe4232bc22f3dc0b1d2fcd4427045f302f74134d9b451fc5b4f9ac559fb2bc06f3d0eec5eddb6fd6cf3e6d3030855e SHA512 30933fdb94ca8d4bf040a7e08a42944a0d7c2f3f6a9a3d547e74bc32f922b0eb79d85afb1f6c85c78dc115170e70bdf96b36f0478d61ba5651876d5350ad18f6
+DIST rand_core-0.5.1.crate 21116 BLAKE2B e74791f941a79971f2741172d489d546373c9abcb0dfbffcb7b97b858ec800b2e0c97df4ac636f3aa1b8dd6c14685edf317336d577f31b5c6cb7d89a157e547a SHA512 4f7500b35e165e6c817fdd67a50745d5497d24e554bb554705097e37258751e8755c4d6b8a69fcb5e1977708ba78620bc35d640e4e018fcd4e88d9dbdbebdcbf
+DIST rand_hc-0.2.0.crate 11670 BLAKE2B 55fd048f2524cecd4f0e17927a81111e3070a8cc6a5b0234a46445400ad5527194edf8c91fb5ad6538f4958d53044ab02424f61a38adb2931e2cb7568c458ee8 SHA512 bca185612bed5cee4da76fb68fe854105da276f5bf2da464e596d586b925df798cc692ed881e276ab77c36b4b0551930966c93656be122ad05899d87853533b0
+DIST redox_syscall-0.1.56.crate 17117 BLAKE2B 57b1b01ef3cbc6f55def6c9a0dcde16bd98e83badcef993e26ae3ce849abcd1b1c10f4da931c605970d77f92471734764a537e7329291a221343fde23f3591eb SHA512 17a3044327aa733c830dd74e210d6bda32622617d1c5af9d70d7647232d8569ad0b04ccb14042cbabb5d97ad98e3f1f5a9968a75387354ffb4d175e9577115a1
+DIST remove_dir_all-0.5.2.crate 8907 BLAKE2B 585f49f83db3ace90dd0b4fc77aab7525844194c82d36cc33ab8999aaa6226d24a130c30f55e2c46a08273cc554d9d4c8bc51958aa7dbf1045085b2e22639e4e SHA512 d19a45398a93adbcef9f233f6b3eaf4a63ae95f5bbae00c880b40c5edd34449e7f798ebcd4d11843c68ddfa15e11bed21d434b224e4a175dcb64ae011c13c8cd
+DIST ryu-1.0.2.crate 42001 BLAKE2B c25f0454bfac40de3150b8c263c6d2842e64f86f441a69ab5e5722a2383a9a07c7539837f6e50996619eb0c4a5da212556a4dd21a761a250785fe0a9c4e18a3c SHA512 c681e037f1eea488bad7fb5ecc79af52377bd4b9eeed95eb213201219d7f100702000f81947aff8f18641235fb62c138a30eb20c1f93ae518a4d9960a598bb64
+DIST serde-1.0.104.crate 73258 BLAKE2B 98d63f91c61ac4693e17e0b137379cffd6608933b84d2211509be6b3b25b181592d5e907549fac6ae2e4a45255b8003e1bfd0db683429ac3e78d8ee097d3d79c SHA512 638a1dacc158d69658a005e599adc19d6bc80d0c663f527b1ff906f729e70e027eacc4ea5b9b2c675ac990d5997f50f9d46d614ba95b0c73bb9606aba46b053a
+DIST serde_derive-1.0.104.crate 49658 BLAKE2B d4a9ecb4a8df87776a83d645778dc050803b16fd5c9889f28e231238223d424dd25b101412e89741fb47be624d1773acf97f6e38809c81110b696701975168df SHA512 303c3d126ca56b0a7126a87e9e1be8bd60bdb212ed21b5e1aee015313fd769f1d260869c41b0335bd467fd4e3fc6bb26f428c7c4b35e9a55c009797cfa745d1e
+DIST serde_json-1.0.44.crate 70325 BLAKE2B c8f5836e3448bbf5fd666b30e747b90f84eb7dbaaf078026456082b5403bbcc1931c70528abbf0e605872271861c1e7dabfe1f42d5a13c2b02f5abb28b342e61 SHA512 ce1c68bfd2ceaa8b7f45cd34cfbc71dcfe3905b06fa47032403c54aa9eed0e618cd526938eb78dbc201e9480dbd64b4bfb405f2119478229f5cea12056dcf5e4
+DIST strsim-0.8.0.crate 9309 BLAKE2B 40a8be506c43ee1ffe006ddc7dee98c3d418bdd205d57b78f5d1e4c9312feb57e1eaf952e02d92d4e0932db240c6fba45beb06ea8c4fc6de1cf1faa8b6a3a939 SHA512 1d55a8d946cd55f5f37d06aea536549ded95739fa58c0f2da285a0041154c181f663682bdcac643aa198b3e762d694a04f058db985c62ebe22b5c16327ba6d34
+DIST syn-1.0.11.crate 193782 BLAKE2B 17e0b40ee69575efea77249343af2fa67af0990f08ac8efced152ebb88ad1301211306a2317ec163219d485a097878f8552ca353f43f35ffd5d172e6c92da0df SHA512 6b361c6cb27aebb3da5e81db270e7cd0fe8bfb11289c25ce46127214e222c2b64f53164c8869de41b77e9b780f967454ed5d7c5b73442ae292eadc4dea77494c
+DIST tempfile-3.1.0.crate 25823 BLAKE2B a34721369923771d5f9a2fc64adaff2bff41da97a0ce79e01aaedb8d6670867220c671c0d23f7a8a9c71b09c0559efe4e7c9bab1f7f9d890866be1de1ce050a9 SHA512 a87ee51c36a81a8a8eb8f091eb57926682f38b707f7f641332d8752170e6c139a656ae49c6861f51e07c2fab5c86cc9b2ac158f5d89c6bff15d18934dd4e7ba5
+DIST textwrap-0.11.0.crate 17322 BLAKE2B 257428908342774593bbd3528fcdae710712ff54e8a711393a24356d8ba0e16e466a4b20c05f942c48ca76b3b5b5aaa90ec202f782cad892caa8b71ccf124da6 SHA512 f5c0fe4f28ff1a3a0931e8e235b5157a45f67967985bcc752418c5ec3481fca44a8ae4800088889b37e8cd0533f53d3c456d5ffd19b767b3f83a87b49a2e209a
+DIST toml-0.5.5.crate 54805 BLAKE2B 2b319f37165164793866bc4a470ed99447fdccb59242c94e5311906dc764f54131f2bc14921caab56bf84706d12800fb26a58210e3e58728f4076edc9a66e771 SHA512 8f6a04dc24ea775a9a28cc948039f20540ec983c46b287ebfa820e29cc5867803765ce099283f79d3b4a22c513b386603dbd8130808cb3354bc63b5d4706cb33
+DIST unicode-segmentation-1.6.0.crate 90703 BLAKE2B b7d63bb8b62cabc604084957aaff021df24a1291f0ebdcddc424cceefe10ad399ed53152211c3e7557e39e21255166f922256f9f8e1fb488d3bae368b49a378e SHA512 80c6f92d9b39602a05809dc63a7cb05a305441689b6056801097a882a36c9795aabd660f884f707daa7e7fe6ad4983f6e245c226962cc982dbfeea2ddfddf41e
+DIST unicode-width-0.1.7.crate 16644 BLAKE2B 8cc5ee2dfeeda8ffe3405a0d4f1576d2b3b8ede1a42cbefb0ba3bd0d71b53a92ceade86c4a06e9d5b31382955dc6e1152ae5cd279dc26dbc51f478dad1d0f64d SHA512 39b8a539c9009d0421f54ae68b139f21456c9cb03d743b58535a977f98bc9655cf42eaacfadbcff796c187a6f315ae16259ee22be9c2da5aa042172c6b464d84
+DIST unicode-xid-0.2.0.crate 14994 BLAKE2B e66b4255798f0ef1c81fb852613fee396a042d780d2158a171dbb5e7dedad0b3d2522f5401ae5d215f89ab8be4f5c371b046e4845693a65554c2a6eedc5d1e28 SHA512 590f727d8d8354023062ae5fe7ac5bed1bcf79d86b883effd7f33b3ea3b1c8922998a63d621ca6962a969e890fa6edd009871f21cd57b1969264f41ba3f78359
+DIST vec_map-0.8.1.crate 14959 BLAKE2B f5c179ccb4349d543747d5e3bb3edfca4bc9f3f64ba3c2d40fb1d9cba98433b7a0641387aafda6347c9b3603592c64bd820b217b46fbfcd37f802f298e5793ab SHA512 026cf10dc7ba98ae51dd312fc847cbaea41c25f0da5db6e0e22c2ecf75584bbf876d7bd96035fbbcf6696d702d5a3f25977e02a2d77cf519aa21e3ed05710e40
+DIST wasi-0.7.0.crate 33941 BLAKE2B de1e4e577a1237a233f81ff1a3bd7f888020a42d93a807187a154a3ae0593397358a8667a065f0cdd5497dd2a89889e418d33a0d42ab1631b3f99677e9ebd665 SHA512 1950e78df7f0ba21b917680633d092704f1fb906bd973de4ddc43cedb7bf449f6e881d50e3aa0d5595e8d58796915d582b69c116ef536f819b6f035affea18f0
+DIST winapi-0.3.8.crate 1128308 BLAKE2B e0e8ef6121f222b0500525192ebb69b26b71cc16f9ba92186f8ad6acc9de4cb8cc7c738f9c31f5bd223d2e34c93c496e8448c973d69797776004670c70abf69c SHA512 5a899ee5f09f30d742b8b8eba78da05cd9f4c664408fdeb9370373f8756a962a23e3f1c07619e745b3270138606c9a369076c02c3f5353f657df09d203d9a736
+DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2
+DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513
+EBUILD cbindgen-0.14.3.ebuild 970 BLAKE2B ebc12682113ef7cd06974b72bb5d45ad3005475e3bac615d061efe7a3b3493a2964633f3a77d2691ce0587835f552b924572fdc7803fdd33e67ae44ac9647ab8 SHA512 aaf99043f26afaac6bb138bc0cf5dd66c6f4eaf2568c17988f77e9ed93a5ff3ee4e36fcdb3ce71897b00b7d94a1f012b53faf86ef342a10fc2b6fc5a7befab15
+EBUILD cbindgen-0.14.4.ebuild 973 BLAKE2B d4b703a2fa4022ee6e8c683c73a6c29ef9b4de3aca7bebbe36f97deb8d7165b79dcce230ad0cdc9a1cddf14c0d933464e33c4d1b3a07378d0434765c4f96254d SHA512 f73de464787bba6289cf8eb24c0a77714b20de3fc3d5d4af36a00f39d5bc9f4a76f1d763811fd63afd9ff3a9b07abdc3a5b0b9f1cef6bca2a1a6584d8aec9023
diff --git a/dev-util/cbindgen/cbindgen-0.14.3.ebuild b/dev-util/cbindgen/cbindgen-0.14.3.ebuild
new file mode 100644
index 0000000..21e250b
--- /dev/null
+++ b/dev-util/cbindgen/cbindgen-0.14.3.ebuild
@@ -0,0 +1,54 @@
+# Copyright 2017-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+CRATES="
+ansi_term-0.11.0
+atty-0.2.13
+bitflags-1.2.1
+c2-chacha-0.2.3
+cbindgen-0.14.3
+cfg-if-0.1.10
+clap-2.33.0
+getrandom-0.1.13
+heck-0.3.1
+itoa-0.4.4
+libc-0.2.66
+log-0.4.8
+ppv-lite86-0.2.6
+proc-macro2-1.0.6
+quote-1.0.2
+rand-0.7.2
+rand_chacha-0.2.1
+rand_core-0.5.1
+rand_hc-0.2.0
+redox_syscall-0.1.56
+remove_dir_all-0.5.2
+ryu-1.0.2
+serde-1.0.104
+serde_derive-1.0.104
+serde_json-1.0.44
+strsim-0.8.0
+syn-1.0.11
+tempfile-3.1.0
+textwrap-0.11.0
+toml-0.5.5
+unicode-segmentation-1.6.0
+unicode-width-0.1.7
+unicode-xid-0.2.0
+vec_map-0.8.1
+wasi-0.7.0
+winapi-0.3.8
+winapi-i686-pc-windows-gnu-0.4.0
+winapi-x86_64-pc-windows-gnu-0.4.0
+"
+
+inherit cargo
+
+DESCRIPTION="A tool for generating C bindings to Rust code"
+HOMEPAGE="https://github.com/eqrion/cbindgen/"
+SRC_URI="$(cargo_crate_uris ${CRATES})"
+LICENSE="MIT MPL-2.0"
+SLOT="0"
+KEYWORDS="amd64 ~arm arm64 ~ppc64 x86"
diff --git a/dev-util/cbindgen/cbindgen-0.14.4.ebuild b/dev-util/cbindgen/cbindgen-0.14.4.ebuild
new file mode 100644
index 0000000..0c12824
--- /dev/null
+++ b/dev-util/cbindgen/cbindgen-0.14.4.ebuild
@@ -0,0 +1,54 @@
+# Copyright 2017-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+CRATES="
+ansi_term-0.11.0
+atty-0.2.13
+bitflags-1.2.1
+c2-chacha-0.2.3
+cbindgen-0.14.4
+cfg-if-0.1.10
+clap-2.33.0
+getrandom-0.1.13
+heck-0.3.1
+itoa-0.4.4
+libc-0.2.66
+log-0.4.8
+ppv-lite86-0.2.6
+proc-macro2-1.0.6
+quote-1.0.2
+rand-0.7.2
+rand_chacha-0.2.1
+rand_core-0.5.1
+rand_hc-0.2.0
+redox_syscall-0.1.56
+remove_dir_all-0.5.2
+ryu-1.0.2
+serde-1.0.104
+serde_derive-1.0.104
+serde_json-1.0.44
+strsim-0.8.0
+syn-1.0.11
+tempfile-3.1.0
+textwrap-0.11.0
+toml-0.5.5
+unicode-segmentation-1.6.0
+unicode-width-0.1.7
+unicode-xid-0.2.0
+vec_map-0.8.1
+wasi-0.7.0
+winapi-0.3.8
+winapi-i686-pc-windows-gnu-0.4.0
+winapi-x86_64-pc-windows-gnu-0.4.0
+"
+
+inherit cargo
+
+DESCRIPTION="A tool for generating C bindings to Rust code"
+HOMEPAGE="https://github.com/eqrion/cbindgen/"
+SRC_URI="$(cargo_crate_uris ${CRATES})"
+LICENSE="MIT MPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
diff --git a/dev-util/meson/Manifest b/dev-util/meson/Manifest
new file mode 100644
index 0000000..05a7c1c
--- /dev/null
+++ b/dev-util/meson/Manifest
@@ -0,0 +1,8 @@
+AUX 0.53.1-remove-asan-ld_preload.patch 946 BLAKE2B 2f43446f853b5233c7c959e0216eadae9d190efd4743a138afae73d42f082499793b4688e2419cb3ef38fe7c5e7f29b472e8a27e9ce8701c28f83f390f55dddd SHA512 50b7b4c269d186e3c2274297f04dae46484af4f2f090bef3fc42dfbecab94d8a91b31c27369cf40a52c7ce71cf96d9bc22601739b6e886c6c710f0665c2ef311
+AUX 0.53.1-remove-asan.patch 842 BLAKE2B 02864bbd41dd16d3e9e8e7ce9e9ef604f2fc6babd26958a4364147d392d56d8a87baec41fb009389a5fc989067019c6de89d1e2c82043ba7df463e32c99f885c SHA512 4abf8088832a1a9336fdffe04bc91a1fbab7363b72c5a1d14b22f408ea25f180d6526f8d6b3a2866a819f1895c93035869fff799da36b5040b8fb89a65ab0e23
+DIST meson-0.50.1.tar.gz 1402160 BLAKE2B 051e9949f3a216c1074ec826c6a232124a3d2615dc03f83f57bfe96427cd44aa95e2ec7c688e87252d0179882f91e0ccf440eda4b47ff2f0d3af7382a530e011 SHA512 0dcc19007b3b1626e198c0a4ddb0f37dfdfe25f447e511a772b302bffc02187a3e56046daea01a0ad5cf611d557bae12d5b858bb7a44f69919b9ac9ad696aafd
+DIST meson-0.53.1.tar.gz 1552121 BLAKE2B 3f0bbbeba6307397dfe5e49c1f978d6246d8e18317d0361b6f013f5c2ba55ad7cba53c985418686c20db159b7790b45a0c2e05d86f861cd0280fb07afdbeb847 SHA512 0c96c354bcd7e6945473c7df0ddff929ef2bae9c2dfc7b48c6c6174c7f2be4f798398929f9c4d5986aa5fc882305ff76371ad0d65a499f058b33b05ff7025859
+DIST meson-0.54.0.tar.gz 1683491 BLAKE2B 3016beb44c4401672947afa898253b69769f998e18e00baedc3bcb525a9923b9154d7db79cfa4c38fcf66eeaee8137f47917689fdde33674b1f0483b21923393 SHA512 e3c97ffd9409a543e45c8be7b12d4e8437de8dbd0cd236fbe092952d7d0833728d46ff6b679c8a73dae4c4016fdf38b43b56f3959a95968a29db109ebfe254e7
+EBUILD meson-0.50.1.ebuild 2291 BLAKE2B 4fa7e202464800dd5466f120d10fcc4ed55a591a60a7727e00df3dddedafc2e4e17cbfc813d9fb5732ab06bad07985553a56eca3cdfc1ff8867fad9836761ef2 SHA512 f1a48643c78c2326620419391e1a234810e8414929bbb6d478a361d20ae6680b7cd42fa48bd694619c06d6fe7e00072dcb479446b8880667b8884cf735d44567
+EBUILD meson-0.53.1.ebuild 1682 BLAKE2B 5cc1651bf2c30681948eafd4e6f4620d575ba136af9450838e2859a46d5a238b1ff063a5c591b611636b412be2ed582541b27eab377b5c85b167eb99142d4749 SHA512 2858564cb4b9457242ac4413b8e96fd40f7dcc621e050aed4c4fdc753191349a674d36324ab850b31f9a4b35499ae94e642336eb12905883e2ae4087a2cac08e
+EBUILD meson-0.54.0.ebuild 1682 BLAKE2B 5cc1651bf2c30681948eafd4e6f4620d575ba136af9450838e2859a46d5a238b1ff063a5c591b611636b412be2ed582541b27eab377b5c85b167eb99142d4749 SHA512 2858564cb4b9457242ac4413b8e96fd40f7dcc621e050aed4c4fdc753191349a674d36324ab850b31f9a4b35499ae94e642336eb12905883e2ae4087a2cac08e
diff --git a/dev-util/meson/files/0.53.1-remove-asan-ld_preload.patch b/dev-util/meson/files/0.53.1-remove-asan-ld_preload.patch
new file mode 100644
index 0000000..4ee1182
--- /dev/null
+++ b/dev-util/meson/files/0.53.1-remove-asan-ld_preload.patch
@@ -0,0 +1,27 @@
+From 75f2d7a004387edc7a7e73da5097bf01daf38769 Mon Sep 17 00:00:00 2001
+From: William Hubbs
+Date: Sat, 15 Feb 2020 12:24:42 -0600
+Subject: [PATCH 1/2] remove asan ld_preload
+
+ASAN and sandbox both want control over LD_PRELOAD
+https://bugs.gentoo.org/673016
+---
+ run_unittests.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/run_unittests.py b/run_unittests.py
+index 676604f4..1c9aaf0c 100755
+--- a/run_unittests.py
++++ b/run_unittests.py
+@@ -4985,7 +4985,7 @@ class LinuxlikeTests(BasePlatformTests):
+ r'Run-time dependency qt5 \(modules: Core\) found: YES 5.* \(pkg-config\)\n')
+
+ @skip_if_not_base_option('b_sanitize')
+- def test_generate_gir_with_address_sanitizer(self):
++ def _test_generate_gir_with_address_sanitizer(self):
+ if is_cygwin():
+ raise unittest.SkipTest('asan not available on Cygwin')
+ if is_openbsd():
+--
+2.24.1
+
diff --git a/dev-util/meson/files/0.53.1-remove-asan.patch b/dev-util/meson/files/0.53.1-remove-asan.patch
new file mode 100644
index 0000000..4cc2aea
--- /dev/null
+++ b/dev-util/meson/files/0.53.1-remove-asan.patch
@@ -0,0 +1,27 @@
+From 9ddb289ca9611281a45734d92fdfd2d5fb83f050 Mon Sep 17 00:00:00 2001
+From: William Hubbs
+Date: Sat, 15 Feb 2020 12:28:35 -0600
+Subject: [PATCH 2/2] remove asan
+
+ASAN is unsupported on some targets
+https://bugs.gentoo.org/692822
+---
+ run_unittests.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/run_unittests.py b/run_unittests.py
+index 1c9aaf0c..171ee0f0 100755
+--- a/run_unittests.py
++++ b/run_unittests.py
+@@ -5475,7 +5475,7 @@ class LinuxlikeTests(BasePlatformTests):
+ self.assertEqual(install_rpath, 'baz')
+
+ @skip_if_not_base_option('b_sanitize')
+- def test_pch_with_address_sanitizer(self):
++ def _test_pch_with_address_sanitizer(self):
+ if is_cygwin():
+ raise unittest.SkipTest('asan not available on Cygwin')
+ if is_openbsd():
+--
+2.24.1
+
diff --git a/dev-util/meson/meson-0.50.1.ebuild b/dev-util/meson/meson-0.50.1.ebuild
new file mode 100644
index 0000000..242273b
--- /dev/null
+++ b/dev-util/meson/meson-0.50.1.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2019 Gentoo Authors et al.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{5,6,7} )
+
+if [[ ${PV} = *9999* ]]; then
+ EGIT_REPO_URI="https://github.com/mesonbuild/meson"
+ inherit git-r3
+else
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+ KEYWORDS="*"
+fi
+
+inherit distutils-r1
+
+DESCRIPTION="Open source build system"
+HOMEPAGE="http://mesonbuild.com/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="vim-syntax bash-completion zsh-completion test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-util/ninja-1.5
+"
+
+DEPEND="
+ ${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-libs/glib:2
+ dev-libs/gobject-introspection
+ dev-vcs/git
+ virtual/pkgconfig
+ )
+"
+python_prepare_all() {
+ # ASAN and sandbox both want control over LD_PRELOAD
+ # https://bugs.gentoo.org/673016
+
+ # test_testsetups doesn't throw CalledProcessError with --setup=valgrind
+
+ # lcov up to 1.14 fails on gcc 9.1
+ # https://github.com/linux-test-project/lcov/issues/58
+ sed -e 's/test_generate_gir_with_address_sanitizer(/_&/' \
+ -e 's/test_testsetups(/_&/' \
+ -e 's/test_coverage(/_&/' \
+ -i run_unittests.py || die
+
+ # Remove test cases that break due to over-eager detection
+ rm -r "${S}/test cases/java"
+ rm -r "${S}/test cases/frameworks/17 mpi"
+ rm -r "${S}/test cases/frameworks/22 gir link order"
+ rm -r "${S}/test cases/frameworks/26 netcdf"
+
+ distutils-r1_python_prepare_all
+}
+
+src_test() {
+# tc-export PKG_CONFIG
+# if ${PKG_CONFIG} --exists Qt5Core && ! ${PKG_CONFIG} --exists Qt5Gui; then
+# ewarn "Found Qt5Core but not Qt5Gui; skipping tests"
+# else
+ distutils-r1_src_test
+# fi
+}
+
+python_test() {
+ (
+ # test_meson_installed
+ unset PYTHONDONTWRITEBYTECODE
+
+ # test_cross_file_system_paths
+ unset XDG_DATA_HOME
+
+ ${EPYTHON} -u run_tests.py
+ ) || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use vim-syntax ; then
+ insinto /usr/share/vim/vimfiles
+ doins -r data/syntax-highlighting/vim/{ftdetect,ftplugin,indent,syntax}
+ fi
+
+ if use bash-completion ; then
+ insinto /usr/share/bash-completion/completions
+ doins data/shell-completions/bash/meson
+ fi
+
+ if use zsh-completion ; then
+ insinto /usr/share/zsh/site-functions
+ doins data/shell-completions/zsh/_meson
+ fi
+}
diff --git a/dev-util/meson/meson-0.53.1.ebuild b/dev-util/meson/meson-0.53.1.ebuild
new file mode 100644
index 0000000..cbb17b7
--- /dev/null
+++ b/dev-util/meson/meson-0.53.1.ebuild
@@ -0,0 +1,78 @@
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3+ )
+DISTUTILS_USE_SETUPTOOLS="rdepend"
+
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+KEYWORDS="*"
+
+inherit distutils-r1 toolchain-funcs
+
+DESCRIPTION="Open source build system"
+HOMEPAGE="http://mesonbuild.com/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ test? (
+ dev-libs/glib:2
+ dev-libs/gobject-introspection
+ dev-util/ninja
+ dev-vcs/git
+ sys-libs/zlib[static-libs(+)]
+ virtual/pkgconfig
+ )
+"
+
+PATCHES=(
+ # ASAN and sandbox both want control over LD_PRELOAD
+ # https://bugs.gentoo.org/673016
+ "${FILESDIR}"/0.53.1-remove-asan-ld_preload.patch
+ # ASAN is unsupported on some targets
+ # https://bugs.gentoo.org/692822
+ "${FILESDIR}"/0.53.1-remove-asan.patch
+ )
+
+python_prepare_all() {
+
+ # Broken due to python2 script created by python_wrapper_setup
+ rm -r "test cases/frameworks/1 boost" || die
+
+ distutils-r1_python_prepare_all
+}
+
+src_test() {
+ tc-export PKG_CONFIG
+ if ${PKG_CONFIG} --exists Qt5Core && ! ${PKG_CONFIG} --exists Qt5Gui; then
+ ewarn "Found Qt5Core but not Qt5Gui; skipping tests"
+ else
+ # https://bugs.gentoo.org/687792
+ unset PKG_CONFIG
+ distutils-r1_src_test
+ fi
+}
+
+python_test() {
+ (
+ # test_meson_installed
+ unset PYTHONDONTWRITEBYTECODE
+
+ # test_cross_file_system_paths
+ unset XDG_DATA_HOME
+
+ ${EPYTHON} -u run_tests.py
+ ) || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /usr/share/vim/vimfiles
+ doins -r data/syntax-highlighting/vim/{ftdetect,indent,syntax}
+ insinto /usr/share/zsh/site-functions
+ doins data/shell-completions/zsh/_meson
+}
diff --git a/dev-util/meson/meson-0.54.0.ebuild b/dev-util/meson/meson-0.54.0.ebuild
new file mode 100644
index 0000000..cbb17b7
--- /dev/null
+++ b/dev-util/meson/meson-0.54.0.ebuild
@@ -0,0 +1,78 @@
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3+ )
+DISTUTILS_USE_SETUPTOOLS="rdepend"
+
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+KEYWORDS="*"
+
+inherit distutils-r1 toolchain-funcs
+
+DESCRIPTION="Open source build system"
+HOMEPAGE="http://mesonbuild.com/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ test? (
+ dev-libs/glib:2
+ dev-libs/gobject-introspection
+ dev-util/ninja
+ dev-vcs/git
+ sys-libs/zlib[static-libs(+)]
+ virtual/pkgconfig
+ )
+"
+
+PATCHES=(
+ # ASAN and sandbox both want control over LD_PRELOAD
+ # https://bugs.gentoo.org/673016
+ "${FILESDIR}"/0.53.1-remove-asan-ld_preload.patch
+ # ASAN is unsupported on some targets
+ # https://bugs.gentoo.org/692822
+ "${FILESDIR}"/0.53.1-remove-asan.patch
+ )
+
+python_prepare_all() {
+
+ # Broken due to python2 script created by python_wrapper_setup
+ rm -r "test cases/frameworks/1 boost" || die
+
+ distutils-r1_python_prepare_all
+}
+
+src_test() {
+ tc-export PKG_CONFIG
+ if ${PKG_CONFIG} --exists Qt5Core && ! ${PKG_CONFIG} --exists Qt5Gui; then
+ ewarn "Found Qt5Core but not Qt5Gui; skipping tests"
+ else
+ # https://bugs.gentoo.org/687792
+ unset PKG_CONFIG
+ distutils-r1_src_test
+ fi
+}
+
+python_test() {
+ (
+ # test_meson_installed
+ unset PYTHONDONTWRITEBYTECODE
+
+ # test_cross_file_system_paths
+ unset XDG_DATA_HOME
+
+ ${EPYTHON} -u run_tests.py
+ ) || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /usr/share/vim/vimfiles
+ doins -r data/syntax-highlighting/vim/{ftdetect,indent,syntax}
+ insinto /usr/share/zsh/site-functions
+ doins data/shell-completions/zsh/_meson
+}
diff --git a/gui-libs/wlroots/Manifest b/gui-libs/wlroots/Manifest
new file mode 100644
index 0000000..427f04f
--- /dev/null
+++ b/gui-libs/wlroots/Manifest
@@ -0,0 +1,12 @@
+DIST wlroots-0.10.1.tar.gz 455232 BLAKE2B 0f4def61d8501b7746ccc589d59586b3641340fb7633b0c4a7b518f1b1b5285c1ee71fb629aa0a0e649c15a4ae69b5cfbc7a034c96e545765a96ddda35f10609 SHA512 e1af5a5b6484b5f4060090e13d22d699d5aaa6926e1a6b1043d2b900f88a002ed67dacf8498f23ed3008bf8a35500f415f95b3dbcf50de5da354f309f9161d58
+DIST wlroots-0.11.0.tar.gz 481126 BLAKE2B d2262298f24948293643b02c823851b4643289f776bc087d7b67240f4c9c76a7aca03c7dc7e13a65b3d0d3a7c8a5f5246a0e282d2cb3b88bbae0ef94b906f18a SHA512 a8a0c498d10664ff0a5aab8ad1a4fd034179542eff38b058e1da7e4653c42136e4a3586634f3d0a25a985aa7f4c5d17260117d9f4a70a7f8060494c04456f575
+DIST wlroots-0.4.1.tar.gz 480127 BLAKE2B f193860ef9e0852b053270bdaa44b491a8c65a76dc01c71690f7a006eac46e606cca95675e6dec4d65487d9b98bcabb7cd12578f028a9cb9c5cd648e47754df4 SHA512 bd8863c7f285579d81b9372f1335c10eb2d0fd7b46b7589e6b2acad53fa373f2e3b549d2c31876d87d66851af0415a12a011a05953ffe2384b718db6d95cba2e
+DIST wlroots-0.5.0.tar.gz 481154 BLAKE2B 094c7c92191ea9c581debc90fa7b0117ed15328c11a098e53cec05b326e84c54481a69382ef9a592337ade370ffb55ea98b545794471808dee9f41ee9db8194f SHA512 4defecff91a6179d3a6b7d05c92c14b20c7fa69263a889869912e913a5d1e29f9fd4684f9816b03e2427a21c004d64236f35d8282e02e8d27d826442f1f8b3a7
+DIST wlroots-0.6.0.tar.gz 497934 BLAKE2B a0b631831752e533f83ed62e402ef69b0994df050fd643cf2ef89556face4a822b3936bc758b70ab160eedda8ced16c0992dc209600914095784bba97bd26ee2 SHA512 c205d4303a381e11ef2f4db2faac1ddf9ad85c675824aae9cfe62d9f8bd313f1568d4810db1d006416783b50c8364198648a46d1ba453a0d8f659d6920618286
+EBUILD wlroots-0.10.1.ebuild 2560 BLAKE2B 76b28e33dbe932fe89160a4806a46d3f1de2118ea05545d2248f3c7ddf59609bcd339dbe34673054943e7ca37360d3dec773630f0e2a4dde803062aa14facab3 SHA512 aebd49d399a8989d56bd2e08291da1af80432ec9cf642446bc5aa6f71c8c63d9f3467243fd43d216693831dfa432e1ba4be494a79b999254e6a741e730559ff6
+EBUILD wlroots-0.11.0.ebuild 2560 BLAKE2B 76b28e33dbe932fe89160a4806a46d3f1de2118ea05545d2248f3c7ddf59609bcd339dbe34673054943e7ca37360d3dec773630f0e2a4dde803062aa14facab3 SHA512 aebd49d399a8989d56bd2e08291da1af80432ec9cf642446bc5aa6f71c8c63d9f3467243fd43d216693831dfa432e1ba4be494a79b999254e6a741e730559ff6
+EBUILD wlroots-0.4.1.ebuild 2556 BLAKE2B 387bad0c2177db317674eca833112491e6a9fb78dfe1f6f652450a557bcc5ef65c575f0024b069e6b93122b94e6fc180f8d046ee4d83c2be571150458fdb8868 SHA512 4c57f85f868d258bbe8168137f4e5f639dd617ab994a93324a115ed31e3ff2dddd802bc787cada563df8df780cd7a4ad3d1a57cf2b64c6408c862ffa64178c41
+EBUILD wlroots-0.5.0.ebuild 2560 BLAKE2B 888dbb482966d512c7c448ef30061acf9bf19f311cb1cede67eb51d4969236f366980b2d13a852a6a19e5ed0dfd3969abb739796b3ba77556a70447245ec6ac2 SHA512 60e2b90b688e7e62e1a34077e5edbf07c1103da4d9198fb224b511b01a78c98011a835e6f547388646b337509f912d93ef674e919a08da2c24a6383ce74d0f21
+EBUILD wlroots-0.6.0.ebuild 2560 BLAKE2B 76b28e33dbe932fe89160a4806a46d3f1de2118ea05545d2248f3c7ddf59609bcd339dbe34673054943e7ca37360d3dec773630f0e2a4dde803062aa14facab3 SHA512 aebd49d399a8989d56bd2e08291da1af80432ec9cf642446bc5aa6f71c8c63d9f3467243fd43d216693831dfa432e1ba4be494a79b999254e6a741e730559ff6
+EBUILD wlroots-9999.ebuild 2563 BLAKE2B 3702306601cfb39e3d3e6719cfa75e6c23ee7f35814c804a4eb9997bcc004b5ff57f328d17625bd1313ca7898ee86211a3f1857c401886e39d9971443ccd478e SHA512 9c69220a61469efe672e06414dbdac04e7dbf25eb5b3e8cda4696752b0604421144b167cf5836ef413d500427edcc5a7d02dbc821027f3952bcb385cb310d6ad
+MISC metadata.xml 1682 BLAKE2B 5713fb5006f1c178ba401ff4831ff991ec1e2270bf7d7961a0727a8934cf9262654fa12b9e13cd14803a8ace50c04dcdcdd37ff6162239fb22c30c84970b1f7a SHA512 88263936158e8d423f79ac9932286674e0b7e6e50f0279cefc07fa3961cda5c65874b14029553ce8b93dd22a7715ca40b1db32d239498d144fc6c901000e5018
diff --git a/gui-libs/wlroots/metadata.xml b/gui-libs/wlroots/metadata.xml
new file mode 100644
index 0000000..5fb5999
--- /dev/null
+++ b/gui-libs/wlroots/metadata.xml
@@ -0,0 +1,40 @@
+
+
+
+
+ bman@gentoo.org
+ Aaron Bauman
+
+
+ speedjack95@gmail.com
+ Niccolò Scatena
+
+
+ Pluggable, composable, unopinionated modules for building a Wayland
+ compositor.
+
+ wlroots implements a huge variety of Wayland compositor features and
+ implements them right. By using wlroots, you get high performance,
+ excellent hardware compatibility, broad support for many wayland
+ interfaces, and comfortable development tools.
+
+ wlroots is developed under the direction of the dev-libs/sway project.
+
+
+
+ swaywm/wlroots
+
+ sir@cmpwn.com
+ Drew DeVault
+
+ https://github.com/swaywm/wlroots/issues
+ https://github.com/swaywm/wlroots/wiki
+ https://github.com/swaywm/wlroots/releases
+
+
diff --git a/gui-libs/wlroots/wlroots-0.10.1.ebuild b/gui-libs/wlroots/wlroots-0.10.1.ebuild
new file mode 100644
index 0000000..99d9b05
--- /dev/null
+++ b/gui-libs/wlroots/wlroots-0.10.1.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit fcaps meson
+
+DESCRIPTION="Pluggable, composable, unopinionated modules for building a Wayland compositor"
+HOMEPAGE="https://github.com/swaywm/wlroots"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://github.com/swaywm/${PN}.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/swaywm/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="amd64 arm64 x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="elogind icccm rootston systemd x11-backend X"
+REQUIRED_USE="?? ( elogind systemd )"
+
+DEPEND="
+ >=dev-libs/libinput-1.9.0:0=
+ >=dev-libs/wayland-1.17.0
+ media-libs/mesa[egl,gles2,gbm]
+ virtual/libudev
+ x11-libs/libdrm
+ x11-libs/libxkbcommon
+ x11-libs/pixman
+ elogind? ( >=sys-auth/elogind-237 )
+ icccm? ( x11-libs/xcb-util-wm )
+ systemd? ( >=sys-apps/systemd-237 )
+ x11-backend? ( x11-libs/libxcb:0= )
+ X? (
+ x11-base/xorg-server[wayland]
+ x11-libs/libxcb:0=
+ x11-libs/xcb-util-image
+ )
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ >=dev-libs/wayland-protocols-1.17
+ virtual/pkgconfig
+"
+
+FILECAPS=( cap_sys_admin usr/bin/rootston )
+
+src_configure() {
+ # xcb-util-errors is not on Gentoo Repository (and upstream seems inactive?)
+ local emesonargs=(
+ "-Dxcb-errors=disabled"
+ -Dlibcap=$(usex filecaps enabled disabled)
+ -Dxcb-icccm=$(usex icccm enabled disabled)
+ -Dxwayland=$(usex X enabled disabled)
+ -Dx11-backend=$(usex x11-backend enabled disabled)
+ $(meson_use rootston)
+ "-Dexamples=false"
+ "-Dwerror=false"
+ )
+ if use systemd; then
+ emesonargs+=("-Dlogind=enabled" "-Dlogind-provider=systemd")
+ elif use elogind; then
+ emesonargs+=("-Dlogind=enabled" "-Dlogind-provider=elogind")
+ else
+ emesonargs+=("-Dlogind=disabled")
+ fi
+
+ meson_src_configure
+}
+
+src_install() {
+ if use rootston; then
+ dobin "${BUILD_DIR}"/rootston/rootston
+ newdoc rootston/rootston.ini.example rootston.ini
+ fi
+
+ meson_src_install
+}
+
+pkg_postinst() {
+ elog "You must be in the input group to allow your compositor"
+ elog "to access input devices via libinput."
+ if use rootston; then
+ elog ""
+ elog "You should copy (and decompress) the example configuration file"
+ elog "from ${EROOT:-${ROOT}}/usr/share/doc/${PF}/rootston.ini"
+ elog "to the working directory from where you launch rootston"
+ elog "(or pass the '-C path-to-config' option to rootston)."
+ if ! use systemd && ! use elogind; then
+ elog ""
+ elog "If you use ConsoleKit2, remember to launch rootston using:"
+ elog "exec ck-launch-session rootston"
+
+ fcaps_pkg_postinst
+ fi
+ fi
+}
diff --git a/gui-libs/wlroots/wlroots-0.11.0.ebuild b/gui-libs/wlroots/wlroots-0.11.0.ebuild
new file mode 100644
index 0000000..99d9b05
--- /dev/null
+++ b/gui-libs/wlroots/wlroots-0.11.0.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit fcaps meson
+
+DESCRIPTION="Pluggable, composable, unopinionated modules for building a Wayland compositor"
+HOMEPAGE="https://github.com/swaywm/wlroots"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://github.com/swaywm/${PN}.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/swaywm/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="amd64 arm64 x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="elogind icccm rootston systemd x11-backend X"
+REQUIRED_USE="?? ( elogind systemd )"
+
+DEPEND="
+ >=dev-libs/libinput-1.9.0:0=
+ >=dev-libs/wayland-1.17.0
+ media-libs/mesa[egl,gles2,gbm]
+ virtual/libudev
+ x11-libs/libdrm
+ x11-libs/libxkbcommon
+ x11-libs/pixman
+ elogind? ( >=sys-auth/elogind-237 )
+ icccm? ( x11-libs/xcb-util-wm )
+ systemd? ( >=sys-apps/systemd-237 )
+ x11-backend? ( x11-libs/libxcb:0= )
+ X? (
+ x11-base/xorg-server[wayland]
+ x11-libs/libxcb:0=
+ x11-libs/xcb-util-image
+ )
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ >=dev-libs/wayland-protocols-1.17
+ virtual/pkgconfig
+"
+
+FILECAPS=( cap_sys_admin usr/bin/rootston )
+
+src_configure() {
+ # xcb-util-errors is not on Gentoo Repository (and upstream seems inactive?)
+ local emesonargs=(
+ "-Dxcb-errors=disabled"
+ -Dlibcap=$(usex filecaps enabled disabled)
+ -Dxcb-icccm=$(usex icccm enabled disabled)
+ -Dxwayland=$(usex X enabled disabled)
+ -Dx11-backend=$(usex x11-backend enabled disabled)
+ $(meson_use rootston)
+ "-Dexamples=false"
+ "-Dwerror=false"
+ )
+ if use systemd; then
+ emesonargs+=("-Dlogind=enabled" "-Dlogind-provider=systemd")
+ elif use elogind; then
+ emesonargs+=("-Dlogind=enabled" "-Dlogind-provider=elogind")
+ else
+ emesonargs+=("-Dlogind=disabled")
+ fi
+
+ meson_src_configure
+}
+
+src_install() {
+ if use rootston; then
+ dobin "${BUILD_DIR}"/rootston/rootston
+ newdoc rootston/rootston.ini.example rootston.ini
+ fi
+
+ meson_src_install
+}
+
+pkg_postinst() {
+ elog "You must be in the input group to allow your compositor"
+ elog "to access input devices via libinput."
+ if use rootston; then
+ elog ""
+ elog "You should copy (and decompress) the example configuration file"
+ elog "from ${EROOT:-${ROOT}}/usr/share/doc/${PF}/rootston.ini"
+ elog "to the working directory from where you launch rootston"
+ elog "(or pass the '-C path-to-config' option to rootston)."
+ if ! use systemd && ! use elogind; then
+ elog ""
+ elog "If you use ConsoleKit2, remember to launch rootston using:"
+ elog "exec ck-launch-session rootston"
+
+ fcaps_pkg_postinst
+ fi
+ fi
+}
diff --git a/gui-libs/wlroots/wlroots-0.4.1.ebuild b/gui-libs/wlroots/wlroots-0.4.1.ebuild
new file mode 100644
index 0000000..9d83039
--- /dev/null
+++ b/gui-libs/wlroots/wlroots-0.4.1.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit fcaps meson
+
+DESCRIPTION="Pluggable, composable, unopinionated modules for building a Wayland compositor"
+HOMEPAGE="https://github.com/swaywm/wlroots"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://github.com/swaywm/${PN}.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/swaywm/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="elogind icccm rootston systemd x11-backend X"
+REQUIRED_USE="?? ( elogind systemd )"
+
+DEPEND="
+ >=dev-libs/libinput-1.7.0:0=
+ >=dev-libs/wayland-1.16.0
+ media-libs/mesa[egl,gles2,gbm]
+ virtual/libudev
+ x11-libs/libdrm
+ x11-libs/libxkbcommon
+ x11-libs/pixman
+ elogind? ( >=sys-auth/elogind-237 )
+ icccm? ( x11-libs/xcb-util-wm )
+ systemd? ( >=sys-apps/systemd-237 )
+ x11-backend? ( x11-libs/libxcb:0= )
+ X? (
+ x11-base/xorg-server[wayland]
+ x11-libs/libxcb:0=
+ x11-libs/xcb-util-image
+ )
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ >=dev-libs/wayland-protocols-1.17
+ virtual/pkgconfig
+"
+
+FILECAPS=( cap_sys_admin usr/bin/rootston )
+
+src_configure() {
+ # xcb-util-errors is not on Gentoo Repository (and upstream seems inactive?)
+ local emesonargs=(
+ "-Dxcb-errors=disabled"
+ -Dlibcap=$(usex filecaps enabled disabled)
+ -Dxcb-icccm=$(usex icccm enabled disabled)
+ -Dxwayland=$(usex X enabled disabled)
+ -Dx11-backend=$(usex x11-backend enabled disabled)
+ $(meson_use rootston)
+ "-Dexamples=false"
+ "-Dwerror=false"
+ )
+ if use systemd; then
+ emesonargs+=("-Dlogind=enabled" "-Dlogind-provider=systemd")
+ elif use elogind; then
+ emesonargs+=("-Dlogind=enabled" "-Dlogind-provider=elogind")
+ else
+ emesonargs+=("-Dlogind=disabled")
+ fi
+
+ meson_src_configure
+}
+
+src_install() {
+ if use rootston; then
+ dobin "${BUILD_DIR}"/rootston/rootston
+ newdoc rootston/rootston.ini.example rootston.ini
+ fi
+
+ meson_src_install
+}
+
+pkg_postinst() {
+ elog "You must be in the input group to allow your compositor"
+ elog "to access input devices via libinput."
+ if use rootston; then
+ elog ""
+ elog "You should copy (and decompress) the example configuration file"
+ elog "from ${EROOT:-${ROOT}}/usr/share/doc/${PF}/rootston.ini"
+ elog "to the working directory from where you launch rootston"
+ elog "(or pass the '-C path-to-config' option to rootston)."
+ if ! use systemd && ! use elogind; then
+ elog ""
+ elog "If you use ConsoleKit2, remember to launch rootston using:"
+ elog "exec ck-launch-session rootston"
+
+ fcaps_pkg_postinst
+ fi
+ fi
+}
diff --git a/gui-libs/wlroots/wlroots-0.5.0.ebuild b/gui-libs/wlroots/wlroots-0.5.0.ebuild
new file mode 100644
index 0000000..c41237d
--- /dev/null
+++ b/gui-libs/wlroots/wlroots-0.5.0.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit fcaps meson
+
+DESCRIPTION="Pluggable, composable, unopinionated modules for building a Wayland compositor"
+HOMEPAGE="https://github.com/swaywm/wlroots"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://github.com/swaywm/${PN}.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/swaywm/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="amd64 arm64 x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="elogind icccm rootston systemd x11-backend X"
+REQUIRED_USE="?? ( elogind systemd )"
+
+DEPEND="
+ >=dev-libs/libinput-1.7.0:0=
+ >=dev-libs/wayland-1.16.0
+ media-libs/mesa[egl,gles2,gbm]
+ virtual/libudev
+ x11-libs/libdrm
+ x11-libs/libxkbcommon
+ x11-libs/pixman
+ elogind? ( >=sys-auth/elogind-237 )
+ icccm? ( x11-libs/xcb-util-wm )
+ systemd? ( >=sys-apps/systemd-237 )
+ x11-backend? ( x11-libs/libxcb:0= )
+ X? (
+ x11-base/xorg-server[wayland]
+ x11-libs/libxcb:0=
+ x11-libs/xcb-util-image
+ )
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ >=dev-libs/wayland-protocols-1.17
+ virtual/pkgconfig
+"
+
+FILECAPS=( cap_sys_admin usr/bin/rootston )
+
+src_configure() {
+ # xcb-util-errors is not on Gentoo Repository (and upstream seems inactive?)
+ local emesonargs=(
+ "-Dxcb-errors=disabled"
+ -Dlibcap=$(usex filecaps enabled disabled)
+ -Dxcb-icccm=$(usex icccm enabled disabled)
+ -Dxwayland=$(usex X enabled disabled)
+ -Dx11-backend=$(usex x11-backend enabled disabled)
+ $(meson_use rootston)
+ "-Dexamples=false"
+ "-Dwerror=false"
+ )
+ if use systemd; then
+ emesonargs+=("-Dlogind=enabled" "-Dlogind-provider=systemd")
+ elif use elogind; then
+ emesonargs+=("-Dlogind=enabled" "-Dlogind-provider=elogind")
+ else
+ emesonargs+=("-Dlogind=disabled")
+ fi
+
+ meson_src_configure
+}
+
+src_install() {
+ if use rootston; then
+ dobin "${BUILD_DIR}"/rootston/rootston
+ newdoc rootston/rootston.ini.example rootston.ini
+ fi
+
+ meson_src_install
+}
+
+pkg_postinst() {
+ elog "You must be in the input group to allow your compositor"
+ elog "to access input devices via libinput."
+ if use rootston; then
+ elog ""
+ elog "You should copy (and decompress) the example configuration file"
+ elog "from ${EROOT:-${ROOT}}/usr/share/doc/${PF}/rootston.ini"
+ elog "to the working directory from where you launch rootston"
+ elog "(or pass the '-C path-to-config' option to rootston)."
+ if ! use systemd && ! use elogind; then
+ elog ""
+ elog "If you use ConsoleKit2, remember to launch rootston using:"
+ elog "exec ck-launch-session rootston"
+
+ fcaps_pkg_postinst
+ fi
+ fi
+}
diff --git a/gui-libs/wlroots/wlroots-0.6.0.ebuild b/gui-libs/wlroots/wlroots-0.6.0.ebuild
new file mode 100644
index 0000000..99d9b05
--- /dev/null
+++ b/gui-libs/wlroots/wlroots-0.6.0.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit fcaps meson
+
+DESCRIPTION="Pluggable, composable, unopinionated modules for building a Wayland compositor"
+HOMEPAGE="https://github.com/swaywm/wlroots"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://github.com/swaywm/${PN}.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/swaywm/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="amd64 arm64 x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="elogind icccm rootston systemd x11-backend X"
+REQUIRED_USE="?? ( elogind systemd )"
+
+DEPEND="
+ >=dev-libs/libinput-1.9.0:0=
+ >=dev-libs/wayland-1.17.0
+ media-libs/mesa[egl,gles2,gbm]
+ virtual/libudev
+ x11-libs/libdrm
+ x11-libs/libxkbcommon
+ x11-libs/pixman
+ elogind? ( >=sys-auth/elogind-237 )
+ icccm? ( x11-libs/xcb-util-wm )
+ systemd? ( >=sys-apps/systemd-237 )
+ x11-backend? ( x11-libs/libxcb:0= )
+ X? (
+ x11-base/xorg-server[wayland]
+ x11-libs/libxcb:0=
+ x11-libs/xcb-util-image
+ )
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ >=dev-libs/wayland-protocols-1.17
+ virtual/pkgconfig
+"
+
+FILECAPS=( cap_sys_admin usr/bin/rootston )
+
+src_configure() {
+ # xcb-util-errors is not on Gentoo Repository (and upstream seems inactive?)
+ local emesonargs=(
+ "-Dxcb-errors=disabled"
+ -Dlibcap=$(usex filecaps enabled disabled)
+ -Dxcb-icccm=$(usex icccm enabled disabled)
+ -Dxwayland=$(usex X enabled disabled)
+ -Dx11-backend=$(usex x11-backend enabled disabled)
+ $(meson_use rootston)
+ "-Dexamples=false"
+ "-Dwerror=false"
+ )
+ if use systemd; then
+ emesonargs+=("-Dlogind=enabled" "-Dlogind-provider=systemd")
+ elif use elogind; then
+ emesonargs+=("-Dlogind=enabled" "-Dlogind-provider=elogind")
+ else
+ emesonargs+=("-Dlogind=disabled")
+ fi
+
+ meson_src_configure
+}
+
+src_install() {
+ if use rootston; then
+ dobin "${BUILD_DIR}"/rootston/rootston
+ newdoc rootston/rootston.ini.example rootston.ini
+ fi
+
+ meson_src_install
+}
+
+pkg_postinst() {
+ elog "You must be in the input group to allow your compositor"
+ elog "to access input devices via libinput."
+ if use rootston; then
+ elog ""
+ elog "You should copy (and decompress) the example configuration file"
+ elog "from ${EROOT:-${ROOT}}/usr/share/doc/${PF}/rootston.ini"
+ elog "to the working directory from where you launch rootston"
+ elog "(or pass the '-C path-to-config' option to rootston)."
+ if ! use systemd && ! use elogind; then
+ elog ""
+ elog "If you use ConsoleKit2, remember to launch rootston using:"
+ elog "exec ck-launch-session rootston"
+
+ fcaps_pkg_postinst
+ fi
+ fi
+}
diff --git a/gui-libs/wlroots/wlroots-9999.ebuild b/gui-libs/wlroots/wlroots-9999.ebuild
new file mode 100644
index 0000000..db03b0f
--- /dev/null
+++ b/gui-libs/wlroots/wlroots-9999.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit fcaps meson
+
+DESCRIPTION="Pluggable, composable, unopinionated modules for building a Wayland compositor"
+HOMEPAGE="https://github.com/swaywm/wlroots"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://github.com/swaywm/${PN}.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/swaywm/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="elogind icccm rootston systemd x11-backend X"
+REQUIRED_USE="?? ( elogind systemd )"
+
+DEPEND="
+ >=dev-libs/libinput-1.9.0:0=
+ >=dev-libs/wayland-1.17.0
+ media-libs/mesa[egl,gles2,gbm]
+ virtual/libudev
+ x11-libs/libdrm
+ x11-libs/libxkbcommon
+ x11-libs/pixman
+ elogind? ( >=sys-auth/elogind-237 )
+ icccm? ( x11-libs/xcb-util-wm )
+ systemd? ( >=sys-apps/systemd-237 )
+ x11-backend? ( x11-libs/libxcb:0= )
+ X? (
+ x11-base/xorg-server[wayland]
+ x11-libs/libxcb:0=
+ x11-libs/xcb-util-image
+ )
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ >=dev-libs/wayland-protocols-1.17
+ virtual/pkgconfig
+"
+
+FILECAPS=( cap_sys_admin usr/bin/rootston )
+
+src_configure() {
+ # xcb-util-errors is not on Gentoo Repository (and upstream seems inactive?)
+ local emesonargs=(
+ "-Dxcb-errors=disabled"
+ -Dlibcap=$(usex filecaps enabled disabled)
+ -Dxcb-icccm=$(usex icccm enabled disabled)
+ -Dxwayland=$(usex X enabled disabled)
+ -Dx11-backend=$(usex x11-backend enabled disabled)
+ $(meson_use rootston)
+ "-Dexamples=false"
+ "-Dwerror=false"
+ )
+ if use systemd; then
+ emesonargs+=("-Dlogind=enabled" "-Dlogind-provider=systemd")
+ elif use elogind; then
+ emesonargs+=("-Dlogind=enabled" "-Dlogind-provider=elogind")
+ else
+ emesonargs+=("-Dlogind=disabled")
+ fi
+
+ meson_src_configure
+}
+
+src_install() {
+ if use rootston; then
+ dobin "${BUILD_DIR}"/rootston/rootston
+ newdoc rootston/rootston.ini.example rootston.ini
+ fi
+
+ meson_src_install
+}
+
+pkg_postinst() {
+ elog "You must be in the input group to allow your compositor"
+ elog "to access input devices via libinput."
+ if use rootston; then
+ elog ""
+ elog "You should copy (and decompress) the example configuration file"
+ elog "from ${EROOT:-${ROOT}}/usr/share/doc/${PF}/rootston.ini"
+ elog "to the working directory from where you launch rootston"
+ elog "(or pass the '-C path-to-config' option to rootston)."
+ if ! use systemd && ! use elogind; then
+ elog ""
+ elog "If you use ConsoleKit2, remember to launch rootston using:"
+ elog "exec ck-launch-session rootston"
+
+ fcaps_pkg_postinst
+ fi
+ fi
+}
diff --git a/gui-libs/wpebackend-fdo/Manifest b/gui-libs/wpebackend-fdo/Manifest
new file mode 100644
index 0000000..dcff90a
--- /dev/null
+++ b/gui-libs/wpebackend-fdo/Manifest
@@ -0,0 +1,5 @@
+AUX 1.4.0-eglmesaext-include.patch 305 BLAKE2B 14449638730ad168130723fb9a967e50ee9f31edc1072ad5ba6668f1a95628924896d43e03986793329f6fe91a59810e3081cfb0e0608e81e38f3ecc63ac6e66 SHA512 f77fe86153cb90648057a5348bab6bbc69f8fec78b9c9a11e70f4fb412f41d32734049ebec53907792475deff577f44a2930e6e9ec419bef17e07491d1ded80d
+DIST wpebackend-fdo-1.4.0.tar.xz 30204 BLAKE2B dda32e0408a8fd98dc1d03c4606e20fb219fe722aef24360e31cd62027601a4795dbdbf026925e284e6b87f223e6e79824e8e6bab181b7bbf42a9db0664358dc SHA512 f94167b13345adfda15312b16e5de04910f812c7481f7e3c8a00163ce8387be22373867b51b2c5cb424e62de877c1aaa48592aac85ec9cc03c969c7e83185660
+DIST wpebackend-fdo-1.6.0.tar.xz 35004 BLAKE2B 0a0b8eba28d77300b273e0ca7fb64a9d44b77ee975a68b814b2775d27e0bb1509cb7af9376ed734dbd02b5bf0c0a69c98ceec14cc854f0790b7fe1c4ae4a7d9d SHA512 26827684419d24c52d303d0caffc37d62cdd4bff7335660259167e46ad309b111ce5bccfc9656a0c62fed169f45bfa0c84d2b9ad9437445aa512dec89bd9e8bc
+EBUILD wpebackend-fdo-1.4.0.ebuild 642 BLAKE2B bff3131654afd2c3bfa12e9173b34202e7c21dd78c1611efdbabf1b9027ac75046d98793349de4c37a745c7114665af1e9b9d8b008a9927b24029d285b3061c6 SHA512 e6a2c5ffff5e995510df11da5a90fea9d249e8d03e03bb47f8efc2ea474c6c1c458461dd0612f6fdd82292840e5dc6f95d6cbac8fc7ad391053c4839a7b671f1
+EBUILD wpebackend-fdo-1.6.0.ebuild 644 BLAKE2B de4d9eccf96b2c25e22a9bc94b8f3a16b2f3f00374becfb3ca80f6aae3464ffdd5cf83a7927be3009e7042b718f57b0c6ef14439eb1d6cb65bb215018de08a70 SHA512 3aaa2ac49142e8c7ba125e7224880138025295046511b6793838c185f694580c9258f81e1dd87cf4d50cc9db6db2b00f471fabfa9728e3fdffb0b21328afa3bb
diff --git a/gui-libs/wpebackend-fdo/files/1.4.0-eglmesaext-include.patch b/gui-libs/wpebackend-fdo/files/1.4.0-eglmesaext-include.patch
new file mode 100644
index 0000000..6969d7b
--- /dev/null
+++ b/gui-libs/wpebackend-fdo/files/1.4.0-eglmesaext-include.patch
@@ -0,0 +1,12 @@
+diff --git a/src/ws.cpp b/src/ws.cpp
+index fc20823..54d147d 100644
+--- a/src/ws.cpp
++++ b/src/ws.cpp
+@@ -27,6 +27,7 @@
+
+ #include
+ #include
++#include
+ #include "linux-dmabuf/linux-dmabuf.h"
+ #include "bridge/wpe-bridge-server-protocol.h"
+ #include
diff --git a/gui-libs/wpebackend-fdo/wpebackend-fdo-1.4.0.ebuild b/gui-libs/wpebackend-fdo/wpebackend-fdo-1.4.0.ebuild
new file mode 100644
index 0000000..b45614a
--- /dev/null
+++ b/gui-libs/wpebackend-fdo/wpebackend-fdo-1.4.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="WPE backend designed for Linux desktop systems"
+HOMEPAGE="https://wpewebkit.org/"
+SRC_URI="https://wpewebkit.org/releases/${P}.tar.xz"
+
+LICENSE="BSD-2"
+SLOT="1.0"
+IUSE=""
+
+KEYWORDS="*"
+
+RDEPEND="
+ media-libs/mesa[egl]
+ dev-libs/glib:2
+ >=dev-libs/wayland-1.10
+ gui-libs/libwpe:1.0
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PV}-eglmesaext-include.patch
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_DOCS=OFF # hotdoc not packaged
+ )
+
+ cmake_src_configure
+}
diff --git a/gui-libs/wpebackend-fdo/wpebackend-fdo-1.6.0.ebuild b/gui-libs/wpebackend-fdo/wpebackend-fdo-1.6.0.ebuild
new file mode 100644
index 0000000..8b7a4b5
--- /dev/null
+++ b/gui-libs/wpebackend-fdo/wpebackend-fdo-1.6.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="WPE backend designed for Linux desktop systems"
+HOMEPAGE="https://wpewebkit.org/"
+SRC_URI="https://wpewebkit.org/releases/${P}.tar.xz"
+
+LICENSE="BSD-2"
+SLOT="1.0"
+IUSE=""
+
+KEYWORDS="*"
+
+RDEPEND="
+ media-libs/mesa[egl]
+ dev-libs/glib:2
+ >=dev-libs/wayland-1.10
+ gui-libs/libwpe:1.0
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ # "${FILESDIR}"/${PV}-eglmesaext-include.patch
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_DOCS=OFF # hotdoc not packaged
+ )
+
+ cmake_src_configure
+}
diff --git a/gui-wm/sway/Manifest b/gui-wm/sway/Manifest
new file mode 100644
index 0000000..177726b
--- /dev/null
+++ b/gui-wm/sway/Manifest
@@ -0,0 +1,10 @@
+DIST sway-1.0.tar.gz 5474548 BLAKE2B bea0a72c374b75f027e466d83e8c06abe32205e0cda80776b0e48e327a6da4e965a6a575595e5a38bcb125294c509b5d9a1db17604dd9e9032acef404366bdb9 SHA512 57e2610244c8bcd2b09bb5396113176d118ee5a0688aea297d4c191eda70ce29b36ff64e05c57d1a32a31cc4f2ac2562fd3cb3890508a8f3c7cbcb9fb017171d
+DIST sway-1.1.1.tar.gz 5480615 BLAKE2B 2cc55535a030d5d057c332a8b2647f394ec8f08a3a5aebe48e0bd21da718eac23bdbcc5a2ce26624efb9360518e5f14eaafe406e1c7d9b3eb81621bab7b6c39c SHA512 2585446ca0936df41c7959b6b48487b25c86f1a8a3bedcd146aab023a873a416ce750698e3cabcd9cb861e35bbd7e280574ff477152906669af9b17d3e54028e
+DIST sway-1.4.tar.gz 5514489 BLAKE2B 31eb1aee32079e643cc7a0263a097000c089e36916ea2a681e1ec696f8329e7ecfe3c8a981ec3b6d4e3dd99c8e263b2c208dbe602308d6bdaf4cdabbb3c10971 SHA512 3b280bdfdbdae8fb9b4f555bc630c64e7c1d09f7b2c783b99413863a6b620d50cd2b6d10d63e11fdfb9c678fce9a403228ac52fa69fb52561ffbd06790505a71
+DIST sway-1.5.tar.gz 5535966 BLAKE2B e863e97ee897dcd1652d363a09b712932de55da08c88b4858f0aadc29b2cb19d2bda1e5e1184f4e4be6fa54a0136463556f9072f32e2b952d4f12ffd0ee9baf9 SHA512 702e44f8923a4ca05d831dd7ed76165654f113a8b2754d332c509ee844528f47c52b7f21deca78d4a79dad465cbcd0934574fff4ad9bb7a45aec3124dea5bca4
+EBUILD sway-1.0.ebuild 3085 BLAKE2B 62c575e078c9078faca0d58cc0adc18fd52b10f648fdf6cc8cc18b5080fc8844d92a7bdf80141c03bae5d1dac8ccc62b0f263a05b82a407d4ee3e25c573470b5 SHA512 10aeba287ad9113010d60b1e07af1ba6291c575109f89c9501bd42370e8bc1afb148bb6604d95048b4d390b9d66213249c25b5f8867599e5cdce53db0967550b
+EBUILD sway-1.1.1.ebuild 2953 BLAKE2B 0146efd670edbafed4df718383d9c059cced7dc7178d407e46c3ee3a3b260464972e2a485fd34f511bfc276a1cd41e41ba14e2a76058a626c222c06e8a32fb02 SHA512 b6fc5f65a764a2fc6e31e8b828bcccfca3b85d5d6b1d39ee7096b0dee22de36385d9432bd4bd90358c84e6cf7d17efdcf077c0513ced9d0be4e18ed8467b6d68
+EBUILD sway-1.4.ebuild 2953 BLAKE2B 0146efd670edbafed4df718383d9c059cced7dc7178d407e46c3ee3a3b260464972e2a485fd34f511bfc276a1cd41e41ba14e2a76058a626c222c06e8a32fb02 SHA512 b6fc5f65a764a2fc6e31e8b828bcccfca3b85d5d6b1d39ee7096b0dee22de36385d9432bd4bd90358c84e6cf7d17efdcf077c0513ced9d0be4e18ed8467b6d68
+EBUILD sway-1.5.ebuild 2954 BLAKE2B 499ee21a8285463504cee979015048559b3d8fee41d880a69006cc7a7c4d3a809555e2c8c661fd30e403413f6d14d2256d93ebc3422e0cf43b1522582d7e5fe4 SHA512 3c7ca387078703b3ac131fe3263bca993cd62951aaa5f5386b731c69484cddff0287a52434a1c53a01af3b5c9a68dea59d075162fac1bd2f04cbcb08a0479d40
+EBUILD sway-9999.ebuild 2953 BLAKE2B 0146efd670edbafed4df718383d9c059cced7dc7178d407e46c3ee3a3b260464972e2a485fd34f511bfc276a1cd41e41ba14e2a76058a626c222c06e8a32fb02 SHA512 b6fc5f65a764a2fc6e31e8b828bcccfca3b85d5d6b1d39ee7096b0dee22de36385d9432bd4bd90358c84e6cf7d17efdcf077c0513ced9d0be4e18ed8467b6d68
+MISC metadata.xml 2486 BLAKE2B 2d34da83a8d8726b91189d27a400e705a1b0259a1ca577a85e7c21784274a08a0adccc134cd523e193f8635b26dcb1802e37bfa1831f58c922285341b1eadd5e SHA512 9d382307136a126a614a8361828cb018865243b1a8c2a4dd08fbd484afc53320abf6d64dd82dd93a47d8de284552f1857c028c6c72db06199152e1458b636ec0
diff --git a/gui-wm/sway/metadata.xml b/gui-wm/sway/metadata.xml
new file mode 100644
index 0000000..e73eacb
--- /dev/null
+++ b/gui-wm/sway/metadata.xml
@@ -0,0 +1,56 @@
+
+
+
+
+ bman@gentoo.org
+ Aaron Bauman
+
+
+ prometheanfire@gentoo.org
+ Matthew Thode
+
+
+ hilobakho@gmail.com
+ Mykyta Holubakha
+
+
+ speedjack95@gmail.com
+ Niccolò Scatena
+
+
+ "SirCmpwn's Wayland window manager" is an i3-compatible window manager
+ for Wayland.
+
+ sway was created to fill the need of an i3-like window manager for
+ Wayland. The upstream i3 developers have no intention of porting i3 to
+ Wayland, and projects proposed by others ended up as vaporware. Many
+ thanks to the i3 folks for providing such a great piece of software, so
+ good that your users would rather write an entirely new window manager
+ from scratch that behaved *exactly* like i3 rather than switch to
+ something else.
+
+
+
+ swaywm/sway
+
+ sir@cmpwn.com
+ Drew DeVault
+
+ https://github.com/swaywm/sway/issues
+ https://github.com/swaywm/sway/wiki
+ https://github.com/swaywm/sway/releases
+
+
diff --git a/gui-wm/sway/sway-1.0.ebuild b/gui-wm/sway/sway-1.0.ebuild
new file mode 100644
index 0000000..34a7896
--- /dev/null
+++ b/gui-wm/sway/sway-1.0.ebuild
@@ -0,0 +1,114 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit eutils meson
+
+DESCRIPTION="i3-compatible Wayland window manager"
+HOMEPAGE="https://swaywm.org"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/swaywm/${PN}.git"
+else
+ MY_PV=${PV/_rc/-rc}
+ SRC_URI="https://github.com/swaywm/${PN}/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="amd64 arm64 x86"
+ S="${WORKDIR}/${PN}-${MY_PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="elogind fish-completion +man +swaybar +swaybg +swayidle +swaylock +swaymsg +swaynag systemd tray wallpapers X zsh-completion"
+REQUIRED_USE="?? ( elogind systemd )
+ tray? ( || ( elogind systemd ) )"
+
+DEPEND="
+ >=dev-libs/json-c-0.13:0=
+ >=dev-libs/libinput-1.6.0:0=
+ dev-libs/libpcre
+ dev-libs/wayland
+ x11-libs/cairo
+ x11-libs/libxkbcommon
+ x11-libs/pango
+ x11-libs/pixman
+ elogind? ( >=sys-auth/elogind-239 )
+ swaybar? ( x11-libs/gdk-pixbuf:2 )
+ swaybg? ( x11-libs/gdk-pixbuf:2 )
+ swayidle? ( gui-apps/swayidle )
+ swaylock? ( gui-apps/swaylock )
+ systemd? ( >=sys-apps/systemd-239 )
+ X? ( x11-libs/libxcb:0= )
+"
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+="~gui-libs/wlroots-9999[elogind=,systemd=,X=]"
+else
+ DEPEND+=">=gui-libs/wlroots-0.5.0[elogind=,systemd=,X=]
+ =dev-libs/wayland-protocols-1.14
+ virtual/pkgconfig
+"
+if [[ ${PV} == 9999 ]]; then
+ BDEPEND+="man? ( ~app-text/scdoc-9999 )"
+else
+ BDEPEND+="man? ( >=app-text/scdoc-1.9.3 )"
+fi
+
+src_prepare() {
+ default
+
+ use swaybar || sed -e "s/subdir('swaybar')//g" -e "/sway-bar.[0-9].scd/d" \
+ -e "/completions\/[a-z]\+\/_\?swaybar/d" -i meson.build || die
+ use swaybg || sed -e "s/subdir('swaybg')//g" -i meson.build || die
+ use swaymsg || sed -e "s/subdir('swaymsg')//g" -e "/swaymsg.[0-9].scd/d" \
+ -e "/completions\/[a-z]\+\/_\?swaymsg/d" -i meson.build || die
+ use swaynag || sed -e "s/subdir('swaynag')//g" -e "/swaynag.[0-9].scd/d" \
+ -e "/completions\/[a-z]\+\/_\?swaynag/d" -i meson.build || die
+}
+
+src_configure() {
+ local emesonargs=(
+ -Dman-pages=$(usex man enabled disabled)
+ -Dtray=$(usex tray enabled disabled)
+ -Dxwayland=$(usex X enabled disabled)
+ $(meson_use wallpapers default-wallpaper)
+ $(meson_use fish-completion fish-completions)
+ $(meson_use zsh-completion zsh-completions)
+ "-Dbash-completions=true"
+ "-Dwerror=false"
+ )
+
+ if use swaybar || use swaybg; then
+ emesonargs+=("-Dgdk-pixbuf=enabled")
+ else
+ emesonargs+=("-Dgdk-pixbuf=disabled")
+ fi
+
+ meson_src_configure
+}
+
+pkg_preinst() {
+ if ! use systemd && ! use elogind; then
+ fowners root:0 /usr/bin/sway
+ fperms 4511 /usr/bin/sway
+ fi
+}
+
+pkg_postinst() {
+ if ! use systemd && ! use elogind; then
+ elog ""
+ elog "If you use ConsoleKit2, remember to launch sway using:"
+ elog "exec ck-launch-session sway"
+ elog ""
+ elog "If your system does not set the XDG_RUNTIME_DIR environment"
+ elog "variable, you must set it manually to run Sway. See wiki"
+ elog "for details: https://wiki.gentoo.org/wiki/Sway"
+ fi
+}
diff --git a/gui-wm/sway/sway-1.1.1.ebuild b/gui-wm/sway/sway-1.1.1.ebuild
new file mode 100644
index 0000000..5293b99
--- /dev/null
+++ b/gui-wm/sway/sway-1.1.1.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit eutils meson
+
+DESCRIPTION="i3-compatible Wayland window manager"
+HOMEPAGE="https://swaywm.org"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/swaywm/${PN}.git"
+else
+ MY_PV=${PV/_rc/-rc}
+ SRC_URI="https://github.com/swaywm/${PN}/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~x86"
+ S="${WORKDIR}/${PN}-${MY_PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="elogind fish-completion +man +swaybar +swaybg +swayidle +swaylock +swaymsg +swaynag systemd tray wallpapers X zsh-completion"
+REQUIRED_USE="?? ( elogind systemd )
+ tray? ( || ( elogind systemd ) )"
+
+DEPEND="
+ >=dev-libs/json-c-0.13:0=
+ >=dev-libs/libinput-1.6.0:0=
+ dev-libs/libpcre
+ dev-libs/wayland
+ x11-libs/cairo
+ x11-libs/libxkbcommon
+ x11-libs/pango
+ x11-libs/pixman
+ elogind? ( >=sys-auth/elogind-239 )
+ swaybar? ( x11-libs/gdk-pixbuf:2 )
+ swaybg? ( gui-apps/swaybg )
+ swayidle? ( gui-apps/swayidle )
+ swaylock? ( gui-apps/swaylock )
+ systemd? ( >=sys-apps/systemd-239 )
+ X? ( x11-libs/libxcb:0= )
+"
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+="~gui-libs/wlroots-9999[elogind=,systemd=,X=]"
+else
+ DEPEND+=">=gui-libs/wlroots-0.6.0[elogind=,systemd=,X=]"
+fi
+RDEPEND="
+ x11-misc/xkeyboard-config
+ ${DEPEND}
+"
+BDEPEND="
+ >=dev-libs/wayland-protocols-1.14
+ virtual/pkgconfig
+"
+if [[ ${PV} == 9999 ]]; then
+ BDEPEND+="man? ( ~app-text/scdoc-9999 )"
+else
+ BDEPEND+="man? ( >=app-text/scdoc-1.9.3 )"
+fi
+
+src_prepare() {
+ default
+
+ use swaybar || sed -e "s/subdir('swaybar')//g" -e "/sway-bar.[0-9].scd/d" \
+ -e "/completions\/[a-z]\+\/_\?swaybar/d" -i meson.build || die
+ use swaymsg || sed -e "s/subdir('swaymsg')//g" -e "/swaymsg.[0-9].scd/d" \
+ -e "/completions\/[a-z]\+\/_\?swaymsg/d" -i meson.build || die
+ use swaynag || sed -e "s/subdir('swaynag')//g" -e "/swaynag.[0-9].scd/d" \
+ -e "/completions\/[a-z]\+\/_\?swaynag/d" -i meson.build || die
+}
+
+src_configure() {
+ local emesonargs=(
+ -Dman-pages=$(usex man enabled disabled)
+ -Dtray=$(usex tray enabled disabled)
+ -Dxwayland=$(usex X enabled disabled)
+ $(meson_use wallpapers default-wallpaper)
+ $(meson_use fish-completion fish-completions)
+ $(meson_use zsh-completion zsh-completions)
+ "-Dbash-completions=true"
+ "-Dwerror=false"
+ )
+
+ if use swaybar; then
+ emesonargs+=("-Dgdk-pixbuf=enabled")
+ else
+ emesonargs+=("-Dgdk-pixbuf=disabled")
+ fi
+
+ meson_src_configure
+}
+
+pkg_preinst() {
+ if ! use systemd && ! use elogind; then
+ fowners root:0 /usr/bin/sway
+ fperms 4511 /usr/bin/sway
+ fi
+}
+
+pkg_postinst() {
+ if ! use systemd && ! use elogind; then
+ elog ""
+ elog "If you use ConsoleKit2, remember to launch sway using:"
+ elog "exec ck-launch-session sway"
+ elog ""
+ elog "If your system does not set the XDG_RUNTIME_DIR environment"
+ elog "variable, you must set it manually to run Sway. See wiki"
+ elog "for details: https://wiki.gentoo.org/wiki/Sway"
+ fi
+}
diff --git a/gui-wm/sway/sway-1.4.ebuild b/gui-wm/sway/sway-1.4.ebuild
new file mode 100644
index 0000000..5293b99
--- /dev/null
+++ b/gui-wm/sway/sway-1.4.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit eutils meson
+
+DESCRIPTION="i3-compatible Wayland window manager"
+HOMEPAGE="https://swaywm.org"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/swaywm/${PN}.git"
+else
+ MY_PV=${PV/_rc/-rc}
+ SRC_URI="https://github.com/swaywm/${PN}/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~x86"
+ S="${WORKDIR}/${PN}-${MY_PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="elogind fish-completion +man +swaybar +swaybg +swayidle +swaylock +swaymsg +swaynag systemd tray wallpapers X zsh-completion"
+REQUIRED_USE="?? ( elogind systemd )
+ tray? ( || ( elogind systemd ) )"
+
+DEPEND="
+ >=dev-libs/json-c-0.13:0=
+ >=dev-libs/libinput-1.6.0:0=
+ dev-libs/libpcre
+ dev-libs/wayland
+ x11-libs/cairo
+ x11-libs/libxkbcommon
+ x11-libs/pango
+ x11-libs/pixman
+ elogind? ( >=sys-auth/elogind-239 )
+ swaybar? ( x11-libs/gdk-pixbuf:2 )
+ swaybg? ( gui-apps/swaybg )
+ swayidle? ( gui-apps/swayidle )
+ swaylock? ( gui-apps/swaylock )
+ systemd? ( >=sys-apps/systemd-239 )
+ X? ( x11-libs/libxcb:0= )
+"
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+="~gui-libs/wlroots-9999[elogind=,systemd=,X=]"
+else
+ DEPEND+=">=gui-libs/wlroots-0.6.0[elogind=,systemd=,X=]"
+fi
+RDEPEND="
+ x11-misc/xkeyboard-config
+ ${DEPEND}
+"
+BDEPEND="
+ >=dev-libs/wayland-protocols-1.14
+ virtual/pkgconfig
+"
+if [[ ${PV} == 9999 ]]; then
+ BDEPEND+="man? ( ~app-text/scdoc-9999 )"
+else
+ BDEPEND+="man? ( >=app-text/scdoc-1.9.3 )"
+fi
+
+src_prepare() {
+ default
+
+ use swaybar || sed -e "s/subdir('swaybar')//g" -e "/sway-bar.[0-9].scd/d" \
+ -e "/completions\/[a-z]\+\/_\?swaybar/d" -i meson.build || die
+ use swaymsg || sed -e "s/subdir('swaymsg')//g" -e "/swaymsg.[0-9].scd/d" \
+ -e "/completions\/[a-z]\+\/_\?swaymsg/d" -i meson.build || die
+ use swaynag || sed -e "s/subdir('swaynag')//g" -e "/swaynag.[0-9].scd/d" \
+ -e "/completions\/[a-z]\+\/_\?swaynag/d" -i meson.build || die
+}
+
+src_configure() {
+ local emesonargs=(
+ -Dman-pages=$(usex man enabled disabled)
+ -Dtray=$(usex tray enabled disabled)
+ -Dxwayland=$(usex X enabled disabled)
+ $(meson_use wallpapers default-wallpaper)
+ $(meson_use fish-completion fish-completions)
+ $(meson_use zsh-completion zsh-completions)
+ "-Dbash-completions=true"
+ "-Dwerror=false"
+ )
+
+ if use swaybar; then
+ emesonargs+=("-Dgdk-pixbuf=enabled")
+ else
+ emesonargs+=("-Dgdk-pixbuf=disabled")
+ fi
+
+ meson_src_configure
+}
+
+pkg_preinst() {
+ if ! use systemd && ! use elogind; then
+ fowners root:0 /usr/bin/sway
+ fperms 4511 /usr/bin/sway
+ fi
+}
+
+pkg_postinst() {
+ if ! use systemd && ! use elogind; then
+ elog ""
+ elog "If you use ConsoleKit2, remember to launch sway using:"
+ elog "exec ck-launch-session sway"
+ elog ""
+ elog "If your system does not set the XDG_RUNTIME_DIR environment"
+ elog "variable, you must set it manually to run Sway. See wiki"
+ elog "for details: https://wiki.gentoo.org/wiki/Sway"
+ fi
+}
diff --git a/gui-wm/sway/sway-1.5.ebuild b/gui-wm/sway/sway-1.5.ebuild
new file mode 100644
index 0000000..83acbfc
--- /dev/null
+++ b/gui-wm/sway/sway-1.5.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit eutils meson
+
+DESCRIPTION="i3-compatible Wayland window manager"
+HOMEPAGE="https://swaywm.org"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/swaywm/${PN}.git"
+else
+ MY_PV=${PV/_rc/-rc}
+ SRC_URI="https://github.com/swaywm/${PN}/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~x86"
+ S="${WORKDIR}/${PN}-${MY_PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="elogind fish-completion +man +swaybar +swaybg +swayidle +swaylock +swaymsg +swaynag systemd tray wallpapers X zsh-completion"
+REQUIRED_USE="?? ( elogind systemd )
+ tray? ( || ( elogind systemd ) )"
+
+DEPEND="
+ >=dev-libs/json-c-0.13:0=
+ >=dev-libs/libinput-1.6.0:0=
+ dev-libs/libpcre
+ dev-libs/wayland
+ x11-libs/cairo
+ x11-libs/libxkbcommon
+ x11-libs/pango
+ x11-libs/pixman
+ elogind? ( >=sys-auth/elogind-239 )
+ swaybar? ( x11-libs/gdk-pixbuf:2 )
+ swaybg? ( gui-apps/swaybg )
+ swayidle? ( gui-apps/swayidle )
+ swaylock? ( gui-apps/swaylock )
+ systemd? ( >=sys-apps/systemd-239 )
+ X? ( x11-libs/libxcb:0= )
+"
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+="~gui-libs/wlroots-9999[elogind=,systemd=,X=]"
+else
+ DEPEND+=">=gui-libs/wlroots-0.11.0[elogind=,systemd=,X=]"
+fi
+RDEPEND="
+ x11-misc/xkeyboard-config
+ ${DEPEND}
+"
+BDEPEND="
+ >=dev-libs/wayland-protocols-1.14
+ virtual/pkgconfig
+"
+if [[ ${PV} == 9999 ]]; then
+ BDEPEND+="man? ( ~app-text/scdoc-9999 )"
+else
+ BDEPEND+="man? ( >=app-text/scdoc-1.9.3 )"
+fi
+
+src_prepare() {
+ default
+
+ use swaybar || sed -e "s/subdir('swaybar')//g" -e "/sway-bar.[0-9].scd/d" \
+ -e "/completions\/[a-z]\+\/_\?swaybar/d" -i meson.build || die
+ use swaymsg || sed -e "s/subdir('swaymsg')//g" -e "/swaymsg.[0-9].scd/d" \
+ -e "/completions\/[a-z]\+\/_\?swaymsg/d" -i meson.build || die
+ use swaynag || sed -e "s/subdir('swaynag')//g" -e "/swaynag.[0-9].scd/d" \
+ -e "/completions\/[a-z]\+\/_\?swaynag/d" -i meson.build || die
+}
+
+src_configure() {
+ local emesonargs=(
+ -Dman-pages=$(usex man enabled disabled)
+ -Dtray=$(usex tray enabled disabled)
+ -Dxwayland=$(usex X enabled disabled)
+ $(meson_use wallpapers default-wallpaper)
+ $(meson_use fish-completion fish-completions)
+ $(meson_use zsh-completion zsh-completions)
+ "-Dbash-completions=true"
+ "-Dwerror=false"
+ )
+
+ if use swaybar; then
+ emesonargs+=("-Dgdk-pixbuf=enabled")
+ else
+ emesonargs+=("-Dgdk-pixbuf=disabled")
+ fi
+
+ meson_src_configure
+}
+
+pkg_preinst() {
+ if ! use systemd && ! use elogind; then
+ fowners root:0 /usr/bin/sway
+ fperms 4511 /usr/bin/sway
+ fi
+}
+
+pkg_postinst() {
+ if ! use systemd && ! use elogind; then
+ elog ""
+ elog "If you use ConsoleKit2, remember to launch sway using:"
+ elog "exec ck-launch-session sway"
+ elog ""
+ elog "If your system does not set the XDG_RUNTIME_DIR environment"
+ elog "variable, you must set it manually to run Sway. See wiki"
+ elog "for details: https://wiki.gentoo.org/wiki/Sway"
+ fi
+}
diff --git a/gui-wm/sway/sway-9999.ebuild b/gui-wm/sway/sway-9999.ebuild
new file mode 100644
index 0000000..5293b99
--- /dev/null
+++ b/gui-wm/sway/sway-9999.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit eutils meson
+
+DESCRIPTION="i3-compatible Wayland window manager"
+HOMEPAGE="https://swaywm.org"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/swaywm/${PN}.git"
+else
+ MY_PV=${PV/_rc/-rc}
+ SRC_URI="https://github.com/swaywm/${PN}/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~x86"
+ S="${WORKDIR}/${PN}-${MY_PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="elogind fish-completion +man +swaybar +swaybg +swayidle +swaylock +swaymsg +swaynag systemd tray wallpapers X zsh-completion"
+REQUIRED_USE="?? ( elogind systemd )
+ tray? ( || ( elogind systemd ) )"
+
+DEPEND="
+ >=dev-libs/json-c-0.13:0=
+ >=dev-libs/libinput-1.6.0:0=
+ dev-libs/libpcre
+ dev-libs/wayland
+ x11-libs/cairo
+ x11-libs/libxkbcommon
+ x11-libs/pango
+ x11-libs/pixman
+ elogind? ( >=sys-auth/elogind-239 )
+ swaybar? ( x11-libs/gdk-pixbuf:2 )
+ swaybg? ( gui-apps/swaybg )
+ swayidle? ( gui-apps/swayidle )
+ swaylock? ( gui-apps/swaylock )
+ systemd? ( >=sys-apps/systemd-239 )
+ X? ( x11-libs/libxcb:0= )
+"
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+="~gui-libs/wlroots-9999[elogind=,systemd=,X=]"
+else
+ DEPEND+=">=gui-libs/wlroots-0.6.0[elogind=,systemd=,X=]"
+fi
+RDEPEND="
+ x11-misc/xkeyboard-config
+ ${DEPEND}
+"
+BDEPEND="
+ >=dev-libs/wayland-protocols-1.14
+ virtual/pkgconfig
+"
+if [[ ${PV} == 9999 ]]; then
+ BDEPEND+="man? ( ~app-text/scdoc-9999 )"
+else
+ BDEPEND+="man? ( >=app-text/scdoc-1.9.3 )"
+fi
+
+src_prepare() {
+ default
+
+ use swaybar || sed -e "s/subdir('swaybar')//g" -e "/sway-bar.[0-9].scd/d" \
+ -e "/completions\/[a-z]\+\/_\?swaybar/d" -i meson.build || die
+ use swaymsg || sed -e "s/subdir('swaymsg')//g" -e "/swaymsg.[0-9].scd/d" \
+ -e "/completions\/[a-z]\+\/_\?swaymsg/d" -i meson.build || die
+ use swaynag || sed -e "s/subdir('swaynag')//g" -e "/swaynag.[0-9].scd/d" \
+ -e "/completions\/[a-z]\+\/_\?swaynag/d" -i meson.build || die
+}
+
+src_configure() {
+ local emesonargs=(
+ -Dman-pages=$(usex man enabled disabled)
+ -Dtray=$(usex tray enabled disabled)
+ -Dxwayland=$(usex X enabled disabled)
+ $(meson_use wallpapers default-wallpaper)
+ $(meson_use fish-completion fish-completions)
+ $(meson_use zsh-completion zsh-completions)
+ "-Dbash-completions=true"
+ "-Dwerror=false"
+ )
+
+ if use swaybar; then
+ emesonargs+=("-Dgdk-pixbuf=enabled")
+ else
+ emesonargs+=("-Dgdk-pixbuf=disabled")
+ fi
+
+ meson_src_configure
+}
+
+pkg_preinst() {
+ if ! use systemd && ! use elogind; then
+ fowners root:0 /usr/bin/sway
+ fperms 4511 /usr/bin/sway
+ fi
+}
+
+pkg_postinst() {
+ if ! use systemd && ! use elogind; then
+ elog ""
+ elog "If you use ConsoleKit2, remember to launch sway using:"
+ elog "exec ck-launch-session sway"
+ elog ""
+ elog "If your system does not set the XDG_RUNTIME_DIR environment"
+ elog "variable, you must set it manually to run Sway. See wiki"
+ elog "for details: https://wiki.gentoo.org/wiki/Sway"
+ fi
+}
diff --git a/media-libs/harfbuzz/Manifest b/media-libs/harfbuzz/Manifest
new file mode 100644
index 0000000..8d806be
--- /dev/null
+++ b/media-libs/harfbuzz/Manifest
@@ -0,0 +1,7 @@
+DIST harfbuzz-2.5.3.tar.xz 5685712 BLAKE2B a9d8a46b6a0667c598ea011f020b09d8fd795105483a8b307ee2a9399de2b84bf3b29659f9a3f7500250879bbb412003ee6f68aaba01b68824bd489615f737e6 SHA512 a2e6cedbe0e505fa31b540e0d0bc6c0b07080bd39879c27e04d351103e21201d75a809dd2fad559bf994b82b311f67ad85778cbbfb670d7e2580beafa09e93ff
+DIST harfbuzz-2.6.4.tar.xz 5967468 BLAKE2B 24d215324a408a724f47a901c4a56605144d15373518bd52643ece83705d0c63582a80635ecef6a6d8d2f5f39c750076d553fb39aaa8c0dd41702ee910c32f24 SHA512 d8664bb64fda11ff7646693070637e3827f8b3d1de50e11ecf108ce4d19c878b26b2ba4cff278da6e6cc0cb431e1630d9eaa7c32a9bebb9655a7aa8dabf7114f
+DIST harfbuzz-2.6.8.tar.xz 8976516 BLAKE2B 46401ae06ec70172621d2aa354901f03173a273abdb0db909332946643e82b4286be690ac717a29304e9db121dd7f693b4ce19522de772f5d140986d6333e7ce SHA512 651b23d7d4fab6fef472ee57db39bbaebc31c2f40ea3a482c1499ad1a7b549b86a2bccbe9da191c8e9ecdf464191dd3c9a7485546b51695ad8ab3c0329732d9d
+EBUILD harfbuzz-2.5.3-r1.ebuild 3033 BLAKE2B fe45f37cd4e9b419188d38603aa8b83c2af8c67175ec350cc6e34f6f8e7f7b18b6aff0c0c6adbfb67661f18432687ee09386ca4e5bb6b4c63579c6b74826a6cf SHA512 29832f1637d6f3c09786831601ada4fe763538201d1143fdea9ad97a36362ad1a1c30eddd23ec220d15e15bf88996fb6764c6fcf8eecef8f3bb3bf832686b038
+EBUILD harfbuzz-2.6.4.ebuild 2261 BLAKE2B 7781e96662022e898341482977d14125c87b2ea379e6913b4c34a2be12ff7155f7fa7098221af659f80eac7a3dbbb1d3852c189fad93bc1015c68c611ec65cab SHA512 10e977d1273df060436361b89d8f9daee3c9bb23637409b070f49c2af5fbc35bf91e2b6985173bd2d797ebd5530271972a0491f1ce515bd03d4b8ab5e5af6e19
+EBUILD harfbuzz-2.6.8.ebuild 3172 BLAKE2B 232619df1e95eb0caa3cb4c04697ed49b30f4a7703d71f42f23eea057537eac686217e64ec91db04b1cfa24bab37ea265d40523ddb41adf7e9da3f099073a042 SHA512 1142604a0975cd202231b58261d689bba20f4c38f13c50e81ce3d7c22f717530c8dece6c8e10824cf9c446d02096042d6caac071945115b36272aec9b2779540
+MISC metadata.xml 645 BLAKE2B aadcef9412392874d361b5c09e7450bf88db64fa704558553861cf16ffd1a5b5715291fefc0624e3ad0d86a537cdbd2b810fa093b289428e68a19c82049188ef SHA512 645e451768a5dba2e16d18b51ece20fa28172450bf22e29fe73ed29748f712187f997ce2f6f0a24c725f0cb10434b4a65c6de9a5fd1aa7d820e00b7dca8b8b63
diff --git a/media-libs/harfbuzz/harfbuzz-2.5.3-r1.ebuild b/media-libs/harfbuzz/harfbuzz-2.5.3-r1.ebuild
new file mode 100644
index 0000000..d7556e9
--- /dev/null
+++ b/media-libs/harfbuzz/harfbuzz-2.5.3-r1.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_7 )
+
+inherit flag-o-matic libtool multilib-minimal python-any-r1 xdg-utils
+
+DESCRIPTION="An OpenType text shaping engine"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/HarfBuzz"
+
+if [[ ${PV} = 9999 ]] ; then
+ EGIT_REPO_URI="https://anongit.freedesktop.org/git/harfbuzz.git"
+ inherit git-r3 autotools
+else
+ SRC_URI="https://www.freedesktop.org/software/${PN}/release/${P}.tar.xz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+LICENSE="Old-MIT ISC icu"
+SLOT="0/0.9.18" # 0.9.18 introduced the harfbuzz-icu split; bug #472416
+
+IUSE="+cairo debug +glib +graphite icu +introspection static-libs test +truetype"
+REQUIRED_USE="introspection? ( glib )"
+
+RDEPEND="
+ cairo? ( x11-libs/cairo:= )
+ glib? ( >=dev-libs/glib-2.38:2[${MULTILIB_USEDEP}] )
+ graphite? ( >=media-gfx/graphite2-1.2.1:=[${MULTILIB_USEDEP}] )
+ icu? ( >=dev-libs/icu-51.2-r1:=[${MULTILIB_USEDEP}] )
+ introspection? ( >=dev-libs/gobject-introspection-1.34:= )
+ truetype? ( >=media-libs/freetype-2.5.0.1:2=[${MULTILIB_USEDEP}] )
+"
+DEPEND="${RDEPEND}
+ test? ( ${PYTHON_DEPS} )
+"
+BDEPEND="
+ dev-util/gtk-doc-am
+ virtual/pkgconfig
+"
+# eautoreconf requires gobject-introspection-common
+# ragel needed if regenerating *.hh files from *.rl
+if [[ ${PV} = 9999 ]] ; then
+ DEPEND+="
+ >=dev-libs/gobject-introspection-common-1.34
+ dev-util/ragel
+ "
+fi
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+ if ! use debug ; then
+ append-cppflags -DHB_NDEBUG
+ fi
+}
+
+src_prepare() {
+ default
+
+ xdg_environment_reset
+
+ if [[ ${CHOST} == *-darwin* || ${CHOST} == *-solaris* ]] ; then
+ # on Darwin/Solaris we need to link with g++, like automake defaults
+ # to, but overridden by upstream because on Linux this is not
+ # necessary, bug #449126
+ sed -i \
+ -e 's/\/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
+
+
+
diff --git a/media-libs/libpng/Manifest b/media-libs/libpng/Manifest
index 51c6c0e..9e85817 100644
--- a/media-libs/libpng/Manifest
+++ b/media-libs/libpng/Manifest
@@ -1,2 +1,3 @@
-DIST libpng-1.6.35-apng.patch.gz 10396 SHA512 40cda24d003089c31786b70fd581cdd960f338ae89535646a2188bc8e25e603a6ad2080406017bd45edb298442a88dd60ada1ec650b001596d216e8194a3dda1
-DIST libpng-1.6.35.tar.xz 1014320 SHA512 b69152bc7869e98536effa8e45e2dac7bffee26aa9e31fc90b37506a702256919bcf4dd9cadc42fa4e45143bc023ffd7c637742367e58707e8c2226b3a09eee0
+DIST libpng-1.6.35-apng.patch.gz 10396 BLAKE2B 5f69db106909f690f3fc96dc14db3c7281c3abb0ea9cd119fcf0cb6584eb1eb5f244d57e4ec7198614f3df5f9b302c0de2b447ed0cbacaa7b15821c2e3c23cf7 SHA512 40cda24d003089c31786b70fd581cdd960f338ae89535646a2188bc8e25e603a6ad2080406017bd45edb298442a88dd60ada1ec650b001596d216e8194a3dda1
+DIST libpng-1.6.35.tar.xz 1014320 BLAKE2B 2c1d8a4a1af8d5c67c8c18414fc1c32ad41b81e5300b3fe72c2bb89afece764087c7829308243e5eb24e7d685c56ba6c151b66ef64603528ac0406d89dd4cc4d SHA512 b69152bc7869e98536effa8e45e2dac7bffee26aa9e31fc90b37506a702256919bcf4dd9cadc42fa4e45143bc023ffd7c637742367e58707e8c2226b3a09eee0
+EBUILD libpng-1.6.35.ebuild 1521 BLAKE2B e540ff54bb52a0725a3e99b8be65f7fb76011521f86d2fc9d36f3f5764b7457fdefda977b93895c80c76b3092e49f1daee54a504ddb9021498de1af52c86e599 SHA512 88e570b4c23a0246e4edf6285b2ec458f10b85933f3771fd699418dc2239524f0d03bbe45013c918c2be22098af053251a17d8eea2bbb71f98514c87898234d0
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/media-video/pipewire/Manifest b/media-video/pipewire/Manifest
new file mode 100644
index 0000000..39f91c6
--- /dev/null
+++ b/media-video/pipewire/Manifest
@@ -0,0 +1,2 @@
+DIST pipewire-0.3.6.tar.gz 968858 BLAKE2B 342b935ce1f68282cb6a1684855c7efacf24759359ca2079aade27b7d7d2699135e07c1e52afefb8924d9c8274b4cdbda98cc6c19d8aa0bf14b7202c0e0923f4 SHA512 a8d67bb6135432705d6de026074325f0cae7f01e3fe0b65fa7dafb128e5984ce126f8b4635bfbd9746777514df6f0880a78149fd007c7c1432ac29f95655ddcc
+EBUILD pipewire-0.3.6.ebuild 1165 BLAKE2B 2fa6b7d78fc5d6da221a70870fab7a2f1b114e9ac1b7ec50af8026c5307ead0531f0671500eab7f09cc3111d53fc4b5039204ed199b5f11a7c8718c3138d718f SHA512 7a4ab2244fe610d9711eaca5c56fbd7776e579f4f2fe2df3ef32a65b9221655c122042627ff451605fdda47b34e5fbfee4ee349f540ea4f5735fd2cf3a9890c5
diff --git a/media-video/pipewire/pipewire-0.3.6.ebuild b/media-video/pipewire/pipewire-0.3.6.ebuild
new file mode 100644
index 0000000..0fb1feb
--- /dev/null
+++ b/media-video/pipewire/pipewire-0.3.6.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit meson
+
+MY_PV="${PV%_*}"
+MY_P="${PN}-${MY_PV}"
+
+S="${WORKDIR}/${MY_P}"
+
+RESTRICT="mirror"
+
+DESCRIPTION="Multimedia processing graphs"
+HOMEPAGE="http://pipewire.org/"
+SRC_URI="https://github.com/PipeWire/${PN}/archive/${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="*"
+
+IUSE="docs examples ffmpeg gstreamer jack pulseaudio systemd"
+
+RDEPEND="
+ media-libs/alsa-lib
+ media-libs/sbc
+ media-video/ffmpeg:=
+ jack? ( >=media-sound/jack2-1.9.10 )
+ pulseaudio? ( >=media-sound/pulseaudio-11.1 )
+ sys-apps/dbus
+ virtual/libudev
+ gstreamer? (
+ media-libs/gstreamer:1.0
+ media-libs/gst-plugins-base:1.0
+ )
+ systemd? ( sys-apps/systemd )
+ media-libs/vulkan-loader
+"
+DEPEND="
+ ${RDEPEND}
+ app-doc/xmltoman
+ docs? ( app-doc/doxygen )
+"
+
+src_configure() {
+ local emesonargs=(
+ -Dman=true
+ $(meson_use docs)
+ $(meson_use examples)
+ $(meson_use ffmpeg)
+ $(meson_use gstreamer)
+ $(meson_use jack pipewire-jack)
+ $(meson_use jack)
+ $(meson_use pulseaudio pipewire-pulseaudio)
+ $(meson_use systemd)
+ )
+
+ meson_src_configure
+}
diff --git a/metadata/md5-cache/app-backup/deja-dup-40.6 b/metadata/md5-cache/app-backup/deja-dup-40.6
new file mode 100644
index 0000000..1e3a9df
--- /dev/null
+++ b/metadata/md5-cache/app-backup/deja-dup-40.6
@@ -0,0 +1,14 @@
+DEFINED_PHASES=compile configure install postinst postrm preinst prepare test
+DEPEND=app-admin/packagekit-base app-crypt/libsecret[vala] >=dev-libs/glib-2.34:2[dbus] >=dev-libs/libpeas-1.0 >=x11-libs/gtk+-3.10:3 >=x11-libs/libnotify-0.7 >=app-backup/duplicity-0.6.23 dev-libs/dbus-glib nautilus? ( gnome-base/nautilus ) || ( dev-lang/vala:0.46 dev-lang/vala:0.44 dev-lang/vala:0.42 dev-lang/vala:0.40 dev-lang/vala:0.36 ) app-text/yelp-tools dev-perl/Locale-gettext virtual/pkgconfig dev-util/intltool sys-devel/gettext >=app-portage/elt-patches-20170815 app-arch/xz-utils dev-util/desktop-file-utils x11-misc/shared-mime-info >=dev-util/meson-0.48.2 >=dev-util/ninja-1.7.2
+DESCRIPTION=Simple backup tool using duplicity back-end
+EAPI=6
+HOMEPAGE=https://launchpad.net/deja-dup/
+IUSE=nautilus test
+KEYWORDS=amd64 x86
+LICENSE=GPL-3
+RDEPEND=app-admin/packagekit-base app-crypt/libsecret[vala] >=dev-libs/glib-2.34:2[dbus] >=dev-libs/libpeas-1.0 >=x11-libs/gtk+-3.10:3 >=x11-libs/libnotify-0.7 >=app-backup/duplicity-0.6.23 dev-libs/dbus-glib nautilus? ( gnome-base/nautilus ) gnome-base/dconf gnome-base/gvfs[fuse]
+RESTRICT=test
+SLOT=0
+SRC_URI=https://gitlab.gnome.org/World/deja-dup/-/archive/40.6/deja-dup-40.6.tar.bz2
+_eclasses_=desktop b1d22ac8bdd4679ab79c71aca235009d eapi7-ver 756b3f27d8e46131d5cf3c51bd876446 epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 gnome.org 532d56d07b9eace4831aaa817d2b756a gnome2 1a42e8c41af42cb294817dcc5b7e3df6 gnome2-utils 532371cfcba45b2ab0d2950547c97d95 libtool f143db5a74ccd9ca28c1234deffede96 ltprune 22f9f14d105434e9c400ccac3bbb64ae meson 2fbe03e3b496f82fd941bcdb9d351c91 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f preserve-libs ef207dc62baddfddfd39a164d9797648 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vala 682da46cf615b9f7a7d3680058139dcd vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf versionator 2352c3fc97241f6a02042773c8287748 xdg c7ba313ea1eaf266f95cc6235f7d6a07 xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=88397122309de380669cff401128bab7
diff --git a/metadata/md5-cache/app-emulation/libguestfs-1.41.5 b/metadata/md5-cache/app-emulation/libguestfs-1.41.5
new file mode 100644
index 0000000..8d427a7
--- /dev/null
+++ b/metadata/md5-cache/app-emulation/libguestfs-1.41.5
@@ -0,0 +1,14 @@
+DEFINED_PHASES=configure install postinst prepare setup
+DEPEND=sys-libs/ncurses:0= sys-devel/gettext >=app-misc/hivex-1.3.1 dev-libs/libpcre:3 app-arch/cpio dev-lang/perl virtual/cdrtools >=app-emulation/qemu-2.0[qemu_softmmu_targets_x86_64,systemtap?,selinux?,filecaps] sys-apps/fakeroot sys-apps/file libvirt? ( app-emulation/libvirt ) dev-libs/libxml2:2 >=sys-apps/fakechroot-2.8 >=app-admin/augeas-1.8.0 sys-fs/squashfs-tools:* dev-libs/libconfig sys-libs/readline:0= >=sys-libs/db-4.6:* app-arch/xz-utils app-arch/lzma app-crypt/gnupg app-arch/unzip[natspec] perl? ( virtual/perl-ExtUtils-MakeMaker >=dev-perl/Sys-Virt-0.2.4 virtual/perl-Getopt-Long virtual/perl-Data-Dumper dev-perl/libintl-perl >=app-misc/hivex-1.3.1[perl?] dev-perl/String-ShellQuote ) python? ( python_single_target_python3_7? ( dev-lang/python:3.7 ) python_single_target_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] ) fuse? ( sys-fs/fuse:= ) introspection? ( >=dev-libs/glib-2.26:2 >=dev-libs/gobject-introspection-1.30.0:= ) selinux? ( sys-libs/libselinux sys-libs/libsemanage ) systemtap? ( dev-util/systemtap ) ocaml? ( >=dev-lang/ocaml-4.03[ocamlopt] ) erlang? ( dev-lang/erlang ) inspect-icons? ( media-libs/netpbm media-gfx/icoutils ) virtual/acl sys-libs/libcap lua? ( dev-lang/lua:* ) >=dev-libs/yajl-2.0.4 gtk? ( sys-apps/dbus x11-libs/gtk+:3 ) net-libs/libtirpc sys-libs/libxcrypt dev-util/gperf >=dev-lang/ocaml-4.03[ocamlopt] dev-ml/findlib[ocamlopt] dev-ml/ocaml-gettext >=dev-ml/ounit-2 doc? ( app-text/po4a ) ruby? ( dev-lang/ruby virtual/rubygems dev-ruby/rake ) test? ( introspection? ( dev-libs/gjs ) ) >=app-portage/elt-patches-20170815 !=sys-devel/automake-1.16.1:1.16 >=sys-devel/automake-1.15.1:1.15 ) >=sys-devel/autoconf-2.69 >=sys-devel/libtool-2.4
+DESCRIPTION=Tools for accessing, inspect and modifying virtual machine (VM) disk images
+EAPI=6
+HOMEPAGE=http://libguestfs.org/
+IUSE=doc erlang +fuse gtk inspect-icons introspection libvirt lua ocaml +perl python ruby selinux static-libs systemtap test kernel_linux python_targets_python3_7 python_targets_python2_7 python_single_target_python3_7 python_single_target_python2_7
+KEYWORDS=~amd64
+LICENSE=GPL-2 LGPL-2
+RDEPEND=sys-libs/ncurses:0= sys-devel/gettext >=app-misc/hivex-1.3.1 dev-libs/libpcre:3 app-arch/cpio dev-lang/perl virtual/cdrtools >=app-emulation/qemu-2.0[qemu_softmmu_targets_x86_64,systemtap?,selinux?,filecaps] sys-apps/fakeroot sys-apps/file libvirt? ( app-emulation/libvirt ) dev-libs/libxml2:2 >=sys-apps/fakechroot-2.8 >=app-admin/augeas-1.8.0 sys-fs/squashfs-tools:* dev-libs/libconfig sys-libs/readline:0= >=sys-libs/db-4.6:* app-arch/xz-utils app-arch/lzma app-crypt/gnupg app-arch/unzip[natspec] perl? ( virtual/perl-ExtUtils-MakeMaker >=dev-perl/Sys-Virt-0.2.4 virtual/perl-Getopt-Long virtual/perl-Data-Dumper dev-perl/libintl-perl >=app-misc/hivex-1.3.1[perl?] dev-perl/String-ShellQuote ) python? ( python_single_target_python3_7? ( dev-lang/python:3.7 ) python_single_target_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] ) fuse? ( sys-fs/fuse:= ) introspection? ( >=dev-libs/glib-2.26:2 >=dev-libs/gobject-introspection-1.30.0:= ) selinux? ( sys-libs/libselinux sys-libs/libsemanage ) systemtap? ( dev-util/systemtap ) ocaml? ( >=dev-lang/ocaml-4.03[ocamlopt] ) erlang? ( dev-lang/erlang ) inspect-icons? ( media-libs/netpbm media-gfx/icoutils ) virtual/acl sys-libs/libcap lua? ( dev-lang/lua:* ) >=dev-libs/yajl-2.0.4 gtk? ( sys-apps/dbus x11-libs/gtk+:3 ) net-libs/libtirpc sys-libs/libxcrypt app-emulation/libguestfs-appliance
+REQUIRED_USE=python? ( ^^ ( python_single_target_python3_7 python_single_target_python2_7 ) python_single_target_python3_7? ( python_targets_python3_7 ) python_single_target_python2_7? ( python_targets_python2_7 ) )
+SLOT=0/1.41
+SRC_URI=http://libguestfs.org/download/1.41-development/libguestfs-1.41.5.tar.gz
+_eclasses_=autotools 1bf086cdd7356f5c9a4acd9727bd2065 bash-completion-r1 47a7402d95930413ce25ba8d857339bb desktop b1d22ac8bdd4679ab79c71aca235009d eapi7-ver 756b3f27d8e46131d5cf3c51bd876446 epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 libtool f143db5a74ccd9ca28c1234deffede96 linux-info 953c3b1c472dcadbf62098a9301327f2 ltprune 22f9f14d105434e9c400ccac3bbb64ae multilib 1d91b03d42ab6308b5f4f6b598ed110e perl-functions d0d18687b96ee3d2307b88eefdd1735b preserve-libs ef207dc62baddfddfd39a164d9797648 python-single-r1 d93acbd6ef50348b41ff4ead9a020a16 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=b93bb97f882ec4c3aaea1f22ce7c4717
diff --git a/metadata/md5-cache/app-misc/hivex-1.3.18 b/metadata/md5-cache/app-misc/hivex-1.3.18
new file mode 100644
index 0000000..d66d136
--- /dev/null
+++ b/metadata/md5-cache/app-misc/hivex-1.3.18
@@ -0,0 +1,15 @@
+DEFINED_PHASES=compile configure install prepare setup test unpack
+DEPEND=virtual/libiconv virtual/libintl dev-libs/libxml2:2 ocaml? ( dev-lang/ocaml[ocamlopt] dev-ml/findlib[ocamlopt] ) readline? ( sys-libs/readline:0 ) perl? ( dev-perl/IO-stringy ) ruby? ( ruby_targets_ruby24? ( dev-lang/ruby:2.4 ) ruby_targets_ruby25? ( dev-lang/ruby:2.5 ) ) python? ( python_single_target_python3_7? ( dev-lang/python:3.7 ) python_single_target_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] ) perl? ( test? ( dev-perl/Pod-Coverage dev-perl/Test-Pod-Coverage ) ) ruby_targets_ruby24? ( ruby? ( dev-ruby/rake[ruby_targets_ruby24(-)] virtual/rubygems[ruby_targets_ruby24(-)] dev-ruby/rdoc[ruby_targets_ruby24(-)] ) ) ruby_targets_ruby25? ( ruby? ( dev-ruby/rake[ruby_targets_ruby25(-)] virtual/rubygems[ruby_targets_ruby25(-)] dev-ruby/rdoc[ruby_targets_ruby25(-)] ) ) test? ( ruby_targets_ruby24? ( ruby? ( virtual/rubygems[ruby_targets_ruby24(-)] ) ) ruby_targets_ruby25? ( ruby? ( virtual/rubygems[ruby_targets_ruby25(-)] ) ) ) dev-lang/perl:=
+DESCRIPTION=Library for reading and writing Windows Registry 'hive' binary files
+EAPI=6
+HOMEPAGE=http://libguestfs.org
+IUSE=ocaml readline +perl python test static-libs ruby test ruby_targets_ruby24 ruby_targets_ruby25 python_targets_python3_7 python_targets_python2_7 python_single_target_python3_7 python_single_target_python2_7
+KEYWORDS=amd64 x86
+LICENSE=LGPL-2.1
+RDEPEND=virtual/libiconv virtual/libintl dev-libs/libxml2:2 ocaml? ( dev-lang/ocaml[ocamlopt] dev-ml/findlib[ocamlopt] ) readline? ( sys-libs/readline:0 ) perl? ( dev-perl/IO-stringy ) ruby? ( ruby_targets_ruby24? ( dev-lang/ruby:2.4 ) ruby_targets_ruby25? ( dev-lang/ruby:2.5 ) ) python? ( python_single_target_python3_7? ( dev-lang/python:3.7 ) python_single_target_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] ) ruby_targets_ruby24? ( ruby? ( virtual/rubygems[ruby_targets_ruby24(-)] ) ) ruby_targets_ruby25? ( ruby? ( virtual/rubygems[ruby_targets_ruby25(-)] ) ) dev-lang/perl:=
+REQUIRED_USE=python? ( ^^ ( python_single_target_python3_7 python_single_target_python2_7 ) python_single_target_python3_7? ( python_targets_python3_7 ) python_single_target_python2_7? ( python_targets_python2_7 ) ) ruby? ( || ( ruby_targets_ruby24 ruby_targets_ruby25 ) )
+RESTRICT=!test? ( test )
+SLOT=0
+SRC_URI=http://libguestfs.org/download/hivex/hivex-1.3.18.tar.gz
+_eclasses_=desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 ltprune 22f9f14d105434e9c400ccac3bbb64ae multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 perl-functions d0d18687b96ee3d2307b88eefdd1735b perl-module 768f1dfc0a27ff40f1ece5cb8c22714a preserve-libs ef207dc62baddfddfd39a164d9797648 python-single-r1 d93acbd6ef50348b41ff4ead9a020a16 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc ruby-ng a1c89995f9f6dd045e93d13a92ca81a9 ruby-utils 10cec86289e60f4b0d731b2e4b545e5d toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
+_md5_=e709af3c35b131a771216e3c593de059
diff --git a/metadata/md5-cache/app-misc/pax-utils-1.2.4 b/metadata/md5-cache/app-misc/pax-utils-1.2.4
new file mode 100644
index 0000000..84b324e
--- /dev/null
+++ b/metadata/md5-cache/app-misc/pax-utils-1.2.4
@@ -0,0 +1,14 @@
+DEFINED_PHASES=compile configure install setup test unpack
+DEPEND=caps? ( >=sys-libs/libcap-2.24 ) python? ( python_single_target_python3_7? ( dev-lang/python:3.7 ) python_single_target_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/pyelftools[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] ) seccomp? ( sys-libs/libseccomp ) caps? ( virtual/pkgconfig ) seccomp? ( virtual/pkgconfig ) app-arch/xz-utils
+DESCRIPTION=ELF utils that can check files for security relevant properties
+EAPI=7
+HOMEPAGE=https://wiki.gentoo.org/index.php?title=Project:Hardened/PaX_Utilities
+IUSE=caps debug python seccomp python_targets_python3_7 python_targets_python2_7 python_single_target_python3_7 python_single_target_python2_7
+KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris
+LICENSE=GPL-2
+RDEPEND=caps? ( >=sys-libs/libcap-2.24 ) python? ( python_single_target_python3_7? ( dev-lang/python:3.7 ) python_single_target_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/pyelftools[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] ) seccomp? ( sys-libs/libseccomp )
+REQUIRED_USE=python? ( ^^ ( python_single_target_python3_7 python_single_target_python2_7 ) python_single_target_python3_7? ( python_targets_python3_7 ) python_single_target_python2_7? ( python_targets_python2_7 ) )
+SLOT=0
+SRC_URI=mirror://gentoo/pax-utils-1.2.4.tar.xz https://dev.gentoo.org/~slyfox/distfiles/pax-utils-1.2.4.tar.xz
+_eclasses_=eutils 6e6c2737b59a4b982de6fb3ecefd87f8 multilib 1d91b03d42ab6308b5f4f6b598ed110e python-single-r1 d93acbd6ef50348b41ff4ead9a020a16 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 unpacker 3cd8bad0d31e525cd26be1bfa4e61631
+_md5_=5bdea81c127d9d2642ab42c39244b06d
diff --git a/metadata/md5-cache/dev-lang/php-7.3.17 b/metadata/md5-cache/dev-lang/php-7.3.17
new file mode 100644
index 0000000..9da8ad2
--- /dev/null
+++ b/metadata/md5-cache/dev-lang/php-7.3.17
@@ -0,0 +1,14 @@
+DEFINED_PHASES=compile configure install postinst postrm prepare test
+DEPEND=>=app-eselect/eselect-php-0.9.1[apache2?,fpm?] >=dev-libs/libpcre2-10.30[unicode] fpm? ( acl? ( sys-apps/acl ) ) apache2? ( || ( >=www-servers/apache-2.4[apache2_modules_unixd,threads=] =net-misc/curl-7.10.5 ) enchant? ( =sys-libs/zlib-1.2.0.4 ) gdbm? ( >=sys-libs/gdbm-1.8.0:0= ) gmp? ( dev-libs/gmp:0= ) iconv? ( virtual/libiconv ) imap? ( virtual/imap-c-client[kerberos=,ssl=] ) intl? ( dev-libs/icu:= ) iodbc? ( dev-db/libiodbc ) kerberos? ( virtual/krb5 ) ldap? ( >=net-nds/openldap-1.2.11 ) ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 ) libedit? ( || ( sys-freebsd/freebsd-lib dev-libs/libedit ) ) lmdb? ( dev-db/lmdb:= ) mssql? ( dev-db/freetds[mssql] ) nls? ( sys-devel/gettext ) oci8-instant-client? ( dev-db/oracle-instantclient-basic ) odbc? ( >=dev-db/unixODBC-1.8.13 ) postgres? ( dev-db/postgresql:* ) qdbm? ( dev-db/qdbm ) readline? ( sys-libs/readline:0= ) recode? ( app-text/recode ) session-mm? ( dev-libs/mm ) simplexml? ( >=dev-libs/libxml2-2.6.8 ) snmp? ( >=net-analyzer/net-snmp-5.2 ) soap? ( >=dev-libs/libxml2-2.6.8 ) sodium? ( dev-libs/libsodium:= ) spell? ( >=app-text/aspell-0.50 ) sqlite? ( >=dev-db/sqlite-3.7.6.3 ) ssl? ( !libressl? ( >=dev-libs/openssl-1.0.1:0= ) libressl? ( dev-libs/libressl:0= ) ) tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) ) tokyocabinet? ( dev-db/tokyocabinet ) truetype? ( =media-libs/freetype-2* ) unicode? ( dev-libs/oniguruma:= ) wddx? ( >=dev-libs/libxml2-2.6.8 ) webp? ( media-libs/libwebp:0= ) xml? ( >=dev-libs/libxml2-2.6.8 ) xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv ) xmlreader? ( >=dev-libs/libxml2-2.6.8 ) xmlwriter? ( >=dev-libs/libxml2-2.6.8 ) xpm? ( x11-libs/libXpm ) xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 ) zip? ( >=sys-libs/zlib-1.2.0.4:0= ) zip-encryption? ( >=dev-libs/libzip-1.2.0:= ) zlib? ( >=sys-libs/zlib-1.2.0.4:0= ) app-arch/xz-utils >=sys-devel/bison-3.0.1 virtual/pkgconfig >=app-portage/elt-patches-20170815 !=sys-devel/automake-1.16.1:1.16 >=sys-devel/automake-1.15.1:1.15 ) >=sys-devel/autoconf-2.69 >=sys-devel/libtool-2.4
+DESCRIPTION=The PHP language runtime engine
+EAPI=6
+HOMEPAGE=https://secure.php.net/
+IUSE=embed +cli cgi fpm apache2 phpdbg threads acl argon2 bcmath berkdb bzip2 calendar cdb cjk coverage +ctype curl debug enchant exif +fileinfo +filter firebird flatfile ftp gd gdbm gmp +hash +iconv imap inifile intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl lmdb mhash mssql mysql mysqli nls oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm readline recode selinux +session session-mm sharedmem +simplexml snmp soap sockets sodium spell sqlite ssl sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode wddx webp +xml xmlreader xmlwriter xmlrpc xpm xslt zip zip-encryption zlib
+KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos
+LICENSE=PHP-3.01 BSD Zend-2.0 bcmath? ( LGPL-2.1+ ) fpm? ( BSD-2 ) gd? ( gd ) unicode? ( BSD-2 LGPL-2.1 )
+RDEPEND=>=app-eselect/eselect-php-0.9.1[apache2?,fpm?] >=dev-libs/libpcre2-10.30[unicode] fpm? ( acl? ( sys-apps/acl ) ) apache2? ( || ( >=www-servers/apache-2.4[apache2_modules_unixd,threads=] =net-misc/curl-7.10.5 ) enchant? ( =sys-libs/zlib-1.2.0.4 ) gdbm? ( >=sys-libs/gdbm-1.8.0:0= ) gmp? ( dev-libs/gmp:0= ) iconv? ( virtual/libiconv ) imap? ( virtual/imap-c-client[kerberos=,ssl=] ) intl? ( dev-libs/icu:= ) iodbc? ( dev-db/libiodbc ) kerberos? ( virtual/krb5 ) ldap? ( >=net-nds/openldap-1.2.11 ) ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 ) libedit? ( || ( sys-freebsd/freebsd-lib dev-libs/libedit ) ) lmdb? ( dev-db/lmdb:= ) mssql? ( dev-db/freetds[mssql] ) nls? ( sys-devel/gettext ) oci8-instant-client? ( dev-db/oracle-instantclient-basic ) odbc? ( >=dev-db/unixODBC-1.8.13 ) postgres? ( dev-db/postgresql:* ) qdbm? ( dev-db/qdbm ) readline? ( sys-libs/readline:0= ) recode? ( app-text/recode ) session-mm? ( dev-libs/mm ) simplexml? ( >=dev-libs/libxml2-2.6.8 ) snmp? ( >=net-analyzer/net-snmp-5.2 ) soap? ( >=dev-libs/libxml2-2.6.8 ) sodium? ( dev-libs/libsodium:= ) spell? ( >=app-text/aspell-0.50 ) sqlite? ( >=dev-db/sqlite-3.7.6.3 ) ssl? ( !libressl? ( >=dev-libs/openssl-1.0.1:0= ) libressl? ( dev-libs/libressl:0= ) ) tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) ) tokyocabinet? ( dev-db/tokyocabinet ) truetype? ( =media-libs/freetype-2* ) unicode? ( dev-libs/oniguruma:= ) wddx? ( >=dev-libs/libxml2-2.6.8 ) webp? ( media-libs/libwebp:0= ) xml? ( >=dev-libs/libxml2-2.6.8 ) xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv ) xmlreader? ( >=dev-libs/libxml2-2.6.8 ) xmlwriter? ( >=dev-libs/libxml2-2.6.8 ) xpm? ( x11-libs/libXpm ) xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 ) zip? ( >=sys-libs/zlib-1.2.0.4:0= ) zip-encryption? ( >=dev-libs/libzip-1.2.0:= ) zlib? ( >=sys-libs/zlib-1.2.0.4:0= ) virtual/mta fpm? ( selinux? ( sec-policy/selinux-phpfpm ) systemd? ( sys-apps/systemd ) )
+REQUIRED_USE=|| ( cli cgi fpm apache2 embed phpdbg ) cli? ( ^^ ( readline libedit ) ) truetype? ( gd zlib ) webp? ( gd zlib ) cjk? ( gd zlib ) exif? ( gd zlib ) xpm? ( gd zlib ) gd? ( zlib ) simplexml? ( xml ) soap? ( xml ) wddx? ( xml ) xmlrpc? ( || ( xml iconv ) ) xmlreader? ( xml ) xslt? ( xml ) ldap-sasl? ( ldap ) mhash? ( hash ) phar? ( hash ) qdbm? ( !gdbm ) readline? ( !libedit ) recode? ( !imap !mysqli !mysql ) session-mm? ( session !threads ) mysql? ( || ( mysqli pdo ) ) zip-encryption? ( zip )
+SLOT=7.3
+SRC_URI=https://secure.php.net/distributions/php-7.3.17.tar.xz
+_eclasses_=autotools 1bf086cdd7356f5c9a4acd9727bd2065 desktop b1d22ac8bdd4679ab79c71aca235009d eapi7-ver 756b3f27d8e46131d5cf3c51bd876446 epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf libtool f143db5a74ccd9ca28c1234deffede96 ltprune 22f9f14d105434e9c400ccac3bbb64ae multilib 1d91b03d42ab6308b5f4f6b598ed110e preserve-libs ef207dc62baddfddfd39a164d9797648 systemd 71fd8d2065d102753fb9e4d20eaf3e9f toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
+_md5_=628f39cf2758e3fe84e090204cce6ab8
diff --git a/metadata/md5-cache/dev-libs/libarcus-3.4.1 b/metadata/md5-cache/dev-libs/libarcus-3.4.1
new file mode 100644
index 0000000..5a4da20
--- /dev/null
+++ b/metadata/md5-cache/dev-libs/libarcus-3.4.1
@@ -0,0 +1,14 @@
+DEFINED_PHASES=compile configure install prepare setup test
+DEPEND=python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_python2_7(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)] dev-python/sip[python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_python2_7(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)] dev-libs/protobuf python? ( dev-python/protobuf-python[python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_python2_7(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)] ) sys-devel/make >=dev-util/cmake-3.9.6
+DESCRIPTION=This library facilitates communication between Cura and its backend
+EAPI=6
+HOMEPAGE=https://github.com/Ultimaker/libArcus
+IUSE=examples python static-libs python_targets_python3_7
+KEYWORDS=~amd64 ~x86
+LICENSE=LGPL-3
+RDEPEND=python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_python2_7(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)] dev-python/sip[python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_python2_7(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)] dev-libs/protobuf python? ( dev-python/protobuf-python[python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_python2_7(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)] )
+REQUIRED_USE=python? ( python_targets_python3_7 )
+SLOT=0/3
+SRC_URI=https://github.com/Ultimaker/libArcus/archive/3.4.1.tar.gz -> libarcus-3.4.1.tar.gz
+_eclasses_=cmake-utils 2b36e0ed4585e0b246ddd9d2ca07f3a4 desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf ltprune 22f9f14d105434e9c400ccac3bbb64ae multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f preserve-libs ef207dc62baddfddfd39a164d9797648 python-single-r1 d93acbd6ef50348b41ff4ead9a020a16 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=fde8e01f716b04dcd32ce9dda1599452
diff --git a/metadata/md5-cache/dev-libs/libarcus-3.6.0 b/metadata/md5-cache/dev-libs/libarcus-3.6.0
new file mode 100644
index 0000000..ffc3474
--- /dev/null
+++ b/metadata/md5-cache/dev-libs/libarcus-3.6.0
@@ -0,0 +1,14 @@
+DEFINED_PHASES=compile configure install prepare setup test
+DEPEND=python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_python2_7(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)] dev-python/sip[python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_python2_7(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)] dev-libs/protobuf python? ( dev-python/protobuf-python[python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_python2_7(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)] ) sys-devel/make >=dev-util/cmake-3.9.6
+DESCRIPTION=This library facilitates communication between Cura and its backend
+EAPI=6
+HOMEPAGE=https://github.com/Ultimaker/libArcus
+IUSE=examples python static-libs python_targets_python3_7
+KEYWORDS=~amd64 ~x86
+LICENSE=LGPL-3
+RDEPEND=python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_python2_7(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)] dev-python/sip[python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_python2_7(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)] dev-libs/protobuf python? ( dev-python/protobuf-python[python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_python2_7(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)] )
+REQUIRED_USE=python? ( python_targets_python3_7 )
+SLOT=0/3
+SRC_URI=https://github.com/Ultimaker/libArcus/archive/3.6.0.tar.gz -> libarcus-3.6.0.tar.gz
+_eclasses_=cmake-utils 2b36e0ed4585e0b246ddd9d2ca07f3a4 desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf ltprune 22f9f14d105434e9c400ccac3bbb64ae multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f preserve-libs ef207dc62baddfddfd39a164d9797648 python-single-r1 d93acbd6ef50348b41ff4ead9a020a16 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=fe41b325b4b161a06275a2a3ab472e3d
diff --git a/metadata/md5-cache/dev-libs/libarcus-4.3.0 b/metadata/md5-cache/dev-libs/libarcus-4.3.0
new file mode 100644
index 0000000..7a369c8
--- /dev/null
+++ b/metadata/md5-cache/dev-libs/libarcus-4.3.0
@@ -0,0 +1,14 @@
+DEFINED_PHASES=compile configure install prepare setup test
+DEPEND=python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_python2_7(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)] dev-python/sip[python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_python2_7(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)] dev-libs/protobuf python? ( dev-python/protobuf-python[python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_python2_7(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)] ) sys-devel/make >=dev-util/cmake-3.9.6
+DESCRIPTION=This library facilitates communication between Cura and its backend
+EAPI=6
+HOMEPAGE=https://github.com/Ultimaker/libArcus
+IUSE=examples python static-libs python_targets_python3_7
+KEYWORDS=~amd64 ~x86
+LICENSE=LGPL-3
+RDEPEND=python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_python2_7(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)] dev-python/sip[python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_python2_7(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)] dev-libs/protobuf python? ( dev-python/protobuf-python[python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_python2_7(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)] )
+REQUIRED_USE=python? ( python_targets_python3_7 )
+SLOT=0/3
+SRC_URI=https://github.com/Ultimaker/libArcus/archive/4.3.0.tar.gz -> libarcus-4.3.0.tar.gz
+_eclasses_=cmake-utils 2b36e0ed4585e0b246ddd9d2ca07f3a4 desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf ltprune 22f9f14d105434e9c400ccac3bbb64ae multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f preserve-libs ef207dc62baddfddfd39a164d9797648 python-single-r1 d93acbd6ef50348b41ff4ead9a020a16 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=04bd6b35a090df33c3dc24758a11ea7e
diff --git a/metadata/md5-cache/dev-python/PySocks-1.6.7 b/metadata/md5-cache/dev-python/PySocks-1.6.7
new file mode 100644
index 0000000..2a7f15b
--- /dev/null
+++ b/metadata/md5-cache/dev-python/PySocks-1.6.7
@@ -0,0 +1,14 @@
+DEFINED_PHASES=compile configure install prepare test
+DEPEND=dev-python/setuptools[python_targets_pypy3(-)?,python_targets_python3_7(-)?,python_targets_python2_7(-)?,python_targets_pypy(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python2_7(-),-python_single_target_pypy(-)] python_targets_pypy3? ( >=virtual/pypy3-5:0= ) python_targets_python3_7? ( dev-lang/python:3.7 ) python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_pypy? ( >=virtual/pypy-5:0= ) >=dev-lang/python-exec-2:=[python_targets_pypy3(-)?,python_targets_python3_7(-)?,python_targets_python2_7(-)?,python_targets_pypy(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python2_7(-),-python_single_target_pypy(-)]
+DESCRIPTION=SOCKS client module
+EAPI=6
+HOMEPAGE=https://github.com/Anorov/PySocks https://pypi.org/project/PySocks/
+IUSE=python_targets_pypy3 python_targets_python3_7 python_targets_python2_7 python_targets_pypy
+KEYWORDS=alpha amd64 arm arm64 hppa ia64 ~m68k ~mips ppc ppc64 s390 ~sh sparc x86 ~x64-cygwin ~amd64-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris
+LICENSE=BSD
+RDEPEND=python_targets_pypy3? ( >=virtual/pypy3-5:0= ) python_targets_python3_7? ( dev-lang/python:3.7 ) python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_pypy? ( >=virtual/pypy-5:0= ) >=dev-lang/python-exec-2:=[python_targets_pypy3(-)?,python_targets_python3_7(-)?,python_targets_python2_7(-)?,python_targets_pypy(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python2_7(-),-python_single_target_pypy(-)]
+REQUIRED_USE=|| ( python_targets_pypy3 python_targets_python3_7 python_targets_python2_7 python_targets_pypy )
+SLOT=0
+SRC_URI=mirror://pypi/P/PySocks/PySocks-1.6.7.tar.gz
+_eclasses_=distutils-r1 1a001b95d3bfb24277ebc93f461847da multibuild 40fe59465edacd730c644ec2bc197809 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 python-r1 6ae4f9eb4881e5c5489344ee122e05d0 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=e2b79bad0fc334bded0cc825ac944588
diff --git a/metadata/md5-cache/dev-python/PySocks-1.6.8 b/metadata/md5-cache/dev-python/PySocks-1.6.8
new file mode 100644
index 0000000..192715b
--- /dev/null
+++ b/metadata/md5-cache/dev-python/PySocks-1.6.8
@@ -0,0 +1,15 @@
+DEFINED_PHASES=compile configure install prepare test
+DEPEND=dev-python/setuptools[python_targets_pypy3(-)?,python_targets_python3_7(-)?,python_targets_python2_7(-)?,python_targets_pypy(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python2_7(-),-python_single_target_pypy(-)] test? ( dev-python/pytest[python_targets_pypy3(-)?,python_targets_python3_7(-)?,python_targets_python2_7(-)?,python_targets_pypy(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python2_7(-),-python_single_target_pypy(-)] ) python_targets_pypy3? ( >=virtual/pypy3-5:0= ) python_targets_python3_7? ( dev-lang/python:3.7 ) python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_pypy? ( >=virtual/pypy-5:0= ) >=dev-lang/python-exec-2:=[python_targets_pypy3(-)?,python_targets_python3_7(-)?,python_targets_python2_7(-)?,python_targets_pypy(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python2_7(-),-python_single_target_pypy(-)]
+DESCRIPTION=SOCKS client module
+EAPI=6
+HOMEPAGE=https://github.com/Anorov/PySocks https://pypi.org/project/PySocks/
+IUSE=test python_targets_pypy3 python_targets_python3_7 python_targets_python2_7 python_targets_pypy
+KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x64-cygwin ~amd64-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris
+LICENSE=BSD
+RDEPEND=python_targets_pypy3? ( >=virtual/pypy3-5:0= ) python_targets_python3_7? ( dev-lang/python:3.7 ) python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_pypy? ( >=virtual/pypy-5:0= ) >=dev-lang/python-exec-2:=[python_targets_pypy3(-)?,python_targets_python3_7(-)?,python_targets_python2_7(-)?,python_targets_pypy(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python2_7(-),-python_single_target_pypy(-)]
+REQUIRED_USE=|| ( python_targets_pypy3 python_targets_python3_7 python_targets_python2_7 python_targets_pypy )
+RESTRICT=test
+SLOT=0
+SRC_URI=mirror://pypi/P/PySocks/PySocks-1.6.8.tar.gz
+_eclasses_=distutils-r1 1a001b95d3bfb24277ebc93f461847da multibuild 40fe59465edacd730c644ec2bc197809 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 python-r1 6ae4f9eb4881e5c5489344ee122e05d0 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=4febc098211938a499328c5daf5c2717
diff --git a/metadata/md5-cache/dev-python/PySocks-1.7.0 b/metadata/md5-cache/dev-python/PySocks-1.7.0
new file mode 100644
index 0000000..fbba8fc
--- /dev/null
+++ b/metadata/md5-cache/dev-python/PySocks-1.7.0
@@ -0,0 +1,15 @@
+DEFINED_PHASES=compile configure install prepare test
+DEPEND=dev-python/setuptools[python_targets_pypy3(-)?,python_targets_python3_7(-)?,python_targets_python2_7(-)?,python_targets_pypy(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python2_7(-),-python_single_target_pypy(-)] test? ( dev-python/pytest[python_targets_pypy3(-)?,python_targets_python3_7(-)?,python_targets_python2_7(-)?,python_targets_pypy(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python2_7(-),-python_single_target_pypy(-)] ) python_targets_pypy3? ( >=virtual/pypy3-5:0= ) python_targets_python3_7? ( dev-lang/python:3.7 ) python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_pypy? ( >=virtual/pypy-5:0= ) >=dev-lang/python-exec-2:=[python_targets_pypy3(-)?,python_targets_python3_7(-)?,python_targets_python2_7(-)?,python_targets_pypy(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python2_7(-),-python_single_target_pypy(-)]
+DESCRIPTION=SOCKS client module
+EAPI=6
+HOMEPAGE=https://github.com/Anorov/PySocks https://pypi.org/project/PySocks/
+IUSE=test python_targets_pypy3 python_targets_python3_7 python_targets_python2_7 python_targets_pypy
+KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x64-cygwin ~amd64-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris
+LICENSE=BSD
+RDEPEND=python_targets_pypy3? ( >=virtual/pypy3-5:0= ) python_targets_python3_7? ( dev-lang/python:3.7 ) python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_pypy? ( >=virtual/pypy-5:0= ) >=dev-lang/python-exec-2:=[python_targets_pypy3(-)?,python_targets_python3_7(-)?,python_targets_python2_7(-)?,python_targets_pypy(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python2_7(-),-python_single_target_pypy(-)]
+REQUIRED_USE=|| ( python_targets_pypy3 python_targets_python3_7 python_targets_python2_7 python_targets_pypy )
+RESTRICT=test
+SLOT=0
+SRC_URI=mirror://pypi/P/PySocks/PySocks-1.7.0.tar.gz
+_eclasses_=distutils-r1 1a001b95d3bfb24277ebc93f461847da multibuild 40fe59465edacd730c644ec2bc197809 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 python-r1 6ae4f9eb4881e5c5489344ee122e05d0 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=4febc098211938a499328c5daf5c2717
diff --git a/metadata/md5-cache/dev-python/docopt-0.6.2-r2 b/metadata/md5-cache/dev-python/docopt-0.6.2-r2
new file mode 100644
index 0000000..84611e6
--- /dev/null
+++ b/metadata/md5-cache/dev-python/docopt-0.6.2-r2
@@ -0,0 +1,15 @@
+DEFINED_PHASES=compile configure install prepare test
+DEPEND=dev-python/setuptools[python_targets_pypy3(-)?,python_targets_python3_7(-)?,python_targets_python2_7(-)?,python_targets_pypy(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python2_7(-),-python_single_target_pypy(-)] test? ( dev-python/pytest[python_targets_pypy3(-)?,python_targets_python3_7(-)?,python_targets_python2_7(-)?,python_targets_pypy(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python2_7(-),-python_single_target_pypy(-)] ) python_targets_pypy3? ( >=virtual/pypy3-5:0= ) python_targets_python3_7? ( dev-lang/python:3.7 ) python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_pypy? ( >=virtual/pypy-5:0= ) >=dev-lang/python-exec-2:=[python_targets_pypy3(-)?,python_targets_python3_7(-)?,python_targets_python2_7(-)?,python_targets_pypy(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python2_7(-),-python_single_target_pypy(-)]
+DESCRIPTION=Pythonic argument parser, that will make you smile
+EAPI=5
+HOMEPAGE=https://pypi.org/project/docopt/ https://github.com/docopt/docopt
+IUSE=test python_targets_pypy3 python_targets_python3_7 python_targets_python2_7 python_targets_pypy
+KEYWORDS=~alpha amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc x86 ~amd64-linux ~x86-linux
+LICENSE=MIT
+RDEPEND=python_targets_pypy3? ( >=virtual/pypy3-5:0= ) python_targets_python3_7? ( dev-lang/python:3.7 ) python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_pypy? ( >=virtual/pypy-5:0= ) >=dev-lang/python-exec-2:=[python_targets_pypy3(-)?,python_targets_python3_7(-)?,python_targets_python2_7(-)?,python_targets_pypy(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python2_7(-),-python_single_target_pypy(-)]
+REQUIRED_USE=|| ( python_targets_pypy3 python_targets_python3_7 python_targets_python2_7 python_targets_pypy )
+RESTRICT=test
+SLOT=0
+SRC_URI=mirror://pypi/d/docopt/docopt-0.6.2.tar.gz https://github.com/docopt/docopt/archive/0.6.2.tar.gz -> docopt-0.6.2.tar.gz
+_eclasses_=desktop b1d22ac8bdd4679ab79c71aca235009d distutils-r1 1a001b95d3bfb24277ebc93f461847da epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 ltprune 22f9f14d105434e9c400ccac3bbb64ae multibuild 40fe59465edacd730c644ec2bc197809 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 preserve-libs ef207dc62baddfddfd39a164d9797648 python-r1 6ae4f9eb4881e5c5489344ee122e05d0 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=e0f08e78214c73a8e889cdead6e7dfb8
diff --git a/metadata/md5-cache/dev-python/pydns-3.2.1 b/metadata/md5-cache/dev-python/pydns-3.2.1
new file mode 100644
index 0000000..d8f589b
--- /dev/null
+++ b/metadata/md5-cache/dev-python/pydns-3.2.1
@@ -0,0 +1,15 @@
+DEFINED_PHASES=compile configure install prepare test
+DEPEND=dev-python/setuptools[python_targets_pypy3(-)?,python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-)] python_targets_pypy3? ( >=virtual/pypy3-5:0= ) python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_pypy3(-)?,python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-)]
+DESCRIPTION=Python DNS (Domain Name System) library
+EAPI=6
+HOMEPAGE=https://launchpad.net/py3dns
+IUSE=examples python_targets_pypy3 python_targets_python3_7
+KEYWORDS=amd64 hppa ~ia64 ~ppc ~sparc x86
+LICENSE=CNRI
+RDEPEND=python_targets_pypy3? ( >=virtual/pypy3-5:0= ) python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_pypy3(-)?,python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-)]
+REQUIRED_USE=|| ( python_targets_pypy3 python_targets_python3_7 )
+RESTRICT=test
+SLOT=3
+SRC_URI=https://launchpad.net/py3dns/trunk/3.2.1/+download/py3dns-3.2.1.tar.gz
+_eclasses_=distutils-r1 1a001b95d3bfb24277ebc93f461847da multibuild 40fe59465edacd730c644ec2bc197809 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 python-r1 6ae4f9eb4881e5c5489344ee122e05d0 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=ecbdd0e47c6a0299ba55556c1e5eec91
diff --git a/metadata/md5-cache/dev-python/pyelftools-0.24 b/metadata/md5-cache/dev-python/pyelftools-0.24
new file mode 100644
index 0000000..d441cf9
--- /dev/null
+++ b/metadata/md5-cache/dev-python/pyelftools-0.24
@@ -0,0 +1,14 @@
+DEFINED_PHASES=compile configure install prepare test
+DEPEND=python_targets_python3_7? ( dev-lang/python:3.7 ) python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_python3_7(-),-python_single_target_python2_7(-)]
+DESCRIPTION=pure-Python library for analyzing ELF files and DWARF debugging information
+EAPI=6
+HOMEPAGE=https://pypi.org/project/pyelftools/ https://github.com/eliben/pyelftools
+IUSE=examples python_targets_python3_7 python_targets_python2_7
+KEYWORDS=alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux
+LICENSE=public-domain
+RDEPEND=python_targets_python3_7? ( dev-lang/python:3.7 ) python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_python3_7(-),-python_single_target_python2_7(-)]
+REQUIRED_USE=|| ( python_targets_python3_7 python_targets_python2_7 )
+SLOT=0
+SRC_URI=mirror://pypi/p/pyelftools/pyelftools-0.24.tar.gz
+_eclasses_=distutils-r1 1a001b95d3bfb24277ebc93f461847da multibuild 40fe59465edacd730c644ec2bc197809 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 python-r1 6ae4f9eb4881e5c5489344ee122e05d0 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=c74842deab67b94388f46205f72941a9
diff --git a/metadata/md5-cache/dev-python/pypeg2-2.15.2 b/metadata/md5-cache/dev-python/pypeg2-2.15.2
new file mode 100644
index 0000000..011de92
--- /dev/null
+++ b/metadata/md5-cache/dev-python/pypeg2-2.15.2
@@ -0,0 +1,14 @@
+DEFINED_PHASES=compile configure install prepare test
+DEPEND=dev-python/lxml[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_python3_7(-),-python_single_target_python2_7(-)] python_targets_python3_7? ( dev-lang/python:3.7 ) python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_python3_7(-),-python_single_target_python2_7(-)]
+DESCRIPTION=An intrinsic PEG Parser-Interpreter for Python
+EAPI=5
+HOMEPAGE=https://fdik.org/pyPEG/ https://bitbucket.org/fdik/pypeg/ https://pypi.org/project/pyPEG2/
+IUSE=python_targets_python3_7 python_targets_python2_7
+KEYWORDS=~amd64 ~x86
+LICENSE=GPL-2
+RDEPEND=dev-python/lxml[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_python3_7(-),-python_single_target_python2_7(-)] python_targets_python3_7? ( dev-lang/python:3.7 ) python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_python3_7(-),-python_single_target_python2_7(-)]
+REQUIRED_USE=|| ( python_targets_python3_7 python_targets_python2_7 )
+SLOT=0
+SRC_URI=mirror://pypi/p/pyPEG2/pyPEG2-2.15.2.tar.gz
+_eclasses_=desktop b1d22ac8bdd4679ab79c71aca235009d distutils-r1 1a001b95d3bfb24277ebc93f461847da epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 ltprune 22f9f14d105434e9c400ccac3bbb64ae multibuild 40fe59465edacd730c644ec2bc197809 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 preserve-libs ef207dc62baddfddfd39a164d9797648 python-r1 6ae4f9eb4881e5c5489344ee122e05d0 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=69a8d2ee4625b09f5255ea4f7ec80811
diff --git a/metadata/md5-cache/dev-python/pyspf-2.0.12 b/metadata/md5-cache/dev-python/pyspf-2.0.12
new file mode 100644
index 0000000..4b6f77a
--- /dev/null
+++ b/metadata/md5-cache/dev-python/pyspf-2.0.12
@@ -0,0 +1,15 @@
+DEFINED_PHASES=compile configure install prepare test
+DEPEND=test? ( dev-python/authres >=dev-python/ipaddr-2.1.10 dev-python/pydns:3 dev-python/pyyaml ) python_targets_python3_7? ( dev-lang/python:3.7[ipv6?] ) python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7[ipv6?] ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_python3_7(-),-python_single_target_python2_7(-)]
+DESCRIPTION=Python implementation of the Sender Policy Framework (SPF) protocol
+EAPI=5
+HOMEPAGE=https://pypi.org/project/pyspf/
+IUSE=ipv6 test python_targets_python3_7 python_targets_python2_7
+KEYWORDS=amd64 x86
+LICENSE=PSF-2
+RDEPEND=dev-python/authres >=dev-python/ipaddr-2.1.10 dev-python/pydns:3 python_targets_python3_7? ( dev-lang/python:3.7[ipv6?] ) python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7[ipv6?] ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_python3_7(-),-python_single_target_python2_7(-)]
+REQUIRED_USE=test? ( ipv6 ) || ( python_targets_python3_7 python_targets_python2_7 )
+RESTRICT=!test? ( test )
+SLOT=0
+SRC_URI=mirror://pypi/p/pyspf/pyspf-2.0.12t.tar.gz
+_eclasses_=desktop b1d22ac8bdd4679ab79c71aca235009d distutils-r1 1a001b95d3bfb24277ebc93f461847da epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 ltprune 22f9f14d105434e9c400ccac3bbb64ae multibuild 40fe59465edacd730c644ec2bc197809 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 preserve-libs ef207dc62baddfddfd39a164d9797648 python-r1 6ae4f9eb4881e5c5489344ee122e05d0 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=1d87df393d2629384033cd09f8ad3b66
diff --git a/metadata/md5-cache/gui-libs/wlroots-0.10.1 b/metadata/md5-cache/gui-libs/wlroots-0.10.1
new file mode 100644
index 0000000..054b4f7
--- /dev/null
+++ b/metadata/md5-cache/gui-libs/wlroots-0.10.1
@@ -0,0 +1,15 @@
+BDEPEND=>=dev-libs/wayland-protocols-1.17 virtual/pkgconfig >=dev-util/meson-0.48.2 >=dev-util/ninja-1.7.2
+DEFINED_PHASES=compile configure install postinst test
+DEPEND=>=dev-libs/libinput-1.9.0:0= >=dev-libs/wayland-1.17.0 media-libs/mesa[egl,gles2,gbm] virtual/libudev x11-libs/libdrm x11-libs/libxkbcommon x11-libs/pixman elogind? ( >=sys-auth/elogind-237 ) icccm? ( x11-libs/xcb-util-wm ) systemd? ( >=sys-apps/systemd-237 ) x11-backend? ( x11-libs/libxcb:0= ) X? ( x11-base/xorg-server[wayland] x11-libs/libxcb:0= x11-libs/xcb-util-image ) filecaps? ( sys-libs/libcap )
+DESCRIPTION=Pluggable, composable, unopinionated modules for building a Wayland compositor
+EAPI=7
+HOMEPAGE=https://github.com/swaywm/wlroots
+IUSE=elogind icccm rootston systemd x11-backend X +filecaps
+KEYWORDS=amd64 arm64 x86
+LICENSE=MIT
+RDEPEND=>=dev-libs/libinput-1.9.0:0= >=dev-libs/wayland-1.17.0 media-libs/mesa[egl,gles2,gbm] virtual/libudev x11-libs/libdrm x11-libs/libxkbcommon x11-libs/pixman elogind? ( >=sys-auth/elogind-237 ) icccm? ( x11-libs/xcb-util-wm ) systemd? ( >=sys-apps/systemd-237 ) x11-backend? ( x11-libs/libxcb:0= ) X? ( x11-base/xorg-server[wayland] x11-libs/libxcb:0= x11-libs/xcb-util-image )
+REQUIRED_USE=?? ( elogind systemd )
+SLOT=0
+SRC_URI=https://github.com/swaywm/wlroots/archive/0.10.1.tar.gz -> wlroots-0.10.1.tar.gz
+_eclasses_=fcaps 9445d60c1eb084a91c38ef4c070b2f16 meson 2fbe03e3b496f82fd941bcdb9d351c91 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529
+_md5_=f4dcce4e05ed309ff09990677a983bbb
diff --git a/metadata/md5-cache/gui-libs/wlroots-0.4.1 b/metadata/md5-cache/gui-libs/wlroots-0.4.1
new file mode 100644
index 0000000..305c7ff
--- /dev/null
+++ b/metadata/md5-cache/gui-libs/wlroots-0.4.1
@@ -0,0 +1,15 @@
+BDEPEND=>=dev-libs/wayland-protocols-1.17 virtual/pkgconfig >=dev-util/meson-0.48.2 >=dev-util/ninja-1.7.2
+DEFINED_PHASES=compile configure install postinst test
+DEPEND=>=dev-libs/libinput-1.7.0:0= >=dev-libs/wayland-1.16.0 media-libs/mesa[egl,gles2,gbm] virtual/libudev x11-libs/libdrm x11-libs/libxkbcommon x11-libs/pixman elogind? ( >=sys-auth/elogind-237 ) icccm? ( x11-libs/xcb-util-wm ) systemd? ( >=sys-apps/systemd-237 ) x11-backend? ( x11-libs/libxcb:0= ) X? ( x11-base/xorg-server[wayland] x11-libs/libxcb:0= x11-libs/xcb-util-image ) filecaps? ( sys-libs/libcap )
+DESCRIPTION=Pluggable, composable, unopinionated modules for building a Wayland compositor
+EAPI=7
+HOMEPAGE=https://github.com/swaywm/wlroots
+IUSE=elogind icccm rootston systemd x11-backend X +filecaps
+KEYWORDS=~amd64 ~x86
+LICENSE=MIT
+RDEPEND=>=dev-libs/libinput-1.7.0:0= >=dev-libs/wayland-1.16.0 media-libs/mesa[egl,gles2,gbm] virtual/libudev x11-libs/libdrm x11-libs/libxkbcommon x11-libs/pixman elogind? ( >=sys-auth/elogind-237 ) icccm? ( x11-libs/xcb-util-wm ) systemd? ( >=sys-apps/systemd-237 ) x11-backend? ( x11-libs/libxcb:0= ) X? ( x11-base/xorg-server[wayland] x11-libs/libxcb:0= x11-libs/xcb-util-image )
+REQUIRED_USE=?? ( elogind systemd )
+SLOT=0
+SRC_URI=https://github.com/swaywm/wlroots/archive/0.4.1.tar.gz -> wlroots-0.4.1.tar.gz
+_eclasses_=fcaps 9445d60c1eb084a91c38ef4c070b2f16 meson 2fbe03e3b496f82fd941bcdb9d351c91 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529
+_md5_=6607767988f98016342f7ae725d80f50
diff --git a/metadata/md5-cache/gui-libs/wlroots-0.5.0 b/metadata/md5-cache/gui-libs/wlroots-0.5.0
new file mode 100644
index 0000000..09763d9
--- /dev/null
+++ b/metadata/md5-cache/gui-libs/wlroots-0.5.0
@@ -0,0 +1,15 @@
+BDEPEND=>=dev-libs/wayland-protocols-1.17 virtual/pkgconfig >=dev-util/meson-0.48.2 >=dev-util/ninja-1.7.2
+DEFINED_PHASES=compile configure install postinst test
+DEPEND=>=dev-libs/libinput-1.7.0:0= >=dev-libs/wayland-1.16.0 media-libs/mesa[egl,gles2,gbm] virtual/libudev x11-libs/libdrm x11-libs/libxkbcommon x11-libs/pixman elogind? ( >=sys-auth/elogind-237 ) icccm? ( x11-libs/xcb-util-wm ) systemd? ( >=sys-apps/systemd-237 ) x11-backend? ( x11-libs/libxcb:0= ) X? ( x11-base/xorg-server[wayland] x11-libs/libxcb:0= x11-libs/xcb-util-image ) filecaps? ( sys-libs/libcap )
+DESCRIPTION=Pluggable, composable, unopinionated modules for building a Wayland compositor
+EAPI=7
+HOMEPAGE=https://github.com/swaywm/wlroots
+IUSE=elogind icccm rootston systemd x11-backend X +filecaps
+KEYWORDS=amd64 arm64 x86
+LICENSE=MIT
+RDEPEND=>=dev-libs/libinput-1.7.0:0= >=dev-libs/wayland-1.16.0 media-libs/mesa[egl,gles2,gbm] virtual/libudev x11-libs/libdrm x11-libs/libxkbcommon x11-libs/pixman elogind? ( >=sys-auth/elogind-237 ) icccm? ( x11-libs/xcb-util-wm ) systemd? ( >=sys-apps/systemd-237 ) x11-backend? ( x11-libs/libxcb:0= ) X? ( x11-base/xorg-server[wayland] x11-libs/libxcb:0= x11-libs/xcb-util-image )
+REQUIRED_USE=?? ( elogind systemd )
+SLOT=0
+SRC_URI=https://github.com/swaywm/wlroots/archive/0.5.0.tar.gz -> wlroots-0.5.0.tar.gz
+_eclasses_=fcaps 9445d60c1eb084a91c38ef4c070b2f16 meson 2fbe03e3b496f82fd941bcdb9d351c91 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529
+_md5_=e957d01bdb84ba1993d11d035f474bdc
diff --git a/metadata/md5-cache/gui-libs/wlroots-0.6.0 b/metadata/md5-cache/gui-libs/wlroots-0.6.0
new file mode 100644
index 0000000..0ef62e1
--- /dev/null
+++ b/metadata/md5-cache/gui-libs/wlroots-0.6.0
@@ -0,0 +1,15 @@
+BDEPEND=>=dev-libs/wayland-protocols-1.17 virtual/pkgconfig >=dev-util/meson-0.48.2 >=dev-util/ninja-1.7.2
+DEFINED_PHASES=compile configure install postinst test
+DEPEND=>=dev-libs/libinput-1.9.0:0= >=dev-libs/wayland-1.17.0 media-libs/mesa[egl,gles2,gbm] virtual/libudev x11-libs/libdrm x11-libs/libxkbcommon x11-libs/pixman elogind? ( >=sys-auth/elogind-237 ) icccm? ( x11-libs/xcb-util-wm ) systemd? ( >=sys-apps/systemd-237 ) x11-backend? ( x11-libs/libxcb:0= ) X? ( x11-base/xorg-server[wayland] x11-libs/libxcb:0= x11-libs/xcb-util-image ) filecaps? ( sys-libs/libcap )
+DESCRIPTION=Pluggable, composable, unopinionated modules for building a Wayland compositor
+EAPI=7
+HOMEPAGE=https://github.com/swaywm/wlroots
+IUSE=elogind icccm rootston systemd x11-backend X +filecaps
+KEYWORDS=amd64 arm64 x86
+LICENSE=MIT
+RDEPEND=>=dev-libs/libinput-1.9.0:0= >=dev-libs/wayland-1.17.0 media-libs/mesa[egl,gles2,gbm] virtual/libudev x11-libs/libdrm x11-libs/libxkbcommon x11-libs/pixman elogind? ( >=sys-auth/elogind-237 ) icccm? ( x11-libs/xcb-util-wm ) systemd? ( >=sys-apps/systemd-237 ) x11-backend? ( x11-libs/libxcb:0= ) X? ( x11-base/xorg-server[wayland] x11-libs/libxcb:0= x11-libs/xcb-util-image )
+REQUIRED_USE=?? ( elogind systemd )
+SLOT=0
+SRC_URI=https://github.com/swaywm/wlroots/archive/0.6.0.tar.gz -> wlroots-0.6.0.tar.gz
+_eclasses_=fcaps 9445d60c1eb084a91c38ef4c070b2f16 meson 2fbe03e3b496f82fd941bcdb9d351c91 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529
+_md5_=f4dcce4e05ed309ff09990677a983bbb
diff --git a/metadata/md5-cache/gui-libs/wlroots-9999 b/metadata/md5-cache/gui-libs/wlroots-9999
new file mode 100644
index 0000000..55c3a70
--- /dev/null
+++ b/metadata/md5-cache/gui-libs/wlroots-9999
@@ -0,0 +1,14 @@
+BDEPEND=>=dev-libs/wayland-protocols-1.17 virtual/pkgconfig >=dev-util/meson-0.48.2 >=dev-util/ninja-1.7.2 >=dev-vcs/git-1.8.2.1[curl]
+DEFINED_PHASES=compile configure install postinst test unpack
+DEPEND=>=dev-libs/libinput-1.9.0:0= >=dev-libs/wayland-1.17.0 media-libs/mesa[egl,gles2,gbm] virtual/libudev x11-libs/libdrm x11-libs/libxkbcommon x11-libs/pixman elogind? ( >=sys-auth/elogind-237 ) icccm? ( x11-libs/xcb-util-wm ) systemd? ( >=sys-apps/systemd-237 ) x11-backend? ( x11-libs/libxcb:0= ) X? ( x11-base/xorg-server[wayland] x11-libs/libxcb:0= x11-libs/xcb-util-image ) filecaps? ( sys-libs/libcap )
+DESCRIPTION=Pluggable, composable, unopinionated modules for building a Wayland compositor
+EAPI=7
+HOMEPAGE=https://github.com/swaywm/wlroots
+IUSE=elogind icccm rootston systemd x11-backend X +filecaps
+LICENSE=MIT
+PROPERTIES=live
+RDEPEND=>=dev-libs/libinput-1.9.0:0= >=dev-libs/wayland-1.17.0 media-libs/mesa[egl,gles2,gbm] virtual/libudev x11-libs/libdrm x11-libs/libxkbcommon x11-libs/pixman elogind? ( >=sys-auth/elogind-237 ) icccm? ( x11-libs/xcb-util-wm ) systemd? ( >=sys-apps/systemd-237 ) x11-backend? ( x11-libs/libxcb:0= ) X? ( x11-base/xorg-server[wayland] x11-libs/libxcb:0= x11-libs/xcb-util-image )
+REQUIRED_USE=?? ( elogind systemd )
+SLOT=0
+_eclasses_=fcaps 9445d60c1eb084a91c38ef4c070b2f16 git-r3 7dcb8a92f5a091f13e82494fa317ca4b meson 2fbe03e3b496f82fd941bcdb9d351c91 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529
+_md5_=dd68c3a36b3f59cf574c81442ea003c4
diff --git a/metadata/md5-cache/gui-wm/sway-1.0 b/metadata/md5-cache/gui-wm/sway-1.0
new file mode 100644
index 0000000..27121bb
--- /dev/null
+++ b/metadata/md5-cache/gui-wm/sway-1.0
@@ -0,0 +1,15 @@
+BDEPEND=>=dev-libs/wayland-protocols-1.14 virtual/pkgconfig man? ( >=app-text/scdoc-1.9.3 ) >=dev-util/meson-0.48.2 >=dev-util/ninja-1.7.2
+DEFINED_PHASES=compile configure install postinst preinst prepare test
+DEPEND=>=dev-libs/json-c-0.13:0= >=dev-libs/libinput-1.6.0:0= dev-libs/libpcre dev-libs/wayland x11-libs/cairo x11-libs/libxkbcommon x11-libs/pango x11-libs/pixman elogind? ( >=sys-auth/elogind-239 ) swaybar? ( x11-libs/gdk-pixbuf:2 ) swaybg? ( x11-libs/gdk-pixbuf:2 ) swayidle? ( gui-apps/swayidle ) swaylock? ( gui-apps/swaylock ) systemd? ( >=sys-apps/systemd-239 ) X? ( x11-libs/libxcb:0= ) >=gui-libs/wlroots-0.5.0[elogind=,systemd=,X=] =dev-libs/json-c-0.13:0= >=dev-libs/libinput-1.6.0:0= dev-libs/libpcre dev-libs/wayland x11-libs/cairo x11-libs/libxkbcommon x11-libs/pango x11-libs/pixman elogind? ( >=sys-auth/elogind-239 ) swaybar? ( x11-libs/gdk-pixbuf:2 ) swaybg? ( x11-libs/gdk-pixbuf:2 ) swayidle? ( gui-apps/swayidle ) swaylock? ( gui-apps/swaylock ) systemd? ( >=sys-apps/systemd-239 ) X? ( x11-libs/libxcb:0= ) >=gui-libs/wlroots-0.5.0[elogind=,systemd=,X=] sway-1.0.tar.gz
+_eclasses_=eutils 6e6c2737b59a4b982de6fb3ecefd87f8 meson 2fbe03e3b496f82fd941bcdb9d351c91 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529
+_md5_=5585b1131eb38d3a0fd3968e1fd1cfa4
diff --git a/metadata/md5-cache/gui-wm/sway-1.1.1 b/metadata/md5-cache/gui-wm/sway-1.1.1
new file mode 100644
index 0000000..f34b9ef
--- /dev/null
+++ b/metadata/md5-cache/gui-wm/sway-1.1.1
@@ -0,0 +1,15 @@
+BDEPEND=>=dev-libs/wayland-protocols-1.14 virtual/pkgconfig man? ( >=app-text/scdoc-1.9.3 ) >=dev-util/meson-0.48.2 >=dev-util/ninja-1.7.2
+DEFINED_PHASES=compile configure install postinst preinst prepare test
+DEPEND=>=dev-libs/json-c-0.13:0= >=dev-libs/libinput-1.6.0:0= dev-libs/libpcre dev-libs/wayland x11-libs/cairo x11-libs/libxkbcommon x11-libs/pango x11-libs/pixman elogind? ( >=sys-auth/elogind-239 ) swaybar? ( x11-libs/gdk-pixbuf:2 ) swaybg? ( gui-apps/swaybg ) swayidle? ( gui-apps/swayidle ) swaylock? ( gui-apps/swaylock ) systemd? ( >=sys-apps/systemd-239 ) X? ( x11-libs/libxcb:0= ) >=gui-libs/wlroots-0.6.0[elogind=,systemd=,X=]
+DESCRIPTION=i3-compatible Wayland window manager
+EAPI=7
+HOMEPAGE=https://swaywm.org
+IUSE=elogind fish-completion +man +swaybar +swaybg +swayidle +swaylock +swaymsg +swaynag systemd tray wallpapers X zsh-completion
+KEYWORDS=~amd64 ~arm64 ~x86
+LICENSE=MIT
+RDEPEND=x11-misc/xkeyboard-config >=dev-libs/json-c-0.13:0= >=dev-libs/libinput-1.6.0:0= dev-libs/libpcre dev-libs/wayland x11-libs/cairo x11-libs/libxkbcommon x11-libs/pango x11-libs/pixman elogind? ( >=sys-auth/elogind-239 ) swaybar? ( x11-libs/gdk-pixbuf:2 ) swaybg? ( gui-apps/swaybg ) swayidle? ( gui-apps/swayidle ) swaylock? ( gui-apps/swaylock ) systemd? ( >=sys-apps/systemd-239 ) X? ( x11-libs/libxcb:0= ) >=gui-libs/wlroots-0.6.0[elogind=,systemd=,X=]
+REQUIRED_USE=?? ( elogind systemd ) tray? ( || ( elogind systemd ) )
+SLOT=0
+SRC_URI=https://github.com/swaywm/sway/archive/1.1.1.tar.gz -> sway-1.1.1.tar.gz
+_eclasses_=eutils 6e6c2737b59a4b982de6fb3ecefd87f8 meson 2fbe03e3b496f82fd941bcdb9d351c91 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529
+_md5_=c60b3e3651382762c9d934ec1424eece
diff --git a/metadata/md5-cache/gui-wm/sway-1.4 b/metadata/md5-cache/gui-wm/sway-1.4
new file mode 100644
index 0000000..376ece2
--- /dev/null
+++ b/metadata/md5-cache/gui-wm/sway-1.4
@@ -0,0 +1,15 @@
+BDEPEND=>=dev-libs/wayland-protocols-1.14 virtual/pkgconfig man? ( >=app-text/scdoc-1.9.3 ) >=dev-util/meson-0.48.2 >=dev-util/ninja-1.7.2
+DEFINED_PHASES=compile configure install postinst preinst prepare test
+DEPEND=>=dev-libs/json-c-0.13:0= >=dev-libs/libinput-1.6.0:0= dev-libs/libpcre dev-libs/wayland x11-libs/cairo x11-libs/libxkbcommon x11-libs/pango x11-libs/pixman elogind? ( >=sys-auth/elogind-239 ) swaybar? ( x11-libs/gdk-pixbuf:2 ) swaybg? ( gui-apps/swaybg ) swayidle? ( gui-apps/swayidle ) swaylock? ( gui-apps/swaylock ) systemd? ( >=sys-apps/systemd-239 ) X? ( x11-libs/libxcb:0= ) >=gui-libs/wlroots-0.6.0[elogind=,systemd=,X=]
+DESCRIPTION=i3-compatible Wayland window manager
+EAPI=7
+HOMEPAGE=https://swaywm.org
+IUSE=elogind fish-completion +man +swaybar +swaybg +swayidle +swaylock +swaymsg +swaynag systemd tray wallpapers X zsh-completion
+KEYWORDS=~amd64 ~arm64 ~x86
+LICENSE=MIT
+RDEPEND=x11-misc/xkeyboard-config >=dev-libs/json-c-0.13:0= >=dev-libs/libinput-1.6.0:0= dev-libs/libpcre dev-libs/wayland x11-libs/cairo x11-libs/libxkbcommon x11-libs/pango x11-libs/pixman elogind? ( >=sys-auth/elogind-239 ) swaybar? ( x11-libs/gdk-pixbuf:2 ) swaybg? ( gui-apps/swaybg ) swayidle? ( gui-apps/swayidle ) swaylock? ( gui-apps/swaylock ) systemd? ( >=sys-apps/systemd-239 ) X? ( x11-libs/libxcb:0= ) >=gui-libs/wlroots-0.6.0[elogind=,systemd=,X=]
+REQUIRED_USE=?? ( elogind systemd ) tray? ( || ( elogind systemd ) )
+SLOT=0
+SRC_URI=https://github.com/swaywm/sway/archive/1.4.tar.gz -> sway-1.4.tar.gz
+_eclasses_=eutils 6e6c2737b59a4b982de6fb3ecefd87f8 meson 2fbe03e3b496f82fd941bcdb9d351c91 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529
+_md5_=c60b3e3651382762c9d934ec1424eece
diff --git a/metadata/md5-cache/gui-wm/sway-9999 b/metadata/md5-cache/gui-wm/sway-9999
new file mode 100644
index 0000000..8d0e00b
--- /dev/null
+++ b/metadata/md5-cache/gui-wm/sway-9999
@@ -0,0 +1,14 @@
+BDEPEND=>=dev-libs/wayland-protocols-1.14 virtual/pkgconfig man? ( ~app-text/scdoc-9999 ) >=dev-util/meson-0.48.2 >=dev-util/ninja-1.7.2 >=dev-vcs/git-1.8.2.1[curl]
+DEFINED_PHASES=compile configure install postinst preinst prepare test unpack
+DEPEND=>=dev-libs/json-c-0.13:0= >=dev-libs/libinput-1.6.0:0= dev-libs/libpcre dev-libs/wayland x11-libs/cairo x11-libs/libxkbcommon x11-libs/pango x11-libs/pixman elogind? ( >=sys-auth/elogind-239 ) swaybar? ( x11-libs/gdk-pixbuf:2 ) swaybg? ( gui-apps/swaybg ) swayidle? ( gui-apps/swayidle ) swaylock? ( gui-apps/swaylock ) systemd? ( >=sys-apps/systemd-239 ) X? ( x11-libs/libxcb:0= ) ~gui-libs/wlroots-9999[elogind=,systemd=,X=]
+DESCRIPTION=i3-compatible Wayland window manager
+EAPI=7
+HOMEPAGE=https://swaywm.org
+IUSE=elogind fish-completion +man +swaybar +swaybg +swayidle +swaylock +swaymsg +swaynag systemd tray wallpapers X zsh-completion
+LICENSE=MIT
+PROPERTIES=live
+RDEPEND=x11-misc/xkeyboard-config >=dev-libs/json-c-0.13:0= >=dev-libs/libinput-1.6.0:0= dev-libs/libpcre dev-libs/wayland x11-libs/cairo x11-libs/libxkbcommon x11-libs/pango x11-libs/pixman elogind? ( >=sys-auth/elogind-239 ) swaybar? ( x11-libs/gdk-pixbuf:2 ) swaybg? ( gui-apps/swaybg ) swayidle? ( gui-apps/swayidle ) swaylock? ( gui-apps/swaylock ) systemd? ( >=sys-apps/systemd-239 ) X? ( x11-libs/libxcb:0= ) ~gui-libs/wlroots-9999[elogind=,systemd=,X=]
+REQUIRED_USE=?? ( elogind systemd ) tray? ( || ( elogind systemd ) )
+SLOT=0
+_eclasses_=eutils 6e6c2737b59a4b982de6fb3ecefd87f8 git-r3 7dcb8a92f5a091f13e82494fa317ca4b meson 2fbe03e3b496f82fd941bcdb9d351c91 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529
+_md5_=c60b3e3651382762c9d934ec1424eece
diff --git a/metadata/md5-cache/mail-filter/pypolicyd-spf-2.0.2 b/metadata/md5-cache/mail-filter/pypolicyd-spf-2.0.2
new file mode 100644
index 0000000..28156b3
--- /dev/null
+++ b/metadata/md5-cache/mail-filter/pypolicyd-spf-2.0.2
@@ -0,0 +1,14 @@
+DEFINED_PHASES=compile configure install prepare test
+DEPEND=dev-python/pyspf python_targets_python3_7? ( dev-lang/python:3.7[ipv6] ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,-python_single_target_python3_7(-)]
+DESCRIPTION=Python-based policy daemon for Postfix SPF verification
+EAPI=6
+HOMEPAGE=https://launchpad.net/pypolicyd-spf
+IUSE=python_targets_python3_7
+KEYWORDS=amd64 x86
+LICENSE=Apache-2.0
+RDEPEND=dev-python/pyspf dev-python/authres python_targets_python3_7? ( dev-lang/python:3.7[ipv6] ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,-python_single_target_python3_7(-)]
+REQUIRED_USE=|| ( python_targets_python3_7 )
+SLOT=0
+SRC_URI=mirror://pypi/p/pypolicyd-spf/pypolicyd-spf-2.0.2.tar.gz
+_eclasses_=distutils-r1 1a001b95d3bfb24277ebc93f461847da multibuild 40fe59465edacd730c644ec2bc197809 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 python-r1 6ae4f9eb4881e5c5489344ee122e05d0 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=1d78cb8f1243884a84fba5bc286ab2c2
diff --git a/metadata/md5-cache/media-gfx/curaengine-3.4.1 b/metadata/md5-cache/media-gfx/curaengine-3.4.1
new file mode 100644
index 0000000..2ef78eb
--- /dev/null
+++ b/metadata/md5-cache/media-gfx/curaengine-3.4.1
@@ -0,0 +1,13 @@
+DEFINED_PHASES=compile configure install prepare test
+DEPEND=~dev-libs/libarcus-3.4.1:* dev-libs/protobuf dev-libs/stb doc? ( app-doc/doxygen ) sys-devel/make >=dev-util/cmake-3.9.6
+DESCRIPTION=A 3D model slicing engine for 3D printing
+EAPI=6
+HOMEPAGE=https://github.com/Ultimaker/CuraEngine
+IUSE=doc test
+KEYWORDS=~amd64 ~x86
+LICENSE=AGPL-3
+RDEPEND=~dev-libs/libarcus-3.4.1:* dev-libs/protobuf dev-libs/stb
+SLOT=0
+SRC_URI=https://github.com/Ultimaker/CuraEngine/archive/3.4.1.tar.gz -> curaengine-3.4.1.tar.gz
+_eclasses_=cmake-utils 2b36e0ed4585e0b246ddd9d2ca07f3a4 desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf ltprune 22f9f14d105434e9c400ccac3bbb64ae multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=d154bfc0f0c2e3e859b1312c1a706030
diff --git a/metadata/md5-cache/media-gfx/curaengine-3.6.0 b/metadata/md5-cache/media-gfx/curaengine-3.6.0
new file mode 100644
index 0000000..8506e2f
--- /dev/null
+++ b/metadata/md5-cache/media-gfx/curaengine-3.6.0
@@ -0,0 +1,13 @@
+DEFINED_PHASES=compile configure install prepare test
+DEPEND=~dev-libs/libarcus-3.6.0:* dev-libs/protobuf dev-libs/stb doc? ( app-doc/doxygen ) sys-devel/make >=dev-util/cmake-3.9.6
+DESCRIPTION=A 3D model slicing engine for 3D printing
+EAPI=6
+HOMEPAGE=https://github.com/Ultimaker/CuraEngine
+IUSE=doc test
+KEYWORDS=~amd64 ~x86
+LICENSE=AGPL-3
+RDEPEND=~dev-libs/libarcus-3.6.0:* dev-libs/protobuf dev-libs/stb
+SLOT=0
+SRC_URI=https://github.com/Ultimaker/CuraEngine/archive/3.6.0.tar.gz -> curaengine-3.6.0.tar.gz
+_eclasses_=cmake-utils 2b36e0ed4585e0b246ddd9d2ca07f3a4 desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf ltprune 22f9f14d105434e9c400ccac3bbb64ae multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=d154bfc0f0c2e3e859b1312c1a706030
diff --git a/metadata/md5-cache/media-gfx/curaengine-4.3.0 b/metadata/md5-cache/media-gfx/curaengine-4.3.0
new file mode 100644
index 0000000..eb9717c
--- /dev/null
+++ b/metadata/md5-cache/media-gfx/curaengine-4.3.0
@@ -0,0 +1,13 @@
+DEFINED_PHASES=compile configure install prepare test
+DEPEND=~dev-libs/libarcus-4.3.0:* dev-libs/protobuf dev-libs/stb doc? ( app-doc/doxygen ) sys-devel/make >=dev-util/cmake-3.9.6
+DESCRIPTION=A 3D model slicing engine for 3D printing
+EAPI=6
+HOMEPAGE=https://github.com/Ultimaker/CuraEngine
+IUSE=doc test
+KEYWORDS=~amd64 ~x86
+LICENSE=AGPL-3
+RDEPEND=~dev-libs/libarcus-4.3.0:* dev-libs/protobuf dev-libs/stb
+SLOT=0
+SRC_URI=https://github.com/Ultimaker/CuraEngine/archive/4.3.0.tar.gz -> curaengine-4.3.0.tar.gz
+_eclasses_=cmake-utils 2b36e0ed4585e0b246ddd9d2ca07f3a4 desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf ltprune 22f9f14d105434e9c400ccac3bbb64ae multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=d154bfc0f0c2e3e859b1312c1a706030
diff --git a/metadata/md5-cache/media-libs/libpng-1.6.35 b/metadata/md5-cache/media-libs/libpng-1.6.35
new file mode 100644
index 0000000..8836279
--- /dev/null
+++ b/metadata/md5-cache/media-libs/libpng-1.6.35
@@ -0,0 +1,13 @@
+DEFINED_PHASES=compile configure install prepare test
+DEPEND=>=sys-libs/zlib-1.2.8-r1:=[-mgorny(-)] abi_x86_32? ( !<=app-emulation/emul-linux-x86-baselibs-20130224-r1 !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] ) app-arch/xz-utils >=app-portage/elt-patches-20170815
+DESCRIPTION=Portable Network Graphics library
+EAPI=6
+HOMEPAGE=http://www.libpng.org/
+IUSE=apng cpu_flags_x86_sse neon static-libs abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_riscv_lp64d abi_riscv_lp64 abi_s390_32 abi_s390_64
+KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt
+LICENSE=libpng
+RDEPEND=>=sys-libs/zlib-1.2.8-r1:=[-mgorny(-)] abi_x86_32? ( !<=app-emulation/emul-linux-x86-baselibs-20130224-r1 !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] )
+SLOT=0/16
+SRC_URI=mirror://sourceforge/libpng/libpng-1.6.35.tar.xz apng? ( mirror://sourceforge/apng/libpng-1.6.35-apng.patch.gz )
+_eclasses_=libtool f143db5a74ccd9ca28c1234deffede96 ltprune 22f9f14d105434e9c400ccac3bbb64ae multibuild 40fe59465edacd730c644ec2bc197809 multilib 1d91b03d42ab6308b5f4f6b598ed110e multilib-build 5c1d48ed515f98242029611de215c727 multilib-minimal 8bddda43703ba94d8341f4e247f97566 toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529
+_md5_=9d0a7539ce2e00ba0928c75458e027de
diff --git a/metadata/md5-cache/media-libs/libvpx-1.7.0 b/metadata/md5-cache/media-libs/libvpx-1.7.0
new file mode 100644
index 0000000..5707e33
--- /dev/null
+++ b/metadata/md5-cache/media-libs/libvpx-1.7.0
@@ -0,0 +1,15 @@
+DEFINED_PHASES=compile configure install test unpack
+DEPEND=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 )
+DESCRIPTION=WebM VP8 and VP9 Codec SDK
+EAPI=6
+HOMEPAGE=http://www.webmproject.org
+IUSE=cpu_flags_x86_avx cpu_flags_x86_avx2 doc cpu_flags_x86_mmx postproc cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 cpu_flags_x86_ssse3 cpu_flags_x86_sse4_1 +highbitdepth static-libs svc test +threads abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_riscv_lp64d abi_riscv_lp64 abi_s390_32 abi_s390_64
+KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux
+LICENSE=BSD
+RDEPEND=abi_x86_32? ( !app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)] )
+REQUIRED_USE=cpu_flags_x86_sse2? ( cpu_flags_x86_mmx ) cpu_flags_x86_ssse3? ( cpu_flags_x86_sse2 ) test? ( threads )
+RESTRICT=!test? ( test )
+SLOT=0/4
+SRC_URI=https://chromium.googlesource.com/webm/libvpx/+archive/v1.7.0.tar.gz -> libvpx-1.7.0.tar.gz
+_eclasses_=multibuild 40fe59465edacd730c644ec2bc197809 multilib 1d91b03d42ab6308b5f4f6b598ed110e multilib-build 5c1d48ed515f98242029611de215c727 multilib-minimal 8bddda43703ba94d8341f4e247f97566 toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529
+_md5_=0d99371e31235c69619d57a2539c1ee2
diff --git a/metadata/md5-cache/media-libs/lv2-1.14.0-r1 b/metadata/md5-cache/media-libs/lv2-1.14.0-r1
new file mode 100644
index 0000000..fd9d1ea
--- /dev/null
+++ b/metadata/md5-cache/media-libs/lv2-1.14.0-r1
@@ -0,0 +1,14 @@
+DEFINED_PHASES=compile configure install prepare setup test
+DEPEND=python_single_target_python3_7? ( dev-lang/python:3.7[threads(+)] ) python_single_target_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7[threads(+)] ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] plugins? ( x11-libs/gtk+:2 media-libs/libsndfile ) plugins? ( virtual/pkgconfig ) doc? ( app-doc/doxygen dev-python/rdflib )
+DESCRIPTION=A simple but extensible successor of LADSPA
+EAPI=6
+HOMEPAGE=http://lv2plug.in/
+IUSE=doc plugins python_targets_python3_7 python_targets_python2_7 python_single_target_python3_7 python_single_target_python2_7 abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_riscv_lp64d abi_riscv_lp64 abi_s390_32 abi_s390_64
+KEYWORDS=alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 x86
+LICENSE=MIT
+RDEPEND=python_single_target_python3_7? ( dev-lang/python:3.7[threads(+)] ) python_single_target_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7[threads(+)] ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] plugins? ( x11-libs/gtk+:2 media-libs/libsndfile ) dev-python/lxml[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/pygments[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/rdflib[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] !=dev-lang/python-2.7.5-r2:2.7[threads(+)] ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] plugins? ( x11-libs/gtk+:2 media-libs/libsndfile ) plugins? ( virtual/pkgconfig ) doc? ( app-doc/doxygen dev-python/rdflib )
+DESCRIPTION=A simple but extensible successor of LADSPA
+EAPI=6
+HOMEPAGE=http://lv2plug.in/
+IUSE=doc plugins python_targets_python3_7 python_targets_python2_7 python_single_target_python3_7 python_single_target_python2_7 abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_riscv_lp64d abi_riscv_lp64 abi_s390_32 abi_s390_64
+KEYWORDS=alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 x86
+LICENSE=MIT
+RDEPEND=python_single_target_python3_7? ( dev-lang/python:3.7[threads(+)] ) python_single_target_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7[threads(+)] ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] plugins? ( x11-libs/gtk+:2 media-libs/libsndfile ) dev-python/lxml[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/pygments[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/rdflib[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] !=dev-util/meson-0.48.2 >=dev-util/ninja-1.7.2
+DEFINED_PHASES=compile configure install test
+DEPEND=media-libs/alsa-lib media-libs/sbc media-video/ffmpeg:= jack? ( >=media-sound/jack2-1.9.10 ) pulseaudio? ( >=media-sound/pulseaudio-11.1 ) sys-apps/dbus virtual/libudev gstreamer? ( media-libs/gstreamer:1.0 media-libs/gst-plugins-base:1.0 ) systemd? ( sys-apps/systemd ) media-libs/vulkan-loader app-doc/xmltoman docs? ( app-doc/doxygen )
+DESCRIPTION=Multimedia processing graphs
+EAPI=7
+HOMEPAGE=http://pipewire.org/
+IUSE=docs examples ffmpeg gstreamer jack pulseaudio systemd
+KEYWORDS=*
+LICENSE=LGPL-2.1
+RDEPEND=media-libs/alsa-lib media-libs/sbc media-video/ffmpeg:= jack? ( >=media-sound/jack2-1.9.10 ) pulseaudio? ( >=media-sound/pulseaudio-11.1 ) sys-apps/dbus virtual/libudev gstreamer? ( media-libs/gstreamer:1.0 media-libs/gst-plugins-base:1.0 ) systemd? ( sys-apps/systemd ) media-libs/vulkan-loader
+RESTRICT=mirror
+SLOT=0
+SRC_URI=https://github.com/PipeWire/pipewire/archive/0.3.6.tar.gz -> pipewire-0.3.6.tar.gz
+_eclasses_=meson 2fbe03e3b496f82fd941bcdb9d351c91 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529
+_md5_=12fae09ea20e9ce49e068a4138802e9d
diff --git a/metadata/md5-cache/net-analyzer/fail2ban-0.11.1 b/metadata/md5-cache/net-analyzer/fail2ban-0.11.1
new file mode 100644
index 0000000..6deb5d9
--- /dev/null
+++ b/metadata/md5-cache/net-analyzer/fail2ban-0.11.1
@@ -0,0 +1,15 @@
+DEFINED_PHASES=compile configure install postinst preinst prepare setup test unpack
+DEPEND=python_single_target_python3_7? ( dev-lang/python:3.7 ) python_single_target_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_single_target_pypy? ( >=virtual/pypy-5:0= ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,python_targets_python2_7(-)?,python_targets_pypy(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?,python_single_target_pypy(+)?] virtual/pkgconfig
+DESCRIPTION=scans log files and bans IPs that show malicious signs
+EAPI=6
+HOMEPAGE=https://www.fail2ban.org/
+IUSE=selinux systemd python_targets_python3_7 python_targets_python2_7 python_targets_pypy python_single_target_python3_7 python_single_target_python2_7 python_single_target_pypy
+KEYWORDS=alpha amd64 arm hppa ppc ppc64 sparc x86 ~x86-fbsd
+LICENSE=GPL-2
+RDEPEND=kernel_linux? ( net-firewall/iptables ) kernel_FreeBSD? ( sys-freebsd/freebsd-pf ) net-misc/whois virtual/logger virtual/mta selinux? ( sec-policy/selinux-fail2ban ) systemd? ( python_single_target_python3_7? ( || ( dev-python/python-systemd[python_targets_python3_7(-)?,python_single_target_python3_7(+)?,python_targets_python2_7(-)?,python_single_target_python2_7(+)?] sys-apps/systemd[python(-),python_targets_python3_7(-)?,python_single_target_python3_7(+)?,python_targets_python2_7(-)?,python_single_target_python2_7(+)?] ) ) python_single_target_python2_7? ( || ( dev-python/python-systemd[python_targets_python3_7(-)?,python_single_target_python3_7(+)?,python_targets_python2_7(-)?,python_single_target_python2_7(+)?] sys-apps/systemd[python(-),python_targets_python3_7(-)?,python_single_target_python3_7(+)?,python_targets_python2_7(-)?,python_single_target_python2_7(+)?] ) ) ) python_single_target_python3_7? ( dev-lang/python:3.7 ) python_single_target_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_single_target_pypy? ( >=virtual/pypy-5:0= ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,python_targets_python2_7(-)?,python_targets_pypy(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?,python_single_target_pypy(+)?]
+REQUIRED_USE=^^ ( python_single_target_python3_7 python_single_target_python2_7 python_single_target_pypy ) python_single_target_python3_7? ( python_targets_python3_7 ) python_single_target_python2_7? ( python_targets_python2_7 ) python_single_target_pypy? ( python_targets_pypy )
+RESTRICT=test
+SLOT=0
+SRC_URI=https://github.com/fail2ban/fail2ban/tarball/0.11.1 -> fail2ban-0.11.1.tar.gz
+_eclasses_=desktop b1d22ac8bdd4679ab79c71aca235009d distutils-r1 1a001b95d3bfb24277ebc93f461847da epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 ltprune 22f9f14d105434e9c400ccac3bbb64ae multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 preserve-libs ef207dc62baddfddfd39a164d9797648 python-single-r1 d93acbd6ef50348b41ff4ead9a020a16 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc systemd 71fd8d2065d102753fb9e4d20eaf3e9f toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf vcs-snapshot b1abf460a493fc59ebb25de0df3f09dd xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=d3c8f5fbff86036304b79cf4e72b3c77
diff --git a/metadata/md5-cache/net-mail/fdm-1.7 b/metadata/md5-cache/net-mail/fdm-1.7
new file mode 100644
index 0000000..6ca51f2
--- /dev/null
+++ b/metadata/md5-cache/net-mail/fdm-1.7
@@ -0,0 +1,13 @@
+DEFINED_PHASES=compile install prepare setup
+DEPEND=dev-libs/openssl:0 sys-libs/tdb courierauth? ( net-libs/courier-authlib ) pcre? ( dev-libs/libpcre )
+DESCRIPTION=fetch, filter and deliver mail
+EAPI=5
+HOMEPAGE=http://fdm.sourceforge.net
+IUSE=courierauth examples pcre
+KEYWORDS=amd64 x86
+LICENSE=BSD
+RDEPEND=dev-libs/openssl:0 sys-libs/tdb courierauth? ( net-libs/courier-authlib ) pcre? ( dev-libs/libpcre )
+SLOT=0
+SRC_URI=mirror://sourceforge/fdm/fdm-1.7.tar.gz
+_eclasses_=desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 ltprune 22f9f14d105434e9c400ccac3bbb64ae multilib 1d91b03d42ab6308b5f4f6b598ed110e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 user e68863263b1e8611dacf381bec5c8b2b vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
+_md5_=a84801b12641a112101b0f10e94f7867
diff --git a/metadata/md5-cache/net-mail/fdm-1.8 b/metadata/md5-cache/net-mail/fdm-1.8
new file mode 100644
index 0000000..2ad4ce3
--- /dev/null
+++ b/metadata/md5-cache/net-mail/fdm-1.8
@@ -0,0 +1,13 @@
+DEFINED_PHASES=compile install prepare setup
+DEPEND=dev-libs/openssl:0 sys-libs/tdb courierauth? ( net-libs/courier-authlib ) pcre? ( dev-libs/libpcre )
+DESCRIPTION=fetch, filter and deliver mail
+EAPI=5
+HOMEPAGE=https://github.com/nicm/fdm
+IUSE=courierauth examples pcre
+KEYWORDS=~amd64 ~x86
+LICENSE=BSD
+RDEPEND=dev-libs/openssl:0 sys-libs/tdb courierauth? ( net-libs/courier-authlib ) pcre? ( dev-libs/libpcre )
+SLOT=0
+SRC_URI=mirror://sourceforge/fdm/fdm-1.8.tar.gz
+_eclasses_=desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 ltprune 22f9f14d105434e9c400ccac3bbb64ae multilib 1d91b03d42ab6308b5f4f6b598ed110e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 user e68863263b1e8611dacf381bec5c8b2b vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
+_md5_=2970154bf895d3d452b0d11c41a99699
diff --git a/metadata/md5-cache/net-mail/fdm-1.9 b/metadata/md5-cache/net-mail/fdm-1.9
new file mode 100644
index 0000000..84bf2a6
--- /dev/null
+++ b/metadata/md5-cache/net-mail/fdm-1.9
@@ -0,0 +1,13 @@
+DEFINED_PHASES=compile install prepare setup
+DEPEND=!libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) sys-libs/tdb courierauth? ( net-libs/courier-authlib ) pcre? ( dev-libs/libpcre ) >=app-portage/elt-patches-20170815 !=sys-devel/automake-1.16.1:1.16 >=sys-devel/automake-1.15.1:1.15 ) >=sys-devel/autoconf-2.69 >=sys-devel/libtool-2.4
+DESCRIPTION=fetch, filter and deliver mail
+EAPI=5
+HOMEPAGE=https://github.com/nicm/fdm
+IUSE=courierauth examples libressl pcre
+KEYWORDS=~amd64 ~x86
+LICENSE=BSD
+RDEPEND=!libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) sys-libs/tdb courierauth? ( net-libs/courier-authlib ) pcre? ( dev-libs/libpcre )
+SLOT=0
+SRC_URI=https://github.com/nicm/fdm/releases/download/1.9/fdm-1.9.tar.gz
+_eclasses_=autotools 1bf086cdd7356f5c9a4acd9727bd2065 desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 libtool f143db5a74ccd9ca28c1234deffede96 ltprune 22f9f14d105434e9c400ccac3bbb64ae multilib 1d91b03d42ab6308b5f4f6b598ed110e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 user e68863263b1e8611dacf381bec5c8b2b vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
+_md5_=df6b281f236f255b441243c5d67ae529
diff --git a/metadata/md5-cache/sci-electronics/OpenBoardView-7.3 b/metadata/md5-cache/sci-electronics/OpenBoardView-7.3
new file mode 100644
index 0000000..ec3e32b
--- /dev/null
+++ b/metadata/md5-cache/sci-electronics/OpenBoardView-7.3
@@ -0,0 +1,12 @@
+DEFINED_PHASES=compile configure install prepare test unpack
+DEPEND=x11-libs/gtk+ media-libs/libsdl sys-libs/zlib dev-db/sqlite media-libs/fontconfig sys-devel/make >=dev-util/cmake-3.9.6 >=dev-vcs/git-1.8.2.1[curl]
+DESCRIPTION=Linux SDL/ImGui edition software for viewing .brd files, intended as a drop-in replacement for the "Test_Link" software and "Landrex"
+EAPI=6
+HOMEPAGE=http://openboardview.org/
+KEYWORDS=~amd64 ~x86
+LICENSE=MIT
+PROPERTIES=live
+RDEPEND=x11-libs/gtk+ media-libs/libsdl sys-libs/zlib dev-db/sqlite media-libs/fontconfig
+SLOT=0
+_eclasses_=cmake-utils 2b36e0ed4585e0b246ddd9d2ca07f3a4 desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf git-r3 7dcb8a92f5a091f13e82494fa317ca4b ltprune 22f9f14d105434e9c400ccac3bbb64ae multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=4ed7d57e3102c0e401fc45f868a62084
diff --git a/metadata/md5-cache/sci-libs/vtk-6.1.0-r4 b/metadata/md5-cache/sci-libs/vtk-6.1.0-r4
new file mode 100644
index 0000000..a840e1e
--- /dev/null
+++ b/metadata/md5-cache/sci-libs/vtk-6.1.0-r4
@@ -0,0 +1,15 @@
+DEFINED_PHASES=compile configure install postinst preinst prepare prerm setup test
+DEPEND=dev-libs/expat dev-libs/jsoncpp dev-libs/libxml2:2 >=media-libs/freetype-2.5.4 media-libs/libpng:0 media-libs/mesa media-libs/libtheora media-libs/tiff:0 sci-libs/exodusii sci-libs/hdf5:= sci-libs/netcdf-cxx:3 sys-libs/zlib virtual/jpeg:0 virtual/opengl >=x11-libs/gl2ps-1.3.8 x11-libs/libX11 x11-libs/libXmu x11-libs/libXt boost? ( >=dev-libs/boost-1.40.0[mpi?] ) cg? ( media-gfx/nvidia-cg-toolkit ) examples? ( dev-qt/qtcore:5 dev-qt/qtgui:5 sci-libs/vtkdata ) ffmpeg? ( virtual/ffmpeg ) gdal? ( sci-libs/gdal ) java? ( >=virtual/jre-1.5:* ) kaapi? ( =dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/sip[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) qt5? ( dev-qt/designer:5 dev-qt/qtcore:5 dev-qt/qtgui:5 dev-qt/qtopengl:5 dev-qt/qtsql:5 dev-qt/qtwebkit:5 python? ( dev-python/PyQt5[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) ) R? ( dev-lang/R ) tbb? ( dev-cpp/tbb ) tcl? ( dev-lang/tcl:0= ) tk? ( dev-lang/tk:0= ) video_cards_nvidia? ( x11-drivers/nvidia-drivers[tools,static-libs] ) web? ( >=app-admin/webapp-config-1.50.15 python? ( dev-python/autobahn[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/twisted-core[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/zope-interface[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) ) xdmf2? ( sci-libs/xdmf2 ) doc? ( app-doc/doxygen ) java? ( >=virtual/jdk-1.5 ) java? ( >=dev-java/java-config-2.2.0-r3 ) dev-util/ninja >=dev-util/cmake-3.9.6 test? ( !prefix? ( x11-base/xorg-server[xvfb] ) x11-apps/xhost )
+DESCRIPTION=The Visualization Toolkit
+EAPI=5
+HOMEPAGE=https://www.vtk.org/
+IUSE=all-modules aqua boost cg doc examples imaging ffmpeg gdal java json kaapi mpi mysql odbc offscreen postgres python qt5 rendering smp tbb test theora tk tcl video_cards_nvidia views web xdmf2 R +X elibc_FreeBSD java python_targets_python2_7 test
+KEYWORDS=~amd64 ~arm ~x86 ~amd64-linux ~x86-linux
+LICENSE=BSD LGPL-2
+RDEPEND=dev-libs/expat dev-libs/jsoncpp dev-libs/libxml2:2 >=media-libs/freetype-2.5.4 media-libs/libpng:0 media-libs/mesa media-libs/libtheora media-libs/tiff:0 sci-libs/exodusii sci-libs/hdf5:= sci-libs/netcdf-cxx:3 sys-libs/zlib virtual/jpeg:0 virtual/opengl >=x11-libs/gl2ps-1.3.8 x11-libs/libX11 x11-libs/libXmu x11-libs/libXt boost? ( >=dev-libs/boost-1.40.0[mpi?] ) cg? ( media-gfx/nvidia-cg-toolkit ) examples? ( dev-qt/qtcore:5 dev-qt/qtgui:5 sci-libs/vtkdata ) ffmpeg? ( virtual/ffmpeg ) gdal? ( sci-libs/gdal ) java? ( >=virtual/jre-1.5:* ) kaapi? ( =dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/sip[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) qt5? ( dev-qt/designer:5 dev-qt/qtcore:5 dev-qt/qtgui:5 dev-qt/qtopengl:5 dev-qt/qtsql:5 dev-qt/qtwebkit:5 python? ( dev-python/PyQt5[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) ) R? ( dev-lang/R ) tbb? ( dev-cpp/tbb ) tcl? ( dev-lang/tcl:0= ) tk? ( dev-lang/tk:0= ) video_cards_nvidia? ( x11-drivers/nvidia-drivers[tools,static-libs] ) web? ( >=app-admin/webapp-config-1.50.15 python? ( dev-python/autobahn[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/twisted-core[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/zope-interface[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) ) xdmf2? ( sci-libs/xdmf2 ) java? ( >=dev-java/java-config-2.2.0-r3 )
+REQUIRED_USE=all-modules? ( python xdmf2 ) java? ( qt5 ) python? ( python_targets_python2_7 ) tcl? ( rendering ) smp? ( ^^ ( kaapi tbb ) ) test? ( python ) tk? ( tcl ) web? ( python ) ^^ ( X aqua offscreen )
+RESTRICT=test
+SLOT=0
+SRC_URI=https://www.vtk.org/files/release/6.1/VTK-6.1.0.tar.gz doc? ( https://www.vtk.org/files/release/6.1/vtkDocHtml-6.1.0.tar.gz ) test? ( https://www.vtk.org/files/release/6.1/VTKData-6.1.0.tar.gz https://www.vtk.org/files/release/6.1/VTKLargeData-6.1.0.tar.gz )
+_eclasses_=cmake-utils 2b36e0ed4585e0b246ddd9d2ca07f3a4 desktop b1d22ac8bdd4679ab79c71aca235009d eapi7-ver 756b3f27d8e46131d5cf3c51bd876446 epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf java-pkg-opt-2 77d2e22d0de7640f817d20e861c0ff3f java-utils-2 dd352559d0e143500ec878acc74da909 ltprune 22f9f14d105434e9c400ccac3bbb64ae multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f preserve-libs ef207dc62baddfddfd39a164d9797648 python-single-r1 d93acbd6ef50348b41ff4ead9a020a16 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc qmake-utils bdf97e69a34b864d6d545f4ec3143ff7 toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf versionator 2352c3fc97241f6a02042773c8287748 virtualx 401b718cc14d43a5a7fbe062c4851ba5 webapp 16783e418aca3ffa461d68310bf7ab12 xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=794eb0db61d1ad6fbc83cddd15da5440
diff --git a/metadata/md5-cache/sci-libs/vtk-7.1.0 b/metadata/md5-cache/sci-libs/vtk-7.1.0
new file mode 100644
index 0000000..7898001
--- /dev/null
+++ b/metadata/md5-cache/sci-libs/vtk-7.1.0
@@ -0,0 +1,15 @@
+DEFINED_PHASES=compile configure install postinst preinst prepare prerm setup test
+DEPEND=dev-libs/expat dev-libs/jsoncpp:= dev-libs/libxml2:2 >=media-libs/freetype-2.5.4 media-libs/libpng:0= media-libs/libtheora media-libs/mesa media-libs/tiff:0 sci-libs/exodusii sci-libs/hdf5:= sci-libs/netcdf-cxx:3 sys-libs/zlib virtual/jpeg:0 virtual/opengl x11-libs/libX11 x11-libs/libXmu x11-libs/libXt boost? ( dev-libs/boost:=[mpi?] ) examples? ( dev-qt/qtcore:5 dev-qt/qtgui:5 sci-libs/vtkdata ) ffmpeg? ( virtual/ffmpeg ) gdal? ( sci-libs/gdal ) java? ( >=virtual/jdk-1.7:* ) kaapi? ( =dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/sip[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) qt5? ( dev-qt/designer:5 dev-qt/qtcore:5 dev-qt/qtgui:5 dev-qt/qtopengl:5 dev-qt/qtsql:5 dev-qt/qtwebkit:5 dev-qt/qtx11extras:5 python? ( dev-python/PyQt5[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) ) R? ( dev-lang/R ) tbb? ( dev-cpp/tbb ) tcl? ( dev-lang/tcl:0= ) tk? ( dev-lang/tk:0= ) video_cards_nvidia? ( x11-drivers/nvidia-drivers[tools,static-libs] ) web? ( >=app-admin/webapp-config-1.50.15 dev-python/six[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/autobahn[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/twisted[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/zope-interface[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) xdmf2? ( sci-libs/xdmf2 ) doc? ( app-doc/doxygen ) java? ( >=dev-java/java-config-2.2.0-r3 ) sys-devel/make >=dev-util/cmake-3.9.6 test? ( !prefix? ( x11-base/xorg-server[xvfb] ) x11-apps/xhost )
+DESCRIPTION=The Visualization Toolkit
+EAPI=6
+HOMEPAGE=https://www.vtk.org/
+IUSE=all-modules aqua boost doc examples imaging ffmpeg gdal java json kaapi mpi mysql odbc offscreen postgres python qt5 rendering tbb test theora tk tcl video_cards_nvidia views web R +X xdmf2 elibc_FreeBSD java python_targets_python2_7 test
+KEYWORDS=amd64 ~arm x86 ~amd64-linux ~x86-linux
+LICENSE=BSD LGPL-2
+RDEPEND=dev-libs/expat dev-libs/jsoncpp:= dev-libs/libxml2:2 >=media-libs/freetype-2.5.4 media-libs/libpng:0= media-libs/libtheora media-libs/mesa media-libs/tiff:0 sci-libs/exodusii sci-libs/hdf5:= sci-libs/netcdf-cxx:3 sys-libs/zlib virtual/jpeg:0 virtual/opengl x11-libs/libX11 x11-libs/libXmu x11-libs/libXt boost? ( dev-libs/boost:=[mpi?] ) examples? ( dev-qt/qtcore:5 dev-qt/qtgui:5 sci-libs/vtkdata ) ffmpeg? ( virtual/ffmpeg ) gdal? ( sci-libs/gdal ) java? ( >=virtual/jdk-1.7:* ) kaapi? ( =dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/sip[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) qt5? ( dev-qt/designer:5 dev-qt/qtcore:5 dev-qt/qtgui:5 dev-qt/qtopengl:5 dev-qt/qtsql:5 dev-qt/qtwebkit:5 dev-qt/qtx11extras:5 python? ( dev-python/PyQt5[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) ) R? ( dev-lang/R ) tbb? ( dev-cpp/tbb ) tcl? ( dev-lang/tcl:0= ) tk? ( dev-lang/tk:0= ) video_cards_nvidia? ( x11-drivers/nvidia-drivers[tools,static-libs] ) web? ( >=app-admin/webapp-config-1.50.15 dev-python/six[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/autobahn[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/twisted[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/zope-interface[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) xdmf2? ( sci-libs/xdmf2 ) java? ( >=dev-java/java-config-2.2.0-r3 )
+REQUIRED_USE=all-modules? ( python xdmf2 boost ) java? ( qt5 ) python? ( python_targets_python2_7 ) tcl? ( rendering ) test? ( python ) tk? ( tcl ) web? ( python ) ^^ ( X aqua offscreen )
+RESTRICT=test
+SLOT=0
+SRC_URI=https://www.vtk.org/files/release/7.1/VTK-7.1.0.tar.gz doc? ( https://www.vtk.org/files/release/7.1/vtkDocHtml-7.1.0.tar.gz ) test? ( https://www.vtk.org/files/release/7.1/VTKData-7.1.0.tar.gz https://www.vtk.org/files/release/7.1/VTKLargeData-7.1.0.tar.gz )
+_eclasses_=cmake-utils 2b36e0ed4585e0b246ddd9d2ca07f3a4 desktop b1d22ac8bdd4679ab79c71aca235009d eapi7-ver 756b3f27d8e46131d5cf3c51bd876446 epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf java-pkg-opt-2 77d2e22d0de7640f817d20e861c0ff3f java-utils-2 dd352559d0e143500ec878acc74da909 ltprune 22f9f14d105434e9c400ccac3bbb64ae multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f preserve-libs ef207dc62baddfddfd39a164d9797648 python-single-r1 d93acbd6ef50348b41ff4ead9a020a16 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc qmake-utils bdf97e69a34b864d6d545f4ec3143ff7 toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf versionator 2352c3fc97241f6a02042773c8287748 virtualx 401b718cc14d43a5a7fbe062c4851ba5 webapp 16783e418aca3ffa461d68310bf7ab12 xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=194399ac6f7df44da2d95ee53a9be21f
diff --git a/metadata/md5-cache/sci-libs/vtk-8.1.0 b/metadata/md5-cache/sci-libs/vtk-8.1.0
new file mode 100644
index 0000000..e4e69fe
--- /dev/null
+++ b/metadata/md5-cache/sci-libs/vtk-8.1.0
@@ -0,0 +1,15 @@
+DEFINED_PHASES=compile configure install postinst preinst prepare prerm setup test
+DEPEND=app-arch/lz4 dev-libs/expat dev-libs/jsoncpp:= dev-libs/libxml2:2 >=media-libs/freetype-2.5.4 >=media-libs/libharu-2.3.0-r2 media-libs/libpng:0= media-libs/libtheora media-libs/mesa media-libs/tiff:0 sci-libs/exodusii sci-libs/hdf5:= sci-libs/netcdf-cxx:3 sys-libs/zlib virtual/jpeg:0 virtual/opengl x11-libs/libX11 x11-libs/libXmu x11-libs/libXt boost? ( dev-libs/boost:=[mpi?] ) examples? ( dev-qt/qtcore:5 dev-qt/qtgui:5 ) ffmpeg? ( virtual/ffmpeg ) gdal? ( sci-libs/gdal ) java? ( >=virtual/jdk-1.7:* ) kaapi? ( =dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/sip[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) qt5? ( dev-qt/designer:5 dev-qt/qtcore:5 dev-qt/qtgui:5 dev-qt/qtopengl:5 dev-qt/qtsql:5 dev-qt/qtwebkit:5 dev-qt/qtx11extras:5 python? ( dev-python/PyQt5[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) ) R? ( dev-lang/R ) tbb? ( dev-cpp/tbb ) tcl? ( dev-lang/tcl:0= ) tk? ( dev-lang/tk:0= ) video_cards_nvidia? ( x11-drivers/nvidia-drivers[tools,static-libs] ) web? ( >=app-admin/webapp-config-1.50.15 dev-python/autobahn[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/constantly[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/hyperlink[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/incremental[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/six[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/twisted[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/txaio[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/zope-interface[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) xdmf2? ( sci-libs/xdmf2 ) doc? ( app-doc/doxygen ) java? ( >=dev-java/java-config-2.2.0-r3 ) sys-devel/make >=dev-util/cmake-3.9.6 test? ( !prefix? ( x11-base/xorg-server[xvfb] ) x11-apps/xhost )
+DESCRIPTION=The Visualization Toolkit
+EAPI=6
+HOMEPAGE=https://www.vtk.org/
+IUSE=all-modules aqua boost doc examples imaging ffmpeg gdal java json kaapi mpi mysql odbc offscreen postgres python qt5 rendering tbb theora tk tcl video_cards_nvidia views web R +X xdmf2 elibc_FreeBSD java python_targets_python2_7 test
+KEYWORDS=~amd64 ~x86 ~amd64-linux ~x86-linux
+LICENSE=BSD LGPL-2
+RDEPEND=app-arch/lz4 dev-libs/expat dev-libs/jsoncpp:= dev-libs/libxml2:2 >=media-libs/freetype-2.5.4 >=media-libs/libharu-2.3.0-r2 media-libs/libpng:0= media-libs/libtheora media-libs/mesa media-libs/tiff:0 sci-libs/exodusii sci-libs/hdf5:= sci-libs/netcdf-cxx:3 sys-libs/zlib virtual/jpeg:0 virtual/opengl x11-libs/libX11 x11-libs/libXmu x11-libs/libXt boost? ( dev-libs/boost:=[mpi?] ) examples? ( dev-qt/qtcore:5 dev-qt/qtgui:5 ) ffmpeg? ( virtual/ffmpeg ) gdal? ( sci-libs/gdal ) java? ( >=virtual/jdk-1.7:* ) kaapi? ( =dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/sip[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) qt5? ( dev-qt/designer:5 dev-qt/qtcore:5 dev-qt/qtgui:5 dev-qt/qtopengl:5 dev-qt/qtsql:5 dev-qt/qtwebkit:5 dev-qt/qtx11extras:5 python? ( dev-python/PyQt5[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) ) R? ( dev-lang/R ) tbb? ( dev-cpp/tbb ) tcl? ( dev-lang/tcl:0= ) tk? ( dev-lang/tk:0= ) video_cards_nvidia? ( x11-drivers/nvidia-drivers[tools,static-libs] ) web? ( >=app-admin/webapp-config-1.50.15 dev-python/autobahn[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/constantly[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/hyperlink[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/incremental[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/six[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/twisted[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/txaio[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/zope-interface[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) xdmf2? ( sci-libs/xdmf2 ) java? ( >=dev-java/java-config-2.2.0-r3 )
+REQUIRED_USE=all-modules? ( python xdmf2 boost ) java? ( qt5 ) python? ( python_targets_python2_7 ) tcl? ( rendering ) examples? ( python ) tk? ( tcl ) web? ( python ) ^^ ( X aqua offscreen )
+RESTRICT=test
+SLOT=0
+SRC_URI=https://www.vtk.org/files/release/8.1/VTK-8.1.0.tar.gz doc? ( https://www.vtk.org/files/release/8.1/vtkDocHtml-8.1.0.tar.gz ) examples? ( https://www.vtk.org/files/release/8.1/VTKData-8.1.0.tar.gz https://www.vtk.org/files/release/8.1/VTKLargeData-8.1.0.tar.gz )
+_eclasses_=cmake-utils 2b36e0ed4585e0b246ddd9d2ca07f3a4 desktop b1d22ac8bdd4679ab79c71aca235009d eapi7-ver 756b3f27d8e46131d5cf3c51bd876446 epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf java-pkg-opt-2 77d2e22d0de7640f817d20e861c0ff3f java-utils-2 dd352559d0e143500ec878acc74da909 ltprune 22f9f14d105434e9c400ccac3bbb64ae multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f preserve-libs ef207dc62baddfddfd39a164d9797648 python-single-r1 d93acbd6ef50348b41ff4ead9a020a16 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc qmake-utils bdf97e69a34b864d6d545f4ec3143ff7 toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf versionator 2352c3fc97241f6a02042773c8287748 virtualx 401b718cc14d43a5a7fbe062c4851ba5 webapp 16783e418aca3ffa461d68310bf7ab12 xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=2604d0265fff5e35762723bb38a370f8
diff --git a/metadata/md5-cache/sci-libs/vtk-8.1.0-r1 b/metadata/md5-cache/sci-libs/vtk-8.1.0-r1
new file mode 100644
index 0000000..90402db
--- /dev/null
+++ b/metadata/md5-cache/sci-libs/vtk-8.1.0-r1
@@ -0,0 +1,15 @@
+DEFINED_PHASES=compile configure install postinst preinst prepare prerm setup test
+DEPEND=app-arch/lz4 dev-libs/expat dev-libs/jsoncpp:= dev-libs/libxml2:2 >=media-libs/freetype-2.5.4 >=media-libs/libharu-2.3.0-r2 media-libs/libpng:0= media-libs/libtheora media-libs/mesa media-libs/tiff:0 sci-libs/exodusii sci-libs/hdf5:= sci-libs/netcdf-cxx:3 sys-libs/zlib virtual/jpeg:0 virtual/opengl x11-libs/libX11 x11-libs/libXmu x11-libs/libXt boost? ( dev-libs/boost:=[mpi?] ) examples? ( dev-qt/qtcore:5 dev-qt/qtgui:5 ) ffmpeg? ( virtual/ffmpeg ) gdal? ( sci-libs/gdal ) java? ( >=virtual/jdk-1.7:* ) kaapi? ( =dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/sip[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) qt5? ( dev-qt/designer:5 dev-qt/qtcore:5 dev-qt/qtgui:5 dev-qt/qtopengl:5 dev-qt/qtsql:5 dev-qt/qtwebkit:5 dev-qt/qtx11extras:5 python? ( dev-python/PyQt5[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) ) R? ( dev-lang/R ) tbb? ( dev-cpp/tbb ) tcl? ( dev-lang/tcl:0= ) tk? ( dev-lang/tk:0= ) video_cards_nvidia? ( x11-drivers/nvidia-drivers[tools,static-libs] ) web? ( >=app-admin/webapp-config-1.50.15 dev-python/autobahn[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/constantly[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/hyperlink[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/incremental[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/six[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/twisted[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/txaio[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/zope-interface[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) xdmf2? ( sci-libs/xdmf2 ) doc? ( app-doc/doxygen ) java? ( >=dev-java/java-config-2.2.0-r3 ) sys-devel/make >=dev-util/cmake-3.9.6 test? ( !prefix? ( x11-base/xorg-server[xvfb] ) x11-apps/xhost )
+DESCRIPTION=The Visualization Toolkit
+EAPI=6
+HOMEPAGE=https://www.vtk.org/
+IUSE=all-modules aqua boost doc examples imaging ffmpeg gdal java json kaapi mpi mysql odbc offscreen postgres python qt5 rendering tbb theora tk tcl video_cards_nvidia views web R +X xdmf2 elibc_FreeBSD java python_targets_python2_7 test
+KEYWORDS=~amd64 ~x86 ~amd64-linux ~x86-linux
+LICENSE=BSD LGPL-2
+RDEPEND=app-arch/lz4 dev-libs/expat dev-libs/jsoncpp:= dev-libs/libxml2:2 >=media-libs/freetype-2.5.4 >=media-libs/libharu-2.3.0-r2 media-libs/libpng:0= media-libs/libtheora media-libs/mesa media-libs/tiff:0 sci-libs/exodusii sci-libs/hdf5:= sci-libs/netcdf-cxx:3 sys-libs/zlib virtual/jpeg:0 virtual/opengl x11-libs/libX11 x11-libs/libXmu x11-libs/libXt boost? ( dev-libs/boost:=[mpi?] ) examples? ( dev-qt/qtcore:5 dev-qt/qtgui:5 ) ffmpeg? ( virtual/ffmpeg ) gdal? ( sci-libs/gdal ) java? ( >=virtual/jdk-1.7:* ) kaapi? ( =dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/sip[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) qt5? ( dev-qt/designer:5 dev-qt/qtcore:5 dev-qt/qtgui:5 dev-qt/qtopengl:5 dev-qt/qtsql:5 dev-qt/qtwebkit:5 dev-qt/qtx11extras:5 python? ( dev-python/PyQt5[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) ) R? ( dev-lang/R ) tbb? ( dev-cpp/tbb ) tcl? ( dev-lang/tcl:0= ) tk? ( dev-lang/tk:0= ) video_cards_nvidia? ( x11-drivers/nvidia-drivers[tools,static-libs] ) web? ( >=app-admin/webapp-config-1.50.15 dev-python/autobahn[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/constantly[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/hyperlink[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/incremental[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/six[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/twisted[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/txaio[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] dev-python/zope-interface[python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python2_7(+)] ) xdmf2? ( sci-libs/xdmf2 ) java? ( >=dev-java/java-config-2.2.0-r3 )
+REQUIRED_USE=all-modules? ( python xdmf2 boost ) java? ( qt5 ) python? ( python_targets_python2_7 ) tcl? ( rendering ) examples? ( python ) tk? ( tcl ) web? ( python ) ^^ ( X aqua offscreen )
+RESTRICT=test
+SLOT=0
+SRC_URI=https://www.vtk.org/files/release/8.1/VTK-8.1.0.tar.gz doc? ( https://www.vtk.org/files/release/8.1/vtkDocHtml-8.1.0.tar.gz ) examples? ( https://www.vtk.org/files/release/8.1/VTKData-8.1.0.tar.gz https://www.vtk.org/files/release/8.1/VTKLargeData-8.1.0.tar.gz )
+_eclasses_=cmake-utils 2b36e0ed4585e0b246ddd9d2ca07f3a4 desktop b1d22ac8bdd4679ab79c71aca235009d eapi7-ver 756b3f27d8e46131d5cf3c51bd876446 epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf java-pkg-opt-2 77d2e22d0de7640f817d20e861c0ff3f java-utils-2 dd352559d0e143500ec878acc74da909 ltprune 22f9f14d105434e9c400ccac3bbb64ae multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f preserve-libs ef207dc62baddfddfd39a164d9797648 python-single-r1 d93acbd6ef50348b41ff4ead9a020a16 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc qmake-utils bdf97e69a34b864d6d545f4ec3143ff7 toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf versionator 2352c3fc97241f6a02042773c8287748 virtualx 401b718cc14d43a5a7fbe062c4851ba5 webapp 16783e418aca3ffa461d68310bf7ab12 xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=3d05bdc6bb60fd65dee5c3f30e188c9c
diff --git a/metadata/md5-cache/sci-libs/vtk-8.1.0-r2 b/metadata/md5-cache/sci-libs/vtk-8.1.0-r2
new file mode 100644
index 0000000..a0b6e68
--- /dev/null
+++ b/metadata/md5-cache/sci-libs/vtk-8.1.0-r2
@@ -0,0 +1,15 @@
+DEFINED_PHASES=compile configure install postinst preinst prepare prerm setup test
+DEPEND=app-arch/lz4 dev-libs/expat dev-libs/jsoncpp:= dev-libs/libxml2:2 >=media-libs/freetype-2.5.4 >=media-libs/libharu-2.3.0-r2 media-libs/libpng:0= media-libs/libtheora media-libs/mesa media-libs/tiff:0 sci-libs/exodusii sci-libs/hdf5:= sci-libs/netcdf-cxx:3 sys-libs/zlib virtual/jpeg:0 virtual/opengl x11-libs/libX11 x11-libs/libXmu x11-libs/libXt boost? ( dev-libs/boost:=[mpi?] ) examples? ( dev-qt/qtcore:5 dev-qt/qtgui:5 ) ffmpeg? ( virtual/ffmpeg ) gdal? ( sci-libs/gdal ) java? ( >=virtual/jdk-1.7:* ) kaapi? ( =dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/sip[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] ) qt5? ( dev-qt/designer:5 dev-qt/qtcore:5 dev-qt/qtgui:5 dev-qt/qtopengl:5 dev-qt/qtsql:5 dev-qt/qtwebkit:5 dev-qt/qtx11extras:5 python? ( dev-python/PyQt5[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] ) ) R? ( dev-lang/R ) tbb? ( dev-cpp/tbb ) tcl? ( dev-lang/tcl:0= ) tk? ( dev-lang/tk:0= ) video_cards_nvidia? ( x11-drivers/nvidia-drivers[tools,static-libs] ) web? ( >=app-admin/webapp-config-1.50.15 dev-python/autobahn[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/constantly[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/hyperlink[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/incremental[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/six[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/twisted[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/txaio[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/zope-interface[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] ) xdmf2? ( sci-libs/xdmf2 ) doc? ( app-doc/doxygen ) java? ( >=dev-java/java-config-2.2.0-r3 ) sys-devel/make >=dev-util/cmake-3.9.6 test? ( !prefix? ( x11-base/xorg-server[xvfb] ) x11-apps/xhost )
+DESCRIPTION=The Visualization Toolkit
+EAPI=6
+HOMEPAGE=https://www.vtk.org/
+IUSE=all-modules aqua boost doc examples imaging ffmpeg gdal java json kaapi mpi mysql odbc offscreen postgres python qt5 rendering tbb theora tk tcl video_cards_nvidia views web R +X xdmf2 elibc_FreeBSD java python_targets_python3_7 python_targets_python2_7 python_single_target_python3_7 python_single_target_python2_7 test
+KEYWORDS=~amd64 ~x86 ~amd64-linux ~x86-linux
+LICENSE=BSD LGPL-2
+RDEPEND=app-arch/lz4 dev-libs/expat dev-libs/jsoncpp:= dev-libs/libxml2:2 >=media-libs/freetype-2.5.4 >=media-libs/libharu-2.3.0-r2 media-libs/libpng:0= media-libs/libtheora media-libs/mesa media-libs/tiff:0 sci-libs/exodusii sci-libs/hdf5:= sci-libs/netcdf-cxx:3 sys-libs/zlib virtual/jpeg:0 virtual/opengl x11-libs/libX11 x11-libs/libXmu x11-libs/libXt boost? ( dev-libs/boost:=[mpi?] ) examples? ( dev-qt/qtcore:5 dev-qt/qtgui:5 ) ffmpeg? ( virtual/ffmpeg ) gdal? ( sci-libs/gdal ) java? ( >=virtual/jdk-1.7:* ) kaapi? ( =dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/sip[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] ) qt5? ( dev-qt/designer:5 dev-qt/qtcore:5 dev-qt/qtgui:5 dev-qt/qtopengl:5 dev-qt/qtsql:5 dev-qt/qtwebkit:5 dev-qt/qtx11extras:5 python? ( dev-python/PyQt5[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] ) ) R? ( dev-lang/R ) tbb? ( dev-cpp/tbb ) tcl? ( dev-lang/tcl:0= ) tk? ( dev-lang/tk:0= ) video_cards_nvidia? ( x11-drivers/nvidia-drivers[tools,static-libs] ) web? ( >=app-admin/webapp-config-1.50.15 dev-python/autobahn[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/constantly[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/hyperlink[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/incremental[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/six[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/twisted[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/txaio[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/zope-interface[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] ) xdmf2? ( sci-libs/xdmf2 ) java? ( >=dev-java/java-config-2.2.0-r3 )
+REQUIRED_USE=all-modules? ( python xdmf2 boost ) java? ( qt5 ) python? ( ^^ ( python_single_target_python3_7 python_single_target_python2_7 ) python_single_target_python3_7? ( python_targets_python3_7 ) python_single_target_python2_7? ( python_targets_python2_7 ) ) tcl? ( rendering ) examples? ( python ) tk? ( tcl ) web? ( python ) ^^ ( X aqua offscreen )
+RESTRICT=test
+SLOT=0
+SRC_URI=https://www.vtk.org/files/release/8.1/VTK-8.1.0.tar.gz doc? ( https://www.vtk.org/files/release/8.1/vtkDocHtml-8.1.0.tar.gz ) examples? ( https://www.vtk.org/files/release/8.1/VTKData-8.1.0.tar.gz https://www.vtk.org/files/release/8.1/VTKLargeData-8.1.0.tar.gz )
+_eclasses_=cmake-utils 2b36e0ed4585e0b246ddd9d2ca07f3a4 desktop b1d22ac8bdd4679ab79c71aca235009d eapi7-ver 756b3f27d8e46131d5cf3c51bd876446 epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf java-pkg-opt-2 77d2e22d0de7640f817d20e861c0ff3f java-utils-2 dd352559d0e143500ec878acc74da909 ltprune 22f9f14d105434e9c400ccac3bbb64ae multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f preserve-libs ef207dc62baddfddfd39a164d9797648 python-single-r1 d93acbd6ef50348b41ff4ead9a020a16 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc qmake-utils bdf97e69a34b864d6d545f4ec3143ff7 toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf versionator 2352c3fc97241f6a02042773c8287748 virtualx 401b718cc14d43a5a7fbe062c4851ba5 webapp 16783e418aca3ffa461d68310bf7ab12 xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=be84746f8b0547411b6c5ad5917f58dc
diff --git a/metadata/md5-cache/sci-libs/vtk-8.1.0-r3 b/metadata/md5-cache/sci-libs/vtk-8.1.0-r3
new file mode 100644
index 0000000..369a9a2
--- /dev/null
+++ b/metadata/md5-cache/sci-libs/vtk-8.1.0-r3
@@ -0,0 +1,15 @@
+DEFINED_PHASES=compile configure install postinst preinst prepare prerm setup test
+DEPEND=app-arch/lz4 dev-libs/expat dev-libs/jsoncpp:= dev-libs/libxml2:2 >=media-libs/freetype-2.5.4 >=media-libs/libharu-2.3.0-r2 media-libs/libpng:0= media-libs/libtheora media-libs/mesa media-libs/tiff:0 sci-libs/exodusii sci-libs/hdf5:= sci-libs/netcdf:0= sci-libs/netcdf-cxx:3 sys-libs/zlib virtual/jpeg:0 virtual/opengl x11-libs/libX11 x11-libs/libXmu x11-libs/libXt boost? ( dev-libs/boost:=[mpi?] ) examples? ( dev-qt/qtcore:5 dev-qt/qtgui:5 ) ffmpeg? ( virtual/ffmpeg ) gdal? ( sci-libs/gdal ) java? ( >=virtual/jdk-1.7:* ) kaapi? ( =dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/sip[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] ) qt5? ( dev-qt/designer:5 dev-qt/qtcore:5 dev-qt/qtgui:5 dev-qt/qtopengl:5 dev-qt/qtsql:5 dev-qt/qtwebkit:5 dev-qt/qtx11extras:5 python? ( dev-python/PyQt5[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] ) ) R? ( dev-lang/R ) tbb? ( dev-cpp/tbb ) tcl? ( dev-lang/tcl:0= ) tk? ( dev-lang/tk:0= ) video_cards_nvidia? ( x11-drivers/nvidia-drivers[tools,static-libs] ) web? ( >=app-admin/webapp-config-1.50.15 dev-python/autobahn[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/constantly[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/hyperlink[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/incremental[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/six[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/twisted[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/txaio[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/zope-interface[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] ) xdmf2? ( sci-libs/xdmf2 ) doc? ( app-doc/doxygen ) java? ( >=dev-java/java-config-2.2.0-r3 ) sys-devel/make >=dev-util/cmake-3.9.6 test? ( !prefix? ( x11-base/xorg-server[xvfb] ) x11-apps/xhost )
+DESCRIPTION=The Visualization Toolkit
+EAPI=6
+HOMEPAGE=https://www.vtk.org/
+IUSE=all-modules aqua boost doc examples imaging ffmpeg gdal java json kaapi mpi mysql odbc offscreen postgres python qt5 rendering tbb theora tk tcl video_cards_nvidia views web R +X xdmf2 elibc_FreeBSD java python_targets_python3_7 python_targets_python2_7 python_single_target_python3_7 python_single_target_python2_7 test
+KEYWORDS=~amd64 ~x86 ~amd64-linux ~x86-linux
+LICENSE=BSD LGPL-2
+RDEPEND=app-arch/lz4 dev-libs/expat dev-libs/jsoncpp:= dev-libs/libxml2:2 >=media-libs/freetype-2.5.4 >=media-libs/libharu-2.3.0-r2 media-libs/libpng:0= media-libs/libtheora media-libs/mesa media-libs/tiff:0 sci-libs/exodusii sci-libs/hdf5:= sci-libs/netcdf:0= sci-libs/netcdf-cxx:3 sys-libs/zlib virtual/jpeg:0 virtual/opengl x11-libs/libX11 x11-libs/libXmu x11-libs/libXt boost? ( dev-libs/boost:=[mpi?] ) examples? ( dev-qt/qtcore:5 dev-qt/qtgui:5 ) ffmpeg? ( virtual/ffmpeg ) gdal? ( sci-libs/gdal ) java? ( >=virtual/jdk-1.7:* ) kaapi? ( =dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/sip[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] ) qt5? ( dev-qt/designer:5 dev-qt/qtcore:5 dev-qt/qtgui:5 dev-qt/qtopengl:5 dev-qt/qtsql:5 dev-qt/qtwebkit:5 dev-qt/qtx11extras:5 python? ( dev-python/PyQt5[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] ) ) R? ( dev-lang/R ) tbb? ( dev-cpp/tbb ) tcl? ( dev-lang/tcl:0= ) tk? ( dev-lang/tk:0= ) video_cards_nvidia? ( x11-drivers/nvidia-drivers[tools,static-libs] ) web? ( >=app-admin/webapp-config-1.50.15 dev-python/autobahn[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/constantly[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/hyperlink[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/incremental[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/six[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/twisted[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/txaio[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] dev-python/zope-interface[python_targets_python3_7(-)?,python_targets_python2_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_6(-),-python_single_target_python3_5(-),-python_single_target_pypy(-),-python_single_target_jython2_7(-),python_single_target_python3_7(+)?,python_single_target_python2_7(+)?] ) xdmf2? ( sci-libs/xdmf2 ) java? ( >=dev-java/java-config-2.2.0-r3 )
+REQUIRED_USE=all-modules? ( python xdmf2 boost ) java? ( qt5 ) python? ( ^^ ( python_single_target_python3_7 python_single_target_python2_7 ) python_single_target_python3_7? ( python_targets_python3_7 ) python_single_target_python2_7? ( python_targets_python2_7 ) ) tcl? ( rendering ) examples? ( python ) tk? ( tcl ) web? ( python ) ^^ ( X aqua offscreen )
+RESTRICT=test
+SLOT=0
+SRC_URI=https://www.vtk.org/files/release/8.1/VTK-8.1.0.tar.gz doc? ( https://www.vtk.org/files/release/8.1/vtkDocHtml-8.1.0.tar.gz ) examples? ( https://www.vtk.org/files/release/8.1/VTKData-8.1.0.tar.gz https://www.vtk.org/files/release/8.1/VTKLargeData-8.1.0.tar.gz )
+_eclasses_=cmake-utils 2b36e0ed4585e0b246ddd9d2ca07f3a4 desktop b1d22ac8bdd4679ab79c71aca235009d eapi7-ver 756b3f27d8e46131d5cf3c51bd876446 epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf java-pkg-opt-2 77d2e22d0de7640f817d20e861c0ff3f java-utils-2 dd352559d0e143500ec878acc74da909 ltprune 22f9f14d105434e9c400ccac3bbb64ae multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f preserve-libs ef207dc62baddfddfd39a164d9797648 python-single-r1 d93acbd6ef50348b41ff4ead9a020a16 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc qmake-utils bdf97e69a34b864d6d545f4ec3143ff7 toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf versionator 2352c3fc97241f6a02042773c8287748 virtualx 401b718cc14d43a5a7fbe062c4851ba5 webapp 16783e418aca3ffa461d68310bf7ab12 xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=09380b0b07d5900e2a919145e42ad0c1
diff --git a/metadata/md5-cache/sys-fs/udiskie-1.1.1 b/metadata/md5-cache/sys-fs/udiskie-1.1.1
new file mode 100644
index 0000000..45b128e
--- /dev/null
+++ b/metadata/md5-cache/sys-fs/udiskie-1.1.1
@@ -0,0 +1,14 @@
+DEFINED_PHASES=compile configure install postinst postrm preinst prepare test
+DEPEND=app-text/asciidoc dev-python/setuptools[python_targets_python2_7(-)?,-python_single_target_python2_7(-)] python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,-python_single_target_python2_7(-)]
+DESCRIPTION=An automatic disk mounting service using udisks
+EAPI=5
+HOMEPAGE=https://pypi.org/project/udiskie/ https://github.com/coldfix/udiskie
+IUSE=python_targets_python2_7
+KEYWORDS=amd64 ~arm x86
+LICENSE=MIT
+RDEPEND=dev-python/docopt[python_targets_python2_7(-)?,-python_single_target_python2_7(-)] dev-python/pygobject:3[python_targets_python2_7(-)?,-python_single_target_python2_7(-)] dev-python/pyxdg[python_targets_python2_7(-)?,-python_single_target_python2_7(-)] dev-python/pyyaml[python_targets_python2_7(-)?,-python_single_target_python2_7(-)] sys-fs/udisks:2 python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,-python_single_target_python2_7(-)]
+REQUIRED_USE=|| ( python_targets_python2_7 )
+SLOT=0
+SRC_URI=mirror://pypi/u/udiskie/udiskie-1.1.1.tar.gz
+_eclasses_=desktop b1d22ac8bdd4679ab79c71aca235009d distutils-r1 1a001b95d3bfb24277ebc93f461847da epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 gnome2-utils 532371cfcba45b2ab0d2950547c97d95 ltprune 22f9f14d105434e9c400ccac3bbb64ae multibuild 40fe59465edacd730c644ec2bc197809 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 preserve-libs ef207dc62baddfddfd39a164d9797648 python-r1 6ae4f9eb4881e5c5489344ee122e05d0 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=3ac313941a922b822bee7db75196ad69
diff --git a/metadata/md5-cache/sys-fs/udiskie-1.7.5 b/metadata/md5-cache/sys-fs/udiskie-1.7.5
new file mode 100644
index 0000000..449c922
--- /dev/null
+++ b/metadata/md5-cache/sys-fs/udiskie-1.7.5
@@ -0,0 +1,14 @@
+DEFINED_PHASES=compile configure install postinst postrm prepare test
+DEPEND=app-text/asciidoc dev-python/setuptools[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,-python_single_target_python3_7(-)]
+DESCRIPTION=An automatic disk mounting service using udisks
+EAPI=6
+HOMEPAGE=https://pypi.org/project/udiskie/ https://github.com/coldfix/udiskie
+IUSE=python_targets_python3_7
+KEYWORDS=~amd64 ~arm ~x86
+LICENSE=MIT
+RDEPEND=dev-python/docopt[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] dev-python/pygobject:3[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] dev-python/pyxdg[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] dev-python/pyyaml[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] sys-fs/udisks:2 python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,-python_single_target_python3_7(-)]
+REQUIRED_USE=|| ( python_targets_python3_7 )
+SLOT=0
+SRC_URI=mirror://pypi/u/udiskie/udiskie-1.7.5.tar.gz
+_eclasses_=desktop b1d22ac8bdd4679ab79c71aca235009d distutils-r1 1a001b95d3bfb24277ebc93f461847da epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 gnome2-utils 532371cfcba45b2ab0d2950547c97d95 ltprune 22f9f14d105434e9c400ccac3bbb64ae multibuild 40fe59465edacd730c644ec2bc197809 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 preserve-libs ef207dc62baddfddfd39a164d9797648 python-r1 6ae4f9eb4881e5c5489344ee122e05d0 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=e2297b17202c5f9a451a53332035edbd
diff --git a/metadata/md5-cache/sys-fs/udiskie-1.7.7 b/metadata/md5-cache/sys-fs/udiskie-1.7.7
new file mode 100644
index 0000000..a6f47f4
--- /dev/null
+++ b/metadata/md5-cache/sys-fs/udiskie-1.7.7
@@ -0,0 +1,14 @@
+DEFINED_PHASES=compile configure install postinst postrm prepare test
+DEPEND=app-text/asciidoc dev-python/setuptools[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,-python_single_target_python3_7(-)]
+DESCRIPTION=An automatic disk mounting service using udisks
+EAPI=6
+HOMEPAGE=https://pypi.org/project/udiskie/ https://github.com/coldfix/udiskie
+IUSE=python_targets_python3_7
+KEYWORDS=~amd64 ~arm ~x86
+LICENSE=MIT
+RDEPEND=dev-python/docopt[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] dev-python/pygobject:3[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] dev-python/pyxdg[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] dev-python/pyyaml[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] sys-fs/udisks:2 python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,-python_single_target_python3_7(-)]
+REQUIRED_USE=|| ( python_targets_python3_7 )
+SLOT=0
+SRC_URI=mirror://pypi/u/udiskie/udiskie-1.7.7.tar.gz
+_eclasses_=desktop b1d22ac8bdd4679ab79c71aca235009d distutils-r1 1a001b95d3bfb24277ebc93f461847da epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 gnome2-utils 532371cfcba45b2ab0d2950547c97d95 ltprune 22f9f14d105434e9c400ccac3bbb64ae multibuild 40fe59465edacd730c644ec2bc197809 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 preserve-libs ef207dc62baddfddfd39a164d9797648 python-r1 6ae4f9eb4881e5c5489344ee122e05d0 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=fbaebbccd46b54636b892e87aca09c25
diff --git a/metadata/md5-cache/sys-kernel/linux-firmware-20200619 b/metadata/md5-cache/sys-kernel/linux-firmware-20200619
new file mode 100644
index 0000000..ed12fdc
--- /dev/null
+++ b/metadata/md5-cache/sys-kernel/linux-firmware-20200619
@@ -0,0 +1,15 @@
+BDEPEND=initramfs? ( app-arch/cpio )
+DEFINED_PHASES=install postinst postrm preinst prepare prerm pretend
+DESCRIPTION=Linux firmware files
+EAPI=7
+HOMEPAGE=https://git.kernel.org/?p=linux/kernel/git/firmware/linux-firmware.git
+IUSE=initramfs +redistributable savedconfig unknown-license savedconfig
+KEYWORDS=*
+LICENSE=GPL-2 GPL-2+ GPL-3 BSD MIT || ( MPL-1.1 GPL-2 ) redistributable? ( linux-fw-redistributable ( BSD-2 BSD BSD-4 ISC MIT no-source-code ) ) unknown-license? ( all-rights-reserved )
+RDEPEND=!savedconfig? ( redistributable? ( !sys-firmware/alsa-firmware[alsa_cards_ca0132] !media-tv/cx18-firmware ! linux-firmware-20200619.tar.gz
+_eclasses_=mount-boot 4e916386c166c23418f8bea81a5f131e portability 2b88d3ecc35035a3b8ab628b49cafb0e savedconfig 1de3f25f1039cd1772fbf707ef87dbe3
+_md5_=91d03fba35d278cee0ad7e4ce5eb6571
diff --git a/metadata/md5-cache/www-client/qutebrowser-1.6.2 b/metadata/md5-cache/www-client/qutebrowser-1.6.2
new file mode 100644
index 0000000..e69ffd1
--- /dev/null
+++ b/metadata/md5-cache/www-client/qutebrowser-1.6.2
@@ -0,0 +1,15 @@
+DEFINED_PHASES=compile configure install postinst postrm prepare test
+DEPEND=dev-python/setuptools[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] app-text/asciidoc test? ( dev-python/pytest[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] ) python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,-python_single_target_python3_7(-)]
+DESCRIPTION=A keyboard-driven, vim-like browser based on PyQt5 and QtWebEngine
+EAPI=6
+HOMEPAGE=https://www.qutebrowser.org/ https://github.com/qutebrowser/qutebrowser
+IUSE=scripts test python_targets_python3_7
+KEYWORDS=~amd64 ~x86
+LICENSE=GPL-3
+RDEPEND=dev-python/setuptools[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] dev-python/attrs[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] >=dev-python/jinja-2.8[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] >=dev-python/pygments-2.1.3[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] >=dev-python/pypeg2-2.15.2[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] || ( ( >=dev-python/PyQt5-5.12[python_targets_python3_7(-)?,-python_single_target_python3_7(-),declarative,multimedia,gui,network,opengl,printsupport,sql,widgets] dev-python/PyQtWebEngine[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] ) =dev-python/pyyaml-3.12[python_targets_python3_7(-)?,-python_single_target_python3_7(-),libyaml] python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,-python_single_target_python3_7(-)]
+REQUIRED_USE=|| ( python_targets_python3_7 )
+RESTRICT=test
+SLOT=0
+SRC_URI=https://github.com/qutebrowser/qutebrowser/releases/download/v1.6.2/qutebrowser-1.6.2.tar.gz
+_eclasses_=desktop b1d22ac8bdd4679ab79c71aca235009d distutils-r1 1a001b95d3bfb24277ebc93f461847da epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 gnome2-utils 532371cfcba45b2ab0d2950547c97d95 ltprune 22f9f14d105434e9c400ccac3bbb64ae multibuild 40fe59465edacd730c644ec2bc197809 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 preserve-libs ef207dc62baddfddfd39a164d9797648 python-r1 6ae4f9eb4881e5c5489344ee122e05d0 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=5af1ab6b3044b34eb7ed209a8632f900
diff --git a/metadata/md5-cache/www-client/qutebrowser-1.6.3 b/metadata/md5-cache/www-client/qutebrowser-1.6.3
new file mode 100644
index 0000000..50b81ca
--- /dev/null
+++ b/metadata/md5-cache/www-client/qutebrowser-1.6.3
@@ -0,0 +1,15 @@
+DEFINED_PHASES=compile configure install postinst postrm prepare test
+DEPEND=dev-python/setuptools[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] app-text/asciidoc test? ( dev-python/pytest[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] ) python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,-python_single_target_python3_7(-)]
+DESCRIPTION=A keyboard-driven, vim-like browser based on PyQt5 and QtWebEngine
+EAPI=6
+HOMEPAGE=https://www.qutebrowser.org/ https://github.com/qutebrowser/qutebrowser
+IUSE=scripts test python_targets_python3_7
+KEYWORDS=~amd64 ~x86
+LICENSE=GPL-3
+RDEPEND=dev-python/setuptools[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] dev-python/attrs[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] >=dev-python/jinja-2.8[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] >=dev-python/pygments-2.1.3[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] >=dev-python/pypeg2-2.15.2[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] || ( ( >=dev-python/PyQt5-5.12[python_targets_python3_7(-)?,-python_single_target_python3_7(-),declarative,multimedia,gui,network,opengl,printsupport,sql,widgets] dev-python/PyQtWebEngine[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] ) =dev-python/pyyaml-3.12[python_targets_python3_7(-)?,-python_single_target_python3_7(-),libyaml] python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,-python_single_target_python3_7(-)]
+REQUIRED_USE=|| ( python_targets_python3_7 )
+RESTRICT=test
+SLOT=0
+SRC_URI=https://github.com/qutebrowser/qutebrowser/releases/download/v1.6.3/qutebrowser-1.6.3.tar.gz
+_eclasses_=desktop b1d22ac8bdd4679ab79c71aca235009d distutils-r1 1a001b95d3bfb24277ebc93f461847da epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 gnome2-utils 532371cfcba45b2ab0d2950547c97d95 ltprune 22f9f14d105434e9c400ccac3bbb64ae multibuild 40fe59465edacd730c644ec2bc197809 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 preserve-libs ef207dc62baddfddfd39a164d9797648 python-r1 6ae4f9eb4881e5c5489344ee122e05d0 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=c6ebea76900823890c07000fc19255cb
diff --git a/metadata/md5-cache/www-client/qutebrowser-9999 b/metadata/md5-cache/www-client/qutebrowser-9999
new file mode 100644
index 0000000..8ab47f3
--- /dev/null
+++ b/metadata/md5-cache/www-client/qutebrowser-9999
@@ -0,0 +1,14 @@
+DEFINED_PHASES=compile configure install postinst postrm prepare test unpack
+DEPEND=dev-python/setuptools[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] app-text/asciidoc test? ( dev-python/pytest[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] ) python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] >=dev-vcs/git-1.8.2.1[curl]
+DESCRIPTION=A keyboard-driven, vim-like browser based on PyQt5 and QtWebEngine
+EAPI=6
+HOMEPAGE=https://www.qutebrowser.org/ https://github.com/qutebrowser/qutebrowser
+IUSE=scripts test python_targets_python3_7
+LICENSE=GPL-3
+PROPERTIES=live
+RDEPEND=dev-python/setuptools[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] dev-python/attrs[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] >=dev-python/jinja-2.8[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] >=dev-python/pygments-2.1.3[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] >=dev-python/pypeg2-2.15.2[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] || ( ( >=dev-python/PyQt5-5.12[python_targets_python3_7(-)?,-python_single_target_python3_7(-),declarative,multimedia,gui,network,opengl,printsupport,sql,widgets] dev-python/PyQtWebEngine[python_targets_python3_7(-)?,-python_single_target_python3_7(-)] ) =dev-python/pyyaml-3.12[python_targets_python3_7(-)?,-python_single_target_python3_7(-),libyaml] python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_python3_7(-)?,-python_single_target_python3_7(-)]
+REQUIRED_USE=|| ( python_targets_python3_7 )
+RESTRICT=test
+SLOT=0
+_eclasses_=desktop b1d22ac8bdd4679ab79c71aca235009d distutils-r1 1a001b95d3bfb24277ebc93f461847da epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 git-r3 7dcb8a92f5a091f13e82494fa317ca4b gnome2-utils 532371cfcba45b2ab0d2950547c97d95 ltprune 22f9f14d105434e9c400ccac3bbb64ae multibuild 40fe59465edacd730c644ec2bc197809 multilib 1d91b03d42ab6308b5f4f6b598ed110e multiprocessing cac3169468f893670dac3e7cb940e045 preserve-libs ef207dc62baddfddfd39a164d9797648 python-r1 6ae4f9eb4881e5c5489344ee122e05d0 python-utils-r1 8914c9c220fed51dbc06d700c5ce75bc toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf xdg-utils 14d00d009167652b1fa363e55effe213
+_md5_=c14797a6a888bf9d2a7d4f6b7eb4a5d9
diff --git a/net-analyzer/fail2ban/Manifest b/net-analyzer/fail2ban/Manifest
new file mode 100644
index 0000000..b9b2378
--- /dev/null
+++ b/net-analyzer/fail2ban/Manifest
@@ -0,0 +1,2 @@
+DIST fail2ban-0.11.1.tar.gz 538697 BLAKE2B f29d2f0fb3afca2760337e3d8c983029e568aec52ba20816051c2a11a14da503816f280ec9d7a9756e6be6b493728da26ea29684970c054117f3b04a883a3195 SHA512 93f4b9748aaa2ee3f10a9e41451867adeed23f4fa8e63eac3ca319e2a4113dbf84e378f8b4162664b440e82b2e87861a47bb022e5ac5e15f6512bad8ca063a95
+EBUILD fail2ban-0.11.1.ebuild 3231 BLAKE2B 8c8c3fb9df826a0e7c6ae7f362932e831f8f6765a49bfecf61ac303005a0e3b5f9e44fb4bc3b864270f77d23e7d80910e7e4b6736ea535a85a1369987db1dd38 SHA512 cbc56b4c3a953f6aa08fae9e041b637372b0f5dfe73e8287843cebda8f9f76d1697b1fb20ee921d297bc3db2f1dd38eadfa65ad9865b4299c45242923236f9b6
diff --git a/net-analyzer/fail2ban/fail2ban-0.11.1.ebuild b/net-analyzer/fail2ban/fail2ban-0.11.1.ebuild
new file mode 100644
index 0000000..acb97d3
--- /dev/null
+++ b/net-analyzer/fail2ban/fail2ban-0.11.1.ebuild
@@ -0,0 +1,109 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python{2_7,3_5,3_6,3_7} pypy )
+DISTUTILS_SINGLE_IMPL=1
+
+inherit distutils-r1 eutils systemd vcs-snapshot
+
+DESCRIPTION="scans log files and bans IPs that show malicious signs"
+HOMEPAGE="https://www.fail2ban.org/"
+SRC_URI="https://github.com/${PN}/${PN}/tarball/${PV} -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ppc ppc64 sparc x86 ~x86-fbsd"
+IUSE="selinux systemd"
+
+# TODO support ipfw and ipfilter
+RDEPEND="
+ kernel_linux? ( net-firewall/iptables )
+ kernel_FreeBSD? ( sys-freebsd/freebsd-pf )
+ net-misc/whois
+ virtual/logger
+ virtual/mta
+ selinux? ( sec-policy/selinux-fail2ban )
+ systemd? ( $(python_gen_cond_dep '|| (
+ dev-python/python-systemd[${PYTHON_USEDEP}]
+ sys-apps/systemd[python(-),${PYTHON_USEDEP}]
+ )' 'python*' ) )
+"
+RESTRICT="test"
+DOCS=( ChangeLog DEVELOP README.md THANKS TODO doc/run-rootless.txt )
+
+python_prepare_all() {
+ eapply_user
+
+ # Replace /var/run with /run, but not in the top source directory
+ find . -mindepth 2 -type f -exec \
+ sed -i -e 's|/var\(/run/fail2ban\)|\1|g' {} + || die
+
+ sed -i -e 's|runscript|openrc-run|g' files/gentoo-initd || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if python_is_python3; then
+ ./fail2ban-2to3 || die
+ fi
+ distutils-r1_python_compile
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ rm -rf "${D}"/usr/share/doc/${PN} "${D}"/run || die
+
+ # not FILESDIR
+ newconfd files/gentoo-confd ${PN}
+ newinitd files/gentoo-initd ${PN}
+ sed -e "s:@BINDIR@:${EPREFIX}/usr/bin:g" files/${PN}.service.in > "${T}/${PN}.service" || die
+ systemd_dounit "${T}/${PN}.service"
+ systemd_dotmpfilesd files/${PN}-tmpfiles.conf
+ doman man/*.{1,5}
+
+ # Use INSTALL_MASK if you do not want to touch /etc/logrotate.d.
+ # See http://thread.gmane.org/gmane.linux.gentoo.devel/35675
+ insinto /etc/logrotate.d
+ newins files/${PN}-logrotate ${PN}
+
+ keepdir /var/lib/${PN}
+}
+
+pkg_preinst() {
+ has_version "<${CATEGORY}/${PN}-0.7"
+ previous_less_than_0_7=$?
+}
+
+pkg_postinst() {
+ if [[ $previous_less_than_0_7 = 0 ]] ; then
+ elog
+ elog "Configuration files are now in /etc/fail2ban/"
+ elog "You probably have to manually update your configuration"
+ elog "files before restarting Fail2ban!"
+ elog
+ elog "Fail2ban is not installed under /usr/lib anymore. The"
+ elog "new location is under /usr/share."
+ elog
+ elog "You are upgrading from version 0.6.x, please see:"
+ elog "http://www.fail2ban.org/wiki/index.php/HOWTO_Upgrade_from_0.6_to_0.8"
+ fi
+
+ if ! has_version dev-python/pyinotify && ! has_version app-admin/gamin; then
+ elog "For most jail.conf configurations, it is recommended you install either"
+ elog "dev-python/pyinotify or app-admin/gamin (in order of preference)"
+ elog "to control how log file modifications are detected"
+ fi
+
+ if ! has_version dev-lang/python[sqlite]; then
+ elog "If you want to use ${PN}'s persistent database, then reinstall"
+ elog "dev-lang/python with USE=sqlite"
+ fi
+
+ if has_version sys-apps/systemd[-python]; then
+ elog "If you want to track logins through sys-apps/systemd's"
+ elog "journal backend, then reinstall sys-apps/systemd with USE=python"
+ fi
+}
diff --git a/net-mail/fdm/Manifest b/net-mail/fdm/Manifest
index 3e58763..8748dc1 100644
--- a/net-mail/fdm/Manifest
+++ b/net-mail/fdm/Manifest
@@ -1,3 +1,9 @@
-DIST fdm-1.7.tar.gz 199808 SHA512 d438c96b1d3bdf08d14cfbb3b78ab5180e6bbc32121b7dfdd47ac14a4f8a19d1309f7742f78cc9db2d68b64b3422ec96f8f729931168d2fc411c36d0cc3e9386
-DIST fdm-1.8.tar.gz 193220 SHA512 eaf868628c7c98385804ebdcf1756547ee487109fe02ca3d8177eb25ebdc4c61e6d4ad820c52fd9e39ac4d2f93408aa6787446e8330a87a6cb75da2be0b5f337
-DIST fdm-1.9.tar.gz 299916 SHA512 e7e5c8aae8be3e82ff6015d2d87fd9d0dad4fe24796b4f30d6874f761e2df6900c8940d39de28bb2db6ee3ea3faf494c57149037657d986a3b54db3a6a601ca7
+AUX openssl-1.1.patch 747 BLAKE2B f757691a3dc5a1f7825be28531d5051aa8e1613b13c070845228b43dd20108860a74a7b842d770a705a2e040990a094d3440d53b05db28a5fc04e7c9a58249a9 SHA512 2ea1d8bc3e805e47870cf005f581bc24b7bc8ece91d018aa228e1b4c987332b0002164c9fd570ff6daf74e289c4277ea7f685ab8283269e2353c0bffe9df82f1
+DIST fdm-1.7.tar.gz 199808 BLAKE2B 92abf639c5ced219ddc70842820493e57914e23298c1b07bf8abc3c343b0dd58c71694afb34fad4bacbbf34109b8651511c75adccff81ee3caa1c1a298def866 SHA512 d438c96b1d3bdf08d14cfbb3b78ab5180e6bbc32121b7dfdd47ac14a4f8a19d1309f7742f78cc9db2d68b64b3422ec96f8f729931168d2fc411c36d0cc3e9386
+DIST fdm-1.8.tar.gz 193220 BLAKE2B bea041cc1cc8937831525f622e6f4ef70c8b11e5a4ad0f89cf1c0503cb4bcfb882f1d3a22abfd93c6ced524dcb2984c381728297454d2a5a7aed39f87d8eac35 SHA512 eaf868628c7c98385804ebdcf1756547ee487109fe02ca3d8177eb25ebdc4c61e6d4ad820c52fd9e39ac4d2f93408aa6787446e8330a87a6cb75da2be0b5f337
+DIST fdm-1.9.tar.gz 299916 BLAKE2B 0c9bb9514a4d36fb1168be73fe745aa136cea75e0ebde28ab181be7d4b7e093c0bec775222e8a333e14baa90871739fa095a89bf8d1f16a86dee03b6d01021aa SHA512 e7e5c8aae8be3e82ff6015d2d87fd9d0dad4fe24796b4f30d6874f761e2df6900c8940d39de28bb2db6ee3ea3faf494c57149037657d986a3b54db3a6a601ca7
+EBUILD fdm-1.7.ebuild 991 BLAKE2B 41dd53d8be5f15d1f2e940a50ec4041dd50371a30b2ce4c5b957b8e019464587038d1c97daf82090608abe191a9f6a018dd06a12035ceebba8b776a37c75d7d7 SHA512 cddfbf40bd164a5bb4d95830d8ab4dd990482f7d51a75af9d30b887c907941d7b4878042956274ab5525b715236c3ca60c6a29289033672081c398634c76289c
+EBUILD fdm-1.8.ebuild 1055 BLAKE2B be7a2c50cf646169ba60a3c8d41cbf69501c03ae491addc68a960860fe26d5ceaf2d8a3a6ec5e577349013c07213b44abb42504f1ece06605620787f409994fd SHA512 2e67a0a22033cd129d1adbfdab588d991cb98f3cb4f04b8aed4ac85e31a3bcdd572f0846e9127ecd9b28e82fd3c5784f18543329f2e3bb71891717a62fdf5688
+EBUILD fdm-1.9.ebuild 1028 BLAKE2B a71415a92745aa8bfc98c1f24b5a1286ed3d8e6b24c5cea09114bf3229bd8a9cd28aea2dba357c1060387ba2d5e12e04dc7a28599fdf96daf4fc194f9237644c SHA512 9adf4eee1b3bd1987b7c8c1ac0e34c8077a7c707fc4187e53d3ec235ae824c6f33a67a262f6b14c6571da2db9f0d04c9937d7ee4cfbaed9b78b2126d6bad45e2
+MISC fdm-1.9.ebuild.orig 925 BLAKE2B 946f69cff5f1d8bea80698c81292ed395855b98f8ec15838f8742f0fc6e56be5756334ebd8f86fabe1bdf13045c2cb8e5606173365ed98b93cf86d5751c42a65 SHA512 dae397937fd70d3245d692bccf34e4d801133f0ac1db10d35039573546a753fc498ba210c09ad6aa8a858a99c5ce04185fdbd0fdbfc454ef80d544ad1591ca24
+MISC metadata.xml 476 BLAKE2B dfa95ee7e96edb77806dfd0777bf1b36e5035f25186f999de016d22e44252957dbb0ca89a01eb46373371b75e04ef89a2164e10f1060512b442787d5b5afe77b SHA512 0dbe01719cbaea9c6ee28e58cf7d608c72e1169ba65961100788960cbc03771ca8552299dc628b769132b82aa31a683b24853ba113b3bccc2417956d270d2908
diff --git a/sci-libs/vtk/Manifest b/sci-libs/vtk/Manifest
new file mode 100644
index 0000000..29ada2c
--- /dev/null
+++ b/sci-libs/vtk/Manifest
@@ -0,0 +1,29 @@
+AUX vtk-6.1.0-freetype.patch 1159 BLAKE2B 4dca5ddc3a6d7b9cb14a5a2c1d59ce41e8922467ceb07665358aed809481de7d7dd01b1a08b3c302dca53e7fba63ab0b5c10ff4e12420df656ef6c678e386f8f SHA512 c4e0328d1c7c1a1842de0f70ec93fe28e5537d9add29d4e76243f91138b97e993d5ef02a80fece8cc3476086772bb2f3e97ff6c8ce18a4ffedced90ad98199e0
+AUX vtk-6.1.0-gcc67.patch 1166 BLAKE2B 54a83d81ce2683ebce9616c924aa29cdc8e6614b0e654b2b6d95f6dcdb6d03e9c07c7ad6ea902d2c0155bda5b5dde50853a3d46fa6a3a0cd7ca89862c942a618 SHA512 c8190a0d121564b192a6e2075a31ac494ba735d6092827bcc5370319213c9780c3044179b0389d0056b0513c9ec919ba5da76954e7cd0e4d6617335ac8602609
+AUX vtk-6.1.0-gdal2.patch 1132 BLAKE2B 79a3386a0cff34c38a31b0685a0660f44b7d7e91443fa89ab2337dacb3f40893372687cadb312a7189e11e70ac048ecbac1a2144d6324c98a4ed579dd0b3b44e SHA512 5bd4414ca8892f0b290dddce2b7a98d64ab4bc68818ac168d1170ca4ef7212f908ec8b3d1f84ec0aa131e18c20cfd8584f5b44cd5fbb4019b9bb9e0b4a4f2a47
+AUX vtk-6.1.0-glext.patch 609 BLAKE2B 6433fb3d6766a9b4801779d3e435fbd933c8ef8d79bc6db0f0bc735d8c2449b95237e147c0062f832aafafee7194f07b3c18dbde3fbab6dfd7480c7bed447d91 SHA512 a2cfb0801742fded8984dfe849d3c2da9796c6c87a2bbe2eac622f4b91abe1c142fd97d94bbe248ff222fae85a80db8d6ee100de1022049ef6c9a82aaebbb9d5
+AUX vtk-6.1.0-install.patch 968 BLAKE2B e7618cf685f60a2733869549c4aa001044303215bc6a95fa408e6c7e6640377558c166458ff1baf478023209f859f4835a48acde40b21aaece69f66149dbdb64 SHA512 e6f7e5436c6efca920bd7f9b724c219b7a34a357f01fb813bf168aefc1727b9c2d4af6cb380b4b6b70e4b091557f866761499a53e7e1c07a665d06aacd2acdb6
+AUX vtk-6.1.0-memset.patch 5216 BLAKE2B 301ac84c0e439c14228665c8230d3f843c919b0a2cbc0b83007574e8c22bcd986718be81795f114ceca2a6a627570678a21fb057e8bcaf6e5dc2a762486dc534 SHA512 8789198bcb9c23af290c6b2b90d7277e546fe34e8aed03d1644d1edbec1c523801f3cc325dbb3bc8606ed6e3c84ea2a45fe1f05208366a0a3260e9b73cd96691
+AUX vtk-6.1.0-netcdf.patch 994 BLAKE2B 9b24685987b2a76f32cbe7c107f5c5ac580ca7d6616d959caeedc2b3ac0699b9f1b5b79a26fc1cc61818c3712fb40d9246dea2c3bb221e0fbc5db5a61707406d SHA512 0f0b3493270efbf33a13abb7f38637473d48d15efe793f7148c13f5aeb77ac5534340d42f87451cd81ed2d7cce4ca6da9a71e065a7780e84f30a710d7368b488
+AUX vtk-6.1.0-system.patch 1307 BLAKE2B f89f7e4946c94a907ef7b74c1ca1e35106ece486c944f932b6d19febe2ecb08aee6cd11719a121b3a47a978969724aff2d16c2212151bf6fd50cb7c19ab22957 SHA512 1fae8aecaf2344b5517e9b29ea2cb8b834af8a22be88535ec8bf9ec624625ea3f2ca820945a3d3f7c896ca080a7ded59ca7a601c50f970e59c3a8db691f060b3
+AUX vtk-6.1.0-web.patch 776 BLAKE2B e92d3abb96161f0d955c3c653ce67a2427538fcabcb3b492449d086ec35b545c693231fa9bbb02f27ca96395bcd4c73e6741318625ad23c5105fa3fc8cfbf671 SHA512 5489096a0a4e5854cd426a75a0713f53a5c0daab7a9069c249b65d4a34cc8ff18737267f16ee8fbb2a07b7e987525b93e1eec5a23f78ac1b3f893c5847761bc5
+AUX vtk-7.0.0-glext.patch 393 BLAKE2B 416612e5a587378287d99c447a30703c66aabd8ad07cea83a984bd7b5feaa0f619e152d70a4c514b9e31a85a9e57693884918047e25609d5cca394e623929045 SHA512 67fcdbf128ea3bc32dbc5ea8de350fcb3e8447a90a7cb23501658d624703623c1d67c31e8783607fa995e8ac666075cbf00417c702a9a4a357e933b8e2153d64
+DIST VTK-6.1.0.tar.gz 27608882 BLAKE2B 10cef62e2fc3bf7109f7b3e9858721850243a7798fe885c6a584dba9a6f74c526c58b009f2cba6c56512a6ec159dbf29ac965f9ae6533128f3a20e7224bdddc0 SHA512 3ab922166502348e5cdd68e14dbf4717c0405c9d8881c04aa8be8f95d8516af39cd02aaca5171c6de8af1b462ca386399b7a87a843ec62999f0f32c11788a2dc
+DIST VTK-7.1.0.tar.gz 31171521 BLAKE2B e607aa8437b4b4546cf3be5fa1fd771d07e2c0e5f85faeeb4585aae139fc40564939ccd3ec5efd4e63711789de300cf70edede46bfb54228bf6ea783d9dec39b SHA512 83f0c9291cd2bc517a4bc449ad28a1d77e7ece169e846c7beab0b1140b9ef4b7bad30e3fa6e5a59826a707df78e2e336e07fa8bd30cf7498096ee80feef16534
+DIST VTK-8.1.0.tar.gz 33482506 BLAKE2B 82aecb497847254595f20294120ae793432348fc3fd881924b52c004335d9bae3d052f168bbe291b307af67845a80e740d8996d36991c38fbec7213438e2395d SHA512 3d5efd1a18939e21045278a387817421a98919cbaaa6ed65167c16999e1bb882b849b698d201a294da9920dbc96d1fbc987013462b1c7cbb12920bfff9b6f2a3
+DIST VTKData-6.1.0.tar.gz 94452190 BLAKE2B 55e1af454f1c54c0a182552c41e08549781532b510bf29cb28fcd12510c1cef2c4e09274507d658b700f22d0da1961d7b4e6dc289d9ee39c6b1e1fac348ba153 SHA512 4e23cc3de3b81a852458849f2bd4dfe2e84e9df4f77f5f0d4ac249b04a7f74144a483a91876bd748bb90685d1943071e9b36fce8dd618376621bc37e63365e65
+DIST VTKData-7.1.0.tar.gz 249106922 BLAKE2B 01505bd5e01c790d40be6966c6261de4eba2ec36b515580112b3291f894c9d2e361f31d20bb14faf40f125b82e5ea6a1b0002acbb598c79f11d541e0fe5de4df SHA512 8f78fdce36fc683c8b8b7137a02fd727f322ceecce66f20a4b1b3f8d260e8e894c1ec1ed46eb2427e501239f12b02b1476ca3a302fa1f9287584110598972f9e
+DIST VTKData-8.1.0.tar.gz 282986441 BLAKE2B 885f35c5386cc5db8db905a868a3ad79c246f1b0e41a3e5b81312b1f3de90483a1e34886d4764c60fe8006acaace2405b25acf047ec0e25a957f7a2d563d3380 SHA512 0a63f87896320aa38970932bf47c9e3f65a8bdd5413e51f95c53e321348b5b4e1eca2405d755eabb785c03939e1936245cc9f1b0f7ad0988c41362ac6f1e3047
+DIST VTKLargeData-6.1.0.tar.gz 166019220 BLAKE2B 94180c9fd73655cbc08914a2309925d40ac2c99ce8652a7db37bb3ddc3b9dd654e8286be97a764c9029a6de21ae847f1f2c46c07ec974e5da802f23a7d277836 SHA512 3663a124c16448882ad3aef0fb15f55f438863ba2176106803ad9c6fb561325accd74f2675d8b6e1de791babfa8b992e516d87640efedda4a6daeb5affc2cf3f
+DIST VTKLargeData-7.1.0.tar.gz 166680011 BLAKE2B 6b630d13a7cf22909f2fd42a89eccfe2ae79c16ec46b99229f349ff47d20e38cf22b9b63803087d319d43915fce116d2874e450c439727dde5a795d003cd1c4a SHA512 79d058732932837f2873a14850e18375d6a43f07de7cf4b71570ae32cf7abb7651052378ff9cbd1e221c95f78e46c13c9852425a509ae02c826f5345e836e455
+DIST VTKLargeData-8.1.0.tar.gz 166992034 BLAKE2B ac98861ccac2aacfab7547a4b56de5c9e611b8655f077bb85e6ab850fb0cfd79f4722a0486f73eafcde2cd77d6be305201857f3e729b1f60f710c45bcf0bb63f SHA512 9dfd64b5125205ba7d8cba5665da40874d0a9781f3bd2595058d939207d96980c9a68009ce9ed1476931e1b929199c4888ccf6d590f23d2412873ca6907abc31
+DIST vtkDocHtml-6.1.0.tar.gz 230827905 BLAKE2B a323728450c5054d715dac137e54ed9b901019af595ea3abca9e7865d0b420d7b5f87789a9489df116f982633984d74721153dc3ab735e97455f64c2ffc4aa95 SHA512 fcae74a65157d87b39a162facdecbb0ab0a9b95b9f2555ed2b15d635b82034bfc62181eea441caf0b1edbe036b792a8231d409908b943398ce7f662c149d3a60
+DIST vtkDocHtml-7.1.0.tar.gz 128927849 BLAKE2B 93ad088ec0578bf8008a789f71d7d70eff13899ab216af1499c88870189fe53c426fd23fea5f1c0ff5e8cfd9ec5c6fe03ad2b691edf88d0fbf55b7593778b3fd SHA512 cac6d005262d3849f84c2632dd737c4dcd9f23d5015266d683bcc8c65fad0d88e87faf9b1d5f68fdabe7b2ed97927a9f907020cbeae2b6e7223a5ffee54f2679
+DIST vtkDocHtml-8.1.0.tar.gz 132655967 BLAKE2B a27d9631fa9fe42e9b8076aa3b33e03b3835db0f348ed60cfdc866ffe7accd9c5d99b6525523113a4d628253e28d6d9121e78942d89b6ee281d5e7ecee7c289e SHA512 c49338ad2c121ab16098195e5a1f2c9539137a85ae5edaa64d4a887ece0c64efb8840162942f47b70ab2d82d341bba2e706a6ff007fe6bdfbce12ad92bca883c
+EBUILD vtk-6.1.0-r4.ebuild 10480 BLAKE2B 72dc967f163fed46bcbe7dc0a2b4de89840c95134a5b89522ed2d8962873a4ee54d7e2a0a9dc9814f003e3aa5d206e39ec77b799690b7ba8af1fec5d874cef48 SHA512 b299bee838d2fac4b44d56039856a326388186bac7d7c154bc4b144db66df1c04b9c74db3039f6e2ff8d3b25714a3e37d097e47a573b4a1851be09acbe161794
+EBUILD vtk-7.1.0.ebuild 9296 BLAKE2B 0fd4cb6ff13fe68d9a39bd686a18477fc0f8daad711910135448aacc96e06820251921263dc9517f400454fbdbda26ad5dc9633e98557b2246fe6e8658495537 SHA512 622eabfbb2a4b2c80a6254b09779f05b9354082402f3fead1010767c660b86c0e94413026a27bd06ea8eb7a07bea14d747db3bec51d9b5bf6ccb669d660d937f
+EBUILD vtk-8.1.0-r1.ebuild 9027 BLAKE2B 45d5ef5b8177e418424135b9ee70af8e4d681731584a595bb4108cdff1e8f3fe29f0293bd668fba67967dfcd4e9b7e26ae51e3dea92e72ed0bc7d4589c82597c SHA512 36a149ad672f38d48f767c4381bb04bc4054edd76776430d3157f034f4faf58ddaed43675c712e1d4787ae01f05ed8c2b64988dfb30392a43faeb6c37416d115
+EBUILD vtk-8.1.0-r2.ebuild 9037 BLAKE2B 8f8f89c3d158b826591eb07fe0250c16d0ba9dca9ea11011254152ac37b15bb840a815eb1bcb7b8a7c92524eb12f44d56a5ca16d91ca47b0d2797fa6e43db214 SHA512 5e0285464d4a41370a9e6586f9fb57fa6a1bebc2785f996c9a48d4066022f05103a7f233570cb729a79052a6684c51e682229376afab359b2c56bdbe52ad0a33
+EBUILD vtk-8.1.0-r3.ebuild 9061 BLAKE2B 5f018ee7d10b1a3ae2af6e7a57a4117d70014cb66b46400b34633bf5a011b9dcb8f1cda075a045612efb0af2b7d4779bd24c1e796cbcf2ee025fc946ef505787 SHA512 e4b29d058911c6703dce5772712e2493a5a7ab168953caa1a74f0de85174f44229e4d1fb648465a3b7738e5cbea268a7dbc23354d9dcec067d58fbf8f912f39f
+EBUILD vtk-8.1.0.ebuild 9214 BLAKE2B 4705a1ba19eee614686234bb3297f70104fd1b050f51bfd3c16f2c01cc33f745d2fdcf70331dc060852923da8f319cbc554c9296e76d6a742215e3c31990b77d SHA512 34a8ab6760d0b3fbb25dbf9d2c4a9eb5507b7de777bcce509b8d80e92131290d31b747921a1cd0905001b4657c6eba68f6497b024f2ff70cecaa7bdacaccb11a
+MISC metadata.xml 1120 BLAKE2B 17456da598e4b7dfddec75a323def586e3b099ddfaa2e5883410afdd9143d317a6db53ead747b097cf8631f738d6a0b38a1e27ea37b445ba667a403053223e02 SHA512 d0d9ccd1922afe496e24d38fee05793fdf3983f798bef817a00c77bb632f2cabe3d2be554d0e979c223fd4005f3186b9ef78d394050539bd21cba5c2b6e56143
diff --git a/sci-libs/vtk/files/vtk-6.1.0-freetype.patch b/sci-libs/vtk/files/vtk-6.1.0-freetype.patch
new file mode 100644
index 0000000..b7d3e40
--- /dev/null
+++ b/sci-libs/vtk/files/vtk-6.1.0-freetype.patch
@@ -0,0 +1,22 @@
+--- a/ParaView-v4.2.0-source/VTK/Rendering/FreeType/vtkFreeTypeTools.cxx_orig 2014-12-23 09:25:35.000000000 +0100
++++ b/ParaView-v4.2.0-source/VTK/Rendering/FreeType/vtkFreeTypeTools.cxx 2014-12-24 09:40:31.886953389 +0100
+@@ -1185,7 +1185,7 @@
+ if (bitmap)
+ {
+ metaData.ascent = std::max(bitmapGlyph->top - 1, metaData.ascent);
+- metaData.descent = std::min(-(bitmap->rows - (bitmapGlyph->top - 1)),
++ metaData.descent = std::min(-(static_cast(bitmap->rows) - (bitmapGlyph->top - 1)),
+ metaData.descent);
+ }
+ ++heightString;
+@@ -1952,8 +1952,8 @@
+ if (bitmap)
+ {
+ bbox[0] = std::min(bbox[0], pen[0] + bitmapGlyph->left);
+- bbox[1] = std::max(bbox[1], pen[0] + bitmapGlyph->left + bitmap->width);
+- bbox[2] = std::min(bbox[2], pen[1] + bitmapGlyph->top - 1 - bitmap->rows);
++ bbox[1] = std::max(bbox[1], pen[0] + bitmapGlyph->left + static_cast(bitmap->width));
++ bbox[2] = std::min(bbox[2], pen[1] + bitmapGlyph->top - 1 - static_cast(bitmap->rows));
+ bbox[3] = std::max(bbox[3], pen[1] + bitmapGlyph->top - 1);
+ }
+ else
diff --git a/sci-libs/vtk/files/vtk-6.1.0-gcc67.patch b/sci-libs/vtk/files/vtk-6.1.0-gcc67.patch
new file mode 100644
index 0000000..83d1ae1
--- /dev/null
+++ b/sci-libs/vtk/files/vtk-6.1.0-gcc67.patch
@@ -0,0 +1,26 @@
+diff --git a/old/vtkCompilerExtras.cmake b/CMake/vtkCompilerExtras.cmake
+index 05b2db9..92c2c4c 100644
+--- a/old/vtkCompilerExtras.cmake
++++ b/CMake/vtkCompilerExtras.cmake
+@@ -27,7 +27,7 @@ if(CMAKE_COMPILER_IS_GNUCXX)
+ OUTPUT_VARIABLE _gcc_version_info
+ ERROR_VARIABLE _gcc_version_info)
+
+- string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]"
++ string (REGEX MATCH "[0-9]\\.[0-9]\\.[0-9]"
+ _gcc_version "${_gcc_version_info}")
+ if(NOT _gcc_version)
+ string (REGEX REPLACE ".*\\(GCC\\).* ([34]\\.[0-9]) .*" "\\1.0"
+diff --git a/old/GenerateExportHeader.cmake b/CMake/GenerateExportHeader.cmake
+index 3cc12dd..b7a47df 100644
+--- a/old/GenerateExportHeader.cmake
++++ b/CMake/GenerateExportHeader.cmake
+@@ -166,7 +166,7 @@ macro(_test_compiler_hidden_visibility)
+ execute_process(COMMAND ${CMAKE_C_COMPILER} --version
+ OUTPUT_VARIABLE _gcc_version_info
+ ERROR_VARIABLE _gcc_version_info)
+- string(REGEX MATCH "[345]\\.[0-9]\\.[0-9]"
++ string(REGEX MATCH "[0-9]\\.[0-9]\\.[0-9]"
+ _gcc_version "${_gcc_version_info}")
+ # gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the
+ # patch level, handle this here:
diff --git a/sci-libs/vtk/files/vtk-6.1.0-gdal2.patch b/sci-libs/vtk/files/vtk-6.1.0-gdal2.patch
new file mode 100644
index 0000000..c218641
--- /dev/null
+++ b/sci-libs/vtk/files/vtk-6.1.0-gdal2.patch
@@ -0,0 +1,33 @@
+diff --git a/IO/GDAL/vtkGDALVectorReader.cxx b/IO/GDAL/vtkGDALVectorReader.cxx
+index 86854a0..a0e234a 100644
+--- a/IO/GDAL/vtkGDALVectorReader.cxx
++++ b/IO/GDAL/vtkGDALVectorReader.cxx
+# Patch to build against newer GDAL per upstream commit
+# https://projects.archlinux.org/svntogit/community.git/tree/trunk/gdal2.patch?h=packages/vtk&id=43307598a98872fd4ce7739e47f5bb4cfcb5372d
+@@ -44,7 +44,7 @@ class vtkGDALVectorReader::Internal
+ public:
+ Internal( const char* srcName, int srcMode, int appendFeatures, int addFeatIds )
+ {
+- this->Source = OGRSFDriverRegistrar::Open( srcName, srcMode, &this->Driver );
++ this->Source = (GDALDataset*) OGROpen( srcName, srcMode, NULL );
+ if ( ! this->Source )
+ {
+ this->LastError = CPLGetLastErrorMsg();
+@@ -61,7 +61,7 @@ public:
+ {
+ if ( this->Source )
+ {
+- OGRDataSource::DestroyDataSource( this->Source );
++ GDALClose( (GDALDatasetH) this->Source );
+ }
+ }
+
+@@ -304,7 +304,7 @@ public:
+ return nCells;
+ }
+
+- OGRDataSource* Source;
++ GDALDataset* Source;
+ OGRSFDriver* Driver;
+ const char* LastError;
+ int LayerIdx;
diff --git a/sci-libs/vtk/files/vtk-6.1.0-glext.patch b/sci-libs/vtk/files/vtk-6.1.0-glext.patch
new file mode 100644
index 0000000..b5529a5
--- /dev/null
+++ b/sci-libs/vtk/files/vtk-6.1.0-glext.patch
@@ -0,0 +1,13 @@
+diff -up VTK-6.1.0/Rendering/OpenGL/vtkOpenGL.h.glext VTK-6.1.0/Rendering/OpenGL/vtkOpenGL.h
+--- VTK-6.1.0/Rendering/OpenGL/vtkOpenGL.h.glext 2014-01-22 08:55:41.000000000 -0700
++++ VTK-6.1.0/Rendering/OpenGL/vtkOpenGL.h 2014-11-19 10:27:12.349345199 -0700
+@@ -19,7 +19,8 @@
+ #include "vtkConfigure.h"
+
+ // To prevent gl.h to include glext.h provided by the system
+-#define GL_GLEXT_LEGACY
++// https://bugzilla.redhat.com/show_bug.cgi?id=1138466
++// #define GL_GLEXT_LEGACY
+ #if defined(__APPLE__) && (defined(VTK_USE_CARBON) || defined(VTK_USE_COCOA))
+ # include // Include OpenGL API.
+ #else
diff --git a/sci-libs/vtk/files/vtk-6.1.0-install.patch b/sci-libs/vtk/files/vtk-6.1.0-install.patch
new file mode 100644
index 0000000..27c6c3a
--- /dev/null
+++ b/sci-libs/vtk/files/vtk-6.1.0-install.patch
@@ -0,0 +1,19 @@
+diff -up VTK-6.1.0/CMake/vtkModuleTop.cmake.install VTK-6.1.0/CMake/vtkModuleTop.cmake
+--- VTK-6.1.0/CMake/vtkModuleTop.cmake.install 2014-01-23 19:12:04.922871103 -0700
++++ VTK-6.1.0/CMake/vtkModuleTop.cmake 2014-01-23 19:14:33.002645155 -0700
+@@ -330,11 +330,15 @@ if (NOT VTK_INSTALL_NO_DEVELOPMENT)
+ CMake/pythonmodules.h.in
+ CMake/UseVTK.cmake
+ CMake/FindTCL.cmake
++ CMake/TopologicalSort.cmake
+ CMake/vtkTclTkMacros.cmake
+ CMake/vtk-forward.c.in
++ CMake/vtkGroups.cmake
+ CMake/vtkForwardingExecutable.cmake
+ CMake/vtkJavaWrapping.cmake
+ CMake/vtkMakeInstantiator.cmake
++ CMake/vtkMakeInstantiator.cxx.in
++ CMake/vtkMakeInstantiator.h.in
+ CMake/vtkModuleAPI.cmake
+ CMake/vtkModuleHeaders.cmake.in
+ CMake/vtkModuleInfo.cmake.in
diff --git a/sci-libs/vtk/files/vtk-6.1.0-memset.patch b/sci-libs/vtk/files/vtk-6.1.0-memset.patch
new file mode 100644
index 0000000..362022e
--- /dev/null
+++ b/sci-libs/vtk/files/vtk-6.1.0-memset.patch
@@ -0,0 +1,147 @@
+From ef22d3d69421581b33bc0cd94b647da73b61ba96 Mon Sep 17 00:00:00 2001
+From: Anton Gladky
+Date: Fri, 30 May 2014 23:16:26 +0200
+Subject: [PATCH] Fix compilation by gcc-4.9
+
+VTK fails to build during compilation by gcc-4.9 with the
+following message:
+
+CMakeFiles/vtkFiltersParallelMPI.dir/vtkDistributedDataFilter.cxx.o: In
+function `memset':
+/usr/include/x86_64-linux-gnu/bits/string3.h:81: warning: memset used
+with constant zero length parameter; this could be due to transposed
+parameters
+collect2: error: ld returned 1 exit status
+
+This patch sets if-condition before all "memsets" in
+vtkDistributedDataFilter and checkes, whether the number
+of bytes to be set by memset is more than 0 to escape this
+error.
+---
+ Filters/ParallelMPI/vtkDistributedDataFilter.cxx | 48 ++++++++++++++++++------
+ 1 file changed, 37 insertions(+), 11 deletions(-)
+
+diff --git a/Filters/ParallelMPI/vtkDistributedDataFilter.cxx b/Filters/ParallelMPI/vtkDistributedDataFilter.cxx
+index 3c1ff30..df4b5d3 100644
+--- a/Filters/ParallelMPI/vtkDistributedDataFilter.cxx
++++ b/Filters/ParallelMPI/vtkDistributedDataFilter.cxx
+@@ -1091,7 +1091,10 @@ vtkDataSet *vtkDistributedDataFilter::TestFixTooFewInputFiles(vtkDataSet *input)
+ vtkIdType cellsPerNode = numTotalCells / nprocs;
+
+ vtkIdList **sendCells = new vtkIdList * [ nprocs ];
+- memset(sendCells, 0, sizeof(vtkIdList *) * nprocs);
++
++ if (sizeof(vtkIdList *) * nprocs > 0) {
++ memset(sendCells, 0, sizeof(vtkIdList *) * nprocs);
++ }
+
+ if (numConsumers == nprocs - 1)
+ {
+@@ -1582,7 +1585,9 @@ vtkFloatArray **
+ // Exchange int arrays
+
+ float **recvArrays = new float * [nprocs];
+- memset(recvArrays, 0, sizeof(float *) * nprocs);
++ if (sizeof(float *) * nprocs > 0) {
++ memset(recvArrays, 0, sizeof(float *) * nprocs);
++ }
+
+ if (sendSize[me] > 0) // sent myself an array
+ {
+@@ -1703,7 +1708,9 @@ vtkIdTypeArray **
+ // Exchange int arrays
+
+ vtkIdType **recvArrays = new vtkIdType * [nprocs];
+- memset(recvArrays, 0, sizeof(vtkIdType *) * nprocs);
++ if (sizeof(vtkIdType *) * nprocs > 0) {
++ memset(recvArrays, 0, sizeof(vtkIdType *) * nprocs);
++ }
+
+ if (sendSize[me] > 0) // sent myself an array
+ {
+@@ -2807,7 +2814,9 @@ void vtkDistributedDataFilter::AddConstantUnsignedCharPointArray(
+
+ unsigned char *vals = new unsigned char [npoints];
+
+- memset(vals, val, npoints);
++ if (npoints > 0) {
++ memset(vals, val, npoints);
++ }
+
+ vtkUnsignedCharArray *Array = vtkUnsignedCharArray::New();
+ Array->SetName(arrayName);
+@@ -2827,7 +2836,9 @@ void vtkDistributedDataFilter::AddConstantUnsignedCharCellArray(
+
+ unsigned char *vals = new unsigned char [ncells];
+
+- memset(vals, val, ncells);
++ if (ncells > 0) {
++ memset(vals, val, ncells);
++ }
+
+ vtkUnsignedCharArray *Array = vtkUnsignedCharArray::New();
+ Array->SetName(arrayName);
+@@ -3026,7 +3037,9 @@ int vtkDistributedDataFilter::AssignGlobalNodeIds(vtkUnstructuredGrid *grid)
+ vtkIdType nGridPoints = grid->GetNumberOfPoints();
+
+ vtkIdType *numPointsOutside = new vtkIdType [nprocs];
+- memset(numPointsOutside, 0, sizeof(vtkIdType) * nprocs);
++ if (sizeof(vtkIdType) * nprocs > 0) {
++ memset(numPointsOutside, 0, sizeof(vtkIdType) * nprocs);
++ }
+
+ vtkIdTypeArray *globalIds = vtkIdTypeArray::New();
+ globalIds->SetNumberOfValues(nGridPoints);
+@@ -3108,10 +3121,16 @@ int vtkDistributedDataFilter::AssignGlobalNodeIds(vtkUnstructuredGrid *grid)
+ // global ID back?
+
+ vtkFloatArray **ptarrayOut = new vtkFloatArray * [nprocs];
+- memset(ptarrayOut, 0, sizeof(vtkFloatArray *) * nprocs);
++
++ if (sizeof(vtkFloatArray *) * nprocs > 0) {
++ memset(ptarrayOut, 0, sizeof(vtkFloatArray *) * nprocs);
++ }
+
+ vtkIdTypeArray **localIds = new vtkIdTypeArray * [nprocs];
+- memset(localIds, 0, sizeof(vtkIdTypeArray *) * nprocs);
++
++ if (sizeof(vtkIdTypeArray *) * nprocs > 0) {
++ memset(localIds, 0, sizeof(vtkIdTypeArray *) * nprocs);
++ }
+
+ vtkIdType *next = new vtkIdType [nprocs];
+ vtkIdType *next3 = new vtkIdType [nprocs];
+@@ -3286,7 +3305,9 @@ vtkIdTypeArray **vtkDistributedDataFilter::FindGlobalPointIds(
+ {
+ // There are no cells in my assigned region
+
+- memset(gids, 0, sizeof(vtkIdTypeArray *) * nprocs);
++ if (sizeof(vtkIdTypeArray *) * nprocs > 0) {
++ memset(gids, 0, sizeof(vtkIdTypeArray *) * nprocs);
++ }
+
+ return gids;
+ }
+@@ -3491,7 +3512,10 @@ vtkIdTypeArray **vtkDistributedDataFilter::MakeProcessLists(
+ std::multimap::iterator mapIt;
+
+ vtkIdTypeArray **processList = new vtkIdTypeArray * [nprocs];
+- memset(processList, 0, sizeof (vtkIdTypeArray *) * nprocs);
++
++ if (sizeof (vtkIdTypeArray *) * nprocs > 0) {
++ memset(processList, 0, sizeof (vtkIdTypeArray *) * nprocs);
++ }
+
+ for (int i=0; iGetNumberOfPoints();
+
+ vtkIdTypeArray **ghostPtIds = new vtkIdTypeArray * [nprocs];
+- memset(ghostPtIds, 0, sizeof(vtkIdTypeArray *) * nprocs);
++ if (sizeof(vtkIdTypeArray *) * nprocs) {
++ memset(ghostPtIds, 0, sizeof(vtkIdTypeArray *) * nprocs);
++ }
+
+ if (numPoints < 1)
+ {
diff --git a/sci-libs/vtk/files/vtk-6.1.0-netcdf.patch b/sci-libs/vtk/files/vtk-6.1.0-netcdf.patch
new file mode 100644
index 0000000..e6f8b64
--- /dev/null
+++ b/sci-libs/vtk/files/vtk-6.1.0-netcdf.patch
@@ -0,0 +1,29 @@
+diff -up VTK/ThirdParty/netcdf/CMakeLists.txt.netcdf VTK/ThirdParty/netcdf/CMakeLists.txt
+--- VTK/ThirdParty/netcdf/CMakeLists.txt.netcdf 2013-12-27 20:29:11.644289659 -0700
++++ VTK/ThirdParty/netcdf/CMakeLists.txt 2013-12-27 20:33:48.071895769 -0700
+@@ -1,10 +1,18 @@
+-vtk_module_third_party(NetCDF
+- LIBRARIES vtkNetCDF vtkNetCDF_cxx
+- INCLUDE_DIRS
+- ${CMAKE_CURRENT_SOURCE_DIR}/vtknetcdf/include
+- ${CMAKE_CURRENT_BINARY_DIR}/vtknetcdf
+- COMPONENTS C CXX
+- )
++if(NOT VTK_USE_SYSTEM_NETCDF)
++ vtk_module_third_party(NetCDF
++ LIBRARIES vtkNetCDF vtkNetCDF_cxx
++ INCLUDE_DIRS
++ ${CMAKE_CURRENT_SOURCE_DIR}/vtknetcdf/include
++ ${CMAKE_CURRENT_BINARY_DIR}/vtknetcdf
++ COMPONENTS C CXX
++ )
++else(NOT VTK_USE_SYSTEM_NETCDF)
++ vtk_module_third_party(NetCDF
++ LIBRARIES vtkNetCDF netcdf
++ COMPONENTS C CXX
++ )
++endif()
++
+
+ #Configure the top cpp header to switch between system and internal
+ #netcdf just like vtk_module_third_party does for the c header.
diff --git a/sci-libs/vtk/files/vtk-6.1.0-system.patch b/sci-libs/vtk/files/vtk-6.1.0-system.patch
new file mode 100644
index 0000000..c75d544
--- /dev/null
+++ b/sci-libs/vtk/files/vtk-6.1.0-system.patch
@@ -0,0 +1,27 @@
+diff -up VTK/CMake/vtkModuleMacros.cmake.system VTK/CMake/vtkModuleMacros.cmake
+--- VTK/CMake/vtkModuleMacros.cmake.system 2013-12-24 19:17:43.000000000 -0700
++++ VTK/CMake/vtkModuleMacros.cmake 2013-12-27 20:28:22.375573277 -0700
+@@ -682,7 +682,7 @@ macro(vtk_module_third_party _pkg)
+ message(FATAL_ERROR "Cannot specify both LIBRARIES and NO_LIBRARIES")
+ endif()
+
+- option(VTK_USE_SYSTEM_${_upper} "Use system-installed ${_pkg}" OFF)
++ option(VTK_USE_SYSTEM_${_upper} "Use system-installed ${_pkg}" ${VTK_USE_SYSTEM_LIBRARIES})
+ mark_as_advanced(VTK_USE_SYSTEM_${_upper})
+
+ if(VTK_USE_SYSTEM_${_upper})
+diff -up VTK/CMakeLists.txt.system VTK/CMakeLists.txt
+--- VTK/CMakeLists.txt.system 2013-12-27 20:28:22.374573241 -0700
++++ VTK/CMakeLists.txt 2013-12-27 20:28:48.118669708 -0700
+@@ -132,6 +132,11 @@ if (CMAKE_CROSSCOMPILING AND NOT COMPILE
+ endif()
+
+ #-----------------------------------------------------------------------------
++# Do we try to use system libraries by default?
++OPTION(VTK_USE_SYSTEM_LIBRARIES "Use the system's libraries by default." OFF)
++MARK_AS_ADVANCED(VTK_USE_SYSTEM_LIBRARIES)
++
++#-----------------------------------------------------------------------------
+ # The third party macros are still used in one or two third party builds.
+ include(vtkThirdParty)
+
diff --git a/sci-libs/vtk/files/vtk-6.1.0-web.patch b/sci-libs/vtk/files/vtk-6.1.0-web.patch
new file mode 100644
index 0000000..a85f2cd
--- /dev/null
+++ b/sci-libs/vtk/files/vtk-6.1.0-web.patch
@@ -0,0 +1,25 @@
+From 58373b120db6d51c6d5eace38447cdb45ff858d1 Mon Sep 17 00:00:00 2001
+From: Patric Schmitz
+Date: Tue, 28 Oct 2014 16:24:22 +0100
+Subject: [PATCH] Include vtkPythonPackages in Web/JavaScript/CMakeLists.txt
+
+Change-Id: Ie7bffa19bdaa78c5b090c886e50c1af76e2aadee
+---
+ Web/Applications/CMakeLists.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Web/Applications/CMakeLists.txt b/Web/Applications/CMakeLists.txt
+index c9e7ad3..b4c9a60 100644
+--- a/Web/Applications/CMakeLists.txt
++++ b/Web/Applications/CMakeLists.txt
+@@ -12,6 +12,7 @@ set(WEB_APPLICATIONS
+
+ set(WEB_APPS_DEPENDS)
+
++include(vtkPythonPackages) # for copy_files_recursive
+ foreach(_app ${WEB_APPLICATIONS})
+ file(MAKE_DIRECTORY "${VTK_WWW_DIR}/apps/${_app}")
+
+--
+2.2.1
+
diff --git a/sci-libs/vtk/files/vtk-7.0.0-glext.patch b/sci-libs/vtk/files/vtk-7.0.0-glext.patch
new file mode 100644
index 0000000..5c32134
--- /dev/null
+++ b/sci-libs/vtk/files/vtk-7.0.0-glext.patch
@@ -0,0 +1,12 @@
+--- a/Rendering/OpenGL/vtkOpenGL.h
++++ b/Rendering/OpenGL/vtkOpenGL.h
+@@ -19,7 +19,8 @@
+ #include "vtkConfigure.h"
+
+ // To prevent gl.h to include glext.h provided by the system
+-#define GL_GLEXT_LEGACY
++// https://bugzilla.redhat.com/show_bug.cgi?id=1138466
++// #define GL_GLEXT_LEGACY
+ #if defined(__APPLE__) && defined(VTK_USE_COCOA)
+ # include // Include OpenGL API.
+ #else
diff --git a/sci-libs/vtk/metadata.xml b/sci-libs/vtk/metadata.xml
new file mode 100644
index 0000000..dbcdc25
--- /dev/null
+++ b/sci-libs/vtk/metadata.xml
@@ -0,0 +1,24 @@
+
+
+
+
+ sci@gentoo.org
+ Gentoo Science Project
+
+
+
diff --git a/sci-libs/vtk/vtk-6.1.0-r4.ebuild b/sci-libs/vtk/vtk-6.1.0-r4.ebuild
new file mode 100644
index 0000000..a24386e
--- /dev/null
+++ b/sci-libs/vtk/vtk-6.1.0-r4.ebuild
@@ -0,0 +1,392 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+CMAKE_MAKEFILE_GENERATOR=ninja
+WEBAPP_OPTIONAL=yes
+WEBAPP_MANUAL_SLOT=yes
+
+inherit eutils flag-o-matic java-pkg-opt-2 python-single-r1 qmake-utils versionator toolchain-funcs cmake-utils virtualx webapp
+
+# Short package version
+SPV="$(get_version_component_range 1-2)"
+
+DESCRIPTION="The Visualization Toolkit"
+HOMEPAGE="https://www.vtk.org/"
+SRC_URI="
+ https://www.${PN}.org/files/release/${SPV}/VTK-${PV}.tar.gz
+ doc? ( https://www.${PN}.org/files/release/${SPV}/${PN}DocHtml-${PV}.tar.gz )
+ test? (
+ https://www.${PN}.org/files/release/${SPV}/VTKData-${PV}.tar.gz
+ https://www.${PN}.org/files/release/${SPV}/VTKLargeData-${PV}.tar.gz
+ )
+ "
+
+LICENSE="BSD LGPL-2"
+KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux ~x86-linux"
+SLOT="0"
+IUSE="
+ all-modules aqua boost cg doc examples imaging ffmpeg gdal java json kaapi mpi
+ mysql odbc offscreen postgres python qt5 rendering smp tbb test theora tk tcl
+ video_cards_nvidia views web xdmf2 R +X"
+
+REQUIRED_USE="
+ all-modules? ( python xdmf2 )
+ java? ( qt5 )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ tcl? ( rendering )
+ smp? ( ^^ ( kaapi tbb ) )
+ test? ( python )
+ tk? ( tcl )
+ web? ( python )
+ ^^ ( X aqua offscreen )
+ "
+
+RDEPEND="
+ dev-libs/expat
+ dev-libs/jsoncpp
+ dev-libs/libxml2:2
+ >=media-libs/freetype-2.5.4
+ media-libs/libpng:0
+ media-libs/mesa
+ media-libs/libtheora
+ media-libs/tiff:0
+ sci-libs/exodusii
+ sci-libs/hdf5:=
+ sci-libs/netcdf-cxx:3
+ sys-libs/zlib
+ virtual/jpeg:0
+ virtual/opengl
+ >=x11-libs/gl2ps-1.3.8
+ x11-libs/libX11
+ x11-libs/libXmu
+ x11-libs/libXt
+ boost? ( >=dev-libs/boost-1.40.0[mpi?] )
+ cg? ( media-gfx/nvidia-cg-toolkit )
+ examples? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ sci-libs/vtkdata
+ )
+ ffmpeg? ( virtual/ffmpeg )
+ gdal? ( sci-libs/gdal )
+ java? ( >=virtual/jre-1.5:* )
+ kaapi? ( =virtual/jdk-1.5 )
+"
+
+S="${WORKDIR}"/VTK-${PV}
+
+PATCHES=(
+ "${FILESDIR}"/${P}-freetype.patch
+ "${FILESDIR}"/${P}-install.patch
+ "${FILESDIR}"/${P}-system.patch
+ "${FILESDIR}"/${P}-netcdf.patch
+ "${FILESDIR}"/${P}-web.patch
+ "${FILESDIR}"/${P}-glext.patch
+ "${FILESDIR}"/${P}-memset.patch
+ "${FILESDIR}"/${P}-gdal2.patch
+ "${FILESDIR}"/${P}-gcc67.patch
+)
+
+RESTRICT="test"
+
+pkg_setup() {
+ use java && java-pkg-opt-2_pkg_setup
+ use python && python-single-r1_pkg_setup
+ use web && webapp_pkg_setup
+
+ append-cppflags -D__STDC_CONSTANT_MACROS -D_UNICODE
+}
+
+src_prepare() {
+ sed \
+ -e 's:libproj4:libproj:g' \
+ -e 's:lib_proj.h:lib_abi.h:g' \
+ -i CMake/FindLIBPROJ4.cmake || die
+
+ local x
+ # missing: VPIC alglib exodusII freerange ftgl libproj4 mrmpi sqlite utf8 verdict xmdf2 xmdf3
+ for x in expat freetype gl2ps hdf5 jpeg jsoncpp libxml2 netcdf oggtheora png tiff zlib; do
+ ebegin "Dropping bundled ${x}"
+ rm -r ThirdParty/${x}/vtk${x} || die
+ eend $?
+ done
+ rm -r \
+ ThirdParty/AutobahnPython/autobahn \
+ ThirdParty/Twisted/twisted \
+ ThirdParty/ZopeInterface/zope \
+ || die
+
+ use java && export JAVA_HOME="${EPREFIX}/etc/java-config-2/current-system-vm"
+
+ if use mpi; then
+ export CC=mpicc
+ export CXX=mpicxx
+ export FC=mpif90
+ export F90=mpif90
+ export F77=mpif77
+ fi
+
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ # general configuration
+ local mycmakeargs=(
+ -Wno-dev
+# -DCMAKE_SKIP_RPATH=YES
+ -DVTK_DIR="${S}"
+ -DVTK_INSTALL_LIBRARY_DIR=$(get_libdir)
+ -DVTK_DATA_ROOT:PATH="${EPREFIX}/usr/share/${PN}/data"
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr"
+ -DVTK_CUSTOM_LIBRARY_SUFFIX=""
+ -DBUILD_SHARED_LIBS=ON
+ -DVTK_USE_SYSTEM_AUTOBAHN=ON
+ -DVTK_USE_SYSTEM_EXPAT=ON
+ -DVTK_USE_SYSTEM_FREETYPE=ON
+ -DVTK_USE_SYSTEM_FreeType=ON
+ -DVTK_USE_SYSTEM_GL2PS=ON
+ -DVTK_USE_SYSTEM_HDF5=ON
+ -DVTK_USE_SYSTEM_JPEG=ON
+ -DVTK_USE_SYSTEM_LIBPROJ4=OFF
+# -DLIBPROJ4_DIR="${EPREFIX}/usr"
+ -DVTK_USE_SYSTEM_LIBXML2=ON
+ -DVTK_USE_SYSTEM_LibXml2=ON
+ -DVTK_USE_SYSTEM_NETCDF=ON
+ -DVTK_USE_SYSTEM_OGGTHEORA=ON
+ -DVTK_USE_SYSTEM_PNG=ON
+ -DVTK_USE_SYSTEM_TIFF=ON
+ -DVTK_USE_SYSTEM_TWISTED=ON
+ -DVTK_USE_SYSTEM_XDMF2=OFF
+ -DVTK_USE_SYSTEM_XDMF3=OFF
+ -DVTK_USE_SYSTEM_ZLIB=ON
+ -DVTK_USE_SYSTEM_ZOPE=ON
+ -DVTK_USE_SYSTEM_LIBRARIES=ON
+ -DVTK_USE_GL2PS=ON
+ -DVTK_USE_LARGE_DATA=ON
+ -DVTK_USE_PARALLEL=ON
+ )
+
+ mycmakeargs+=(
+ -DVTK_EXTRA_COMPILER_WARNINGS=ON
+ -DVTK_Group_StandAlone=ON
+ )
+
+ mycmakeargs+=(
+ $(cmake-utils_use_build doc DOCUMENTATION)
+ $(cmake-utils_use_build examples EXAMPLES)
+ $(cmake-utils_use_build test VTK_BUILD_ALL_MODULES_FOR_TESTS)
+ $(cmake-utils_use all-modules VTK_BUILD_ALL_MODULES)
+ $(cmake-utils_use doc DOCUMENTATION_HTML_HELP)
+ $(cmake-utils_use imaging VTK_Group_Imaging)
+ $(cmake-utils_use mpi VTK_Group_MPI)
+ $(cmake-utils_use rendering VTK_Group_Rendering)
+ $(cmake-utils_use tk VTK_Group_Tk)
+ $(cmake-utils_use views VTK_Group_Views)
+ $(cmake-utils_use web VTK_Group_Web)
+ $(cmake-utils_use web VTK_WWW_DIR="${ED}/${MY_HTDOCSDIR}")
+ $(cmake-utils_use java VTK_WRAP_JAVA)
+ $(cmake-utils_use python VTK_WRAP_PYTHON)
+ $(cmake-utils_use python VTK_WRAP_PYTHON_SIP)
+ $(cmake-utils_use tcl VTK_WRAP_TCL)
+ )
+
+ mycmakeargs+=(
+ $(cmake-utils_use boost VTK_USE_BOOST)
+ $(cmake-utils_use cg VTK_USE_CG_SHADERS)
+ $(cmake-utils_use odbc VTK_USE_ODBC)
+ $(cmake-utils_use offscreen VTK_USE_OFFSCREEN)
+ $(cmake-utils_use offscreen VTK_OPENGL_HAS_OSMESA)
+ $(cmake-utils_use smp vtkFiltersSMP)
+ $(cmake-utils_use theora VTK_USE_OGGTHEORA_ENCODER)
+ $(cmake-utils_use video_cards_nvidia VTK_USE_NVCONTROL)
+ $(cmake-utils_use R Module_vtkFiltersStatisticsGnuR)
+ $(cmake-utils_use X VTK_USE_X)
+ )
+
+ # IO
+ mycmakeargs+=(
+ $(cmake-utils_use ffmpeg VTK_USE_FFMPEG_ENCODER)
+ $(cmake-utils_use gdal Module_vtkIOGDAL)
+ $(cmake-utils_use json Module_vtkIOGeoJSON)
+ $(cmake-utils_use xdmf2 Module_vtkIOXdmf2)
+ )
+ # Apple stuff, does it really work?
+ mycmakeargs+=( $(cmake-utils_use aqua VTK_USE_COCOA) )
+
+ if use examples || use test; then
+ mycmakeargs+=( -DBUILD_TESTING=ON )
+ fi
+
+ if use kaapi; then
+ mycmakeargs+=( -DVTK_SMP_IMPLEMENTATION_TYPE="Kaapi" )
+ elif use tbb; then
+ mycmakeargs+=( -DVTK_SMP_IMPLEMENTATION_TYPE="TBB" )
+ else
+ mycmakeargs+=( -DVTK_SMP_IMPLEMENTATION_TYPE="Sequential" )
+ fi
+
+ if use java; then
+# local _ejavahome=${EPREFIX}/etc/java-config-2/current-system-vm
+#
+# mycmakeargs+=(
+# -DJAVAC=${EPREFIX}/usr/bin/javac
+# -DJAVAC=$(java-config -c)
+# -DJAVA_AWT_INCLUDE_PATH=${JAVA_HOME}/include
+# -DJAVA_INCLUDE_PATH:PATH=${JAVA_HOME}/include
+# -DJAVA_INCLUDE_PATH2:PATH=${JAVA_HOME}/include/linux
+# )
+#
+ if [ "${ARCH}" == "amd64" ]; then
+ mycmakeargs+=( -DJAVA_AWT_LIBRARY="${JAVA_HOME}/jre/lib/${ARCH}/libjawt.so;${JAVA_HOME}/jre/lib/${ARCH}/xawt/libmawt.so" )
+ else
+ mycmakeargs+=( -DJAVA_AWT_LIBRARY="${JAVA_HOME}/jre/lib/i386/libjawt.so;${JAVA_HOME}/jre/lib/i386/xawt/libmawt.so" )
+ fi
+ fi
+ if use python; then
+ mycmakeargs+=(
+ -DVTK_INSTALL_PYTHON_MODULE_DIR="$(python_get_sitedir)"
+ -DPYTHON_INCLUDE_DIR="$(python_get_includedir)"
+ -DPYTHON_LIBRARY="$(python_get_library_path)"
+ -DSIP_PYQT_DIR="${EPREFIX}/usr/share/sip"
+ -DSIP_INCLUDE_DIR="$(python_get_includedir)"
+ -DVTK_PYTHON_INCLUDE_DIR="$(python_get_includedir)"
+ -DVTK_PYTHON_LIBRARY="$(python_get_library_path)"
+ -DVTK_PYTHON_SETUP_ARGS:STRING="--prefix=${EPREFIX}/usr --root=${D}"
+ )
+ fi
+
+ if use qt5; then
+ mycmakeargs+=(
+ -DVTK_USE_QVTK=ON
+ -DVTK_USE_QVTK_OPENGL=ON
+ -DVTK_USE_QVTK_QTOPENGL=ON
+ -DQT_WRAP_CPP=ON
+ -DQT_WRAP_UI=ON
+ -DVTK_INSTALL_QT_DIR=/$(get_libdir)/qt5/plugins/designer
+ -DDESIRED_QT_VERSION=5
+ -DVTK_QT_VERSION=5
+ -DQT_MOC_EXECUTABLE="$(qt5_get_bindir)/moc"
+ -DQT_UIC_EXECUTABLE="$(qt5_get_bindir)/uic"
+ -DQT_INCLUDE_DIR="${EPREFIX}/usr/include/qt5"
+ -DQT_QMAKE_EXECUTABLE="$(qt5_get_bindir)/qmake"
+ -DVTK_Group_Qt:BOOL=ON
+ )
+ fi
+
+ if use R; then
+ mycmakeargs+=(
+# -DR_LIBRARY_BLAS=$($(tc-getPKG_CONFIG) --libs blas)
+# -DR_LIBRARY_LAPACK=$($(tc-getPKG_CONFIG) --libs lapack)
+ -DR_LIBRARY_BLAS=/usr/$(get_libdir)/R/lib/libR.so
+ -DR_LIBRARY_LAPACK=/usr/$(get_libdir)/R/lib/libR.so
+ )
+ fi
+
+ cmake-utils_src_configure
+}
+
+src_test() {
+ local tcllib
+ ln -sf "${BUILD_DIR}"/lib "${BUILD_DIR}"/lib/Release || die
+ for tcllib in "${BUILD_DIR}"/lib/lib*TCL*so; do
+ ln -sf $(basename "${tcllib}").1 "${tcllib/.so/-${SPV}.so}" || die
+ done
+ export LD_LIBRARY_PATH="${BUILD_DIR}"/lib:"${JAVA_HOME}"/jre/lib/${ARCH}/:"${JAVA_HOME}"/jre/lib/${ARCH}/xawt/
+ local VIRTUALX_COMMAND="cmake-utils_src_test"
+# local VIRTUALX_COMMAND="cmake-utils_src_test -R Java"
+# local VIRTUALX_COMMAND="cmake-utils_src_test -I 364,365"
+ virtualmake
+}
+
+src_install() {
+ use web && webapp_src_preinst
+ # install docs
+ HTML_DOCS=( "${S}"/README.html )
+
+ cmake-utils_src_install
+
+ use java && java-pkg_regjar "${ED}"/usr/$(get_libdir)/${PN}.jar
+
+ if use tcl; then
+ # install Tcl docs
+ docinto vtk_tcl
+ dodoc "${S}"/Wrapping/Tcl/README
+ fi
+
+ # install examples
+ if use examples; then
+ insinto /usr/share/${PN}
+ mv -v Examples examples || die
+ doins -r examples
+ fi
+
+ #install big docs
+ if use doc; then
+ cd "${WORKDIR}"/html || die
+ rm -f *.md5 || die "Failed to remove superfluous hashes"
+ einfo "Installing API docs. This may take some time."
+ docinto html
+ dodoc -r ./*
+ fi
+
+ # environment
+ cat >> "${T}"/40${PN} <<- EOF
+ VTK_DATA_ROOT=${EPREFIX}/usr/share/${PN}/data
+ VTK_DIR=${EPREFIX}/usr/$(get_libdir)/${PN}-${SPV}
+ VTKHOME=${EPREFIX}/usr
+ EOF
+ doenvd "${T}"/40${PN}
+
+ use web && webapp_src_install
+}
+
+# webapp.eclass exports these but we want it optional #534036
+pkg_postinst() {
+ use web && webapp_pkg_postinst
+}
+
+pkg_prerm() {
+ use web && webapp_pkg_prerm
+}
diff --git a/sci-libs/vtk/vtk-7.1.0.ebuild b/sci-libs/vtk/vtk-7.1.0.ebuild
new file mode 100644
index 0000000..7d06c7c
--- /dev/null
+++ b/sci-libs/vtk/vtk-7.1.0.ebuild
@@ -0,0 +1,353 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+WEBAPP_OPTIONAL=yes
+WEBAPP_MANUAL_SLOT=yes
+
+inherit flag-o-matic java-pkg-opt-2 python-single-r1 qmake-utils versionator toolchain-funcs cmake-utils virtualx webapp
+
+# Short package version
+SPV="$(get_version_component_range 1-2)"
+
+DESCRIPTION="The Visualization Toolkit"
+HOMEPAGE="https://www.vtk.org/"
+SRC_URI="
+ https://www.vtk.org/files/release/${SPV}/VTK-${PV}.tar.gz
+ doc? ( https://www.vtk.org/files/release/${SPV}/vtkDocHtml-${PV}.tar.gz )
+ test? (
+ https://www.vtk.org/files/release/${SPV}/VTKData-${PV}.tar.gz
+ https://www.vtk.org/files/release/${SPV}/VTKLargeData-${PV}.tar.gz
+ )
+ "
+
+LICENSE="BSD LGPL-2"
+KEYWORDS="amd64 ~arm x86 ~amd64-linux ~x86-linux"
+SLOT="0"
+IUSE="
+ all-modules aqua boost doc examples imaging ffmpeg gdal java json kaapi mpi
+ mysql odbc offscreen postgres python qt5 rendering tbb test theora tk tcl
+ video_cards_nvidia views web R +X xdmf2"
+
+REQUIRED_USE="
+ all-modules? ( python xdmf2 boost )
+ java? ( qt5 )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ tcl? ( rendering )
+ test? ( python )
+ tk? ( tcl )
+ web? ( python )
+ ^^ ( X aqua offscreen )
+ "
+
+RDEPEND="
+ dev-libs/expat
+ dev-libs/jsoncpp:=
+ dev-libs/libxml2:2
+ >=media-libs/freetype-2.5.4
+ media-libs/libpng:0=
+ media-libs/libtheora
+ media-libs/mesa
+ media-libs/tiff:0
+ sci-libs/exodusii
+ sci-libs/hdf5:=
+ sci-libs/netcdf-cxx:3
+ sys-libs/zlib
+ virtual/jpeg:0
+ virtual/opengl
+ x11-libs/libX11
+ x11-libs/libXmu
+ x11-libs/libXt
+ boost? ( dev-libs/boost:=[mpi?] )
+ examples? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ sci-libs/vtkdata
+ )
+ ffmpeg? ( virtual/ffmpeg )
+ gdal? ( sci-libs/gdal )
+ java? ( >=virtual/jdk-1.7:* )
+ kaapi? ( > "${T}"/40${PN} <<- EOF || die
+ VTK_DATA_ROOT=${EPREFIX}/usr/share/${PN}/data
+ VTK_DIR=${EPREFIX}/usr/$(get_libdir)/${PN}-${SPV}
+ VTKHOME=${EPREFIX}/usr
+ EOF
+ doenvd "${T}"/40${PN}
+
+ use web && webapp_src_install
+}
+
+# webapp.eclass exports these but we want it optional #534036
+pkg_postinst() {
+ use web && webapp_pkg_postinst
+}
+
+pkg_prerm() {
+ use web && webapp_pkg_prerm
+}
diff --git a/sci-libs/vtk/vtk-8.1.0-r1.ebuild b/sci-libs/vtk/vtk-8.1.0-r1.ebuild
new file mode 100644
index 0000000..6524c60
--- /dev/null
+++ b/sci-libs/vtk/vtk-8.1.0-r1.ebuild
@@ -0,0 +1,332 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+WEBAPP_OPTIONAL=yes
+WEBAPP_MANUAL_SLOT=yes
+
+inherit flag-o-matic java-pkg-opt-2 python-single-r1 qmake-utils versionator toolchain-funcs cmake-utils virtualx webapp
+
+# Short package version
+SPV="$(get_version_component_range 1-2)"
+
+DESCRIPTION="The Visualization Toolkit"
+HOMEPAGE="https://www.vtk.org/"
+SRC_URI="
+ https://www.vtk.org/files/release/${SPV}/VTK-${PV}.tar.gz
+ doc? ( https://www.vtk.org/files/release/${SPV}/vtkDocHtml-${PV}.tar.gz )
+ examples? (
+ https://www.vtk.org/files/release/${SPV}/VTKData-${PV}.tar.gz
+ https://www.vtk.org/files/release/${SPV}/VTKLargeData-${PV}.tar.gz
+ )"
+
+LICENSE="BSD LGPL-2"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+SLOT="0"
+IUSE="
+ all-modules aqua boost doc examples imaging ffmpeg gdal java json kaapi mpi
+ mysql odbc offscreen postgres python qt5 rendering tbb theora tk tcl
+ video_cards_nvidia views web R +X xdmf2"
+
+REQUIRED_USE="
+ all-modules? ( python xdmf2 boost )
+ java? ( qt5 )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ tcl? ( rendering )
+ examples? ( python )
+ tk? ( tcl )
+ web? ( python )
+ ^^ ( X aqua offscreen )"
+
+RDEPEND="
+ app-arch/lz4
+ dev-libs/expat
+ dev-libs/jsoncpp:=
+ dev-libs/libxml2:2
+ >=media-libs/freetype-2.5.4
+ >=media-libs/libharu-2.3.0-r2
+ media-libs/libpng:0=
+ media-libs/libtheora
+ media-libs/mesa
+ media-libs/tiff:0
+ sci-libs/exodusii
+ sci-libs/hdf5:=
+ sci-libs/netcdf-cxx:3
+ sys-libs/zlib
+ virtual/jpeg:0
+ virtual/opengl
+ x11-libs/libX11
+ x11-libs/libXmu
+ x11-libs/libXt
+ boost? ( dev-libs/boost:=[mpi?] )
+ examples? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ )
+ ffmpeg? ( virtual/ffmpeg )
+ gdal? ( sci-libs/gdal )
+ java? ( >=virtual/jdk-1.7:* )
+ kaapi? ( > "${T}"/40${PN} <<- EOF || die
+ VTK_DATA_ROOT=${EPREFIX}/usr/share/${PN}/data
+ VTK_DIR=${EPREFIX}/usr/$(get_libdir)/${PN}-${SPV}
+ VTKHOME=${EPREFIX}/usr
+ EOF
+ doenvd "${T}"/40${PN}
+
+ use web && webapp_src_install
+}
+
+# webapp.eclass exports these but we want it optional #534036
+pkg_postinst() {
+ use web && webapp_pkg_postinst
+}
+
+pkg_prerm() {
+ use web && webapp_pkg_prerm
+}
diff --git a/sci-libs/vtk/vtk-8.1.0-r2.ebuild b/sci-libs/vtk/vtk-8.1.0-r2.ebuild
new file mode 100644
index 0000000..7cad42c
--- /dev/null
+++ b/sci-libs/vtk/vtk-8.1.0-r2.ebuild
@@ -0,0 +1,332 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python{2_7,3_5,3_6} )
+WEBAPP_OPTIONAL=yes
+WEBAPP_MANUAL_SLOT=yes
+
+inherit flag-o-matic java-pkg-opt-2 python-single-r1 qmake-utils versionator toolchain-funcs cmake-utils virtualx webapp
+
+# Short package version
+SPV="$(get_version_component_range 1-2)"
+
+DESCRIPTION="The Visualization Toolkit"
+HOMEPAGE="https://www.vtk.org/"
+SRC_URI="
+ https://www.vtk.org/files/release/${SPV}/VTK-${PV}.tar.gz
+ doc? ( https://www.vtk.org/files/release/${SPV}/vtkDocHtml-${PV}.tar.gz )
+ examples? (
+ https://www.vtk.org/files/release/${SPV}/VTKData-${PV}.tar.gz
+ https://www.vtk.org/files/release/${SPV}/VTKLargeData-${PV}.tar.gz
+ )"
+
+LICENSE="BSD LGPL-2"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+SLOT="0"
+IUSE="
+ all-modules aqua boost doc examples imaging ffmpeg gdal java json kaapi mpi
+ mysql odbc offscreen postgres python qt5 rendering tbb theora tk tcl
+ video_cards_nvidia views web R +X xdmf2"
+
+REQUIRED_USE="
+ all-modules? ( python xdmf2 boost )
+ java? ( qt5 )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ tcl? ( rendering )
+ examples? ( python )
+ tk? ( tcl )
+ web? ( python )
+ ^^ ( X aqua offscreen )"
+
+RDEPEND="
+ app-arch/lz4
+ dev-libs/expat
+ dev-libs/jsoncpp:=
+ dev-libs/libxml2:2
+ >=media-libs/freetype-2.5.4
+ >=media-libs/libharu-2.3.0-r2
+ media-libs/libpng:0=
+ media-libs/libtheora
+ media-libs/mesa
+ media-libs/tiff:0
+ sci-libs/exodusii
+ sci-libs/hdf5:=
+ sci-libs/netcdf-cxx:3
+ sys-libs/zlib
+ virtual/jpeg:0
+ virtual/opengl
+ x11-libs/libX11
+ x11-libs/libXmu
+ x11-libs/libXt
+ boost? ( dev-libs/boost:=[mpi?] )
+ examples? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ )
+ ffmpeg? ( virtual/ffmpeg )
+ gdal? ( sci-libs/gdal )
+ java? ( >=virtual/jdk-1.7:* )
+ kaapi? ( > "${T}"/40${PN} <<- EOF || die
+ VTK_DATA_ROOT=${EPREFIX}/usr/share/${PN}/data
+ VTK_DIR=${EPREFIX}/usr/$(get_libdir)/${PN}-${SPV}
+ VTKHOME=${EPREFIX}/usr
+ EOF
+ doenvd "${T}"/40${PN}
+
+ use web && webapp_src_install
+}
+
+# webapp.eclass exports these but we want it optional #534036
+pkg_postinst() {
+ use web && webapp_pkg_postinst
+}
+
+pkg_prerm() {
+ use web && webapp_pkg_prerm
+}
diff --git a/sci-libs/vtk/vtk-8.1.0-r3.ebuild b/sci-libs/vtk/vtk-8.1.0-r3.ebuild
new file mode 100644
index 0000000..615862c
--- /dev/null
+++ b/sci-libs/vtk/vtk-8.1.0-r3.ebuild
@@ -0,0 +1,333 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python{2_7,3_5,3_6,3_7} )
+WEBAPP_OPTIONAL=yes
+WEBAPP_MANUAL_SLOT=yes
+
+inherit flag-o-matic java-pkg-opt-2 python-single-r1 qmake-utils versionator toolchain-funcs cmake-utils virtualx webapp
+
+# Short package version
+SPV="$(get_version_component_range 1-2)"
+
+DESCRIPTION="The Visualization Toolkit"
+HOMEPAGE="https://www.vtk.org/"
+SRC_URI="
+ https://www.vtk.org/files/release/${SPV}/VTK-${PV}.tar.gz
+ doc? ( https://www.vtk.org/files/release/${SPV}/vtkDocHtml-${PV}.tar.gz )
+ examples? (
+ https://www.vtk.org/files/release/${SPV}/VTKData-${PV}.tar.gz
+ https://www.vtk.org/files/release/${SPV}/VTKLargeData-${PV}.tar.gz
+ )"
+
+LICENSE="BSD LGPL-2"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+SLOT="0"
+IUSE="
+ all-modules aqua boost doc examples imaging ffmpeg gdal java json kaapi mpi
+ mysql odbc offscreen postgres python qt5 rendering tbb theora tk tcl
+ video_cards_nvidia views web R +X xdmf2"
+
+REQUIRED_USE="
+ all-modules? ( python xdmf2 boost )
+ java? ( qt5 )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ tcl? ( rendering )
+ examples? ( python )
+ tk? ( tcl )
+ web? ( python )
+ ^^ ( X aqua offscreen )"
+
+RDEPEND="
+ app-arch/lz4
+ dev-libs/expat
+ dev-libs/jsoncpp:=
+ dev-libs/libxml2:2
+ >=media-libs/freetype-2.5.4
+ >=media-libs/libharu-2.3.0-r2
+ media-libs/libpng:0=
+ media-libs/libtheora
+ media-libs/mesa
+ media-libs/tiff:0
+ sci-libs/exodusii
+ sci-libs/hdf5:=
+ sci-libs/netcdf:0=
+ sci-libs/netcdf-cxx:3
+ sys-libs/zlib
+ virtual/jpeg:0
+ virtual/opengl
+ x11-libs/libX11
+ x11-libs/libXmu
+ x11-libs/libXt
+ boost? ( dev-libs/boost:=[mpi?] )
+ examples? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ )
+ ffmpeg? ( virtual/ffmpeg )
+ gdal? ( sci-libs/gdal )
+ java? ( >=virtual/jdk-1.7:* )
+ kaapi? ( > "${T}"/40${PN} <<- EOF || die
+ VTK_DATA_ROOT=${EPREFIX}/usr/share/${PN}/data
+ VTK_DIR=${EPREFIX}/usr/$(get_libdir)/${PN}-${SPV}
+ VTKHOME=${EPREFIX}/usr
+ EOF
+ doenvd "${T}"/40${PN}
+
+ use web && webapp_src_install
+}
+
+# webapp.eclass exports these but we want it optional #534036
+pkg_postinst() {
+ use web && webapp_pkg_postinst
+}
+
+pkg_prerm() {
+ use web && webapp_pkg_prerm
+}
diff --git a/sci-libs/vtk/vtk-8.1.0.ebuild b/sci-libs/vtk/vtk-8.1.0.ebuild
new file mode 100644
index 0000000..6604f44
--- /dev/null
+++ b/sci-libs/vtk/vtk-8.1.0.ebuild
@@ -0,0 +1,339 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+WEBAPP_OPTIONAL=yes
+WEBAPP_MANUAL_SLOT=yes
+
+inherit flag-o-matic java-pkg-opt-2 python-single-r1 qmake-utils versionator toolchain-funcs cmake-utils virtualx webapp
+
+# Short package version
+SPV="$(get_version_component_range 1-2)"
+
+DESCRIPTION="The Visualization Toolkit"
+HOMEPAGE="https://www.vtk.org/"
+SRC_URI="
+ https://www.vtk.org/files/release/${SPV}/VTK-${PV}.tar.gz
+ doc? ( https://www.vtk.org/files/release/${SPV}/vtkDocHtml-${PV}.tar.gz )
+ examples? (
+ https://www.vtk.org/files/release/${SPV}/VTKData-${PV}.tar.gz
+ https://www.vtk.org/files/release/${SPV}/VTKLargeData-${PV}.tar.gz
+ )"
+
+LICENSE="BSD LGPL-2"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+SLOT="0"
+IUSE="
+ all-modules aqua boost doc examples imaging ffmpeg gdal java json kaapi mpi
+ mysql odbc offscreen postgres python qt5 rendering tbb theora tk tcl
+ video_cards_nvidia views web R +X xdmf2"
+
+REQUIRED_USE="
+ all-modules? ( python xdmf2 boost )
+ java? ( qt5 )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ tcl? ( rendering )
+ examples? ( python )
+ tk? ( tcl )
+ web? ( python )
+ ^^ ( X aqua offscreen )"
+
+RDEPEND="
+ app-arch/lz4
+ dev-libs/expat
+ dev-libs/jsoncpp:=
+ dev-libs/libxml2:2
+ >=media-libs/freetype-2.5.4
+ >=media-libs/libharu-2.3.0-r2
+ media-libs/libpng:0=
+ media-libs/libtheora
+ media-libs/mesa
+ media-libs/tiff:0
+ sci-libs/exodusii
+ sci-libs/hdf5:=
+ sci-libs/netcdf-cxx:3
+ sys-libs/zlib
+ virtual/jpeg:0
+ virtual/opengl
+ x11-libs/libX11
+ x11-libs/libXmu
+ x11-libs/libXt
+ boost? ( dev-libs/boost:=[mpi?] )
+ examples? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ )
+ ffmpeg? ( virtual/ffmpeg )
+ gdal? ( sci-libs/gdal )
+ java? ( >=virtual/jdk-1.7:* )
+ kaapi? ( > "${T}"/40${PN} <<- EOF || die
+ VTK_DATA_ROOT=${EPREFIX}/usr/share/${PN}/data
+ VTK_DIR=${EPREFIX}/usr/$(get_libdir)/${PN}-${SPV}
+ VTKHOME=${EPREFIX}/usr
+ EOF
+ doenvd "${T}"/40${PN}
+
+ use web && webapp_src_install
+}
+
+# webapp.eclass exports these but we want it optional #534036
+pkg_postinst() {
+ use web && webapp_pkg_postinst
+}
+
+pkg_prerm() {
+ use web && webapp_pkg_prerm
+}
diff --git a/sys-apps/xdg-desktop-portal-wlr/Manifest b/sys-apps/xdg-desktop-portal-wlr/Manifest
new file mode 100644
index 0000000..766bc4a
--- /dev/null
+++ b/sys-apps/xdg-desktop-portal-wlr/Manifest
@@ -0,0 +1,3 @@
+DIST v0.1.0.tar.gz 23832 BLAKE2B cff04a320ab239bf0d90c01ffc4e557bf5bf2978a433fcca0413b09f3c3b2ee5ed75f3655077dc493ae42a11a8e027f0a17b74c97e3eecadfb67f2e0e7912693 SHA512 8c1f58024c464e5628162e3ba1bf129809403bcc5d2329b55b6628f419ff8d5ead21d87f0bdcbb458ce5798d62184af177616bbfbeb653c34450c716f6b3ab26
+EBUILD xdg-desktop-portal-wlr-0.1.0.ebuild 650 BLAKE2B 927596a7a37df1c3ff66af93f171de90648e577ac645ca102af41cc2f28ec164a3e2892b9d570cba4119835009062f7e175737962d1468c2f51861389fada9c5 SHA512 495cbd9680d91aa7432df1aed564eae23e861049d2b76fef87c50fa6439970f5c85d067463c032343c7d7c35c58cf4fc7c70d8ff5f34c0eb0453e60609e6830b
+MISC metadata.xml 249 BLAKE2B ad415db89e5dee1627aa77f44ded9d4e1e5b8217d06c7ca25bbaa3fe92ce67c2b1090957c45a821b407d7927e5af798498aa6a5b903895ee1af8ee20a446c7f7 SHA512 76a5a340b13f0053ca3c5e94ed24380ea8d29b45ac8655419e22eaadb1e4a827c04d2e7e36b65145c4964e6526f656618fc6ac144e277ef53cb7373e6239e3c3
diff --git a/sys-apps/xdg-desktop-portal-wlr/metadata.xml b/sys-apps/xdg-desktop-portal-wlr/metadata.xml
new file mode 100644
index 0000000..2fdbf33
--- /dev/null
+++ b/sys-apps/xdg-desktop-portal-wlr/metadata.xml
@@ -0,0 +1,8 @@
+
+
+
+
+ kde@gentoo.org
+ Gentoo KDE Project
+
+
diff --git a/sys-apps/xdg-desktop-portal-wlr/xdg-desktop-portal-wlr-0.1.0.ebuild b/sys-apps/xdg-desktop-portal-wlr/xdg-desktop-portal-wlr-0.1.0.ebuild
new file mode 100644
index 0000000..e4729da
--- /dev/null
+++ b/sys-apps/xdg-desktop-portal-wlr/xdg-desktop-portal-wlr-0.1.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit eutils meson
+
+DESCRIPTION="Desktop integration portal (wlroots backend)"
+HOMEPAGE="https://flatpak.org/ https://github.com/flatpak/xdg-desktop-portal"
+SRC_URI="https://github.com/emersion/${PN}/archive/v${PV}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm arm64 x86"
+IUSE="doc" # geolocation
+
+BDEPEND="
+ gui-libs/wlroots
+"
+
+DEPEND="
+ gui-wm/sway
+"
+
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ default
+}
+
+src_configure() {
+ meson_src_configure
+}
diff --git a/sys-kernel/linux-firmware/Manifest b/sys-kernel/linux-firmware/Manifest
new file mode 100644
index 0000000..0bdc98e
--- /dev/null
+++ b/sys-kernel/linux-firmware/Manifest
@@ -0,0 +1,3 @@
+DIST linux-firmware-20200619.tar.gz 250595335 BLAKE2B 9bb010b6600d02c536caf17502e54c5225934706eff747d7edaf55774f3c78841d3ff235b7eed037ff117e6e29e7ac11fec498fcace5c52f8b0ddd6b553b96f8 SHA512 9ee615f7d458e453ac53294cb920f322fa29c84255d127cd5f47fad178b0983e7e3fcd6be0b80bc6878c01258bdf75a1356ff6b6766279b10f352bfdb2e4b9a5
+EBUILD linux-firmware-20200619.ebuild 9178 BLAKE2B 71681d355ffcc4e2a4ea81dd4fa5fe13a0d4449bfab3c0fadd9adee425aa0e4dcf5dda56243a480d01ffb3b375a982e602f1acb7b881a4745cf9b991b80a5313 SHA512 90589eb040f873f8fce4ed2f3da700f884d52fd2d841613fdc3581106aa480fcdfb3a47a14f488edf3d81652e4b7dc9e61dda93a4ca31226d0be6f3654f64a77
+MISC metadata.xml 867 BLAKE2B db510434e654367fb0ae439b1a3ca3fc170f558022f07634a534ea982f2445ff656fa618b9dac5ebb6ac2f64d9ee93dcc59525c1f3d429eda4ebce05a678298c SHA512 5429e7424fac663e3448e80dad98365239b855f09522fe7ea3cd2c731bec37fee29209cc8ead46e73ea03cd85a3e9c8fafe18ddf4a35e5bb55513d63ad5ae7ff
diff --git a/sys-kernel/linux-firmware/linux-firmware-20200619.ebuild b/sys-kernel/linux-firmware/linux-firmware-20200619.ebuild
new file mode 100644
index 0000000..c9fb670
--- /dev/null
+++ b/sys-kernel/linux-firmware/linux-firmware-20200619.ebuild
@@ -0,0 +1,337 @@
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit mount-boot savedconfig
+
+SRC_URI="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/snapshot/linux-firmware-${PV}.tar.gz -> ${P}.tar.gz"
+KEYWORDS="*"
+
+DESCRIPTION="Linux firmware files"
+HOMEPAGE="https://git.kernel.org/?p=linux/kernel/git/firmware/linux-firmware.git"
+
+LICENSE="GPL-2 GPL-2+ GPL-3 BSD MIT || ( MPL-1.1 GPL-2 )
+ redistributable? (
+ linux-fw-redistributable ( BSD-2 BSD BSD-4 ISC MIT no-source-code ) )
+ unknown-license? ( all-rights-reserved )"
+SLOT="0"
+IUSE="initramfs +redistributable savedconfig unknown-license"
+RESTRICT="binchecks strip
+ unknown-license? ( bindist )"
+
+REQUIRED_USE="initramfs? ( redistributable )"
+
+BDEPEND="initramfs? ( app-arch/cpio )"
+
+#add anything else that collides to this
+RDEPEND="!savedconfig? (
+ redistributable? (
+ !sys-firmware/alsa-firmware[alsa_cards_ca0132]
+ !media-tv/cx18-firmware
+ ! "${UCODETMP}/early_cpio"
+
+ local amd_ucode_file="${UCODEDIR}/AuthenticAMD.bin"
+ cat "${S}"/amd-ucode/*.bin > "${amd_ucode_file}" || die "Failed to concat amd cpu ucode"
+
+ if [[ ! -s "${amd_ucode_file}" ]]; then
+ die "Sanity check failed: '${amd_ucode_file}' is empty!"
+ fi
+
+ pushd "${UCODETMP}" &>/dev/null || die
+ find . -print0 | cpio --quiet --null -o -H newc -R 0:0 > "${S}"/amd-uc.img
+ popd &>/dev/null || die
+ if [[ ! -s "${S}/amd-uc.img" ]]; then
+ die "Failed to create '${S}/amd-uc.img'!"
+ fi
+ else
+ # If this will ever happen something has changed which
+ # must be reviewed
+ die "'${S}/amd-ucode' not found!"
+ fi
+ fi
+
+ echo "# Remove files that shall not be installed from this list." > ${PN}.conf
+ find * ! -type d ! \( -name ${PN}.conf -o -name amd-uc.img \) >> ${PN}.conf
+
+ if use savedconfig; then
+ restore_config ${PN}.conf
+
+ ebegin "Removing all files not listed in config"
+ find ! -type d ! \( -name ${PN}.conf -o -name amd-uc.img \) -printf "%P\n" \
+ | grep -Fvx -f <(grep -v '^#' ${PN}.conf \
+ || die "grep failed, empty config file?") \
+ | xargs -d '\n' --no-run-if-empty rm
+ eend $? || die
+ fi
+
+ # remove empty directories, bug #396073
+ find -type d -empty -delete || die
+}
+
+src_install() {
+ save_config ${PN}.conf
+ rm ${PN}.conf || die
+
+ if use initramfs ; then
+ mkdir "${ED}/boot" || die
+ mv "${S}"/amd-uc.img "${ED}/boot" || die
+ fi
+
+ if ! ( shopt -s failglob; : * ) 2>/dev/null; then
+ eerror "No files to install. Check your USE flag settings"
+ eerror "and the list of files in your saved configuration."
+ die "Refusing to install an empty package"
+ fi
+
+ insinto /lib/firmware/
+ doins -r *
+}
+
+pkg_preinst() {
+ if use savedconfig; then
+ ewarn "USE=savedconfig is active. You must handle file collisions manually."
+ fi
+
+ # Make sure /boot is available if needed.
+ use initramfs && mount-boot_pkg_preinst
+}
+
+pkg_postinst() {
+ elog "If you are only interested in particular firmware files, edit the saved"
+ elog "configfile and remove those that you do not want."
+
+ local ver
+ for ver in ${REPLACING_VERSIONS}; do
+ if ver_test ${ver} -lt 20190514; then
+ elog
+ elog 'Starting with version 20190514, installation of many firmware'
+ elog 'files is controlled by USE flags. Please review your USE flag'
+ elog 'and package.license settings if you are missing some files.'
+ break
+ fi
+ done
+
+ # Don't forget to umount /boot if it was previously mounted by us.
+ use initramfs && mount-boot_pkg_postinst
+}
+
+pkg_prerm() {
+ # Make sure /boot is mounted so that we can remove /boot/amd-uc.img!
+ use initramfs && mount-boot_pkg_prerm
+}
+
+pkg_postrm() {
+ # Don't forget to umount /boot if it was previously mounted by us.
+ use initramfs && mount-boot_pkg_postrm
+}
diff --git a/sys-kernel/linux-firmware/metadata.xml b/sys-kernel/linux-firmware/metadata.xml
new file mode 100644
index 0000000..b1cdaa4
--- /dev/null
+++ b/sys-kernel/linux-firmware/metadata.xml
@@ -0,0 +1,22 @@
+
+
+
+
+ chithanh@gentoo.org
+ ChÃ-Thanh Christopher Nguyá»…n
+
+
+ zerochaos@gentoo.org
+ Rick Farina
+
+
+ kernel@gentoo.org
+ Gentoo Kernel Project
+
+
+
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? ( !=app-arch/gzip-1.7
+ app-arch/unzip
+ dev-lang/perl
+ >=dev-util/gn-0.1726
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ closure-compile? ( virtual/jre )
+"
+
+: ${CHROMIUM_FORCE_CLANG=no}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-9"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ RDEPEND+=" >=sys-libs/libcxx-9"
+ DEPEND+=" >=sys-libs/libcxx-9"
+else
+ COMMON_DEPEND="
+ app-arch/snappy:=
+ dev-libs/libxslt:=
+ >=dev-libs/re2-0.2019.08.01:=
+ >=media-libs/openh264-1.6.0:=
+ system-icu? ( >=dev-libs/icu-67.1:= )
+ "
+ RDEPEND+="${COMMON_DEPEND}"
+ DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-84-mediaalloc.patch"
+ "${FILESDIR}/chromium-83-vaapi.patch"
+ "${FILESDIR}/chromium-84-pipewire.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+ die "At least gcc 9.2 is required"
+ fi
+ # component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
+ if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
+ die "Component build with tcmalloc requires FEATURES=-usersandbox."
+ fi
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+ if use component-build; then
+ die "Component build with clang requires fuzzer headers."
+ fi
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ if use custom-cflags || use component-build; then
+ CHECKREQS_DISK_BUILD="25G"
+ fi
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ eapply "${WORKDIR}/patches"
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/depot_tools
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/libgifcodec
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng/utils
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/openscreen
+ third_party/openscreen/src/third_party/mozilla
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-7.0
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+
+ # we need to generate ppc64 stuff because upstream does not ship it yet
+ # it has to be done before unbundling.
+ if use ppc64; then
+ pushd third_party/libvpx >/dev/null || die
+ mkdir -p source/config/linux/ppc64 || die
+ ./generate_gni.sh || die
+ popd >/dev/null || die
+ fi
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+ if use ozone && use wayland && ! use headless ; then
+ keeplibs+=( third_party/wayland )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ keeplibs+=( third_party/libxml )
+ keeplibs+=( third_party/libxslt )
+ keeplibs+=( third_party/openh264 )
+ keeplibs+=( third_party/re2 )
+ keeplibs+=( third_party/snappy )
+ if use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ fi
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ die "Compiling with sys-libs/libcxx requires clang."
+ fi
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+ # unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+ gn_system_libraries+=( libxml )
+ gn_system_libraries+=( libxslt )
+ gn_system_libraries+=( openh264 )
+ gn_system_libraries+=( re2 )
+ gn_system_libraries+=( snappy )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Disable deprecated libgnome-keyring dependency, bug #713012
+ myconf_gn+=" use_gnome_keyring=false"
+
+ # Optional dependencies.
+ myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Debug info section overflows without component build
+ # Prevent linker from running out of address space, bug #471810 .
+ if ! use component-build || use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+ fi
+ fi
+
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ append-flags -stdlib=libc++
+ append-ldflags -stdlib=libc++
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ elif [[ $myarch = ppc64 ]] ; then
+ myconf_gn+=" target_cpu=\"ppc64\""
+ ffmpeg_target_arch=ppc64
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ # Use bundled xcb-proto, bug #727000
+ myconf_gn+=" xcbproto_path=\"${WORKDIR}/xcb-proto-${XCB_PROTO_VERSION}/src\""
+
+ # Enable ozone support
+ if use ozone; then
+ myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+ myconf_gn+=" ozone_platform_headless=true"
+ if ! use headless; then
+ myconf_gn+=" use_system_libdrm=true"
+ myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)"
+ myconf_gn+=" ozone_platform_x11=true"
+ myconf_gn+=" ozone_platform_headless=true"
+ if use wayland; then
+ myconf_gn+=" use_system_minigbm=true use_xkbcommon=true"
+ myconf_gn+=" ozone_platform=\"wayland\""
+ else
+ myconf_gn+=" ozone_platform=\"x11\""
+ fi
+ else
+ myconf_gn+=" ozone_platform=\"headless\""
+ fi
+ fi
+
+ if use screencast; then
+ myconf_gn+=" rtc_use_pipewire=true rtc_link_pipewire=true"
+ myconf_gn+=" rtc_use_pipewire_version=\"0.3\""
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ if use memsaver; then
+ # limit number of jobs based on available memory:
+ mem=$(grep ^MemTotal /proc/meminfo | awk '{print $2}')
+ jobs=$((mem/2500000))
+ if [ ${jobs} -lt 1 ]; then
+ jobs=-j1
+ else
+ jobs=-j${jobs}
+ fi
+ einfo "Using jobs setting of ${jobs}"
+ else
+ jobs=""
+ einfo "Using default Portage jobs setting."
+ fi
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # https://bugs.gentoo.org/717456
+ # Use bundled xcb-proto, because system xcb-proto doesn't have Python 2.7 support
+ local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0:${WORKDIR}/xcb-proto-${XCB_PROTO_VERSION}${PYTHONPATH+:}${PYTHONPATH}"
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja ${jobs} -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja ${jobs} -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ eninja ${jobs} -C out/Release chrome chromedriver
+ use suid && eninja ${jobs} -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ ozone_auto_session () {
+ use ozone && use wayland && ! use headless && echo true || echo false
+ }
+ local sedargs=( -e
+ "s:/usr/lib/:/usr/$(get_libdir)/:g;
+ s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
+ )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r4.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ if use vaapi; then
+ insinto /usr/share/drirc.d
+ newins "${FILESDIR}"/01-chromium.conf 01-chromium.conf
+ fi
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ (
+ shopt -s nullglob
+ local files=(out/Release/*.so)
+ [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+ )
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
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