Skip to content

Releases: archlinux/archinstall

v2.0.6rc3

08 Nov 10:00
16c98e8
Compare
Choose a tag to compare
v2.0.6rc3 Pre-release
Pre-release

Description

Final release candidate before release.

All features for this releaser have now been included in individual RC steps.

New features

  • Logging has been improved, and installation log files are now created under ~/.cache/archinstall. This is also where individual worker-logs are stored in case more detailed information needs to be gathered for support cases. Logs contain a "snapshot" of the configuration chosen as well as the individual outputs by the client (this will be improved over time, but should serve as a good starting point).

Minor fixes

  • Issue/Help documentation has been updated to contain the latest changes in terms of logs and submitting issues.

v2.0.6rc16

08 Nov 22:37
Compare
Choose a tag to compare
v2.0.6rc16 Pre-release
Pre-release

Minor fixes

  • Tweaked the module mode by centralizing the "find" logic.
  • Replaced exec() logic with the importlib logic again to preserve line numbers in subsequent files.
  • Created a Script class that takes care of some of the import/execution logic, it takes content and not filenames.
  • Fixed a bunch of issues in examples/guided.py that caused issues, namely #61 where lists were given where strings were supposed to be etc.

v2.0.6rc2

07 Nov 09:30
e64cd07
Compare
Choose a tag to compare
v2.0.6rc2 Pre-release
Pre-release

New features

  • Modified the Arch Linux package archinstall so that python -m archinstall $@ is being called instead of hardcoding it to python -m archinstall guided.
  • Calling archinstall with argument <profile> which can be a remote URL or a full path (not strictly hardcoded to look in ./examples) is now supported.

v2.0.6rc1

01 Nov 23:16
57eef46
Compare
Choose a tag to compare
v2.0.6rc1 Pre-release
Pre-release

Placeholder release!

Bug fixes

#43 / #55 - Added a configuration overview before formatting (the formatting can be paused with Ctrl-C to paus and view the config)
#57 - Fix minor issues like typos and code style violations.
#59 - Relative paths causing issues, should be fixed with a os.chdir() in module mode.

New features

  • Added archinstall.validate_package_list() to validate a list of package names. This will help early-checks for finding any issue with the given package names from a user. So that we can throw errors early on, and not half way into the installation when the user most likely has stopped watching for output.
  • Added profiles/desktop.py which acts as a desktop-selector, so users can slightly more easily find and install a desktop environment. Currently there's only three supported desktop environments: [gnome', 'kde', 'awesome'].
  • Added a archinstall.storage for session storage. Profiles etc can store things in here, which will persist between executions (since profiles have a pre-installation import and execution, and a during-installation import and execution to help with asking users questions. But in between, the session is lost on purpose).

Minor fixes

  • Added some more doc-strings
  • Added error handling for invalid packages in examples/guided.py. Re-asks the user for correct packages rather than crashing half way through the installation
  • Added a JSON serializer that can handle some of archinstalls objects.

v2.0.5

01 Oct 09:11
Compare
Choose a tag to compare

New features

  • Added archinstall.list_mirrors() to list available mirrors upstream
  • Added archinstall.Installer().set_mirrors() to set mirrors in the installation
  • Added archinstall.service_state() which checks a .service state on the live-medium.
  • Added archinstall.find_package() which can locate one package upstream in the official package database.
  • Added archinstall.find_packages() which can locate many packages, but are a bit slow due to there not being a batch-search in the upstream API, individual packages have to be queried and built into a result structure locally.
  • Profiles now have the option to support a magic function called _prep_function() which gets called when a profile is loaded (but not executed). If this function exists, it needs to be accompanied by a if __name__ == "moduleName" in order to not execute whatever is in the script. This is optional, and simply helps with the early-user-question steps. (A way to ask users questions before installer actually runs)
  • Removed AUR support from this library. It might cause issues and headache upstream, so that functionality will have to become optional in a addon-package/library (most likely called python-archinstall-aur or something similar).

Profile changes

  • Guided example now waits for reflector.service to run it's course before continuing. As it will break any mirror changes done by the guided (or other) templates.
  • Guided now shows archinstall.list_profiles() when asking the user if a profile should be installed.
  • xorg profile/application is now split out and separated from awesome profile to better work with other desktop environments.
  • xorg now attempts to assist with driver-selection (this might get split into it's own profile later)
  • awesome is now less intrusive and depends on xorg.
  • gnome has been added and auto-starts on boot (minimal version comes later)
  • kde has been added with auto-launch on login (minimal version comes later)

Minor fixes

  • Fixed a lot of documentation and autodoc stuff. Docstrings needs to be added, but the base structure is there now.

Known issues

  • This release did not have the latest fix for the PKGBUILD of archinstall, which is the helper scripts to create archinstall-guided which launches the guided template. It's just helper scripts, so the fix will come in the next release. Until then, creating /usr/bin/archinstall-guided manually is required (or executed with python -m archinstall guided).

v2.0.4

01 Sep 08:50
Compare
Choose a tag to compare

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.

v2.0.4rc8

01 Sep 07:05
Compare
Choose a tag to compare
v2.0.4rc8 Pre-release
Pre-release

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.

v2.0.4rc7

31 Aug 20:01
Compare
Choose a tag to compare
v2.0.4rc7 Pre-release
Pre-release

New features

  • 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.

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.

Demo: https://youtu.be/9Xt7X_Iqg6E

v2.0.4rc6

20 Aug 10:27
Compare
Choose a tag to compare
v2.0.4rc6 Pre-release
Pre-release

New features

  • Added reboot() as a function (This is more of a fix, it used to exist but has been re-added)

Minor fixes

  • Tweaked the build scripts a bit to fetch a common VERSION definition.

v2.0.4rc5

19 Aug 20:14
Compare
Choose a tag to compare
v2.0.4rc5 Pre-release
Pre-release

New features

  • Added list_profiles() which lists all current local profiles.
  • Profiles now support descriptions by reading the top most comment in the .py files.

Fixes

  • 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)