ARMv7 Snap!
You must remember the arm64 Snap for SimpliPlay, right? Well, it's been ported to ARMv7 (32-bit ARM) on the Snap Store!
It's available to download as armhf there!
So, you might be thinking that I already struggled with arm64. Well, I did... But it turns out I just needed to repurpose the arm64 build for armv7 by using QEMU emulation.
But I forgot one line of code that made me spent, like, 4 more hours on this... literally...
Approach No.1
At first, I thought repurposing the arm64 workflow would fail, miserably. And I tried with QEMU emulation and it failed (I later realized it failed because I installed the tools but NEVER ACTIVATED THEM...). So I went to the trouble of creating an alternate workflow, that would take an AppImage and spit out a usable, ARMv7 Snap. Surprisingly, the latest stable version of Electron (as of writing), Electron v40, still supported ARMv7. Wow.
The Snap in particular relied only on the core20 base snap. Nothing else. Electron and its dependencies would instead be handled
by electron-builder while building the AppImage. After that, the regular snapcraft CLI would be used for the rest.
First, the AppImage would become executable via chmod +x during the build so users wouldn't have to do it themselves.
THEN the snapcraft CLI would be like "hey bro come here I'll stuff you in my backpack". And that stuffing would be pretty painful.
After the CLI primed and did some other stuff with the AppImage, the app was Snapped!
(note that there was a LOT more trouble that went on behind the scenes that will take ages to talk about).
Approach No.2
One day later (okay, let's not make this dramatic), I decided to actually ACTIVATE the QEMU virtualization instead of just letting it look at daisies all day, and use electron-builder to just make a regular armv7 snap, nothing special. No AppImage wrapping or packaging. So I tried, and it turns out I didn't even need to use USE_SYSTEM_FPM and SNAPCRAFT_BUILD_ENVIRONMENT like with the arm64 builds.
It just worked, surprisingly, which isn't exactly something I'm used to, considering my luck.
And then I realized just how much time I had "wasted".
Turns out I just created a reproducible workflow to make a Snap out of an AppImage with Approach No.1, that I could reuse for other projects. And it would work with pretty much any arch, too.
So in the end, I learned a lot, and did a lot. And the end result? A port of SimpliPlay for an architecture 90% of people don't even use anymore... oh well. Hope you enjoy the port! And help me test it if possible, cuz I don't really have any real ARMv7 hardware, and sadly, QEMU emulation can't bypass the need for core 32-bit-ARM-exclusive deps.
