Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Hvornum <anton@hvornum.se>2021-04-29 08:18:43 +0000
committerGitHub <noreply@github.com>2021-04-29 10:18:43 +0200
commit2d02e806f2ae5341752a0ceb532e5c239a164ee7 (patch)
tree57f7e5c956fc63f008bafedec91a6ceafde66b8b
parent9fd87a4b531ceaa037014d7ff710823698f49300 (diff)
Cleaning up packages. (#374)
* Cleaning up packages. installer now relies on __packages__ definition. Which will work with external libs to more easily gather packages used by installer and profiles. * Added back the logic for the log message, where we inform if we're adding the boot loader to root or boot. * Added __package__ definition to profiles and the installer. These packages can be used as an indication from outside libraries of what could *possibly* be installed. For instance an offline-tool could source these, it would source more than it needed to, but it would give a quick rundown of what might be needed. * Removed import of __base__packages__ as it's now just __packages__ after a lot of stream-lining. * Explosion misspelling. Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
-rw-r--r--archinstall/__init__.py2
-rw-r--r--archinstall/lib/hardware.py4
-rw-r--r--archinstall/lib/installer.py21
-rw-r--r--profiles/52-54-00-12-34-56.py14
-rw-r--r--profiles/awesome.py2
-rw-r--r--profiles/i3.py8
-rw-r--r--profiles/xorg.py4
7 files changed, 27 insertions, 28 deletions
diff --git a/archinstall/__init__.py b/archinstall/__init__.py
index bc58af54..e2c7ea62 100644
--- a/archinstall/__init__.py
+++ b/archinstall/__init__.py
@@ -3,7 +3,7 @@ from .lib.general import *
from .lib.disk import *
from .lib.user_interaction import *
from .lib.exceptions import *
-from .lib.installer import __packages__, __base_packages__, Installer
+from .lib.installer import __packages__, Installer
from .lib.profiles import *
from .lib.luks import *
from .lib.mirrors import *
diff --git a/archinstall/lib/hardware.py b/archinstall/lib/hardware.py
index d6cf982c..e9c63e41 100644
--- a/archinstall/lib/hardware.py
+++ b/archinstall/lib/hardware.py
@@ -3,6 +3,8 @@ from .general import sys_command
from .networking import list_interfaces, enrichIfaceTypes
from typing import Optional
+__packages__ = ['xf86-video-amdgpu', 'xf86-video-ati', 'xf86-video-intel', 'xf86-video-nouveau', 'xf86-video-fbdev', 'xf86-video-vesa', 'xf86-video-vmware', 'nvidia', 'mesa']
+
AVAILABLE_GFX_DRIVERS = {
# Sub-dicts are layer-2 options to be selected
# and lists are a list of packages to be installed
@@ -18,7 +20,7 @@ AVAILABLE_GFX_DRIVERS = {
'mesa' : ['mesa'],
'fbdev' : ['xf86-video-fbdev'],
'vesa' : ['xf86-video-vesa'],
- 'vmware' : ['xf86-video-vmware']
+ 'vmware / virtualbox' : ['xf86-video-vmware']
}
def hasWifi()->bool:
diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py
index a5449662..dbc6d1b4 100644
--- a/archinstall/lib/installer.py
+++ b/archinstall/lib/installer.py
@@ -12,8 +12,7 @@ from .storage import storage
from .hardware import *
# Any package that the Installer() is responsible for (optional and the default ones)
-__packages__ = ["base", "base-devel", "linux", "linux-firmware", "efibootmgr", "nano", "ntp", "iwd"]
-__base_packages__ = __packages__[:6]
+__packages__ = ["base", "base-devel", "linux-firmware", "linux", "linux-lts", "linux-zen", "linux-hardened"]
class Installer():
"""
@@ -39,8 +38,7 @@ class Installer():
:type hostname: str, optional
"""
- def __init__(self, target, *, base_packages='base base-devel linux-firmware', kernels='linux'):
- kernels = kernels.split(",")
+ def __init__(self, target, *, base_packages=__packages__[:3], kernels=['linux']):
self.target = target
self.init_time = time.strftime('%Y-%m-%d_%H-%M-%S')
self.milliseconds = int(str(time.time()).split('.')[1])
@@ -53,10 +51,7 @@ class Installer():
self.base_packages = base_packages.split(' ') if type(base_packages) is str else base_packages
for kernel in kernels:
self.base_packages.append(kernel)
- if hasUEFI():
- self.base_packages.append("efibootmgr")
- else:
- self.base_packages.append("grub")
+
self.post_base_install = []
storage['session'] = self
@@ -364,12 +359,12 @@ class Installer():
boot_partition = partition
elif partition.mountpoint == self.target:
root_partition = partition
- if hasUEFI():
- self.log(f'Adding bootloader {bootloader} to {boot_partition}', level=logging.INFO)
- else:
- self.log(f'Adding bootloader {bootloader} to {root_partition}', level=logging.INFO)
+
+ self.log(f'Adding bootloader {bootloader} to {boot_partition if boot_partition else root_partition}', level=logging.INFO)
if bootloader == 'systemd-bootctl':
+ self.pacstrap('efibootmgr')
+
if not hasUEFI():
raise HardwareIncompatibilityError
# TODO: Ideally we would want to check if another config
@@ -432,6 +427,8 @@ class Installer():
raise RequirementError(f"Could not identify the UUID of {self.partition}, there for {self.target}/boot/loader/entries/arch.conf will be broken until fixed.")
elif bootloader == "grub-install":
+ self.pacstrap('grub')
+
if hasUEFI():
o = b''.join(sys_command(f'/usr/bin/arch-chroot {self.target} grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB'))
sys_command('/usr/bin/arch-chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg')
diff --git a/profiles/52-54-00-12-34-56.py b/profiles/52-54-00-12-34-56.py
index ed2c9d78..442e053c 100644
--- a/profiles/52-54-00-12-34-56.py
+++ b/profiles/52-54-00-12-34-56.py
@@ -1,7 +1,8 @@
import archinstall
import json
import urllib.request
-import git
+
+__packages__ = ['nano', 'wget', 'git']
# Unmount and close previous runs (Mainly only used for re-runs, but won't hurt.)
archinstall.sys_command(f'umount -R /mnt', suppress_errors=True)
@@ -30,22 +31,19 @@ with archinstall.Filesystem(harddrive) as fs:
if installation.minimal_installation():
installation.add_bootloader()
- installation.add_additional_packages(['nano', 'wget', 'git'])
+ installation.add_additional_packages(__packages__)
installation.install_profile('awesome')
- installation.user_create('anton', 'test')
+ installation.user_create('devel', 'devel')
installation.user_set_pw('root', 'toor')
- repo = git.Repo('./')
- commit = repo.head.commit.hexsha[:7]
-
- print(f'Submitting {commit}: success')
+ print(f'Submitting {archinstall.__version__}: success')
conditions = {
"project": "archinstall",
"profile": "52-54-00-12-34-56",
"status": "success",
- "commit": commit
+ "version": archinstall.__version__
}
req = urllib.request.Request("https://api.archlinux.life/build/success",
data=json.dumps(conditions).encode('utf8'),
diff --git a/profiles/awesome.py b/profiles/awesome.py
index cbd52a3c..01566d0f 100644
--- a/profiles/awesome.py
+++ b/profiles/awesome.py
@@ -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', 'scrot']
+__packages__ = ['nemo', 'gpicview-gtk3', 'maim']
def _prep_function(*args, **kwargs):
"""
diff --git a/profiles/i3.py b/profiles/i3.py
index b82c03d6..148e591e 100644
--- a/profiles/i3.py
+++ b/profiles/i3.py
@@ -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__ = ['i3lock', 'i3status', 'i3blocks', 'xterm']
+__packages__ = ['i3lock', 'i3status', 'i3blocks', 'xterm', 'lightdm-gtk-greeter', 'lightdm']
def _prep_function(*args, **kwargs):
"""
@@ -48,13 +48,13 @@ if __name__ == 'i3':
"""
# Install common packages for all i3 configurations
- installation.add_additional_packages(__packages__)
+ installation.add_additional_packages(__packages__[:4])
# Install dependency profiles
installation.install_profile('xorg')
- # gaps is installed by deafult so we are overriding it here
- installation.add_additional_packages("lightdm-gtk-greeter lightdm")
+ # gaps is installed by deafult so we are overriding it here with lightdm
+ installation.add_additional_packages(__packages__[4:])
# Auto start lightdm for all users
installation.enable_service('lightdm')
diff --git a/profiles/xorg.py b/profiles/xorg.py
index cd89668d..7546a01b 100644
--- a/profiles/xorg.py
+++ b/profiles/xorg.py
@@ -1,10 +1,12 @@
# A system with "xorg" installed
import os
-from archinstall import generic_select, sys_command, RequirementError
import archinstall
+
is_top_level_profile = True
+__packages__ = ['dkms', 'xorg-server', 'xorg-xinit', 'nvidia-dkms', 'xorg-server', *archinstall.lib.hardware.__packages__]
+
def _prep_function(*args, **kwargs):
"""
Magic function called by the importing installer