Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 9 Jul 2024 16:51:31 +0200
From:      Alfonso Sabato Siciliano <alfix86@gmail.com>
To:        FreeBSD Hackers <freebsd-hackers@freebsd.org>
Subject:   Personal Installer
Message-ID:  <CAPJrGM0Ua9bTRFqvGRk_r%2B_BPX-tapHWGCcR%2BxR16sPQO3zVjA@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
--000000000000fa7c94061cd1aaca
Content-Type: text/plain; charset="UTF-8"

Hello,

I am going to write an installer *for me*. Of course it will be open source.
Perhaps it can be useful for others: tips, new ideas, and collaborations are
welcome. I know others have something in progress, if we match some
requirements
we can share some components/code.

Some project choices and requirements:

* Guidelines: simple, modularized and extendable.

* Server (backend) side written in lua, modularized in scripts. Independent
of
  any frontend.

* A configuration file with variables, hooks, comments and examples.

* Multi-mode installation: Automatic, Simple, and Expert.

* Client (Graphic) side responsible only for drawing dialogs/windows.

* Multi-frontend. Implementation priority:
 - TUI. Similar to bsdinstall with new features.
 - File. Settings are read from file(s).
 - CLI. Suitable for a screen reader for vision-impairments users. This is a
   feature request.
 - GUI.
 - WEB. TBD (I am not a web-expert, lua seems to provide some option for
   web programming).

* A menu to select: frontend, mode, and other options, at start-up.

* Frontends have to be totally separated from the server, eventually to be
  easily added/deleted/changed/improved in the future. They could be
designed
  and developed mainly for the installer, neither to be compatible with
other
  tools nor to be general purpose.

* UI new features (something is related to server side):
 - Navigation. New buttons: [Restart], [Prev], and [Next].
 - Multi language.
 - Dialogs for help, at start-up and during installation (F1 or [Help]
button).
 - Options for color blind and low vision users. This is a feature request.
 - Final step to install a desktop environment.
 - Final step to install pkgs for accessibility. This is a feature request.

* Multi installation process:
 - Synchronous. The server waits the user input from the dialog, then it
   performs the "command".
 - 2-steps. Frontend writes the user input to files. When the frontend
finishes
   (showing all the dialogs) the server performs the actual installation by
   reading files.
 - Noninteractive. No user actions, server reads previously written files.
 - TBD a mix of the above.

* Server <-> client communication: lua layer, files, and TBD server web.

* Logging and debug features similar to bsdinstall with extensions.

* Provide bsdinstall variables and configuration files. Ideally these
features
  will be placed in the "centralized" configuration file above.
 - All/most bsdinstall variables with extensions.
 - All/most bsdinstall configuration files (or compliant solutions).

* A menu to select bsdinstall or this installer at start-up.

* Extras & TBD. sade extensions (feature request), pkgbase, and so on.


(I'll create a git repository and a wiki page with the Roadmap. The plan is
detaching bsdinstall from bsdconfig, then rewriting the scripts in lua.)

Again, to avoid any misunderstanding: this is a personal project, bsdinstall
will not be touched. I plan to end by 6-8 months providing a port with the
installer and a script to create the iso.


Thanks in advance for any reply.

Best regards,
Alfonso

--000000000000fa7c94061cd1aaca
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hello,<br><br>I am going to write an installer *for me*. O=
f course it will be open source.<br>Perhaps it can be useful for others: ti=
ps, new ideas, and collaborations are<br>welcome. I know others have someth=
ing in progress, if we match some requirements<br>we can share some compone=
nts/code.<br><br>Some project choices and requirements:<br><br>* Guidelines=
: simple, modularized and extendable.<br><br>* Server (backend) side writte=
n in lua, modularized in scripts. Independent of<br>=C2=A0 any frontend.<br=
><br>* A configuration file with variables, hooks, comments and examples.<b=
r><br>* Multi-mode installation: Automatic, Simple, and Expert.<br><br>* Cl=
ient (Graphic) side responsible only for drawing dialogs/windows.<br><br>* =
Multi-frontend. Implementation priority:<br>=C2=A0- TUI. Similar to bsdinst=
all with new features.<br>=C2=A0- File. Settings are read from file(s).<br>=
=C2=A0- CLI. Suitable for a screen reader for vision-impairments users. Thi=
s is a<br>=C2=A0 =C2=A0feature request.<br>=C2=A0- GUI.<br>=C2=A0- WEB. TBD=
 (I am not a web-expert, lua seems to provide some option for<br>=C2=A0 =C2=
=A0web programming).<br><br>* A menu to select: frontend, mode, and other o=
ptions, at start-up.<br><br>* Frontends have to be totally separated from t=
he server, eventually to be<br>=C2=A0 easily added/deleted/changed/improved=
 in the future. They could be designed<br>=C2=A0 and developed mainly for t=
he installer, neither to be compatible with other<br>=C2=A0 tools nor to be=
 general purpose.<br><br>* UI new features (something is related to server =
side):<br>=C2=A0- Navigation. New buttons: [Restart], [Prev], and [Next].<b=
r>=C2=A0- Multi language.<br>=C2=A0- Dialogs for help, at start-up and duri=
ng installation (F1 or [Help] button).<br>=C2=A0- Options for color blind a=
nd low vision users. This is a feature request.<br>=C2=A0- Final step to in=
stall a desktop environment.<br>=C2=A0- Final step to install pkgs for acce=
ssibility. This is a feature request.<br><br>* Multi installation process:<=
br>=C2=A0- Synchronous. The server waits the user input from the dialog, th=
en it<br>=C2=A0 =C2=A0performs the &quot;command&quot;.<br>=C2=A0- 2-steps.=
 Frontend writes the user input to files. When the frontend finishes<br>=C2=
=A0 =C2=A0(showing all the dialogs) the server performs the actual installa=
tion by<br>=C2=A0 =C2=A0reading files.<br>=C2=A0- Noninteractive. No user a=
ctions, server reads previously written files.<br>=C2=A0- TBD a mix of the =
above.<br><br>* Server &lt;-&gt; client communication: lua layer, files, an=
d TBD server web.<br><br>* Logging and debug features similar to bsdinstall=
 with extensions.<br><br>* Provide bsdinstall variables and configuration f=
iles. Ideally these features<br>=C2=A0 will be placed in the &quot;centrali=
zed&quot; configuration file above.<br>=C2=A0- All/most bsdinstall variable=
s with extensions.<br>=C2=A0- All/most bsdinstall configuration files (or c=
ompliant solutions).<br><br>* A menu to select bsdinstall or this installer=
 at start-up.<br><br>* Extras &amp; TBD. sade extensions (feature request),=
 pkgbase, and so on.<br><br><br>(I&#39;ll create a git repository and a wik=
i page with the Roadmap. The plan is<br>detaching bsdinstall from bsdconfig=
, then rewriting the scripts in lua.)<br><br>Again, to avoid any misunderst=
anding: this is a personal project, bsdinstall<br>will not be touched. I pl=
an to end by 6-8 months providing a port with the<br>installer and a script=
 to create the iso.<br><br><br>Thanks in advance for any reply.<br><br>Best=
 regards,<br>Alfonso<br><br><br></div>

--000000000000fa7c94061cd1aaca--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAPJrGM0Ua9bTRFqvGRk_r%2B_BPX-tapHWGCcR%2BxR16sPQO3zVjA>