From 46378988f58ab363eb8eb3088d596a1a8f7a6bab Mon Sep 17 00:00:00 2001 From: Ulf Magnusson Date: Sat, 23 Sep 2017 18:16:25 +0200 Subject: Add installation instructions for PyPI Along with the v1.0.0 tag. First version has been pushed to PyPI. --- README.rst | 67 ++++++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 41 insertions(+), 26 deletions(-) (limited to 'README.rst') 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 `_ 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 `_ 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 `_. -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 ------ -- cgit v1.2.3