github archlinux/archinstall v2.0.4

latest releases: v2.8.6, v2.8.5, v2.8.4...
4 years ago

screenshot

New features

  • Added locale helpers in terms of keyboard language/layout.
    • archinstall.list_keyboard_languages()
    • archinstall.search_keyboard_layout()
    • archinstall.set_keyboard_language()

These functions work together to help listing, finding and setting a keyboard layout in terminals. Won't work for X-frontends, but will do for CLI installation methods. Added a language selector-helper-function (archinstall.select_language()) with a crude search functionality.

Added all this to the guided template.

  • Added network helpers in archinstall.lib.networking. Mainly adding helpers to detect physical interfaces and MAC-addresses.
  • Added a unattended example profile
  • Support for listing (and filtering) profiles based on MAC-address was added, the filter_irrelevant_macs will filter any MAC address profile that doesn't match the current machine.
  • archinstall.Installer() now has post-installation checks on __exit__, so when Install() is used in a context manager (with archinstall.Installer() as installation), whenever the coder exits that block, the post-installation-steps will run and inform (but not raise) about any missing steps that haven't been completed in order to successfully boot the machine (checks if the base OS is installed, if root or a super user is created/setup and if a bootloader is installed).
  • Fixed the guided template to check if root_pw is set, if it isn't, it will require an additional sudo-user to be created.
  • Added reboot() as a function (This is more of a fix, it used to exist but has been re-added)
  • Added list_profiles() which lists all current local profiles.
  • Profiles now support descriptions by reading the top most comment in the .py files.
  • Added enable_service() to enable services within the installation
  • Added a helper function called activate_ntp() that simply enables the ntp.service and installs the ntp package.
  • Added add_custom_mirrors(). The function appends custom mirrors to /etc/pacman.conf based on the syntax:
    {'url': 'http://url.com', 'signcheck': 'Optional', 'signoptions': 'TrustAll', 'name': 'testmirror'}
  • Added add_custom_mirrors(). The function appends custom mirrors to /etc/pacman.conf based on the syntax:
    {'url': 'http://url.com', 'signcheck': 'Optional', 'signoptions': 'TrustAll', 'name': 'testmirror'}
  • Application() profiles now support .py scripts as well
  • Application() and Profile() classes now correctly inserts that archinstall library path into sys.path from where it was installed. This has to be done in order to sub-executed scripts to get the correct version of archinstall when doing import archinstall in profiles and applications. Otherwise the installed/other libraries might take precedence over git clone'd repositories/submodules in projects (very noticeable in archinstall_gui for instance)
  • Added the add_AUR_support() function to enable AUR packages in the mountpoint (by compiling yay and installing it)
  • Added a yay() (and add_AUR_packages() pointer to yay()) command for installing AUR packages inside the mountpoint
  • Added enable_AUR() function to
  • Added run_command which will run commands inside the installation via arch-chroot {mountpoint}
  • Added arch_chroot which just points to run_command().
  • Added a set_timezone()
  • Fixed set_locale() in the Installer() class.
  • Also added a mirrors.py helper to rudimentary set mirror data on the installer host
  • awesome now has a .py profile instead of a .json, even tho the .json is still there.
  • Pre built ISO's are up again
  • Examples are now packaged in both pypi and pre-built nuitka3 binary
  • Added a PKGBUILD
  • archinstall.BlockDevice now contains a __dump__ meta function, which can be used with:
    def json_serial(obj):
    	elif type(obj) is bytes:
    		return obj.decode('UTF-8')
    	elif getattr(obj, "__dump__", None):
    		return obj.__dump__()
    	else:
    		return str(obj)
    
    json.dumps(block_device, default=json_serial)
  • Added a __init__.py into the main github repo structure, so that cloned repo's can use from archinstall import * for instance.

Minor Fixes

  • The unattended test-profile reports upstream to inform which commit was installed without user interaction.
  • Made btrfs-progs optional, won't be installed unless btrfs is detected as a filesystem.
  • Tweaked the build scripts a bit to fetch a common VERSION definition.
  • Removed .json support, as it's quite convoluted and redundant now that we have proper support for .py profiles and applications.
  • PKGBUILD now exists for both python-archinstall (pip install archinstall equivilant) and archinstall (binary compiled version, no need for python to be installed)
  • set_locale() now correctly takes the given locale and encoding and hopefully sets locale and encoding separately.
  • add_additional_packages() now gives a return value from pacstrap which it didn't before.
  • install_profile() now gives a return value from profile.install() which it previously didn't.
  • Profile() and Application() now skips looking for the profile/application if absolute paths are given (hopefully that logic works)
  • Added a __repr__ for Application() so it doesn't look like it's a Profile() being installed when printing the object.
  • Fixed desktop.py which was broken due to string formatting being a bit off.

Don't miss a new archinstall release

NewReleases is sending notifications on new releases.