remove unmaintained electron ebuilds
This commit is contained in:
parent
06f5fcacd7
commit
e130920b57
@ -1,12 +0,0 @@
|
||||
DIST electron-bin-6.1.6-arm64.zip 62660803 BLAKE2B 1d6a4e4c5fb714a4d8479b3b467d36cbdd801b524987fe3bb28b00ab0eed7b8b9dde05e220e234f1fe1a88c527b7c3b7f2d69cfaf0e3635bf15638184a412458 SHA512 948053c929dcd2f64854b337568c1cfb687f778526fdedd845a50463a18d322941e6f62ae8113124588a1e90c6c6c1a5d7fab5afacdfdee6185f0e1e00d67626
|
||||
DIST electron-bin-6.1.6-armv7l.zip 54848895 BLAKE2B 49333d48752622a2267de13d2275ae027b1e91ccad1ae42c6d5772882f84e776c4dfc37750050a9786ab8a08a2914abc4815fd986f5ad24568e7a3defc37b575 SHA512 11ef0e71df3d47dfd65c3f4aae84f1638dd772c87c52608d3cc2d833b44d3b1d4d14c5edb299d9abf9379129edba8b2862d8944152d7d25752d81d4f7f622cbe
|
||||
DIST electron-bin-6.1.6-ia32.zip 63278524 BLAKE2B 059c53db334af5daa651ee9c57fe0ba6cef04eccdb778aa2e281aa8dc43468634587ce91442cb4c53bdba489827a258eda3ccd89816c272bc23c97698e721c1a SHA512 f4860df4042e3751b28354368bc81191520cab58fe5f3db7cd9d715b7b8ea1cf2db1f0d510aabc2e6b40ddda6ca5d04f61b48644704dd429f5ca824e6d75a7d2
|
||||
DIST electron-bin-6.1.6-x64.zip 62392920 BLAKE2B 304dc2eb6a4251b85fb911664ae8ee68e0caf5c3314c3e7144efc201030b323abbe866caa2f9dfea050c95b2bce057533a5f1d8f9fc92e7671a51a83481682b5 SHA512 8307e220c1baee4bf86ed629e992a8c4749c8e17b1ac326f02c60615bea99110f28db57bf279e4cc893230b610d381cd8cc17dcc0eab56290a5be295b062ed95
|
||||
DIST electron-bin-7.2.1-arm64.zip 68361558 BLAKE2B dfde8f50a1f6c0513004826d39bb1c2a86e71421c68a23ed03d7a4a5b4d7ced7fd031f63f84479feeb5e1327b136d09823f1413ba930ded9a53ae3595a90f250 SHA512 fa083cdc01cc9389f8fbfae7fe4bd07b567724d9cbb0760278a028520718bda4a056f6842fd01e0b16f0f32e50806902ea0e917854405548a3b3069308839116
|
||||
DIST electron-bin-7.2.1-armv7l.zip 61045990 BLAKE2B 017e6da898fb8d0ea04755151bce804dcd473959c8fe8a4a0aa356bc7341853ee90db824d44784f0fcd6c92f27c5cafdbbe72367294cd0bf8d76aad170c688a7 SHA512 e247c443e7dd4ac8530b5886681ded6c5cef8bbc34256824ea709b9703329949b30115c6560deb6a1dd3e0651e341b9b488f20838778daea0f041b8855834dc6
|
||||
DIST electron-bin-7.2.1-ia32.zip 70734260 BLAKE2B af3d677f878139c6820b548d9ce4173b2bb8acc7718c0d2d9d9551b6ffe9cb766c2948092d6fa9ae7c1f35589cae100be87272ef3e00705da98e12645e51c121 SHA512 e67b15ea70cd327f2890a6fd20bde1aad4ceb4c494d0425feba3e140ccc6b505855d52f0263f0c5fa076d849728ac45dae6fcfa5e662cb980d17cf812a589a19
|
||||
DIST electron-bin-7.2.1-x64.zip 69198613 BLAKE2B df08920fb262adb32ed11ca501cf24d3d6c3afd4a254ab78192e9667757c132a550c561cc83910b88029e4443b0c9bcec215846f79ec3a4f5a6705fde7a14916 SHA512 d663342fe1d4550cbd8246835c95cda0ea3e38276a4f4433d264062428ecfae5a90a358d4e04b0311f08e3b80d3a206e2df29dc4f7d03a1b95573ad6b8c15437
|
||||
DIST electron-bin-8.2.0-arm64.zip 70241179 BLAKE2B 71bf1fc38ec3699c4e1a07fb7896aeff036fe1304988efb181ef4a71b935a8ea728429bb5cc7c32174e3ec4c397e2fa39a72021b3b5b637a4044582c80a84e6e SHA512 12f05bdae878162ccdc32f25ec2673b1343d04a147e71513f5e92208ae481ee5e384e63682e136fcb5b24b4e1498a000f318b0677971de8ca30df7dca4ccbe78
|
||||
DIST electron-bin-8.2.0-armv7l.zip 62133601 BLAKE2B 414dad5d34bb7cb2aeb96fc5dcf2fbcefec53a4a6b6b0ec6fe7de765525c32fb695cafa2206038fbe4d82f2e3abd15ba79e95bde2be970874f2af114c93638cf SHA512 c817b17a34d52ba2dff31e622bafb3817736cb9b24fd96fba422e8698b168cd7adb98e83c4092065e69fcd103572e0145d9b51413e262ad25e2c9715a33fe430
|
||||
DIST electron-bin-8.2.0-ia32.zip 72309778 BLAKE2B b6fe68fea69e7e58dabef145b3779ee423794e5221f2d16ccfc32dc106dc2f5559e7a2a3d92837e4fbb2a0a63bb3bff73d201a47156814003c380c4a8034630b SHA512 8221cc2631e84d3bda9a1bad1f85439c4b51700140e33907921d90ad0be0d324039ff02fc409fb14bb376bc45f66160bf6cfc6646de5782506be92ce14381d31
|
||||
DIST electron-bin-8.2.0-x64.zip 71368591 BLAKE2B d7e4ee7711a8ae4429fb6d3306f92dac459fcc9540747146a7fba316dbd1533b5c14ef337b3abfd0f58bdb4babd10de31a5602d751dcc88fd3e834a25a2a4291 SHA512 87eafe8af44dca31c59f9c37f8a792a6b7813f46819afe591114d780dea2b0dc0a42d9a6df37ff3e68c1b84c44b63eaa47bc490446650e9efc019fa875fea319
|
||||
@ -1,97 +0,0 @@
|
||||
# Copyright 2019 rexy712
|
||||
# Distributed under the terms of the GNU General Public License v3
|
||||
|
||||
EAPI=7
|
||||
|
||||
CHROMIUM_LANGS="
|
||||
am ar bg bn ca cs da de el en-GB en-US 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 chromium-2
|
||||
|
||||
MY_PN="electron-bin"
|
||||
MY_TR_PN="electron"
|
||||
VERSION_MAJ="6"
|
||||
VERSION_MIN="1"
|
||||
SRC_URI_BASE="https://github.com/electron/electron/releases/download"
|
||||
DESCRIPTION="Cross platform application development framework based on web technologies"
|
||||
HOMEPAGE="https://electron.atom.io"
|
||||
SRC_URI="
|
||||
amd64? ( ${SRC_URI_BASE}/v${PV}/${MY_TR_PN}-v${PV}-linux-x64.zip -> ${MY_PN}-${PV}-x64.zip )
|
||||
arm? ( ${SRC_URI_BASE}/v${PV}/${MY_TR_PN}-v${PV}-linux-armv7l.zip -> ${MY_PN}-${PV}-armv7l.zip )
|
||||
arm64? ( ${SRC_URI_BASE}/v${PV}/${MY_TR_PN}-v${PV}-linux-arm64.zip -> ${MY_PN}-${PV}-arm64.zip )
|
||||
x86? ( ${SRC_URI_BASE}/v${PV}/${MY_TR_PN}-v${PV}-linux-ia32.zip -> ${MY_PN}-${PV}-ia32.zip )
|
||||
"
|
||||
RESTRICT="mirror"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="6/1"
|
||||
KEYWORDS="-* ~amd64 ~arm ~arm64 ~x86"
|
||||
|
||||
IUSE="+suid"
|
||||
|
||||
RDEPEND="
|
||||
dev-libs/atk
|
||||
dev-libs/expat
|
||||
dev-libs/glib:2
|
||||
dev-libs/nss
|
||||
media-gfx/graphite2
|
||||
media-libs/alsa-lib
|
||||
media-libs/fontconfig:1.0
|
||||
media-libs/libepoxy
|
||||
media-libs/libpng
|
||||
net-print/cups
|
||||
sys-apps/dbus
|
||||
virtual/opengl
|
||||
x11-libs/cairo
|
||||
x11-libs/gdk-pixbuf:2
|
||||
x11-libs/gtk+:3
|
||||
x11-libs/libxcb
|
||||
x11-libs/libXScrnSaver
|
||||
x11-libs/libXtst
|
||||
x11-libs/pango
|
||||
>=app-eselect/eselect-electron-next-2.2
|
||||
"
|
||||
DEPEND="
|
||||
!dev-util/electron-bin:6
|
||||
app-arch/unzip
|
||||
>=app-eselect/eselect-electron-next-2.2
|
||||
"
|
||||
|
||||
S="${WORKDIR}"
|
||||
|
||||
OPTPATH="opt/${MY_TR_PN}/${MY_PN}-${VERSION_MAJ}.${VERSION_MIN}"
|
||||
QA_PRESTRIPPED="${OPTPATH}/.*"
|
||||
|
||||
pkg_setup() {
|
||||
# Silence linux-info_pkg_setup()
|
||||
:;
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
pushd locales > /dev/null || die
|
||||
chromium_remove_language_paks
|
||||
popd > /dev/null || die
|
||||
default
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dodir "/${OPTPATH}"
|
||||
# Note: intentionally not using "doins" so that we preserve +x bits
|
||||
cp -r ./* "${ED}/${OPTPATH}" || die
|
||||
use suid && chmod 4755 "${ED}/${OPTPATH}/chrome-sandbox"
|
||||
|
||||
dosym "../../${OPTPATH}/electron" "/usr/bin/${MY_PN}-${VERSION_MAJ}.${VERSION_MIN}"
|
||||
}
|
||||
pkg_postinst() {
|
||||
if [ "$(eselect electron show)" == "(none)" ];then
|
||||
eselect electron set "${MY_PN}-${VERSION_MAJ}.${VERSION_MIN}"
|
||||
fi
|
||||
}
|
||||
pkg_postrm() {
|
||||
if [ "$(eselect electron show)" == "(none)" ];then
|
||||
eselect electron set 1
|
||||
fi
|
||||
}
|
||||
@ -1,97 +0,0 @@
|
||||
# Copyright 2019 rexy712
|
||||
# Distributed under the terms of the GNU General Public License v3
|
||||
|
||||
EAPI=7
|
||||
|
||||
CHROMIUM_LANGS="
|
||||
am ar bg bn ca cs da de el en-GB en-US 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 chromium-2
|
||||
|
||||
MY_PN="electron-bin"
|
||||
MY_TR_PN="electron"
|
||||
VERSION_MAJ="7"
|
||||
VERSION_MIN="2"
|
||||
SRC_URI_BASE="https://github.com/electron/electron/releases/download"
|
||||
DESCRIPTION="Cross platform application development framework based on web technologies"
|
||||
HOMEPAGE="https://electron.atom.io"
|
||||
SRC_URI="
|
||||
amd64? ( ${SRC_URI_BASE}/v${PV}/${MY_TR_PN}-v${PV}-linux-x64.zip -> ${MY_PN}-${PV}-x64.zip )
|
||||
arm? ( ${SRC_URI_BASE}/v${PV}/${MY_TR_PN}-v${PV}-linux-armv7l.zip -> ${MY_PN}-${PV}-armv7l.zip )
|
||||
arm64? ( ${SRC_URI_BASE}/v${PV}/${MY_TR_PN}-v${PV}-linux-arm64.zip -> ${MY_PN}-${PV}-arm64.zip )
|
||||
x86? ( ${SRC_URI_BASE}/v${PV}/${MY_TR_PN}-v${PV}-linux-ia32.zip -> ${MY_PN}-${PV}-ia32.zip )
|
||||
"
|
||||
RESTRICT="mirror"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="7/2"
|
||||
KEYWORDS="-* ~amd64 ~arm ~arm64 ~x86"
|
||||
|
||||
IUSE="+suid"
|
||||
|
||||
RDEPEND="
|
||||
dev-libs/atk
|
||||
dev-libs/expat
|
||||
dev-libs/glib:2
|
||||
dev-libs/nss
|
||||
media-gfx/graphite2
|
||||
media-libs/alsa-lib
|
||||
media-libs/fontconfig:1.0
|
||||
media-libs/libepoxy
|
||||
media-libs/libpng
|
||||
net-print/cups
|
||||
sys-apps/dbus
|
||||
virtual/opengl
|
||||
x11-libs/cairo
|
||||
x11-libs/gdk-pixbuf:2
|
||||
x11-libs/gtk+:3
|
||||
x11-libs/libxcb
|
||||
x11-libs/libXScrnSaver
|
||||
x11-libs/libXtst
|
||||
x11-libs/pango
|
||||
>=app-eselect/eselect-electron-next-2.2
|
||||
"
|
||||
DEPEND="
|
||||
!dev-util/electron-bin:7
|
||||
app-arch/unzip
|
||||
>=app-eselect/eselect-electron-next-2.2
|
||||
"
|
||||
|
||||
S="${WORKDIR}"
|
||||
|
||||
OPTPATH="opt/${MY_TR_PN}/${MY_PN}-${VERSION_MAJ}.${VERSION_MIN}"
|
||||
QA_PRESTRIPPED="${OPTPATH}/.*"
|
||||
|
||||
pkg_setup() {
|
||||
# Silence linux-info_pkg_setup()
|
||||
:;
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
pushd locales > /dev/null || die
|
||||
chromium_remove_language_paks
|
||||
popd > /dev/null || die
|
||||
default
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dodir "/${OPTPATH}"
|
||||
# Note: intentionally not using "doins" so that we preserve +x bits
|
||||
cp -r ./* "${ED}/${OPTPATH}" || die
|
||||
use suid && chmod 4755 "${ED}/${OPTPATH}/chrome-sandbox"
|
||||
|
||||
dosym "../../${OPTPATH}/electron" "/usr/bin/${MY_PN}-${VERSION_MAJ}.${VERSION_MIN}"
|
||||
}
|
||||
pkg_postinst() {
|
||||
if [ "$(eselect electron show)" == "(none)" ];then
|
||||
eselect electron set "${MY_PN}-${VERSION_MAJ}.${VERSION_MIN}"
|
||||
fi
|
||||
}
|
||||
pkg_postrm() {
|
||||
if [ "$(eselect electron show)" == "(none)" ];then
|
||||
eselect electron set 1
|
||||
fi
|
||||
}
|
||||
@ -1,97 +0,0 @@
|
||||
# Copyright 2019 rexy712
|
||||
# Distributed under the terms of the GNU General Public License v3
|
||||
|
||||
EAPI=7
|
||||
|
||||
CHROMIUM_LANGS="
|
||||
am ar bg bn ca cs da de el en-GB en-US 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 chromium-2
|
||||
|
||||
MY_PN="electron-bin"
|
||||
MY_TR_PN="electron"
|
||||
VERSION_MAJ="8"
|
||||
VERSION_MIN="2"
|
||||
SRC_URI_BASE="https://github.com/electron/electron/releases/download"
|
||||
DESCRIPTION="Cross platform application development framework based on web technologies"
|
||||
HOMEPAGE="https://electron.atom.io"
|
||||
SRC_URI="
|
||||
amd64? ( ${SRC_URI_BASE}/v${PV}/${MY_TR_PN}-v${PV}-linux-x64.zip -> ${MY_PN}-${PV}-x64.zip )
|
||||
arm? ( ${SRC_URI_BASE}/v${PV}/${MY_TR_PN}-v${PV}-linux-armv7l.zip -> ${MY_PN}-${PV}-armv7l.zip )
|
||||
arm64? ( ${SRC_URI_BASE}/v${PV}/${MY_TR_PN}-v${PV}-linux-arm64.zip -> ${MY_PN}-${PV}-arm64.zip )
|
||||
x86? ( ${SRC_URI_BASE}/v${PV}/${MY_TR_PN}-v${PV}-linux-ia32.zip -> ${MY_PN}-${PV}-ia32.zip )
|
||||
"
|
||||
RESTRICT="mirror"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="8/2"
|
||||
KEYWORDS="-* ~amd64 ~arm ~arm64 ~x86"
|
||||
|
||||
IUSE="+suid"
|
||||
|
||||
RDEPEND="
|
||||
dev-libs/atk
|
||||
dev-libs/expat
|
||||
dev-libs/glib:2
|
||||
dev-libs/nss
|
||||
media-gfx/graphite2
|
||||
media-libs/alsa-lib
|
||||
media-libs/fontconfig:1.0
|
||||
media-libs/libepoxy
|
||||
media-libs/libpng
|
||||
net-print/cups
|
||||
sys-apps/dbus
|
||||
virtual/opengl
|
||||
x11-libs/cairo
|
||||
x11-libs/gdk-pixbuf:2
|
||||
x11-libs/gtk+:3
|
||||
x11-libs/libxcb
|
||||
x11-libs/libXScrnSaver
|
||||
x11-libs/libXtst
|
||||
x11-libs/pango
|
||||
>=app-eselect/eselect-electron-next-2.2
|
||||
"
|
||||
DEPEND="
|
||||
!dev-util/electron-bin:8
|
||||
app-arch/unzip
|
||||
>=app-eselect/eselect-electron-next-2.2
|
||||
"
|
||||
|
||||
S="${WORKDIR}"
|
||||
|
||||
OPTPATH="opt/${MY_TR_PN}/${MY_PN}-${VERSION_MAJ}.${VERSION_MIN}"
|
||||
QA_PRESTRIPPED="${OPTPATH}/.*"
|
||||
|
||||
pkg_setup() {
|
||||
# Silence linux-info_pkg_setup()
|
||||
:;
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
pushd locales > /dev/null || die
|
||||
chromium_remove_language_paks
|
||||
popd > /dev/null || die
|
||||
default
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dodir "/${OPTPATH}"
|
||||
# Note: intentionally not using "doins" so that we preserve +x bits
|
||||
cp -r ./* "${ED}/${OPTPATH}" || die
|
||||
use suid && chmod 4755 "${ED}/${OPTPATH}/chrome-sandbox"
|
||||
|
||||
dosym "../../${OPTPATH}/electron" "/usr/bin/${MY_PN}-${VERSION_MAJ}.${VERSION_MIN}"
|
||||
}
|
||||
pkg_postinst() {
|
||||
if [ "$(eselect electron show)" == "(none)" ];then
|
||||
eselect electron set "${MY_PN}-${VERSION_MAJ}.${VERSION_MIN}"
|
||||
fi
|
||||
}
|
||||
pkg_postrm() {
|
||||
if [ "$(eselect electron show)" == "(none)" ];then
|
||||
eselect electron set 1
|
||||
fi
|
||||
}
|
||||
@ -1,23 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>rexerton.rexy@gmail.com</email>
|
||||
<name>rexy712</name>
|
||||
</maintainer>
|
||||
<upstream>
|
||||
<remote-id type="github">electron/electron</remote-id>
|
||||
<bugs-to>https://github.com/electron/electron/issues</bugs-to>
|
||||
<doc>https://electronjs.org/docs</doc>
|
||||
</upstream>
|
||||
<longdescription lang="en">
|
||||
Electron is an open source library developed by GitHub
|
||||
for building cross-platform desktop applications with
|
||||
HTML, CSS, and JavaScript. Electron accomplishes this
|
||||
by combining Chromium and Node.js into a single runtime
|
||||
and apps can be packaged for Mac, Windows, and Linux.
|
||||
</longdescription>
|
||||
<use>
|
||||
<flag name="suid">Build the SUID sandbox, which is only needed on CONFIG_USER_NS=n kernels</flag>
|
||||
</use>
|
||||
</pkgmetadata>
|
||||
@ -1,10 +0,0 @@
|
||||
DIST chromium-76.0.3809.136.tar.xz 728890936 BLAKE2B 1c605af9d60f306bbe29a11be5cd7d2680e65da0717f1da9a9067916ede4416b9472e69bd115ced9f4dceada36242554e7bab803bbc2b1b1da3c3ef35c2642ef SHA512 b595be91818cae808567aac35da793b8b58b0014f4c3bb2c3cd05e715ad5f2a15d053d5447fd424833774cba99a5f3282a4c921e99eb3405d3c7017c1a9dff22
|
||||
DIST chromium-78.0.3904.97.tar.xz 742793812 BLAKE2B e7fada913f5831d805a50445da41ecbca7e27af52574ce242f427c0e4c83a74ae0283eb1667d74d39eb88f05e88e5a389945628666e24e26d635f74c43c8bc55 SHA512 e29312fe5c15eb6888a2e4d7e197c710d53feeecdf4e534c59f3db26973fee13f48880b46a7c3b132bb9989eb617db9c6138b809c3cb762332a9db25ad6d33dc
|
||||
DIST chromium-80.0.3987.158.tar.xz 796918580 BLAKE2B 1cdbd4c22afee34035bcc10c5aab3ef2f977ab02d6afeb0d888bcb40f74c00413b77e37ec72d9a01bbefa4c3f2de92d372df6f91fe9ee7d7b18e014bb42567cd SHA512 c629c07e2464ccf44847643c62e33b796f35b5afec38a26fa25df914cfb823ed751467bba445b61a8be1433f24d8f18a74ced49108622f6d4b9e4559ac8e22dd
|
||||
DIST electron-next-6.1.4.tar.gz 4152215 BLAKE2B 4d2b4ca2b3de2d08a444706af272fc7d9fcbf307a23940e9027c547ffad5db7bac883855dc3fa3519595baef92c2ba7818697fd9c2e25f854b389bf7969c6099 SHA512 cf91159587e5760b6df11da8239f9ff5146c7997f938dd63e7a1e0233c224bf4cd37a7db57860c3740ab539778988ff152df90ebae88559183834888f850f6d5
|
||||
DIST electron-next-7.1.1.tar.gz 5344054 BLAKE2B 7265a3c8d3ad83a57c876aa064a042903c10e05915238927a75e09e2c294307371e3cbe6a0e295bd755d82d3f01add8366600a71f743b1c3300af2c061dc3f26 SHA512 944b33568c21ef07b3cdeba76ce3c6ac9517c8c63cda4104e35dd6f1dd07dbab7bc5829617a54f76990a76d33646bac93fb89ea52852f9cc7e86075793545d72
|
||||
DIST electron-next-7.2.1.tar.gz 5396136 BLAKE2B 625d3a9bc999148e6381c61f6c03253fef1716ba9423fb60dce9bf2f9510274f3e89f34032d2e57770d394b845e86078960489514504469097dbac1a5df94009 SHA512 95b1c83776919fb10de5cbb83216a97d2281d2d7932a5f462d5d791e8115d7c98720ee3a4fc5e97f0d06adace60d88adf1d952dd3ea0bc0fbc544ccdcfcf1677
|
||||
DIST electron-next-8.2.0.tar.gz 5428140 BLAKE2B ee5933bfd4f854df8fad1347bd21af183663890a22edaf9477a723188214e4672d2b4ff070b450e0b5fbb91ce10aa12bd6733bc07542daf78c6654d32915cd75 SHA512 952ac3c50f4f3629e39572a2133df97b717baa81b8387679de279828a22694a386847a603fa30b1b7859300403c6e9c9210fb77f4b203b1ea3406978b082eeb9
|
||||
DIST node-12.13.0.tar.gz 72661495 BLAKE2B c67fb623de6e1efe59714b5fe86b20ee32b44e7eb95d19a2a40c9c54570b3c79a4e6e65003154fb17c81d091f8bf319df4bb1cc1f4f85c0c44f641183fe7dd0c SHA512 4698b7f9fed657ca1707c33dbf5892dea396c3e049ece38e77db02ce80573ee1ad548d1103cdc963861d814288e579ae6332f9885258d511c4861df9ce40b7c3
|
||||
DIST node-12.4.0.tar.gz 70296027 BLAKE2B 9fb09be463714b326e3e75787b20a46974358010b04b0709c2ba655d3c78e1bbd22af1f6b5a978bc2b7acce9f745e66eca42c321da8242f83b489522d425fbaf SHA512 1fb97d96cea3ec74a5fc81566d9f5289056ca56ad3d1bf3470edd27c7e7f025294832e1604e3acfaab1e8fcc87d9f47eca21d53655cd8433020771e393495a18
|
||||
DIST node-12.8.1.tar.gz 72104419 BLAKE2B e3bfdc0b4b5f049c685008a55913cf415591ed8fc1d3a0ed6ee9b5b98777c7638b78c21dd2d0f74a026310098b954d821c4eb7f82be201d2a70b47c3bd854206 SHA512 17d8d33a5c4154d6d0c1ce09b933a6ac0986242335fb6c45a4c1ed4190aede9bc08dbcb537d8547c5f53c15958e323bb26e6eefd51b139835e6825b45d73efa4
|
||||
@ -1,677 +0,0 @@
|
||||
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 multilib ninja-utils python-any-r1 toolchain-funcs flag-o-matic pax-utils llvm
|
||||
|
||||
#META
|
||||
VERSION_MAJ="6"
|
||||
VERSION_MIN="1"
|
||||
|
||||
DESCRIPTION="Cross platform application development framework based on web technologies"
|
||||
HOMEPAGE="https://electronjs.org/"
|
||||
LICENSE="MIT"
|
||||
SLOT="6/1"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
IUSE="cups custom-cflags gconf gnome-keyring kerberos proxy pulseaudio
|
||||
+system-ffmpeg +system-libvpx +system-ssl component-build
|
||||
proprietary-codecs jumbo-build tcmalloc +suid debug"
|
||||
|
||||
REQUIRED_USE="debug? ( component-build )"
|
||||
|
||||
RESTRICT="
|
||||
!system-ffmpeg? ( proprietary-codecs? ( bindist ) )
|
||||
component-build? ( tcmalloc? ( usersandbox ) )
|
||||
network-sandbox
|
||||
"
|
||||
|
||||
|
||||
#DEPS
|
||||
COMMON_DEPEND="
|
||||
>=app-eselect/eselect-electron-next-2.2
|
||||
cups? ( >=net-print/cups-2.2:= )
|
||||
dev-libs/expat:=
|
||||
dev-libs/glib:2
|
||||
>=dev-libs/icu-64:=
|
||||
dev-libs/libxml2:=[icu]
|
||||
dev-libs/libxslt:=
|
||||
dev-libs/nspr:=
|
||||
>=dev-libs/nss-3.40.1:=
|
||||
system-ssl? ( >=dev-libs/openssl-1.1.1d-r2:= )
|
||||
dev-libs/re2:=
|
||||
gconf? ( >=gnome-base/gconf-3.2.6-r4:= )
|
||||
gnome-keyring? ( >=gnome-base/libgnome-keyring-3.28.2:= )
|
||||
>=media-libs/alsa-lib-1.1.2:=
|
||||
media-libs/fontconfig:=
|
||||
media-libs/freetype:=
|
||||
>=media-libs/harfbuzz-2.6.1:=[icu]
|
||||
media-libs/libexif:=
|
||||
media-libs/libjpeg-turbo:=
|
||||
media-libs/libpng:=
|
||||
system-libvpx? ( >=media-libs/libvpx-1.8.0:=[postproc,svc] )
|
||||
>=media-libs/openh264-1.7.0:=
|
||||
pulseaudio? ( media-sound/pulseaudio:= )
|
||||
system-ffmpeg? (
|
||||
>=media-video/ffmpeg-4:=
|
||||
|| (
|
||||
media-video/ffmpeg[-samba]
|
||||
>=net-fs/samba-4.8.6-r2[-debug(-)]
|
||||
)
|
||||
media-libs/opus:=
|
||||
)
|
||||
>=net-dns/c-ares-1.13.0:=
|
||||
>=net-libs/nghttp2-1.39.2:=
|
||||
net-misc/curl:=[ssl]
|
||||
sys-apps/dbus:=
|
||||
sys-apps/pciutils:=
|
||||
virtual/udev
|
||||
x11-libs/cairo:=
|
||||
x11-libs/gdk-pixbuf:2
|
||||
x11-libs/gtk+:3[X]
|
||||
x11-libs/libdrm
|
||||
x11-libs/libnotify:=
|
||||
x11-libs/libX11:=
|
||||
x11-libs/libXcomposite:=
|
||||
x11-libs/libXcursor:=
|
||||
x11-libs/libXdamage:=
|
||||
x11-libs/libXext:=
|
||||
x11-libs/libXfixes:=
|
||||
x11-libs/libXi:=
|
||||
x11-libs/libXrandr:=
|
||||
x11-libs/libXrender:=
|
||||
x11-libs/libXScrnSaver:=
|
||||
x11-libs/libXtst:=
|
||||
x11-libs/pango:=
|
||||
app-arch/snappy:=
|
||||
media-libs/flac:=
|
||||
media-libs/libwebp:=
|
||||
sys-libs/zlib:=[minizip]
|
||||
kerberos? ( virtual/krb5 )
|
||||
sys-libs/libcap:=
|
||||
"
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
x11-misc/xdg-utils
|
||||
virtual/opengl
|
||||
virtual/ttf-fonts
|
||||
tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
|
||||
"
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
!dev-util/electron:6
|
||||
>=app-arch/gzip-1.9
|
||||
app-arch/xz-utils
|
||||
!arm? ( dev-lang/yasm )
|
||||
dev-lang/perl
|
||||
>=dev-util/gn-0.1463
|
||||
>=dev-util/gperf-3.0.4
|
||||
>=dev-util/ninja-1.8.2
|
||||
>=net-libs/nodejs-12.13.0
|
||||
sys-apps/hwids[usb]
|
||||
>=sys-devel/bison-3.1
|
||||
sys-devel/flex
|
||||
virtual/pkgconfig
|
||||
dev-vcs/git
|
||||
amd64? ( >=sys-devel/gcc-6.4.0[multilib] )
|
||||
sys-devel/clang[xml]
|
||||
>=dev-util/gperf-3.0.4:=
|
||||
"
|
||||
llvm_check_deps() {
|
||||
has_version -b "sys-devel/clang:${LLVM_SLOT}"
|
||||
}
|
||||
|
||||
#PACKAGE VERSIONS/EXTRACTION LOCATIONS
|
||||
CHROMIUM_VERSION="76.0.3809.136"
|
||||
CHROMIUM_P="chromium-${CHROMIUM_VERSION}"
|
||||
CHROMIUM_S="${WORKDIR}/chromium"
|
||||
|
||||
S="${CHROMIUM_S}/electron"
|
||||
|
||||
UPSTREAM_P="electron-${PV}"
|
||||
|
||||
NODE_VERSION="12.4.0"
|
||||
NODE_P="node-${NODE_VERSION}"
|
||||
NODE_S="${S}/vendor/node"
|
||||
|
||||
#deps included with chromium
|
||||
BORINGSSL_S="${CHROMIUM_S}/third_party/boringssl"
|
||||
PERFETTO_S="${CHROMIUM_S}/third_party/perfetto"
|
||||
FFMPEG_S="${CHROMIUM_S}/third_party/ffmpeg"
|
||||
V8_S="${CHROMIUM_S}/v8"
|
||||
|
||||
#PATCHES
|
||||
CHROMIUM_PATCHES=(
|
||||
"${FILESDIR}/chromium-78-use-system-libraries-in-official-build.patch"
|
||||
"${FILESDIR}/chromium-76-xlib-name-clash.patch"
|
||||
"${FILESDIR}/chromium-78-blink-includes.patch"
|
||||
)
|
||||
PATCHES=(
|
||||
"${FILESDIR}/electron-6.1.4-fix-chromium-viz-osr-patch.patch"
|
||||
)
|
||||
|
||||
SRC_URI="
|
||||
https://github.com/electron/electron/archive/v${PV}.tar.gz -> ${P}.tar.gz
|
||||
https://storage.googleapis.com/chromium-browser-official/${CHROMIUM_P}.tar.xz
|
||||
https://github.com/nodejs/node/archive/v${NODE_VERSION}.tar.gz -> ${NODE_P}.tar.gz
|
||||
"
|
||||
|
||||
_get_target_arch() {
|
||||
local myarch="$(tc-arch)"
|
||||
local target_arch=
|
||||
|
||||
if [ "${myarch}" == "amd64" ];then
|
||||
target_arch="x64"
|
||||
elif [ "${myarch}" == "x86" ];then
|
||||
target_arch="ia32"
|
||||
elif [ "${myarch}" == "arm64" ];then
|
||||
target_arch="arm64"
|
||||
elif [ "${myarch}" == "arm" ];then
|
||||
target_arch="arm"
|
||||
else
|
||||
die "Failed to determine architecture. Got '$myarch'."
|
||||
fi
|
||||
echo -n "${target_arch}"
|
||||
}
|
||||
_get_install_suffix() {
|
||||
echo -n "-${VERSION_MAJ}.${VERSION_MIN}"
|
||||
}
|
||||
_get_install_dir() {
|
||||
echo -n "/usr/$(get_libdir)/electron$(_get_install_suffix)"
|
||||
}
|
||||
|
||||
pre_build_checks() {
|
||||
if has usersandbox ${FEATURES} && use tcmalloc && use component-build;then
|
||||
die "Component build with tcmalloc requires FEATURES=-usersandbox"
|
||||
fi
|
||||
#17GB needed for final link to succeed
|
||||
if use component-build;then
|
||||
CHECKREQS_MEMORY="3G"
|
||||
else
|
||||
CHECKREQS_MEMORY="17G"
|
||||
fi
|
||||
CHECKREQS_DISK_BUILD="9G"
|
||||
check-reqs_pkg_setup
|
||||
}
|
||||
pkg_pretend() {
|
||||
pre_build_checks
|
||||
}
|
||||
pkg_setup() {
|
||||
python-any-r1_pkg_setup
|
||||
llvm_pkg_setup
|
||||
chromium_suid_sandbox_check_kernel_config
|
||||
}
|
||||
src_unpack() {
|
||||
unpack "${P}.tar.gz" || die
|
||||
unpack "${CHROMIUM_P}.tar.xz" || die
|
||||
unpack "${NODE_P}.tar.gz" || die
|
||||
mv "${CHROMIUM_P}" "${CHROMIUM_S}" || die
|
||||
mv "${UPSTREAM_P}" "${S}" || die
|
||||
mv "${NODE_P}" "${NODE_S}" || die
|
||||
}
|
||||
do_patches() {
|
||||
local dir="$1"
|
||||
local patchloc="$2"
|
||||
pushd "$dir" > /dev/null 2>&1 || die
|
||||
local patchlist=( $(cat "${patchloc}/.patches") )
|
||||
for file in "${patchlist[@]}";do
|
||||
eapply -p1 "${file/#/${patchloc}/}" || die
|
||||
done
|
||||
popd > /dev/null 2>&1 || die
|
||||
}
|
||||
src_prepare() {
|
||||
python_setup
|
||||
|
||||
cd "${S}"
|
||||
if ! use proxy;then
|
||||
my_proxy=""
|
||||
else
|
||||
my_proxy="$http_proxy"
|
||||
fi
|
||||
http_proxy="$my_proxy" yarn install || die "Yarn module installation failed"
|
||||
|
||||
|
||||
#apply electron patches
|
||||
if declare -p PATCHES | grep -q "^declare -a "; then
|
||||
[[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}"
|
||||
else
|
||||
[[ -n ${PATCHES} ]] && eapply ${PATCHES}
|
||||
fi
|
||||
|
||||
#apply electron bundled patches
|
||||
do_patches "${CHROMIUM_S}" "${S}/patches/common/chromium"
|
||||
do_patches "${NODE_S}" "${S}/patches/node"
|
||||
do_patches "${FFMPEG_S}" "${S}/patches/common/ffmpeg"
|
||||
do_patches "${BORINGSSL_S}/src" "${S}/patches/common/boringssl"
|
||||
do_patches "${V8_S}" "${S}/patches/common/v8"
|
||||
|
||||
#ensure node uses the correct v8
|
||||
rm -r "${NODE_S}/deps/v8" || die
|
||||
ln -s "${CHROMIUM_S}/v8" "${NODE_S}/deps/" || die
|
||||
|
||||
#setup link to node for chromium
|
||||
mkdir -p "${CHROMIUM_S}/third_party/node/linux/node-linux-x64/bin" || die
|
||||
ln -s "${EPREFIX}/usr/bin/node" "${CHROMIUM_S}/third_party/node/linux/node-linux-x64/bin/node" || die
|
||||
|
||||
#libs in chromium source tree we need to keep
|
||||
local keeplibs=(
|
||||
base/third_party/cityhash
|
||||
base/third_party/dmg_fp
|
||||
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/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/boringssl/src/third_party/sike
|
||||
third_party/boringssl/linux-aarch64/crypto/third_party/sike
|
||||
third_party/boringssl/linux-x86_64/crypto/third_party/sike
|
||||
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/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/dom_distiller_js
|
||||
third_party/emoji-segmenter
|
||||
third_party/flatbuffers
|
||||
third_party/flot
|
||||
third_party/freetype
|
||||
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/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/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/lss
|
||||
third_party/lzma_sdk
|
||||
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/openscreen
|
||||
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/protobuf
|
||||
third_party/protobuf/third_party/six
|
||||
third_party/pyjson5
|
||||
third_party/qcms
|
||||
third_party/rnnoise
|
||||
third_party/s2cellid
|
||||
third_party/sfntly
|
||||
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/gif
|
||||
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/llvm-7.0
|
||||
third_party/swiftshader/third_party/llvm-subzero
|
||||
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/fft4g
|
||||
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/zlib/google
|
||||
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
|
||||
third_party/yasm/run_yasm.py
|
||||
)
|
||||
if ! use system-ffmpeg;then
|
||||
keeplibs+=( third_party/ffmpeg third_party/opus )
|
||||
fi
|
||||
if ! use system-libvpx;then
|
||||
keeplibs+=( third_party/libvpx )
|
||||
keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
|
||||
fi
|
||||
if use tcmalloc;then
|
||||
keeplibs+=( third_party/tcmalloc )
|
||||
fi
|
||||
|
||||
cd "${CHROMIUM_S}" || die
|
||||
|
||||
#remove unneeded libraries from chromium tree
|
||||
ebegin "Unbundling libraries"
|
||||
build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
|
||||
eend
|
||||
|
||||
#apply patches to chromium
|
||||
eapply "${CHROMIUM_PATCHES[@]}" || die
|
||||
|
||||
ln -s "${NODE_S}" "${CHROMIUM_S}/third_party/electron_node" || die
|
||||
|
||||
cd "${S}" || die
|
||||
|
||||
#Make sure we use python2.7
|
||||
python_setup
|
||||
|
||||
eapply_user
|
||||
}
|
||||
src_configure() {
|
||||
python_setup
|
||||
|
||||
#CHROMIUM
|
||||
cd "${CHROMIUM_S}" || die
|
||||
|
||||
local gn_system_libraries=(
|
||||
flac
|
||||
fontconfig
|
||||
freetype
|
||||
harfbuzz-ng
|
||||
icu
|
||||
libdrm
|
||||
libjpeg
|
||||
libpng
|
||||
libwebp
|
||||
libxml
|
||||
libxslt
|
||||
openh264
|
||||
re2
|
||||
snappy
|
||||
yasm
|
||||
zlib
|
||||
)
|
||||
if use system-ffmpeg;then
|
||||
gn_system_libraries+=( ffmpeg opus )
|
||||
fi
|
||||
if use system-libvpx;then
|
||||
gn_system_libraries+=( libvpx )
|
||||
fi
|
||||
local llvm_prefix="$(get_llvm_prefix -b)"
|
||||
local myconf_gn="import(\"//electron/build/args/$(usex debug debug release).gn\") clang_base_path=\"${llvm_prefix}/bin/\""
|
||||
|
||||
tc-export AR CC CXX NM
|
||||
|
||||
if ! tc-is-clang;then
|
||||
einfo "Using ${llvm_prefix}/bin/${CHOST}-clang++ for compilation..."
|
||||
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
|
||||
ewarn "Using a compiler other than clang is unsupported and will likely result in errors!"
|
||||
myconf_gn+=" is_clang=false"
|
||||
fi
|
||||
|
||||
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
|
||||
|
||||
myconf_gn+=" is_debug=$(usex debug true false)"
|
||||
myconf_gn+=" is_component_build=$(usex component-build true false)"
|
||||
myconf_gn+=" is_official_build=$(usex component-build false $(usex debug false true))"
|
||||
|
||||
myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
|
||||
myconf_gn+=" use_allocator=\"$(usex tcmalloc tcmalloc none)\""
|
||||
myconf_gn+=" enable_nacl=false"
|
||||
|
||||
myconf_gn+=" use_system_harfbuzz=true"
|
||||
myconf_gn+=" use_cups=$(usex cups true false)"
|
||||
myconf_gn+=" use_gio=$(usex gconf true false)"
|
||||
myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
|
||||
myconf_gn+=" use_kerberos=$(usex kerberos true false)"
|
||||
myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
|
||||
#prevent chromium from generating incompatible shims for pulse
|
||||
myconf_gn+=" link_pulseaudio=$(usex pulseaudio true false)"
|
||||
|
||||
myconf_gn+=" icu_use_data_file=false"
|
||||
myconf_gn+=" fieldtrial_testing_like_official_build=true"
|
||||
myconf_gn+=" use_gold=false use_sysroot=false"
|
||||
myconf_gn+=" linux_use_bundled_binutils=false use_custom_libcxx=false"
|
||||
myconf_gn+=" use_lld=false"
|
||||
myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
|
||||
myconf_gn+=" ffmpeg_branding=\"$(usex proprietary-codecs Chrome Chromium)\""
|
||||
|
||||
myconf_gn+=" use_official_google_api_keys=false"
|
||||
myconf_gn+=" google_api_key=\"\""
|
||||
myconf_gn+=" google_default_client_id=\"\""
|
||||
myconf_gn+=" google_default_client_secret=\"\""
|
||||
|
||||
myconf_gn+=" treat_warnings_as_errors=false"
|
||||
myconf_gn+=" fatal_linker_warnings=false"
|
||||
myconf_gn+=" is_electron_build=true"
|
||||
|
||||
|
||||
build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
|
||||
|
||||
local target_arch=$(_get_target_arch)
|
||||
local ffmpeg_target_arch="${target_arch}"
|
||||
|
||||
if ! use custom-cflags;then
|
||||
replace-flags "-Os" "-O2"
|
||||
append-cxxflags $(test-flags-CXX -Wno-unknown-warning-option)
|
||||
append-cxxflags $(test-flags-CXX -Wno-invalid-offsetof)
|
||||
append-cxxflags $(test-flags-CXX -Wno-return-type)
|
||||
append-cxxflags $(test-flags-CXX -Wno-unused-variable)
|
||||
strip-flags
|
||||
|
||||
if use x86;then
|
||||
filter-flags "-g*"
|
||||
fi
|
||||
|
||||
if [ "${target_arch}" == "x64" ] || [ "${target_arch}" == "ia32" ];then
|
||||
filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
|
||||
fi
|
||||
fi
|
||||
|
||||
if ! use system-ffmpeg;then
|
||||
local build_ffmpeg_args=""
|
||||
einfo "Configuring bundled ffmpeg..."
|
||||
pushd "${CHROMIUM_S}/third_party/ffmpeg" > /dev/null 2>&1 || 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 2>&1 || die
|
||||
fi
|
||||
|
||||
export TMPDIR="${WORKDIR}/temp"
|
||||
mkdir -p -m 755 "${TMPDIR}" || die
|
||||
|
||||
addpredict /dev/dri/
|
||||
|
||||
#NODE
|
||||
einfo "Configuring bundled nodejs..."
|
||||
pushd "${NODE_S}" > /dev/null 2>&1 || die
|
||||
./configure --shared --without-bundled-v8 \
|
||||
--shared-openssl --shared-http-parser --shared-zlib \
|
||||
--shared-nghttp2 --shared-cares --without-npm --with-intl=system-icu \
|
||||
--without-dtrace --dest-cpu=${target_arch} --prefix="" || die
|
||||
popd > /dev/null 2>&1 || die
|
||||
|
||||
set -- gn gen --args="${myconf_gn} ${EXTRA_GN} ${GN_EXTRA_ARGS}" out/Release
|
||||
echo "$@"
|
||||
"$@" || die
|
||||
sed -i -e "s/python /${EPYTHON} /g" out/Release/toolchain.ninja || die
|
||||
|
||||
cd "${S}" || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
python_setup
|
||||
|
||||
cd "${CHROMIUM_S}" || die
|
||||
eninja -C out/Release electron || die
|
||||
einfo "Electron built successfully"
|
||||
|
||||
if ! use debug;then
|
||||
electron/script/strip-binaries.py -d out/Release || die
|
||||
fi
|
||||
eninja -C out/Release electron:electron_dist_zip || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local install_dir="$(_get_install_dir)"
|
||||
local install_suffix="$(_get_install_suffix)"
|
||||
|
||||
pushd "${CHROMIUM_S}/out/Release/locales" > /dev/null 2>&1 || die
|
||||
chromium_remove_language_paks
|
||||
popd > /dev/null 2>&1 || die
|
||||
|
||||
cd "${CHROMIUM_S}/out/Release" || die
|
||||
|
||||
dodir "${install_dir}"
|
||||
pushd "${ED}/${install_dir}" > /dev/null 2>&1 || die
|
||||
unpack "${CHROMIUM_S}/out/Release/dist.zip" || die
|
||||
popd > /dev/null 2>&1 || die
|
||||
|
||||
if [ -e "${ED}/${install_dir}/chrome-sandbox" ];then
|
||||
use suid && chmod 4755 "${ED}/${install_dir}/chrome-sandbox"
|
||||
fi
|
||||
|
||||
dodir "/usr/bin" || die
|
||||
dosym "../$(get_libdir)/electron${install_suffix}/electron" "/usr/bin/electron${install_suffix}" || die
|
||||
|
||||
HEADERS_ONLY=1 \
|
||||
"${NODE_S}/tools/install.py" install "${ED}" "/usr" || die
|
||||
dodir /usr/include/node/deps/{v8,uv} || die
|
||||
dosym . /usr/include/node/src || die
|
||||
for var in deps/{uv,v8}/include;do
|
||||
dosym "../.." "/usr/include/node/${var}" || die
|
||||
done
|
||||
|
||||
dodir "/usr/include/electron${install_suffix}" || die
|
||||
mv "${ED}/usr/include/node" "${ED}/usr/include/electron${install_suffix}/node" || die
|
||||
}
|
||||
pkg_postinst() {
|
||||
if [ "$(eselect electron show)" == "(none)" ];then
|
||||
eselect electron set "${PN}-${VERSION_MAJ}.${VERSION_MIN}"
|
||||
fi
|
||||
}
|
||||
pkg_postrm() {
|
||||
if [ "$(eselect electron show)" == "(none)" ];then
|
||||
eselect electron set 1
|
||||
fi
|
||||
}
|
||||
@ -1,691 +0,0 @@
|
||||
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 multilib ninja-utils python-any-r1 toolchain-funcs flag-o-matic pax-utils llvm
|
||||
|
||||
#META
|
||||
VERSION_MAJ="7"
|
||||
VERSION_MIN="1"
|
||||
|
||||
DESCRIPTION="Cross platform application development framework based on web technologies"
|
||||
HOMEPAGE="https://electronjs.org/"
|
||||
LICENSE="MIT"
|
||||
SLOT="7/1"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
IUSE="cups custom-cflags gconf gnome-keyring kerberos proxy pulseaudio
|
||||
+system-ffmpeg +system-libvpx +system-ssl component-build
|
||||
proprietary-codecs jumbo-build tcmalloc +suid debug"
|
||||
|
||||
REQUIRED_USE="debug? ( component-build )"
|
||||
|
||||
RESTRICT="
|
||||
!system-ffmpeg? ( proprietary-codecs? ( bindist ) )
|
||||
component-build? ( tcmalloc? ( usersandbox ) )
|
||||
network-sandbox
|
||||
"
|
||||
|
||||
|
||||
#DEPS
|
||||
COMMON_DEPEND="
|
||||
>=app-eselect/eselect-electron-next-2.2
|
||||
cups? ( >=net-print/cups-2.2:= )
|
||||
dev-libs/expat:=
|
||||
dev-libs/glib:2
|
||||
>=dev-libs/icu-64:=
|
||||
dev-libs/libxml2:=[icu]
|
||||
dev-libs/libxslt:=
|
||||
dev-libs/nspr:=
|
||||
>=dev-libs/nss-3.40.1:=
|
||||
system-ssl? ( >=dev-libs/openssl-1.1.1d-r2:= )
|
||||
dev-libs/re2:=
|
||||
gconf? ( >=gnome-base/gconf-3.2.6-r4:= )
|
||||
gnome-keyring? ( >=gnome-base/libgnome-keyring-3.28.2:= )
|
||||
>=media-libs/alsa-lib-1.1.2:=
|
||||
media-libs/fontconfig:=
|
||||
media-libs/freetype:=
|
||||
>=media-libs/harfbuzz-2.6.1:=[icu]
|
||||
media-libs/libexif:=
|
||||
media-libs/libjpeg-turbo:=
|
||||
media-libs/libpng:=
|
||||
system-libvpx? ( >=media-libs/libvpx-1.8.0:=[postproc,svc] )
|
||||
>=media-libs/openh264-1.7.0:=
|
||||
pulseaudio? ( media-sound/pulseaudio:= )
|
||||
system-ffmpeg? (
|
||||
>=media-video/ffmpeg-4:=
|
||||
|| (
|
||||
media-video/ffmpeg[-samba]
|
||||
>=net-fs/samba-4.8.6-r2[-debug(-)]
|
||||
)
|
||||
media-libs/opus:=
|
||||
)
|
||||
>=net-dns/c-ares-1.13.0:=
|
||||
>=net-libs/nghttp2-1.39.2:=
|
||||
net-misc/curl:=[ssl]
|
||||
sys-apps/dbus:=
|
||||
sys-apps/pciutils:=
|
||||
virtual/udev
|
||||
x11-libs/cairo:=
|
||||
x11-libs/gdk-pixbuf:2
|
||||
x11-libs/gtk+:3[X]
|
||||
x11-libs/libdrm
|
||||
x11-libs/libnotify:=
|
||||
x11-libs/libX11:=
|
||||
x11-libs/libXcomposite:=
|
||||
x11-libs/libXcursor:=
|
||||
x11-libs/libXdamage:=
|
||||
x11-libs/libXext:=
|
||||
x11-libs/libXfixes:=
|
||||
x11-libs/libXi:=
|
||||
x11-libs/libXrandr:=
|
||||
x11-libs/libXrender:=
|
||||
x11-libs/libXScrnSaver:=
|
||||
x11-libs/libXtst:=
|
||||
x11-libs/pango:=
|
||||
app-arch/snappy:=
|
||||
media-libs/flac:=
|
||||
media-libs/libwebp:=
|
||||
sys-libs/zlib:=[minizip]
|
||||
kerberos? ( virtual/krb5 )
|
||||
sys-libs/libcap:=
|
||||
"
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
x11-misc/xdg-utils
|
||||
virtual/opengl
|
||||
virtual/ttf-fonts
|
||||
tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
|
||||
"
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
!dev-util/electron:7
|
||||
>=app-arch/gzip-1.9
|
||||
app-arch/xz-utils
|
||||
!arm? ( dev-lang/yasm )
|
||||
dev-lang/perl
|
||||
>=dev-util/gn-0.1463
|
||||
>=dev-util/gperf-3.0.4
|
||||
>=dev-util/ninja-1.8.2
|
||||
>=net-libs/nodejs-12.13.0
|
||||
sys-apps/hwids[usb]
|
||||
>=sys-devel/bison-3.1
|
||||
sys-devel/flex
|
||||
virtual/pkgconfig
|
||||
dev-vcs/git
|
||||
amd64? ( >=sys-devel/gcc-6.4.0[multilib] )
|
||||
sys-devel/clang[xml]
|
||||
>=dev-util/gperf-3.0.4:=
|
||||
"
|
||||
llvm_check_deps() {
|
||||
has_version -b "sys-devel/clang:${LLVM_SLOT}"
|
||||
}
|
||||
|
||||
#PACKAGE VERSIONS/EXTRACTION LOCATIONS
|
||||
CHROMIUM_VERSION="78.0.3904.97"
|
||||
CHROMIUM_P="chromium-${CHROMIUM_VERSION}"
|
||||
CHROMIUM_S="${WORKDIR}/chromium"
|
||||
|
||||
S="${CHROMIUM_S}/electron"
|
||||
|
||||
UPSTREAM_P="electron-${PV}"
|
||||
|
||||
NODE_VERSION="12.8.1"
|
||||
NODE_P="node-${NODE_VERSION}"
|
||||
NODE_S="${S}/vendor/node"
|
||||
|
||||
#deps included with chromium
|
||||
ANGLE_S="${CHROMIUM_S}/third_party/angle"
|
||||
BORINGSSL_S="${CHROMIUM_S}/third_party/boringssl"
|
||||
PERFETTO_S="${CHROMIUM_S}/third_party/perfetto"
|
||||
QUICHE_S="${CHROMIUM_S}/net/third_party/quiche"
|
||||
V8_S="${CHROMIUM_S}/v8"
|
||||
|
||||
#PATCHES
|
||||
CHROMIUM_PATCHES=(
|
||||
"${FILESDIR}/chromium-78-unbundle-zlib-r1.patch"
|
||||
"${FILESDIR}/chromium-78-fix-intrusive-heap-invalid-enum-value.patch"
|
||||
"${FILESDIR}/chromium-78-xlib-name-clash.patch"
|
||||
"${FILESDIR}/chromium-78-blink-includes.patch"
|
||||
"${FILESDIR}/chromium-78-use-system-libraries-in-official-build.patch"
|
||||
"${FILESDIR}/chromium-78-missing-semicolon.patch"
|
||||
)
|
||||
PATCHES=(
|
||||
"${FILESDIR}/electron-7.0.1-fix-chromium-viz-osr-patch.patch"
|
||||
)
|
||||
|
||||
SRC_URI="
|
||||
https://github.com/electron/electron/archive/v${PV}.tar.gz -> ${P}.tar.gz
|
||||
https://storage.googleapis.com/chromium-browser-official/${CHROMIUM_P}.tar.xz
|
||||
https://github.com/nodejs/node/archive/v${NODE_VERSION}.tar.gz -> ${NODE_P}.tar.gz
|
||||
"
|
||||
|
||||
_get_target_arch() {
|
||||
local myarch="$(tc-arch)"
|
||||
local target_arch=
|
||||
|
||||
if [ "${myarch}" == "amd64" ];then
|
||||
target_arch="x64"
|
||||
elif [ "${myarch}" == "x86" ];then
|
||||
target_arch="ia32"
|
||||
elif [ "${myarch}" == "arm64" ];then
|
||||
target_arch="arm64"
|
||||
elif [ "${myarch}" == "arm" ];then
|
||||
target_arch="arm"
|
||||
else
|
||||
die "Failed to determine architecture. Got '$myarch'."
|
||||
fi
|
||||
echo -n "${target_arch}"
|
||||
}
|
||||
_get_install_suffix() {
|
||||
echo -n "-${VERSION_MAJ}.${VERSION_MIN}"
|
||||
}
|
||||
_get_install_dir() {
|
||||
echo -n "/usr/$(get_libdir)/electron$(_get_install_suffix)"
|
||||
}
|
||||
|
||||
pre_build_checks() {
|
||||
if has usersandbox ${FEATURES} && use tcmalloc && use component-build;then
|
||||
die "Component build with tcmalloc requires FEATURES=-usersandbox"
|
||||
fi
|
||||
#17GB needed for final link to succeed
|
||||
if use component-build;then
|
||||
CHECKREQS_MEMORY="3G"
|
||||
else
|
||||
CHECKREQS_MEMORY="17G"
|
||||
fi
|
||||
CHECKREQS_DISK_BUILD="9G"
|
||||
check-reqs_pkg_setup
|
||||
}
|
||||
pkg_pretend() {
|
||||
pre_build_checks
|
||||
}
|
||||
pkg_setup() {
|
||||
python-any-r1_pkg_setup
|
||||
llvm_pkg_setup
|
||||
chromium_suid_sandbox_check_kernel_config
|
||||
}
|
||||
src_unpack() {
|
||||
unpack "${P}.tar.gz" || die
|
||||
unpack "${CHROMIUM_P}.tar.xz" || die
|
||||
unpack "${NODE_P}.tar.gz" || die
|
||||
mv "${CHROMIUM_P}" "${CHROMIUM_S}" || die
|
||||
mv "${UPSTREAM_P}" "${S}" || die
|
||||
mv "${NODE_P}" "${NODE_S}" || die
|
||||
}
|
||||
do_patches() {
|
||||
local dir="$1"
|
||||
local patchloc="$2"
|
||||
pushd "$dir" > /dev/null 2>&1 || die
|
||||
local patchlist=( $(cat "${patchloc}/.patches") )
|
||||
for file in "${patchlist[@]}";do
|
||||
eapply -p1 "${file/#/${patchloc}/}" || die
|
||||
done
|
||||
popd > /dev/null 2>&1 || die
|
||||
}
|
||||
src_prepare() {
|
||||
python_setup
|
||||
|
||||
cd "${S}"
|
||||
if ! use proxy;then
|
||||
my_proxy=""
|
||||
else
|
||||
my_proxy="$http_proxy"
|
||||
fi
|
||||
http_proxy="$my_proxy" yarn install || die "Yarn module installation failed"
|
||||
|
||||
#apply electron patches
|
||||
if declare -p PATCHES | grep -q "^declare -a "; then
|
||||
[[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}"
|
||||
else
|
||||
[[ -n ${PATCHES} ]] && eapply ${PATCHES}
|
||||
fi
|
||||
|
||||
#apply electron bundled patches
|
||||
do_patches "${CHROMIUM_S}" "${S}/patches/chromium"
|
||||
do_patches "${NODE_S}" "${S}/patches/node"
|
||||
do_patches "${ANGLE_S}" "${S}/patches/angle"
|
||||
do_patches "${BORINGSSL_S}/src" "${S}/patches/boringssl"
|
||||
do_patches "${PERFETTO_S}" "${S}/patches/perfetto"
|
||||
do_patches "${QUICHE_S}/src" "${S}/patches/quiche"
|
||||
do_patches "${V8_S}" "${S}/patches/v8"
|
||||
|
||||
#ensure node uses the correct v8
|
||||
rm -r "${NODE_S}/deps/v8" || die
|
||||
ln -s "${CHROMIUM_S}/v8" "${NODE_S}/deps/" || die
|
||||
|
||||
#setup link to node for chromium
|
||||
mkdir -p "${CHROMIUM_S}/third_party/node/linux/node-linux-x64/bin" || die
|
||||
ln -s "${EPREFIX}/usr/bin/node" "${CHROMIUM_S}/third_party/node/linux/node-linux-x64/bin/node" || die
|
||||
|
||||
#libs in chromium source tree we need to keep
|
||||
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/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/boringssl/src/third_party/sike
|
||||
third_party/boringssl/linux-aarch64/crypto/third_party/sike
|
||||
third_party/boringssl/linux-x86_64/crypto/third_party/sike
|
||||
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/dom_distiller_js
|
||||
third_party/emoji-segmenter
|
||||
third_party/flatbuffers
|
||||
third_party/flot
|
||||
third_party/freetype
|
||||
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/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/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/lss
|
||||
third_party/lzma_sdk
|
||||
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/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/sfntly
|
||||
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/gif
|
||||
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/llvm-7.0
|
||||
third_party/swiftshader/third_party/llvm-subzero
|
||||
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/fft4g
|
||||
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/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
|
||||
third_party/yasm/run_yasm.py
|
||||
)
|
||||
if ! use system-ffmpeg;then
|
||||
keeplibs+=( third_party/ffmpeg third_party/opus )
|
||||
fi
|
||||
if ! use system-libvpx;then
|
||||
keeplibs+=( third_party/libvpx )
|
||||
keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
|
||||
fi
|
||||
if use tcmalloc;then
|
||||
keeplibs+=( third_party/tcmalloc )
|
||||
fi
|
||||
|
||||
cd "${CHROMIUM_S}" || die
|
||||
|
||||
#remove unneeded libraries from chromium tree
|
||||
ebegin "Unbundling libraries"
|
||||
build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
|
||||
eend
|
||||
|
||||
#apply patches to chromium
|
||||
eapply "${CHROMIUM_PATCHES[@]}" || die
|
||||
|
||||
sed -i -e "s/python/${EPYTHON}/" "${NODE_S}/deps/npm/node_modules/node-gyp/gyp/gyp"
|
||||
|
||||
ln -s "${NODE_S}" "${CHROMIUM_S}/third_party/electron_node" || die
|
||||
|
||||
cd "${S}" || die
|
||||
|
||||
#Make sure we use python2.7
|
||||
python_export
|
||||
python_wrapper_setup
|
||||
|
||||
eapply_user
|
||||
}
|
||||
src_configure() {
|
||||
python_setup
|
||||
|
||||
#CHROMIUM
|
||||
cd "${CHROMIUM_S}" || die
|
||||
|
||||
local gn_system_libraries=(
|
||||
flac
|
||||
fontconfig
|
||||
freetype
|
||||
harfbuzz-ng
|
||||
icu
|
||||
libdrm
|
||||
libjpeg
|
||||
libpng
|
||||
libwebp
|
||||
libxml
|
||||
libxslt
|
||||
openh264
|
||||
re2
|
||||
snappy
|
||||
yasm
|
||||
zlib
|
||||
)
|
||||
if use system-ffmpeg;then
|
||||
gn_system_libraries+=( ffmpeg opus )
|
||||
fi
|
||||
if use system-libvpx;then
|
||||
gn_system_libraries+=( libvpx )
|
||||
fi
|
||||
local llvm_prefix="$(get_llvm_prefix -b)"
|
||||
local myconf_gn="import(\"//electron/build/args/$(usex debug debug release).gn\") clang_base_path=\"${llvm_prefix}/bin/\""
|
||||
|
||||
tc-export AR CC CXX NM
|
||||
|
||||
if ! tc-is-clang;then
|
||||
einfo "Using ${llvm_prefix}/bin/${CHOST}-clang++ for compilation..."
|
||||
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
|
||||
ewarn "Using a compiler other than clang is unsupported and will likely result in errors!"
|
||||
myconf_gn+=" is_clang=false"
|
||||
fi
|
||||
|
||||
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
|
||||
|
||||
myconf_gn+=" is_debug=$(usex debug true false)"
|
||||
myconf_gn+=" is_component_build=$(usex component-build true false)"
|
||||
myconf_gn+=" is_official_build=$(usex component-build false $(usex debug false true))"
|
||||
|
||||
myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
|
||||
myconf_gn+=" use_allocator=\"$(usex tcmalloc tcmalloc none)\""
|
||||
myconf_gn+=" enable_nacl=false"
|
||||
|
||||
myconf_gn+=" use_system_harfbuzz=true"
|
||||
myconf_gn+=" use_cups=$(usex cups true false)"
|
||||
myconf_gn+=" use_gio=$(usex gconf true false)"
|
||||
myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
|
||||
myconf_gn+=" use_kerberos=$(usex kerberos true false)"
|
||||
myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
|
||||
#prevent chromium from generating incompatible shims for pulse
|
||||
myconf_gn+=" link_pulseaudio=$(usex pulseaudio true false)"
|
||||
|
||||
myconf_gn+=" icu_use_data_file=false"
|
||||
myconf_gn+=" fieldtrial_testing_like_official_build=true"
|
||||
myconf_gn+=" use_gold=false use_sysroot=false"
|
||||
myconf_gn+=" linux_use_bundled_binutils=false use_custom_libcxx=false"
|
||||
myconf_gn+=" use_lld=false"
|
||||
myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
|
||||
myconf_gn+=" ffmpeg_branding=\"$(usex proprietary-codecs Chrome Chromium)\""
|
||||
|
||||
myconf_gn+=" use_official_google_api_keys=false"
|
||||
myconf_gn+=" google_api_key=\"\""
|
||||
myconf_gn+=" google_default_client_id=\"\""
|
||||
myconf_gn+=" google_default_client_secret=\"\""
|
||||
|
||||
myconf_gn+=" treat_warnings_as_errors=false"
|
||||
myconf_gn+=" fatal_linker_warnings=false"
|
||||
myconf_gn+=" is_electron_build=true"
|
||||
|
||||
|
||||
build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
|
||||
|
||||
local target_arch=$(_get_target_arch)
|
||||
local ffmpeg_target_arch="${target_arch}"
|
||||
|
||||
if ! use custom-cflags;then
|
||||
replace-flags "-Os" "-O2"
|
||||
append-cxxflags $(test-flags-CXX -Wno-unknown-warning-option)
|
||||
append-cxxflags $(test-flags-CXX -Wno-invalid-offsetof)
|
||||
append-cxxflags $(test-flags-CXX -Wno-return-type)
|
||||
append-cxxflags $(test-flags-CXX -Wno-unused-variable)
|
||||
strip-flags
|
||||
|
||||
if use x86;then
|
||||
filter-flags "-g*"
|
||||
fi
|
||||
|
||||
if [ "${target_arch}" == "x64" ] || [ "${target_arch}" == "ia32" ];then
|
||||
filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
|
||||
fi
|
||||
fi
|
||||
|
||||
if ! use system-ffmpeg;then
|
||||
local build_ffmpeg_args=""
|
||||
einfo "Configuring bundled ffmpeg..."
|
||||
pushd "${CHROMIUM_S}/third_party/ffmpeg" > /dev/null 2>&1 || 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 2>&1 || die
|
||||
fi
|
||||
|
||||
export TMPDIR="${WORKDIR}/temp"
|
||||
mkdir -p -m 755 "${TMPDIR}" || die
|
||||
|
||||
addpredict /dev/dri/
|
||||
|
||||
#NODE
|
||||
einfo "Configuring bundled nodejs..."
|
||||
pushd "${NODE_S}" > /dev/null 2>&1 || die
|
||||
./configure --shared --without-bundled-v8 \
|
||||
--shared-openssl --shared-http-parser --shared-zlib \
|
||||
--shared-nghttp2 --shared-cares --without-npm --with-intl=system-icu \
|
||||
--without-dtrace --dest-cpu=${target_arch} --prefix="" || die
|
||||
popd > /dev/null 2>&1 || die
|
||||
|
||||
set -- gn gen --args="${myconf_gn} ${EXTRA_GN} ${GN_EXTRA_ARGS}" out/Release
|
||||
echo "$@"
|
||||
"$@" || die
|
||||
sed -i -e "s/python /${EPYTHON} /g" out/Release/toolchain.ninja || die
|
||||
|
||||
#http_proxy="" yarn install || die
|
||||
|
||||
cd "${S}" || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
python_setup
|
||||
|
||||
cd "${CHROMIUM_S}" || die
|
||||
eninja -C out/Release electron || die
|
||||
einfo "Electron built successfully"
|
||||
|
||||
if ! use debug;then
|
||||
electron/script/strip-binaries.py -d out/Release || die
|
||||
fi
|
||||
eninja -C out/Release electron:electron_dist_zip || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local install_dir="$(_get_install_dir)"
|
||||
local install_suffix="$(_get_install_suffix)"
|
||||
|
||||
pushd "${CHROMIUM_S}/out/Release/locales" > /dev/null 2>&1 || die
|
||||
chromium_remove_language_paks
|
||||
popd > /dev/null 2>&1 || die
|
||||
|
||||
cd "${CHROMIUM_S}/out/Release" || die
|
||||
|
||||
dodir "${install_dir}"
|
||||
pushd "${ED}/${install_dir}" > /dev/null 2>&1 || die
|
||||
unpack "${CHROMIUM_S}/out/Release/dist.zip" || die
|
||||
popd > /dev/null 2>&1 || die
|
||||
|
||||
if [ -e "${ED}/${install_dir}/chrome-sandbox" ];then
|
||||
use suid && chmod 4755 "${ED}/${install_dir}/chrome-sandbox"
|
||||
fi
|
||||
|
||||
dodir "/usr/bin" || die
|
||||
dosym "../$(get_libdir)/electron${install_suffix}/electron" "/usr/bin/electron${install_suffix}" || die
|
||||
|
||||
HEADERS_ONLY=1 \
|
||||
"${NODE_S}/tools/install.py" install "${ED}" "/usr" || die
|
||||
dodir /usr/include/node/deps/{v8,uv} || die
|
||||
dosym . /usr/include/node/src || die
|
||||
for var in deps/{uv,v8}/include;do
|
||||
dosym "../.." "/usr/include/node/${var}" || die
|
||||
done
|
||||
|
||||
dodir "/usr/include/electron${install_suffix}" || die
|
||||
mv "${ED}/usr/include/node" "${ED}/usr/include/electron${install_suffix}/node" || die
|
||||
}
|
||||
pkg_postinst() {
|
||||
if [ "$(eselect electron show)" == "(none)" ];then
|
||||
eselect electron set "${PN}-${VERSION_MAJ}.${VERSION_MIN}"
|
||||
fi
|
||||
}
|
||||
pkg_postrm() {
|
||||
if [ "$(eselect electron show)" == "(none)" ];then
|
||||
eselect electron set 1
|
||||
fi
|
||||
}
|
||||
@ -1,693 +0,0 @@
|
||||
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 multilib ninja-utils python-any-r1 toolchain-funcs flag-o-matic pax-utils llvm
|
||||
|
||||
#META
|
||||
VERSION_MAJ="7"
|
||||
VERSION_MIN="2"
|
||||
|
||||
DESCRIPTION="Cross platform application development framework based on web technologies"
|
||||
HOMEPAGE="https://electronjs.org/"
|
||||
LICENSE="MIT"
|
||||
SLOT="7/2"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
IUSE="cups custom-cflags gconf gnome-keyring kerberos proxy pulseaudio
|
||||
+system-ffmpeg +system-libvpx +system-ssl component-build
|
||||
proprietary-codecs jumbo-build tcmalloc +suid debug"
|
||||
|
||||
REQUIRED_USE="debug? ( component-build )"
|
||||
|
||||
RESTRICT="
|
||||
!system-ffmpeg? ( proprietary-codecs? ( bindist ) )
|
||||
component-build? ( tcmalloc? ( usersandbox ) )
|
||||
network-sandbox
|
||||
"
|
||||
|
||||
|
||||
#DEPS
|
||||
COMMON_DEPEND="
|
||||
>=app-eselect/eselect-electron-next-2.2
|
||||
cups? ( >=net-print/cups-2.2:= )
|
||||
dev-libs/expat:=
|
||||
dev-libs/glib:2
|
||||
>=dev-libs/icu-64:=
|
||||
dev-libs/libxml2:=[icu]
|
||||
dev-libs/libxslt:=
|
||||
dev-libs/nspr:=
|
||||
>=dev-libs/nss-3.40.1:=
|
||||
system-ssl? ( >=dev-libs/openssl-1.1.1d-r2:= )
|
||||
dev-libs/re2:=
|
||||
gconf? ( >=gnome-base/gconf-3.2.6-r4:= )
|
||||
gnome-keyring? ( >=gnome-base/libgnome-keyring-3.28.2:= )
|
||||
>=media-libs/alsa-lib-1.1.2:=
|
||||
media-libs/fontconfig:=
|
||||
media-libs/freetype:=
|
||||
>=media-libs/harfbuzz-2.6.1:=[icu]
|
||||
media-libs/libexif:=
|
||||
media-libs/libjpeg-turbo:=
|
||||
media-libs/libpng:=
|
||||
system-libvpx? ( >=media-libs/libvpx-1.8.0:=[postproc,svc] )
|
||||
>=media-libs/openh264-1.7.0:=
|
||||
pulseaudio? ( media-sound/pulseaudio:= )
|
||||
system-ffmpeg? (
|
||||
>=media-video/ffmpeg-4:=
|
||||
|| (
|
||||
media-video/ffmpeg[-samba]
|
||||
>=net-fs/samba-4.8.6-r2[-debug(-)]
|
||||
)
|
||||
media-libs/opus:=
|
||||
)
|
||||
>=net-dns/c-ares-1.13.0:=
|
||||
>=net-libs/nghttp2-1.39.2:=
|
||||
net-misc/curl:=[ssl]
|
||||
sys-apps/dbus:=
|
||||
sys-apps/pciutils:=
|
||||
virtual/udev
|
||||
x11-libs/cairo:=
|
||||
x11-libs/gdk-pixbuf:2
|
||||
x11-libs/gtk+:3[X]
|
||||
x11-libs/libdrm
|
||||
x11-libs/libnotify:=
|
||||
x11-libs/libX11:=
|
||||
x11-libs/libXcomposite:=
|
||||
x11-libs/libXcursor:=
|
||||
x11-libs/libXdamage:=
|
||||
x11-libs/libXext:=
|
||||
x11-libs/libXfixes:=
|
||||
x11-libs/libXi:=
|
||||
x11-libs/libXrandr:=
|
||||
x11-libs/libXrender:=
|
||||
x11-libs/libXScrnSaver:=
|
||||
x11-libs/libXtst:=
|
||||
x11-libs/pango:=
|
||||
app-arch/snappy:=
|
||||
media-libs/flac:=
|
||||
media-libs/libwebp:=
|
||||
sys-libs/zlib:=[minizip]
|
||||
kerberos? ( virtual/krb5 )
|
||||
sys-libs/libcap:=
|
||||
"
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
x11-misc/xdg-utils
|
||||
virtual/opengl
|
||||
virtual/ttf-fonts
|
||||
tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
|
||||
"
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
!dev-util/electron:7
|
||||
>=app-arch/gzip-1.9
|
||||
app-arch/xz-utils
|
||||
!arm? ( dev-lang/yasm )
|
||||
dev-lang/perl
|
||||
>=dev-util/gn-0.1463
|
||||
>=dev-util/gperf-3.0.4
|
||||
>=dev-util/ninja-1.8.2
|
||||
>=net-libs/nodejs-12.13.0
|
||||
sys-apps/hwids[usb]
|
||||
>=sys-devel/bison-3.1
|
||||
sys-devel/flex
|
||||
virtual/pkgconfig
|
||||
dev-vcs/git
|
||||
amd64? ( >=sys-devel/gcc-6.4.0[multilib] )
|
||||
sys-apps/yarn
|
||||
sys-devel/clang[xml]
|
||||
>=dev-util/gperf-3.0.4:=
|
||||
"
|
||||
llvm_check_deps() {
|
||||
has_version -b "sys-devel/clang:${LLVM_SLOT}"
|
||||
}
|
||||
|
||||
#PACKAGE VERSIONS/EXTRACTION LOCATIONS
|
||||
CHROMIUM_VERSION="78.0.3904.97"
|
||||
CHROMIUM_P="chromium-${CHROMIUM_VERSION}"
|
||||
CHROMIUM_S="${WORKDIR}/chromium"
|
||||
|
||||
S="${CHROMIUM_S}/electron"
|
||||
|
||||
UPSTREAM_P="electron-${PV}"
|
||||
|
||||
NODE_VERSION="12.8.1"
|
||||
NODE_P="node-${NODE_VERSION}"
|
||||
NODE_S="${S}/vendor/node"
|
||||
|
||||
#deps included with chromium
|
||||
ANGLE_S="${CHROMIUM_S}/third_party/angle"
|
||||
BORINGSSL_S="${CHROMIUM_S}/third_party/boringssl"
|
||||
PERFETTO_S="${CHROMIUM_S}/third_party/perfetto"
|
||||
QUICHE_S="${CHROMIUM_S}/net/third_party/quiche"
|
||||
V8_S="${CHROMIUM_S}/v8"
|
||||
|
||||
#PATCHES
|
||||
CHROMIUM_PATCHES=(
|
||||
"${FILESDIR}/chromium-78-unbundle-zlib-r1.patch"
|
||||
"${FILESDIR}/chromium-78-fix-intrusive-heap-invalid-enum-value.patch"
|
||||
"${FILESDIR}/chromium-78-xlib-name-clash.patch"
|
||||
"${FILESDIR}/chromium-78-blink-includes.patch"
|
||||
"${FILESDIR}/chromium-78-use-system-libraries-in-official-build.patch"
|
||||
"${FILESDIR}/chromium-78-missing-semicolon.patch"
|
||||
)
|
||||
PATCHES=(
|
||||
"${FILESDIR}/electron-7.0.1-fix-chromium-viz-osr-patch.patch"
|
||||
)
|
||||
|
||||
SRC_URI="
|
||||
https://github.com/electron/electron/archive/v${PV}.tar.gz -> ${P}.tar.gz
|
||||
https://storage.googleapis.com/chromium-browser-official/${CHROMIUM_P}.tar.xz
|
||||
https://github.com/nodejs/node/archive/v${NODE_VERSION}.tar.gz -> ${NODE_P}.tar.gz
|
||||
"
|
||||
|
||||
_get_target_arch() {
|
||||
local myarch="$(tc-arch)"
|
||||
local target_arch=
|
||||
|
||||
if [ "${myarch}" == "amd64" ];then
|
||||
target_arch="x64"
|
||||
elif [ "${myarch}" == "x86" ];then
|
||||
target_arch="ia32"
|
||||
elif [ "${myarch}" == "arm64" ];then
|
||||
target_arch="arm64"
|
||||
elif [ "${myarch}" == "arm" ];then
|
||||
target_arch="arm"
|
||||
else
|
||||
die "Failed to determine architecture. Got '$myarch'."
|
||||
fi
|
||||
echo -n "${target_arch}"
|
||||
}
|
||||
_get_install_suffix() {
|
||||
echo -n "-${VERSION_MAJ}.${VERSION_MIN}"
|
||||
}
|
||||
_get_install_dir() {
|
||||
echo -n "/usr/$(get_libdir)/electron$(_get_install_suffix)"
|
||||
}
|
||||
|
||||
pre_build_checks() {
|
||||
if has usersandbox ${FEATURES} && use tcmalloc && use component-build;then
|
||||
die "Component build with tcmalloc requires FEATURES=-usersandbox"
|
||||
fi
|
||||
#17GB needed for final link to succeed
|
||||
if use component-build;then
|
||||
CHECKREQS_MEMORY="3G"
|
||||
else
|
||||
CHECKREQS_MEMORY="17G"
|
||||
fi
|
||||
CHECKREQS_DISK_BUILD="9G"
|
||||
check-reqs_pkg_setup
|
||||
}
|
||||
pkg_pretend() {
|
||||
pre_build_checks
|
||||
}
|
||||
pkg_setup() {
|
||||
python-any-r1_pkg_setup
|
||||
llvm_pkg_setup
|
||||
chromium_suid_sandbox_check_kernel_config
|
||||
}
|
||||
src_unpack() {
|
||||
unpack "${P}.tar.gz" || die
|
||||
unpack "${CHROMIUM_P}.tar.xz" || die
|
||||
unpack "${NODE_P}.tar.gz" || die
|
||||
mv "${CHROMIUM_P}" "${CHROMIUM_S}" || die
|
||||
mv "${UPSTREAM_P}" "${S}" || die
|
||||
mv "${NODE_P}" "${NODE_S}" || die
|
||||
}
|
||||
do_patches() {
|
||||
local dir="$1"
|
||||
local patchloc="$2"
|
||||
pushd "$dir" > /dev/null 2>&1 || die
|
||||
local patchlist=( $(cat "${patchloc}/.patches") )
|
||||
for file in "${patchlist[@]}";do
|
||||
eapply -p1 "${file/#/${patchloc}/}" || die
|
||||
done
|
||||
popd > /dev/null 2>&1 || die
|
||||
}
|
||||
src_prepare() {
|
||||
python_setup
|
||||
|
||||
cd "${S}"
|
||||
|
||||
if ! use "proxy";then
|
||||
my_proxy=""
|
||||
else
|
||||
my_proxy="$http_proxy"
|
||||
fi
|
||||
http_proxy="$my_proxy" yarn install || die "Yarn module installation failed"
|
||||
|
||||
|
||||
#apply electron patches
|
||||
if declare -p PATCHES | grep -q "^declare -a "; then
|
||||
[[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}"
|
||||
else
|
||||
[[ -n ${PATCHES} ]] && eapply ${PATCHES}
|
||||
fi
|
||||
|
||||
#apply electron bundled patches
|
||||
do_patches "${CHROMIUM_S}" "${S}/patches/chromium"
|
||||
do_patches "${NODE_S}" "${S}/patches/node"
|
||||
do_patches "${ANGLE_S}" "${S}/patches/angle"
|
||||
do_patches "${BORINGSSL_S}/src" "${S}/patches/boringssl"
|
||||
do_patches "${PERFETTO_S}" "${S}/patches/perfetto"
|
||||
do_patches "${QUICHE_S}/src" "${S}/patches/quiche"
|
||||
do_patches "${V8_S}" "${S}/patches/v8"
|
||||
|
||||
#ensure node uses the correct v8
|
||||
rm -r "${NODE_S}/deps/v8" || die
|
||||
ln -s "${CHROMIUM_S}/v8" "${NODE_S}/deps/" || die
|
||||
|
||||
#setup link to node for chromium
|
||||
mkdir -p "${CHROMIUM_S}/third_party/node/linux/node-linux-x64/bin" || die
|
||||
ln -s "${EPREFIX}/usr/bin/node" "${CHROMIUM_S}/third_party/node/linux/node-linux-x64/bin/node" || die
|
||||
|
||||
#libs in chromium source tree we need to keep
|
||||
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/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/boringssl/src/third_party/sike
|
||||
third_party/boringssl/linux-aarch64/crypto/third_party/sike
|
||||
third_party/boringssl/linux-x86_64/crypto/third_party/sike
|
||||
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/dom_distiller_js
|
||||
third_party/emoji-segmenter
|
||||
third_party/flatbuffers
|
||||
third_party/flot
|
||||
third_party/freetype
|
||||
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/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/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/lss
|
||||
third_party/lzma_sdk
|
||||
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/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/sfntly
|
||||
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/gif
|
||||
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/llvm-7.0
|
||||
third_party/swiftshader/third_party/llvm-subzero
|
||||
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/fft4g
|
||||
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/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
|
||||
third_party/yasm/run_yasm.py
|
||||
)
|
||||
if ! use system-ffmpeg;then
|
||||
keeplibs+=( third_party/ffmpeg third_party/opus )
|
||||
fi
|
||||
if ! use system-libvpx;then
|
||||
keeplibs+=( third_party/libvpx )
|
||||
keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
|
||||
fi
|
||||
if use tcmalloc;then
|
||||
keeplibs+=( third_party/tcmalloc )
|
||||
fi
|
||||
|
||||
cd "${CHROMIUM_S}" || die
|
||||
|
||||
#remove unneeded libraries from chromium tree
|
||||
ebegin "Unbundling libraries"
|
||||
build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
|
||||
eend
|
||||
|
||||
#apply patches to chromium
|
||||
eapply "${CHROMIUM_PATCHES[@]}" || die
|
||||
|
||||
sed -i -e "s/python/${EPYTHON}/" "${NODE_S}/deps/npm/node_modules/node-gyp/gyp/gyp"
|
||||
|
||||
ln -s "${NODE_S}" "${CHROMIUM_S}/third_party/electron_node" || die
|
||||
|
||||
cd "${S}" || die
|
||||
|
||||
#Make sure we use python2.7
|
||||
python_setup 'python2*'
|
||||
|
||||
eapply_user
|
||||
}
|
||||
src_configure() {
|
||||
python_setup
|
||||
|
||||
#CHROMIUM
|
||||
cd "${CHROMIUM_S}" || die
|
||||
|
||||
local gn_system_libraries=(
|
||||
flac
|
||||
fontconfig
|
||||
freetype
|
||||
harfbuzz-ng
|
||||
icu
|
||||
libdrm
|
||||
libjpeg
|
||||
libpng
|
||||
libwebp
|
||||
libxml
|
||||
libxslt
|
||||
openh264
|
||||
re2
|
||||
snappy
|
||||
yasm
|
||||
zlib
|
||||
)
|
||||
if use system-ffmpeg;then
|
||||
gn_system_libraries+=( ffmpeg opus )
|
||||
fi
|
||||
if use system-libvpx;then
|
||||
gn_system_libraries+=( libvpx )
|
||||
fi
|
||||
local llvm_prefix="$(get_llvm_prefix -b)"
|
||||
local myconf_gn="import(\"//electron/build/args/$(usex debug debug release).gn\") clang_base_path=\"${llvm_prefix}/bin/\""
|
||||
|
||||
tc-export AR CC CXX NM
|
||||
|
||||
if ! tc-is-clang;then
|
||||
einfo "Using ${llvm_prefix}/bin/${CHOST}-clang++ for compilation..."
|
||||
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
|
||||
ewarn "Using a compiler other than clang is unsupported and will likely result in errors!"
|
||||
myconf_gn+=" is_clang=false"
|
||||
fi
|
||||
|
||||
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
|
||||
|
||||
myconf_gn+=" is_debug=$(usex debug true false)"
|
||||
myconf_gn+=" is_component_build=$(usex component-build true false)"
|
||||
myconf_gn+=" is_official_build=$(usex component-build false $(usex debug false true))"
|
||||
|
||||
myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
|
||||
myconf_gn+=" use_allocator=\"$(usex tcmalloc tcmalloc none)\""
|
||||
myconf_gn+=" enable_nacl=false"
|
||||
|
||||
myconf_gn+=" use_system_harfbuzz=true"
|
||||
myconf_gn+=" use_cups=$(usex cups true false)"
|
||||
myconf_gn+=" use_gio=$(usex gconf true false)"
|
||||
myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
|
||||
myconf_gn+=" use_kerberos=$(usex kerberos true false)"
|
||||
myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
|
||||
#prevent chromium from generating incompatible shims for pulse
|
||||
myconf_gn+=" link_pulseaudio=$(usex pulseaudio true false)"
|
||||
|
||||
myconf_gn+=" icu_use_data_file=false"
|
||||
myconf_gn+=" fieldtrial_testing_like_official_build=true"
|
||||
myconf_gn+=" use_gold=false use_sysroot=false"
|
||||
myconf_gn+=" linux_use_bundled_binutils=false use_custom_libcxx=false"
|
||||
myconf_gn+=" use_lld=false"
|
||||
myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
|
||||
myconf_gn+=" ffmpeg_branding=\"$(usex proprietary-codecs Chrome Chromium)\""
|
||||
|
||||
myconf_gn+=" use_official_google_api_keys=false"
|
||||
myconf_gn+=" google_api_key=\"\""
|
||||
myconf_gn+=" google_default_client_id=\"\""
|
||||
myconf_gn+=" google_default_client_secret=\"\""
|
||||
|
||||
myconf_gn+=" treat_warnings_as_errors=false"
|
||||
myconf_gn+=" fatal_linker_warnings=false"
|
||||
myconf_gn+=" is_electron_build=true"
|
||||
|
||||
|
||||
build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
|
||||
|
||||
local target_arch=$(_get_target_arch)
|
||||
local ffmpeg_target_arch="${target_arch}"
|
||||
|
||||
if ! use custom-cflags;then
|
||||
replace-flags "-Os" "-O2"
|
||||
append-cxxflags $(test-flags-CXX -Wno-unknown-warning-option)
|
||||
append-cxxflags $(test-flags-CXX -Wno-invalid-offsetof)
|
||||
append-cxxflags $(test-flags-CXX -Wno-return-type)
|
||||
append-cxxflags $(test-flags-CXX -Wno-unused-variable)
|
||||
strip-flags
|
||||
|
||||
if use x86;then
|
||||
filter-flags "-g*"
|
||||
fi
|
||||
|
||||
if [ "${target_arch}" == "x64" ] || [ "${target_arch}" == "ia32" ];then
|
||||
filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
|
||||
fi
|
||||
fi
|
||||
|
||||
if ! use system-ffmpeg;then
|
||||
local build_ffmpeg_args=""
|
||||
einfo "Configuring bundled ffmpeg..."
|
||||
pushd "${CHROMIUM_S}/third_party/ffmpeg" > /dev/null 2>&1 || 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 2>&1 || die
|
||||
fi
|
||||
|
||||
export TMPDIR="${WORKDIR}/temp"
|
||||
mkdir -p -m 755 "${TMPDIR}" || die
|
||||
|
||||
addpredict /dev/dri/
|
||||
|
||||
#NODE
|
||||
einfo "Configuring bundled nodejs..."
|
||||
pushd "${NODE_S}" > /dev/null 2>&1 || die
|
||||
./configure --shared --without-bundled-v8 \
|
||||
--shared-openssl --shared-http-parser --shared-zlib \
|
||||
--shared-nghttp2 --shared-cares --without-npm --with-intl=system-icu \
|
||||
--without-dtrace --dest-cpu=${target_arch} --prefix="" || die
|
||||
popd > /dev/null 2>&1 || die
|
||||
|
||||
set -- gn gen --args="${myconf_gn} ${EXTRA_GN} ${GN_EXTRA_ARGS}" out/Release
|
||||
echo "$@"
|
||||
"$@" || die
|
||||
sed -i -e "s/python /${EPYTHON} /g" out/Release/toolchain.ninja || die
|
||||
|
||||
#http_proxy="" yarn install || die
|
||||
|
||||
cd "${S}" || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
python_setup
|
||||
|
||||
cd "${CHROMIUM_S}" || die
|
||||
eninja -C out/Release electron || die
|
||||
einfo "Electron built successfully"
|
||||
|
||||
if ! use debug;then
|
||||
electron/script/strip-binaries.py -d out/Release || die
|
||||
fi
|
||||
eninja -C out/Release electron:electron_dist_zip || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local install_dir="$(_get_install_dir)"
|
||||
local install_suffix="$(_get_install_suffix)"
|
||||
|
||||
pushd "${CHROMIUM_S}/out/Release/locales" > /dev/null 2>&1 || die
|
||||
chromium_remove_language_paks
|
||||
popd > /dev/null 2>&1 || die
|
||||
|
||||
cd "${CHROMIUM_S}/out/Release" || die
|
||||
|
||||
dodir "${install_dir}"
|
||||
pushd "${ED}/${install_dir}" > /dev/null 2>&1 || die
|
||||
unpack "${CHROMIUM_S}/out/Release/dist.zip" || die
|
||||
popd > /dev/null 2>&1 || die
|
||||
|
||||
if [ -e "${ED}/${install_dir}/chrome-sandbox" ];then
|
||||
use suid && chmod 4755 "${ED}/${install_dir}/chrome-sandbox"
|
||||
fi
|
||||
|
||||
dodir "/usr/bin" || die
|
||||
dosym "../$(get_libdir)/electron${install_suffix}/electron" "/usr/bin/electron${install_suffix}" || die
|
||||
|
||||
HEADERS_ONLY=1 \
|
||||
"${NODE_S}/tools/install.py" install "${ED}" "/usr" || die
|
||||
dodir /usr/include/node/deps/{v8,uv} || die
|
||||
dosym . /usr/include/node/src || die
|
||||
for var in deps/{uv,v8}/include;do
|
||||
dosym "../.." "/usr/include/node/${var}" || die
|
||||
done
|
||||
|
||||
dodir "/usr/include/electron${install_suffix}" || die
|
||||
mv "${ED}/usr/include/node" "${ED}/usr/include/electron${install_suffix}/node" || die
|
||||
}
|
||||
pkg_postinst() {
|
||||
if [ "$(eselect electron show)" == "(none)" ];then
|
||||
eselect electron set "${PN}-${VERSION_MAJ}.${VERSION_MIN}"
|
||||
fi
|
||||
}
|
||||
pkg_postrm() {
|
||||
if [ "$(eselect electron show)" == "(none)" ];then
|
||||
eselect electron set 1
|
||||
fi
|
||||
}
|
||||
@ -1,687 +0,0 @@
|
||||
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 multilib ninja-utils python-any-r1 toolchain-funcs flag-o-matic pax-utils llvm
|
||||
|
||||
#META
|
||||
VERSION_MAJ="8"
|
||||
VERSION_MIN="2"
|
||||
|
||||
DESCRIPTION="Cross platform application development framework based on web technologies"
|
||||
HOMEPAGE="https://electronjs.org/"
|
||||
LICENSE="MIT"
|
||||
SLOT="8/2"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
IUSE="cups custom-cflags gconf gnome-keyring kerberos proxy pulseaudio
|
||||
+system-ffmpeg +system-libvpx +system-ssl component-build
|
||||
proprietary-codecs jumbo-build tcmalloc +suid debug"
|
||||
|
||||
REQUIRED_USE="debug? ( component-build )"
|
||||
|
||||
RESTRICT="
|
||||
!system-ffmpeg? ( proprietary-codecs? ( bindist ) )
|
||||
component-build? ( tcmalloc? ( usersandbox ) )
|
||||
network-sandbox
|
||||
"
|
||||
|
||||
|
||||
#DEPS
|
||||
COMMON_DEPEND="
|
||||
>=app-eselect/eselect-electron-next-2.2
|
||||
cups? ( >=net-print/cups-2.2:= )
|
||||
dev-libs/expat:=
|
||||
dev-libs/glib:2
|
||||
>=dev-libs/icu-64:=
|
||||
dev-libs/libxml2:=[icu]
|
||||
dev-libs/libxslt:=
|
||||
dev-libs/nspr:=
|
||||
>=dev-libs/nss-3.40.1:=
|
||||
system-ssl? ( >=dev-libs/openssl-1.1.1d-r2:= )
|
||||
dev-libs/re2:=
|
||||
gconf? ( >=gnome-base/gconf-3.2.6-r4:= )
|
||||
gnome-keyring? ( >=gnome-base/libgnome-keyring-3.28.2:= )
|
||||
>=media-libs/alsa-lib-1.1.2:=
|
||||
media-libs/fontconfig:=
|
||||
media-libs/freetype:=
|
||||
>=media-libs/harfbuzz-2.6.1:=[icu]
|
||||
media-libs/libexif:=
|
||||
media-libs/libjpeg-turbo:=
|
||||
media-libs/libpng:=
|
||||
media-libs/openh264:=
|
||||
system-libvpx? ( >=media-libs/libvpx-1.8.0:=[postproc,svc] )
|
||||
>=media-libs/openh264-1.7.0:=
|
||||
pulseaudio? ( media-sound/pulseaudio:= )
|
||||
system-ffmpeg? (
|
||||
>=media-video/ffmpeg-4:=
|
||||
|| (
|
||||
media-video/ffmpeg[-samba]
|
||||
>=net-fs/samba-4.8.6-r2[-debug(-)]
|
||||
)
|
||||
media-libs/opus:=
|
||||
)
|
||||
>=net-dns/c-ares-1.13.0:=
|
||||
>=net-libs/nghttp2-1.39.2:=
|
||||
net-misc/curl:=[ssl]
|
||||
sys-apps/dbus:=
|
||||
sys-apps/pciutils:=
|
||||
virtual/udev
|
||||
x11-libs/cairo:=
|
||||
x11-libs/gdk-pixbuf:2
|
||||
x11-libs/gtk+:3[X]
|
||||
x11-libs/libdrm
|
||||
x11-libs/libnotify:=
|
||||
x11-libs/libX11:=
|
||||
x11-libs/libXcomposite:=
|
||||
x11-libs/libXcursor:=
|
||||
x11-libs/libXdamage:=
|
||||
x11-libs/libXext:=
|
||||
x11-libs/libXfixes:=
|
||||
x11-libs/libXi:=
|
||||
x11-libs/libXrandr:=
|
||||
x11-libs/libXrender:=
|
||||
x11-libs/libXScrnSaver:=
|
||||
x11-libs/libXtst:=
|
||||
x11-libs/pango:=
|
||||
app-arch/snappy:=
|
||||
media-libs/flac:=
|
||||
media-libs/libwebp:=
|
||||
sys-libs/zlib:=[minizip]
|
||||
kerberos? ( virtual/krb5 )
|
||||
sys-libs/libcap:=
|
||||
"
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
x11-misc/xdg-utils
|
||||
virtual/opengl
|
||||
virtual/ttf-fonts
|
||||
tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
|
||||
"
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
!dev-util/electron:8
|
||||
>=app-arch/gzip-1.9
|
||||
app-arch/xz-utils
|
||||
!arm? ( dev-lang/yasm )
|
||||
dev-lang/perl
|
||||
>=dev-util/gn-0.1463
|
||||
>=dev-util/gperf-3.0.4
|
||||
>=dev-util/ninja-1.8.2
|
||||
>=net-libs/nodejs-12.13.0
|
||||
sys-apps/hwids[usb]
|
||||
>=sys-devel/bison-3.1
|
||||
sys-devel/flex
|
||||
virtual/pkgconfig
|
||||
dev-vcs/git
|
||||
amd64? ( >=sys-devel/gcc-6.4.0[multilib] )
|
||||
sys-apps/yarn
|
||||
sys-devel/clang[xml]
|
||||
>=dev-util/gperf-3.0.4:=
|
||||
"
|
||||
llvm_check_deps() {
|
||||
has_version -b "sys-devel/clang:${LLVM_SLOT}"
|
||||
}
|
||||
|
||||
#PACKAGE VERSIONS/EXTRACTION LOCATIONS
|
||||
CHROMIUM_VERSION="80.0.3987.158"
|
||||
CHROMIUM_P="chromium-${CHROMIUM_VERSION}"
|
||||
CHROMIUM_S="${WORKDIR}/chromium"
|
||||
|
||||
S="${CHROMIUM_S}/electron"
|
||||
|
||||
NODE_VERSION="12.13.0"
|
||||
NODE_P="node-${NODE_VERSION}"
|
||||
NODE_S="${S}/vendor/node"
|
||||
|
||||
UPSTREAM_P="electron-${PV}"
|
||||
|
||||
#deps included with chromium
|
||||
ANGLE_S="${CHROMIUM_S}/third_party/angle"
|
||||
BORINGSSL_S="${CHROMIUM_S}/third_party/boringssl"
|
||||
PERFETTO_S="${CHROMIUM_S}/third_party/perfetto"
|
||||
QUICHE_S="${CHROMIUM_S}/net/third_party/quiche"
|
||||
V8_S="${CHROMIUM_S}/v8"
|
||||
|
||||
#PATCHES
|
||||
CHROMIUM_PATCHES=(
|
||||
"${FILESDIR}/chromium-80-include.patch"
|
||||
"${FILESDIR}/chromium-80-unbundle-libxml.patch"
|
||||
"${FILESDIR}/chromium-78-unbundle-zlib-r1.patch"
|
||||
"${FILESDIR}/chromium-78-use-system-libraries-in-official-build.patch"
|
||||
)
|
||||
PATCHES=()
|
||||
|
||||
SRC_URI="
|
||||
https://github.com/electron/electron/archive/v${PV}.tar.gz -> ${P}.tar.gz
|
||||
https://storage.googleapis.com/chromium-browser-official/${CHROMIUM_P}.tar.xz
|
||||
https://github.com/nodejs/node/archive/v${NODE_VERSION}.tar.gz -> ${NODE_P}.tar.gz
|
||||
"
|
||||
|
||||
_get_target_arch() {
|
||||
local myarch="$(tc-arch)"
|
||||
local target_arch=
|
||||
|
||||
if [ "${myarch}" == "amd64" ];then
|
||||
target_arch="x64"
|
||||
elif [ "${myarch}" == "x86" ];then
|
||||
target_arch="ia32"
|
||||
elif [ "${myarch}" == "arm64" ];then
|
||||
target_arch="arm64"
|
||||
elif [ "${myarch}" == "arm" ];then
|
||||
target_arch="arm"
|
||||
else
|
||||
die "Failed to determine architecture. Got '$myarch'."
|
||||
fi
|
||||
echo -n "${target_arch}"
|
||||
}
|
||||
_get_install_suffix() {
|
||||
echo -n "-${VERSION_MAJ}.${VERSION_MIN}"
|
||||
}
|
||||
_get_install_dir() {
|
||||
echo -n "/usr/$(get_libdir)/electron$(_get_install_suffix)"
|
||||
}
|
||||
|
||||
pre_build_checks() {
|
||||
if has usersandbox ${FEATURES} && use tcmalloc && use component-build;then
|
||||
die "Component build with tcmalloc requires FEATURES=-usersandbox"
|
||||
fi
|
||||
#17GB needed for final link to succeed
|
||||
if use component-build;then
|
||||
CHECKREQS_MEMORY="3G"
|
||||
else
|
||||
CHECKREQS_MEMORY="17G"
|
||||
fi
|
||||
CHECKREQS_DISK_BUILD="9G"
|
||||
check-reqs_pkg_setup
|
||||
}
|
||||
pkg_pretend() {
|
||||
pre_build_checks
|
||||
}
|
||||
pkg_setup() {
|
||||
python-any-r1_pkg_setup
|
||||
llvm_pkg_setup
|
||||
chromium_suid_sandbox_check_kernel_config
|
||||
}
|
||||
src_unpack() {
|
||||
unpack "${P}.tar.gz" || die
|
||||
unpack "${CHROMIUM_P}.tar.xz" || die
|
||||
unpack "${NODE_P}.tar.gz" || die
|
||||
mv "${CHROMIUM_P}" "${CHROMIUM_S}" || die
|
||||
mv "${UPSTREAM_P}" "${S}" || die
|
||||
mv "${NODE_P}" "${NODE_S}" || die
|
||||
}
|
||||
do_patches() {
|
||||
local dir="$1"
|
||||
local patchloc="$2"
|
||||
pushd "$dir" > /dev/null 2>&1 || die
|
||||
local patchlist=( $(cat "${patchloc}/.patches") )
|
||||
for file in "${patchlist[@]}";do
|
||||
eapply -p1 "${file/#/${patchloc}/}" || die
|
||||
done
|
||||
popd > /dev/null 2>&1 || die
|
||||
}
|
||||
src_prepare() {
|
||||
python_setup
|
||||
|
||||
cd "${S}"
|
||||
if ! use proxy;then
|
||||
my_proxy=""
|
||||
else
|
||||
my_proxy="$http_proxy"
|
||||
fi
|
||||
http_proxy="$my_proxy" yarn install || die "Yarn module installation failed"
|
||||
|
||||
#apply electron patches
|
||||
if declare -p PATCHES | grep -q "^declare -a "; then
|
||||
[[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}"
|
||||
else
|
||||
[[ -n ${PATCHES} ]] && eapply ${PATCHES}
|
||||
fi
|
||||
|
||||
#apply electron bundled patches
|
||||
do_patches "${CHROMIUM_S}" "${S}/patches/chromium"
|
||||
do_patches "${NODE_S}" "${S}/patches/node"
|
||||
do_patches "${BORINGSSL_S}/src" "${S}/patches/boringssl"
|
||||
do_patches "${V8_S}" "${S}/patches/v8"
|
||||
|
||||
#ensure node uses the correct v8
|
||||
rm -r "${NODE_S}/deps/v8" || die
|
||||
ln -s "${CHROMIUM_S}/v8" "${NODE_S}/deps/" || die
|
||||
|
||||
#setup link to node for chromium
|
||||
mkdir -p "${CHROMIUM_S}/third_party/node/linux/node-linux-x64/bin" || die
|
||||
ln -s "${EPREFIX}/usr/bin/node" "${CHROMIUM_S}/third_party/node/linux/node-linux-x64/bin/node" || die
|
||||
|
||||
#libs in chromium source tree we need to keep
|
||||
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/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/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/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/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/lss
|
||||
third_party/lzma_sdk
|
||||
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/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/sfntly
|
||||
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/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/fft4g
|
||||
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
|
||||
third_party/yasm/run_yasm.py
|
||||
)
|
||||
if ! use system-ffmpeg;then
|
||||
keeplibs+=( third_party/ffmpeg third_party/opus )
|
||||
fi
|
||||
if ! use system-libvpx;then
|
||||
keeplibs+=( third_party/libvpx )
|
||||
keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
|
||||
fi
|
||||
if use tcmalloc;then
|
||||
keeplibs+=( third_party/tcmalloc )
|
||||
fi
|
||||
|
||||
cd "${CHROMIUM_S}" || die
|
||||
|
||||
#remove unneeded libraries from chromium tree
|
||||
ebegin "Unbundling libraries"
|
||||
build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
|
||||
eend
|
||||
|
||||
#apply patches to chromium
|
||||
if [ "${#CHROMIUM_PATCHES[@]}" -ne 0 ];then
|
||||
eapply "${CHROMIUM_PATCHES[@]}" || die
|
||||
fi
|
||||
|
||||
sed -i -e "s/python/${EPYTHON}/" "${NODE_S}/deps/npm/node_modules/node-gyp/gyp/gyp"
|
||||
|
||||
ln -s "${NODE_S}" "${CHROMIUM_S}/third_party/electron_node" || die
|
||||
|
||||
cd "${S}" || die
|
||||
|
||||
#Make sure we use python2.7
|
||||
python_setup
|
||||
|
||||
eapply_user
|
||||
}
|
||||
src_configure() {
|
||||
python_setup
|
||||
|
||||
#CHROMIUM
|
||||
cd "${CHROMIUM_S}" || die
|
||||
|
||||
local gn_system_libraries=(
|
||||
flac
|
||||
fontconfig
|
||||
freetype
|
||||
harfbuzz-ng
|
||||
icu
|
||||
libdrm
|
||||
libjpeg
|
||||
libpng
|
||||
libwebp
|
||||
libxml
|
||||
libxslt
|
||||
openh264
|
||||
re2
|
||||
snappy
|
||||
yasm
|
||||
zlib
|
||||
)
|
||||
if use system-ffmpeg;then
|
||||
gn_system_libraries+=( ffmpeg opus )
|
||||
fi
|
||||
if use system-libvpx;then
|
||||
gn_system_libraries+=( libvpx )
|
||||
fi
|
||||
local llvm_prefix="$(get_llvm_prefix -b)"
|
||||
local myconf_gn="import(\"//electron/build/args/$(usex debug debug release).gn\") clang_base_path=\"${llvm_prefix}/bin/\""
|
||||
|
||||
tc-export AR CC CXX NM
|
||||
|
||||
if ! tc-is-clang;then
|
||||
einfo "Using ${llvm_prefix}/bin/${CHOST}-clang++ for compilation..."
|
||||
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
|
||||
ewarn "Using a compiler other than clang is unsupported and will likely result in errors!"
|
||||
myconf_gn+=" is_clang=false"
|
||||
fi
|
||||
|
||||
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
|
||||
|
||||
myconf_gn+=" is_debug=$(usex debug true false)"
|
||||
myconf_gn+=" is_component_build=$(usex component-build true false)"
|
||||
myconf_gn+=" is_official_build=$(usex component-build false $(usex debug false true))"
|
||||
|
||||
myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
|
||||
myconf_gn+=" use_allocator=\"$(usex tcmalloc tcmalloc none)\""
|
||||
myconf_gn+=" enable_nacl=false"
|
||||
|
||||
myconf_gn+=" use_system_harfbuzz=true"
|
||||
myconf_gn+=" use_cups=$(usex cups true false)"
|
||||
myconf_gn+=" use_gio=$(usex gconf true false)"
|
||||
myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
|
||||
myconf_gn+=" use_kerberos=$(usex kerberos true false)"
|
||||
myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
|
||||
#prevent chromium from generating incompatible shims for pulse
|
||||
myconf_gn+=" link_pulseaudio=$(usex pulseaudio true false)"
|
||||
|
||||
myconf_gn+=" icu_use_data_file=false"
|
||||
myconf_gn+=" fieldtrial_testing_like_official_build=true"
|
||||
myconf_gn+=" use_gold=false use_sysroot=false"
|
||||
myconf_gn+=" linux_use_bundled_binutils=false use_custom_libcxx=false"
|
||||
myconf_gn+=" use_lld=false"
|
||||
myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
|
||||
myconf_gn+=" ffmpeg_branding=\"$(usex proprietary-codecs Chrome Chromium)\""
|
||||
|
||||
myconf_gn+=" use_official_google_api_keys=false"
|
||||
myconf_gn+=" google_api_key=\"\""
|
||||
myconf_gn+=" google_default_client_id=\"\""
|
||||
myconf_gn+=" google_default_client_secret=\"\""
|
||||
|
||||
myconf_gn+=" treat_warnings_as_errors=false"
|
||||
myconf_gn+=" fatal_linker_warnings=false"
|
||||
myconf_gn+=" is_electron_build=true"
|
||||
|
||||
|
||||
build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
|
||||
|
||||
local target_arch=$(_get_target_arch)
|
||||
local ffmpeg_target_arch="${target_arch}"
|
||||
|
||||
if ! use custom-cflags;then
|
||||
replace-flags "-Os" "-O2"
|
||||
append-cxxflags $(test-flags-CXX -Wno-unknown-warning-option)
|
||||
append-cxxflags $(test-flags-CXX -Wno-invalid-offsetof)
|
||||
append-cxxflags $(test-flags-CXX -Wno-return-type)
|
||||
append-cxxflags $(test-flags-CXX -Wno-unused-variable)
|
||||
strip-flags
|
||||
|
||||
if use x86;then
|
||||
filter-flags "-g*"
|
||||
fi
|
||||
|
||||
if [ "${target_arch}" == "x64" ] || [ "${target_arch}" == "ia32" ];then
|
||||
filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
|
||||
fi
|
||||
fi
|
||||
|
||||
if ! use system-ffmpeg;then
|
||||
local build_ffmpeg_args=""
|
||||
einfo "Configuring bundled ffmpeg..."
|
||||
pushd "${CHROMIUM_S}/third_party/ffmpeg" > /dev/null 2>&1 || 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 2>&1 || die
|
||||
fi
|
||||
|
||||
export TMPDIR="${WORKDIR}/temp"
|
||||
mkdir -p -m 755 "${TMPDIR}" || die
|
||||
|
||||
addpredict /dev/dri/
|
||||
|
||||
#NODE
|
||||
einfo "Configuring bundled nodejs..."
|
||||
pushd "${NODE_S}" > /dev/null 2>&1 || die
|
||||
./configure --shared --without-bundled-v8 \
|
||||
--shared-openssl --shared-http-parser --shared-zlib \
|
||||
--shared-nghttp2 --shared-cares --without-npm --with-intl=system-icu \
|
||||
--without-dtrace --dest-cpu=${target_arch} --prefix="" || die
|
||||
popd > /dev/null 2>&1 || die
|
||||
|
||||
set -- gn gen --args="${myconf_gn} ${EXTRA_GN} ${GN_EXTRA_ARGS}" out/Release
|
||||
echo "$@"
|
||||
"$@" || die
|
||||
sed -i -e "s/python /${EPYTHON} /g" out/Release/toolchain.ninja || die
|
||||
|
||||
#http_proxy="" yarn install || die
|
||||
|
||||
cd "${S}" || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
python_setup
|
||||
|
||||
cd "${CHROMIUM_S}" || die
|
||||
eninja -C out/Release electron || die
|
||||
einfo "Electron built successfully"
|
||||
|
||||
if ! use debug;then
|
||||
electron/script/strip-binaries.py -d out/Release || die
|
||||
fi
|
||||
eninja -C out/Release electron:electron_dist_zip || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local install_dir="$(_get_install_dir)"
|
||||
local install_suffix="$(_get_install_suffix)"
|
||||
|
||||
pushd "${CHROMIUM_S}/out/Release/locales" > /dev/null 2>&1 || die
|
||||
chromium_remove_language_paks
|
||||
popd > /dev/null 2>&1 || die
|
||||
|
||||
cd "${CHROMIUM_S}/out/Release" || die
|
||||
|
||||
dodir "${install_dir}"
|
||||
pushd "${ED}/${install_dir}" > /dev/null 2>&1 || die
|
||||
unpack "${CHROMIUM_S}/out/Release/dist.zip" || die
|
||||
popd > /dev/null 2>&1 || die
|
||||
|
||||
if [ -e "${ED}/${install_dir}/chrome-sandbox" ];then
|
||||
use suid && chmod 4755 "${ED}/${install_dir}/chrome-sandbox"
|
||||
fi
|
||||
|
||||
dodir "/usr/bin" || die
|
||||
dosym "../$(get_libdir)/electron${install_suffix}/electron" "/usr/bin/electron${install_suffix}" || die
|
||||
|
||||
HEADERS_ONLY=1 \
|
||||
"${NODE_S}/tools/install.py" install "${ED}" "/usr" || die
|
||||
dodir /usr/include/node/deps/{v8,uv} || die
|
||||
dosym . /usr/include/node/src || die
|
||||
for var in deps/{uv,v8}/include;do
|
||||
dosym "../.." "/usr/include/node/${var}" || die
|
||||
done
|
||||
|
||||
dodir "/usr/include/electron${install_suffix}" || die
|
||||
mv "${ED}/usr/include/node" "${ED}/usr/include/electron${install_suffix}/node" || die
|
||||
}
|
||||
pkg_postinst() {
|
||||
if [ "$(eselect electron show)" == "(none)" ];then
|
||||
eselect electron set "${PN}-${VERSION_MAJ}.${VERSION_MIN}"
|
||||
fi
|
||||
}
|
||||
pkg_postrm() {
|
||||
if [ "$(eselect electron show)" == "(none)" ];then
|
||||
eselect electron set 1
|
||||
fi
|
||||
}
|
||||
@ -1,31 +0,0 @@
|
||||
--- a/gpu/ipc/common/context_result.mojom 2019-11-11 13:31:52.516596344 -0800
|
||||
+++ b/gpu/ipc/common/context_result.mojom 2019-11-11 13:29:01.260608297 -0800
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
// gpu::ContextResult
|
||||
enum ContextResult {
|
||||
- Success,
|
||||
+ GPUMojSuccess,
|
||||
TransientFailure,
|
||||
FatalFailure,
|
||||
SurfaceFailure
|
||||
--- a/gpu/ipc/common/context_result_struct_traits.h 2019-11-11 13:32:01.669595705 -0800
|
||||
+++ b/gpu/ipc/common/context_result_struct_traits.h 2019-11-11 13:29:36.170605861 -0800
|
||||
@@ -15,7 +15,7 @@
|
||||
static gpu::mojom::ContextResult ToMojom(gpu::ContextResult context_result) {
|
||||
switch (context_result) {
|
||||
case gpu::ContextResult::kSuccess:
|
||||
- return gpu::mojom::ContextResult::Success;
|
||||
+ return gpu::mojom::ContextResult::GPUMojSuccess;
|
||||
case gpu::ContextResult::kTransientFailure:
|
||||
return gpu::mojom::ContextResult::TransientFailure;
|
||||
case gpu::ContextResult::kFatalFailure:
|
||||
@@ -30,7 +30,7 @@
|
||||
static bool FromMojom(gpu::mojom::ContextResult input,
|
||||
gpu::ContextResult* out) {
|
||||
switch (input) {
|
||||
- case gpu::mojom::ContextResult::Success:
|
||||
+ case gpu::mojom::ContextResult::GPUMojSuccess:
|
||||
*out = gpu::ContextResult::kSuccess;
|
||||
return true;
|
||||
case gpu::mojom::ContextResult::TransientFailure:
|
||||
@ -1,22 +0,0 @@
|
||||
diff -Naur a/third_party/blink/public/platform/web_rtc_rtp_source.h b/third_party/blink/public/platform/web_rtc_rtp_source.h
|
||||
--- a/third_party/blink/public/platform/web_rtc_rtp_source.h 2019-11-06 17:06:16.632850790 -0800
|
||||
+++ b/third_party/blink/public/platform/web_rtc_rtp_source.h 2019-11-06 17:06:56.022848040 -0800
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#include "base/optional.h"
|
||||
#include "third_party/blink/public/platform/web_common.h"
|
||||
+#include <memory> //unique_ptr
|
||||
|
||||
namespace base {
|
||||
class TimeTicks;
|
||||
diff -Naur a/third_party/blink/renderer/platform/graphics/canvas_color_params.cc b/third_party/blink/renderer/platform/graphics/canvas_color_params.cc
|
||||
--- a/third_party/blink/renderer/platform/graphics/canvas_color_params.cc 2019-11-07 10:34:36.634460556 -0800
|
||||
+++ b/third_party/blink/renderer/platform/graphics/canvas_color_params.cc 2019-11-07 10:35:12.662458041 -0800
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "third_party/skia/include/core/SkSurfaceProps.h"
|
||||
#include "ui/gfx/color_space.h"
|
||||
#include "ui/gfx/switches.h"
|
||||
+#include "base/command_line.h"
|
||||
|
||||
namespace blink {
|
||||
|
||||
@ -1,46 +0,0 @@
|
||||
From 9662ec844017690d5fd56bf0f05ef6a540dd29c1 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Anderson <thomasanderson@chromium.org>
|
||||
Date: Mon, 09 Sep 2019 19:06:01 +0000
|
||||
Subject: [PATCH] Fix GCC build error
|
||||
|
||||
Fixes this error:
|
||||
[ 375s] In file included from ../../base/task/common/intrusive_heap.h:8,
|
||||
[ 375s] from ../../base/task/thread_pool/task_source.h:17,
|
||||
[ 375s] from ../../base/task/thread_pool/task_tracker.h:27,
|
||||
[ 375s] from ./../../base/task/thread_pool/service_thread.cc:14,
|
||||
[ 375s] from gen/base/base_jumbo_28.cc:5:
|
||||
[ 375s] ../../base/containers/intrusive_heap.h:152:36: error: enumerator value
|
||||
'-1' is outside the range of underlying type 'size_t' {aka 'long unsigned int'}
|
||||
[ 375s] 152 | enum : size_t { kInvalidIndex = -1 };
|
||||
[ 375s] |
|
||||
|
||||
Change-Id: I6044fb704931b2f8416f6b19a247ae297cd7b0d6
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1792763
|
||||
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
|
||||
Commit-Queue: Lei Zhang <thestig@chromium.org>
|
||||
Reviewed-by: Lei Zhang <thestig@chromium.org>
|
||||
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/master@{#694853}
|
||||
---
|
||||
|
||||
diff --git a/base/containers/intrusive_heap.h b/base/containers/intrusive_heap.h
|
||||
index 53d3909..d7626bb 100644
|
||||
--- a/base/containers/intrusive_heap.h
|
||||
+++ b/base/containers/intrusive_heap.h
|
||||
@@ -131,6 +131,7 @@
|
||||
|
||||
#include <algorithm>
|
||||
#include <functional>
|
||||
+#include <limits>
|
||||
#include <type_traits>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
@@ -149,7 +150,7 @@
|
||||
// in place.
|
||||
class BASE_EXPORT HeapHandle {
|
||||
public:
|
||||
- enum : size_t { kInvalidIndex = -1 };
|
||||
+ enum : size_t { kInvalidIndex = std::numeric_limits<size_t>::max() };
|
||||
|
||||
constexpr HeapHandle() = default;
|
||||
constexpr HeapHandle(const HeapHandle& other) = default;
|
||||
@ -1,12 +0,0 @@
|
||||
diff -Naur a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
|
||||
--- a/third_party/blink/renderer/core/dom/document.cc 2019-12-21 01:02:56.696356861 -0800
|
||||
+++ b/third_party/blink/renderer/core/dom/document.cc 2019-12-21 01:03:18.879355215 -0800
|
||||
@@ -6216,7 +6216,7 @@
|
||||
|
||||
for (unsigned i = 0; i < length;) {
|
||||
UChar32 c;
|
||||
- U16_NEXT(characters, i, length, c)
|
||||
+ U16_NEXT(characters, i, length, c);
|
||||
if (c == ':') {
|
||||
if (saw_colon)
|
||||
return ParseQualifiedNameResult(kQNMultipleColons);
|
||||
@ -1,13 +0,0 @@
|
||||
diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
|
||||
index 3bc618a..e0ddf6d 100644
|
||||
--- a/third_party/perfetto/gn/BUILD.gn
|
||||
+++ b/third_party/perfetto/gn/BUILD.gn
|
||||
@@ -244,7 +244,7 @@ if (enable_perfetto_trace_processor || perfetto_build_standalone ||
|
||||
"//buildtools:zlib",
|
||||
]
|
||||
} else {
|
||||
- public_configs = [ "//third_party/zlib:zlib_config" ]
|
||||
+ public_configs = [ "//third_party/zlib:system_zlib" ]
|
||||
public_deps = [
|
||||
"//third_party/zlib",
|
||||
]
|
||||
@ -1,12 +0,0 @@
|
||||
diff -Naur a/tools/generate_shim_headers/generate_shim_headers.py b/tools/generate_shim_headers/generate_shim_headers.py
|
||||
--- a/tools/generate_shim_headers/generate_shim_headers.py 2019-11-08 15:51:50.351101594 -0800
|
||||
+++ b/tools/generate_shim_headers/generate_shim_headers.py 2019-11-08 15:52:42.156097978 -0800
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
|
||||
SHIM_TEMPLATE = """
|
||||
-#if defined(OFFICIAL_BUILD)
|
||||
+#if defined(GOOGLE_CHROME_BUILD)
|
||||
#error shim headers must not be used in official builds!
|
||||
#endif
|
||||
"""
|
||||
@ -1,33 +0,0 @@
|
||||
diff -Naur a/gpu/ipc/common/context_result.mojom b/gpu/ipc/common/context_result.mojom
|
||||
--- a/gpu/ipc/common/context_result.mojom 2019-11-05 10:30:49.832537315 -0800
|
||||
+++ b/gpu/ipc/common/context_result.mojom 2019-11-05 10:35:50.845516305 -0800
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
// gpu::ContextResult
|
||||
enum ContextResult {
|
||||
- Success,
|
||||
+ GPUMojSuccess,
|
||||
TransientFailure,
|
||||
FatalFailure,
|
||||
SurfaceFailure
|
||||
diff -Naur a/gpu/ipc/common/context_result_mojom_traits.h b/gpu/ipc/common/context_result_mojom_traits.h
|
||||
--- a/gpu/ipc/common/context_result_mojom_traits.h 2019-11-05 10:30:57.564536775 -0800
|
||||
+++ b/gpu/ipc/common/context_result_mojom_traits.h 2019-11-05 10:33:06.343527787 -0800
|
||||
@@ -15,7 +15,7 @@
|
||||
static gpu::mojom::ContextResult ToMojom(gpu::ContextResult context_result) {
|
||||
switch (context_result) {
|
||||
case gpu::ContextResult::kSuccess:
|
||||
- return gpu::mojom::ContextResult::Success;
|
||||
+ return gpu::mojom::ContextResult::GPUMojSuccess;
|
||||
case gpu::ContextResult::kTransientFailure:
|
||||
return gpu::mojom::ContextResult::TransientFailure;
|
||||
case gpu::ContextResult::kFatalFailure:
|
||||
@@ -30,7 +30,7 @@
|
||||
static bool FromMojom(gpu::mojom::ContextResult input,
|
||||
gpu::ContextResult* out) {
|
||||
switch (input) {
|
||||
- case gpu::mojom::ContextResult::Success:
|
||||
+ case gpu::mojom::ContextResult::GPUMojSuccess:
|
||||
*out = gpu::ContextResult::kSuccess;
|
||||
return true;
|
||||
case gpu::mojom::ContextResult::TransientFailure:
|
||||
@ -1,33 +0,0 @@
|
||||
From 8273f4d3130e06fd8b6bef87b07c936304b971d9 Mon Sep 17 00:00:00 2001
|
||||
From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
|
||||
Date: Tue, 10 Dec 2019 20:59:57 +0000
|
||||
Subject: [PATCH] [cros search service]: Include <cmath> for std::pow()
|
||||
|
||||
IWYU. Follow up to commit 2b2ea3c09b ("[cros search service] Move shared
|
||||
string matching functions to //chrome"), which broke the libstdc++ build:
|
||||
|
||||
../../chrome/common/string_matching/fuzzy_tokenized_string_match.cc:199:14: error: no member named 'pow' in namespace 'std'
|
||||
std::pow(partial_match_penalty_rate, long_start - current - 1);
|
||||
~~~~~^
|
||||
|
||||
Bug: 957519
|
||||
Change-Id: I66f61cb4f93cfa0bfa3d1b00ba391ddd8f31a7fb
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1960310
|
||||
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
|
||||
Reviewed-by: Jia Meng <jiameng@chromium.org>
|
||||
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
|
||||
Cr-Commit-Position: refs/heads/master@{#723499}
|
||||
---
|
||||
|
||||
diff --git a/chrome/common/string_matching/fuzzy_tokenized_string_match.cc b/chrome/common/string_matching/fuzzy_tokenized_string_match.cc
|
||||
index 8351fa7..884ef63 100644
|
||||
--- a/chrome/common/string_matching/fuzzy_tokenized_string_match.cc
|
||||
+++ b/chrome/common/string_matching/fuzzy_tokenized_string_match.cc
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "chrome/common/string_matching/fuzzy_tokenized_string_match.h"
|
||||
|
||||
#include <algorithm>
|
||||
+#include <cmath>
|
||||
#include <iterator>
|
||||
|
||||
#include "base/i18n/case_conversion.h"
|
||||
@ -1,101 +0,0 @@
|
||||
diff --git a/build/linux/unbundle/libxml.gn b/build/linux/unbundle/libxml.gn
|
||||
index c481bd3..3aaa1a4 100644
|
||||
--- a/build/linux/unbundle/libxml.gn
|
||||
+++ b/build/linux/unbundle/libxml.gn
|
||||
@@ -8,11 +8,52 @@ pkg_config("system_libxml") {
|
||||
packages = [ "libxml-2.0" ]
|
||||
}
|
||||
|
||||
-static_library("libxml") {
|
||||
+source_set("libxml") {
|
||||
+ public_configs = [ ":system_libxml" ]
|
||||
+}
|
||||
+
|
||||
+static_library("libxml_utils") {
|
||||
+ # Do not expand this visibility list without first consulting with the
|
||||
+ # Security Team.
|
||||
+ visibility = [
|
||||
+ ":xml_reader",
|
||||
+ ":xml_writer",
|
||||
+ "//base/test:test_support",
|
||||
+ "//services/data_decoder:xml_parser_fuzzer",
|
||||
+ ]
|
||||
sources = [
|
||||
"chromium/libxml_utils.cc",
|
||||
"chromium/libxml_utils.h",
|
||||
]
|
||||
-
|
||||
public_configs = [ ":system_libxml" ]
|
||||
}
|
||||
+
|
||||
+static_library("xml_reader") {
|
||||
+ # Do not expand this visibility list without first consulting with the
|
||||
+ # Security Team.
|
||||
+ visibility = [
|
||||
+ "//base/test:test_support",
|
||||
+ "//components/policy/core/common:unit_tests",
|
||||
+ "//services/data_decoder:*",
|
||||
+ "//tools/traffic_annotation/auditor:auditor_sources",
|
||||
+ ]
|
||||
+ sources = [
|
||||
+ "chromium/xml_reader.cc",
|
||||
+ "chromium/xml_reader.h",
|
||||
+ ]
|
||||
+ deps = [
|
||||
+ ":libxml_utils",
|
||||
+ ]
|
||||
+}
|
||||
+
|
||||
+static_library("xml_writer") {
|
||||
+ # The XmlWriter is considered safe to use from any target.
|
||||
+ visibility = [ "*" ]
|
||||
+ sources = [
|
||||
+ "chromium/xml_writer.cc",
|
||||
+ "chromium/xml_writer.h",
|
||||
+ ]
|
||||
+ deps = [
|
||||
+ ":libxml_utils",
|
||||
+ ]
|
||||
+}
|
||||
diff --git a/third_party/libxml/chromium/libxml_utils.h b/third_party/libxml/chromium/libxml_utils.h
|
||||
index ff969fa..e0f3ecd 100644
|
||||
--- a/third_party/libxml/chromium/libxml_utils.h
|
||||
+++ b/third_party/libxml/chromium/libxml_utils.h
|
||||
@@ -6,8 +6,7 @@
|
||||
#define THIRD_PARTY_LIBXML_CHROMIUM_LIBXML_UTILS_H_
|
||||
|
||||
#include <string>
|
||||
-
|
||||
-#include "third_party/libxml/src/include/libxml/xmlreader.h"
|
||||
+#include <libxml/xmlreader.h>
|
||||
|
||||
// libxml uses a global error function pointer for reporting errors.
|
||||
// A ScopedXmlErrorFunc object lets you change the global error pointer
|
||||
diff --git a/third_party/libxml/chromium/xml_reader.cc b/third_party/libxml/chromium/xml_reader.cc
|
||||
index 92464f4..4779290 100644
|
||||
--- a/third_party/libxml/chromium/xml_reader.cc
|
||||
+++ b/third_party/libxml/chromium/xml_reader.cc
|
||||
@@ -7,7 +7,8 @@
|
||||
#include <vector>
|
||||
|
||||
#include "third_party/libxml/chromium/libxml_utils.h"
|
||||
-#include "third_party/libxml/src/include/libxml/xmlreader.h"
|
||||
+
|
||||
+#include <libxml/xmlreader.h>
|
||||
|
||||
using internal::XmlStringToStdString;
|
||||
|
||||
diff --git a/third_party/libxml/chromium/xml_writer.cc b/third_party/libxml/chromium/xml_writer.cc
|
||||
index 51fce8e..aa3a34f 100644
|
||||
--- a/third_party/libxml/chromium/xml_writer.cc
|
||||
+++ b/third_party/libxml/chromium/xml_writer.cc
|
||||
@@ -5,7 +5,8 @@
|
||||
#include "third_party/libxml/chromium/xml_writer.h"
|
||||
|
||||
#include "third_party/libxml/chromium/libxml_utils.h"
|
||||
-#include "third_party/libxml/src/include/libxml/xmlwriter.h"
|
||||
+
|
||||
+#include <libxml/xmlwriter.h>
|
||||
|
||||
XmlWriter::XmlWriter() : writer_(nullptr), buffer_(nullptr) {}
|
||||
|
||||
@ -1,21 +0,0 @@
|
||||
diff -Naur a/patches/common/chromium/viz_osr.patch b/patches/common/chromium/viz_osr.patch
|
||||
--- a/patches/common/chromium/viz_osr.patch 2019-11-11 13:22:26.792635830 -0800
|
||||
+++ b/patches/common/chromium/viz_osr.patch 2019-11-11 13:20:34.542643665 -0800
|
||||
@@ -354,7 +354,7 @@
|
||||
index 0000000000000000000000000000000000000000..ff3c0217812a8370a20aa528f117e928fd1b95f4
|
||||
--- /dev/null
|
||||
+++ b/components/viz/service/display_embedder/software_output_device_proxy.h
|
||||
-@@ -0,0 +1,88 @@
|
||||
+@@ -0,0 +1,90 @@
|
||||
+// Copyright 2014 The Chromium Authors. All rights reserved.
|
||||
+// Use of this source code is governed by a BSD-style license that can be
|
||||
+// found in the LICENSE file.
|
||||
@@ -373,6 +373,8 @@
|
||||
+#include "components/viz/service/viz_service_export.h"
|
||||
+#include "services/viz/privileged/interfaces/compositing/display_private.mojom.h"
|
||||
+#include "services/viz/privileged/interfaces/compositing/layered_window_updater.mojom.h"
|
||||
++#include "base/threading/thread_checker.h"
|
||||
++#include "base/memory/shared_memory_mapping.h"
|
||||
+
|
||||
+namespace viz {
|
||||
+
|
||||
@ -1,37 +0,0 @@
|
||||
diff -Naur a/patches/chromium/feat_offscreen_rendering_with_viz_compositor.patch b/patches/chromium/feat_offscreen_rendering_with_viz_compositor.patch
|
||||
--- a/patches/chromium/feat_offscreen_rendering_with_viz_compositor.patch 2019-11-05 09:34:30.854773158 -0800
|
||||
+++ b/patches/chromium/feat_offscreen_rendering_with_viz_compositor.patch 2019-11-05 09:35:11.310770334 -0800
|
||||
@@ -188,7 +188,7 @@
|
||||
index 0000000000000000000000000000000000000000..c17b03e00089bfd301c63910426bb16afb8cdae7
|
||||
--- /dev/null
|
||||
+++ b/components/viz/service/display_embedder/software_output_device_proxy.cc
|
||||
-@@ -0,0 +1,156 @@
|
||||
+@@ -0,0 +1,155 @@
|
||||
+// Copyright 2014 The Chromium Authors. All rights reserved.
|
||||
+// Use of this source code is governed by a BSD-style license that can be
|
||||
+// found in the LICENSE file.
|
||||
@@ -196,7 +196,6 @@
|
||||
+#include "components/viz/service/display_embedder/software_output_device_proxy.h"
|
||||
+
|
||||
+#include "base/memory/unsafe_shared_memory_region.h"
|
||||
-+#include "base/threading/thread_checker.h"
|
||||
+#include "components/viz/common/resources/resource_sizes.h"
|
||||
+#include "components/viz/service/display_embedder/output_device_backing.h"
|
||||
+#include "mojo/public/cpp/system/platform_handle.h"
|
||||
@@ -350,7 +349,7 @@
|
||||
index 0000000000000000000000000000000000000000..3865939d0445a23a468770f57207ba5ef23277ed
|
||||
--- /dev/null
|
||||
+++ b/components/viz/service/display_embedder/software_output_device_proxy.h
|
||||
-@@ -0,0 +1,88 @@
|
||||
+@@ -0,0 +1,89 @@
|
||||
+// Copyright 2014 The Chromium Authors. All rights reserved.
|
||||
+// Use of this source code is governed by a BSD-style license that can be
|
||||
+// found in the LICENSE file.
|
||||
@@ -364,6 +363,7 @@
|
||||
+
|
||||
+#include <memory>
|
||||
+
|
||||
++#include "base/threading/thread_checker.h"
|
||||
+#include "components/viz/host/host_display_client.h"
|
||||
+#include "components/viz/service/display/software_output_device.h"
|
||||
+#include "components/viz/service/viz_service_export.h"
|
||||
@ -1,31 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>rexerton.rexy@tutamail.com</email>
|
||||
<name>rexy712</name>
|
||||
</maintainer>
|
||||
<upstream>
|
||||
<remote-id type="github">electron/electron</remote-id>
|
||||
<bugs-to>https://github.com/electron/electron/issues</bugs-to>
|
||||
<doc>https://electronjs.org/docs</doc>
|
||||
</upstream>
|
||||
<longdescription lang="en">
|
||||
Electron is an open source library developed by GitHub
|
||||
for building cross-platform desktop applications with
|
||||
HTML, CSS, and JavaScript. Electron accomplishes this
|
||||
by combining Chromium and Node.js into a single runtime
|
||||
and apps can be packaged for Mac, Windows, and Linux.
|
||||
</longdescription>
|
||||
<use>
|
||||
<flag name="component-build">Split build into more shared libraries to speed up linking. Mostly intended for debugging and development</flag>
|
||||
<flag name="gconf">Use gnome-base/gconf</flag>
|
||||
<flag name="jumbo-build">Combine source files to speed up build process</flag>
|
||||
<flag name="proprietary-codecs">Enable proprietary codecs like H.264, MP3</flag>
|
||||
<flag name="suid">Build the SUID sandbox, which is only needed on CONFIG_USER_NS=n kernels</flag>
|
||||
<flag name="system-ffmpeg">Use system ffmpeg instead of the bundled one</flag>
|
||||
<flag name="system-libvpx">Use system libvpx instead of the bundled one</flag>
|
||||
<flag name="system-ssl">Use system ssl instead of the bundled one</flag>
|
||||
<flag name="tcmalloc">Use bundled tcmalloc instead of system malloc</flag>
|
||||
</use>
|
||||
</pkgmetadata>
|
||||
Loading…
x
Reference in New Issue
Block a user