You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mesos.apache.org by "Andy Konwinski (Commented) (JIRA)" <ji...@apache.org> on 2011/11/13 09:49:51 UTC

[jira] [Commented] (MESOS-63) make install not finding mesos-1.0-py2.6-linux-x86_64.egg

    [ https://issues.apache.org/jira/browse/MESOS-63?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13149252#comment-13149252 ] 

Andy Konwinski commented on MESOS-63:
-------------------------------------

I'm copying and pasting the output from make where this egg is supposed to be getting generated:

pushd ../third_party/protobuf-2.3.0/python ; PYTHONPATH=../third_party/distribute-0.6.19/distribute-0.6.19-py2.6.egg python2.6 setup.py bdist_egg ; popd
~/mesos/build/third_party/protobuf-2.3.0/python ~/mesos/build/src

---------------------------------------------------------------------------
This script requires setuptools version 0.6c9 to run (even to display
help).  I will attempt to download it for you (from
http://pypi.python.org/packages/2.6/s/setuptools/), but
you may need to enable firewall access for this script first.
I will start the download in 15 seconds.

(Note: if this machine does not have network access, please obtain the file

   http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c9-py2.6.egg

and place it in this directory before rerunning this script.)
---------------------------------------------------------------------------
Downloading http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c9-py2.6.egg
/usr/lib/python2.6/distutils/dist.py:266: UserWarning: Unknown distribution option: 'namespace_packages'
  warnings.warn(msg)
/usr/lib/python2.6/distutils/dist.py:266: UserWarning: Unknown distribution option: 'test_suite'
  warnings.warn(msg)
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: setup.py --help [cmd1 cmd2 ...]
   or: setup.py --help-commands
   or: setup.py cmd --help

error: invalid command 'bdist_egg'
~/mesos/build/src

The reason that command is failing is because there should be an extra "../../" at the beginning of PYTHONPATH, i.e. it should be getting set to ../../../third_party/distribute-0.6.19/distribute-0.6.19-py2.6.egg.

This path is getting generated based on this line in Makefile.in:

pushd @top_builddir@/$(PROTOBUF)/python ; PYTHONPATH=@top_builddir@/$(SETUPTOOLS) $(PYTHON) setup.py bdist_egg ; popd

Since we are changing directories at the beginning of line, and @top_builddir@ uses relative paths, we instead have to use @abs_top_builddir@.

Also, popd is unnecessary at the end of this line since each separate line in a makefile recipe is run in its own subshell (see http://www.gnu.org/s/make/manual/make.html#Execution). Because of this, we can use cd instead of pushd without worries and revert the change in MESOS-50 to use bash instead of sh.

I'm uploading a very small patch that makes these changes. I've tested it on Ubuntu 10.04.3 LTS, OSX Snow Leopard, and Debian GNU/Linux 5.0.

The tests run and pass on OSX and Ubuntu. The SampleFrameworks.PythonFramework test fails on Debian, but when I apply MESOS-78 and MESOS-79, the tests all pass on Debian too.
                
> make install not finding mesos-1.0-py2.6-linux-x86_64.egg
> ---------------------------------------------------------
>
>                 Key: MESOS-63
>                 URL: https://issues.apache.org/jira/browse/MESOS-63
>             Project: Mesos
>          Issue Type: Bug
>          Components: build
>         Environment: Version of Mesos: https://svn.apache.org/repos/asf/incubator/mesos/?p=1197837
> Operating system (Amazon EC2 AMI):
> Description:	Ubuntu 10.04.3 LTS
> Release:	10.04
> Codename:	lucid
>            Reporter: Andy Konwinski
>            Priority: Critical
>
> After applying 0001-include-limits.h-in-process_spawn-to-fix-compilati.patch from MESOS-37 and MESOS-50.patch from MESOS-50, Mesos builds on Ubuntu Lucid, but I still get an error when I run sudo make install. Michael Armbrust reported this bug in the first comment in MESOS-37, but I'm breaking it out into its own issue.
> Output from command...
> $ sudo make install
> if test ! -d /usr/local/mesos/bin; \
> 		then mkdir -p /usr/local/mesos/bin; \
> 	fi
> if test ! -d /usr/local/mesos/lib; \
> 		then mkdir -p /usr/local/mesos/lib; \
> 	fi
> if test ! -d /usr/local/mesos/lib/java; \
> 		then mkdir -p /usr/local/mesos/lib/java; \
> 	fi
> if test ! -d /usr/local/mesos/conf; \
> 		then mkdir -p /usr/local/mesos/conf; \
> 	fi
> if test ! -d /usr/local/mesos/deploy; \
> 		then mkdir -p /usr/local/mesos/deploy; \
> 	fi
> install -m 755 ./bin/mesos-master /usr/local/mesos/bin
> install -m 755 ./bin/mesos-slave /usr/local/mesos/bin
> install -m 755 ./bin/mesos-local /usr/local/mesos/bin
> install -m 755 ./bin/mesos-launcher /usr/local/mesos/bin
> install -m 755 ./bin/mesos-getconf /usr/local/mesos/bin
> install -m 755 ./bin/killtree.sh /usr/local/mesos/bin
> rsync -avz ./bin/webui /usr/local/mesos/bin
> sending incremental file list
> sent 882 bytes  received 20 bytes  1804.00 bytes/sec
> total size is 154399  speedup is 171.17
> rsync -avz ./deploy /usr/local/mesos
> sending incremental file list
> sent 201 bytes  received 13 bytes  428.00 bytes/sec
> total size is 4776  speedup is 22.32
> install -m 755 ./lib/libmesos_exec.a /usr/local/mesos/lib
> install -m 755 ./lib/libmesos_sched.a /usr/local/mesos/lib
> install -m 755 ./lib/libmesos.so /usr/local/mesos/lib
> install -m 755 ./lib/java/libmesos.so /usr/local/mesos/lib/java
> install -m 755 ./lib/java/mesos.jar /usr/local/mesos/lib/java
> mkdir -p /usr/local/mesos/lib/python
> PYTHONPATH=third_party/distribute-0.6.19/distribute-0.6.19-py2.6.egg:/usr/local/mesos/lib/python python2.6 -m easy_install --install-dir /usr/local/mesos/lib/python ./src/python/dist/*.egg
> Processing mesos-1.0-py2.6-linux-x86_64.egg
> removing '/usr/local/mesos/lib/python/mesos-1.0-py2.6-linux-x86_64.egg' (and everything under it)
> creating /usr/local/mesos/lib/python/mesos-1.0-py2.6-linux-x86_64.egg
> Extracting mesos-1.0-py2.6-linux-x86_64.egg to /usr/local/mesos/lib/python
> mesos 1.0 is already the active version in easy-install.pth
> Installed /usr/local/mesos/lib/python/mesos-1.0-py2.6-linux-x86_64.egg
> Processing dependencies for mesos==1.0
> Finished processing dependencies for mesos==1.0
> PYTHONPATH=third_party/distribute-0.6.19/distribute-0.6.19-py2.6.egg:/usr/local/mesos/lib/python python2.6 -m easy_install --install-dir /usr/local/mesos/lib/python ./third_party/protobuf-2.3.0/python/dist/*.egg
> error: Not a URL, existing file, or requirement spec: './third_party/protobuf-2.3.0/python/dist/*.egg'
> make: *** [install] Error 1
> ---------------------------
> We can tell from MESOS-55, which shows what the output from `make install` should look like when it doesn't break at this point, that the egg it is actually looking for is probably protobuf-2.3.0-py2.6.egg. The dist dir isn't even getting created on my ubuntu instance.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira