Merge branch 'master' of github.com:archlinux/archinstall into mypy-workflow
This commit is contained in:
commit
e8d241ec96
|
|
@ -57,6 +57,12 @@ class Installer():
|
|||
storage['session'] = self
|
||||
self.partitions = get_partitions_in_use(self.target)
|
||||
|
||||
self.MODULES = []
|
||||
self.BINARIES = []
|
||||
self.FILES = []
|
||||
self.HOOKS = ["base", "udev", "autodetect", "keyboard", "keymap", "modconf", "block", "filesystems", "fsck"]
|
||||
self.KERNEL_PARAMS = []
|
||||
|
||||
def log(self, *args, level=logging.DEBUG, **kwargs):
|
||||
"""
|
||||
installer.log() wraps output.log() mainly to set a default log-level for this install session.
|
||||
|
|
@ -278,16 +284,21 @@ class Installer():
|
|||
|
||||
return False
|
||||
|
||||
def mkinitcpio(self, *flags):
|
||||
with open(f'{self.target}/etc/mkinitcpio.conf', 'w') as mkinit:
|
||||
mkinit.write(f"MODULES=({' '.join(self.MODULES)})\n")
|
||||
mkinit.write(f"BINARIES=({' '.join(self.BINARIES)})\n")
|
||||
mkinit.write(f"FILES=({' '.join(self.FILES)})\n")
|
||||
mkinit.write(f"HOOKS=({' '.join(self.HOOKS)})\n")
|
||||
sys_command(f'/usr/bin/arch-chroot {self.target} mkinitcpio {" ".join(flags)}')
|
||||
|
||||
def minimal_installation(self):
|
||||
## Add necessary packages if encrypting the drive
|
||||
## (encrypted partitions default to btrfs for now, so we need btrfs-progs)
|
||||
## TODO: Perhaps this should be living in the function which dictates
|
||||
## the partitioning. Leaving here for now.
|
||||
|
||||
MODULES = []
|
||||
BINARIES = []
|
||||
FILES = []
|
||||
HOOKS = ["base", "udev", "autodetect", "keyboard", "keymap", "modconf", "block", "filesystems", "fsck"]
|
||||
|
||||
|
||||
for partition in self.partitions:
|
||||
if partition.filesystem == 'btrfs':
|
||||
|
|
@ -300,21 +311,18 @@ class Installer():
|
|||
|
||||
# Configure mkinitcpio to handle some specific use cases.
|
||||
if partition.filesystem == 'btrfs':
|
||||
if 'btrfs' not in MODULES:
|
||||
MODULES.append('btrfs')
|
||||
if '/usr/bin/btrfs-progs' not in BINARIES:
|
||||
BINARIES.append('/usr/bin/btrfs')
|
||||
if 'btrfs' not in self.MODULES:
|
||||
self.MODULES.append('btrfs')
|
||||
if '/usr/bin/btrfs-progs' not in self.BINARIES:
|
||||
self.BINARIES.append('/usr/bin/btrfs')
|
||||
|
||||
if self.detect_encryption(partition):
|
||||
if 'encrypt' not in HOOKS:
|
||||
HOOKS.insert(HOOKS.index('filesystems'), 'encrypt')
|
||||
if 'encrypt' not in self.HOOKS:
|
||||
self.HOOKS.insert(self.HOOKS.index('filesystems'), 'encrypt')
|
||||
|
||||
if not(hasUEFI()): # TODO: Allow for grub even on EFI
|
||||
if not(hasUEFI()):
|
||||
self.base_packages.append('grub')
|
||||
|
||||
self.pacstrap(self.base_packages)
|
||||
self.helper_flags['base-strapped'] = True
|
||||
#self.genfstab()
|
||||
if not isVM():
|
||||
vendor = cpuVendor()
|
||||
if vendor == "AuthenticAMD":
|
||||
|
|
@ -323,6 +331,10 @@ class Installer():
|
|||
self.base_packages.append("intel-ucode")
|
||||
else:
|
||||
self.log("Unknown cpu vendor not installing ucode")
|
||||
|
||||
self.pacstrap(self.base_packages)
|
||||
self.helper_flags['base-strapped'] = True
|
||||
|
||||
with open(f"{self.target}/etc/fstab", "a") as fstab:
|
||||
fstab.write(
|
||||
"\ntmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0\n"
|
||||
|
|
@ -338,12 +350,7 @@ class Installer():
|
|||
# TODO: Use python functions for this
|
||||
sys_command(f'/usr/bin/arch-chroot {self.target} chmod 700 /root')
|
||||
|
||||
with open(f'{self.target}/etc/mkinitcpio.conf', 'w') as mkinit:
|
||||
mkinit.write(f"MODULES=({' '.join(MODULES)})\n")
|
||||
mkinit.write(f"BINARIES=({' '.join(BINARIES)})\n")
|
||||
mkinit.write(f"FILES=({' '.join(FILES)})\n")
|
||||
mkinit.write(f"HOOKS=({' '.join(HOOKS)})\n")
|
||||
sys_command(f'/usr/bin/arch-chroot {self.target} mkinitcpio -P')
|
||||
self.mkinitcpio('-P')
|
||||
|
||||
self.helper_flags['base'] = True
|
||||
|
||||
|
|
@ -375,7 +382,9 @@ class Installer():
|
|||
# And in which case we should do some clean up.
|
||||
|
||||
# Install the boot loader
|
||||
sys_command(f'/usr/bin/arch-chroot {self.target} bootctl --no-variables --path=/boot install')
|
||||
if sys_command(f'/usr/bin/arch-chroot {self.target} bootctl --path=/boot install').exit_code != 0:
|
||||
# Fallback, try creating the boot loader without touching the EFI variables
|
||||
sys_command(f'/usr/bin/arch-chroot {self.target} bootctl --no-variables --path=/boot install')
|
||||
|
||||
# Modify or create a loader.conf
|
||||
if os.path.isfile(f'{self.target}/boot/loader/loader.conf'):
|
||||
|
|
@ -391,8 +400,11 @@ class Installer():
|
|||
for line in loader_data:
|
||||
if line[:8] == 'default ':
|
||||
loader.write(f'default {self.init_time}\n')
|
||||
elif line[:8] == '#timeout' and 'timeout 5' not in loader_data:
|
||||
# We add in the default timeout to support dual-boot
|
||||
loader.write(f"{line[1:]}\n")
|
||||
else:
|
||||
loader.write(f"{line}")
|
||||
loader.write(f"{line}\n")
|
||||
|
||||
## For some reason, blkid and /dev/disk/by-uuid are not getting along well.
|
||||
## And blkid is wrong in terms of LUKS.
|
||||
|
|
@ -420,10 +432,10 @@ class Installer():
|
|||
# TODO: We need to detect if the encrypted device is a whole disk encryption,
|
||||
# or simply a partition encryption. Right now we assume it's a partition (and we always have)
|
||||
log(f"Identifying root partition by PART-UUID on {real_device}: '{real_device.uuid}'.", level=logging.DEBUG)
|
||||
entry.write(f'options cryptdevice=PARTUUID={real_device.uuid}:luksdev root=/dev/mapper/luksdev rw intel_pstate=no_hwp\n')
|
||||
entry.write(f'options cryptdevice=PARTUUID={real_device.uuid}:luksdev root=/dev/mapper/luksdev rw intel_pstate=no_hwp {" ".join(self.KERNEL_PARAMS)}\n')
|
||||
else:
|
||||
log(f"Identifying root partition by PART-UUID on {root_partition}, looking for '{root_partition.uuid}'.", level=logging.DEBUG)
|
||||
entry.write(f'options root=PARTUUID={root_partition.uuid} rw intel_pstate=no_hwp\n')
|
||||
entry.write(f'options root=PARTUUID={root_partition.uuid} rw intel_pstate=no_hwp {" ".join(self.KERNEL_PARAMS)}\n')
|
||||
|
||||
self.helper_flags['bootloader'] = bootloader
|
||||
return True
|
||||
|
|
@ -452,14 +464,7 @@ class Installer():
|
|||
return self.pacstrap(*packages)
|
||||
|
||||
def install_profile(self, profile):
|
||||
# TODO: Replace this with a import archinstall.session instead in the profiles.
|
||||
# The tricky thing with doing the import archinstall.session instead is that
|
||||
# profiles might be run from a different chroot, and there's no way we can
|
||||
# guarantee file-path safety when accessing the installer object that way.
|
||||
# Doing the __builtins__ replacement, ensures that the global variable "installation"
|
||||
# is always kept up to date. It's considered a nasty hack - but it's a safe way
|
||||
# of ensuring 100% accuracy of archinstall session variables.
|
||||
__builtins__['installation'] = self
|
||||
storage['installation_session'] = self
|
||||
|
||||
if type(profile) == str:
|
||||
profile = Profile(self, profile)
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@ def list_profiles(filter_irrelevant_macs=True, subpath='', filter_top_level_prof
|
|||
for PATH_ITEM in storage['PROFILE_PATH']:
|
||||
for root, folders, files in os.walk(os.path.abspath(os.path.expanduser(PATH_ITEM+subpath))):
|
||||
for file in files:
|
||||
if file == '__init__.py':
|
||||
continue
|
||||
if os.path.splitext(file)[1] == '.py':
|
||||
tailored = False
|
||||
if len(mac := re.findall('(([a-zA-z0-9]{2}[-:]){5}([a-zA-z0-9]{2}))', file)):
|
||||
|
|
@ -36,7 +38,7 @@ def list_profiles(filter_irrelevant_macs=True, subpath='', filter_top_level_prof
|
|||
description = ''
|
||||
with open(os.path.join(root, file), 'r') as fh:
|
||||
first_line = fh.readline()
|
||||
if first_line[0] == '#':
|
||||
if len(first_line) and first_line[0] == '#':
|
||||
description = first_line[1:].strip()
|
||||
|
||||
cache[file[:-3]] = {'path' : os.path.join(root, file), 'description' : description, 'tailored' : tailored}
|
||||
|
|
|
|||
|
|
@ -283,8 +283,6 @@ def perform_installation_steps():
|
|||
partition.format()
|
||||
else:
|
||||
archinstall.log(f"Did not format {partition} because .safe_to_format() returned False or .allow_formatting was False.", level=logging.DEBUG)
|
||||
if hasUEFI():
|
||||
fs.find_partition('/boot').format('vfat')# we don't have a boot partition in bios mode
|
||||
|
||||
if archinstall.arguments.get('!encryption-password', None):
|
||||
# First encrypt and unlock, then format the desired partition inside the encrypted part.
|
||||
|
|
@ -294,8 +292,8 @@ def perform_installation_steps():
|
|||
unlocked_device.format(fs.find_partition('/').filesystem)
|
||||
unlocked_device.mount('/mnt')
|
||||
else:
|
||||
fs.find_partition('/').format(fs.find_partition('/').filesystem)
|
||||
fs.find_partition('/').mount('/mnt')
|
||||
|
||||
if hasUEFI():
|
||||
fs.find_partition('/boot').mount('/mnt/boot')
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import urllib.request
|
|||
__packages__ = ['nano', 'wget', 'git']
|
||||
|
||||
if __name__ == '52-54-00-12-34-56':
|
||||
awesome = archinstall.Application(installation, 'postgresql')
|
||||
awesome = archinstall.Application(archinstall.storage['installation_session'], 'postgresql')
|
||||
awesome.install()
|
||||
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@ import archinstall
|
|||
|
||||
__packages__ = ["awesome", "xorg-xrandr", "xterm", "feh", "slock", "terminus-font", "gnu-free-fonts", "ttf-liberation", "xsel"]
|
||||
|
||||
installation.install_profile('xorg')
|
||||
archinstall.storage['installation_session'].install_profile('xorg')
|
||||
|
||||
installation.add_additional_packages(__packages__)
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__)
|
||||
|
||||
with open(f'{installation.target}/etc/X11/xinit/xinitrc', 'r') as xinitrc:
|
||||
with open(f"{archinstall.storage['installation_session'].target}/etc/X11/xinit/xinitrc", 'r') as xinitrc:
|
||||
xinitrc_data = xinitrc.read()
|
||||
|
||||
for line in xinitrc_data.split('\n'):
|
||||
|
|
@ -20,5 +20,5 @@ for line in xinitrc_data.split('\n'):
|
|||
xinitrc_data += '\n'
|
||||
xinitrc_data += 'exec awesome\n'
|
||||
|
||||
with open(f'{installation.target}/etc/X11/xinit/xinitrc', 'w') as xinitrc:
|
||||
with open(f"{archinstall.storage['installation_session'].target}/etc/X11/xinit/xinitrc", 'w') as xinitrc:
|
||||
xinitrc.write(xinitrc_data)
|
||||
|
|
|
|||
|
|
@ -4,6 +4,6 @@ import archinstall
|
|||
# which packages will be installed by this profile
|
||||
__packages__ = ["cockpit", "udisks2", "packagekit"]
|
||||
|
||||
installation.add_additional_packages(__packages__)
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__)
|
||||
|
||||
installation.enable_service('cockpit.socket')
|
||||
archinstall.storage['installation_session'].enable_service('cockpit.socket')
|
||||
|
|
|
|||
|
|
@ -4,6 +4,6 @@ import archinstall
|
|||
# which packages will be installed by this profile
|
||||
__packages__ = ["docker"]
|
||||
|
||||
installation.add_additional_packages(__packages__)
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__)
|
||||
|
||||
installation.enable_service('docker')
|
||||
archinstall.storage['installation_session'].enable_service('docker')
|
||||
|
|
|
|||
|
|
@ -4,6 +4,6 @@ import archinstall
|
|||
# which packages will be installed by this profile
|
||||
__packages__ = ["apache"]
|
||||
|
||||
installation.add_additional_packages(__packages__)
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__)
|
||||
|
||||
installation.enable_service('httpd')
|
||||
archinstall.storage['installation_session'].enable_service('httpd')
|
||||
|
|
|
|||
|
|
@ -4,6 +4,6 @@ import archinstall
|
|||
# which packages will be installed by this profile
|
||||
__packages__ = ["lighttpd"]
|
||||
|
||||
installation.add_additional_packages(__packages__)
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__)
|
||||
|
||||
installation.enable_service('lighttpd')
|
||||
archinstall.storage['installation_session'].enable_service('lighttpd')
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ import archinstall
|
|||
# which packages will be installed by this profile
|
||||
__packages__ = ["mariadb"]
|
||||
|
||||
installation.add_additional_packages(__packages__)
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__)
|
||||
|
||||
installation.arch_chroot("mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql")
|
||||
archinstall.storage['installation_session'].arch_chroot("mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql")
|
||||
|
||||
installation.enable_service('mariadb')
|
||||
archinstall.storage['installation_session'].enable_service('mariadb')
|
||||
|
|
|
|||
|
|
@ -4,6 +4,6 @@ import archinstall
|
|||
# which packages will be installed by this profile
|
||||
__packages__ = ["nginx"]
|
||||
|
||||
installation.add_additional_packages(__packages__)
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__)
|
||||
|
||||
installation.enable_service('nginx')
|
||||
archinstall.storage['installation_session'].enable_service('nginx')
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ import archinstall
|
|||
# which packages will be installed by this profile
|
||||
__packages__ = ["postgresql"]
|
||||
|
||||
installation.add_additional_packages(__packages__)
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__)
|
||||
|
||||
installation.arch_chroot("initdb -D /var/lib/postgres/data", runas='postgres')
|
||||
archinstall.storage['installation_session'].arch_chroot("initdb -D /var/lib/postgres/data", runas='postgres')
|
||||
|
||||
installation.enable_service('postgresql')
|
||||
archinstall.storage['installation_session'].enable_service('postgresql')
|
||||
|
|
@ -4,6 +4,6 @@ import archinstall
|
|||
# which packages will be installed by this profile
|
||||
__packages__ = ["openssh"]
|
||||
|
||||
installation.add_additional_packages(__packages__)
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__)
|
||||
|
||||
installation.enable_service('sshd')
|
||||
archinstall.storage['installation_session'].enable_service('sshd')
|
||||
|
|
|
|||
|
|
@ -7,6 +7,6 @@ import archinstall
|
|||
# which packages will be installed by this profile
|
||||
__packages__ = ["tomcat10"]
|
||||
|
||||
installation.add_additional_packages(__packages__)
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__)
|
||||
|
||||
installation.enable_service('tomcat10')
|
||||
archinstall.storage['installation_session'].enable_service('tomcat10')
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ is_top_level_profile = False
|
|||
|
||||
# New way of defining packages for a profile, which is iterable and can be used out side
|
||||
# of the profile to get a list of "what packages will be installed".
|
||||
__packages__ = ['nemo', 'gpicview-gtk3', 'main', 'alacritty']
|
||||
__packages__ = ['nemo', 'gpicview', 'main', 'alacritty']
|
||||
|
||||
def _prep_function(*args, **kwargs):
|
||||
"""
|
||||
|
|
@ -30,23 +30,23 @@ def _prep_function(*args, **kwargs):
|
|||
# or through conventional import awesome
|
||||
if __name__ == 'awesome':
|
||||
# Install the application awesome from the template under /applications/
|
||||
awesome = archinstall.Application(installation, 'awesome')
|
||||
awesome = archinstall.Application(archinstall.storage['installation_session'], 'awesome')
|
||||
awesome.install()
|
||||
|
||||
installation.add_additional_packages(__packages__)
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__)
|
||||
|
||||
# TODO: Copy a full configuration to ~/.config/awesome/rc.lua instead.
|
||||
with open(f'{installation.target}/etc/xdg/awesome/rc.lua', 'r') as fh:
|
||||
with open(f"{archinstall.storage['installation_session'].target}/etc/xdg/awesome/rc.lua", 'r') as fh:
|
||||
awesome_lua = fh.read()
|
||||
|
||||
## Replace xterm with alacritty for a smoother experience.
|
||||
awesome_lua = awesome_lua.replace('"xterm"', '"alacritty"')
|
||||
|
||||
with open(f'{installation.target}/etc/xdg/awesome/rc.lua', 'w') as fh:
|
||||
with open(f"{archinstall.storage['installation_session'].target}/etc/xdg/awesome/rc.lua", 'w') as fh:
|
||||
fh.write(awesome_lua)
|
||||
|
||||
## TODO: Configure the right-click-menu to contain the above packages that were installed. (as a user config)
|
||||
|
||||
## Remove some interfering nemo settings
|
||||
installation.arch_chroot("gsettings set org.nemo.desktop show-desktop-icons false")
|
||||
installation.arch_chroot("xdg-mime default nemo.desktop inode/directory application/x-gnome-saved-search")
|
||||
archinstall.storage['installation_session'].arch_chroot("gsettings set org.nemo.desktop show-desktop-icons false")
|
||||
archinstall.storage['installation_session'].arch_chroot("xdg-mime default nemo.desktop inode/directory application/x-gnome-saved-search")
|
||||
|
|
|
|||
|
|
@ -28,9 +28,9 @@ def _prep_function(*args, **kwargs):
|
|||
# or through conventional import budgie
|
||||
if __name__ == 'budgie':
|
||||
# Install dependency profiles
|
||||
installation.install_profile('xorg')
|
||||
archinstall.storage['installation_session'].install_profile('xorg')
|
||||
|
||||
# Install the Budgie packages
|
||||
installation.add_additional_packages(__packages__)
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__)
|
||||
|
||||
installation.enable_service('lightdm') # Light Display Manager
|
||||
archinstall.storage['installation_session'].enable_service('lightdm') # Light Display Manager
|
||||
|
|
|
|||
|
|
@ -27,9 +27,9 @@ def _prep_function(*args, **kwargs):
|
|||
# or through conventional import cinnamon
|
||||
if __name__ == 'cinnamon':
|
||||
# Install dependency profiles
|
||||
installation.install_profile('xorg')
|
||||
archinstall.storage['installation_session'].install_profile('xorg')
|
||||
|
||||
# Install the Cinnamon packages
|
||||
installation.add_additional_packages(__packages__)
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__)
|
||||
|
||||
installation.enable_service('lightdm') # Light Display Manager
|
||||
archinstall.storage['installation_session'].enable_service('lightdm') # Light Display Manager
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import archinstall, os
|
|||
|
||||
is_top_level_profile = False
|
||||
|
||||
__packages__ = ["deepin", "deepin-terminal", "deepin-editor"]
|
||||
__packages__ = ["deepin", "deepin-terminal", "deepin-editor", "lightdm", "lightdm-gtk-greeter"]
|
||||
|
||||
def _prep_function(*args, **kwargs):
|
||||
"""
|
||||
|
|
@ -28,10 +28,10 @@ def _prep_function(*args, **kwargs):
|
|||
# or through conventional import deepin
|
||||
if __name__ == 'deepin':
|
||||
# Install dependency profiles
|
||||
installation.install_profile('xorg')
|
||||
archinstall.storage['installation_session'].install_profile('xorg')
|
||||
|
||||
# Install the Deepin packages
|
||||
installation.add_additional_packages(__packages__)
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__)
|
||||
|
||||
# Enable autostart of Deepin for all users
|
||||
installation.enable_service('lightdm')
|
||||
archinstall.storage['installation_session'].enable_service('lightdm')
|
||||
|
|
|
|||
|
|
@ -16,7 +16,8 @@ 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', 'mate']
|
||||
supported_desktops = ['gnome', 'kde', 'awesome', 'sway', 'cinnamon', 'xfce4', 'lxqt', 'i3', 'budgie', 'mate', 'deepin', 'enlightenment']
|
||||
|
||||
desktop = archinstall.generic_select(supported_desktops, 'Select your desired desktop environment: ',
|
||||
allow_empty_input=False, sort=True)
|
||||
|
||||
|
|
@ -48,9 +49,7 @@ if __name__ == 'desktop':
|
|||
"""
|
||||
|
||||
# Install common packages for all desktop environments
|
||||
installation.add_additional_packages(__packages__)
|
||||
|
||||
# TODO: Remove magic variable 'installation' and place it
|
||||
# in archinstall.storage or archinstall.session/archinstall.installation
|
||||
installation.install_profile(archinstall.storage['_desktop_profile'])
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__)
|
||||
|
||||
archinstall.storage['installation_session'].install_profile(archinstall.storage['_desktop_profile'])
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,37 @@
|
|||
# A desktop environment using "Enlightenment".
|
||||
|
||||
import archinstall, os
|
||||
|
||||
is_top_level_profile = False
|
||||
|
||||
__packages__ = ["enlightenment", "terminology", "lightdm", "lightdm-gtk-greeter"]
|
||||
|
||||
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.
|
||||
"""
|
||||
|
||||
# Enlightenment requires a functioning 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("enlightenment", "/somewhere/enlightenment.py")
|
||||
# or through conventional import enlightenment
|
||||
if __name__ == 'enlightenment':
|
||||
# Install dependency profiles
|
||||
archinstall.storage['installation_session'].install_profile('xorg')
|
||||
|
||||
# Install the enlightenment packages
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__)
|
||||
|
||||
# Enable autostart of enlightenment for all users
|
||||
archinstall.storage['installation_session'].enable_service('lightdm')
|
||||
|
|
@ -29,11 +29,11 @@ def _prep_function(*args, **kwargs):
|
|||
# or through conventional import gnome
|
||||
if __name__ == 'gnome':
|
||||
# Install dependency profiles
|
||||
installation.install_profile('xorg')
|
||||
archinstall.storage['installation_session'].install_profile('xorg')
|
||||
|
||||
# Install the GNOME packages
|
||||
installation.add_additional_packages(__packages__)
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__)
|
||||
|
||||
installation.enable_service('gdm') # Gnome Display Manager
|
||||
archinstall.storage['installation_session'].enable_service('gdm') # Gnome Display Manager
|
||||
# We could also start it via xinitrc since we do have Xorg,
|
||||
# but for gnome that's deprecated and wayland is preferred.
|
||||
|
|
|
|||
|
|
@ -48,16 +48,16 @@ if __name__ == 'i3':
|
|||
"""
|
||||
|
||||
# Install common packages for all i3 configurations
|
||||
installation.add_additional_packages(__packages__[:4])
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__[:4])
|
||||
|
||||
# Install dependency profiles
|
||||
installation.install_profile('xorg')
|
||||
archinstall.storage['installation_session'].install_profile('xorg')
|
||||
|
||||
# gaps is installed by deafult so we are overriding it here with lightdm
|
||||
installation.add_additional_packages(__packages__[4:])
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__[4:])
|
||||
|
||||
# Auto start lightdm for all users
|
||||
installation.enable_service('lightdm')
|
||||
archinstall.storage['installation_session'].enable_service('lightdm')
|
||||
|
||||
# install the i3 group now
|
||||
installation.add_additional_packages(archinstall.storage['_i3_configuration'])
|
||||
archinstall.storage['installation_session'].add_additional_packages(archinstall.storage['_i3_configuration'])
|
||||
|
|
|
|||
|
|
@ -37,10 +37,10 @@ def _post_install(*args, **kwargs):
|
|||
# or through conventional import kde
|
||||
if __name__ == 'kde':
|
||||
# Install dependency profiles
|
||||
installation.install_profile('xorg')
|
||||
archinstall.storage['installation_session'].install_profile('xorg')
|
||||
|
||||
# Install the KDE packages
|
||||
installation.add_additional_packages(__packages__)
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__)
|
||||
|
||||
# Enable autostart of KDE for all users
|
||||
installation.enable_service('sddm')
|
||||
archinstall.storage['installation_session'].enable_service('sddm')
|
||||
|
|
|
|||
|
|
@ -28,9 +28,9 @@ def _prep_function(*args, **kwargs):
|
|||
# or through conventional import lxqt
|
||||
if __name__ == 'lxqt':
|
||||
# Install dependency profiles
|
||||
installation.install_profile('xorg')
|
||||
archinstall.storage['installation_session'].install_profile('xorg')
|
||||
|
||||
# Install the LXQt packages
|
||||
installation.add_additional_packages(__packages__)
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__)
|
||||
|
||||
installation.enable_service('sddm') # SDDM Display Manager
|
||||
archinstall.storage['installation_session'].enable_service('sddm') # SDDM Display Manager
|
||||
|
|
|
|||
|
|
@ -27,9 +27,9 @@ def _prep_function(*args, **kwargs):
|
|||
# or through conventional import mate
|
||||
if __name__ == 'mate':
|
||||
# Install dependency profiles
|
||||
installation.install_profile('xorg')
|
||||
archinstall.storage['installation_session'].install_profile('xorg')
|
||||
|
||||
# Install the MATE packages
|
||||
installation.add_additional_packages(__packages__)
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__)
|
||||
|
||||
installation.enable_service('lightdm') # Light Display Manager
|
||||
archinstall.storage['installation_session'].enable_service('lightdm') # Light Display Manager
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ if __name__ == 'server':
|
|||
archinstall.log(archinstall.storage['_selected_servers'], level=logging.DEBUG)
|
||||
for server in archinstall.storage['_selected_servers']:
|
||||
archinstall.log(f'Installing {server} ...', level=logging.INFO)
|
||||
app = archinstall.Application(installation, server)
|
||||
app = archinstall.Application(archinstall.storage['installation_session'], server)
|
||||
app.install()
|
||||
|
||||
archinstall.log('If your selections included multiple servers with the same port, you may have to reconfigure them.', fg="yellow", level=logging.INFO)
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ if __name__ == "sway":
|
|||
)
|
||||
|
||||
# Install the Sway packages
|
||||
installation.add_additional_packages(__packages__)
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__)
|
||||
|
||||
# Install the graphics driver packages
|
||||
installation.add_additional_packages(_gfx_driver_packages)
|
||||
archinstall.storage['installation_session'].add_additional_packages(_gfx_driver_packages)
|
||||
|
|
|
|||
|
|
@ -28,9 +28,9 @@ def _prep_function(*args, **kwargs):
|
|||
# or through conventional import xfce4
|
||||
if __name__ == 'xfce4':
|
||||
# Install dependency profiles
|
||||
installation.install_profile('xorg')
|
||||
archinstall.storage['installation_session'].install_profile('xorg')
|
||||
|
||||
# Install the XFCE4 packages
|
||||
installation.add_additional_packages(__packages__)
|
||||
archinstall.storage['installation_session'].add_additional_packages(__packages__)
|
||||
|
||||
installation.enable_service('lightdm') # Light Display Manager
|
||||
archinstall.storage['installation_session'].enable_service('lightdm') # Light Display Manager
|
||||
|
|
|
|||
|
|
@ -28,22 +28,12 @@ def _prep_function(*args, **kwargs):
|
|||
if __name__ == 'xorg':
|
||||
try:
|
||||
if "nvidia" in _gfx_driver_packages:
|
||||
if "linux-zen" in installation.base_packages or "linux-lts" in installation.base_packages:
|
||||
installation.add_additional_packages("dkms")#I've had kernel regen fail if it wasn't installed before nvidia-dkms
|
||||
installation.add_additional_packages("xorg-server xorg-xinit nvidia-dkms")
|
||||
if "linux-zen" in archinstall.storage['installation_session'].base_packages or "linux-lts" in archinstall.storage['installation_session'].base_packages:
|
||||
archinstall.storage['installation_session'].add_additional_packages("dkms")#I've had kernel regen fail if it wasn't installed before nvidia-dkms
|
||||
archinstall.storage['installation_session'].add_additional_packages("xorg-server xorg-xinit nvidia-dkms")
|
||||
else:
|
||||
installation.add_additional_packages(f"xorg-server xorg-xinit {' '.join(_gfx_driver_packages)}")
|
||||
archinstall.storage['installation_session'].add_additional_packages(f"xorg-server xorg-xinit {' '.join(_gfx_driver_packages)}")
|
||||
else:
|
||||
installation.add_additional_packages(f"xorg-server xorg-xinit {' '.join(_gfx_driver_packages)}")
|
||||
archinstall.storage['installation_session'].add_additional_packages(f"xorg-server xorg-xinit {' '.join(_gfx_driver_packages)}")
|
||||
except:
|
||||
installation.add_additional_packages(f"xorg-server xorg-xinit") # Prep didn't run, so there's no driver to install
|
||||
|
||||
# with open(f'{installation.mountpoint}/etc/X11/xinit/xinitrc', 'a') as X11:
|
||||
# X11.write('setxkbmap se\n')
|
||||
|
||||
# with open(f'{installation.mountpoint}/etc/vconsole.conf', 'a') as vconsole:
|
||||
# vconsole.write('KEYMAP={keyboard_layout}\n'.format(**arguments))
|
||||
# vconsole.write('FONT=lat9w-16\n')
|
||||
|
||||
# awesome = archinstall.Application(installation, 'awesome')
|
||||
# awesome.install()
|
||||
archinstall.storage['installation_session'].add_additional_packages(f"xorg-server xorg-xinit") # Prep didn't run, so there's no driver to install
|
||||
Loading…
Reference in New Issue