]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
tools: Add "devel" profile 3613/head
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Mon, 24 Mar 2025 10:52:39 +0000 (11:52 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Mon, 24 Mar 2025 10:52:39 +0000 (11:52 +0100)
This profile contains tools required to build C/C++ projects. This is
useful to use mkosi sandbox to quickly build one off projects without
having to list a bunch of basic packages over and over again.

mkosi/config.py
mkosi/resources/man/mkosi.1.md
mkosi/resources/mkosi-tools/mkosi.profiles/devel/mkosi.conf [new file with mode: 0644]

index a54144d053d8ee60e1d92e4f8b4222c56446d190..59ae35cbf1b2b9a11026a6c7f0bc1c3e959b5d46 100644 (file)
@@ -601,10 +601,15 @@ class ArtifactOutput(StrEnum):
 
 
 class ToolsTreeProfile(StrEnum):
+    devel = enum.auto()
     misc = enum.auto()
     package_manager = enum.auto()
     runtime = enum.auto()
 
+    @classmethod
+    def default(cls) -> tuple["ToolsTreeProfile", ...]:
+        return (cls.misc, cls.package_manager, cls.runtime)
+
 
 class InitrdProfile(StrEnum):
     lvm = enum.auto()
@@ -3474,7 +3479,7 @@ SETTINGS: list[ConfigSetting[Any]] = [
         section="Build",
         parse=config_make_list_parser(delimiter=",", parse=make_enum_parser(ToolsTreeProfile)),
         choices=ToolsTreeProfile.values(),
-        default=list(ToolsTreeProfile),
+        default=ToolsTreeProfile.default(),
         help="Which profiles to enable for the default tools tree",
     ),
     ConfigSetting(
index faa08d2bd526adea149062cdd04c1c57f4d1dc10..4d78b375ac9039a9dd796ef53ea92413e74dedae 100644 (file)
@@ -1377,14 +1377,16 @@ boolean argument: either `1`, `yes`, or `true` to enable, or `0`, `no`,
 
 `ToolsTreeProfiles=`, `--tools-tree-profile=`
 :   Set the profiles to enable for the default tools tree. Takes a
-    comma-delimited list consisting of `misc`, `package-manager` and
-    `runtime`. By default, all profiles are enabled.
-
-    The `misc` profile contains various useful tools that are handy to
-    have available in scripts. The package manager profile contains
-    package managers and related tools other than those native to the
-    tools tree distribution. The `runtime` profile contains the tools
-    required to boot images in a systemd-nspawn container or in a
+    comma-delimited list consisting of `devel`, `misc`,
+    `package-manager` and `runtime`. By default, all profiles except
+    `devel` are enabled.
+
+    The `devel` profile contains tools required to build (C/C++)
+    projects. The `misc` profile contains various useful tools that are
+    handy to have available in scripts. The package manager profile
+    contains package managers and related tools other than those native
+    to the tools tree distribution. The `runtime` profile contains the
+    tools required to boot images in a systemd-nspawn container or in a
     virtual machine.
 
 `ToolsTreeMirror=`, `--tools-tree-mirror=`
diff --git a/mkosi/resources/mkosi-tools/mkosi.profiles/devel/mkosi.conf b/mkosi/resources/mkosi-tools/mkosi.profiles/devel/mkosi.conf
new file mode 100644 (file)
index 0000000..b3945f5
--- /dev/null
@@ -0,0 +1,20 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+[Content]
+Packages=
+        autoconf
+        automake
+        binutils
+        bison
+        bzip2
+        cmake
+        flex
+        gcc
+        gettext
+        groff
+        libtool
+        m4
+        make
+        meson
+        patch
+        pkgconf