Skip to content

Commit 98c6843

Browse files
committed
[CONTENT] Add table of contents for GUI setup blog 1; Fix lists formatting in blogs 1 and 2
1 parent fade944 commit 98c6843

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

content/blogs/gui-setup-part1-setupapi.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: "1st-stage GUI setup - September 2023: partly Wine-syncing setupapi"
2+
title: "1st-stage GUI setup, Part 1 - September 2023: Partly Wine-syncing setupapi"
33
author: "hbelusca"
44
date: 2023-12-04
55
tags: [ newsletter, gui-setup ]
@@ -8,10 +8,17 @@ tags: [ newsletter, gui-setup ]
88
Greetings to all ReactOS followers!
99
As many of you certainly are aware by now, [I have been officially hired](/project-news/hermes-belusca-hired-full-time) by ReactOS Deutschland e.V. to develop the graphical version of the 1st-stage ReactOS installer ("1st-stage GUI setup").
1010

11-
During this first month (September 2023), my goal was to partly sync the code of the `setupapi.dll` module with Wine's.
11+
This is the first blog of the series "1st-stage GUI setup":
12+
13+
1. September 2023: Partly Wine-syncing setupapi
14+
2. [October-November 2023: Making partitioning UI work](/blogs/gui-setup-part2-partitioning)
15+
3. [December 2023: First tests](/blogs/gui-setup-part3-first-testing-problems)
16+
17+
During this [first month of September 2023](https://docs.google.com/spreadsheets/d/1Kx80SmSkj1IdomVC9gcbA_MJ7XFiz_YlYYVxoxv-Jgs/view#gid=538572214), my goal was to partly sync the code of the `setupapi.dll` module with Wine's.
1218
Indeed, this module was [forked](https://git.reactos.org/?p=reactos.git;a=blob;f=media/doc/WINESYNC.txt;h=f6614ac83a968cd5d7ddde6483dc85b94d264fc4;hb=HEAD#l182) way back in 2005, with later partial synchronizations of its code for some of its functions.
1319

1420
For those of you who do not know what [setupapi](https://learn.microsoft.com/en-us/windows-hardware/drivers/install/setupapi) is, it is a module that:
21+
1522
- exposes [generic setup functions](https://learn.microsoft.com/en-us/windows/win32/setupapi/setup-api-portal) for reading and processing INF files, moving/copying files from an installation source media to a target, supporting also extraction from compressed .CAB cabinet files;
1623
- and exposes device installation functions as well.
1724

content/blogs/gui-setup-part2-partitioning.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ tags: [ newsletter, gui-setup ]
88
Greetings!
99

1010
Welcome to the second blog of the series "1st-stage GUI setup":
11+
1112
1. [September 2023: partly Wine-syncing setupapi](/blogs/gui-setup-part1-setupapi)
1213
2. October-November 2023: Making partitioning UI work
1314
3. [December 2023: First tests](/blogs/gui-setup-part3-first-testing-problems)
@@ -23,6 +24,7 @@ During the first week of October, I finished addressing some issues that arose w
2324

2425
I then started the main part of this project: working on the GUI setup proper.
2526
The crucial work for it resides in three functions:
27+
2628
- Disk partitioning and bootloader installation;
2729
- File copying;
2830
- Saving settings in the registry.
@@ -79,10 +81,12 @@ The partition page allows the user to choose the partition where to install Reac
7981
This new installation workflow necessitated adapting the existing partitioning code, shared with the text-mode USETUP, to determine where and how to store additional per-partition arbitrary data state (for example, filesystem choice and formatting parameters).
8082

8183
Most importantly, three main changes were required in the code, summarized below.
84+
8285
- Rewriting the formatter/chkdsk machine-state code, that is originally used in USETUP, to make it more generic and act as a queue whose stashed actions can then be committed all at once, so as to employ it in the GUI setup as well.
8386
- Splitting the bootloader installation choice, from its actual installation code: see GitHub [PR #5786](https://github.com/reactos/reactos/pull/5786).
8487
This was needed, because the old behaviour was to present the user with the bootloader installation choice only at the very end of ReactOS installation, and not before starting it, and the old code was not reusable elsewhere.
8588
- Better unify the helper functions used to create partitions: see GitHub [PR #5837](https://github.com/reactos/reactos/pull/5837).
89+
8690
The existing code distinguished between "primary", "logical" and "extended" partitions.
8791
This makes sense for MBR-based disks but does not anywhere else (such as GPT disks).
8892
These partition creation helpers now automatically deduce their actual type -- the only exception being for "extended" partitions for MBR disks only.
@@ -97,6 +101,7 @@ These partition creation helpers now automatically deduce their actual type -- t
97101

98102
Partition handling code is now present in the GUI setup.
99103
However, it requires a few improvements:
104+
100105
- Being able to select empty disk space between existing partitions and install ReactOS onto it.
101106
- Reformat an _existing_ partition from the UI.
102107
This is not yet possible because the formatting options currently exist only in the Create-And-Format-Partition dialog;

0 commit comments

Comments
 (0)