From f49c6c2d6d734ba07e34c0fbf18e666c0e81aada Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Fri, 10 Nov 2023 20:52:31 +0100 Subject: [PATCH 01/34] Add skeleton of readthedocs integration --- .readthedocs.yaml | 18 ++++++++++++++++++ doc/conf.py | 19 +++++++++++++++++++ doc/index.rst | 44 ++++++++++++++++++++++++++++++++++++++++++++ doc/requirements.txt | 2 ++ 4 files changed, 83 insertions(+) create mode 100644 .readthedocs.yaml create mode 100644 doc/conf.py create mode 100644 doc/index.rst create mode 100644 doc/requirements.txt diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 0000000..754d305 --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,18 @@ +# .readthedocs.yaml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +build: + os: ubuntu-22.04 + tools: + python: "3.10" + +sphinx: + configuration: doc/conf.py + +python: + install: + - requirements: doc/requirements.txt diff --git a/doc/conf.py b/doc/conf.py new file mode 100644 index 0000000..d373dd8 --- /dev/null +++ b/doc/conf.py @@ -0,0 +1,19 @@ +project = 'Mezzotint' +copyright = '2023, Bo Maryniuk' +author = 'Bo Maryniuk' +version = "0.1" +release = "Pre-release" + +extensions = ["myst_parser"] +source_suffix = { + '.rst': 'restructuredtext', + '.txt': 'restructuredtext', + '.md': 'markdown', +} + +templates_path = ['_templates'] +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +html_show_sourcelink = False +html_theme = 'karma_sphinx_theme' +html_static_path = ['_static'] diff --git a/doc/index.rst b/doc/index.rst new file mode 100644 index 0000000..af9408a --- /dev/null +++ b/doc/index.rst @@ -0,0 +1,44 @@ +.. Teabox documentation master file, created by + sphinx-quickstart on Fri Nov 25 14:06:47 2022. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to Mezzotint documentation! +================================== + +.. note:: + This documentation covers Mezzotint |version| β€” the solution to + convert a container (OCI or any other type) into an app-bundle, + leaving behind unnecessary "dead code" β€” libraries that are never + really used. + + Mezzotint is in early continuous development version and is **experimental**. + +.. toctree:: + :maxdepth: 1 + :caption: Contents: + + usage_overview + configuration + faq + + +Concept +------- + + +Use Case +-------- + + +Contributing +------------- + +* `GitHub Repository `__ + + Best way to make progress is to open an issue or submit a Pull Request on the GitHub. + +* `GitHub Issues Tracker `__ + + In case you don't know how to implement it, but you still want + something cool to happen. :-) diff --git a/doc/requirements.txt b/doc/requirements.txt new file mode 100644 index 0000000..7a06da2 --- /dev/null +++ b/doc/requirements.txt @@ -0,0 +1,2 @@ +myst_parser +karma-sphinx-theme From 27089b059f1e4a06a182f6367b537d3e3456acd9 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Fri, 10 Nov 2023 21:01:19 +0100 Subject: [PATCH 02/34] Move to "docs" dir, update conf --- .readthedocs.yaml | 14 +++++++------- docs/Makefile | 24 ++++++++++++++++++++++++ {doc => docs}/conf.py | 0 {doc => docs}/example-profile.yaml | 0 {doc => docs}/index.rst | 0 {doc => docs}/manpages/mezzotint.8 | 0 {doc => docs}/manpages/mezzotint.8.md | 0 {doc => docs}/profiles.md | 0 {doc => docs}/requirements.txt | 0 9 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 docs/Makefile rename {doc => docs}/conf.py (100%) rename {doc => docs}/example-profile.yaml (100%) rename {doc => docs}/index.rst (100%) rename {doc => docs}/manpages/mezzotint.8 (100%) rename {doc => docs}/manpages/mezzotint.8.md (100%) rename {doc => docs}/profiles.md (100%) rename {doc => docs}/requirements.txt (100%) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 754d305..50e9431 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -3,15 +3,15 @@ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details # Required -version: 2 +# version: 2 -build: - os: ubuntu-22.04 - tools: - python: "3.10" +#build: +# os: ubuntu-22.04 +# tools: +# python: "3.10" -sphinx: - configuration: doc/conf.py +#sphinx: +# configuration: doc/conf.py python: install: diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..eb0420e --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,24 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +setup: + sudo apt install pip gcc g++ + pip install sphinx myst_parser karma-sphinx-theme + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/doc/conf.py b/docs/conf.py similarity index 100% rename from doc/conf.py rename to docs/conf.py diff --git a/doc/example-profile.yaml b/docs/example-profile.yaml similarity index 100% rename from doc/example-profile.yaml rename to docs/example-profile.yaml diff --git a/doc/index.rst b/docs/index.rst similarity index 100% rename from doc/index.rst rename to docs/index.rst diff --git a/doc/manpages/mezzotint.8 b/docs/manpages/mezzotint.8 similarity index 100% rename from doc/manpages/mezzotint.8 rename to docs/manpages/mezzotint.8 diff --git a/doc/manpages/mezzotint.8.md b/docs/manpages/mezzotint.8.md similarity index 100% rename from doc/manpages/mezzotint.8.md rename to docs/manpages/mezzotint.8.md diff --git a/doc/profiles.md b/docs/profiles.md similarity index 100% rename from doc/profiles.md rename to docs/profiles.md diff --git a/doc/requirements.txt b/docs/requirements.txt similarity index 100% rename from doc/requirements.txt rename to docs/requirements.txt From 8115129db47fbac9e1f218fb3e42f7b197bc9919 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Fri, 10 Nov 2023 21:27:48 +0100 Subject: [PATCH 03/34] Update rtd config to v2 --- .readthedocs.yaml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 50e9431..bea6b65 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -3,15 +3,17 @@ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details # Required -# version: 2 +version: 2 -#build: -# os: ubuntu-22.04 -# tools: -# python: "3.10" +build: + os: ubuntu-22.04 + tools: + python: "3.12" -#sphinx: -# configuration: doc/conf.py +sphinx: + builder: html + configuration: doc/conf.py + fail_on_warning: false python: install: From fedb4e875dd6f2fd76f09cad91ab514e2793b76a Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Fri, 10 Nov 2023 21:28:36 +0100 Subject: [PATCH 04/34] Remove theme --- docs/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index d373dd8..d0cd073 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -15,5 +15,5 @@ exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] html_show_sourcelink = False -html_theme = 'karma_sphinx_theme' +#html_theme = 'karma_sphinx_theme' html_static_path = ['_static'] From a885acb1791fcc595a8e924614e47e6993d52e19 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Fri, 10 Nov 2023 21:29:54 +0100 Subject: [PATCH 05/34] Fix path --- .readthedocs.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index bea6b65..3533a9b 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -12,9 +12,9 @@ build: sphinx: builder: html - configuration: doc/conf.py + configuration: docs/conf.py fail_on_warning: false python: install: - - requirements: doc/requirements.txt + - requirements: docs/requirements.txt From 3cbb0866589c85517737e1e4d8d381babca6aa3c Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Fri, 10 Nov 2023 21:44:36 +0100 Subject: [PATCH 06/34] Cleanup makefile --- docs/Makefile | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/docs/Makefile b/docs/Makefile index eb0420e..fe8e88c 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -1,24 +1,12 @@ -# Minimal makefile for Sphinx documentation -# - -# You can set these variables from the command line, and also -# from the environment for the first two. SPHINXOPTS ?= SPHINXBUILD ?= sphinx-build SOURCEDIR = . BUILDDIR = _build -# Put it first so that "make" without argument is like "make help". help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -setup: - sudo apt install pip gcc g++ - pip install sphinx myst_parser karma-sphinx-theme - .PHONY: help Makefile -# Catch-all target: route all unknown targets to Sphinx using the new -# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) From 6e62a0f833debab52fe23ffb49833261ba75bc98 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Fri, 10 Nov 2023 21:45:53 +0100 Subject: [PATCH 07/34] Remove commented-out theme --- docs/conf.py | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index d0cd073..1d14a7e 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -15,5 +15,4 @@ exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] html_show_sourcelink = False -#html_theme = 'karma_sphinx_theme' html_static_path = ['_static'] From 2b9638f92bd7d4375bf1ac3cdc0d629132284779 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Fri, 10 Nov 2023 21:48:30 +0100 Subject: [PATCH 08/34] Use default RTD theme --- docs/conf.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index 1d14a7e..876e467 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -4,7 +4,10 @@ version = "0.1" release = "Pre-release" -extensions = ["myst_parser"] +extensions = [ + "myst_parser", + "sphinx_rtd_theme", +] source_suffix = { '.rst': 'restructuredtext', '.txt': 'restructuredtext', @@ -16,3 +19,4 @@ html_show_sourcelink = False html_static_path = ['_static'] +html_theme = "sphinx_rtd_theme" From 89d81467de31825f56de545450bc2aae22511865 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Fri, 10 Nov 2023 21:50:03 +0100 Subject: [PATCH 09/34] Require rtd theme --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index 7a06da2..51eebd0 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,2 +1,2 @@ myst_parser -karma-sphinx-theme +sphinx_rtd_theme From 7e0399b7831b0e535c1174b094631d885f9ec1ab Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Fri, 17 Nov 2023 17:04:51 +0100 Subject: [PATCH 10/34] Update gitignore --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 63d8a93..551a13b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ .vscode/ /target -tmp/ \ No newline at end of file +tmp/ +docs/_build/* +docs/_static/* \ No newline at end of file From 7d536751082cd31016815fc29bb5c94231155382 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Fri, 17 Nov 2023 17:05:15 +0100 Subject: [PATCH 11/34] Update index page adding goal, concept, limitations etc --- docs/index.rst | 54 ++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 41 insertions(+), 13 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index af9408a..1f68293 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -12,33 +12,61 @@ Welcome to Mezzotint documentation! leaving behind unnecessary "dead code" β€” libraries that are never really used. - Mezzotint is in early continuous development version and is **experimental**. - .. toctree:: :maxdepth: 1 - :caption: Contents: - usage_overview - configuration - faq + overview Concept ------- +Mezzotint is an alternative solution to `Canonical Chisel `__ tool. It is designed to drop unnecessary libraries and files from a container, thus minimising its overall size and convert a typical OCI container to be close as application bundle, keeping isolation and scalability features. + +Content of a container is expected to be provisioned from a package repository and have a clear structure of package dependencies. Its content is specified in a profile as a short set of rules. + +In contrast to Canonical's Chisel, Mezzotint: + +- Designed to be distribution-agnostic, as long as a distribution is using a package manager. +- Does not need a carefully maintained `database of package descriptions `__, which has to be specific to a particular Linux distribution version. +- Released under Apache 2.0 licence. + + +.. attention:: + + Mezzotint is in its early continuous development phase and should be considered as **experimental software**. + -Use Case --------- +Use Cases +--------- + +Mezzotint use case is pretty simple, coined by Antoine de Saint-Exupery: + + *A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away* + +It should be able to be used in: + +- containers +- embedded Linux images +- immutable systems + +Limitations +----------- + +1. Mezzotint currently works only with containers of OCI standard. However, there are plans to expand it to the actual provisioned images. +2. At the moment integration with a package manager is implemented only for Debian package manager, covering only "Debian family" distributions, such as Ubuntu, Mint, Debian itself etc +3. It is tested only on Ubuntu LTS 22.04... πŸ˜ƒ Contributing ------------- -* `GitHub Repository `__ +Best way to make progress is to open an issue (good πŸ‘) or submit a Pull Request (awesome 🀩) on the GitHub. + +And just in case you don't know how to implement it in Rust, but you still want something cool to happen, then please fill-in an issue using issue tracker. - Best way to make progress is to open an issue or submit a Pull Request on the GitHub. +.. sidebar:: Links -* `GitHub Issues Tracker `__ + * `GitHub Repository `__ - In case you don't know how to implement it, but you still want - something cool to happen. :-) + * `GitHub Issues Tracker `__ From a2da2d6ee23873152194633bc0194515e56de7ea Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Fri, 17 Nov 2023 17:09:05 +0100 Subject: [PATCH 12/34] Move sidebar elsewhere in hope readthedocs won't ruin footer again --- docs/index.rst | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index 1f68293..18e0f1c 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -57,6 +57,11 @@ Limitations 2. At the moment integration with a package manager is implemented only for Debian package manager, covering only "Debian family" distributions, such as Ubuntu, Mint, Debian itself etc 3. It is tested only on Ubuntu LTS 22.04... πŸ˜ƒ +.. sidebar:: Links + + * `GitHub Repository `__ + + * `GitHub Issues Tracker `__ Contributing ------------- @@ -64,9 +69,3 @@ Contributing Best way to make progress is to open an issue (good πŸ‘) or submit a Pull Request (awesome 🀩) on the GitHub. And just in case you don't know how to implement it in Rust, but you still want something cool to happen, then please fill-in an issue using issue tracker. - -.. sidebar:: Links - - * `GitHub Repository `__ - - * `GitHub Issues Tracker `__ From 2e52e9c8a3b2549d5ee975f988d1579a08d5e98e Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Fri, 17 Nov 2023 17:53:11 +0100 Subject: [PATCH 13/34] Add overview --- docs/overview.rst | 66 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 docs/overview.rst diff --git a/docs/overview.rst b/docs/overview.rst new file mode 100644 index 0000000..b1bcf64 --- /dev/null +++ b/docs/overview.rst @@ -0,0 +1,66 @@ +.. overview: + +Overview +======== + +.. note:: **Abstract** + + What is a container and what is the difference between an app-bundle? How did we came to the point where our containers are as big as the operating systems for just one application? + +.. toctree:: + :maxdepth: 1 + + overview/workflow + + +Definitions +=========== + +What is a Container? +-------------------- + +A Linux container is a *lightweight*, isolated environment that contains a user-space operating system environment. This way it packages software with all its dependencies so that the application runs quickly and reliably from one computing environment to another. + +What is an application bundle? +------------------------------ + +An application bundle is a way of organizing related resources, such as an application’s executable and its graphics, into a single directory that appears as a single file to the user. This makes it easier to distribute and install applications, as well as to manage their dependencies and updates. + + +Differences +=========== + +The following table roughly explains a typical difference between an application bundles and a containers: + +Purpose +------- + +An **Application Bundle**, like those on macOS, is a packaging format primarily used for organizing and distributing applications on a specific operating system (in this case, macOS). It contains all the necessary files and resources required to run the application on that particular OS. + +A **Linux Container** is a lightweight, portable, and self-sufficient environment that encapsulates an application along with its dependencies, libraries, and runtime components. It enables an application to run consistently across various computing environments. + +Isolation +--------- + +An **Application Bundle** doesn't inherently provide isolation. It's meant to organize files and resources but doesn't necessarily isolate the application from the rest of the system. + +**Containers**, however, leverage kernel-level isolation features of the Linux operating system to create isolated environments. They offer a higher level of isolation compared to application bundles, allowing applications to run independently without interfering with other applications or the host system. + +Portability +----------- + +**Application Bundles** are primarily designed for specific operating systems. For instance, MacOS application bundles are specific to those systems and won't run natively on other operating systems without compatibility layers or emulation. + +**Linux Container** are a bit more portable, in a way. Once created, a container can run on any system that supports the containerization technology (like Docker or Kubernetes), running a compatible kernel underneath. This means a containerized application can possibly run on various Linux distributions and even on other operating systems such as like Windows or `FreeBSD `__. + +Resource Sharing +---------------- + +Resources in an **Application Bundle** are contained within the bundle itself and are not typically shared with other applications. + +**Containers** can share resources with the host system or other containers, depending on how they are configured. This sharing can include network resources, storage, or even the kernel, which allows for more efficient resource utilization. +In summary, an application bundle is a packaging format for organizing and distributing applications on a specific operating system, while a Linux container is a technology for creating lightweight, isolated environments that can run applications independently across different systems. + +Goal +==== +The goal of the Mezzotint is to combine the best of it into one container. \ No newline at end of file From d34c5955d48827926e30cf19b9ac909548298d5c Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Fri, 17 Nov 2023 18:11:05 +0100 Subject: [PATCH 14/34] Add workflow --- docs/overview/workflow.rst | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 docs/overview/workflow.rst diff --git a/docs/overview/workflow.rst b/docs/overview/workflow.rst new file mode 100644 index 0000000..74bb430 --- /dev/null +++ b/docs/overview/workflow.rst @@ -0,0 +1,25 @@ +General Workflow with OCI Containers +==================================== + +.. note:: **Abstract** + + Typical workflow when working with OCI containers. + +An OCI container (in a nutshell), is usually a complete installation of a complete minimal Linux system within a directory, distributed as a tarball and then mounted somewhere. That directory usually contains many userland bits of the operational root filesystem also contains the basic configuration of the application. Additionally, it contains exported mounted directories elsewhere etc. + +The creation process of a container depends on the tooling used, such as Buildah or Docker etc. Mezzotint does not creates the containers, but shreds their "fat" away. 😜 + + +Requirements +============ + + +Profile +------- + +Mezzotint employs a YAML-based profile comprising a sequence of directives. These directives encompass specifications like which packages to retain, the filtering or preservation of content types, the criteria for retaining or explicitly removing specific data regardless of circumstances, and more. However, these directives are entirely optional, as Mezzotint primarily operates in an automatic mode, adept at determining most configurations without explicit instructions. + +Command Line +------------ + +In addition to using a profile, users have the option to manually define all settings through the command line. Yet, this method can be cumbersome and less efficient for repetitive tasks. While employing command line options is not typically the favoured approach due to the abundance of settings, it could prove beneficial when incorporating Mezzotint into a Bash script. \ No newline at end of file From c5461c1104f89aa45ab05626c03dc937d1ed0a13 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Mon, 20 Nov 2023 18:06:45 +0100 Subject: [PATCH 15/34] Add installation --- docs/index.rst | 1 + docs/installation.rst | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 docs/installation.rst diff --git a/docs/index.rst b/docs/index.rst index 18e0f1c..9201ab3 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -16,6 +16,7 @@ Welcome to Mezzotint documentation! :maxdepth: 1 overview + installation Concept diff --git a/docs/installation.rst b/docs/installation.rst new file mode 100644 index 0000000..07eec25 --- /dev/null +++ b/docs/installation.rst @@ -0,0 +1,34 @@ +Installation +============ + +.. note:: + This document describes how to install Mezzotint tool on your machine. + + +Given that the Mezzotint tool is currently in its early stages of development, it requires manual compilation at this time. In the future, plans are underway to facilitate easier installation through various methods, including integration with package managers for a specific distribution of your choice. However, this feature is scheduled for a later phase of development. + +Compilation From the Sources +---------------------------- + +The following process was tested on Ubuntu 22.04 LTS: + +- Ensure the these software components are installed on your system: + + 1. `make` (GNU Make) + 2. `rustc` (Rust, version 1.73.0) + 3. `cargo` + 4. `rustup` (Rust installation framework, version 1.26.0) + +- Clone the repository: + + ``git clone https://github.com/isbm/mezzotint`` + +- Change directory to the newly created: + + ``cd mezzotint`` + +- Run command: + + ``make release`` + +- If you set it all up correctly, it should compile. Then navigate to ``target/release`` and copy ``mezzotint`` binary anywhere you want (typically ``/usr/bin``). From 903e2c938c4f952143b0ed2518c761e6b79f07e4 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Mon, 20 Nov 2023 18:07:04 +0100 Subject: [PATCH 16/34] Remove "Goal" from the first TOC level --- docs/overview.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/overview.rst b/docs/overview.rst index b1bcf64..b06feb8 100644 --- a/docs/overview.rst +++ b/docs/overview.rst @@ -62,5 +62,5 @@ Resources in an **Application Bundle** are contained within the bundle itself an In summary, an application bundle is a packaging format for organizing and distributing applications on a specific operating system, while a Linux container is a technology for creating lightweight, isolated environments that can run applications independently across different systems. Goal -==== +---- The goal of the Mezzotint is to combine the best of it into one container. \ No newline at end of file From c2f83701308facf123167e8d7f7636b11674b1ce Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Mon, 20 Nov 2023 18:25:05 +0100 Subject: [PATCH 17/34] Add usage --- docs/index.rst | 1 + docs/usage.rst | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 docs/usage.rst diff --git a/docs/index.rst b/docs/index.rst index 9201ab3..e463615 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -17,6 +17,7 @@ Welcome to Mezzotint documentation! overview installation + usage Concept diff --git a/docs/usage.rst b/docs/usage.rst new file mode 100644 index 0000000..4db2128 --- /dev/null +++ b/docs/usage.rst @@ -0,0 +1,33 @@ +.. note:: + This document describes the basic usage of the Mezzotint tool. + +Full Usage +========== + +Provisioning of a Base Container +---------------------------------- + +Adding Software +--------------- + +Define Profile +-------------- + +Dry Run +------- + +Apply the Changes +----------------- + +Test it! +-------- + +Next Steps +---------- + +Congratulations on reducing the size of your container! Now, as your container is much smaller than it usually would be, you can proceed with the following actions: + +- Publish your application on an OCI registry. +- Convert your app-bundle container into a Flake package for distribution it via any package manager available for a Linux distribution of your choice. + +Please note, however, that this document does not provide instructions on how to perform these tasks. \ No newline at end of file From f0805be7af12a53d6d7d111f22ec8fd9612919dd Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Mon, 20 Nov 2023 18:25:11 +0100 Subject: [PATCH 18/34] Add quickstart --- docs/index.rst | 1 + docs/quickstart.rst | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 docs/quickstart.rst diff --git a/docs/index.rst b/docs/index.rst index e463615..b0c925d 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -17,6 +17,7 @@ Welcome to Mezzotint documentation! overview installation + quickstart usage diff --git a/docs/quickstart.rst b/docs/quickstart.rst new file mode 100644 index 0000000..6b4061d --- /dev/null +++ b/docs/quickstart.rst @@ -0,0 +1,7 @@ +.. note:: + This document describes the basic usage of the Mezzotint tool. + +Quick Start +=========== + +If you've already provisioned and set up your future container mountpoint with your application, but haven't published it anywhere, simply execute Mezzotint against that mountpoint, specifying it as the `system root`: From 47149ecbbb3c4b1a642a81fedc61b4f321f67fc0 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Tue, 21 Nov 2023 15:56:59 +0100 Subject: [PATCH 19/34] Add contribution doc --- docs/contributing.rst | 35 +++++++++++++++++++++++++++++++++++ docs/index.rst | 1 + 2 files changed, 36 insertions(+) create mode 100644 docs/contributing.rst diff --git a/docs/contributing.rst b/docs/contributing.rst new file mode 100644 index 0000000..e356325 --- /dev/null +++ b/docs/contributing.rst @@ -0,0 +1,35 @@ +.. note:: + + This document describes the development process of Mezzotint tool. + +Contributing +============ + +It's as simple as that: every input matters as a contribution, including your candid subjective feedback `(just don't overdo it)`. + +Although Mezzotint is coded in Rust, if you're not comfortable developing in this language, you can still significantly contribute to the project by using it and reporting any encountered issues: + +- Features, those are still missing +- Bug reports and failures it produces +- Corner cases where it still fails + +Developing +---------- + +If you're looking to create a new feature, the optimal workflow would be this: + +1. Open an issue as a feature you want to have +2. Let's discuss it there to shape out how it will look like +3. You implement it and make a Pull Request + +Tooling +------- + +If you haven't learned subjectively `world-best editor `__ just yet, then alternatively the Visual Studio Code would also do for you. + +Assuming you are going to use VSC, install `Rust Analyser `__ extension and everything it requires (``rustc``, ``cargo``, ``rustup`` etc). Furthermore, please configure your Visual Studio to automatically reformat your file using the default Rust formatter whenever you save it. + +Links +----- + +To open an issue on GitHub, please go `here `__, and to open a Pull Request please navigate `here `__. diff --git a/docs/index.rst b/docs/index.rst index b0c925d..37f9b2e 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -19,6 +19,7 @@ Welcome to Mezzotint documentation! installation quickstart usage + contributing Concept From 6235e278404c56c120b274e338064ad4c8cbe908 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Tue, 21 Nov 2023 16:22:00 +0100 Subject: [PATCH 20/34] Updated quickstart --- docs/quickstart.rst | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/docs/quickstart.rst b/docs/quickstart.rst index 6b4061d..03267ff 100644 --- a/docs/quickstart.rst +++ b/docs/quickstart.rst @@ -4,4 +4,38 @@ Quick Start =========== -If you've already provisioned and set up your future container mountpoint with your application, but haven't published it anywhere, simply execute Mezzotint against that mountpoint, specifying it as the `system root`: +The primary aim of the Mezzotint tool is to minimize your container's size by eliminating anything considered "junk" β€” items that are never used, unnecessary, and serve no purpose within your container. + +To quickly start, you should already have `somewhere` a mounted container root filesystem. We recommend to use `Buildah `__, but you may choose other similar tools. + +If you've already provisioned and configured your forthcoming container mountpoint with the application but haven't shared it yet, run Mezzotint on that mountpoint, specifying it as the `system root`, like so: + +.. code-block:: shell + + mezzotint -a free -x /usr/bin/emacs-nox -r /path/to/the/mountpoint -t + +The command above will: + +-a try to automatically resolve all necessary packages +-x for ``/usr/bin/emacs-nox`` binary +-r within the mounted root filesystem ``/path/to/the/mountpoint`` +-t but will not apply anything (dry-run) + +Alongside detailed listings of each file in the system, the output should conclude with a summary akin to the following: + +.. code-block:: shell + + Removed 6442 files, releasing 331.4 MB of a disk space + Preserved 2281 files, taking 289.2 MB of a disk space + Potentially 22 junk files, taking 2.2 MB of a disk space + Kept 37 packages as follows: + emacs-bin-common, emacs-common, emacs-nox, emacsen-common, libacl1, libasound2, + libasound2-data, libc6, libcap2, libcrypt1, libdbus-1-3, libffi8, libgcc-s1, + libgcrypt20, libgmp10, libgnutls30, libgpg-error0, libgpm2, libhogweed6, libicu70, + libidn2-0, libjansson4, liblcms2-2, liblz4-1, liblzma5, libnettle8, libp11-kit0, + libpcre2-8-0, libselinux1, libstdc++6, libsystemd0, libtasn1-6, libtinfo6, + libunistring2, libxml2, libzstd1, zlib1g + + [21/09/2023 15:16:06] - WARN: This was a dry-run. Changes were not applied. + +Once you think this is acceptable result, re-run the same command, without ``--dry-run`` option (``-t``). Your container still should work. Hopefully. :-) \ No newline at end of file From 4fa053c552ba925024c85b150d1b4d45880db2c2 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Tue, 21 Nov 2023 16:22:35 +0100 Subject: [PATCH 21/34] Added an empty line --- docs/quickstart.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/quickstart.rst b/docs/quickstart.rst index 03267ff..e890008 100644 --- a/docs/quickstart.rst +++ b/docs/quickstart.rst @@ -38,4 +38,4 @@ Alongside detailed listings of each file in the system, the output should conclu [21/09/2023 15:16:06] - WARN: This was a dry-run. Changes were not applied. -Once you think this is acceptable result, re-run the same command, without ``--dry-run`` option (``-t``). Your container still should work. Hopefully. :-) \ No newline at end of file +Once you think this is acceptable result, re-run the same command, without ``--dry-run`` option (``-t``). Your container still should work. Hopefully. :-) From d0529014ddb6a660cfba500f8e3eeadf370bfcc1 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Tue, 21 Nov 2023 16:23:52 +0100 Subject: [PATCH 22/34] Add quickstart clarifications --- docs/quickstart.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/quickstart.rst b/docs/quickstart.rst index e890008..a397765 100644 --- a/docs/quickstart.rst +++ b/docs/quickstart.rst @@ -17,9 +17,9 @@ If you've already provisioned and configured your forthcoming container mountpoi The command above will: -a try to automatically resolve all necessary packages --x for ``/usr/bin/emacs-nox`` binary +-x for ``/usr/bin/emacs-nox`` binary `inside your container` -r within the mounted root filesystem ``/path/to/the/mountpoint`` --t but will not apply anything (dry-run) +-t but will not apply anything just yet (dry-run) Alongside detailed listings of each file in the system, the output should conclude with a summary akin to the following: From 154b8149b16c88315242da2054105f1a23b2bf35 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Tue, 21 Nov 2023 16:27:01 +0100 Subject: [PATCH 23/34] Make commands repr a bit nicer --- docs/installation.rst | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/installation.rst b/docs/installation.rst index 07eec25..2b3261e 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -21,14 +21,20 @@ The following process was tested on Ubuntu 22.04 LTS: - Clone the repository: - ``git clone https://github.com/isbm/mezzotint`` + .. code-block:: shell + + git clone https://github.com/isbm/mezzotint - Change directory to the newly created: - ``cd mezzotint`` + .. code-block:: shell + + cd mezzotint - Run command: - ``make release`` + .. code-block:: shell + + make release - If you set it all up correctly, it should compile. Then navigate to ``target/release`` and copy ``mezzotint`` binary anywhere you want (typically ``/usr/bin``). From 082f5a5b87660ed8be26688919b7293922100b2a Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Tue, 21 Nov 2023 16:46:28 +0100 Subject: [PATCH 24/34] Add a manpage --- docs/index.rst | 1 + docs/manpage.rst | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 docs/manpage.rst diff --git a/docs/index.rst b/docs/index.rst index 37f9b2e..d079cf6 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -19,6 +19,7 @@ Welcome to Mezzotint documentation! installation quickstart usage + manpage contributing diff --git a/docs/manpage.rst b/docs/manpage.rst new file mode 100644 index 0000000..b2ebde9 --- /dev/null +++ b/docs/manpage.rst @@ -0,0 +1,47 @@ +.. note:: + + This is the manpage of Mezzotint tool + + +Manpage +======= + +Usage of Mezzotint as follows: + +.. code-block:: text + + Usage: mezzotint [OPTIONS] [FILTERS] + +Options +------- + +The following options are available: + +-x, --exe Specify path to an executable which needs to be preserved +-p, --profile Profile, describing whole setup +-k, --pkgs Comma-separated list of packages to account +-i, --invert Invert filters behaviour +-t, --dry-run Do not remove anything, only display what will be removed +-a, --autodeps Auto-add package dependencies. `NOTE: This can increase the size, but might not always be useful` Default value is set to `none`. Other possible values: `free`, `clean`, `tight` and default `none`. +-r, --root Root filesystem, e.g. mountpoint of an image + +Filters +------- + +Filters are used to set what kind of data `type` needs to be filtered out, i.e. removed from the target: + +--l10n Leave localisation data +--i18n Leave internationalisation data +--doc Leave documents, texts, licences etc +--man Leave manpages +--dirs Leave empty directories (except required) +--logs Leave any kind of logs +--pic Leave any graphics (pictures) +--arc Leave any kind of archives/tarballs + +Other options +------------- + +-d, --debug Set debug mode for more verbose output. +-h, --help Display help +-v, --version Get current version. From ab777bc9a3f45ddeeaf45591732c7176b4b065c4 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Tue, 21 Nov 2023 16:46:52 +0100 Subject: [PATCH 25/34] Remove too long line for the header --- docs/usage.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/usage.rst b/docs/usage.rst index 4db2128..57d547a 100644 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -4,8 +4,9 @@ Full Usage ========== + Provisioning of a Base Container ----------------------------------- +-------------------------------- Adding Software --------------- From 25eab2f49584b40f629717f475ce706a1c6e0132 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Tue, 21 Nov 2023 16:59:25 +0100 Subject: [PATCH 26/34] Update quickstart last sentence --- docs/quickstart.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/quickstart.rst b/docs/quickstart.rst index a397765..806ce91 100644 --- a/docs/quickstart.rst +++ b/docs/quickstart.rst @@ -38,4 +38,4 @@ Alongside detailed listings of each file in the system, the output should conclu [21/09/2023 15:16:06] - WARN: This was a dry-run. Changes were not applied. -Once you think this is acceptable result, re-run the same command, without ``--dry-run`` option (``-t``). Your container still should work. Hopefully. :-) +Obviously keeping 300M container for Emacs is not very optimal, but is good start. Once you think this is acceptable result, re-run the same command, without ``--dry-run`` option (``-t``). Your container still should work. Hopefully. :-) From c9656dc43245d7815170ccea5f6c688578e9b7d3 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Tue, 21 Nov 2023 23:43:51 +0100 Subject: [PATCH 27/34] Update TOC for be more consistent and structured --- docs/overview.rst | 26 +++++++++++++------------- docs/usage.rst | 39 ++++++++++++++++++++++++++++++--------- 2 files changed, 43 insertions(+), 22 deletions(-) diff --git a/docs/overview.rst b/docs/overview.rst index b06feb8..489e963 100644 --- a/docs/overview.rst +++ b/docs/overview.rst @@ -13,54 +13,54 @@ Overview overview/workflow -Definitions -=========== +Containers vs App Bundles +------------------------- What is a Container? --------------------- +^^^^^^^^^^^^^^^^^^^^ A Linux container is a *lightweight*, isolated environment that contains a user-space operating system environment. This way it packages software with all its dependencies so that the application runs quickly and reliably from one computing environment to another. What is an application bundle? ------------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ An application bundle is a way of organizing related resources, such as an application’s executable and its graphics, into a single directory that appears as a single file to the user. This makes it easier to distribute and install applications, as well as to manage their dependencies and updates. -Differences -=========== +Key Differences +--------------- The following table roughly explains a typical difference between an application bundles and a containers: Purpose -------- +^^^^^^^ An **Application Bundle**, like those on macOS, is a packaging format primarily used for organizing and distributing applications on a specific operating system (in this case, macOS). It contains all the necessary files and resources required to run the application on that particular OS. A **Linux Container** is a lightweight, portable, and self-sufficient environment that encapsulates an application along with its dependencies, libraries, and runtime components. It enables an application to run consistently across various computing environments. Isolation ---------- +^^^^^^^^^ An **Application Bundle** doesn't inherently provide isolation. It's meant to organize files and resources but doesn't necessarily isolate the application from the rest of the system. **Containers**, however, leverage kernel-level isolation features of the Linux operating system to create isolated environments. They offer a higher level of isolation compared to application bundles, allowing applications to run independently without interfering with other applications or the host system. Portability ------------ +^^^^^^^^^^^ **Application Bundles** are primarily designed for specific operating systems. For instance, MacOS application bundles are specific to those systems and won't run natively on other operating systems without compatibility layers or emulation. **Linux Container** are a bit more portable, in a way. Once created, a container can run on any system that supports the containerization technology (like Docker or Kubernetes), running a compatible kernel underneath. This means a containerized application can possibly run on various Linux distributions and even on other operating systems such as like Windows or `FreeBSD `__. Resource Sharing ----------------- +^^^^^^^^^^^^^^^^ Resources in an **Application Bundle** are contained within the bundle itself and are not typically shared with other applications. **Containers** can share resources with the host system or other containers, depending on how they are configured. This sharing can include network resources, storage, or even the kernel, which allows for more efficient resource utilization. In summary, an application bundle is a packaging format for organizing and distributing applications on a specific operating system, while a Linux container is a technology for creating lightweight, isolated environments that can run applications independently across different systems. -Goal ----- -The goal of the Mezzotint is to combine the best of it into one container. \ No newline at end of file +The Final Goal +-------------- +The goal of the Mezzotint is to combine the best of both worlds into one package. \ No newline at end of file diff --git a/docs/usage.rst b/docs/usage.rst index 57d547a..e0bca61 100644 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -1,9 +1,8 @@ .. note:: This document describes the basic usage of the Mezzotint tool. -Full Usage -========== - +Detailed Usage +============== Provisioning of a Base Container -------------------------------- @@ -11,17 +10,39 @@ Provisioning of a Base Container Adding Software --------------- -Define Profile --------------- +Profile Definition +------------------ -Dry Run -------- +Targets +^^^^^^^ + +Packages +^^^^^^^^ + +Configuration +^^^^^^^^^^^^^ + +Filters +""""""" + +Data removal +"""""""""""" -Apply the Changes +Data preservation +""""""""""""""""" + + +Running Mezzotint ----------------- +Dry Run +^^^^^^^ + +Applying the Changes +^^^^^^^^^^^^^^^^^^^^ + Test it! --------- +^^^^^^^^ Next Steps ---------- From cef5209e63e2770a56c93b37f4a65718ba5eaa99 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Wed, 22 Nov 2023 18:21:15 +0100 Subject: [PATCH 28/34] Update usage --- docs/usage.rst | 135 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 133 insertions(+), 2 deletions(-) diff --git a/docs/usage.rst b/docs/usage.rst index e0bca61..5df126b 100644 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -1,36 +1,167 @@ .. note:: - This document describes the basic usage of the Mezzotint tool. + This document describes the routine usage of the Mezzotint tool. Detailed Usage ============== -Provisioning of a Base Container +Beyond the rapid and automated execution of Mezzotint, there exists a more sophisticated and precise approach utilizing `Profiles`. Profiles come to the rescue when automated data collection is simply not sufficient and may not always yield the most optimal results, leaving residual artifacts that still could safely be removed. + +Every container (or intended App Bundle) necessitates a corresponding Profile. These Profiles can delineate specific container details, thereby reducing the number of command-line arguments required. + +Provisioning a Base Container -------------------------------- +There is no limitations with what kind of tooling one should provision a container. However, in current workflow it is recommended to use `Buildah `__ β€” a tool that facilitates building Open Container Initiative (OCI) container images. + +Provisioning a container from a package-based distribution can vary across different distributions. This specific document outlines the process using Ubuntu 22.04 LTS, yet the procedure should remain largely consistent across other versions of Ubuntu or Debian. + +To provision a base root filesystem, Debian is using `debootstrap `__ utility withing a container from scratch, using Buildah as following: + +.. code-block:: shell + + # Allocate a name for a container + # and create an empty one + C_NAME=$(buildah from scratch) + + # Mount a new container and catch the mount point + C_MNT=$(buildah mount $C_NAME) + +In this case ``C_NAME`` will contain a container name, usually defaults to `"working-container"`. The variable ``C_MNT`` contains the full path to the mount point. At this point it is a time to provision that container, using ``debootstrap`` utility, passing it the mount point path as following: + +.. code-block:: shell + + # Run debootstrap, installing the most minimal base system + debootstrap --variant=minbase jammy $C_MNT + +It will require some time to complete. Once finished, you'll be able to use this mount point essentially as a container. + Adding Software --------------- +The root filesystem setup is now finished, but it's quite minimal, only including the ``main`` repository. To install applications like Emacs editor, additional repositories need to be configured: + +.. code-block:: shell + + echo -e "deb http://de.archive.ubuntu.com/ubuntu jammy main universe multiverse restricted\n" >> $MNT/etc/apt/sources.list + +Although it's possible to run this root filesystem as a container and begin installations within it, this document employs an ``old-school`` approach of simply changing the root (which is also functional) as follows: + +.. code-block:: shell + + chroot $C_MNT apt update + chroot $C_MNT apt install -y emacs-nox + +At this stage, the Emacs editor will be installed onto the target image. Following these steps, all essential customizations, including the addition of extra scripts, need to be completed. + +We can now refer to the container as the "original" or "source." To expedite processes, it's recommended to push this container to the local registry on localhost: + +.. code-block:: shell + + buildah commit $C_NAME my_emacs + +So now this is the situation where: + +- There exists a functional Emacs container in the local registry, enabling restoration without repeating provisioning, bootstrapping, or configurations. +- Additionally, the mount point remains accessible through the variable ``$C_MNT``. + +We will proceed using the mount point for further actions. + Profile Definition ------------------ +To minimize a container's artifacts, defining a Profile is essential. These Profiles are YAML files with any chosen name, passed to Mezzotint using ``--profile`` or ``-p`` option. + Targets ^^^^^^^ +`Targets` consist of a list of absolute paths pointing to the executables within a container. They are defined as follows: + +.. code-block:: yaml + + targets: + - /usr/bin/vim + - /usr/bin/my-other-app + Packages ^^^^^^^^ +`Packages` section is a list of known packages, those content should be preserved. This is for the situation when a package has no direct link to the software package, because software package assumes the artifacts are always there anyway. + +.. attention:: + + The content of those packages will be still examined for a possible "junk", such as text files, manpages and similar content. + +An example of packages section: + +.. code-block:: yaml + + packages: + - bash + - apt + - binutils + Configuration ^^^^^^^^^^^^^ +Filtering configuration contains various flags of their `types`, determining what needs to be left on the disk and what needs to be removed. This section also contains list of what files needs to be removed or explicitly preserved, even they are marked as unnecessary. + Filters """"""" +.. code-block:: yaml + + filters: + # Matches localisation data + - l10n + + # Matches internationalisation data + - i18n + + # Matches all possible documentation, licenses, howtos etc + - doc + + # Matches manpages + - man + + # Matches everything related to the logging + - log + + # Matches empty directories or directories with emnpty subdirectories + - dir + + # Replaces all above + - all + + Data removal """""""""""" Data preservation """"""""""""""""" +Profile Example +--------------- + +This would be a basic profile for Emacs without X11 support (terminal only): + +.. code-block:: yaml + + targets: + - /usr/bin/emacs-nox + + packages: + - ncurses-base + - emacs-common + + config: + filters: + - all + + hooks: + # Vim users will enjoy this for sure + after: | + ln -s /usr/bin/emacs-nox /usr/bin/vim + Running Mezzotint ----------------- From 7cde2a20475257b2fa5b13ee3f9de5fae9c7b916 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Thu, 23 Nov 2023 13:25:16 +0100 Subject: [PATCH 29/34] Rewrite filters list as a named list, add data removal/preservation sections --- docs/usage.rst | 79 +++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 65 insertions(+), 14 deletions(-) diff --git a/docs/usage.rst b/docs/usage.rst index 5df126b..53c063b 100644 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -111,34 +111,85 @@ Filters .. code-block:: yaml filters: - # Matches localisation data - - l10n + - - # Matches internationalisation data - - i18n +This is the list of filter names: - # Matches all possible documentation, licenses, howtos etc - - doc +l10n + Match any kind of localisation files - # Matches manpages - - man +i18n + Match internationalisation files - # Matches everything related to the logging - - log +doc + Matches all possible documentation, licenses, howtos etc - # Matches empty directories or directories with emnpty subdirectories - - dir +man + Match all manpages on the file system - # Replaces all above - - all +log + Matches logfiles + +dir + Matches empty directories or directories with empty subdirectories + +pic + Matches any graphics data (images, pictures, pictograms, vector data etc) + +arc + Matches any kind of archives (tarballs, zip archives etc) + +all + Replaces all above. If you want to use all the filters listed above, simply use this one instead Data removal """""""""""" +Some specific paths that were not automatically detected as not needed, still can be explicitly scheduled for the removal. This is used in the section ``prune``, which is just a list of paths with (optionally) Unix globbing: + +.. code-block:: yaml + + prune: + - /usr/share/bug/* + - /usr/share/lintian/* + Data preservation """"""""""""""""" +Data preservation works the same way as in the chapter "Date removal", just in the section ``keep``. For example: + +.. code-block:: yaml + + keep: + - /etc + - /usr/bin/* + +Scripting Hooks +""""""""""""""" + +Hooks are basic commands, but can be also a proper shell scripts with the shebang. There are two types of hooks: + +- Before +- After + +Example: + +.. code-block:: yaml + + hooks: + before: | + echo "Hello" + + after: | + echo "Bye" + +In a nutshell, one can run a script before and after `calculation` of what junk is. + +.. attention:: + + In both cases `before` and `after`, hooks are always called **before the actual data removal**, because there is no guarantee that the very runtime of the script will not be removed and thus fail to run the script. That is, `before` hook is running right before Mezzotint is calculating what data needs to be removed etc. + Profile Example --------------- From e21d614c64bbac5fac5fb5fb5d9c69891e51c805 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Thu, 23 Nov 2023 14:25:29 +0100 Subject: [PATCH 30/34] Add screenshot of tested application --- docs/emacs-tested.png | Bin 0 -> 217433 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/emacs-tested.png diff --git a/docs/emacs-tested.png b/docs/emacs-tested.png new file mode 100644 index 0000000000000000000000000000000000000000..3a92b67ce09cb2d25476cf278c1798ec4c2e2847 GIT binary patch literal 217433 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 z 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 (Y5x~-6aByKD()@|L?HxtPg`wczH%O+vsATa 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 F{{jTbtQ-IU literal 0 HcmV?d00001 From bf88aac76abc8a2563a270201e6db3fc0129ff16 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Thu, 23 Nov 2023 14:25:46 +0100 Subject: [PATCH 31/34] Add reference to the quickstart --- docs/quickstart.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/quickstart.rst b/docs/quickstart.rst index 806ce91..fbc8aa8 100644 --- a/docs/quickstart.rst +++ b/docs/quickstart.rst @@ -1,6 +1,8 @@ .. note:: This document describes the basic usage of the Mezzotint tool. +.. _quickstart: + Quick Start =========== From a654703fb8a874c04cc57a9d53c9bd2b354e18f6 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Thu, 23 Nov 2023 14:25:59 +0100 Subject: [PATCH 32/34] Finalise usage --- docs/usage.rst | 170 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 164 insertions(+), 6 deletions(-) diff --git a/docs/usage.rst b/docs/usage.rst index 53c063b..1583ba3 100644 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -214,18 +214,176 @@ This would be a basic profile for Emacs without X11 support (terminal only): ln -s /usr/bin/emacs-nox /usr/bin/vim -Running Mezzotint ------------------ +Running Mezzotint with a Profile +-------------------------------- -Dry Run -^^^^^^^ +If the profile is ready, first it would be a very good idea to see what will be at the end and gather some statistics. To do so, first let's run it in dry-run without applying the changes, using ``--dry-run`` or ``-t`` flags: + +.. code-block:: shell + + mezzotint --dry-run --profile -r + +For example, if your working container is currently mounted as ``/var/tmp/mycontainer`` then: + +.. code-block:: shell + + mezzotint -t -p mycontainer.yaml -r /var/tmp/mycontainer + +This will perform an excessive output to the terminal, listing all directories and files that will be preserved, calculating their size etc. At the end Mezzotint will print the total results, like how much disk space will be freed and how much space preserved etc. Also Mezzotint will print the list of preserved packages. + +For example: + +.. code-block:: text + + /usr/share/emacs/27.1/site-lisp + β”€β”€β”¬β”€β”€β”„β”„β•Œβ•Œ β•Œ β•Œ + ╰─ subdirs.el + Files: 1, Size: 19.4 KB + + /usr/share/emacs/site-lisp + β”€β”€β”¬β”€β”€β”„β”„β•Œβ•Œ β•Œ β•Œ + ╰─ subdirs.el + Files: 1, Size: 106 B + + /usr/share/lintian/overrides + β”€β”€β”¬β”€β”€β”„β”„β•Œβ•Œ β•Œ β•Œ + β”œβ”€ emacs-nox + ╰─ ncurses-base + Files: 2, Size: 229 B + + /usr/share/tabset + β”€β”€β”¬β”€β”€β”„β”„β•Œβ•Œ β•Œ β•Œ + β”œβ”€ std + β”œβ”€ stdcrt + β”œβ”€ vt100 + ╰─ vt300 + Files: 4, Size: 628 B + + Removed 6781 files, releasing 346.2 MB of a disk space + Preserved 1902 files, taking 182.4 MB of a disk space + Potentially 22 junk files, taking 2.2 MB of a disk space + Kept 34 packages as follows: + emacs-common, emacs-nox, libacl1, libasound2, libc6, libcap2, + libdbus-1-3, libffi8, libgcc-s1, libgcrypt20, libgmp10, + libgnutls30, libgpg-error0, libgpm2, libhogweed6, libicu70, + libidn2-0, libjansson4, liblcms2-2, liblz4-1, liblzma5, + libnettle8, libp11-kit0, libpcre2-8-0, libselinux1, + libstdc++6, libsystemd0, libtasn1-6, libtinfo6, libunistring2, + libxml2, libzstd1, ncurses-base, zlib1g + + [23/09/2023 12:40:17] - WARN: This was a dry-run. Changes were not applied. + +If you compare with the output captured in a chapter ":doc:`/quickstart`", you will notice that automatic resolver still left some more data on the disk, which might be not the most optimal solution. + +The output also found additional 22 junk files. Scrolling this output, they are revealed with alert icon, like so: + +.. code-block:: text + + /usr/share/emacs/27.1/etc + β”€β”€β”¬β”€β”€β”„β”„β•Œβ•Œ β•Œ β•Œ + β”œβ”€ ⚠️ CALC-NEWS + β”œβ”€ ⚠️ ERC-NEWS + β”œβ”€ ⚠️ ETAGS.EBNF + β”œβ”€ ⚠️ HELLO + β”œβ”€ ⚠️ MACHINES + β”œβ”€ ⚠️ MH-E-NEWS + β”œβ”€ ⚠️ NEWS + β”œβ”€ ⚠️ NEWS.1-17 + β”œβ”€ ⚠️ NEWS.18 + β”œβ”€ ⚠️ NEWS.19 + β”œβ”€ ⚠️ NEWS.20 + β”œβ”€ ⚠️ NEWS.21 + β”œβ”€ ⚠️ NEWS.22 + β”œβ”€ ⚠️ NEWS.23 + β”œβ”€ ⚠️ NEWS.24 + β”œβ”€ ⚠️ NEWS.25 + β”œβ”€ ⚠️ NEWS.26 + β”œβ”€ ⚠️ NEXTSTEP + β”œβ”€ ⚠️ NXML-NEWS + β”œβ”€ ⚠️ ORG-NEWS + ╰─ ⚠️ PROBLEMS + Files: 21, Size: 12.2 MB + +These files are occupying 12 megabytes without any kind of practical need. You can choose either to keep these or you can do something about it. One way is to let Mezzotint deal with it, using ``--autodeps`` option with flag ``tight``. This flag tells Mezzotint to actually not to look for dependencies, but only make a container "tight", i.e. remove all data that is considered not important: + +.. code-block:: shell + + mezzotint -a tight -t -p mycontainer.yaml -r /var/tmp/mycontainer + +This operation will additionally shave off 12Mb from this container. Now it is a time to actually apply the changes. + +.. danger:: + + Once changes are applied, the operation cannot be undone! + +For the reasons that the operation cannot be undone while the entire container might be permanently damaged for different reasons like wrong/incomplete profile, missing packages etc, it is recommended to pre-commit "fat" finished container to the local storage and restore working container from it, using Buildah. + +To apply the changes, simply remove ``--dry-run`` or ``-t`` flag, and re-run Mezzotint: + +.. code-block:: shell + + mezzotint -a tight -p mycontainer.yaml -r /var/tmp/mycontainer + +You should be seeing the following output: + +.. code-block:: text + + [23/09/2023 13:01:30] - INFO: Launching scanner and data processor + [23/09/2023 13:01:30] - INFO: Getting profile at profile.yaml + [23/09/2023 13:01:31] - INFO: Automatically removing potential junk resources + [23/09/2023 13:01:31] - INFO: Finished. Hopefully it even works :-) + +At this point, if you navigate to ``/var/tmp/mycontainer`` and list it, you will see that the root filesystem is significantly smaller than usual: + +.. code-block:: text + + -rw-r--r-- 1 root root 0 Sep 23 13:01 .tinted.lock + lrwxrwxrwx 1 root root 7 Sep 9 15:28 bin -> usr/bin + drwxr-xr-x 1 root root 79 Sep 23 13:01 dev + drwxr-xr-x 1 root root 4.0K Sep 23 13:01 etc + lrwxrwxrwx 1 root root 7 Sep 9 15:28 lib -> usr/lib + lrwxrwxrwx 1 root root 9 Sep 9 15:28 lib64 -> usr/lib64 + drwxr-xr-x 1 root root 147 Sep 23 13:01 usr + +You can also notice ``.tinted.lock`` file. This file is zero size and only there to tell Mezzotint that the job is done. So if you repeat the action, this will happens: + +.. code-block:: text + + [23/11/2023 13:05:13] - INFO: Launching scanner and data processor + [23/11/2023 13:05:13] - INFO: Getting profile at profile.yaml + [23/11/2023 13:05:13] - ERROR: This container seems already tinted. + +If you list ``/usr/bin`` of the container, it will contain only binaries for the editor and nothing else: + +.. code-block:: text + + lrwxrwxrwx 1 root root 24 Sep 9 15:29 editor -> /etc/alternatives/editor + lrwxrwxrwx 1 root root 23 Sep 9 15:29 emacs -> /etc/alternatives/emacs + -rwxr-xr-x 1 root root 5.4M Jan 24 2022 emacs-nox + lrwxrwxrwx 1 root root 18 Sep 23 13:01 vim -> /usr/bin/emacs-nox + +The last symlink to Vim comes from the hook command ``after`` and is our "Hello, friends!" to the Vim users. 😊 + +.. hint:: + + As ``/usr/bin`` no longer contains anything but your application, this also means that the container is no longer "debuggable" the way it is normally done by running its shell. + + If you still need bash and a minimal system to be present, consider installing ``busybox`` and keeping that package in your profile. -Applying the Changes -^^^^^^^^^^^^^^^^^^^^ Test it! ^^^^^^^^ +Now it is time to test our container. Since container is constructed using Buildah, we can also run it in test mode. Since this is Emacs editor, we need TTY and also define terminal: + +.. code-block:: shell + + buildah run --tty --env TERM=xterm working-container /usr/bin/emacs + +If we run it, Emacs appears: + +.. image:: emacs-tested.png + Next Steps ---------- From 440b85e91a68a132db3a8461164c547cbf0c9727 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Thu, 23 Nov 2023 14:41:58 +0100 Subject: [PATCH 33/34] Split doc to chapters for a better readability --- docs/usage.rst | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs/usage.rst b/docs/usage.rst index 1583ba3..743f6c7 100644 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -229,6 +229,11 @@ For example, if your working container is currently mounted as ``/var/tmp/mycont mezzotint -t -p mycontainer.yaml -r /var/tmp/mycontainer +This operation will calculate what can be classified as a "junk" and will remove it, displaying only what will be staying in your container in a future. + +Reviewing "dry-run" Results +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + This will perform an excessive output to the terminal, listing all directories and files that will be preserved, calculating their size etc. At the end Mezzotint will print the total results, like how much disk space will be freed and how much space preserved etc. Also Mezzotint will print the list of preserved packages. For example: @@ -304,6 +309,11 @@ The output also found additional 22 junk files. Scrolling this output, they are ╰─ ⚠️ PROBLEMS Files: 21, Size: 12.2 MB +We are still losing 12 megabytes. Let's get rid of them too. + +Tighting It All Up +^^^^^^^^^^^^^^^^^^ + These files are occupying 12 megabytes without any kind of practical need. You can choose either to keep these or you can do something about it. One way is to let Mezzotint deal with it, using ``--autodeps`` option with flag ``tight``. This flag tells Mezzotint to actually not to look for dependencies, but only make a container "tight", i.e. remove all data that is considered not important: .. code-block:: shell @@ -318,6 +328,9 @@ This operation will additionally shave off 12Mb from this container. Now it is a For the reasons that the operation cannot be undone while the entire container might be permanently damaged for different reasons like wrong/incomplete profile, missing packages etc, it is recommended to pre-commit "fat" finished container to the local storage and restore working container from it, using Buildah. +Applying the Changes Permanently +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + To apply the changes, simply remove ``--dry-run`` or ``-t`` flag, and re-run Mezzotint: .. code-block:: shell @@ -333,6 +346,11 @@ You should be seeing the following output: [23/09/2023 13:01:31] - INFO: Automatically removing potential junk resources [23/09/2023 13:01:31] - INFO: Finished. Hopefully it even works :-) +Hopefully yes. Now it is time to review and test it. + +Reviewing the Result +^^^^^^^^^^^^^^^^^^^^ + At this point, if you navigate to ``/var/tmp/mycontainer`` and list it, you will see that the root filesystem is significantly smaller than usual: .. code-block:: text From 91df9b874ab6c60801cee21bde43b73e27c4f6d0 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Thu, 23 Nov 2023 14:58:40 +0100 Subject: [PATCH 34/34] Adjust missed cornercases --- docs/index.rst | 23 ++++++++++++++++------- docs/quickstart.rst | 8 ++++++-- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index d079cf6..eb4f233 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -26,16 +26,19 @@ Welcome to Mezzotint documentation! Concept ------- -Mezzotint is an alternative solution to `Canonical Chisel `__ tool. It is designed to drop unnecessary libraries and files from a container, thus minimising its overall size and convert a typical OCI container to be close as application bundle, keeping isolation and scalability features. +Mezzotint is an alternative solution to `Canonical Chisel `__ tool. + +Same as Chisel tool, Mezzotint is also designed to drop unnecessary libraries and files from a container, thus minimising its overall size and convert a typical OCI container to be close as application bundle, keeping isolation and scalability features. Content of a container is expected to be provisioned from a package repository and have a clear structure of package dependencies. Its content is specified in a profile as a short set of rules. -In contrast to Canonical's Chisel, Mezzotint: +However, in contrast to Canonical's Chisel, Mezzotint: - Designed to be distribution-agnostic, as long as a distribution is using a package manager. - Does not need a carefully maintained `database of package descriptions `__, which has to be specific to a particular Linux distribution version. - Released under Apache 2.0 licence. +Essentially, Mezzotint is trying to `actually` follow the point of Michelangelo, removing everything unnecessary from a block of marble to make a statue. Both Chisel and Mezzotint tools facing the same pain point in their approach: not everything that is linked needs to be linked, and not everything that is packaged and thus is as a dependency, should be there in certain cases. And to figure-out what is needed and what is not needed β€” is not the easiest task to do it manually. .. attention:: @@ -45,22 +48,28 @@ In contrast to Canonical's Chisel, Mezzotint: Use Cases --------- -Mezzotint use case is pretty simple, coined by Antoine de Saint-Exupery: +Mezzotint use case is pretty simple, coined by a French writer, poet, journalist and pioneering aviator: + +.. hint:: - *A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away* + *A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away.* -It should be able to be used in: + β€” Antoine de Saint-Exupery + +Mezzotint should be able to be used in: - containers - embedded Linux images - immutable systems +As software developes, these features will come to true one day, but with your Pull Requests, ideas and other contributions even faster! πŸ˜ƒ + Limitations ----------- 1. Mezzotint currently works only with containers of OCI standard. However, there are plans to expand it to the actual provisioned images. 2. At the moment integration with a package manager is implemented only for Debian package manager, covering only "Debian family" distributions, such as Ubuntu, Mint, Debian itself etc -3. It is tested only on Ubuntu LTS 22.04... πŸ˜ƒ +3. It is tested only on Ubuntu LTS 22.04 so far .. sidebar:: Links @@ -71,6 +80,6 @@ Limitations Contributing ------------- -Best way to make progress is to open an issue (good πŸ‘) or submit a Pull Request (awesome 🀩) on the GitHub. +Best way to make progress is to open an issue (great πŸ‘) or submit a Pull Request (awesome 🀩) on the GitHub. And just in case you don't know how to implement it in Rust, but you still want something cool to happen, then please fill-in an issue using issue tracker. diff --git a/docs/quickstart.rst b/docs/quickstart.rst index fbc8aa8..b6b3a42 100644 --- a/docs/quickstart.rst +++ b/docs/quickstart.rst @@ -8,9 +8,13 @@ Quick Start The primary aim of the Mezzotint tool is to minimize your container's size by eliminating anything considered "junk" β€” items that are never used, unnecessary, and serve no purpose within your container. -To quickly start, you should already have `somewhere` a mounted container root filesystem. We recommend to use `Buildah `__, but you may choose other similar tools. +.. attention:: -If you've already provisioned and configured your forthcoming container mountpoint with the application but haven't shared it yet, run Mezzotint on that mountpoint, specifying it as the `system root`, like so: + This document does not explains how to provision a root filesystem with additional software. + +To quickly start, you should already have `somewhere` a mounted container root filesystem with installed Emacs without X11 support (terminal only). For the process, we recommend to use `Buildah `__, but you may choose other similar tools. If you don't know how to do this, navigate to :doc:`/usage` for full guidance. + +And so if you've already provisioned and configured your forthcoming container mountpoint with the application but haven't shared it yet, run Mezzotint on that mountpoint, specifying it as the `system root`, like so: .. code-block:: shell