WxFixBoot 2.0’s 2nd pre-release done, news on upcoming changes!

Hi everyone, it’s been a while since I posted anything on here, so I’m making two new posts now: this one on WxFixBoot, andΒ this one on the new DDRescue-GUI 1.6 πŸ™‚

I’ve made the usual shed-load of changes, so maybe WxFixBoot 2.0 will hopefully be ready for release soon.

Here’s what I’ve been up to, starting with the best bit:

GUI Changes

WxFixBoot’s restore windows are no more!

Yep, I’ve FINALLY gotten rid of them for good, and the features they had are now incorporated in the New Bootloader Options Dialog.

The Restore Window
The Dreaded Restore Window. At long last, it’s gone.

Now, on to the serious things:

Support for Fedora and Derivatives

As I mentioned in my last post, I planned to support Fedora soon, and that made it into this release. I’ve done some basic testing, and everything seems fine, which is great πŸ™‚

Updated System Info Window

The System Info Window has been updated to display bootloader info as well now; you can check bootloader things here now if you want to know more.

WxFixBoot's System Info Window 1
Bootloader Info in WxFixBoot’s System Info Window on Fedora 24.
WxFixBoot's System Info Window 2
More Bootloader Info in WxFixBoot’s System Info Window on Fedora 24.

New Bootloader Options Window

This now works, and has replaced the old one. It is WAY more versatile than the old one, and far easier to use as well. It helps to gather all the settings into one place, which means there’s less to-and-fro if something isn’t right, and warnings can be made earlier, before they become a problem. Note that I do need to make it slightly shorter due to issues with screen size, but that won’t be difficult. It still looks the same, but here’s a screenshot for you:

WxFixBoot's Bootloader Options Window
WxFixBoot’s
Bootloader Options Window on Ubuntu 15.10

The old bootloader options window is gone too, and all the settings are stored in dictionaries.

Settings Window

I got rid of one messy thing, only to make another thing messy XD

WxFixBoot's Settings Window
WxFixBoot’s Messy Settings Window on Ubuntu 15.10.

Right now, all this window does is open the Bootloader Options Window. The checkboxes on it don’t do anything, but that will be remedied later. All of the stuff on this window will be moved to the main window, which will hopefully not make that one messy.

Last, but not least, the Main Window

WxFixBoot's Main Window
WxFixBoot’s Main Window On Fedora 24.

So, the bootloader checkboxes have been removed. Whoop dee do. Next time around, a button will replace the filesystem checker checkboxes. It will open a new window to select specific options for each filesystem, and it will let you pick which ones to check.
I’m not really sure what this will look like yet, but hopefully it’ll be good.

Behind the scenes

I have done literally tons of stuff here, so I’ll try to condense it into something readable XD

Bootloader Stuff

WxFixBoot now gathers Bootloader information on startup, including kernel options, timeouts, menu entries and so on. All this powers the new Bootloader Options Window. Multiple EFI partitions are now supported (1 for each OS/Bootloader), and /boot partitions for each OS are recognised too.

This is far more intelligent than it was in previous versions of WxFixBoot, because each OS is tied to its bootloader, EFI partition, /boot partition, and bootloader settings, whereas before, only 1 bootloader could be detected, and it was hard to tell which OS was in control of it. If you had more than one OS, each one was assumed to have the same bootloader as the others, and this would only be checked later, at runtime, when you were asked which OSs you wanted to change.

Because everything’s done earlier, problems can be detected and avoided, and multiple bootloaders and OSs are fully supported now, along with support for Fedora. It also doesn’t make startup any slower; due to refactoring and general maintenance, I think it’s actually faster than in the last release!

All of this was a mammoth task, and it took AGES to get it working well for each different bootloader, but it was worth doing in the end πŸ™‚

Dictionaries

Almost everything is now using dictionaries, and the old global EFI partition code and similar has been removed, which makes the whole thing much easier to maintain. Quite a few of the modules have merged together as well, because some had almost nothing in them after refactoring.

Miscellaneous

A lot of code has now been tested and fixed where necessary, so the project is in pretty good shape at this point; most of what’s left is stuff like implementing the filesystem check window, designing a nice text menu for ELILO to use, and so on.

Most of this stuff has been fixing little things to make stuff run faster, removing dependencies where possible, and so on.
On of the most important things I did was getting badblocks’s output to appear correctly in the output box. I’ve been trying to do that for ages, and even tried implementing pty support (read about that here, and also read many other pages; it’s complicated), all to no avail. Then I realised it uses backspace characters instead of carriage returns… At least it works now.

Here’s an in-exhaustive list of the other stuff:

  • Remove functionality for backing up and restoring partition tables; there are other tools that can do this better.
  • Make the MainWindow background image show on Ubuntu > 14.04.
  • Various fixes along the way for LV/RAID disks in the GetDevInfo module.
  • Purging packages instead of just removing them to prevent leftover config form messing things up.
  • Fix TONS of bugs along the way in the bootloader config getting functions. Too many even to count!
  • Fix a lot of important issues with setting LILO and ELILO configuration.
  • Change a lot of stuff so WxFixBoot can work on Fedora. Examples:
  • Don’t use lsb_release -a to get the OS name any more, because it’s not installed by default on Fedora.
  • Look for grub configuration in /boot/grub2 too, instead of just /boot/grub.
  • Use e.g. “grub2-install” instead of “grub-install” where possible, because Fedora uses different names for these commands.

Upcoming changes

This is what I hope to get done before the next (and hopefully last) pre-release version of WxFixBoot, 2.0~pre3:

  • Get rid of the Settings Window, and
  • Move the settings there to Main Window.
  • Design the filesystem check window.
  • Design a nice menu for ELILO to display on boot.
  • Implement backing up and restoring the bootloader config (the config, not the bootloader itself).
  • Get the system report functions working again (they’ve been disabled from almost the start of development on v2.0).

I will probably find lots of other stuff that I hadn’t thought of to do as well, as normally seems to be the case.

Conclusion

As you can tell, I’ve been doing a lot of programming, and I’m getting there now, I don’t think it will take me too much longer to finish this one, and then I can start on the next thing, which will be written in C++, and later have a GUI written for it in Python. Or, I could actually have a break, but not much chance of that XD

I think I’m finished with this post now, but see this one if you want to read more. If you liked or disliked this post, please let me know in the comments so I can make the next one better.

I will be doing a detailed hands-on review of Linux Mint 18 soon, seeing as it’s my daily driver, and from now on, I will post more often; I have a few interesting ideas I’d like to share, and a new project that I’ll start work on soon πŸ™‚

Programming , , ,

About Hamish McIntyre-Bhatty

I’m currently studying for a Computing and IT degree with the Open University, and am a software developer as well. I enjoy coding in Python, C++ (still learning), and Java.

Having written 4 open-source programs (hosted on launchpad.net), set up my own website, and started volunteering at Wimborne Model Town to work on their river control system, I still find the time to enjoy cycling, acting, photography, and playing bass guitar. I go climbing every now and then as well.

As you may have guessed, I also enjoy blogging :)

Previous Entries WxFixBoot 2.0~pre1 has been released! Next Entries DDRescue-GUI v1.6 has been released!

Leave a Reply

*