Skip to content

Commit

Permalink
doc: beyond-gsg: notes for sdk package managers
Browse files Browse the repository at this point in the history
Include notes in the Beyond the Getting Started Guide doc for
those who wish to build redistributable files for package
managers (e.g. APT, RPM).

This does not mean that Zephyr will be responsible for
creating collections of .deb or .rpm packages for the Zephyr SDK.

These are only some guidelines based on previous experience in
that area.

Signed-off-by: Chris Friedt <[email protected]>
  • Loading branch information
cfriedt committed Nov 19, 2024
1 parent b2d62d6 commit 6814414
Showing 1 changed file with 50 additions and 0 deletions.
50 changes: 50 additions & 0 deletions doc/develop/beyond-GSG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -404,6 +404,56 @@ Depending on the topology of build infrastructure, it may be preferable to simpl
the ``/opt/zephyr/sdk/$VERSION`` directory to neighboring build machines. Alternatively, use
``/opt/zephyr/sdk/$VERSION`` to create packages for the package manager of choice.

.. _gs_package_managers:

Guidelines for Package Managers
===============================

For those who wish to create redistributable packages from the Zephyr SDK and Python dependencies,
please follow the general guidelines below. These guidelines support multiple simultaneous
installations of different SDK versions side-by-side, which can be helpful when building for
different Zephyr releases or when evaluating new Zephyr SDK releases.

Assumptions:

* A UNIX-like operating system (e.g. Linux, macOS)
* The shared installation location is ``/opt/zephyr/sdk/$VERSION``
* The version of the Zephyr SDK installed is represented by ``$VERSION`` (e.g. 0.17.0)
* A Zephyr toolchain component by target architecture is represented by ``$TARGET`` (e.g. ``aarch64``)

Suggested packages:

* ``zephyr-sdk-$VERSION``:

* a top-level package that pulls in other all other packages for a given Zephyr SDK release
* does not install any files directly
* optional, but recommended for ease of use

* ``zephyr-sdk-$VERSION-base``:

* the base layout for the installed Zephyr SDK version
* includes files under ``/opt/zephyr/sdk/$VERSION``
* limited to cmake rules, scripts, version files, etc
* does not include toolchain components
* does not include host tools
* does not include Python virtual environment

* ``zephyr-sdk-$VERSION-pyenv``:

* the tree structure under ``/opt/zephyr/sdk/$VERSION/venv``
* a time-based snapshot of all required python packages for a given Zephyr SDK version

* ``zephyr-sdk-$VERSION-hosttools``:

* the host tools for the installed Zephyr SDK version (if applicable)
* includes files under ``/opt/zephyr/sdk/$VERSION/sysroots``
* for hosts without complete host tools support, this package may be empty

* ``zephyr-sdk-$VERSION-toolchain-$TARGET``:

* the ``$TARGET``-specific toolchain component of Zephyr SDK ``$VERSION``
* includes files under e.g. ``/opt/zephyr/sdk/$VERSION/$TARGET-zephyr-elf``

.. rubric:: Footnotes

.. [#pip]
Expand Down

0 comments on commit 6814414

Please sign in to comment.