FMW is finished

As all good things have to come to an end, my bachelor thesis has to end someday also. But I’m still looking forward to contributing to FMW, when are any updates or fixes needed. Official FMW 5.0.0 will be released soon. This was my first experience with an open source project and I liked it very much. I’m looking forward to start working on new open source projects in the future.

This project gave me a lot of experience such as learning how to deploy Qt applications on various operating systems, and how the structure of applications looks. I have learned the new programming language QML and how to use CMake in open source project. Another big experience for me is understanding how GitHub CI works. This was used to automatically create builds for various systems. I have practiced many options and advantages of Git (from the beginning I have been using only “git pull” with “git push”).

As a result I was able to create new generation of FMW.

This result couldn’t be achieved without my technical mentor Jan Grulich (his blog and twitter). And also without my leader of my bachelor’s thesis Dominika Regéciová (her blog and twitter). So I would like to thank you both, for the opportunity, patients and overall help.

Fedora MediaWriter (nextgen) on MacOS

Hi, for the past few months I have been working on MacOS build and fixing USB drive restoration on Windows as well as fixing few design bugs. I fixed overflowing highlighted option background in combobox used in Adwaita style on Linux. Next design fix was updating animations when changing pages. Now when we build the new FMW on all platforms, I can say I like MacOS and Linux versions a lot more than Windows version. I don’t like design of buttons. What about your opinion?

Windows

On Windows I have fixed the problem with USB drive restoration. This was present for a long period of time. Problem was caused by corruption of the partition table after the ISO file was written onto a USB drive and utility diskpart was not able to work with this drive anymore. This was quite tricky to figure out, but after all the fix was quite easy. I had to recreate new partition table using command “convert gpt” which creates new partition table on USB drive. For backwards compatibility with older systems and USB drives I had to run command “convert mbr”. After that utility diskpart now can restore the USB drive to original state.

MacOS

Making build for MacOS was quite tricky, because I don’t have any Apple device at home. So I had to use virtual machine (app sosumi available as snap) to try my changes I made to FMW. Even with this app I could not connect USB drive to properly try out full functionality of this new version. Thanks to my mentor and leader of my bachelor’s thesis Jan Grulich (his blog and twitter) for all the testing.

While updating CI manifest I had to make some tweaks to build.sh file, such as adjusting paths of few modules and libraries missed by macdeployqt or libraries that has to be copied manually.

For those of you who don’t know what is macdeployqt… Its “The Mac deployment tool can be found in QTDIR/bin/macdeployqt. It is designed to automate the process of creating a deployable application bundle that contains the Qt libraries as private frameworks” definition of macdeployqt from Qt docs.

All available builds you can download from releases on GitHub, if there are any problems  with the application, let me know either here or create bug in issues on GitHub.

Updates on the new generation of Fedora MediaWriter

In the past few months I have been developing new generation of Fedora New generation of FMW with a new UI written in Qt6 which will use native QtQuick styles for Windows and MacOS. At this point I have a fully functional application with all the features from the current version.

The application can be now build for Windows and Linux. Linux builds are also available as Flatpak for testing pourpose. Bare in mind this is still not the final version and there still might be some issues.

To develop new generation of FMW I had to learn, rework or update many things. To develop a new generation of FMW I had to learn, rework or update many things. A lot of them I saw for the first time like a complex project, QML, CMake, Qt… First of all I’ve started removing deprecated code that is no longer supported in Qt6 and made sure FMW can be built. After that I could start working on QML. I’ve started making pages and gradually adding basic functionality step by step.

Flatpak

For testing I’ve learned what is Flatpak and how Flatpak works. I’ve also learned how to create Flatpak using manifest file, this file was also needed to be updated. Thanks to GitHub CI we have available a test build made after every commit.

Windows

To develop Windows build I had to update the current script to support Qt6. That means updating qmake to cmake and removing all deprecated things. Also remove Adwaita theme, which is no longer used in FMW build on Windows. I also needed to copy all dependencies to create an installer for Windows.

Testing was pretty difficult for me, because I’m making the Windows builds on Linux and debugging was possible only in QtCreator on Windows. I had to boot multiple times from Linux to Windows and the other way around.

Windows version still needs some adjustment and fixes, such as restoring USB drive. For that reason we have available only the Linux version for testing, which has full functionality. I would be happy if you give me any feedback either here, or on github in the issues mentioning you use the nextgen version. You can get the development version here in the releases section.

New generation of Fedora MediaWriter

Welcome on my blog page, my name is Evžen Gasta. I live In Czech Republic and I’m studying FIT VUT in Brno.

I would like to share my news and updates about my development of new generation of Fedora MediaWriter (shortly FMW) as my Bachelor’s thesis.

Current version of FMW is running on Qt5, because this version qml doesn’t support native look on Mac and Windows, FMW looks on all platforms the same. At the beginning of the year 2021 was released new major version Qt. This version comes with many usefull news, such as support CMake as default build system, support of new version C++17 and support of native styles in qml…

As result new generation of FMW will run on Qt6 and will come with Adwaita theme only for Linux. Mac and Windows will be used native styles of Controls. Probably also fix some current issues after returning back full functionality later.

I have started development already and at the time of writing, FMW has prototype look and is able to restore drive with live Fedora. Also can write selected .iso file to drive and download file, on the other hand you can’t see progress of writing or download for now. After new year should be available preview version on Linux.

In college, we usually don’t develop such a complex aplications and if we do so, it is from scratch. So, when I started this project, it was quite confusing to orient in. But now I’m quite enjoying development of qml, it is fast and easy to learn and doesn’t need to be compiled, like C, or Java… On the other hand integrating with C++ especially understanding, which function is usefull can be sometimes more time consuming, than I would like.

The final version, with full functionality should be finished by May. If the development goes well, I’ll try update drive restoring on Windows. Because FMW is currently used mostly on Windows.

Stay tuned for more updates coming soon.