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.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) {

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
<<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
@@ -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
@@ -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> cat <span style="color:#4e9a06"><<
$~/workdir> 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">$> <span style="color:#8f5902;font-style:italic"># put yourself in some workdir</span>
@@ -379,7 +379,7 @@ $ luet search --table <regex>
<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 <regex>
</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 >=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
@@ -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>
@@ -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
@@ -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">"baz"</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">"bar"</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">"1.0"</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>=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">"baz"</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">"bar"</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">"1.0"</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">"baz"</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">"bar"</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">"1.0"</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>=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">"bar"</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">"<1.0"</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">"baz"</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">"bar"</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">"1.0"</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">"foo"</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">"baz"</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">"bar"</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">"1.0"</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">"baz"</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">"bar"</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">"1.0"</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
- https://github.com/mocaccinoOS/mocaccino-stage3/blob/278e3637cf65761bf01a22c891135e237e4717ad/packages/system/stage3/build.yaml
@@ -600,7 +600,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.
requires_final_images
since luet>=0.17.0
(optional) A boolean flag which instruct luet to use the final images in the requires
field.
@@ -642,7 +642,7 @@ The directory must represent exactly how the files will be ultimately installed
After generating the main package, luet
will create split packages from the resulting one from the list.
Every subpackage stanza supports excludes
and includes
to selectively exclude and include files in every resulting package.
Note, subpackages support is available for collection, standard packages and templated packages.
-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.
Rutime specs
Runtime specification are denoted in a definition.yaml
or a collection.yaml
sibiling file. It identifies the package and the runtime contraints attached to it.
definition.yaml:
@@ -689,7 +689,7 @@ The directory must represent exactly how the files will be ultimately installed
- name: "bar"
version: "<1.0"
...
-All the fields (also the ones which are not part of the spec) in the definition.yaml
file are available as templating values when rendering the build.yaml
file. When running finalizers instead only the fields belonging to the specs are available.
+All the fields (also the ones which are not part of the spec) in the definition.yaml
file are available as templating values when rendering the build.yaml
file. When running finalizers instead only the fields belonging to the specs are available.
Keywords
Here is a list of the full keyword refereces
annotations
@@ -710,7 +710,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.
description
(optional) A string indicating the package description
name: "foo"
@@ -741,7 +741,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.
requires
(optional) List of packages which it depends on in runtime.
A list of packages that the current package depends on in runtime. The determines the resolution tree of the package itself.
@@ -753,7 +753,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.
uri
(optional) A list of URI relative to the package ( e.g. the official project pages, wikis, README, etc )
uri:
@@ -845,7 +845,7 @@ The directory must represent exactly how the files will be ultimately installed
@@ -887,7 +887,7 @@ The directory must represent exactly how the files will be ultimately installed
-
© 2022 Ettore Di Giacinto All Rights Reserved
+
© 2023 Ettore Di Giacinto All Rights Reserved
Privacy Policy
About Luet
diff --git a/docs/concepts/packages/templates/index.html b/docs/concepts/packages/templates/index.html
index ca34e64f..c4b0ab85 100644
--- a/docs/concepts/packages/templates/index.html
+++ b/docs/concepts/packages/templates/index.html
@@ -27,12 +27,12 @@
-
+
-
+
@@ -486,7 +486,7 @@ if (!doNotTrack) {
@@ -528,7 +528,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/plugins-and-extensions/index.html b/docs/concepts/plugins-and-extensions/index.html
index facbed46..fdaa7291 100644
--- a/docs/concepts/plugins-and-extensions/index.html
+++ b/docs/concepts/plugins-and-extensions/index.html
@@ -481,7 +481,7 @@ $ luet --plugin test-foo install -y foopackage
@@ -522,7 +522,7 @@ $ luet --plugin test-foo install -y foopackage
-
© 2022 Ettore Di Giacinto All Rights Reserved
+
© 2023 Ettore Di Giacinto All Rights Reserved
Privacy Policy
About Luet
diff --git a/docs/contribution-guidelines/index.html b/docs/contribution-guidelines/index.html
index 8e0134f2..3cab6796 100644
--- a/docs/contribution-guidelines/index.html
+++ b/docs/contribution-guidelines/index.html
@@ -28,13 +28,13 @@ We use Hugo to format and generate our website, the Docsy theme for styling and
-
+
-
+
@@ -433,7 +433,7 @@ the content.
@@ -475,7 +475,7 @@ the content.
-
© 2022 Ettore Di Giacinto All Rights Reserved
+
© 2023 Ettore Di Giacinto All Rights Reserved
Privacy Policy
About Luet
diff --git a/docs/getting-started/index.html b/docs/getting-started/index.html
index d61b0f8a..cc0a1994 100644
--- a/docs/getting-started/index.html
+++ b/docs/getting-started/index.html
@@ -498,7 +498,7 @@ mv .luet.yaml /etc/luet/luet.yaml
@@ -539,7 +539,7 @@ mv .luet.yaml /etc/luet/luet.yaml
-
© 2022 Ettore Di Giacinto All Rights Reserved
+
© 2023 Ettore Di Giacinto All Rights Reserved
Privacy Policy
About Luet
diff --git a/docs/index.html b/docs/index.html
index fb1d8392..1d2c0cde 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -302,8 +302,8 @@ if (!doNotTrack) {
Luet is a Package Manager based on containers. It provides an abstraction layer over container specfile format, enhancing the image resolution process of open container inititative (OCI) runtimes with boolean satisfiability problem (SAT) solving techniques.
-
Luet can be used to build packages, container images, as well as to manage and distribute installations of derived packages locally.
-
Allows to apply semver constraints to Image dependencies, treating it as a classical CSP.
+
Luet can be used to build packages, container images, as well as to manage and distribute installations of derived packages locally.
+
Allows to apply semver constraints to Image dependencies, treating it as a classical CSP.
@@ -425,7 +425,7 @@ if (!doNotTrack) {
@@ -466,7 +466,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/index.xml b/docs/index.xml
index 22e4ce15..4787ab05 100644
--- a/docs/index.xml
+++ b/docs/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> cat <span style="color:#4e9a06"><<
$~/workdir> 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">$> <span style="color:#8f5902;font-style:italic"># put yourself in some workdir</span>
@@ -392,7 +392,7 @@ foo-bar-0.1-builder.image.tar foo-bar-0.1.image.tar foo-bar-0.1.metadata.yaml
<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
@@ -524,7 +524,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">"baz"</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">"bar"</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">"1.0"</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>=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>
@@ -602,7 +602,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">"baz"</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">"bar"</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">"1.0"</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>
@@ -631,7 +631,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">"baz"</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">"bar"</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">"1.0"</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>=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>
@@ -673,7 +673,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>
@@ -720,7 +720,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">"bar"</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">"<1.0"</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>
@@ -741,7 +741,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">"baz"</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">"bar"</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">"1.0"</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">"foo"</span><span style="color:#f8f8f8;text-decoration:underline">
@@ -772,7 +772,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">"baz"</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">"bar"</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">"1.0"</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>
@@ -784,7 +784,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">"baz"</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">"bar"</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">"1.0"</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">
@@ -1259,7 +1259,7 @@ $> sudo make build-all
</code></pre>
<p>At the end of the process, a file <code>luet_os.img</code>, ready to be flashed to an SD card, should be present in the current directory.</p>
<h2 id="add-packages">Add packages</h2>
-<p>In order to build and add <a href="https://luet.io/docs/docs/concepts/packages/">packages</a> to the exiting repository, simply add or edit the <a href="https://luet.io/docs/docs/concepts/specfile">specfiles</a> under the <code>distro</code> folder. When doing <code>make rebuild-all</code> the packages will be automatically compiled and made available to the local repository.</p>
+<p>In order to build and add <a href="https://luet.io/docs/concepts/packages/">packages</a> to the exiting repository, simply add or edit the <a href="https://luet.io/docs/concepts/packages/specfile">specfiles</a> under the <code>distro</code> folder. When doing <code>make rebuild-all</code> the packages will be automatically compiled and made available to the local repository.</p>
@@ -1274,7 +1274,7 @@ $> sudo make build-all
<h2 id="simple-package-build">Simple package build</h2>
-<p>Creating and building a simple <a href="https://luet.io/docs/docs/concepts/packages/">package</a>:</p>
+<p>Creating and building a simple <a href="https://luet.io/docs/concepts/packages/">package</a>:</p>
<pre tabindex="0"><code>$> mkdir package
$> cat <<EOF > package/build.yaml
@@ -1301,7 +1301,7 @@ $> luet build --all
...
</code></pre><h3 id="build-packages">Build packages</h3>
-<p>In order to build a specific version, a full <a href="https://luet.io/docs/docs/concepts/packages/">package</a> definition (triple of <code>category</code>, <code>name</code> and <code>version</code>) has to be specified.
+<p>In order to build a specific version, a full <a href="https://luet.io/docs/concepts/packages/">package</a> definition (triple of <code>category</code>, <code>name</code> and <code>version</code>) has to be specified.
In this example we will also enable package compression (gzip).</p>
<pre tabindex="0"><code>$> mkdir package
@@ -1368,7 +1368,7 @@ $> luet build bar/foo-0.1 --compression gzip
... 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>
@@ -1389,7 +1389,7 @@ $> luet build bar/foo-0.1 --compression gzip
<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>
@@ -1397,7 +1397,7 @@ $> luet build bar/foo-0.1 --compression gzip
</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 >=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/resources/arm/index.html b/docs/resources/arm/index.html
index 61670df6..5a37461b 100644
--- a/docs/resources/arm/index.html
+++ b/docs/resources/arm/index.html
@@ -27,12 +27,12 @@
-
+
-
+
@@ -372,7 +372,7 @@ $> sudo make build-all
At the end of the process, a file luet_os.img
, ready to be flashed to an SD card, should be present in the current directory.
Add packages
-
In order to build and add packages to the exiting repository, simply add or edit the specfiles under the distro
folder. When doing make rebuild-all
the packages will be automatically compiled and made available to the local repository.
+
In order to build and add packages to the exiting repository, simply add or edit the specfiles under the distro
folder. When doing make rebuild-all
the packages will be automatically compiled and made available to the local repository.