Package: partman-auto-raid Version: 51 Severity: normal Tags: d-i patch Dear Maintainer,
I was trying to get a preseeded Debian installation to create a md software RAID array with superblock version 1.0. To do that, one has to issue `mdadm --create ... --metadata=1.0 ...` at array creation time. partman-auto-raid's auto-raidcfg/create_raid() optionally consumes EXTRA_ARGS from a pre-seeded partman-auto-raid/recipe (the 8th argument in a single recipe record) key, which is documented in partman-auto-raid-recipe.txt[0]. By massaging the recipe correctly, it should be possible to supply `--metadata=1.0` on mdadm's resulting argv. HOWEVER, since recipe records are currently separated from each other by means of any single . character (ASCII 0x2e, a dot), it is effectively impossible to pass this argument to mdadm: There is a simple `while` loop near the end of auto-raidcfg that will try to split the recipe string as returned by confmodule's get_db() at each occurence of ., which breaks when the EXTRA_ARG intended for mdadm's argv contains that particular character. If the recipe record separator were to be changed to a single ASCII dot surrounded by any amount of whitespace, which all the preseed examples I could find in circulation on the web as well as in official Debian documentation already follow, having any mdadm metadata specification that requires a . in its optarg would become possible. I created a merge request on salsa with two patches that implement the new, fixed split logic available at [1], and hope you will find this useful. Thanks for all the hard and fruitful work you all are doing - on Debian in general, and d-i in particular! :) [0]: https://sources.debian.org/src/debian-installer/20240914/doc/devel/partman-auto-raid-recipe.txt/ [1]: https://salsa.debian.org/installer-team/partman-auto-raid/-/merge_requests/3 -- System Information: Debian Release: 12.8 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 6.1.0-27-amd64 (SMP w/2 CPU threads; PREEMPT) Kernel taint flags: TAINT_USER Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled

