Making software compatible between Zorin 16.3 and 17.1

So, I have written an application on my Zorin 16.3 laptop that I'm building into a deb package and installing a couple of other Zorin 16 machines. - Now I got a brand new machine where 16 doesn't run (An Intel N300 based mini-PC) with some fiddling I got Zorin 17.1 to run on it (upgrading kernel to 6.9.2 for hardware support using mainline) - However when I try to run apt install ./my-package.deb it fails instantly that it can't find qtdeclarative-abi-5-12-8 and now I'm wondering how many of the qt packages and possibly other packages are not available...
I can obviously install zorin 17.1 on my dev machine too... And possibly convert my app to qt6 instead of qt5 but, in the interest of getting things to work quickly with the least amount of work, is there a nice way to make the application compatible with both 16.3 and 17.1 machines?

Maybe the Problem is the Package Name. I've made a quick Look and found several Packages with qtdeclarative5 at the Beginning.

Ya. I'm not an expert on deb dependencies... TBH I copied some existing ones and beat them with a wet newspaper until my program installed. (I do enterprise applications for a living, so coding isn't an issue and QT wasn't heard to learn in a couple of days... I'm used to web and react now, but I have developed desktop applications in TclTK and Java in ages past...)

Anyhow, long story short, this is my install dependencies:
Depends: ${shlibs:Depends}, ${misc:Depends}, libqt5quick5 (>= 5.12.8), libqt5qml5 (>= 5.12.8), libqt5gui5 (>= 5.12.8), libqt5quickcontrols2-5 (>= 5.12.8), libqt5widgets5 (>= 5.12.8), libqt5sql5 (>= 5.12.8), libqt5network5 (>= 5.12.8), libqt5x11extras5 (>= 5.12.8), libx11-6, libmpv1, libavformat58, libavcodec58, libavutil56, qml-module-qtquick2, qml-module-qtquick-controls, qml-module-qtquick-controls2, qml-module-qtquick-layouts, qml-module-qtquick-window2, qml-module-qtquick-dialogs, qml-module-qt-labs-folderlistmodel, qml-module-qt-labs-settings
Aside from the first macros, that I don't know what does, the rest are essentially all the libs I pulled in while developing (in -dev format obviously)

The app is a Qt app. For reasons, the package you are looking for is not in the Jammy repository but is in the Focal Repository.

Your dependency list shows a >= 5.12.8 (greater than or equal to - version number) so you could, possibly, change that version number in your 'depends' list to match your currently installed version if the above link to the .deb package refuses to install.

2 Likes

OK, turned out that the easier solution was to do a system-upgrade on each of the older machines and the development/build machine and just run the build again... Everything worked out of the box, it took less than half an hour. - I'm considering upgrading the app to QT6 now that I have everything available.

3 Likes