LabVIEW Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
EMCCi

Full LV linux support with flatpack

Status: New

Flatpak is a distribution-agnostic package manager, as long as Flatpak is installed on the system, the same Flatpak package can be installed on any distro. A Flatpak package contains not only the application, but the libraries needed to run it.

 

So, if NI creates flatpak package with LV and all of its dependencies, then we would have a LV that it's able to run in any distro! Without to having the hassle to manually support every major distro or (like at the moment) only supporting a few of them.

4 Comments
AristosQueue (NI)
NI Employee (retired)

Creating a new way to distribute LabVIEW doesn't mean much if we can't also distribute all the drivers, libraries, and editor extensions. Those are all distributed as NI Package Manager packages.

 

@EMCCI, what if NIPM itself were distributed as flatpak? Would that then give us leverage to install all the rest to any distro? If not, I cannot see this idea getting very far.

EMCCi
Member

When I was naming LabVIEW, I was doing it in a very general way with its whole ecosystem, including all NI necessary software.

 

Currently the software from NI that I used in Linux (and I think that it's all this way) it was available in RPM or DEB packages (some only RPM). Those packages rely on other shared packages in the host machine to avoid package duplication. This is why you have to be careful about having the proper distribution and the proper distribution version, because you need those shared packages and you need them in the correct version. That's why LV and other NI software it's only supported in specific distributions in specific versions.

 

With flatpack packages (instead of deb or rpm), all of those dependencies can be integrated inside the flatpack package and make the software run in a somewhat isolated sandbox, without relying in the packages of the underlying distribution, therefore becoming distribution agnostic. For example you can ship your software with a legacy or specific version of python or curl becuase it's what you need because reasons.

 

I'm not an expert in the matter, so I can't be 100% sure of the feasibility and you will need to check. But I think it can be a very interesting path to expand NI software Linux compatibility. Flatpack can be easily installed (or it's installed by default) in all the distributions I know (Debian, Ubuntu, Fedora, CentOS, Fedora, Red Hat, OpenSuse... Even chromeOS).

 

EDIT: It will also allow NI software engineers to only have to test, debug & support NI Linux software in a single ecosystem, the one you fix inside your flatpack package, instead of having to test it for every distribution and every distribution version environment. They would have full control of which dependencies and which versions of those packages they include in their flatpack package.

AristosQueue (NI)
NI Employee (retired)

The need to share components -- and to have shared components rev independent of the other components -- in order to support an entire development ecosystem makes it seem to me like the flatpak concept is dead on arrival. The driver ecosystem simply isn't amenable to block installation like this -- it needs subcomponents to be independently revved.

 

But I'm not an expert in installers, so I've flagged it for attention to other developers. We'll see if they have further comment.

EMCCi
Member

Ok nice.

 

But it wouldn't be necessary to create one huge flatpack package. Each software component could have it's own package if bundle size doesn't rocket up.

 

Probably doesn't work, but it worths a look.