pine64 / pine64_updater

Application for updating PINE64 devices, such as Pinecil
Other
174 stars 11 forks source link

Programming Language of Original Pinecil Updater #21

Open moriel5 opened 2 years ago

moriel5 commented 2 years ago

I'm not going to tell you how and what to do, especially as I have no right to do so, however I see that the rewrite is unfortunately in Flutter, which is pretty bad in regards to system resources utilization (though I understand that it makes it much easier to build cross-platform code).

This got me to thinking, in what language was the original pinecil-updater built with?

gamelaster commented 2 years ago

@moriel5 I'm sorry that picking Flutter didn't made you happy, although, picking from Electron, Qt Quick and Flutter, I chosen Flutter (it took me a few hours of thinking about in which framework/language I will do it, since performance and system resources usage is important for me, and Flutter seemed as best choice). I hope that you give a chance to this version, I think it performs quite well, even on slower devices, or in case of interest, I can rewrite the app a bit to have also CLI version (AoT compiled).

But to your question, it was made in C++ and in Qt 5 Framework

moriel5 commented 2 years ago

Thanks for the information, I didn't really know how to tell just from looking at the code (I only have rudimentary coding skills, not enough to actually code something proper).

No need to be sorry, since this is your choice, and as I don't really have any right to decide things for you in any case, there is no need to make me happy (I'm just a single user).

Regardless of my thoughts on the matter, I respect your decisions, and despite Flutter's notoriety, it may very well be the best option in this case (not being a developer yet, I can't know how well something will perform before testing it, I was simply going with my past experiences with Flutter software, as well as what is often said about it online).

Don't worry, I'm not planning on forking anything (even if I was going to, I lack the skills to do so), I was genuinely interested.

tormodvolden commented 2 years ago

@moriel5 note that you can find the source code for the old Pinecil Updater in the "old-pinecil-updater" branch in git.

moriel5 commented 2 years ago

@tormodvolden Thanks for the insight.

Funny thing, that is what actually tipped me off to the fact that the project had been rebuilt from the ground up in the first place, since I was initially confused by the sudden change in the README.

moriel5 commented 2 years ago

@gamelaster Is there currently a way to complete to compile the new Updater for Linux? Since I do not see any as of the latest commit.

I just updated my Pinecil with dfu-util, so all is good there, however I would like to test out Pine64_Updater.

gamelaster commented 2 years ago

@moriel5 the app itself is easy to compile, but still it requires few lines changed, but most importantly, compile libdfu-util for Linux. To be honest, the previous Pinecil Firmware Updater didn't had "official" package support due I was confused about package distribution (if I will create flatpack, or deb for Debian users etc.).

moriel5 commented 2 years ago

Thanks, I'll look into it and see whether I understand enough to change those lines.

Since dfu-util is already packaged for my distro of use (Solus), that much is already taken care of (I believe that there is also a -develpackage available).

I'm not surprised that the diverse Linux ecosystem confused you.

My recommendation, whatever method of distribution you decide upon, try to leave basic instructions that are clear for compilation, so as to make it easier for volunteers to package pine64_updater for their distributions (dpkg/APT for Debian and Debian-based distros, RPM for RPM distros such as Red Hat, Fedora and OpenSUSE, Pacman/ABS for Arch and Arch derivatives, eopkg/sol for Solus, etc).

gamelaster commented 2 years ago

@moriel5 Yes, I will definitely prepare instructions for easy installation of the app on the Linux.

About the dfu-util, there is no -devel package, the libdfu-util modification is made by me and it's living in another repository (the modification of the project is messy, and needs to be made properly to try it to get into the upstream). So this library will be needed to be shipped within the app.

moriel5 commented 2 years ago

@gamelaster Ah, thanks for enlightening me.

That makes sense, though it could potentially cause issues with official acceptance into some distribution repos (rules, not a code-wise issue).

I'll try to get to it sometime this week (I first need to compile a modified LLVM 10 compiler, in order to compile an open source firmware for BCM5719 NICs and test it on my NEC EXP182As).