This is required to proper choose if a seperate boot partition should be
created or must not created (BTRFS)
Signed-off-by: Stefan Schantl <stefan.schantl(a)ipfire.org>
---
src/installer/hw.c | 9 ++++---
src/installer/hw.h | 2 +-
src/installer/main.c | 58 +++++++++++++++++++++++---------------------
3 files changed, 36 insertions(+), 33 deletions(-)
diff --git a/src/installer/hw.c b/src/installer/hw.c
index 77789e35e..46330ce43 100644
--- a/src/installer/hw.c
+++ b/src/installer/hw.c
@@ -631,9 +631,13 @@ static int hw_calculate_partition_table(struct hw* hw, struct hw_destination* de
return 0;
}
-struct hw_destination* hw_make_destination(struct hw* hw, int part_type, struct hw_disk** disks, int disable_swap) {
+struct hw_destination* hw_make_destination(struct hw* hw, int part_type, struct hw_disk** disks,
+ int disable_swap, int filesystem) {
struct hw_destination* dest = malloc(sizeof(*dest));
+ // Assign filesystem
+ dest->filesystem = filesystem;
+
if (part_type == HW_PART_TYPE_NORMAL) {
dest->disk1 = *disks;
dest->disk2 = NULL;
@@ -655,9 +659,6 @@ struct hw_destination* hw_make_destination(struct hw* hw, int part_type, struct
if (r)
return NULL;
- // Set default filesystem
- dest->filesystem = HW_FS_DEFAULT;
-
return dest;
}
diff --git a/src/installer/hw.h b/src/installer/hw.h
index 7fbea86de..bba06da95 100644
--- a/src/installer/hw.h
+++ b/src/installer/hw.h
@@ -141,7 +141,7 @@ struct hw_disk** hw_select_disks(struct hw_disk** disks, int* selection);
struct hw_disk** hw_select_first_disk(const struct hw_disk** disks);
struct hw_destination* hw_make_destination(struct hw* hw, int part_type, struct hw_disk** disks,
- int disable_swap);
+ int disable_swap, int filesystem);
unsigned long long hw_memory();
diff --git a/src/installer/main.c b/src/installer/main.c
index 30f02d8cb..c31c032c2 100644
--- a/src/installer/main.c
+++ b/src/installer/main.c
@@ -685,34 +685,9 @@ int main(int argc, char *argv[]) {
hw_free_disks(disks);
- struct hw_destination* destination = hw_make_destination(hw, part_type,
- selected_disks, config.disable_swap);
-
- if (!destination) {
- errorbox(_("Your harddisk is too small."));
- goto EXIT;
- }
-
- fprintf(flog, "Destination drive: %s\n", destination->path);
- fprintf(flog, " bootldr: %s (%lluMB)\n", destination->part_bootldr, BYTES2MB(destination->size_bootldr));
- fprintf(flog, " boot : %s (%lluMB)\n", destination->part_boot, BYTES2MB(destination->size_boot));
- fprintf(flog, " ESP : %s (%lluMB)\n", destination->part_boot_efi, BYTES2MB(destination->size_boot_efi));
- fprintf(flog, " swap : %s (%lluMB)\n", destination->part_swap, BYTES2MB(destination->size_swap));
- fprintf(flog, " root : %s (%lluMB)\n", destination->part_root, BYTES2MB(destination->size_root));
- fprintf(flog, "Memory : %lluMB\n", BYTES2MB(hw_memory()));
-
- // Warn the user if there is not enough space to create a swap partition
- if (!config.unattended) {
- if (!config.disable_swap && !*destination->part_swap) {
- rc = newtWinChoice(title, _("OK"), _("Cancel"),
- _("Your harddisk is very small, but you can continue without a swap partition."));
-
- if (rc != 1)
- goto EXIT;
- }
- }
-
// Filesystem selection
+ int filesystem = HW_FS_DEFAULT;
+
if (!config.unattended) {
struct filesystems {
int fstype;
@@ -741,7 +716,34 @@ int main(int argc, char *argv[]) {
if (rc == 2)
goto EXIT;
- destination->filesystem = filesystems[fs_choice].fstype;
+ filesystem = filesystems[fs_choice].fstype;
+ }
+
+ struct hw_destination* destination = hw_make_destination(hw, part_type,
+ selected_disks, config.disable_swap, filesystem);
+
+ if (!destination) {
+ errorbox(_("Your harddisk is too small."));
+ goto EXIT;
+ }
+
+ fprintf(flog, "Destination drive: %s\n", destination->path);
+ fprintf(flog, " bootldr: %s (%lluMB)\n", destination->part_bootldr, BYTES2MB(destination->size_bootldr));
+ fprintf(flog, " boot : %s (%lluMB)\n", destination->part_boot, BYTES2MB(destination->size_boot));
+ fprintf(flog, " ESP : %s (%lluMB)\n", destination->part_boot_efi, BYTES2MB(destination->size_boot_efi));
+ fprintf(flog, " swap : %s (%lluMB)\n", destination->part_swap, BYTES2MB(destination->size_swap));
+ fprintf(flog, " root : %s (%lluMB)\n", destination->part_root, BYTES2MB(destination->size_root));
+ fprintf(flog, "Memory : %lluMB\n", BYTES2MB(hw_memory()));
+
+ // Warn the user if there is not enough space to create a swap partition
+ if (!config.unattended) {
+ if (!config.disable_swap && !*destination->part_swap) {
+ rc = newtWinChoice(title, _("OK"), _("Cancel"),
+ _("Your harddisk is very small, but you can continue without a swap partition."));
+
+ if (rc != 1)
+ goto EXIT;
+ }
}
// Setting up RAID if needed.
--
2.39.2