From 00b0ae7ba439a5a420095175b3bedd52c569db51 Mon Sep 17 00:00:00 2001 From: Daniel Girtler Date: Wed, 19 Apr 2023 20:55:42 +1000 Subject: PyParted and a large rewrite of the underlying partitioning (#1604) * Invert mypy files * Add optional pre-commit hooks * New profile structure * Serialize profiles * Use profile instead of classmethod * Custom profile setup * Separator between back * Support profile import via url * Move profiles module * Refactor files * Remove symlink * Add user to docker group * Update schema description * Handle list services * mypy fixes * mypy fixes * Rename profilesv2 to profiles * flake8 * mypy again * Support selecting DM * Fix mypy * Cleanup * Update greeter setting * Update schema * Revert toml changes * Poc external dependencies * Dependency support * New encryption menu * flake8 * Mypy and flake8 * Unify lsblk command * Update bootloader configuration * Git hooks * Fix import * Pyparted * Remove custom font setting * flake8 * Remove default preview * Manual partitioning menu * Update structure * Disk configuration * Update filesystem * luks2 encryption * Everything works until installation * Btrfsutil * Btrfs handling * Update btrfs * Save encryption config * Fix pipewire issue * Update mypy version * Update all pre-commit * Update package versions * Revert audio/pipewire * Merge master PRs * Add master changes * Merge master changes * Small renaming * Pull master changes * Reset disk enc after disk config change * Generate locals * Update naming * Fix imports * Fix broken sync * Fix pre selection on table menu * Profile menu * Update profile * Fix post_install * Added python-pyparted to PKGBUILD, this requires [testing] to be enabled in order to run makepkg. Package still works via python -m build etc. * Swaped around some setuptools logic in pyproject Since we define `package-data` and `packages` there should be no need for: ``` [tool.setuptools.packages.find] where = ["archinstall", "archinstall.*"] ``` * Removed pyproject collisions. Duplicate definitions. * Made sure pyproject.toml includes languages * Add example and update README * Fix pyproject issues * Generate locale * Refactor imports * Simplify imports * Add profile description and package examples * Align code * Fix mypy * Simplify imports * Fix saving config * Fix wrong luks merge * Refactor installation * Fix cdrom device loading * Fix wrongly merged code * Fix imports and greeter * Don't terminate on partprobe error * Use specific path on partprobe from luks * Update archinstall/lib/disk/device_model.py Co-authored-by: codefiles <11915375+codefiles@users.noreply.github.com> * Update archinstall/lib/disk/device_model.py Co-authored-by: codefiles <11915375+codefiles@users.noreply.github.com> * Update github workflow to test archinstall installation * Update sway merge * Generate locales * Update workflow --------- Co-authored-by: Daniel Girtler Co-authored-by: Anton Hvornum Co-authored-by: Anton Hvornum Co-authored-by: codefiles <11915375+codefiles@users.noreply.github.com> --- schema.json | 111 +++++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 77 insertions(+), 34 deletions(-) (limited to 'schema.json') diff --git a/schema.json b/schema.json index 9269e8e8..0a41ebf0 100644 --- a/schema.json +++ b/schema.json @@ -37,17 +37,6 @@ "type": "string" } }, - "gfx_driver": { - "description": "Graphics Drivers to install if a desktop profile is used, ignored otherwise.", - "type": "string", - "enum": [ - "VMware / VirtualBox (open-source)", - "Nvidia", - "Intel (open-source)", - "AMD / ATI (open-source)", - "All open-source (default)" - ] - }, "harddrives": { "description": "Path of device to be used", "type": "array", @@ -110,29 +99,83 @@ } }, "profile": { - "description": "Profiles are present in profiles/, use the name of a profile to install it", - "type": "string", - "enum": [ - "awesome", - "bspwm", - "budgie", - "cinnamon", - "cutefish", - "deepin", - "desktop", - "enlightenment", - "gnome", - "i3", - "kde", - "lxqt", - "mate", - "minimal", - "server", - "sway", - "xfce4", - "xorg", - "qtile" - ] + "path": { + "description": "Local path or Url that points to a python file containing profile definitions", + "type": "string" + }, + "main": { + "description": "Main top level profile selection", + "type": "string", + "enum": [ + "desktop", + "minimal", + "server", + "xorg", + "custom" + ] + }, + "details": { + "description": "Specific profile to be installed based on the 'main' selection; these profiles are present in profiles_v2/, use the name of a profile to install it (case insensitive)", + "type": "string", + "enum": [ + "awesome", + "bspwm", + "budgie", + "cinnamon", + "cutefish", + "deepin", + "desktop", + "enlightenment", + "gnome", + "i3-wm", + "i3-gasp", + "kde", + "lxqt", + "mate", + "sway", + "xfce4", + "qtile", + "cockpit", + "docker", + "httpd", + "lighttpd", + "mariadb", + "nginx", + "postgresql", + "sshd", + "tomcat" + ] + }, + "custom": { + "description": "Specific profile definitions for custom setup profiles)", + "type": "array", + "items": { + "type": "object", + "properties": { + "packages": "string", + "services": "string", + "enabled": "boolean" + } + } + }, + "gfx_driver": { + "description": "Graphics Drivers to install if a desktop profile is used, ignored otherwise.", + "type": "string", + "enum": [ + "VMware / VirtualBox (open-source)", + "Intel (open-source)", + "AMD / ATI (open-source)", + "All open-source (default)", + "Nvidia (open kernel module for newer GPUs, Turing+)", + "Nvidia (open-source nouveau driver)", + "Nvidia (proprietary)" + ] + }, + "greeter_type": { + "description": "Greeter type to install if a desktop profile is used, ignored otherwise.", + "type": "string", + "enum": ["lightdm", "sddm", "gdm"] + } }, "services": { "description": "Services to enable post-installation", -- cgit v1.2.3-54-g00ecf