Containers bring the ability to have ready-to-use environments and in
this case complete Fedora and Debian container files are described
containing all required packages for building and testing grub2.

Once users manually build it, they can run the desired container, jump
into a setup ready for development. On the other hand, if users
prefer to use bare metal instead of a containerized environment, it is
still useful to have a file explicitly indicating the required packages.

Signed-off-by: Leo Sandoval <lsand...@redhat.com>
---
 INSTALL                        | 39 +++++++++++++++++++++++
 container/Containerfile.debian | 56 +++++++++++++++++++++++++++++++++
 container/Containerfile.fedora | 57 ++++++++++++++++++++++++++++++++++
 3 files changed, 152 insertions(+)
 create mode 100644 container/Containerfile.debian
 create mode 100644 container/Containerfile.fedora

diff --git a/INSTALL b/INSTALL
index 724584c575..8aaee7f7f6 100644
--- a/INSTALL
+++ b/INSTALL
@@ -354,3 +354,42 @@ operates.
 `--version'
      Print the version of Autoconf used to generate the `configure'
      script, and exit.
+
+Container
+==========
+
+Containers bring the ability to have ready-to-use environments isolated 
completely
+from the build environment. Under the 'container' folder, there are container 
files
+(Containerfile.*) which describe images ready for building and testing grub2.
+
+Once users manually build it (see next section), they can run the desired 
container, jump
+into a setup ready for development. On the other hand, if users prefer to use 
bare metal
+instead of a containerized environment, it is still useful to have a file 
explicitly
+indicating the required packages.
+
+Container usage
+================
+
+Assuming your build OS support containers, e.g. all Linux distros, install 
'podman' on
+your favorite distro then build a specific image with
+
+  $ podman build -t fedora-grub -f Containerfile.fedora .
+
+or in case you prefer Debian
+
+  $ podman build -t debian-grub -f Containerfile.debian .
+
+once built, you can run/launch any of the aboven
+
+  $ podman run -it fedora-grub
+
+or
+
+  $ podman run -it debian-grub
+
+and execute the standard build/test commands inside it, e.g
+
+  # ./bootstrap
+  # ./configure
+  # ./make
+  # ./make check
diff --git a/container/Containerfile.debian b/container/Containerfile.debian
new file mode 100644
index 0000000000..289a2bc0cc
--- /dev/null
+++ b/container/Containerfile.debian
@@ -0,0 +1,56 @@
+FROM debian
+
+# Install required packages for configuration & compilation & check
+RUN apt update -y  && \
+    apt install -y \
+        attr \
+        autoconf \
+        automake \
+        autopoint \
+        bison \
+        btrfs-progs \
+        cpio \
+        cryptsetup \
+        dosfstools \
+        e2fsprogs \
+        erofs-utils \
+        exfatprogs \
+        f2fs-tools \
+        flex \
+        gawk \
+        genromfs \
+        gettext \
+        git \
+        hfsplus \
+        jfsutils \
+        libtool \
+        lzop \
+        make \
+        mtools \
+        nilfs-tools \
+        ntfs-3g \
+        ovmf \
+        ovmf-ia32 \
+        parted \
+        patch \
+        pkg-config \
+        python3 \
+        qemu-efi-aarch64 \
+        qemu-efi-arm \
+        qemu-system \
+        squashfs-tools \
+        swtpm-tools \
+        tpm2-tools \
+        udftools \
+        unifont \
+        wamerican \
+        which \
+        xfonts-unifont \
+        xfsprogs \
+        xorriso \
+        zfs-fuse
+
+# clone tip of grub repository
+RUN git clone --depth 1 https://git.savannah.gnu.org/git/grub.git
+
+WORKDIR /grub
diff --git a/container/Containerfile.fedora b/container/Containerfile.fedora
new file mode 100644
index 0000000000..a0c3a1f231
--- /dev/null
+++ b/container/Containerfile.fedora
@@ -0,0 +1,57 @@
+FROM registry.fedoraproject.org/fedora
+
+# Install required packages for configuration & compilation & check
+RUN dnf update -y && \
+    dnf install -y \
+        attr \
+        autoconf \
+        automake \
+        autopoint \
+        bison \
+        btrfs-progs \
+        cpio \
+        cryptsetup \
+        dosfstools \
+        e2fsprogs \
+        edk2-ovmf \
+        edk2-ovmf-ia32 \
+        erofs-utils \
+        exfatprogs \
+        f2fs-tools \
+        flex \
+        gawk \
+        genromfs \
+        gettext \
+        git \
+        hfsplus-tools \
+        jfsutils \
+        libtool \
+        lzop \
+        make \
+        mtools \
+        nilfs-utils \
+        ntfsprogs \
+        parted \
+        patch \
+        pkg-config \
+        python3 \
+        qemu-system-arm \
+        qemu-system-aarch64 \
+        qemu-system-riscv \
+        qemu-system-x86 \
+        squashfs-tools \
+        swtpm-tools \
+        tpm2-tools \
+        udftools \
+        unifont \
+        unifont-fonts \
+        which \
+        words \
+        xfsprogs \
+        xorriso \
+        zfs-fuse
+
+# clone tip of grub repository
+RUN git clone --depth 1 https://git.savannah.gnu.org/git/grub.git
+
+WORKDIR /grub
-- 
2.48.1


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to