Releases: ValShaped/rwfus
Rwfus v0.5.0
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
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
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- Fixes #30
- Rwfus would not always successfully unmount when managing its service
- Fixes #18
- 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 ofglibc
, please update to SteamOS 3.5 and use Nix.- Works around #20
What's Changed
- Rwfus v0.4.1: Coldfix Edition by @ValShaped in #23
- Rwfus v0.4.2 by @ValShaped in #35
Full Changelog: v0.4.0...v0.4.2
0.4.1 Beta 1
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!
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>
andrwfus --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
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
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 availableSparse files exist 👍🏽
Features Planned for v0.4.0 final
v0.3.0: Configuration and Logging!
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
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
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.