Mailspring/docs-atom/build-instructions/linux.md
Ben Gotow df38008c56 fix(*): Small fixes from Lake Tahoe. See Summary.
Summary:
This diff includes a few small things:

- Menu: Don't select the first item until the user taps down arrow, and allow the user to use the arrow keys to move up and down through Menu items.

- Menu: Make scroll code from MultiselectList re-usable, use in Menu. Now if you use the keys to move to an item that is offscreen it will follow.

- Popover: Tapping the button that opened popover should close it

- Make sure buttons in toolbars are at least standard height

- Re-enable Markdown processing via `grunt docs`

- A bit of initial inline documentation for crosjdoc. Need to evaluate whether this is worth doing everywhere.

- New `search-playground` package for experimenting with search and search weights.

- Swap itemClassProvider for more generic itemPropProvider

- Add crojsdoc config file

- Export React, because third party packages can't require things from our app

- [FEATURE] Bring back static file support in third party packages via `nylas://translate/IMG_20150417_124142.jpg`

- Fix invariant error with search bar

- [FEATURE] "Show Original" under Message actions

- Fix DatabaseView so that many archives at once don't cause problems

Test Plan: Run specs

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1426
2015-04-22 16:41:29 -07:00

4.4 KiB

Linux

Ubuntu LTS 12.04 64-bit is the recommended platform.

Requirements

  • OS with 64-bit or 32-bit architecture
  • C++ toolchain
  • Git
  • Node.js v0.10.x
  • npm v1.4.x (bundled with Node.js)
    • npm -v to check the version.
    • npm config set python /usr/bin/python2 -g to ensure that gyp uses python2.
      • You might need to run this command as sudo, depending on how you have set up npm.
  • development headers for GNOME Keyring

Ubuntu / Debian

  • sudo apt-get install build-essential git libgnome-keyring-dev fakeroot
  • Instructions for Node.js.

Fedora / CentOS / RHEL

  • sudo yum --assumeyes install make gcc gcc-c++ glibc-devel git-core libgnome-keyring-devel rpmdevtools
  • Instructions for Node.js.

Arch

  • sudo pacman -S gconf base-devel git nodejs libgnome-keyring python2
  • export PYTHON=/usr/bin/python2 before building Atom.

Slackware

  • sbopkg -k -i node -i atom

openSUSE

  • sudo zypper install nodejs make gcc gcc-c++ glibc-devel git-core libgnome-keyring-devel rpmdevtools

Instructions

If you have problems with permissions don't forget to prefix with sudo

  1. Clone the Edgehill repository:
git clone https://github.com/inboxapp/edgehill
cd edgehill
  1. Checkout the latest Edgehill release:
git fetch -p
git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
  1. Build Edgehill:
script/build

This will create the edgehill application at $TMPDIR/edgehill-build/Edgehill.

  1. Install the edgehill and apm commands to /usr/local/bin by executing:
sudo script/grunt install

To use the newly installed Edgehill, quit and restart all running Edgehill instances.

  1. Optionally, you may generate distributable packages of Edgehill at $TMPDIR/edgehill-build. Currenty, .deb and .rpm package types are supported. To create a .deb package run:
script/grunt mkdeb

To create an .rpm package run

script/grunt mkrpm

Advanced Options

Custom install directory

sudo script/grunt install --install-dir /install/edgehill/here

Custom build directory

script/build --build-dir /build/edgehill/here

Troubleshooting

TypeError: Unable to watch path

If you get following error with a big traceback right after Edgehill starts:

TypeError: Unable to watch path

you have to increase number of watched files by inotify. For testing if this is the reason for this error you can issue

sudo sysctl fs.inotify.max_user_watches=32768

and restart Edgehill. If Edgehill now works fine, you can make this setting permanent:

echo 32768 | sudo tee -a /proc/sys/fs/inotify/max_user_watches

See also https://github.com/atom/atom/issues/2082.

/usr/bin/env: node: No such file or directory

If you get this notice when attempting to script/build, you either do not have Node.js installed, or node isn't identified as Node.js on your machine. If it's the latter, entering sudo ln -s /usr/bin/nodejs /usr/bin/node into your terminal may fix the issue.

You can also use Alternatives

On some variants (mostly Debian based distros) it's preferable for you to use Alternatives so that changes to the binary paths can be fixed or altered easily:

sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 1 --slave /usr/bin/js js /usr/bin/nodejs

AttributeError: 'module' object has no attribute 'script_main'

If you get following error with a big traceback while building Edgehill:

sys.exit(gyp.script_main()) AttributeError: 'module' object has no attribute 'script_main' gyp ERR!

you need to uninstall the system version of gyp.

On Fedora you would do the following:

sudo yum remove gyp

Linux build error reports in atom/atom

  • Use this search to get a list of reports about build errors on Linux.