Skip to content

Commit

Permalink
Merge branch '1.0.x' into 'master'
Browse files Browse the repository at this point in the history
  • Loading branch information
remram44 committed Sep 1, 2016
2 parents 6fbfe2a + 341b2f8 commit 12af68c
Show file tree
Hide file tree
Showing 4 changed files with 103 additions and 101 deletions.
4 changes: 2 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ Features:
* Configuration file contains the walltime taken by each run
* It is now possible to upload or download any file via its full path

1.0.7 (???)
-----------
1.0.7 (2016-08-22)
------------------

Bugfixes:
* Correctly show an error message if ptrace is unavailable
Expand Down
180 changes: 82 additions & 98 deletions docs/install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,68 +18,65 @@ For Linux distributions, both *reprozip* and *reprounzip* components are availab
Required Software Packages
--------------------------

Python 2.7.3 or greater, or 3.3 or greater is required to run ReproZip [#bug]_. If you don't have Python on your machine, you can get it from `python.org <https://www.python.org/>`__ [#deb]_ [#yum]_. You will also need the `pip <https://pip.pypa.io/en/latest/installing.html>`__ installer.
Python 2.7.3 or greater, or 3.3 or greater is required to run ReproZip [#bug]_. If you don't have Python on your machine, you can get it from `python.org <https://www.python.org/>`__. You will also need the `pip <https://pip.pypa.io/en/latest/installing.html>`__ installer.

Besides Python and pip, each component or plugin to be used may have additional dependencies that you need to install (if you do not have them already installed in your environment), as described below:

+------------------------------+--------------------------------------------------------+
| Component / Plugin | Required Software Packages |
+==============================+========================================================+
| *reprozip* | `SQLite <http://www.sqlite.org/>`__ [#deb2]_ [#yum2]_, |
| | Python headers [#deb3]_ [#yum3]_, |
| | a working C compiler |
+------------------------------+--------------------------------------------------------+
| *reprounzip* | None |
+------------------------------+--------------------------------------------------------+
| *reprounzip-vagrant* | Python headers [#deb3]_ [#yum3]_ [#pycrypto]_, |
| | a working C compiler [#pycrypto]_, |
| | `Vagrant v1.1+ <https://www.vagrantup.com/>`__, |
| | `VirtualBox <https://www.virtualbox.org/>`__ |
+------------------------------+--------------------------------------------------------+
| *reprounzip-docker* | `Docker <https://www.docker.com/>`__ |
+------------------------------+--------------------------------------------------------+
| *reprounzip-vistrails* | None [#vis1]_ |
+------------------------------+--------------------------------------------------------+
+------------------------+-------------------------------------------------+
| Component / Plugin | Required Software Packages |
+========================+=================================================+
| *reprozip* | `SQLite <http://www.sqlite.org/>`__, |
| | Python headers, |
| | a working C compiler |
+------------------------+-------------------------------------------------+
| *reprounzip* | None |
+------------------------+-------------------------------------------------+
| *reprounzip-vagrant* | Python headers, |
| | a working C compiler [#pycrypto]_, |
| | `Vagrant v1.1+ <https://www.vagrantup.com/>`__, |
| | `VirtualBox <https://www.virtualbox.org/>`__ |
+------------------------+-------------------------------------------------+
| *reprounzip-docker* | `Docker <https://www.docker.com/>`__ |
+------------------------+-------------------------------------------------+
| *reprounzip-vistrails* | None [#vis1]_ |
+------------------------+-------------------------------------------------+

Debian and Ubuntu
`````````````````

You can get all the required dependencies using APT::

apt-get install python python-dev python-pip gcc libsqlite3-dev

Fedora & CentOS
```````````````

You can get the dependencies using the Yum packaging manager::

yum install python python-devel gcc sqlite-devel

.. [#bug] ``reprozip`` and ``reprounzip graph`` will not work before 2.7.3 due to `Python bug 13676 <http://bugs.python.org/issue13676>`__ related to sqlite3. Python 2.6 is ancient and unsupported.
.. [#deb] On Debian and Debian-based, you can use ``sudo apt-get install python``.
.. [#yum] On RPM-based distributions, such as Red Hat, Fedora, or CentOS, you can use ``yum install python``
.. [#deb2] On Debian and Debian-based, you can use ``sudo apt-get install libsqlite3-dev``.
.. [#yum2] On RPM-based distributions, such as Red Hat, Fedora, or CentOS, you can use ``yum install sqlite-devel``
.. [#deb3] On Debian and Debian-based, you can use ``sudo apt-get install python-dev``.
.. [#yum3] On RPM-based distributions, such as Red Hat, Fedora, or CentOS, you can use ``yum install python-devel``
.. [#pycrypto] Required to build `PyCrypto <https://www.dlitz.net/software/pycrypto/>`__.
.. [#vis1] `VisTrails v2.2.3+ <http://www.vistrails.org/>`__ is required to run the workflow generated by the plugin.
Installing *reprozip*
---------------------

To install the *reprozip* component, simply run the following command::

$ pip install reprozip

To update the software, use the flag ``-U``::
To install or update the *reprozip* component, simply run the following command::

$ pip install -U reprozip

Installing *reprounzip*
-----------------------

To install the *reprounzip* component, simply run the following command::

$ pip install reprounzip

To update the software, use the flag ``-U``::

$ pip install -U reprounzip
You can install or update *reprounzip* with all the available components and plugins using::

The additional plugins for *reprounzip* can also be installed using the same command::
$ pip install -U reprounzip[all]

$ pip install reprounzip-docker reprounzip-vagrant reprounzip-vistrails
Or you can install *reprounzip* and choose components manually::

Alternatively, you can install *reprounzip* with all the available components and plugins using::

$ pip install reprounzip[all]
# Example, this installs all the components
$ pip install -U reprounzip reprounzip-docker reprounzip-vagrant reprounzip-vistrails

.. _mac:

Expand All @@ -100,50 +97,44 @@ Python 2.7.3 or greater, or 3.3 or greater is required to run ReproZip [#bug2]_.

Besides Python and pip, each component or plugin to be used may have additional dependencies that you need to install (if you do not have them already installed in your environment), as described below:

+------------------------------+------------------------------------------------+
| Component / Plugin | Required Software Packages |
+==============================+================================================+
| *reprounzip* | None |
+------------------------------+------------------------------------------------+
| *reprounzip-vagrant* | Python headers [#mac]_ [#pycrypto2]_, |
| | a working C compiler [#mac]_ [#pycrypto2]_, |
| | `Vagrant v1.1+ <https://www.vagrantup.com/>`__,|
| | `VirtualBox <https://www.virtualbox.org/>`__ |
+------------------------------+------------------------------------------------+
| *reprounzip-docker* | `Docker <https://www.docker.com/>`__ |
+------------------------------+------------------------------------------------+
| *reprounzip-vistrails* | None [#vis2]_ |
+------------------------------+------------------------------------------------+
+------------------------+-------------------------------------------------+
| Component / Plugin | Required Software Packages |
+========================+=================================================+
| *reprounzip* | None |
+------------------------+-------------------------------------------------+
| *reprounzip-vagrant* | Python headers, |
| | a working C compiler [#pycrypto2]_, |
| | `Vagrant v1.1+ <https://www.vagrantup.com/>`__, |
| | `VirtualBox <https://www.virtualbox.org/>`__ |
+------------------------+-------------------------------------------------+
| *reprounzip-docker* | `Docker <https://www.docker.com/>`__ |
+------------------------+-------------------------------------------------+
| *reprounzip-vistrails* | None [#vis2]_ |
+------------------------+-------------------------------------------------+

You will need Xcode installed, which you can get from the Mac App Store, and the Command Line Developer Tools; instrucions on installing the latter may depend on your Mac OS X version (some information on StackOverflow `here <http://stackoverflow.com/questions/9329243/xcode-4-4-and-later-install-command-line-tools?answertab=active#tab-top>`__).

.. seealso:: :ref:`Why does reprounzip-vagrant installation fail with error "unknown argument: -mno-fused-madd" on Mac OS X? <compiler_mac>`

.. [#bug2] ``reprozip`` and ``reprounzip graph`` will not work before 2.7.3 due to `Python bug 13676 <http://bugs.python.org/issue13676>`__ related to sqlite3. Python 2.6 is ancient and unsupported.
.. [#mac] This is usually provided by installing Xcode (in the Mac App Store) and the Command Line Developer Tools; instructions on installing the latter may depend on your Mac OS X version (some information on StackOverflow `here <http://stackoverflow.com/questions/9329243/xcode-4-4-and-later-install-command-line-tools?answertab=active#tab-top>`__).
.. [#pycrypto2] Required to build `PyCrypto <https://www.dlitz.net/software/pycrypto/>`__.
.. [#vis2] `VisTrails v2.2.3+ <http://www.vistrails.org/>`__ is required to run the workflow generated by the plugin.
.. seealso:: :ref:`Why does reprounzip-vagrant installation fail with error "unknown argument: -mno-fused-madd" on Mac OS X? <compiler_mac>`

Installing *reprounzip*
-----------------------

First, be sure to upgrade `setuptools`::

$ pip install -U setuptools

To install the *reprounzip* component, simply run the following command::

$ pip install reprounzip

To update the software, use the flag ``-U``::
You can install or update *reprounzip* with all the available components and plugins using::

$ pip install -U reprounzip
$ pip install -U reprounzip[all]

The additional plugins for *reprounzip* can also be installed using the same command::
Or you can install *reprounzip* and choose components manually::

$ pip install reprounzip-docker reprounzip-vagrant reprounzip-vistrails

Alternatively, you can install *reprounzip* with all the available components and plugins using::

$ pip install reprounzip[all]
# Example, this installs all the components
$ pip install -U reprounzip reprounzip-docker reprounzip-vagrant reprounzip-vistrails

.. _windows:

Expand All @@ -164,44 +155,37 @@ Python 2.7.3 or greater, or 3.3 or greater is required to run ReproZip [#bug3]_.

Besides Python and pip, each component or plugin to be used may have additional dependencies that you need to install (if you do not have them already installed in your environment), as described below:

+------------------------------+------------------------------------------------------------------------+
| Component / Plugin | Required Software Packages |
+==============================+========================================================================+
| *reprounzip* | None |
+------------------------------+------------------------------------------------------------------------+
| *reprounzip-vagrant* | `PyCrypto <https://www.dlitz.net/software/pycrypto/>`__ [#pycrypto3]_, |
| | `Vagrant v1.1+ <https://www.vagrantup.com/>`__, |
| | `VirtualBox <https://www.virtualbox.org/>`__ |
+------------------------------+------------------------------------------------------------------------+
| *reprounzip-docker* | `Docker <https://www.docker.com/>`__ |
+------------------------------+------------------------------------------------------------------------+
| *reprounzip-vistrails* | None [#vis3]_ |
+------------------------------+------------------------------------------------------------------------+
+------------------------+------------------------------------------------------------------------+
| Component / Plugin | Required Software Packages |
+========================+========================================================================+
| *reprounzip* | None |
+------------------------+------------------------------------------------------------------------+
| *reprounzip-vagrant* | `PyCrypto <https://www.dlitz.net/software/pycrypto/>`__ [#pycrypto3]_, |
| | `Vagrant v1.1+ <https://www.vagrantup.com/>`__, |
| | `VirtualBox <https://www.virtualbox.org/>`__ |
+------------------------+------------------------------------------------------------------------+
| *reprounzip-docker* | `Docker <https://www.docker.com/>`__ |
+------------------------+------------------------------------------------------------------------+
| *reprounzip-vistrails* | None [#vis3]_ |
+------------------------+------------------------------------------------------------------------+

.. seealso:: :ref:`Why does reprounzip-vagrant installation fail with error "Unable to find vcvarsall.bat" on Windows? <pycrypto_windows>`

.. [#bug3] ``reprozip`` and ``reprounzip graph`` will not work before 2.7.3 due to `Python bug 13676 <http://bugs.python.org/issue13676>`__ related to sqlite3. Python 2.6 is ancient and unsupported.
.. [#pycrypto3] A working C compiler is required to build PyCrypto. For installation without building from source, please see `this page <http://stackoverflow.com/questions/11405549/how-do-i-install-pycrypto-on-windows>`__.
.. [#vis3] `VisTrails v2.2.3+ <http://www.vistrails.org/>`__ is required to run the workflow generated by the plugin.
.. seealso:: :ref:`Why does reprounzip-vagrant installation fail with error "Unable to find vcvarsall.bat" on Windows? <pycrypto_windows>`

Installing *reprounzip*
-----------------------

To install the *reprounzip* component, simply run the following command::

$ pip install reprounzip

To update the software, use the flag ``-U``::

$ pip install -U reprounzip

The additional plugins for *reprounzip* can also be installed using the same command::
You can install or update *reprounzip* with all the available components and plugins using::

$ pip install reprounzip-docker reprounzip-vagrant reprounzip-vistrails
$ pip install -U reprounzip[all]

Alternatively, you can install *reprounzip* with all the available components and plugins using::
Or you can install *reprounzip* and choose components manually::

$ pip install reprounzip[all]
# Example, this installs all the components
$ pip install -U reprounzip reprounzip-docker reprounzip-vagrant reprounzip-vistrails

.. _conda:

Expand Down
10 changes: 10 additions & 0 deletions docs/troubleshooting.rst
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,16 @@ Please feel free to contact us at reprozip-users@vgc.poly.edu if you encounter i

------------

.. _ptrace:

:Issue: **"** `reprozip` **fails with** ``couldn't use ptrace`` **"**
:Diagnosis: ``ptrace`` is the mechanism that ReproZip uses to attach to another process and follow its system calls. Because it is so powerful, some security policies, environments or isolation mechanism may disable it.
:Solution:

* If you are using Docker, you can use the Docker option ``--security-opt seccomp:unconfined`` (or write your own seccomp profile that allows ptrace); see `the Docker documentation on seccomp <https://docs.docker.com/engine/security/seccomp/>`__.

------------

.. _moving-outputs:

:Issue: **"** `reprounzip` **cannot get an output file using** ``download`` **after reproducing the experiment."**
Expand Down
10 changes: 9 additions & 1 deletion reprozip/native/tracer.c
Original file line number Diff line number Diff line change
Expand Up @@ -689,7 +689,15 @@ int fork_and_trace(const char *binary, int argc, char **argv,
args[argc] = NULL;
/* Trace this process */
if(ptrace(PTRACE_TRACEME, 0, NULL, NULL) != 0)
log_critical(0, "couldn't use ptrace: %s", strerror(errno));
{
log_critical(
0,
"couldn't use ptrace: %s\n"
"This could be caused by a security policy or isolation "
"mechanism (such as\n Docker), see http://bit.ly/2bZd8Fa",
strerror(errno));
exit(1);
}
/* Stop this once so tracer can set options */
kill(getpid(), SIGSTOP);
/* Execute the target */
Expand Down

0 comments on commit 12af68c

Please sign in to comment.