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
[-- Attachment #1 --] 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 [-- Attachment #2 --] <div dir="ltr">Hello,<br><br>I am going to write an installer *for me*. Of course it will be open source.<br>Perhaps it can be useful for others: tips, new ideas, and collaborations are<br>welcome. I know others have something in progress, if we match some requirements<br>we can share some components/code.<br><br>Some project choices and requirements:<br><br>* Guidelines: simple, modularized and extendable.<br><br>* Server (backend) side written in lua, modularized in scripts. Independent of<br> any frontend.<br><br>* A configuration file with variables, hooks, comments and examples.<br><br>* Multi-mode installation: Automatic, Simple, and Expert.<br><br>* Client (Graphic) side responsible only for drawing dialogs/windows.<br><br>* Multi-frontend. Implementation priority:<br> - TUI. Similar to bsdinstall with new features.<br> - File. Settings are read from file(s).<br> - CLI. Suitable for a screen reader for vision-impairments users. This is a<br> feature request.<br> - GUI.<br> - WEB. TBD (I am not a web-expert, lua seems to provide some option for<br> web programming).<br><br>* A menu to select: frontend, mode, and other options, at start-up.<br><br>* Frontends have to be totally separated from the server, eventually to be<br> easily added/deleted/changed/improved in the future. They could be designed<br> and developed mainly for the installer, neither to be compatible with other<br> tools nor to be general purpose.<br><br>* UI new features (something is related to server side):<br> - Navigation. New buttons: [Restart], [Prev], and [Next].<br> - Multi language.<br> - Dialogs for help, at start-up and during installation (F1 or [Help] button).<br> - Options for color blind and low vision users. This is a feature request.<br> - Final step to install a desktop environment.<br> - Final step to install pkgs for accessibility. This is a feature request.<br><br>* Multi installation process:<br> - Synchronous. The server waits the user input from the dialog, then it<br> performs the "command".<br> - 2-steps. Frontend writes the user input to files. When the frontend finishes<br> (showing all the dialogs) the server performs the actual installation by<br> reading files.<br> - Noninteractive. No user actions, server reads previously written files.<br> - TBD a mix of the above.<br><br>* Server <-> client communication: lua layer, files, and TBD server web.<br><br>* Logging and debug features similar to bsdinstall with extensions.<br><br>* Provide bsdinstall variables and configuration files. Ideally these features<br> will be placed in the "centralized" configuration file above.<br> - All/most bsdinstall variables with extensions.<br> - All/most bsdinstall configuration files (or compliant solutions).<br><br>* A menu to select bsdinstall or this installer at start-up.<br><br>* Extras & TBD. sade extensions (feature request), pkgbase, and so on.<br><br><br>(I'll create a git repository and a wiki page with the Roadmap. The plan is<br>detaching bsdinstall from bsdconfig, then rewriting the scripts in lua.)<br><br>Again, to avoid any misunderstanding: this is a personal project, bsdinstall<br>will not be touched. I plan 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>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAPJrGM0Ua9bTRFqvGRk_r%2B_BPX-tapHWGCcR%2BxR16sPQO3zVjA>
