Subject: bug#53063: closed (Re: [PATCH] installer: Use system-wide guix for system init.)

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 02 Feb 2022 15:51:01 +0000

Your bug report

#53063: [PATCH wip-harden-installer 00/14] General improvements to the installer

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
53063: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=53063
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: [PATCH] installer: Use system-wide guix for system init.
From: Mathieu Othacehe <[email-masked]>
To: Josselin Poiret <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Wed, 02 Feb 2022 16:50:25 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hey Josselin,

> Here's an additional patch that will use the system-wide guix in the
> installer, so that tests work.

That's confirmed by the CI. I went ahead and pushed the whole series
with this additional patch. All those improvements are really welcomed
so thanks again for your contribution here.

Now we need people to test the soon to be 1.4.0 installer :)

Mathieu

Subject: [PATCH wip-harden-installer 00/14] General improvements to the installer
From: Josselin Poiret <[email-masked]>
To: [email-masked]
Cc: Josselin Poiret <[email-masked]>
Date: Thu, 6 Jan 2022 23:45:45 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello everyone,

Here are some miscellaneous improvements to the installer.  Here is a
run down of the bigger changes:

* Patches 2 to 4 move logging from simply putting everything in syslog
  to a more flexible approach, logging lines to multiple targets.  One
  new target is a per-install /tmp/installer.{DATETIME}.log.

* Patches 5 and 6 add a new alternative to invoke (or system*), which
  forks to a new child process with a pipe back to the main process,
  sets stdout and stderr to that pipe followed by execlp'ing the
  command, while the main process reads from the pipe and applies some
  configurable procedures to each line of output.  This lets us log
  all external command output using the same facility as the installer
  itself, while displaying everything to the user.  Patch 6 is
  "optional", as it is there simply to avoid getting "Error in
  finalization thread: Success".

* Patches 7 to 9 add a parameter run-command-in-installer, that is an
  installer-specific way of running external commands.  Here, the Newt
  installer one simply suspends newt and runs the command in the
  terminal.

* Patch 13 modifies the installer step aborting mechanism to
  use general prompts instead of the exception system.  This was done
  so that a following patchset (which will hopefully be coming soon)
  is able to abort an installer step from an exception handling code
  that is outside of the run-installer-steps.  You could also say that
  it is cleaner :).

* Patch 14 adds a new confirmation page before running any external
  command, with the possibility to abort the current installer step.

The next step should be moving installer-program in (gnu installer) to
use SRFI-34/35 exception handling over the current throw/catch one, as
the current code doesn't display those properly.

Josselin Poiret (14):
  installer: Use define instead of let at top-level.
  installer: Generalize logging facility.
  installer: Use new installer-log-line everywhere.
  installer: Un-export syslog syntax.
  installer: Capture external commands output.
  installer: Disable automatic finalization for child thread.
  installer: Add installer-specific run command process.
  installer: Use run-command-in-installer in (gnu installer parted).
  installer: Use the command capturing facility for guix init.
  installer: Raise condition when mklabel fails.
  installer: Fix run-file-textbox-page when edit-button is #f.
  installer: Replace run-command by invoke in newt/page.scm.
  installer: Use named prompt to abort or break installer steps.
  installer: Add confirmation page when running external commands.

 gnu/installer.scm                |  15 ++-
 gnu/installer/final.scm          |  23 +---
 gnu/installer/newt.scm           |  22 ++-
 gnu/installer/newt/ethernet.scm  |   8 +-
 gnu/installer/newt/final.scm     |  22 +--
 gnu/installer/newt/keymap.scm    |   8 +-
 gnu/installer/newt/locale.scm    |  25 ++--
 gnu/installer/newt/network.scm   |  16 +--
 gnu/installer/newt/page.scm      |  22 +--
 gnu/installer/newt/partition.scm |  10 +-
 gnu/installer/newt/services.scm  |  16 +--
 gnu/installer/newt/timezone.scm  |   4 +-
 gnu/installer/newt/user.scm      |   5 +-
 gnu/installer/newt/welcome.scm   |   2 +-
 gnu/installer/newt/wifi.scm      |   4 +-
 gnu/installer/parted.scm         | 104 +++++++-------
 gnu/installer/record.scm         |   7 +-
 gnu/installer/steps.scm          | 127 ++++++++---------
 gnu/installer/utils.scm          | 225 +++++++++++++++++++++++++++----
 19 files changed, 389 insertions(+), 276 deletions(-)

-- 
2.34.0