]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
repart: add support for `Format=empty`
authorMichael Ferrari <nekkodroid404@gmail.com>
Fri, 27 Jun 2025 16:26:10 +0000 (18:26 +0200)
committerLennart Poettering <lennart@poettering.net>
Mon, 30 Jun 2025 08:11:16 +0000 (10:11 +0200)
This is a new meta value for the `Format=` option, which is equivalent
as specifying `Label=_empty` and `NoAuto=1` for compatibility with
sd-sysupdate.

Closes: https://github.com/systemd/systemd/issues/34596
man/repart.d.xml
src/repart/repart.c

index d3a8f6fcea702719262a05c9938ebd5f2d70da99..eac8ae7174ed7dc50e9ecce91b16b6895b9341da 100644 (file)
         required for the minimal file system of the specified type (or 4KiB if the minimal size is not
         known).</para>
 
+        <para>This also takes a special meta value <literal>empty</literal>. If specified this is equivalent
+        to specifying <literal>Label=_empty</literal> and <literal>NoAuto=1</literal>.</para>
+
         <para>This option has no effect if the partition already exists.</para>
 
         <para>Similarly to the behaviour of <varname>CopyBlocks=</varname>, the file system is formatted
index 76253c4a389db812a3cb3ee76886aba07f26cf3d..352384bfc0d3216194efc44dd6e320b773b94542 100644 (file)
@@ -2633,6 +2633,19 @@ static int partition_read_definition(Partition *p, const char *path, const char
                 }
         }
 
+        if (streq_ptr(p->format, "empty")) {
+                p->format = mfree(p->format);
+
+                if (p->no_auto < 0)
+                        p->no_auto = true;
+
+                if (!p->new_label) {
+                        p->new_label = strdup("_empty");
+                        if (!p->new_label)
+                                return log_oom();
+                }
+        }
+
         if (p->minimize != MINIMIZE_OFF && !p->format && p->verity != VERITY_HASH)
                 return log_syntax(NULL, LOG_ERR, path, 1, SYNTHETIC_ERRNO(EINVAL),
                                   "Minimize= can only be enabled if Format= or Verity=hash are set.");