INSTALLATION
============

This file explains installation of CondConfigParser from source. For
ready-to-use packages (Debian, etc.), see
<http://people.via.ecp.fr/~flo/projects/FFGo/> or README.rst.

CondConfigParser is packaged with setuptools, which is the currently
recommended packaging tool according to
<https://docs.python.org/3/distributing/index.html>. With the current
state of Python packaging and installation tools, there are several ways
to install CondConfigParser from source.

Barring the use of binary packages (Debian or similar), the easiest and
cleanest method to install CondConfigParser is probably with pip,
possibly inside a virtual environment created with virtualenv or
venv.py/pyvenv. Typically, assuming you have a working pip setup (see
below), you just have to run one of the following commands:

  pip install CondConfigParser       (which normally installs from PyPI)

or

  pip install /path/to/CondConfigParser-X.Y.Z.tar.bz2

or

  pip install https://url/to/CondConfigParser-X.Y.Z.tar.bz2

or

  pip install http://url/to/CondConfigParser-X.Y.Z.tar.bz2

Notes:
  - old versions of pip don't support https;
  - upgrades can be done by passing '--upgrade' or '-U' to the
    'pip install' command; please refer to the pip documentation for
    details.

Uninstallation should be as easy as:

  pip uninstall CondConfigParser

For more information about installation of Python packages, pip,
venv.py/pyvenv and virtualenv, you can visit the following pages:

  Python official doc   <https://docs.python.org/3/installing/index.html>
  pip                   <https://pip.pypa.io/>
  The venv module       <https://docs.python.org/3/library/venv.html>
  virtualenv            <https://virtualenv.pypa.io/>


So, what is a "working pip setup"?
----------------------------------

What I call a "working pip setup" here is a setup where a command that
is typically something like 'pip', 'pip3' or 'pip3.4' (for a Python 3.4
installation) can be run to safely install, upgrade and remove packages
into or from a particular Python installation.

Normally, a given 'pip' executable is tied to a particular Python
installation that can be discovered by running 'pip --version' (or
'pip3 --version', etc., depending on the particular 'pip' executable
name; for sanity's sake, we'll assume 'pip' in the rest of this
document). For instance, the following would indicate a Python 3.4
installation based at /some/path:

  % pip --version
  pip 1.5.6 from /some/path/lib/python3.4/site-packages (python 3.4)

In general, it is safe to run 'pip' from a Python interpreter you
installed yourself without a Linux package manager or similar. It is
also safe if the Python interpreter running 'pip' lives in a virtual
environment created with virtualenv or venv.py/pyvenv. The one case
where you should probably avoid using a given 'pip' executable is if it
runs directly under a system Python (typically, /usr/bin/python or
/usr/bin/pythonX.Y) installed with the package manager of your Linux
distribution (or any other OS, for that matter): in such a situation,
'pip' might, if run with superuser privileges, mess with files under the
control of the OS package manager (i.e., 'dpkg' on Debian and its
derivatives, 'rpm' on Redhat and Suse, etc.).

Depending on how you installed Python, you may need superuser privileges
to install, upgrade or remove Python packages inside that installation.
For instance, this will be the case if you compiled Python yourself and
performed the installation step ('make install') as root. However,
running 'pip' with superuser privileges should not be necessary nor
desirable inside a virtual environment created with virtualenv or
venv.py/pyvenv.


Old way, without pip (not recommended)
--------------------------------------

The following instructions explain how to install CondConfigParser
directly from its setup.py, without using pip. However, the method based
on pip is preferable because pip makes both uninstallation and upgrades
standard and easy.

Anyway, if you really want to install CondConfigParser without pip,
here is how to do it:

  - install setuptools from <https://setuptools.pypa.io/en/latest/>

  - make this file's directory your shell's current directory

  - a) 1) type:

            python3 ./setup.py build

          (depending on your system and the Python version you want to
          install for, you may have to replace "python3" with, for
          instance, "python3.4")

       2) then, as root (after replacing /usr/local with the actual
          installation prefix you want to use):

            python3 ./setup.py install --prefix=/usr/local \
                                       --record=/path/to/foo

          where foo is a file of your choice which will contain the list
          of all files installed on your system by the preceding
          command. This will make uninstallation easy (you could omit
          the "--record=/path/to/foo", but uninstallation could not be
          automated, then).

    OR

    b) type, as root (after replacing the installation prefix):

            python3 ./setup.py install --prefix=/usr/local \
                                       --record=/path/to/foo

       This will automatically build the package before installing it.
       The observations made in a) also apply here.


You may also pass '--root=/some/path' to 'setup.py install' in order to
achieve a similar effect as with the DESTDIR parameter in Automake-based
packages (i.e., install everything under /some/path as if it were the
root directory). This is very useful to build packages for, e.g., Linux
distributions.

If this default installation is not what you wish, please read the
"Installing Python Modules" chapter of your Python documentation.


UNINSTALLATION
==============

If you installed CondConfigParser with pip, you can uninstall it with
the following command:

  pip uninstall CondConfigParser

(which should be run under the same account that was used to run the
"pip install" command)

Otherwise, if you have followed the old installation procedure, you have
a /path/to/foo file that contains all the files the installation process
put on your system. Great! All you have to do is:

   while read file; do rm -f "$file"; done < /path/to/foo

under a POSIX-style shell and with appropriate privileges (maybe root,
depending on how you installed CondConfigParser).

Note: this will handle file names with spaces correctly, unlike the
simpler "rm -f $(cat /path/to/foo)".


# Local Variables:
# coding: utf-8
# fill-column: 72
# End:
