Subject: [PATCH v2 0/5] tools: ynl: add install target

From: Jan Stancek <[email-masked]>
Date: Mon, 9 Dec 2024 15:47:12 +0100

This series adds an install target for ynl. The python code
is moved to a subdirectory, so it can be used as a package
with flat layout, as well as directly from the tree.

To try the install as a non-root user you can run:
  $ mkdir /tmp/myroot
  $ make DESTDIR=/tmp/myroot install

  $ PATH="/tmp/myroot/usr/bin:$PATH" PYTHONPATH="$(ls -1d /tmp/myroot/usr/lib/python*/site-packages)" ynl --help

Proposed install layout is described in last patch.

Changes in v2:
- squashed 1st and 2nd patch together
- added symlinks for original user-facing scripts for backwards compatibility
- updated also Documentation and selftests references
  (tested Doc build and selftests ping.py test)

Jan Stancek (5):
  tools: ynl: move python code to separate sub-directory
  tools: ynl: provide symlinks to user-facing scripts for compatibility
  tools: ynl: add initial pyproject.toml for packaging
  tools: ynl: add install target for specs and docs
  tools: ynl: add main install target

 Documentation/Makefile                        |    2 +-
 Documentation/networking/multi-pf-netdev.rst  |    4 +-
 Documentation/networking/napi.rst             |    4 +-
 .../networking/netlink_spec/readme.txt        |    2 +-
 .../userspace-api/netlink/intro-specs.rst     |    8 +-
 tools/net/ynl/Makefile                        |   25 +-
 tools/net/ynl/cli.py                          |  120 +-
 tools/net/ynl/ethtool.py                      |  440 +--
 tools/net/ynl/generated/.gitignore            |    1 +
 tools/net/ynl/generated/Makefile              |   36 +-
 tools/net/ynl/lib/.gitignore                  |    1 -
 tools/net/ynl/lib/Makefile                    |    1 -
 tools/net/ynl/pyproject.toml                  |   26 +
 tools/net/ynl/pyynl/.gitignore                |    2 +
 tools/net/ynl/pyynl/__init__.py               |    0
 tools/net/ynl/pyynl/cli.py                    |  119 +
 tools/net/ynl/pyynl/ethtool.py                |  439 +++
 tools/net/ynl/{ => pyynl}/lib/__init__.py     |    0
 tools/net/ynl/{ => pyynl}/lib/nlspec.py       |    0
 tools/net/ynl/{ => pyynl}/lib/ynl.py          |    0
 tools/net/ynl/pyynl/ynl_gen_c.py              | 3018 ++++++++++++++++
 tools/net/ynl/pyynl/ynl_gen_rst.py            |  453 +++
 tools/net/ynl/ynl-gen-c.py                    | 3019 +----------------
 tools/net/ynl/ynl-gen-rst.py                  |  454 +--
 tools/net/ynl/ynl-regen.sh                    |    2 +-
 tools/testing/selftests/net/lib/py/ynl.py     |    4 +-
 tools/testing/selftests/net/ynl.mk            |    3 +-
 27 files changed, 4133 insertions(+), 4050 deletions(-)
 mode change 100755 => 120000 tools/net/ynl/cli.py
 mode change 100755 => 120000 tools/net/ynl/ethtool.py
 create mode 100644 tools/net/ynl/pyproject.toml
 create mode 100644 tools/net/ynl/pyynl/.gitignore
 create mode 100644 tools/net/ynl/pyynl/__init__.py
 create mode 100755 tools/net/ynl/pyynl/cli.py
 create mode 100755 tools/net/ynl/pyynl/ethtool.py
 rename tools/net/ynl/{ => pyynl}/lib/__init__.py (100%)
 rename tools/net/ynl/{ => pyynl}/lib/nlspec.py (100%)
 rename tools/net/ynl/{ => pyynl}/lib/ynl.py (100%)
 create mode 100755 tools/net/ynl/pyynl/ynl_gen_c.py
 create mode 100755 tools/net/ynl/pyynl/ynl_gen_rst.py
 mode change 100755 => 120000 tools/net/ynl/ynl-gen-c.py
 mode change 100755 => 120000 tools/net/ynl/ynl-gen-rst.py

-- 
2.43.0