diff --git a/404.html b/404.html index e2aee994..7a69dbc4 100644 --- a/404.html +++ b/404.html @@ -191,7 +191,7 @@ if (!doNotTrack) {
- © 2022 Ettore Di Giacinto All Rights Reserved + © 2023 Ettore Di Giacinto All Rights Reserved Privacy Policy

About Luet

diff --git a/about/index.html b/about/index.html index c94a546d..a21f65ab 100644 --- a/about/index.html +++ b/about/index.html @@ -323,7 +323,7 @@ It provides an abstraction over the Dockerfile format introducing relation and v
- © 2022 Ettore Di Giacinto All Rights Reserved + © 2023 Ettore Di Giacinto All Rights Reserved Privacy Policy

About Luet

diff --git a/blog/2019/12/23/0.3-release/index.html b/blog/2019/12/23/0.3-release/index.html index 17a66a9f..e712540b 100644 --- a/blog/2019/12/23/0.3-release/index.html +++ b/blog/2019/12/23/0.3-release/index.html @@ -27,12 +27,12 @@ - + - + @@ -323,7 +323,7 @@ if (!doNotTrack) {
- © 2022 Ettore Di Giacinto All Rights Reserved + © 2023 Ettore Di Giacinto All Rights Reserved Privacy Policy

About Luet

diff --git a/blog/2019/12/23/website-is-up/index.html b/blog/2019/12/23/website-is-up/index.html index 3c11da20..a482c06e 100644 --- a/blog/2019/12/23/website-is-up/index.html +++ b/blog/2019/12/23/website-is-up/index.html @@ -27,12 +27,12 @@ - + - + @@ -318,7 +318,7 @@ if (!doNotTrack) {
- © 2022 Ettore Di Giacinto All Rights Reserved + © 2023 Ettore Di Giacinto All Rights Reserved Privacy Policy

About Luet

diff --git a/blog/index.html b/blog/index.html index e00086d6..95e39778 100644 --- a/blog/index.html +++ b/blog/index.html @@ -360,7 +360,7 @@ if (!doNotTrack) {
- © 2022 Ettore Di Giacinto All Rights Reserved + © 2023 Ettore Di Giacinto All Rights Reserved Privacy Policy

About Luet

diff --git a/blog/news/index.html b/blog/news/index.html index 5e5ab546..7894bb0c 100644 --- a/blog/news/index.html +++ b/blog/news/index.html @@ -327,7 +327,7 @@ if (!doNotTrack) {
- © 2022 Ettore Di Giacinto All Rights Reserved + © 2023 Ettore Di Giacinto All Rights Reserved Privacy Policy

About Luet

diff --git a/blog/releases/index.html b/blog/releases/index.html index 7b325bfe..12dcff95 100644 --- a/blog/releases/index.html +++ b/blog/releases/index.html @@ -327,7 +327,7 @@ if (!doNotTrack) {
- © 2022 Ettore Di Giacinto All Rights Reserved + © 2023 Ettore Di Giacinto All Rights Reserved Privacy Policy

About Luet

diff --git a/community/index.html b/community/index.html index a634d474..e955fa61 100644 --- a/community/index.html +++ b/community/index.html @@ -234,7 +234,7 @@ if (!doNotTrack) {
- © 2022 Ettore Di Giacinto All Rights Reserved + © 2023 Ettore Di Giacinto All Rights Reserved Privacy Policy

About Luet

diff --git a/docs/concepts/index.html b/docs/concepts/index.html index 6a82694f..0279569b 100644 --- a/docs/concepts/index.html +++ b/docs/concepts/index.html @@ -409,7 +409,7 @@ if (!doNotTrack) {
- Last modified October 18, 2022: Tag 0.33.0 (2513760) + Last modified February 2, 2023: :arrow_up: Bump to go 1.19 as requirement for building (#319) (5ee1ff6)
@@ -450,7 +450,7 @@ if (!doNotTrack) {
- © 2022 Ettore Di Giacinto All Rights Reserved + © 2023 Ettore Di Giacinto All Rights Reserved Privacy Policy

About Luet

diff --git a/docs/concepts/index.xml b/docs/concepts/index.xml index 18397a70..e8fdbfed 100644 --- a/docs/concepts/index.xml +++ b/docs/concepts/index.xml @@ -36,7 +36,7 @@ <p>There is no known package manager with 0-dependency that fully leverages the container ecosystem. This gap forces current package managers to depend on a specific system layout as base of the building process and the corresponding depencies. This can cause situations leading to a broken system. We want to fix that by empowering the user, by building their own packages, and redistribute them. Luet allows also to create packages entirely from Docker images content. In this way the user can actually bundle all the files of an image into a package and deliver part of it, or entirely as a layer. All of that, without the package manager depending on a single bit from it.</p> <h2 id="package-definitions">Package definitions</h2> -<p>Luet uses <a href="https://en.wikipedia.org/wiki/YAML">YAML</a> for the package specification format, Luet parses the <a href="https://luet.io/docs/docs/concepts/overview/constraints">requirements</a> to build <a href="https://luet.io/docs/docs/concepts/packages">packages</a>, so Luet can consume them.</p> +<p>Luet uses <a href="https://en.wikipedia.org/wiki/YAML">YAML</a> for the package specification format, Luet parses the <a href="https://luet.io/docs/concepts/overview/constraints">requirements</a> to build <a href="https://luet.io/docs/concepts/packages">packages</a>, so Luet can consume them.</p> <p>Below you can find links to tutorials on how to build packages, images and repositories.</p> @@ -86,7 +86,7 @@ distro/raspbian/buster <li>Package layers</li> <li>Package with includes</li> </ul> -<p>Check the <a href="https://luet.io/docs/docs/concepts/packages/specfile">Specfile concept</a> page for a full overview of the available keywords in the Luet specfile format.</p> +<p>Check the <a href="https://luet.io/docs/concepts/packages/specfile">Specfile concept</a> page for a full overview of the available keywords in the Luet specfile format.</p> <h3 id="seed-packages">Seed packages</h3> <p>Seed packages denote a parent package (or root) that can be used by other packages as a dependency. Normally, seed packages include just an image (preferably tagged) used as a base for other packages to depend on.</p> <p>It is useful to pin to specific image versions, and to write down in a tree where packages are coming from. There can be as many seed packages as you like in a tree.</p> diff --git a/docs/concepts/overview/build_packages/index.html b/docs/concepts/overview/build_packages/index.html index 2d673279..ddade6de 100644 --- a/docs/concepts/overview/build_packages/index.html +++ b/docs/concepts/overview/build_packages/index.html @@ -27,12 +27,12 @@ - + - + @@ -353,9 +353,9 @@ if (!doNotTrack) {

Build packages

Luet provides an abstraction layer on top of the container image layer to make the package a first class construct. A package definition and all its dependencies are translated by Luet to Dockerfiles which can then be built anywhere that docker runs.

To resolve the dependency tree Luet uses a SAT solver and no database. It is responsible for calculating the dependencies of a package and to prevent conflicts. The Luet core is still young, but it has a comprehensive test suite that we use to validate any future changes.

-

Building a package with Luet requires only a definition. This definition can be self-contained and be only composed of one specfile, or a group of them, forming a Luet tree. For more complex use-cases, see collections. Luet also supports building packages from standard Dockerfile directly.

+

Building a package with Luet requires only a definition. This definition can be self-contained and be only composed of one specfile, or a group of them, forming a Luet tree. For more complex use-cases, see collections. Luet also supports building packages from standard Dockerfile directly.

Run luet build --help to get more help for each parameter.

-

Build accepts a list of packages to build, which syntax is in the category/name-version notation. See also specfile documentation page to see how to express packages from the CLI.

+

Build accepts a list of packages to build, which syntax is in the category/name-version notation. See also specfile documentation page to see how to express packages from the CLI.

Reproducible builds

Pinning a container build is not easy - there are always so many moving pieces, and sometimes just set FROM an image tag might not be enough.

Luet while building a package generates intermediate images that are stored and can be optionally pushed in a registry. Those images can be re-used by Luet if building again the same tree to guarantuee highly reproducible builds.

@@ -381,7 +381,7 @@ $~/workdir> cat <<EOF > curl/Dockerfile $~/workdir> luet build --all

However, luet supports an extended syntax that allows to define packages with a more fine-grained control, templating support, and several other features that makes creation batch images much faster.

The extended syntax

-

A package definition is composed of a build.yaml and a sibiling definition.yaml.

+

A package definition is composed of a build.yaml and a sibiling definition.yaml.

In the following example, we are creating a dummy package (bar/foo). Which ships one file only, /foo

$> # put yourself in some workdir
 
@@ -544,7 +544,7 @@ $~/workdir> cat <<EOF > package3/definit
 	
 	
 	
- Last modified October 18, 2022: Tag 0.33.0 (2513760) + Last modified February 2, 2023: :arrow_up: Bump to go 1.19 as requirement for building (#319) (5ee1ff6)
@@ -586,7 +586,7 @@ $~/workdir> cat <<EOF > package3/definit
- © 2022 Ettore Di Giacinto All Rights Reserved + © 2023 Ettore Di Giacinto All Rights Reserved Privacy Policy

About Luet

diff --git a/docs/concepts/overview/constraints/index.html b/docs/concepts/overview/constraints/index.html index 58f602a0..51356ffc 100644 --- a/docs/concepts/overview/constraints/index.html +++ b/docs/concepts/overview/constraints/index.html @@ -27,12 +27,12 @@ - + - + @@ -318,7 +318,7 @@ if (!doNotTrack) {

Under the hood, Luet uses boolean satisfiability problem (SAT) reinforcement learning techniques to solve package constraints.

-

Luet allows you to specify 3 types of set of contraints on a package definition:

+

Luet allows you to specify 3 types of set of contraints on a package definition:

  • Requires
  • Conflicts
  • @@ -326,7 +326,7 @@ if (!doNotTrack) {

The package definition in your tree definition, along with its Requires and Conflicts, are turned into Boolean formulas that are consumed by the solver to compute a solution. The solution represent the state of your system after a particular query is asked to the solver (Install, Uninstall, Upgrade).

Requires and Conflicts

-

A list of requires and conflicts, composed of one or more packages, becomes a SAT formula. The formula is then given to the SAT solver to compute a finite state set of packages which must be installed in the system in order to met the requirements.

+

A list of requires and conflicts, composed of one or more packages, becomes a SAT formula. The formula is then given to the SAT solver to compute a finite state set of packages which must be installed in the system in order to met the requirements.

As Luet allows to express constraints with selectors ( e.g. A depends on >=B-1.0) it generates additional constraints to guarantee that at least one package and at most one is picked as dependency (ALO and AMO).

Provides

Provides constraints are not encoded in a SAT formula. Instead, they are expanded into an in-place substitution of the packages that they have to be replaced with. @@ -403,7 +403,7 @@ They share the same SAT logic of expansion, allowing to swap entire version rang

- Last modified October 18, 2022: Tag 0.33.0 (2513760) + Last modified February 2, 2023: :arrow_up: Bump to go 1.19 as requirement for building (#319) (5ee1ff6)
@@ -445,7 +445,7 @@ They share the same SAT logic of expansion, allowing to swap entire version rang
- © 2022 Ettore Di Giacinto All Rights Reserved + © 2023 Ettore Di Giacinto All Rights Reserved Privacy Policy

About Luet

diff --git a/docs/concepts/overview/index.html b/docs/concepts/overview/index.html index bdb99e3d..7938bec2 100644 --- a/docs/concepts/overview/index.html +++ b/docs/concepts/overview/index.html @@ -326,7 +326,7 @@ if (!doNotTrack) {

There is no known package manager with 0-dependency that fully leverages the container ecosystem. This gap forces current package managers to depend on a specific system layout as base of the building process and the corresponding depencies. This can cause situations leading to a broken system. We want to fix that by empowering the user, by building their own packages, and redistribute them. Luet allows also to create packages entirely from Docker images content. In this way the user can actually bundle all the files of an image into a package and deliver part of it, or entirely as a layer. All of that, without the package manager depending on a single bit from it.

Package definitions

-

Luet uses YAML for the package specification format, Luet parses the requirements to build packages, so Luet can consume them.

+

Luet uses YAML for the package specification format, Luet parses the requirements to build packages, so Luet can consume them.

Below you can find links to tutorials on how to build packages, images and repositories.

@@ -440,7 +440,7 @@ Luet allows also to create packages entirely from Docker images content. In this
- Last modified October 18, 2022: Tag 0.33.0 (2513760) + Last modified February 2, 2023: :arrow_up: Bump to go 1.19 as requirement for building (#319) (5ee1ff6)
@@ -481,7 +481,7 @@ Luet allows also to create packages entirely from Docker images content. In this
- © 2022 Ettore Di Giacinto All Rights Reserved + © 2023 Ettore Di Giacinto All Rights Reserved Privacy Policy

About Luet

diff --git a/docs/concepts/overview/index.xml b/docs/concepts/overview/index.xml index 7d4f59e5..a549c2db 100644 --- a/docs/concepts/overview/index.xml +++ b/docs/concepts/overview/index.xml @@ -34,9 +34,9 @@ <p><img src="https://luet.io/docs/tree.jpg" alt="Build packages"></p> <p>Luet provides an abstraction layer on top of the container image layer to make the package a first class construct. A package definition and all its dependencies are translated by Luet to Dockerfiles which can then be built anywhere that docker runs.</p> <p>To resolve the dependency tree Luet uses a SAT solver and no database. It is responsible for calculating the dependencies of a package and to prevent conflicts. The Luet core is still young, but it has a comprehensive test suite that we use to validate any future changes.</p> -<p>Building a package with Luet requires only a <a href="https://luet.io/docs/docs/concepts/packages/specfile">definition</a>. This definition can be self-contained and be only composed of one <a href="https://luet.io/docs/docs/concepts/packages/specfile">specfile</a>, or a group of them, forming a Luet tree. For more complex use-cases, see <a href="https://luet.io/docs/docs/concepts/packages/collections">collections</a>. Luet also supports building packages from standard <code>Dockerfile</code> directly.</p> +<p>Building a package with Luet requires only a <a href="https://luet.io/docs/concepts/packages/specfile">definition</a>. This definition can be self-contained and be only composed of one <a href="https://luet.io/docs/concepts/packages/specfile">specfile</a>, or a group of them, forming a Luet tree. For more complex use-cases, see <a href="https://luet.io/docs/concepts/packages/collections">collections</a>. Luet also supports building packages from standard <code>Dockerfile</code> directly.</p> <p>Run <code>luet build --help</code> to get more help for each parameter.</p> -<p>Build accepts a list of packages to build, which syntax is in the <code>category/name-version</code> notation. See also <a href="https://luet.io/docs/docs/concepts/packages/specfile/#refering-to-packages-from-the-cli">specfile documentation page</a> to see how to express packages from the CLI.</p> +<p>Build accepts a list of packages to build, which syntax is in the <code>category/name-version</code> notation. See also <a href="https://luet.io/docs/concepts/packages/specfile/#refering-to-packages-from-the-cli">specfile documentation page</a> to see how to express packages from the CLI.</p> <h2 id="reproducible-builds">Reproducible builds</h2> <p>Pinning a container build is not easy - there are always so many moving pieces, and sometimes just set <code>FROM</code> an image tag might not be enough.</p> <p>Luet while building a package generates intermediate images that are stored and can be optionally pushed in a registry. Those images can be re-used by Luet if building again the same tree to guarantuee highly reproducible builds.</p> @@ -62,7 +62,7 @@ $~/workdir&gt; cat <span style="color:#4e9a06">&lt;&lt $~/workdir&gt; luet build --all </code></pre></div><p>However, <code>luet</code> supports an extended syntax that allows to define packages with a more fine-grained control, templating support, and several other features that makes creation batch images much faster.</p> <h3 id="the-extended-syntax">The extended syntax</h3> -<p>A <a href="https://luet.io/docs/docs/concepts/packages/specfile">package definition</a> is composed of a <code>build.yaml</code> and a sibiling <code>definition.yaml</code>.</p> +<p>A <a href="https://luet.io/docs/concepts/packages/specfile">package definition</a> is composed of a <code>build.yaml</code> and a sibiling <code>definition.yaml</code>.</p> <p>In the following example, we are creating a dummy package (<code>bar/foo</code>). Which ships one file only, <code>/foo</code></p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">$&gt; <span style="color:#8f5902;font-style:italic"># put yourself in some workdir</span> @@ -379,7 +379,7 @@ $ luet search --table &lt;regex&gt; <p>Under the hood, Luet uses boolean satisfiability problem (<a href="https://en.wikipedia.org/wiki/Boolean_satisfiability_problem">SAT</a>) <a href="https://en.wikipedia.org/wiki/Reinforcement_learning">reinforcement learning</a> techniques to solve package constraints.</p> -<p>Luet allows you to specify 3 types of set of contraints on a <a href="https://luet.io/docs/docs/concepts/packages/">package</a> definition:</p> +<p>Luet allows you to specify 3 types of set of contraints on a <a href="https://luet.io/docs/concepts/packages/">package</a> definition:</p> <ul> <li>Requires</li> <li>Conflicts</li> @@ -387,7 +387,7 @@ $ luet search --table &lt;regex&gt; </ul> <p>The package definition in your tree definition, along with its Requires and Conflicts, are turned into Boolean formulas that are consumed by the solver to compute a solution. The solution represent the state of your system after a particular query is asked to the solver (Install, Uninstall, Upgrade).</p> <h2 id="requires-and-conflicts">Requires and Conflicts</h2> -<p>A list of requires and conflicts, composed of one or more <a href="https://luet.io/docs/docs/concepts/packages/">packages</a>, becomes a SAT formula. The formula is then given to the SAT solver to compute a finite state set of packages which must be installed in the system in order to met the requirements.</p> +<p>A list of requires and conflicts, composed of one or more <a href="https://luet.io/docs/concepts/packages/">packages</a>, becomes a SAT formula. The formula is then given to the SAT solver to compute a finite state set of packages which must be installed in the system in order to met the requirements.</p> <p>As Luet allows to express constraints with selectors ( e.g. <code>A depends on &gt;=B-1.0</code>) it generates additional constraints to guarantee that at least one package and at most one is picked as dependency (<em>ALO</em> and <em>AMO</em>).</p> <h2 id="provides">Provides</h2> <p>Provides constraints are not encoded in a SAT formula. Instead, they are <code>expanded</code> into an in-place substitution of the packages that they have to be replaced with. diff --git a/docs/concepts/overview/repositories/index.html b/docs/concepts/overview/repositories/index.html index 205d8604..1c6dba5a 100644 --- a/docs/concepts/overview/repositories/index.html +++ b/docs/concepts/overview/repositories/index.html @@ -27,12 +27,12 @@ - + - + @@ -507,7 +507,7 @@ foo-bar-0.1-builder.image.tar foo-bar-0.1.image.tar foo-bar-0.1.metadata.yaml
- Last modified October 18, 2022: Tag 0.33.0 (2513760) + Last modified February 2, 2023: :arrow_up: Bump to go 1.19 as requirement for building (#319) (5ee1ff6)
@@ -549,7 +549,7 @@ foo-bar-0.1-builder.image.tar foo-bar-0.1.image.tar foo-bar-0.1.metadata.yaml
- © 2022 Ettore Di Giacinto All Rights Reserved + © 2023 Ettore Di Giacinto All Rights Reserved Privacy Policy

About Luet

diff --git a/docs/concepts/overview/usage/index.html b/docs/concepts/overview/usage/index.html index 31e72a5f..652317ff 100644 --- a/docs/concepts/overview/usage/index.html +++ b/docs/concepts/overview/usage/index.html @@ -27,12 +27,12 @@ - + - + @@ -462,7 +462,7 @@ $ luet search --table <regex>
- Last modified October 18, 2022: Tag 0.33.0 (2513760) + Last modified February 2, 2023: :arrow_up: Bump to go 1.19 as requirement for building (#319) (5ee1ff6)
@@ -504,7 +504,7 @@ $ luet search --table <regex>
- © 2022 Ettore Di Giacinto All Rights Reserved + © 2023 Ettore Di Giacinto All Rights Reserved Privacy Policy

About Luet

diff --git a/docs/concepts/packages/collections/index.html b/docs/concepts/packages/collections/index.html index d04dce4a..782b900c 100644 --- a/docs/concepts/packages/collections/index.html +++ b/docs/concepts/packages/collections/index.html @@ -27,12 +27,12 @@ - + - + @@ -335,7 +335,7 @@ if (!doNotTrack) { ... additional files in the build context

Luet during the build phase, will treat packages of a collection individually. A collection is a way to share the same build process across different packages.

Templating

-

The templating mechanism can be used in collections as well, and each stanza in packages is used to interpolate each single package.

+

The templating mechanism can be used in collections as well, and each stanza in packages is used to interpolate each single package.

Examples

@@ -450,7 +450,7 @@ if (!doNotTrack) {
- © 2022 Ettore Di Giacinto All Rights Reserved + © 2023 Ettore Di Giacinto All Rights Reserved Privacy Policy

About Luet

diff --git a/docs/concepts/packages/index.html b/docs/concepts/packages/index.html index ce108b99..3b85f977 100644 --- a/docs/concepts/packages/index.html +++ b/docs/concepts/packages/index.html @@ -355,7 +355,7 @@ distro/raspbian/buster
  • Package layers
  • Package with includes
  • -

    Check the Specfile concept page for a full overview of the available keywords in the Luet specfile format.

    +

    Check the Specfile concept page for a full overview of the available keywords in the Luet specfile format.

    Seed packages

    Seed packages denote a parent package (or root) that can be used by other packages as a dependency. Normally, seed packages include just an image (preferably tagged) used as a base for other packages to depend on.

    It is useful to pin to specific image versions, and to write down in a tree where packages are coming from. There can be as many seed packages as you like in a tree.

    @@ -588,7 +588,7 @@ distro/raspbian/buster
    - Last modified October 18, 2022: Tag 0.33.0 (2513760) + Last modified February 2, 2023: :arrow_up: Bump to go 1.19 as requirement for building (#319) (5ee1ff6)
    @@ -629,7 +629,7 @@ distro/raspbian/buster
    - © 2022 Ettore Di Giacinto All Rights Reserved + © 2023 Ettore Di Giacinto All Rights Reserved Privacy Policy

    About Luet

    diff --git a/docs/concepts/packages/index.xml b/docs/concepts/packages/index.xml index 1ca454bc..3d6a275e 100644 --- a/docs/concepts/packages/index.xml +++ b/docs/concepts/packages/index.xml @@ -23,7 +23,7 @@ <h1 id="specfiles">Specfiles</h1> -<p>Luet <a href="https://luet.io/docs/docs/concepts/packages/">packages</a> are defined by specfiles. Specfiles define the runtime and builtime requirements of a package. There is an hard distinction between runtime and buildtime. A spec is composed at least by the runtime (<code>definition.yaml</code> or a <code>collection.yaml</code>) and the buildtime specification (<code>build.yaml</code>).</p> +<p>Luet <a href="https://luet.io/docs/concepts/packages/">packages</a> are defined by specfiles. Specfiles define the runtime and builtime requirements of a package. There is an hard distinction between runtime and buildtime. A spec is composed at least by the runtime (<code>definition.yaml</code> or a <code>collection.yaml</code>) and the buildtime specification (<code>build.yaml</code>).</p> <p>Luet identifies the package definition by looking at directories that contains a <code>build.yaml</code> and a <code>definition.yaml</code> (or <code>collection.yaml</code>) files. A Luet tree is merely a composition of directories that follows this convention. There is no constriction on either folder naming or hierarchy.</p> <p><em>Example of a <a href="https://github.com/Luet-lab/luet-embedded/tree/master/distro">tree folder hierarchy</a></em></p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">tree distro @@ -155,7 +155,7 @@ The directory must represent exactly how the files will be ultimately installed </span><span style="color:#f8f8f8;text-decoration:underline"></span>- <span style="color:#204a87;font-weight:bold">name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;baz&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">category</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;bar&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">version</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.0&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> -</span></code></pre></div><p>See <a href="https://luet.io/docs/docs/concepts/packages">Package concepts</a> for more information on how to represent a package in a Luet tree.</p> +</span></code></pre></div><p>See <a href="https://luet.io/docs/concepts/packages">Package concepts</a> for more information on how to represent a package in a Luet tree.</p> <h3 id="copy"><code>copy</code></h3> <p><em>since luet&gt;=0.15.0</em></p> <p>(optional) A list of packages/images where to copy files from. It is the <a href="https://docs.docker.com/develop/develop-images/multistage-build/">Docker multi-stage build</a> equivalent but enhanced with tree hashing resolution.</p> @@ -233,7 +233,7 @@ The directory must represent exactly how the files will be ultimately installed </span><span style="color:#f8f8f8;text-decoration:underline"></span>- <span style="color:#204a87;font-weight:bold">name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;baz&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">category</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;bar&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">version</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.0&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> -</span></code></pre></div><p>See <a href="https://luet.io/docs/docs/concepts/packages">Package concepts</a> for more information on how to represent a package in a Luet tree.</p> +</span></code></pre></div><p>See <a href="https://luet.io/docs/concepts/packages">Package concepts</a> for more information on how to represent a package in a Luet tree.</p> <h4 id="examples">Examples</h4> <ul> <li><a href="https://github.com/mocaccinoOS/mocaccino-stage3/blob/278e3637cf65761bf01a22c891135e237e4717ad/packages/system/stage3/build.yaml">https://github.com/mocaccinoOS/mocaccino-stage3/blob/278e3637cf65761bf01a22c891135e237e4717ad/packages/system/stage3/build.yaml</a></li> @@ -262,7 +262,7 @@ The directory must represent exactly how the files will be ultimately installed </span><span style="color:#f8f8f8;text-decoration:underline"></span>- <span style="color:#204a87;font-weight:bold">name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;baz&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">category</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;bar&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">version</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.0&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> -</span></code></pre></div><p>See <a href="https://luet.io/docs/docs/concepts/packages">Package concepts</a> for more information on how to represent a package in a Luet tree.</p> +</span></code></pre></div><p>See <a href="https://luet.io/docs/concepts/packages">Package concepts</a> for more information on how to represent a package in a Luet tree.</p> <h3 id="requires_final_images"><code>requires_final_images</code></h3> <p><em>since luet&gt;=0.17.0</em></p> <p>(optional) A boolean flag which instruct luet to use the final images in the <code>requires</code> field.</p> @@ -304,7 +304,7 @@ The directory must represent exactly how the files will be ultimately installed </span></code></pre></div><p>After generating the main package, <code>luet</code> will create split packages from the resulting one from the list.</p> <p>Every subpackage stanza supports <code>excludes</code> and <code>includes</code> to selectively exclude and include files in every resulting package.</p> <p>Note, subpackages support is available for collection, standard packages and templated packages.</p> -<p>See <a href="https://luet.io/docs/docs/concepts/packages">Package concepts</a> for more information on how to represent a package in a Luet tree.</p> +<p>See <a href="https://luet.io/docs/concepts/packages">Package concepts</a> for more information on how to represent a package in a Luet tree.</p> <h2 id="rutime-specs">Rutime specs</h2> <p>Runtime specification are denoted in a <code>definition.yaml</code> or a <code>collection.yaml</code> sibiling file. It identifies the package and the runtime contraints attached to it.</p> <p><em>definition.yaml</em>:</p> @@ -351,7 +351,7 @@ The directory must represent exactly how the files will be ultimately installed </span><span style="color:#f8f8f8;text-decoration:underline"> </span>- <span style="color:#204a87;font-weight:bold">name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;bar&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">version</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;&lt;1.0&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#000">...</span><span style="color:#f8f8f8;text-decoration:underline"> -</span></code></pre></div><p>All the fields (also the ones which are not part of the spec) in the <code>definition.yaml</code> file are available as templating values when rendering the <code>build.yaml</code> file. When running <a href="https://luet.io/docs/docs/concepts/packages/specfile/#finalizers">finalizers</a> instead only the fields belonging to the specs are available.</p> +</span></code></pre></div><p>All the fields (also the ones which are not part of the spec) in the <code>definition.yaml</code> file are available as templating values when rendering the <code>build.yaml</code> file. When running <a href="https://luet.io/docs/concepts/packages/specfile/#finalizers">finalizers</a> instead only the fields belonging to the specs are available.</p> <h3 id="keywords-1">Keywords</h3> <p>Here is a list of the full keyword refereces</p> <h3 id="annotations"><code>annotations</code></h3> @@ -372,7 +372,7 @@ The directory must represent exactly how the files will be ultimately installed </span><span style="color:#f8f8f8;text-decoration:underline"></span>- <span style="color:#204a87;font-weight:bold">name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;baz&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">category</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;bar&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">version</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.0&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> -</span></code></pre></div><p>See <a href="https://luet.io/docs/docs/concepts/packages">Package concepts</a> for more information on how to represent a package in a Luet tree.</p> +</span></code></pre></div><p>See <a href="https://luet.io/docs/concepts/packages">Package concepts</a> for more information on how to represent a package in a Luet tree.</p> <h3 id="description"><code>description</code></h3> <p>(optional) A string indicating the package description</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml"><span style="color:#204a87;font-weight:bold">name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;foo&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> @@ -403,7 +403,7 @@ The directory must represent exactly how the files will be ultimately installed </span><span style="color:#f8f8f8;text-decoration:underline"></span>- <span style="color:#204a87;font-weight:bold">name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;baz&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">category</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;bar&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">version</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.0&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> -</span></code></pre></div><p>See <a href="https://luet.io/docs/docs/concepts/packages">Package concepts</a> for more information on how to represent a package in a Luet tree.</p> +</span></code></pre></div><p>See <a href="https://luet.io/docs/concepts/packages">Package concepts</a> for more information on how to represent a package in a Luet tree.</p> <h3 id="requires-1"><code>requires</code></h3> <p>(optional) List of packages which it depends on in runtime.</p> <p>A list of packages that the current package depends on in <em>runtime</em>. The determines the resolution tree of the package itself.</p> @@ -415,7 +415,7 @@ The directory must represent exactly how the files will be ultimately installed </span><span style="color:#f8f8f8;text-decoration:underline"></span>- <span style="color:#204a87;font-weight:bold">name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;baz&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">category</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;bar&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">version</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.0&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> -</span></code></pre></div><p>See <a href="https://luet.io/docs/docs/concepts/packages">Package concepts</a> for more information on how to represent a package in a Luet tree.</p> +</span></code></pre></div><p>See <a href="https://luet.io/docs/concepts/packages">Package concepts</a> for more information on how to represent a package in a Luet tree.</p> <h3 id="uri"><code>uri</code></h3> <p>(optional) A list of URI relative to the package ( e.g. the official project pages, wikis, README, etc )</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml"><span style="color:#204a87;font-weight:bold">uri</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> @@ -590,7 +590,7 @@ The directory must represent exactly how the files will be ultimately installed ... additional files in the build context </code></pre><p>Luet during the build phase, will treat packages of a collection individually. A collection is a way to share the same build process across different packages.</p> <h2 id="templating">Templating</h2> -<p><a href="https://luet.io/docs/docs/concepts/packages/templates">The templating mechanism</a> can be used in collections as well, and each stanza in <code>packages</code> is used to interpolate each single package.</p> +<p><a href="https://luet.io/docs/concepts/packages/templates">The templating mechanism</a> can be used in collections as well, and each stanza in <code>packages</code> is used to interpolate each single package.</p> <h2 id="examples">Examples</h2> <ul> <li><a href="https://github.com/mocaccinoOS/mocaccino-musl-universe/tree/master/multi-arch/packages/entities">https://github.com/mocaccinoOS/mocaccino-musl-universe/tree/master/multi-arch/packages/entities</a></li> diff --git a/docs/concepts/packages/specfile/index.html b/docs/concepts/packages/specfile/index.html index 084791bf..4d4e29e1 100644 --- a/docs/concepts/packages/specfile/index.html +++ b/docs/concepts/packages/specfile/index.html @@ -27,12 +27,12 @@ - + - + @@ -361,7 +361,7 @@ if (!doNotTrack) {

    Specfiles

    -

    Luet packages are defined by specfiles. Specfiles define the runtime and builtime requirements of a package. There is an hard distinction between runtime and buildtime. A spec is composed at least by the runtime (definition.yaml or a collection.yaml) and the buildtime specification (build.yaml).

    +

    Luet packages are defined by specfiles. Specfiles define the runtime and builtime requirements of a package. There is an hard distinction between runtime and buildtime. A spec is composed at least by the runtime (definition.yaml or a collection.yaml) and the buildtime specification (build.yaml).

    Luet identifies the package definition by looking at directories that contains a build.yaml and a definition.yaml (or collection.yaml) files. A Luet tree is merely a composition of directories that follows this convention. There is no constriction on either folder naming or hierarchy.

    Example of a tree folder hierarchy

    tree distro                                                      
    @@ -493,7 +493,7 @@ The directory must represent exactly how the files will be ultimately installed
     - name: "baz"
       category: "bar"
       version: "1.0"
    -

    See Package concepts for more information on how to represent a package in a Luet tree.

    +

    See Package concepts for more information on how to represent a package in a Luet tree.

    copy

    since luet>=0.15.0

    (optional) A list of packages/images where to copy files from. It is the Docker multi-stage build equivalent but enhanced with tree hashing resolution.

    @@ -571,7 +571,7 @@ The directory must represent exactly how the files will be ultimately installed - name: "baz" category: "bar" version: "1.0" -

    See Package concepts for more information on how to represent a package in a Luet tree.

    +

    See Package concepts for more information on how to represent a package in a Luet tree.

    Examples