From nobody Tue Jul 09 14:51:31 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4WJP8k5mcDz5QWp3 for ; Tue, 09 Jul 2024 14:52:06 +0000 (UTC) (envelope-from alfix86@gmail.com) Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com [IPv6:2607:f8b0:4864:20::62d]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WJP8j42RWz4QVJ for ; Tue, 9 Jul 2024 14:52:05 +0000 (UTC) (envelope-from alfix86@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20230601 header.b=J+9HjPpv; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of alfix86@gmail.com designates 2607:f8b0:4864:20::62d as permitted sender) smtp.mailfrom=alfix86@gmail.com Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-1f4c7b022f8so37084195ad.1 for ; Tue, 09 Jul 2024 07:52:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1720536724; x=1721141524; darn=freebsd.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=uKqYG3zNxnMMNwu+pq6SEDlJN8I7pdZIG0/ct2s9hg8=; b=J+9HjPpvHGEHieOQ0NLIHsQjH+REuJUPLPkZ5xA9BXCXqRKw2r/2wNSVPXTzTc0x2s CWxIr5xSLjAEqDYvRo6FL5GT3bl3/nfnpoHobNy2dtBgLgVgwzU/FIoUtTPXWSjilx9A fLadfGDLX2HqdedIeHPpbuZSh4SKV7myhwXWuWk/2pDpfyQFNQjUtrZJLLYHmbvyoA5b SoQUHm5Rijvqw8BS0xTw6SdK+ChG9w8OH2U+/5ijlMxtauOKqBj8yH5l17Mg+GL30yGw FvnXXCJJ8v/LBw540mhy/lo8ODNZScH55peSNofFEl9wNe8LO45pLRZxnjsLdBecxaMH 4T4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720536724; x=1721141524; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=uKqYG3zNxnMMNwu+pq6SEDlJN8I7pdZIG0/ct2s9hg8=; b=FWopo6gwo9PdQ0ZwWlCalA2P//mN1ry3MwLLf7rMSRgGXOE4H39zXBqkFYpYmHhtGW 0myCFHRup8vW8mwz24Br71mLKr18WYQa7IBROh/V6vNd/Sti5GxYK0xjLW4EOasxkR9y gXo/O5gcGnqqsOjgYyoCeh/11q3D/j2Fz6ZmEM+sIOjSfp8JCkymhbCpWCFCP9U/TIrs snBSPlPHxw2mbzjEUxo6S7zw9ClKggr1JBWjAeYiWfagcW2gDhETuSWP/BkbtGAnvClv nrcj3h5pzrlEg55oWt8KebVW3vf8MepmJeXeq8TE+t0CpIpCi2rWSKe7ypamMfEDSRSS rbiA== X-Gm-Message-State: AOJu0YzG+A8tbFy1ecinqFEcfiQ1c3wZiXwiBHQXN6yhZC2OUCSzewom OpHLifFxig/mCyk7BP1qwVIejOjklpg1XSXwBvf5R+O5Ga6tfVI/gvWcvbt1YUHj6gURKMaXoa8 JlDAuLvuX+Il+C1lbhLtqV3MX0DGjdIyy X-Google-Smtp-Source: AGHT+IFlYMQ5aFng8ksztiVCU4lVKUOVeBzsJmXWHh7tleHzNMV9LuikT39VHIbfowilx0sr6g8HH9KPT5gbR+bsAR4= X-Received: by 2002:a17:90a:16cf:b0:2c9:61f9:a148 with SMTP id 98e67ed59e1d1-2ca35d54a36mr2213541a91.48.1720536702545; Tue, 09 Jul 2024 07:51:42 -0700 (PDT) List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 From: Alfonso Sabato Siciliano Date: Tue, 9 Jul 2024 16:51:31 +0200 Message-ID: Subject: Personal Installer To: FreeBSD Hackers Content-Type: multipart/alternative; boundary="000000000000fa7c94061cd1aaca" X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.93 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-0.999]; NEURAL_HAM_SHORT(-0.93)[-0.932]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20230601]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; TO_DN_ALL(0.00)[]; RCVD_TLS_LAST(0.00)[]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; RCPT_COUNT_ONE(0.00)[1]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; FREEMAIL_FROM(0.00)[gmail.com]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MISSING_XM_UA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; FROM_EQ_ENVFROM(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; MID_RHS_MATCH_FROMTLD(0.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; RCVD_COUNT_ONE(0.00)[1]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::62d:from] X-Rspamd-Queue-Id: 4WJP8j42RWz4QVJ --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
Hello,

I am going to write an installer *for me*. O= f course it will be open source.
Perhaps it can be useful for others: ti= ps, new ideas, and collaborations are
welcome. I know others have someth= ing in progress, if we match some requirements
we can share some compone= nts/code.

Some project choices and requirements:

* Guidelines= : simple, modularized and extendable.

* Server (backend) side writte= n in lua, modularized in scripts. Independent of
=C2=A0 any frontend.
* A configuration file with variables, hooks, comments and examples.
* Multi-mode installation: Automatic, Simple, and Expert.

* Cl= ient (Graphic) side responsible only for drawing dialogs/windows.

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

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

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

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

* Multi installation process:<= br>=C2=A0- Synchronous. The server waits the user input from the dialog, th= en it
=C2=A0 =C2=A0performs the "command".
=C2=A0- 2-steps.= Frontend writes the user input to files. When the frontend finishes
=C2= =A0 =C2=A0(showing all the dialogs) the server performs the actual installa= tion by
=C2=A0 =C2=A0reading files.
=C2=A0- Noninteractive. No user a= ctions, server reads previously written files.
=C2=A0- TBD a mix of the = above.

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

* Logging and debug features similar to bsdinstall= with extensions.

* Provide bsdinstall variables and configuration f= iles. Ideally these features
=C2=A0 will be placed in the "centrali= zed" configuration file above.
=C2=A0- All/most bsdinstall variable= s with extensions.
=C2=A0- All/most bsdinstall configuration files (or c= ompliant 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 wik= i page with the Roadmap. The plan is
detaching bsdinstall from bsdconfig= , then rewriting the scripts in lua.)

Again, to avoid any misunderst= anding: this is a personal project, bsdinstall
will not be touched. I pl= an 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--