2015-07-02 13:15:27 +00:00
|
|
|
=============
|
|
|
|
About Pungi
|
|
|
|
=============
|
|
|
|
|
2017-06-19 08:23:45 +00:00
|
|
|
.. figure:: _static/pungi_snake-sm-dark.png
|
2017-04-26 08:46:31 +00:00
|
|
|
:align: right
|
|
|
|
:alt: Pungi Logo
|
|
|
|
|
2015-11-25 07:09:35 +00:00
|
|
|
*Pungi* is a distribution compose tool.
|
2015-07-02 13:15:27 +00:00
|
|
|
|
|
|
|
Composes are release snapshots that contain release deliverables such as:
|
|
|
|
|
|
|
|
- installation trees
|
|
|
|
|
|
|
|
- RPMs
|
|
|
|
- repodata
|
|
|
|
- comps
|
|
|
|
|
|
|
|
- (bootable) ISOs
|
|
|
|
- kickstart trees
|
|
|
|
|
|
|
|
- anaconda images
|
|
|
|
- images for PXE boot
|
|
|
|
|
|
|
|
|
2015-11-25 07:09:35 +00:00
|
|
|
Tool overview
|
|
|
|
=============
|
|
|
|
|
|
|
|
*Pungi* consists of multiple separate executables backed by a common library.
|
|
|
|
|
|
|
|
The main entry-point is the ``pungi-koji`` script. It loads the compose
|
|
|
|
configuration and kicks off the process. Composing itself is done in phases.
|
|
|
|
Each phase is responsible for generating some artifacts on disk and updating
|
|
|
|
the ``compose`` object that is threaded through all the phases.
|
|
|
|
|
|
|
|
*Pungi* itself does not actually do that much. Most of the actual work is
|
|
|
|
delegated to separate executables. *Pungi* just makes sure that all the
|
|
|
|
commands are invoked in the appropriate order and with correct arguments. It
|
|
|
|
also moves the artifacts to correct locations.
|
|
|
|
|
2019-07-03 07:06:49 +00:00
|
|
|
The executable name ``pungi-koji`` comes from the fact that most of those
|
|
|
|
separate executables submit tasks to Koji that does the actual work in an
|
|
|
|
auditable way.
|
|
|
|
|
|
|
|
However unlike doing everything manually in Koji, Pungi will make sure you are
|
|
|
|
building all images from the same package set, and will produce even
|
|
|
|
deliverables that Koji can not create like YUM repos and installer ISOs.
|
|
|
|
|
2015-11-25 07:09:35 +00:00
|
|
|
|
2015-07-02 13:15:27 +00:00
|
|
|
Links
|
|
|
|
=====
|
|
|
|
- Upstream GIT: https://pagure.io/pungi/
|
2015-11-25 07:09:35 +00:00
|
|
|
- Issue tracker: https://pagure.io/pungi/issues
|
|
|
|
- Questions can be asked on *#fedora-releng* IRC channel on FreeNode
|
2017-04-26 08:44:58 +00:00
|
|
|
|
|
|
|
|
|
|
|
Origin of name
|
|
|
|
==============
|
|
|
|
|
|
|
|
The name *Pungi* comes from the instrument used to charm snakes. *Anaconda*
|
|
|
|
being the software Pungi was manipulating, and anaconda being a snake, led to
|
|
|
|
the referential naming.
|
|
|
|
|
|
|
|
The first name, which was suggested by Seth Vidal, was *FIST*, *Fedora
|
|
|
|
Installation <Something> Tool*. That name was quickly discarded and replaced
|
|
|
|
with Pungi.
|
|
|
|
|
|
|
|
There was also a bit of an inside joke that when said aloud, it could sound
|
|
|
|
like punji, which is `a sharpened stick at the bottom of a
|
|
|
|
trap <https://en.wikipedia.org/wiki/Punji_stick>`_. Kind of like software…
|