Releases: deragon/autopoweroff
4.2.2
4.2.1
New Features
-
Logs are now stored into a specific file.
Logs are now saved under:
- Normal mode: /var/log/autopoweroff.log
- Debugging mode: /tmp/autopoweroff.log
Major logs also continue to by saved into syslog.
Under the hood improvements
-
Disable feature now implemented as another ApoObserverManager child,
following the recent standard to detect events affecting Autopoweroff's
behavior.The disable file used to be called '/run/autopoweroff/autopoweroff.cancel'
but now is renamed as '/run/autopoweroff/autopoweroff.disable'. -
Only devices that are part of an "allow" list are now scanned for human
activity. The devices allowed are mice, keyboards and joysticks.Previous strategy accepted all devices except some specific ones part of a
"deny" list. This previous strategy was flawed. For example, network USB
device could be picked up thus would always generate events. -
Add better validation for 'Host=' command in the configuration file.
Fixes
-
Fix bug regarding input device showing up.
Turns out that sometimes, when USB devices are added, they first appear
as .tmp-c file as IN_CREATE events, but then are rapidly renamed and
register as IN_MOVED_TO events.Those .tmp-c must be ignored, but the IN_MOVED_TO events must be
caught as these events show the final, stable device names of the
devices. -
Fix Mint version. Thanks to it-jonas for this contribution.
-
Fix thread terminations.
-
Miscellaneous minor improvements.
True systemd support.
New Features
-
True systemd support. Autopoweroff Deb and RPM packages are now built
for systemd. SysV Init files remain available with the tarball.This new feature fixes GH19 "Bug in SysV Init Script - Does NOT kill autopoweroffd"
On a systemd file, it turns out that systemd is buggy supporting old SysV
Init files. Mostly, /etc/init.d/autopoweroff stop does not kill
Autopoweroff daemon's. The solution is simply to move to true systemd
support, which this release does. -
If the startup delay is below 1 minute (0 or negative), then it is set
to 2 minutes after the action command is executed once.This is to prevent the action command to be repeatedly executed very
quickly. If the command is for instance, 'Sleep', without this fix /
safeguard the computer would always go to sleep immediately after waking
up, giving no chance to the user to take control of it.
Fixes
-
Inner loop breakout when command executed.
Now after the action command is executed, the execution thread leaves
the inner loop to restart at the outer loop, causing variables to be
reset properly as if Autopoweroff restarted completely. -
Upon termination of Autopoweroff daemon, all thread joining are done after
all terminate() calls are done, accelerating the termination. -
Fix bug about pid not showing up when logging graceful shutdown.
-
Miscellaneous minor improvements.
Release 4.1.2 - Better binary packages
Fixes
-
Fix GH32 "missing dependency python-gi on autopoweroff-gui"
Revisit this bug to generate packages for many more distributions with
versions. -
Minor fix in GUI to show Autopoweroff's logo instead of generic image.
Release 4.1.1 - Many fixes, some important.
No new features, but many fixes, some important. Some documentation improvements.
Full Changelog: 4.1.0...4.1.1
Fixes
-
Fix bug where Autopoweroff would end after action was executed. Autopoweroff must never end.
-
Fix [GH32] "missing dependency python-gi on autopoweroff-gui #32"
Add build for 'autopoweroff-gui-linuxmint_*_all.deb'.
-
Fix bug in autopoweroffd where sendmsg()'s was called with 'priority'
instead of expected 'level' arg. -
Fix [GH28] "Can't install it on Ubuntu 20.04"
'./postinstall' being called now. Previously, './' was missing and
therefore the Makefile could not find the script that resides in the
same path. -
Dependency on perl removed, as it is not used.
-
Miscellaneous minor improvements.
Thanks
Jonas Wiegert reported many bugs, provided fixes and suggested using rtcwake in combination with Autopoweroff, which will be documented in a later release. Thank you Jonas for your contribution; it is well appreciated.
Release 4.1.0 - CpuPercentage parameter implemented and many bug fixes.
New Feature
-
CpuPercentage parameter.
If the CPU usage falls below the provided value (say, '5' for 5%) for a full second, the condition is then considered met and may trigger Autopoweroff to run its configured command if no other condition blocks it.
Fixes
-
Fix GH25 'How to disable no action time range?'.
Default value is now set when the section is not present.
-
Fix GH23 'Not working on Macbook 5,5 because of SMC event'.
On Macbook 5.5 (maybe others) the SMC is constantly sending events,
probably from the light sensor or something so we want to ignore this.The SMC is the system management controller. It's responsible for a
number of processes, including the cooling fans, keyboard, and LED
lights.Thanks to 'robinmayol' for providing the solution.
-
Fix GH20 'Installing .deb fails'.
Replaces in README.md the installation instructions:
sudo dpkg -i autopoweroff*.debwith
sudo apt install ./*autopoweroff*.debThis way, the order of the packages and their dependencies is being
managed properly. -
Fix GH22 'seems not making server sleep on Ubuntu Server 18.04 #22'.
Fix consist of adding python[3]-psutils as a dependency to the daemon.
-
Add python-inotify as a dependency for daemon rpm.
-
Fix threads termination when Autopoweroff gets shutdown.
-
Python modules are now installed under /usr/share/autopoweroff.
-
Avoids empty directories to be part of the .deb and .rpm packages.
-
New UEFI / BIOS setup instructions for wakeup.
-
Make use of FPM to generate .deb and .rpm packages.
-
Multiple technical fixes.
Release 4.0.0 - Separate binaries for daemon and GUI, CPU resource check implemented and dynamic input devices detected.
-
Separate daemon and GUI packages (deb and rpm). Finally, one
can install Autopoweroff's daemon on a server without having
to install the GUI with all its dependencies. -
Implemented Resources CPU percentage condition. If the CPU percentage
usage falls below the given threshold for a duration of 1s, the condition is
met. Resolves issue
GH004. -
Fixed GH005
'Systems with a KVM switch'. Autopoweroff loaded all the
devices once at startup and the list remained static. Now using
pyinotify, the list is dynamically adjusted as devices are added or
removed. -
Minor improvements brought to the GUI such as removing use of deprecated
features, enable icons on certain buttons and realigning widgets. -
Fixed GH012:
'Autopoweroff cancelfile filename mismatch'. -
Anywhere where is is relevant, the term 'shutdown time range' has been
replaced with 'action time range' including in the configuration file. No
logic has changed. -
README.md: Small aesthetic improvement such as adding the Autopoweroff,
AWS and Azure logos and 'Python powered', 'Linux powered' banners with
the accompanying explanation. -
All threads are now daemon type. This way, when the main thread dies, all
of its children die too and the whole programs stops. -
Removed ARP reverse check since a host that is powered off will remain
registered on the DNS, thus making this test falsely believe that the
host is still available when it is not. -
autopoweroffd.in performSleepForNoActionTimeRange() function content is
reformulated to be more concise and duplicate code no longer exists. -
Python psutil dependency added to package desc.
-
Fixed minor logging issue.
Release 3.2.1 - Fixed [GH008] 'Autopoweroff High CPU usage when only condition remaining is a living remote server'
-
Fixed GH008: 'Autopoweroff High CPU usage when only condition remaining is a living remote server'
-
Some refactoring in
autopoweroffd.
Release 3.2.0 - Python 3 migration
-
GH009: Python3 support
Code migrated to Python 3.
-
Accelerometer "lis3lv02d" ignored.
Code to ignore accelerometers has been introduced into Autopoweroff. Currently, only the "lis3lv02d" accelerometer is being ignored, being hardcoded. Not ideal; more work needs to be done so the code becomes generic and ignores any accelerometer.
Accelerometers are devices that are way to sensitive for Autopoweroff. A laptop laying on a stable table with nobody touching it will still have its accelerometer reporting movement. Thus, it is not reasonable nor necessary to take this devices into account when attempting to figure out if the device is being used or not by a person.
Release 3.1.0
This release contains a few bug fixes and small improvements.
- GH001: Polkit replaces gksu. This is the main feature of 3.1.0, allowing
Autopoweroff to work under modern Linux distributions such as
Ubuntu 18.04 LTS. Thanks to @edgimar from GitHub for providing
the solution. - GH002: Added Python's GI module as a dependency.
- Dependency fix for Fedora 29 and openSUSE 15.
- Build improvements.
- Various little fixes.