Skip to content

Releases: ValShaped/rwfus

Rwfus v0.5.0

24 Jun 22:16
15904c2
Compare
Choose a tag to compare

Update for SteamOS 3.5/3.6

This release is not compatible with SteamOS versions below 3.5. Versions below 3.5 have a variety of severe security vulnerabilities, so you should probably update your Deck.

Breaking Changes

  • The configuration file is now versioned, and will be migrated to use the latest settings upon updating. If this happens, you will be prompted to review the changes.
  • The --install-bin and --remove-bin options have been removed entirely, as they proved to be unreliable. See the readme for instructions on doing that yourself. Fixes #48

Rwfus v0.5.0.b1

16 Sep 04:10
Compare
Choose a tag to compare

Users of SteamOS 3.4 or below should use v0.4.2

Once installed, remember to update Rwfus with rwfus -u (or rwfus -i)

Breaking changes:

  • This release is not compatible with versions of SteamOS below 3.5 Beta (August 15, 2023)
  • The config file format is now versioned. In future versions, the version may be checked against the rwfusd version, for safety.
    • As of now, this change only affects config file migration.

Added:

Config file migration

SteamOS 3.5 moved the pacman database from /var/lib/pacman to /usr/lib/holo/pacman. Since all of /usr is covered in the default config, the contents of /var/lib/pacman will be automatically moved to the new location, and the path will be removed from /etc/opt/rwfus.conf

Full Changelog: v0.4.2...v0.5.0.b1

Rwfus v0.4.2

16 Sep 03:53
4ed69c0
Compare
Choose a tag to compare

Known Issues:

The default configuration is incompatible with SteamOS 3.5.
If you're on SteamOS 3.5, use Rwfus v0.5.0.b1

If you can move to Nix for package management, please do.
You can install Nix on SteamOS with Determinate Systems' nix-installer

New:

  • Multiple services can now be started, stopped, restarted, and/or masked on startup/shutdown

Fixed:

  • polkit.service is automatically restarted when Rwfus goes up
  • Rwfus would not always successfully unmount when managing its service
  • Rwfus will now mount the janky case-folding-workaround disk image from the SD card.
    • Fixes #13
    • This feature is currently UNTESTED. It'll probably never be supported, but it's now possible.
  • Rwfus will panic and unmount if glibc is installed in the overlay. glibc incompatibility will break everything and ruin your day. If you need software that relies on a different version of glibc, please update to SteamOS 3.5 and use Nix.
    • Works around #20

What's Changed

Full Changelog: v0.4.0...v0.4.2

0.4.1 Beta 1

25 Jan 03:52
Compare
Choose a tag to compare

Please use this instead of 0.4.0

Changes:

  • Fix a bone-headed mounting bug I left in 0.4.0
  • Switch to new logfile location

See #23
Full Changelog: v0.4.0-pre2...v0.4.1-beta1

v0.4.0-beta3: Finally, Compatibility? Nope!

13 Nov 13:54
0a2a39a
Compare
Choose a tag to compare

New Features:

  • Now works on reimaged Steam Decks!
  • Due to btrfs compression, overlays now take up less space on disk!
    • On my Deck, the disk usage has gone from 480MiB to 98MiB
  • Installation will automatically set up pacman on success
  • Now keeps track of whether SteamOS Offload: /usr/local is enabled, and, if so, preserves that path after mounting
  • Certain commands now have shortopt codes (see rwfus --help for info)

Improvements:

  • Rwfus no longer tries to reinstall itself by default, instead printing the status of rwfusd. Fixes #9

Breaking Changes:

  • Rwfus no longer generates systemd mount or target units
    • Now it generates daemons and service units
    • This is a total overhaul of Rwfus's init
  • Rwfus now stores overlays inside a disk image
  • Disk image can be easily backed up and restored with rwfus --backup <destination> and rwfus --restore <source>
    • There's nothing stopping you from wiping important data except a check that the source is a valid btrfs filesystem, so be careful
  • Default Base Directory changed to /opt/rwfus
  • Configuration file pared down to just the bare minimum options
    • Extended configuration is still available, but is now mostly derived from Base_Directory, Systemd_Directory, and Mount_Options (new!)
  • New extended configuration options to do with disk images:
Option Description Default Value
Disk_Image Full path to disk image file /opt/rwfus/rwfus.btrfs
Disk_Image_Size Size of the disk image file 8G (8 GiB)
Mount_Directory Location which the disk image is mounted into /opt/rwfus/mount
Mount_Options Mount options, with which to mount the disk image loop,compress

Known issues:

  • #12 still not fixed (fixed on dev branch)
  • #15 Compatibility issues with NorthstarProton/Wine-TKG
  • There seems to be a compatibility issue with SteamOS Offload and casefolding home. Hopefully won't be that hard to fix.
  • Backup and restore are completely broken, and will require a refactor of most of Rwfus to fix. Soon:tm:
  • Incompatible with some software that modifies core parts of the filesystem

Full Changelog: v0.3.0...v0.4.0

v0.4.0-pre2 The Third Overhaul, Part Two

09 Nov 05:33
Compare
Choose a tag to compare

Breaking Changes:

  • Rwfus now stores overlays inside a disk image
  • Default Base Directory changed to /opt/rwfus
  • Configuration file pared down to just the bare minimum options
    • Extended configuration is still available, but is now mostly derived from Base_Directory, Systemd_Directory, and Mount_Options (new!)
  • New extended configuration options to do with disk images:
Option Description Default Value
Disk_Image Full path to disk image file /opt/rwfus/rwfus.btrfs
Mount_Directory Location which the disk image is mounted into /opt/rwfus/mount
Mount_Options Mount options, with which to mount the disk image loop,compress

New features:

  • Now works on reimaged Steam Decks!
  • Due to btrfs compression, overlays now take up less space on disk!
  • Installation will automatically set up pacman if successful
  • Now keeps track of whether SteamOS Offload: /usr/local is enabled, and, if so, preserves that path after mounting

Known issues:

  • #15 NorthStarProton/Wine-TKG may not like Rwfus. Under investigation.

Features remaining before 0.4.0 final:

  • --backup and --restore (#7)

v0.4.0-pre1: The Third Overhaul, Part One

03 Oct 04:12
Compare
Choose a tag to compare

Improvements:

  • Rwfus now requests it be started after Decky-Loader, if present.
    This avoids a (timing?) bug where Decky would sometimes death-spiral indefinitely trying to connect to Steam
  • Rwfus no longer clutters /etc/systemd/system with extraneous .mount units, instead managing everything from a single shell script that runs once and gets out of the way.
  • Rwfus no longer tries to reinstall itself by default, instead printing the status of rwfusd. Fixes #9
  • Certain commands now have shortopt codes (see rwfus --help for info)

Breaking Changes:

  • Default Base_Directory changed from /home/.rwfus to /opt/.rwfus
  • Workdirs go in Base_Directory/work now
  • Upper dirs get their own subdirectory now: Base_Directory/upper
  • Rwfus no longer generates systemd mount or target units
    • Now it generates daemons and service units
    • This is a total overhaul of Rwfus's init

Features Planned for v0.4.0-pre2:

  • Work around #12 by storing Rwfus data in a monolithic ext4/btrfs partition image
  • Dynamically resize image when nearing full capacity and storage is available Sparse files exist 👍🏽

Features Planned for v0.4.0 final

  • Automatically configure pacman-key after a successful install (#6)
  • Add --backup and --restore operations (#7)

v0.3.0: Configuration and Logging!

26 Jul 11:27
c43ae92
Compare
Choose a tag to compare

Added:

  • Load and Save configuration
    • This is a breaking change!
  • Generate example config file -- see the readme for more information!
  • Install Rwfus into the overlaid /usr/local/bin, so rwfus status can be checked anywhere
  • Queue multiple operations at a time!
  • Added more "Done!"
  • Cleaned up log file location notifications when nonessential actions are performed
    • Log files are still saved in /tmp/rwfus-XXXX.log

Fixed:

  • More readable variable names
  • Test mode now generates workdirs

v0.2.0: Total Rewrite Edition

22 Jul 13:05
e490972
Compare
Choose a tag to compare

From PR #1:

This is a complete overhaul compared to 0.1.x

Retained features:

  • Generate, install, and activate systemd unit files for overlayfs mounts

New features:

  • There are options now
  • Help menu (rwfus --help) displays options
  • Updating unit files without touching the mount locations (rwfus --update)
  • Removing Rwfus, including ALL files in the overlayfs dirs (rwfus --remove)
  • Enable and Disable Rwfus temporarily (rwfus --enable, rwfus --disable)
  • Get the status of all Rwfus systemd units (rwfus --status)
  • Change the location of the .rwfus directory (rwfus --basedir /path/to/rwfus/dir/.rwfus)
  • Change the location of the logfile (rwfus --logfile ~/path/to/logfile)
  • Enable test mode (rwfus --test) to work entirely out of a user directory, to test gen logic without root (or clobbering systemd 😅 )

v0.1.3

19 Jul 19:53
a7afc2e
Compare
Choose a tag to compare
v0.1.3 Pre-release
Pre-release

Known Bug: 0.1.3 creates overlay mounts using inode indexing and metacopy, causing mounting to fail after system update

This will be fixed for 0.1.4

Second release of Rwfus

This fixes a bug where generated systemd services would fail on reboot.