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> --- archinstall/lib/profile/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 archinstall/lib/profile/__init__.py (limited to 'archinstall/lib/profile/__init__.py') diff --git a/archinstall/lib/profile/__init__.py b/archinstall/lib/profile/__init__.py new file mode 100644 index 00000000..e69de29b -- cgit v1.2.3-54-g00ecf From 2d06cf592a15e69911ffa82e7d86d832bf8ca89c Mon Sep 17 00:00:00 2001 From: Daniel Girtler Date: Thu, 4 May 2023 00:37:55 +1000 Subject: Fix 1772 (#1773) Co-authored-by: Daniel Girtler --- archinstall/lib/models/network_configuration.py | 13 +++++++++---- archinstall/lib/profile/__init__.py | 3 +++ archinstall/scripts/guided.py | 5 ++++- archinstall/scripts/swiss.py | 5 ++++- examples/interactive_installation.py | 5 ++++- 5 files changed, 24 insertions(+), 7 deletions(-) (limited to 'archinstall/lib/profile/__init__.py') diff --git a/archinstall/lib/models/network_configuration.py b/archinstall/lib/models/network_configuration.py index 66230e24..a8795fc1 100644 --- a/archinstall/lib/models/network_configuration.py +++ b/archinstall/lib/models/network_configuration.py @@ -6,7 +6,7 @@ from enum import Enum from typing import List, Optional, Dict, Union, Any, TYPE_CHECKING, Tuple from ..output import log -from ..storage import storage +from ..profile import ProfileConfiguration if TYPE_CHECKING: _: Any @@ -103,7 +103,11 @@ class NetworkConfigurationHandler: def configuration(self): return self._configuration - def config_installer(self, installation: Any): + def config_installer( + self, + installation: Any, + profile_config: Optional[ProfileConfiguration] = None + ): if self._configuration is None: return @@ -122,8 +126,9 @@ class NetworkConfigurationHandler: ) elif self._configuration.is_network_manager(): installation.add_additional_packages(["networkmanager"]) - if (profile := storage['arguments'].get('profile_config')) and profile.is_desktop_type_profile: - installation.add_additional_packages(["network-manager-applet"]) + if profile_config and profile_config.profile: + if profile_config.profile.is_desktop_type_profile(): + installation.add_additional_packages(["network-manager-applet"]) installation.enable_service('NetworkManager.service') def _parse_manual_config(self, configs: List[Dict[str, Any]]) -> Optional[List[NetworkConfiguration]]: diff --git a/archinstall/lib/profile/__init__.py b/archinstall/lib/profile/__init__.py index e69de29b..6e74b0d8 100644 --- a/archinstall/lib/profile/__init__.py +++ b/archinstall/lib/profile/__init__.py @@ -0,0 +1,3 @@ +from .profile_menu import ProfileMenu, select_greeter, select_profile +from .profiles_handler import profile_handler +from .profile_model import ProfileConfiguration diff --git a/archinstall/scripts/guided.py b/archinstall/scripts/guided.py index 48d141b7..6419c1dc 100644 --- a/archinstall/scripts/guided.py +++ b/archinstall/scripts/guided.py @@ -181,7 +181,10 @@ def perform_installation(mountpoint: Path): if network_config: handler = NetworkConfigurationHandler(network_config) - handler.config_installer(installation) + handler.config_installer( + installation, + archinstall.arguments.get('profile_config', None) + ) if archinstall.arguments.get('packages', None) and archinstall.arguments.get('packages', None)[0] != '': installation.add_additional_packages(archinstall.arguments.get('packages', None)) diff --git a/archinstall/scripts/swiss.py b/archinstall/scripts/swiss.py index 34e4c022..2712807a 100644 --- a/archinstall/scripts/swiss.py +++ b/archinstall/scripts/swiss.py @@ -236,7 +236,10 @@ def perform_installation(mountpoint: Path, exec_mode: ExecutionMode): if network_config: handler = models.NetworkConfigurationHandler(network_config) - handler.config_installer(installation) + handler.config_installer( + installation, + archinstall.arguments.get('profile_config', None) + ) if archinstall.arguments.get('packages', None) and archinstall.arguments.get('packages', None)[0] != '': installation.add_additional_packages(archinstall.arguments.get('packages', [])) diff --git a/examples/interactive_installation.py b/examples/interactive_installation.py index f72f110b..8b4e393f 100644 --- a/examples/interactive_installation.py +++ b/examples/interactive_installation.py @@ -144,7 +144,10 @@ def perform_installation(mountpoint: Path): if network_config: handler = NetworkConfigurationHandler(network_config) - handler.config_installer(installation) + handler.config_installer( + installation, + archinstall.arguments.get('profile_config', None) + ) if archinstall.arguments.get('packages', None) and archinstall.arguments.get('packages', None)[0] != '': installation.add_additional_packages(archinstall.arguments.get('packages', [])) -- cgit v1.2.3-54-g00ecf