summaryrefslogtreecommitdiff
path: root/README.rst
diff options
context:
space:
mode:
authorUlf Magnusson <ulfalizer@gmail.com>2017-09-23 18:16:25 +0200
committerUlf Magnusson <ulfalizer@gmail.com>2017-09-23 18:32:03 +0200
commit46378988f58ab363eb8eb3088d596a1a8f7a6bab (patch)
tree960bded6903fa20960dd2fde4910380484cb1115 /README.rst
parentc91cf2edcd20ab29d5693003387a627210fe9f0e (diff)
Add installation instructions for PyPIv1.0.0
Along with the v1.0.0 tag. First version has been pushed to PyPI.
Diffstat (limited to 'README.rst')
-rw-r--r--README.rst67
1 files changed, 41 insertions, 26 deletions
diff --git a/README.rst b/README.rst
index 3fc2fa3..b48ef00 100644
--- a/README.rst
+++ b/README.rst
@@ -16,22 +16,43 @@ on non-\*nix platforms
Installation
------------
-Installation instructions for the Linux kernel
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Installation with pip
+~~~~~~~~~~~~~~~~~~~~~
-Run the following commands in the kernel root:
+Kconfiglib is available on `PyPI <https://pypi.python.org/pypi>`_ and can be
+installed with
+
+.. code::
+
+ $ pip(3) install kconfiglib
+
+All releases have a corresponding tag in the git repository, e.g. ``v1.0.0``.
+`Semantic versioning <http://semver.org/>`_ is used.
+
+Installation for the Linux kernel
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+After installing with ``pip(3)``, apply ``makefile.patch``
+by running e.g. the following commands in the kernel root:
+
+.. code:: sh
+
+   $ wget https://raw.githubusercontent.com/ulfalizer/Kconfiglib/master/makefile.patch
+ $ git am makefile.patch
+
+If you do not wish to install anything, the following manual approach will work as well:
.. code:: sh
$ git clone git://github.com/ulfalizer/Kconfiglib.git
$ git am Kconfiglib/makefile.patch
-*(Note: The directory name Kconfiglib/ is significant.)*
+(Warning: The directory name ``Kconfiglib/`` is significant in this case, because it's added to ``PYTHONPATH`` by the new targets in ``makefile.patch``.)
In addition to creating a handy interface, the make targets created by the
patch (``scriptconfig`` and ``iscriptconfig``) are needed to pick up environment
variables set in the kernel makefiles and later referenced in the Kconfig files
-(``ARCH``, ``SRCARCH``, and ``KERNELVERSION`` as of Linux v4.0-rc3).
+(``ARCH``, ``SRCARCH``, and ``KERNELVERSION`` as of Linux v4.14.0-rc1).
The documentation explains how the make targets are used. The compatibility
tests in the test suite also needs them.
@@ -39,31 +60,24 @@ Please tell me if the patch does not apply. It should be trivial to apply
manually, as it's just a block of text that needs to be inserted near the other
``*conf:`` targets.
-Installation instructions for other projects
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Manual installation
+~~~~~~~~~~~~~~~~~~~
The entire library is contained in
`kconfiglib.py <https://github.com/ulfalizer/Kconfiglib/blob/master/kconfiglib.py>`_.
-Drop it somewhere and read the documentation. Make sure Kconfiglib sees environment
-variables referenced in the configuration.
-
-You can also use pip to install:
-
-.. code:: sh
-
- $ pip install https://github.com/ulfalizer/Kconfiglib/tarball/master
+Just drop it somewhere.
Documentation
-------------
-The (extensive) documentation is generated by running
+The (extensive) documentation is generated by running the following command in the same
+directory as ``kconfiglib.py``:
.. code:: sh
$ pydoc kconfiglib
-in the ``Kconfiglib/`` directory. For HTML output,
-use
+For HTML output, use
.. code:: sh
@@ -99,8 +113,9 @@ The test suite is run with
$ python(3) Kconfiglib/testsuite.py
-It must be run from the top-level kernel directory.
-
+It must be run from the top-level kernel directory, and require that the git repository has
+been cloned into it and ``makefile.patch`` applied.
+
**NOTE: Some tests currently overwrite .config in the kernel root, so make sure to back it up.**
The test suite consists of a set of selftests and a set of compatibility tests that
@@ -162,7 +177,7 @@ Notes
dependencies. For example, a list of symbols where all symbols depend on
the first symbol creates a cosmetic menu rooted at the first symbol.
Recreating such menus is awkward.
-
+
There is already basic support internally though, because it's needed to
get obscure choice behavior right. See ``_determine_actual_symbols()`` and
its helper ``_has_auto_menu_dep_on()``.
@@ -179,11 +194,11 @@ Notes
defconfigs on e.g. Linux 3.7.0-rc8 are due to
[a bug in the C implementation](https://lkml.org/lkml/2012/12/5/458):
- * ``arch/blackfin/configs/CM-BF537U\_defconfig``
- * ``arch/blackfin/configs/BF548-EZKIT\_defconfig``
- * ``arch/blackfin/configs/BF527-EZKIT\_defconfig``
- * ``arch/blackfin/configs/BF527-EZKIT-V2\_defconfig``
- * ``arch/blackfin/configs/TCM-BF537\_defconfig``
+ * ``arch/blackfin/configs/CM-BF537U_defconfig``
+ * ``arch/blackfin/configs/BF548-EZKIT_defconfig``
+ * ``arch/blackfin/configs/BF527-EZKIT_defconfig``
+ * ``arch/blackfin/configs/BF527-EZKIT-V2_defconfig``
+ * ``arch/blackfin/configs/TCM-BF537_defconfig``
Thanks
------