Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Emerging app-editors/atom fails with dev-util/electron
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
alogim
n00b
n00b


Joined: 21 Aug 2015
Posts: 50

PostPosted: Fri Oct 06, 2017 11:03 am    Post subject: Emerging app-editors/atom fails with dev-util/electron Reply with quote

Good afternoon everyone. I am looking for a good editor for a project that involves writing code in HTML, CSS, JavaScript and PHP. I think that Brackets, Atom and Aptana are very good. Since I am using Gentoo, I would like to compile from source the packages I use.

I tried compiling Brackets from source, however it requires NodeJS and apparently there is no way to install it without removing the «bindist» flag.

So, I switched to app-editors/atom, however, after more than two hours spent compiling dev-util/electron, it fails. As far as I have understood, it fails because it does not find NodeJS, even if it is not in the dependencies.

Here is the log:
Code:
[14397/14397] touch obj/chromiumcontent/chromiumcontent.stamp
/var/tmp/portage/dev-util/electron-1.6.11-r1/work/electron-1.6.11/chromium/build/gyp_chromium --depth=. -Duse_cups=1 -Duse_gconf=0 -Duse_gnome_keyring=0 -Dlinux_link_gnome_keyring=0 -Duse_lto=0 -Dclang=0 -Dclang_use_chrome_plugins=0 -Dhost_clang=0 -Dlinux_use_bundled_binutils=0 -Dlinux_use_bundled_gold=0 -Dlinux_use_gold_flags=0 -Dsysroot= -Dtarget_arch=x64 -Dwerror= -Ddisable_fatal_linker_warnings=1 -Dicu_use_data_file_flag=0 -Dgenerate_character_data=0 -Dlibchromiumcontent_component=0 -Dcomponent=static_library -Dlibrary=static_library -Ivendor/node/config.gypi -Icommon.gypi electron.gyp
Updating projects from gyp files...
/usr/bin/env: ‘node’: No such file or directory
Traceback (most recent call last):
  File "tools/list-browserify-deps.py", line 12, in <module>
    deps = subprocess.check_output([BROWSERIFY, '--list'] + sys.argv[1:])
  File "/usr/lib64/python2.7/subprocess.py", line 574, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['node_modules/.bin/browserify', '--list', './lib/sandboxed_renderer/init.js', '-r', './lib/sandboxed_renderer/api/exports/electron.js:electron', '-r', './lib/sandboxed_renderer/api/exports/fs.js:fs', '-r', './lib/sandboxed_renderer/api/exports/os.js:os', '-r', './lib/sandboxed_renderer/api/exports/path.js:path', '-r', './lib/sandboxed_renderer/api/exports/child_process.js:child_process']' returned non-zero exit status 127
gyp: Call to 'python tools/list-browserify-deps.py ./lib/sandboxed_renderer/init.js -r ./lib/sandboxed_renderer/api/exports/electron.js:electron -r ./lib/sandboxed_renderer/api/exports/fs.js:fs -r ./lib/sandboxed_renderer/api/exports/os.js:os -r ./lib/sandboxed_renderer/api/exports/path.js:path -r ./lib/sandboxed_renderer/api/exports/child_process.js:child_process' returned exit status 1 while in electron.gyp.
 * ERROR: dev-util/electron-1.6.11-r1::gentoo failed (compile phase):
 *   (no error message)
 *
 * Call stack:
 *     ebuild.sh, line 115:  Called src_compile
 *   environment, line 5307:  Called die
 * The specific snippet of code:
 *       EGYP_CHROMIUM_COMMAND="${CHROMIUM_S}/build/gyp_chromium" egyp_chromium ${myconf_gyp} || die;
 *
 * If you need support, post the output of `emerge --info '=dev-util/electron-1.6.11-r1::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=dev-util/electron-1.6.11-r1::gentoo'`.
 *
 * MemTotal:        8059920 kB
 * SwapTotal:             0 kB
 *
 * The complete build log is located at '/var/tmp/portage/dev-util/electron-1.6.11-r1/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-util/electron-1.6.11-r1/temp/environment'.
 * Working directory: '/var/tmp/portage/dev-util/electron-1.6.11-r1/work/electron-1.6.11'
 * S: '/var/tmp/portage/dev-util/electron-1.6.11-r1/work/electron-1.6.11'


The output of «emerge --info '=dev-util/electron-1.6.11-r1::gentoo'»:
Code:

Portage 2.3.8 (python 3.4.5-final-0, default/linux/amd64/13.0/desktop, gcc-5.4.0, glibc-2.23-r4, 4.12.12-gentoo x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-4.12.12-gentoo-x86_64-Intel-R-_Core-TM-_i5-3570K_CPU_@_3.40GHz-with-gentoo-2.4.1
KiB Mem:     8059920 total,   1600416 free
KiB Swap:          0 total,         0 free
Timestamp of repository gentoo: Thu, 05 Oct 2017 10:00:01 +0000
Head commit of repository gentoo: df13a79d3c81870a3c37e6e71af246040bf8f01f
sh bash 4.3_p48-r1
ld GNU ld (Gentoo 2.28.1 p1.0) 2.28.1
app-shells/bash:          4.3_p48-r1::gentoo
dev-lang/perl:            5.24.1-r2::gentoo
dev-lang/python:          2.7.12::gentoo, 3.4.5::gentoo
dev-util/cmake:           3.7.2::gentoo
dev-util/pkgconfig:       0.28-r2::gentoo
sys-apps/baselayout:      2.4.1-r2::gentoo
sys-apps/openrc:          0.28::gentoo
sys-apps/sandbox:         2.10-r3::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69::gentoo
sys-devel/automake:       1.11.6-r1::gentoo, 1.15-r2::gentoo
sys-devel/binutils:       2.28.1::gentoo
sys-devel/gcc:            5.4.0-r3::gentoo
sys-devel/gcc-config:     1.8-r1::gentoo
sys-devel/libtool:        2.4.6-r3::gentoo
sys-devel/make:           4.2.1::gentoo
sys-kernel/linux-headers: 4.4::gentoo (virtual/os-headers)
sys-libs/glibc:           2.23-r4::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000

localrepo
    location: /usr/local/portage
    masters: gentoo
    priority: 0

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=native -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync multilib-strict news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="ftp://gentoo.imj.fr/pub/gentoo/ http://gentoo.modulix.net/gentoo/"
LANG="en_GB.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="X a52 aac acl acpi alsa amd64 berkdb bindist bluetooth branding bzip2 cairo cdda cdr cli consolekit cracklib crypt cups cxx dbus dri dts dvd dvdr emboss encode exif fam firefox flac fortran gdbm gif glamor gpm gtk iconv jpeg lcms ldap libnotify mad mng modules mp3 mp4 mpeg multilib ncurses nls nptl ogg opengl openmp pam pango pcre pdf png policykit ppds pulseaudio qt3support readline sdl seccomp session spell ssl startup-notification svg tcpd tiff truetype udev udisks unicode upower usb vorbis wxwidgets x264 xattr xcb xml xv xvid zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput keyboard mouse" KERNEL="linux" L10N="en" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6" POSTGRES_TARGETS="postgres9_5" PYTHON_SINGLE_TARGET="python3_4" PYTHON_TARGETS="python2_7 python3_4" RUBY_TARGETS="ruby22" USERLAND="GNU" VIDEO_CARDS="radeon" XFCE_PLUGINS="clock" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS


The output of «emerge -pqv '=dev-util/electron-1.6.11-r1::gentoo'»:
Code:

[ebuild  N    ] dev-util/electron-1.6.11-r1  USE="cups proprietary-codecs pulseaudio system-ffmpeg tcmalloc -custom-cflags -gnome -gnome-keyring -kerberos -lto (-neon) -pic (-selinux) {-test}" L10N="-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"


So, I have some questions:

  • Is there any alternative editor that is maybe supported (even unofficially) by Gentoo?
  • How do you install NodeJS without disabling «bindist» (which pulls in proprietary things which I do not want to use)?
  • Is the above fail actually caused by the absence of NodeJS?
Back to top
View user's profile Send private message
Tae_kyon
n00b
n00b


Joined: 19 Apr 2006
Posts: 46

PostPosted: Sat Oct 07, 2017 5:28 pm    Post subject: Reply with quote

I am using atom. Today I tried updating my system and I get the same error as you compiling electron.

Try building electron-1.3.13-r1 and atom-1.18.0 instead of the latest version.

If you are using ccache, try disabling ccache and emerging the newer versions of electron and atom.

I am doing this, if it doesn't work I'll file a bug report.
_________________
We shall not cease from exploration. And the end of all our exploring
will be to arrive where we started and know the place for the first time
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 11424

PostPosted: Sat Oct 07, 2017 6:24 pm    Post subject: Re: Emerging app-editors/atom fails with dev-util/electron Reply with quote

alogim wrote:
Good afternoon everyone. I am looking for a good editor for a project that involves writing code in HTML, CSS, JavaScript and PHP.
Vim or Emacs.
alogim wrote:
I tried compiling Brackets from source, however it requires NodeJS and apparently there is no way to install it without removing the «bindist» flag.
Please provide the output that led you to this statement.
alogim wrote:
So, I switched to app-editors/atom, however, after more than two hours spent compiling dev-util/electron, it fails.
That seems rather excessive for a text editor. According to genlop, my system builds vim + vim-core in ~70 seconds (not minutes, seconds).
alogim wrote:
So, I have some questions:
  • Is there any alternative editor that is maybe supported (even unofficially) by Gentoo?
There are many editors. As above, I strongly suggest using either Vim or Emacs. Both are quite capable and have good communities.
alogim wrote:
  • How do you install NodeJS without disabling «bindist» (which pulls in proprietary things which I do not want to use)?
What proprietary packages does it pull in? That sounds like a misuse of the bindist flag. The flag is supposed to control whether to include content that cannot be redistributed.
Back to top
View user's profile Send private message
Tae_kyon
n00b
n00b


Joined: 19 Apr 2006
Posts: 46

PostPosted: Sat Oct 07, 2017 7:27 pm    Post subject: Reply with quote

Filed Bug 633720
_________________
We shall not cease from exploration. And the end of all our exploring
will be to arrive where we started and know the place for the first time
Back to top
View user's profile Send private message
alogim
n00b
n00b


Joined: 21 Aug 2015
Posts: 50

PostPosted: Sat Oct 07, 2017 9:24 pm    Post subject: Reply with quote

Just for the sake of testing, I was finally able to install Atom, however I had to remove the bindist flag as well as to install net-libs/nodejs. Vim is my favourite editor (along with Gvim), however I am not so sre it supports auto-completion in an easy way, that is, without having to hit additional buttons. I would really like to use Vim to write code as well, could you suggest or point me towards a good guide that explains how to properly set up vim in order to have full HTML, CSS, JavaScript and PHP support? Thank you.

I was not able to install NodeJS without removing bindist: if I let that flag enabled, portage goes into an infinite loop in which it pulls in older and newer versions of openssl with bindist both enabled and disabled, causing serious problems since Portage thinks bindist is both needed and that it must be removed at the same time.

Concerning compile time for atom, the package itself is compiled in about 3 minutes, as you can see here:
Code:
sudo genlop -t atom
 * app-editors/atom

     Sat Oct  7 12:46:47 2017 >>> app-editors/atom-1.20.1
       merge time: 3 minutes and 18 seconds.

However, electron takes about two hours in order to be compiled, I cannot provide you with a genlop proof since I suspended while compiling and genlop shows me it takes about 13 hours :D By the way, for me vim + vim-core is compiled in about 50 seconds:
Code:
sudo genlop -t vim vim-core
 * app-editors/vim

     Wed Sep 27 22:18:45 2017 >>> app-editors/vim-8.0.0386
       merge time: 29 seconds.

 * app-editors/vim-core

     Wed Sep 27 22:18:16 2017 >>> app-editors/vim-core-8.0.0386
       merge time: 18 seconds.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 39287
Location: 56N 3W

PostPosted: Sat Oct 07, 2017 9:43 pm    Post subject: Reply with quote

alogim,

bindist should be set system wide, not package by package.

Unless you intend to distribute binaries of the packages you build, set -bindist in make.conf.
It bindist removes branding from firefox and thunderbird and prevents possibly patented code being included in some builds.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Tae_kyon
n00b
n00b


Joined: 19 Apr 2006
Posts: 46

PostPosted: Sun Oct 08, 2017 6:35 am    Post subject: Solved Reply with quote

Ok, the bug is in the ebuild - it should have a dependency on node.js

Just emerge node and you will be able to emerge the latest version of electron.
_________________
We shall not cease from exploration. And the end of all our exploring
will be to arrive where we started and know the place for the first time
Back to top
View user's profile Send private message
alogim
n00b
n00b


Joined: 21 Aug 2015
Posts: 50

PostPosted: Sun Oct 08, 2017 3:36 pm    Post subject: Reply with quote

The point is, if I do not manually remove bindist from my make.conf file, Portage removes it only from package openssl (by adding an entry in the package.use directory in which it says to build openssl with -bindist.
Code:

sudo emerge --ask nodejs                                 

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N     ] net-libs/http-parser-2.6.2  USE="-static-libs" ABI_X86="(64) -32 (-x32)"
[ebuild   R    ] dev-libs/openssl-1.0.2l  USE="-bindist*"
[ebuild  N     ] net-libs/nodejs-6.9.4  USE="npm snapshot ssl -debug -doc -icu {-test}" CPU_FLAGS_X86="sse2" PYTHON_TARGETS="python2_7"

The following USE changes are necessary to proceed:
 (see "package.use" in the portage(5) man page for more details)
# required by net-libs/nodejs-6.9.4::gentoo
# required by nodejs (argument)
>=dev-libs/openssl-1.0.2l -bindist

Then, if I run etc-update, modify the file inside package.use as suggested and then rerun the above command, I get this:
Code:

sudo emerge --ask nodejs

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N     ] net-libs/http-parser-2.6.2  USE="-static-libs" ABI_X86="(64) -32 (-x32)"
[ebuild     UD ] dev-libs/openssl-1.0.2k [1.0.2l] USE="-bindist*"
[ebuild  N     ] net-libs/nodejs-6.9.4  USE="npm snapshot ssl -debug -doc -icu {-test}" CPU_FLAGS_X86="sse2" PYTHON_TARGETS="python2_7"

WARNING: One or more updates/rebuilds have been skipped due to a dependency conflict:

dev-libs/openssl:0

  (dev-libs/openssl-1.0.2l:0/0::gentoo, ebuild scheduled for merge) conflicts with
    >=dev-libs/openssl-1.0.1:0/0=[bindist] required by (net-misc/openssh-7.5_p1-r1:0/0::gentoo, installed)
                                  ^^^^^^^
    >=dev-libs/openssl-1.0.1:0=[bindist] required by (net-misc/openssh-7.5_p1-r1:0/0::gentoo, installed)
                                ^^^^^^^

The following USE changes are necessary to proceed:
 (see "package.use" in the portage(5) man page for more details)
# required by net-libs/nodejs-6.9.4::gentoo
# required by nodejs (argument)
=dev-libs/openssl-1.0.2k -bindist

Then, if I run etc-update, modify the file inside package.use as suggested and then rerun the above command, I get this:
Code:

sudo emerge --ask nodejs


These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N     ] net-libs/http-parser-2.6.2  USE="-static-libs" ABI_X86="(64) -32 (-x32)"
[ebuild     U #] dev-libs/openssl-1.1.0f [1.0.2l] USE="-bindist* -tls-heartbeat*"
[ebuild  N     ] net-libs/nodejs-6.9.4  USE="npm snapshot ssl -debug -doc -icu {-test}" CPU_FLAGS_X86="sse2" PYTHON_TARGETS="python2_7"

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:

dev-libs/openssl:0

  (dev-libs/openssl-1.1.0f:0/1.1::gentoo, ebuild scheduled for merge) pulled in by
    >=dev-libs/openssl-1.0.2g:0=[-bindist] required by (net-libs/nodejs-6.9.4:0/0::gentoo, ebuild scheduled for merge)
                                 ^^^^^^^^                                                                                                                 

  (dev-libs/openssl-1.0.2l:0/0::gentoo, installed) pulled in by
    dev-libs/openssl:0/0= required by (x11-base/xorg-server-1.19.3:0/1.19.3::gentoo, installed)
                    ^^^^^                                                                                                         
    >=dev-libs/openssl-1.0.1:0=[bindist=] required by (net-misc/openssh-7.5_p1-r1:0/0::gentoo, installed)
                                ^^^^^^^^                                                                                                     
    (and 4 more with the same problems)

NOTE: Use the '--verbose-conflicts' option to display parents omitted above

It may be possible to solve this problem by using package.mask to
prevent one of those packages from being selected. However, it is also
possible that conflicting dependencies exist such that they are
impossible to satisfy simultaneously.  If such a conflict exists in
the dependencies of two different packages, then those packages can
not be installed simultaneously.

For more information, see MASKED PACKAGES section in the emerge man
page or refer to the Gentoo Handbook.


The following keyword changes are necessary to proceed:
 (see "package.accept_keywords" in the portage(5) man page for more details)
# required by dev-libs/libevent-2.1.8::gentoo[ssl]
# required by net-p2p/transmission-2.92-r2::gentoo
# required by @selected
# required by @world (argument)
=dev-libs/openssl-1.1.0f ~amd64

The following mask changes are necessary to proceed:
 (see "package.unmask" in the portage(5) man page for more details)
# required by dev-libs/libevent-2.1.8::gentoo[ssl]
# required by net-p2p/transmission-2.92-r2::gentoo
# required by @selected
# required by @world (argument)
# /usr/portage/profiles/package.mask:
# Lars Wendler <polynomial-c@gentoo.org> (26 Aug 2016)
# Masked while being tested and reverse deps aren't fully compatible
=dev-libs/openssl-1.1.0f

NOTE: The --autounmask-keep-masks option will prevent emerge
      from creating package.unmask or ** keyword changes.


It basically tries to pull in a newer version of the package, openssl-1.1.0f, which is currently masked. This in turn causes failures while rebuilding the affected packages, so it really is an infinite loop. So, what if I do not want official branding and I want to install nodejs? Is that even possible?
Back to top
View user's profile Send private message
fedeliallalinea
Bodhisattva
Bodhisattva


Joined: 08 Mar 2003
Posts: 16893
Location: here

PostPosted: Sun Oct 08, 2017 4:04 pm    Post subject: Reply with quote

alogim wrote:
It basically tries to pull in a newer version of the package, openssl-1.1.0f, which is currently masked. This in turn causes failures while rebuilding the affected packages, so it really is an infinite loop. So, what if I do not want official branding and I want to install nodejs? Is that even possible?

Use --autounmask=n option of emerge (this problem is caused by bug 622462)
_________________
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum