Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 579116 - dev-util/electron: Add ebuild for Github's Electron (v0.36.9)
Summary: dev-util/electron: Add ebuild for Github's Electron (v0.36.9)
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Elvis Pranskevichus
URL: https://github.com/elprans/atom-overl...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-04-05 22:28 UTC by Elvis Pranskevichus
Modified: 2016-05-03 18:30 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Elvis Pranskevichus 2016-04-05 22:28:49 UTC
Electron is an application framework built on top of Chromium and NodeJS.
It allows creating cross-platform desktop apps using Web tech. [1]

The main user of Electron is the Atom IDE [2]. Microsoft Visual Studio
Code is also based on Electron. It is also useful for the creation of
desktop wrappers for popular web services, e.g. Google Music [3].

Unfortunately, current upstream's approach to "building Electron from
source" involves downloading a pre-built libchromiumcontent.so binary
from the Internet, which poses obvious security and compatibility risks.

This ebuild is based heavily on the Chromium ebuild and follows similar
unbundling policy.

Additionally, Electron-specific NodeJS headers are installed to
/usr/include so that native modules built for Electron-based apps can be
compiled against the correct version of NodeJS embedded in Electron.

The ebuild is available in the atom overlay (available in layman) [4] and has been submitted for inclusion in a pull request [5].

[1] http://electron.atom.io/
[2] http://atom.io/
[3] https://github.com/twolfson/google-music-electron
[4] https://github.com/elprans/atom-overlay
[5] https://github.com/gentoo/gentoo/pull/1200
Comment 1 Patrice Clement gentoo-dev 2016-05-03 14:55:50 UTC
Thanks a lot for your contribution. We're going to merge this package
Comment 2 Patrice Clement gentoo-dev 2016-05-03 14:59:48 UTC
commit a55e29746e8dee096d59d4c60caa562b70c54c2e (HEAD -> master)
Author:     Elvis Pranskevichus <elvis@magic.io>
AuthorDate: Tue Apr 5 12:29:26 2016 -0400
Commit:     Patrice Clement <monsieurp@gentoo.org>
CommitDate: Tue May 3 14:43:20 2016 +0000

dev-util/electron: Add ebuild for Github's Electron (v0.36.9)

Electron is an application framework built on top of Chromium and NodeJS.
It allows creating cross-platform desktop apps using Web tech. [1]

The main user of Electron is the Atom IDE [2].  Microsoft Visual Studio
Code is also based on Electron.  It is also useful for the creation of
desktop wrappers for popular web services, e.g. Google Music [3].

Unfortunately, current upstream's approach to "building Electron from
source" involves downloading a pre-built libchromiumcontent.so binary
from the Internet, which poses obvious security and compatibility risks.

This ebuild is based heavily on the Chromium ebuild and follows similar
unbunling policy.

Additionally, Electron-specific NodeJS headers are installed to
/usr/include so that native modules built for Electron-based apps can be
compiled against the correct version of NodeJS embedded in Electron.

[1] http://electron.atom.io/
[2] http://atom.io/
[3] https://github.com/twolfson/google-music-electron

Gentoo-Bug: https://bugs.gentoo.org/579116
Closes: https://github.com/gentoo/gentoo/pull/1200
Package-Manager: portage-2.2.28

Acked-by: Mike Gilbert <floppym@gentoo.org>
Signed-off-by: Patrice Clement <monsieurp@gentoo.org>

dev-util/electron/Manifest                                          |   7 +
dev-util/electron/electron-0.36.12.ebuild                           | 722 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
dev-util/electron/files/brightray-gentoo-build-fixes.patch          |  81 +++++++++++
dev-util/electron/files/chromium-disable-widevine.patch             |   9 ++
dev-util/electron/files/chromium-lto-fixes.patch                    |  26 ++++
dev-util/electron/files/chromium-remove-gardiner-mod-font.patch     |  13 ++
dev-util/electron/files/chromium-shared-v8.patch                    |  15 +++
dev-util/electron/files/chromium-system-ffmpeg-r0.patch             |  54 ++++++++
dev-util/electron/files/chromium-system-jinja-r7.patch              |  35 +++++
dev-util/electron/files/chromium-system-libvpx-r0.patch             |  20 +++
dev-util/electron/files/electron-gentoo-build-fixes.patch           | 157 ++++++++++++++++++++++
dev-util/electron/files/libchromiumcontent-gentoo-build-fixes.patch |  75 +++++++++++
dev-util/electron/files/node-gentoo-build-fixes.patch               |  50 +++++++
dev-util/electron/metadata.xml                                      |  22 +++
14 files changed, 1286 insertions(+)
create mode 100644 dev-util/electron/Manifest
create mode 100644 dev-util/electron/electron-0.36.12.ebuild
create mode 100644 dev-util/electron/files/brightray-gentoo-build-fixes.patch
create mode 100644 dev-util/electron/files/chromium-disable-widevine.patch
create mode 100644 dev-util/electron/files/chromium-lto-fixes.patch
create mode 100644 dev-util/electron/files/chromium-remove-gardiner-mod-font.patch
create mode 100644 dev-util/electron/files/chromium-shared-v8.patch
create mode 100644 dev-util/electron/files/chromium-system-ffmpeg-r0.patch
create mode 100644 dev-util/electron/files/chromium-system-jinja-r7.patch
create mode 100644 dev-util/electron/files/chromium-system-libvpx-r0.patch
create mode 100644 dev-util/electron/files/electron-gentoo-build-fixes.patch
create mode 100644 dev-util/electron/files/libchromiumcontent-gentoo-build-fixes.patch
create mode 100644 dev-util/electron/files/node-gentoo-build-fixes.patch
create mode 100644 dev-util/electron/metadata.xml


Please make sure to file a bug in 30 days to have our arch teams stabilise this package. Thanks!
Comment 3 Dennis Schridde 2016-05-03 18:03:35 UTC
(In reply to Patrice Clement from comment #2)
> commit a55e29746e8dee096d59d4c60caa562b70c54c2e (HEAD -> master)
> Author:     Elvis Pranskevichus <elvis@magic.io>
> AuthorDate: Tue Apr 5 12:29:26 2016 -0400
> Commit:     Patrice Clement <monsieurp@gentoo.org>
> CommitDate: Tue May 3 14:43:20 2016 +0000

Thanks!

> dev-util/electron: Add ebuild for Github's Electron (v0.36.9)

I get a checksum failure:
!!! Previously fetched file: '/var/cache/portage/distfiles/chromium-47.0.2526.110.tar.xz'
!!! Reason: Failed on SHA256 verification
!!! Got:      65a86d9532e03f94844a4e9b1996af85baeb00c95effe962baa153352483463e
!!! Expected: edab0d78709ba5edd35e85d82241de884d75dc46abdf7621b6178fa6647d14af

> The main user of Electron is the Atom IDE [2].

Could the (currently terribly broken; see all the entries in this bugtracker) ebuild for app-editors/atom be adapted to use dev-util/electron?

> Unfortunately, current upstream's approach to "building Electron from
> source" involves downloading a pre-built libchromiumcontent.so binary
> from the Internet, which poses obvious security and compatibility risks.

Did you patch this, so it does not occur anymore? Is it possible to fix that to e.g. either build the file within dev-util/electron or use the one from www-client/chromium?
Comment 4 Patrice Clement gentoo-dev 2016-05-03 18:19:25 UTC
(In reply to Dennis Schridde from comment #3)
> (In reply to Patrice Clement from comment #2)
> > commit a55e29746e8dee096d59d4c60caa562b70c54c2e (HEAD -> master)
> > Author:     Elvis Pranskevichus <elvis@magic.io>
> > AuthorDate: Tue Apr 5 12:29:26 2016 -0400
> > Commit:     Patrice Clement <monsieurp@gentoo.org>
> > CommitDate: Tue May 3 14:43:20 2016 +0000
> 
> Thanks!
> 
> > dev-util/electron: Add ebuild for Github's Electron (v0.36.9)
> 
> I get a checksum failure:
> !!! Previously fetched file:
> '/var/cache/portage/distfiles/chromium-47.0.2526.110.tar.xz'
> !!! Reason: Failed on SHA256 verification
> !!! Got:     
> 65a86d9532e03f94844a4e9b1996af85baeb00c95effe962baa153352483463e
> !!! Expected:
> edab0d78709ba5edd35e85d82241de884d75dc46abdf7621b6178fa6647d14af

Please try again. I just regenerated the Manifest file and pushed it in  379039e996467fb47738c7b7f3937d8d0c4e5a17.
Comment 5 Patrice Clement gentoo-dev 2016-05-03 18:20:41 UTC
5428648423d696ece4537a73c749d3b28de6be16 actually. Sorry!
Comment 6 Elvis Pranskevichus 2016-05-03 18:30:26 UTC
> Could the (currently terribly broken; see all the entries in this
> bugtracker) ebuild for app-editors/atom be adapted to use dev-util/electron?
> 

That's the intention.  The atom ebuild that uses this version of electron can be found in the atom overlay: https://github.com/elprans/atom-overlay.

It still needs unbundling/repackaging work before it can be submitted for inclusion in the main tree.

> > Unfortunately, current upstream's approach to "building Electron from
> > source" involves downloading a pre-built libchromiumcontent.so binary
> > from the Internet, which poses obvious security and compatibility risks.
> 
> Did you patch this, so it does not occur anymore? Is it possible to fix that
> to e.g. either build the file within dev-util/electron or use the one from
> www-client/chromium?

dev-util/electron is complete source recompile, it includes no binary blobs.