Releases: bkw777/mainline
v1.0.14
- Remove unnecessary VERSION_INT and build-time dependency for "bc"
- Fix a segfault when no mainline kernels are installed
- Allow /tmp to be mounted with noexec
- Rename --show-unstable to --include-unstable, add --hide-unstable, and correct the --help
- Support building on valac < 0.40 (xenial)
- Simplify the download process, fixes some long-standing bugs wrt downloading, cache, installing.
v1.0.13
- Improve some kernel and/or package version number string handling and comparison logic
- Improve tracking which update notifications have been seen/acknowledged, track major & minor updates separately
- https downloads
- New Italian translation. Updated French, Dutch, Ukranian, Turkish
- Temporarily disabled the "Changes" button. The ubuntu kernel-ppa site changed the way they provide changelog info.
v1.0.12
Small update, but this hopefully caps off the optimization and bullet-proofing of notify-send.sh and notify-action.sh.
notify-*.sh are fully refactored and optimized to remove all unnecessary subshells
Also went through and cleaned up the quoting on variables, globbing patterns, etc
Now uses $XDG_RUNTIME_DIR instead of /tmp if available.
v1.0.11
v1.0.10
- When any action button pressed on a notification, close the notification
- Once a notification for a given kernel has been sent, don't notify for that kernel again during the same login session (but keep checking and if a new kernel shows up, DO notify about it
- Don't run check_updates() twice for no reason
- Expose concurrent_downloads as a configurable setting
v1.0.9
This is a big update.
Several long-standing problems & mysteries finally tackled.
- Slick new desktop notifications with action buttons thanks to https://github.com/vlevit/notify-send.sh
o Trivial change to the notification bg loop so it runs once immediately instead of sleeping for the entire check interval before sending the first notification. So you get a notification right on login, if a kernel is available. The check interval setting is still 50% bogus though. If you specify, say, 2 weeks, but you reboot every day, the old way you would never get a notification ever. The new way, you get at least one at every desktop session log-in which is probably a lot more frequent than every 2 weeks.
o "Show" and "Install" buttons right in the notification. The Install button installs the latest with a single button press right from the notifications without even opening up the app. The Show button opens the app. This is just the begining. It should be no problem now to make an "Install && purge old" button, where the actual purge process happens on next reboot after you're running the new installed kernel. May also add a config option so purge retains N latest versions instead of just the currently running.
o If a new notification comes in while a previous notification is still pending (say you have check every hour in settings, and leave your machine idle for 10 hours), it just updates the existing notification instead of adding a new notification. Even if the new notifcation has a new higher kernel version than the last one, it still just updates the existing pending notification.
o Removed the notification dialog from the app itself. - Fix many bugs wrt temp directories & file permissions.
o Removed all the kludgy CURRENT_USER and chown() stuff that was trying to do things as root that it didn't need to, in a users home dir, and then try to paper it over by chown-ing files back to the detected user... Now it just doesn't become root except to do "dpkg -i" and that's it. No downloads, no temp dir or file creation.
o Dirs and files in /tmp are being deleted as soon as they're used, and the actual kernel deb packages are being deleted from cache as soon as they're used. The index.html's, CHANGES, and other metadata are kept in the cache, these are smaller.
o --clean-cache actually works, but, now you don't need it! - Un-hardcode "/usr" in various paths to installed files. Un-hardcode things in general.
- Added some quasi-hidden extra functionality to --debug
o mainline-gtk --debug enables you to specify the update check time in seconds, and propogates the --debug option through to all other mainline commands run in the background or from the notification loop or from the notification action button. - Several fixes to the version string parsing and the resulting show/hide behavior.
o Detect correct update available for notifications when -rc kernels are enabled in Settings.
o Don't hide any installed kernel, even if it's an -rc kernel and -rc kernels are hidden in Settings.
o Don't hide any installed kernel, even if it's older than the "show previous N majors" setting in Settings.
o Don't notify for an installed kernel, regardless if it's running (you get a notification, install the kernel, then don't reboot, don't get any more notifications for that kernel).
o When testing if a kernel is "available" (ie, is an update), compare against highest installed kernel, not the currently running kernel.
o Don't show the same kernel in two different places in the list, by slightly different names and with different icons. This used to happen to any installed -rc kernel, the installed copy was treated like an ubuntu kernel and also like a mainline -rc kernel. - Refactor much of Utils/*.vala right out of existence.
o This ended up clearing up a bunch of build warnings as the janky code is just gone. - Added localization to a few odd strings here & there like in the notification text & buttons and the comments in the shell script written to do notifications.
This fixes up a lot of long-broken things, but it's not quite ready to call 1.1.0 yet.
Still TODO:
- The notification process does not exit after sending the notification, so with every notification, a new idle process gets stuck in the background. They are only cleared on reboot. (you could clear them manually with kill, they just don't go away on their own) I think it has something to do with the stdin/stdout/stderr of the Process.spawn_* commands. For most people they don't hurt anything but it still needs to be figured out.
- The new notification action buttons need a little refining. When you click any button, the listener for the notification perfroms the action and goes away (as it should), but the notification itself stays up and still has click-able buttons, but now the buttons don't do anything. Ideally either the notification should go away once you touch any button just like the close button, or there should be a permanent listener that never goes away and can respond to any button presses forever. That latter idea sounds bad, but there already is a permanent looping shell script in the background anyway just to provide the periodic check¬ify in the first place, so it could maybe be added to that.
- Save & restore the window size and column layout on app close.
- Button to show/hide only installed kernels, to quickly see all the installed ones even if they are many versions old and way down on the list.
Further away TODO:
- Other kernel flavors besides "-generic"
v1.0.8
v1.0.7
mainline now deletes the downloaded .deb files after installing them, so that cache/tmp doesn't just grow forever.
You may want to manually sudo rm -rf ~/.cache/mainline
one last time to clear out all the old kernel packages. (Yes, you probably will need sudo to delete files from your own non-root home directory. This is a known bug I plan to fix sometime.)
If your /tmp is not tmpfs, then you may want to sudo rm -rf /tmp/mainline*
too.
After that, cache will still grow, but it will only be the html index files listing info about the kernel packages, not the .deb files themselves. So the space used goes from ~1G to ~15M