github archlinux/archinstall v2.0.6

latest releases: v2.8.0, v2.7.2, v2.7.1...
3 years ago

Bug fixes

  • #62 is now fixed. There might be some edge cases left with it (especially absolute paths etc). But the overall idea was to slim down Profile() and Application() to not use Imported(), since it caused additional (separated) logic to handle profiles and paths.
  • In junction with the above, list_profiles() now supports remote profiles as well. With the limitation that there needs to be a "package" database over profiles. Parsing HTML pages for files isn't what we're here for. But this enables smoother finding of profiles in general. The drawback currently is that guided will show up.
  • list_profiles() now cache found result to avoid being noisy against HTTP endpoints (as well as being able to manipulate it in __main__.py pre and post listing profiles)
  • MAC addresses are now lowered before comparing on both profile level as well as listed MAC addresses.
  • find_installation_script() has been merged into Script() for a more unified experience.
  • archinstall.output.log() now checks if logfile is defined, otherwise no output is attempted to any log handles.
  • Fixed #63 - Issues installing package groups
  • Numerous edge cases in examples/guided.py where some default options caused KeyError at certain points if left empty.
  • Empty locale (very first question) caused a hang because loadkeys will enter some form of interactive mode if no option is given.
  • 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.
  • Issue/Help documentation has been updated to contain the latest changes in terms of logs and submitting issues.
  • #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.
  • 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.

New features

  • Added network configuration option via Installer().configure_nic() which helps to set up a interface inside a installation. (in the long run, perhaps add a similar thing to the live medium?)
    • Supports DHCP and static IP configurations (limited, but there are two options at least)
    • TODO: Show current IP-address to make it easier to evaluate which interface to configure
  • find_examples() have been merged in/replaced by list_profiles() which handles multiple use cases and being a bit more flexible.
  • list_profiles() now looks for profiles in archinstall.storage['PROFILE_PATH'], archinstall.storage['UPSTREAM_URL']/archinstall.storage['PROFILE_DB'] for profiles. Which enables dynamic lookups some what.
  • Script.localize_path() now converts remote paths into a temporary file under /tmp/ (We gotta keep an eye out here so /tmp/ isn't to small or locked in size or something).
  • Added a MAC -> iface lookup as well, even tho that wasn't hard previously, having a function call is more easily readable.
  • Added a Systemd and Networkd handlers (based on Ini() class), which is a basic helper to create INI files for Systemd services and network configurations.
  • 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).
  • 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.
  • 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).

Don't miss a new archinstall release

NewReleases is sending notifications on new releases.