Merge remote-tracking branch 'archlinux/master' into continuous-integration
This commit is contained in:
commit
3cec44463f
|
|
@ -199,9 +199,9 @@ class Partition():
|
|||
mount_repr = f", rel_mountpoint={self.target_mountpoint}"
|
||||
|
||||
if self._encrypted:
|
||||
return f'Partition(path={self.path}, real_device={self.real_device}, fs={self.filesystem}{mount_repr})'
|
||||
return f'Partition(path={self.path}, size={self.size}, real_device={self.real_device}, fs={self.filesystem}{mount_repr})'
|
||||
else:
|
||||
return f'Partition(path={self.path}, fs={self.filesystem}{mount_repr})'
|
||||
return f'Partition(path={self.path}, size={self.size}, fs={self.filesystem}{mount_repr})'
|
||||
|
||||
@property
|
||||
def uuid(self) -> str:
|
||||
|
|
|
|||
|
|
@ -18,4 +18,6 @@ class HardwareIncompatibilityError(BaseException):
|
|||
class PermissionError(BaseException):
|
||||
pass
|
||||
class UserError(BaseException):
|
||||
pass
|
||||
class ServiceException(BaseException):
|
||||
pass
|
||||
|
|
@ -178,9 +178,11 @@ class Installer():
|
|||
if self.enable_service('ntpd'):
|
||||
return True
|
||||
|
||||
def enable_service(self, service):
|
||||
self.log(f'Enabling service {service}', level=LOG_LEVELS.Info)
|
||||
return self.arch_chroot(f'systemctl enable {service}').exit_code == 0
|
||||
def enable_service(self, *services):
|
||||
for service in services:
|
||||
self.log(f'Enabling service {service}', level=LOG_LEVELS.Info)
|
||||
if (output := self.arch_chroot(f'systemctl enable {service}')).exit_code != 0:
|
||||
raise ServiceException(f"Unable to start service {service}: {output}")
|
||||
|
||||
def run_command(self, cmd, *args, **kwargs):
|
||||
return sys_command(f'/usr/bin/arch-chroot {self.target} {cmd}')
|
||||
|
|
@ -245,14 +247,12 @@ class Installer():
|
|||
# If we haven't installed the base yet (function called pre-maturely)
|
||||
if self.helper_flags.get('base', False) is False:
|
||||
def post_install_enable_networkd_resolved(*args, **kwargs):
|
||||
self.enable_service('systemd-networkd')
|
||||
self.enable_service('systemd-resolved')
|
||||
|
||||
self.enable_service('systemd-networkd', 'systemd-resolved')
|
||||
self.post_base_install.append(post_install_enable_networkd_resolved)
|
||||
# Otherwise, we can go ahead and enable the services
|
||||
else:
|
||||
self.enable_service('systemd-networkd')
|
||||
self.enable_service('systemd-resolved')
|
||||
self.enable_service('systemd-networkd', 'systemd-resolved')
|
||||
|
||||
|
||||
return True
|
||||
|
||||
|
|
|
|||
|
|
@ -91,3 +91,13 @@ Exceptions
|
|||
.. autofunction:: archinstall.ProfileError
|
||||
|
||||
.. autofunction:: archinstall.SysCallError
|
||||
|
||||
.. autofunction:: archinstall.ProfileNotFound
|
||||
|
||||
.. autofunction:: archinstall.HardwareIncompatibilityError
|
||||
|
||||
.. autofunction:: archinstall.PermissionError
|
||||
|
||||
.. autofunction:: archinstall.UserError
|
||||
|
||||
.. autofunction:: archinstall.ServiceException
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
import archinstall
|
||||
|
||||
installation.add_additional_packages("mate mate-extra lightdm lightdm-gtk-greeter")
|
||||
|
|
@ -16,7 +16,7 @@ def _prep_function(*args, **kwargs):
|
|||
for more input before any other installer steps start.
|
||||
"""
|
||||
|
||||
supported_desktops = ['gnome', 'kde', 'awesome', 'sway', 'cinnamon', 'xfce4', 'lxqt', 'i3', 'budgie']
|
||||
supported_desktops = ['gnome', 'kde', 'awesome', 'sway', 'cinnamon', 'xfce4', 'lxqt', 'i3', 'budgie', 'mate']
|
||||
desktop = archinstall.generic_select(supported_desktops, 'Select your desired desktop environment: ')
|
||||
|
||||
# Temporarily store the selected desktop profile
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
# A desktop environment using "MATE"
|
||||
|
||||
import archinstall
|
||||
|
||||
is_top_level_profile = False
|
||||
|
||||
def _prep_function(*args, **kwargs):
|
||||
"""
|
||||
Magic function called by the importing installer
|
||||
before continuing any further. It also avoids executing any
|
||||
other code in this stage. So it's a safe way to ask the user
|
||||
for more input before any other installer steps start.
|
||||
"""
|
||||
|
||||
# MATE requires a functional xorg installation.
|
||||
profile = archinstall.Profile(None, 'xorg')
|
||||
with profile.load_instructions(namespace='xorg.py') as imported:
|
||||
if hasattr(imported, '_prep_function'):
|
||||
return imported._prep_function()
|
||||
else:
|
||||
print('Deprecated (??): xorg profile has no _prep_function() anymore')
|
||||
|
||||
# Ensures that this code only gets executed if executed
|
||||
# through importlib.util.spec_from_file_location("mate", "/somewhere/mate.py")
|
||||
# or through conventional import mate
|
||||
if __name__ == 'mate':
|
||||
# Install dependency profiles
|
||||
installation.install_profile('xorg')
|
||||
|
||||
# Install the application mate from the template under /applications/
|
||||
mate = archinstall.Application(installation, 'mate')
|
||||
mate.install()
|
||||
|
||||
installation.enable_service('lightdm') # Light Display Manager
|
||||
Loading…
Reference in New Issue