]> git.proxmox.com Git - mirror_ifupdown2.git/blobdiff - README.rst
addons: addressvirtual: vrrp: protodown new macvlans
[mirror_ifupdown2.git] / README.rst
index 6187ec0f10fe58d2eb0d8f1e9730d87e087bfb4a..c6a5e754f3682bb4889701cf734a1b60a7fa624b 100644 (file)
-python-ifupdown2
-================
-
-This package is a replacement for the debian ifupdown package.
-It is ifupdown re-written in python. It maintains the original ifupdown
-pluggable architecture and extends it further.
-
-The python-ifupdown2 package provides the infrastructure for
-parsing /etc/network/interfaces file, loading, scheduling and state
-management of interfaces.
-
-It dynamically loads python modules from /usr/share/ifupdownaddons.
-To remain compatible with other packages that depend on ifupdown,
-it also executes scripts under /etc/network/.
-To make the transition smoother, a python module under
-/usr/share/ifupdownaddons will override a script by the same name under
-/etc/network/.
-
-It publishes an interface object which is passed to all loadble python
-modules. For more details on adding a addon module, see the section on
-adding python modules.
-
-
-pluggable python modules:
-=========================
-Unlike original ifupdown, all interface configuration is moved to external
-python modules. That includes inet, inet6 and dhcp configurations.
-
-A set of default modules are included in the package.
-
-python-ifupdown2 expects a few things from the pluggable modules:
-- the module should implement a class by the same name
-- the interface object (class iface) and the operation to be performed is
-  passed to the modules
-- the python addon class should provide a few methods:
-       - run() : method to configure the interface.
-       - get_ops() : must return a list of operations it supports.
-               eg: 'pre-up', 'post-down'
-       - get_dependent_ifacenames() : must return a list of interfaces the
-         interface is dependent on. This is used to build the dependency list
-         for sorting and executing interfaces in dependency order.
-       - if the module supports -r option to ifquery, ie ability to construct the
-      ifaceobj from running state, it can optionally implement the
-      get_dependent_ifacenames_running() method, to return the list of
-      dependent interfaces derived from running state of the interface.
-      This is different from get_dependent_ifacenames() where the dependent
-      interfaces are derived from the interfaces config file (provided by the
-      user).
-
-Example: Address handling module /usr/share/ifupdownaddons/address.py
-
-
-build
-=====
-- get source
-
-- install build dependencies:
-    apt-get install python-stdeb
-    apt-get install python-docutils
-
-- cd <python-ifupdown2 sourcedir> && ./build.sh
-
-  (generates python-ifupdown2-<ver>.deb)
-
-install
+=========
+ifupdown2
+=========
+
+Linux Interface Network Manager
+
+* Free software: GNU General Public License v2
+
+============
+Installation
+============
+
+As of today (early june 2018), the preferred method to install ifupdown2, is by
+building the source code (as it will always install the most recent stable
+release). See `Installing latest stable release from sources`_ chapter.
+
+Installing latest stable release from sources
+---------------------------------------------
+
+The sources for ifupdown2 can be downloaded from the `Github repo`_.
+
+You can either clone the public repository:
+
+.. code-block:: console
+
+    $ git clone git://github.com/CumulusNetworks/ifupdown2
+
+Or download the `tarball`_:
+
+.. code-block:: console
+
+    $ curl  -OL https://github.com/CumulusNetworks/ifupdown2/tarball/master
+
+Once you have a copy of the source, you should build a deb-package and install it
+
+.. code-block:: console
+
+    $ cd ifupdown2 && git checkout master-next && make deb
+
+The generated deb should be in the root directory (``../ifupdown2_1.2.1_all.deb``)
+
+.. code-block:: console
+
+    $ dpkg -i ../ifupdown2_1.2.1_all.deb
+
+We don't recommend using ``setup.py install`` directly, as it's still missing systemd/init.d scripts.
+This capability should be added in the near future.
+
+You might need to manually download dependencies. Mandatory dependencies:
+
+.. code-block:: console
+
+    $ apt-get install build-essential devscripts dh-systemd fakeroot python-all python-docutils iproute2 python-ipaddr python-argcomplete python-setuptools
+
+Suggested dependencies:
+
+.. code-block:: console
+
+    $ apt-get install ethtool bridge-utils python-gvgen python-mako
+
+.. _Github repo: https://github.com/CumulusNetworks/ifupdown2
+.. _tarball: https://github.com/CumulusNetworks/ifupdown2/tarball/master
+
+
+============
+Contributing
+============
+
+Contributions are welcome, and they are greatly appreciated! Every little bit
+helps, and credit will always be given.
+
+You can contribute in many ways:
+
+Types of Contributions
+----------------------
+
+Report Bugs
+~~~~~~~~~~~
+
+Report bugs at https://github.com/CumulusNetworks/ifupdown2/issues.
+
+If you are reporting a bug, please include:
+
+* Your operating system name and version (``uname -a``).
+* Any details about your setup that might be helpful in troubleshooting.
+* Content of configuration files such as ``/etc/network/interfaces``
+* Detailed steps to reproduce the bug.
+* Debug output of the ifupdown2 command (see ``--debug`` option)
+
+Write Documentation
+~~~~~~~~~~~~~~~~~~~
+
+ifupdown2 could always use more documentation, whether as part of the
+official ifupdown2 docs, in docstrings, or even on the web in blog posts,
+articles, and such.
+
+Submit Feedback
+~~~~~~~~~~~~~~~
+
+The best way to send feedback is to file an issue at https://github.com/CumulusNetworks/ifupdown2/issues.
+
+If you are proposing a feature:
+
+* Explain in detail how it would work.
+* Keep the scope as narrow as possible, to make it easier to implement.
+
+=======
+Credits
+=======
+
+Development Lead
+----------------
+
+* Roopa Prabhu <roopa@cumulusnetworks.com>
+* Julien Fortin <julien@cumulusnetworks.com>
+
+Contributors
+------------
+
+* Nikhil Gajendrakumar <nikhil.gajendrakumar@gmail.com>
+* Maximilian Wilhelm <max@sdn.clinic>
+* Sven Auhagen <sven.auhagen@voleatech.de>
+* skorpy <magnus@skorpy.space>
+* Sam Tannous <stannous@cumulusnetworks.com>
+* Wilson Kok <wkok@cumulusnetworks.com>
+* John Berezovik <berezovik@gmail.com>
+* Daniel Walton <dwalton76@gmail.com>
+* Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
+* Balakrishnan Raman <balkee@yahoo.com>
+* Scott Emery <scotte@cumulusnetworks.com>
+* Dave Olson <olson@cumulusnetworks.com>
+* David Ahern <dsa@cumulusnetworks.com>
+* Jonathan Toppins <>
+* Nolan Leake <nolan@cumulusnetworks.com>
+* Sergey Sudakovich <sergey@cumulusnetworks.com>
+* Andy Gospodarek <>
+* Satish Ashok <sashok@cumulusnetworks.com>
+* Scott Laffer <slaffer@cumulusnetworks.com>
+* Vidya Sagar Ravipati <vidya.ravipati@gmail.com>
+* Marek Grzybowski <marek.grzybowski@rtbhouse.com>
+* Gaudenz Steinlin <gaudenz@users.noreply.github.com>
+* Nigel Kukard <nkukard@lbsd.net>
+* Jeffrey <jeffrey.bosma@gmail.com>
+* kokel <kokel@users.noreply.github.com>
+
+Why not you too? :)
+
+
 =======
+History
+=======
+
+See changelog here: https://github.com/CumulusNetworks/ifupdown2/blob/master/debian/changelog
+
 
-- remove existing ifupdown package
-  dpkg -r ifupdown
+Credits
+-------
 
-- install python-ifupdown2 using `dpkg -i`
+This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.
 
-- or install from deb
-    dpkg -i python-ifupdown2-<ver>.deb
+.. _Cookiecutter: https://github.com/audreyr/cookiecutter
+.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage