nylas / sync-engine

:incoming_envelope: IMAP/SMTP sync system with modern APIs
https://nylas.com/docs/platform
GNU Affero General Public License v3.0
3.5k stars 354 forks source link

Can't build the sync-engine #431

Closed ronisbr closed 7 years ago

ronisbr commented 7 years ago

Hi guys!

I followed the instructions to build the sync-engine, but I am having this problem:

==> default: /usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
==> default:   InsecurePlatformWarning
==> default: You are using pip version 8.1.2, however version 9.0.1 is available.
==> default: You should consider upgrading via the 'pip install --upgrade pip' command.
==> default: Traceback (most recent call last):
==> default:   File "/usr/local/bin/pip", line 5, in <module>
==> default:     
==> default: from pkg_resources import load_entry_point
==> default:   File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 72, in <module>
==> default:     
==> default: import packaging.requirements
==> default:   File "/usr/local/lib/python2.7/dist-packages/packaging/requirements.py", line 59, in <module>
==> default:     
==> default: MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker")
==> default: TypeError
==> default: : 
==> default: __call__() takes exactly 2 arguments (1 given)
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.

I am using vagrant 1.9.1 and VirtualBox as provider.

kun-zhou commented 7 years ago

Look up a few lines and install whatever dependencies it failed at using easy_install

ronisbr commented 7 years ago

Hi @kun-zhou I cannot use easy_install at all. I get a similar error:

$ easy_install
Traceback (most recent call last):
  File "/usr/local/bin/easy_install", line 7, in <module>
    from setuptools.command.easy_install import main
  File "/usr/local/lib/python2.7/dist-packages/setuptools/__init__.py", line 12, in <module>
    import setuptools.version
  File "/usr/local/lib/python2.7/dist-packages/setuptools/version.py", line 1, in <module>
    import pkg_resources
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 72, in <module>
    import packaging.requirements
  File "/usr/local/lib/python2.7/dist-packages/packaging/requirements.py", line 59, in <module>
    MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker")
TypeError: __call__() takes exactly 2 arguments (1 given)
ronisbr commented 7 years ago

Actually I can't run any python file...

ronisbr commented 7 years ago

I started a clean install, and the only "useful" messages I found was:

==> default: Collecting setuptools>=5.3
==> default: /usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:318: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
==> default:   SNIMissingWarning
==> default: /usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
==> default:   InsecurePlatformWarning
==> default:   Downloading setuptools-34.0.2-py2.py3-none-any.whl (387kB)
==> default: Collecting packaging>=16.8 (from setuptools>=5.3)
==> default:   Downloading packaging-16.8-py2.py3-none-any.whl
==> default: Collecting six>=1.10.0 (from setuptools>=5.3)
==> default:   Downloading six-1.10.0-py2.py3-none-any.whl
==> default: Collecting appdirs>=1.4.0 (from setuptools>=5.3)
==> default:   Downloading appdirs-1.4.0-py2.py3-none-any.whl
==> default: Requirement already satisfied (use --upgrade to upgrade): pyparsing in /usr/lib/python2.7/dist-packages (from packaging>=16.8->setuptools>=5.3)
==> default: Installing collected packages: six, packaging, appdirs, setuptools
==> default:   Found existing installation: setuptools 0.6rc11
==> default:     DEPRECATION: Uninstalling a distutils installed project (setuptools) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.
==> default:     Uninstalling setuptools-0.6rc11:
==> default:       Successfully uninstalled setuptools-0.6rc11
==> default: Successfully installed appdirs-1.4.0 packaging-16.8 setuptools-34.0.2 six-1.10.0
==> default: /usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
==> default:   InsecurePlatformWarning
==> default: You are using pip version 8.1.2, however version 9.0.1 is available.
==> default: You should consider upgrading via the 'pip install --upgrade pip' command.
==> default: Traceback (most recent call last):
==> default:   File "/usr/local/bin/pip", line 5, in <module>
==> default:     from pkg_resources import load_entry_point
==> default:   File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 72, in <module>
==> default:     import packaging.requirements
==> default:   File "/usr/local/lib/python2.7/dist-packages/packaging/requirements.py", line 59, in <module>
==> default:     MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker")
==> default: TypeError: __call__() takes exactly 2 arguments (1 given)
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.

Any idea how to fix it?

ronisbr commented 7 years ago

Something is really wrong. If I change the following lines in setup.sh

pip install 'pip==8.1.2' 'setuptools>=5.3'
hash pip        # /usr/bin/pip might now be /usr/local/bin/pip
pip install 'pip==8.1.2' 'setuptools>=5.3'

To

pip install 'pip==8.1.2' 'setuptools==18.2'
hash pip        # /usr/bin/pip might now be /usr/local/bin/pip
pip install 'pip==8.1.2' 'setuptools==18.2'

Then I can go further in the installation process, but it still fails.

whmountains commented 7 years ago

I have this exact same problem. Please help!

itsjef commented 7 years ago

In order to fix problems with building the sync-engine, including: #427, #429, #430

Here is what I add into my setup.sh:

export PYTHONPATH=/vagrant:$PYTHONPATH
echo "export PYTHONPATH=/vagrant:$PYTHONPATH" >> /etc/profile
sed -i '59s/MARKER_EXPR()/MARKER_EXPR("")/g' /usr/local/lib/python2.7/dist-packages/packaging/requirements.py

after apt-get -y install ... in line 100

and easy_install -U pyasn1 setuptools

after pip install ... in line 180

Destroy the vagrant box and run vagrant up again, things seem to work fine for me :)

travisn08 commented 7 years ago

default: MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker") ==> default: TypeError: call() takes exactly 2 arguments (1 given)

seems to be related to upgrading pyparsing but further build error persist.

spang commented 7 years ago

Fixed in the latest release; please pull, do rm -rf .vagrant, and try vagrant up again!

ronisbr commented 7 years ago

Hi @spang

Actually, I still can't build the sync-engine. But now I have another problem:

==> default: Finished installing dependencies.
==> default: Copying default development configuration to /etc/inboxapp
==> default: Copying default secrets configuration to /etc/inboxapp
==> default: Copying default mysql configuration to /etc/mysql/conf.d
==> default: 170308 20:28:21 mysqld_safe Logging to '/var/log/mysql/error.log'.
==> default: 170308 20:28:21 mysqld_safe A mysqld process already exists
==> default: Traceback (most recent call last):
==> default:   File "bin/create-db", line 9, in <module>
==> default:     from inbox.config import config
==> default: ImportError: No module named config
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.

Should I open another bug?

ronisbr commented 7 years ago

Oh sorry, I just saw there already an opened bug with this issue #427