A Snap Emulator ? A request for an Idea I have

Considering there are several apt’s that we do not currently have the ability to run as flatpak, most notably VPN’s among others. I was wandering if someone could make a snap emulator to run such app’s.
While many can be run in a VM it is often the case that that the purpose of the apt is defeated by the virtual environment being isolated from the main os, and / or drives.

I have seen several posts on other sites that mention vpn’s can not work as flatpak because they require elevated privileges to create tap or tun devices. If that is the case for one castigatory of networking software I imagine other categories of networking software will have similar issues

While I understand the concept of a VM I am not well versed in the deployment of them, and the few I have seen on flathub do not seem to allow for access to a drive external to the virtualised environment. This makes applications used for downloading, and ripping inconvenient to use in a VM.

I propose a flatpak that emulates an environment in which instances of snap apt’s can be run.
the flatpak would contain snap and it’s dependencies a gui and be able to load a snap apt and it’s dependencies and then run it.
installing a snap apt and it’s dependencies in to a flatpack would mean the flatpak would take up alot of space. So I would suggest the flatpack creates some kind of partition or reserved space in RAM to install snap, it’s dependencies and the instances of snap apt’s and their dependencies.

To create a quick and automated start-up the flatpak could work on some kind of code that contains a list of where the repositories are on the web and the commands to run in order to install them in to RAM.

Maybe my hardware knowledge is not up to scratch this area. However I read that Private Internet Access VPN run their entire service off RAM and not off HDD’s, SSD’s, or Media Drives.
If they can do that for a global service, surly a flatpak application can use RAM to emulate and run the snap environment while keeping it, any snap apt instances and the dependencies required sandboxed by the flatpak apt. While still providing access to the main os, elevated privileges and storage.

I do not have the necessary skill in coding to create such an apt.
The largest apt I created was a python program that said hello, asked me my name and then said hello to me. That was yesterday.
I am still learning how to use python, and it’s syntax, so I would not be the person to code this.
However I would be happy to work with someone who has the necessary skills to create such an apt for flatpak.

I have a few ideas about layout and design, however python is my first programming language, so please do not expect me to present in code. I will try and present them as technicaly as I am able to however I am not even up to scratch on BBS code (I think that is the code used for making posts online)

I know little bits of different languages, but not enough from any one language to write any kind of useful script or code line.

If you would like to work with me on this expect lots of long plain text posts and hash tag comments in between bits of code.

I look forward to hearing everyone’s replys and hope to find someone who would be willing to program this.

FYI I am just starting a computer science course on khan academy in preparation for doing an online GCSE in the subject once I have the money saved up.
So what I may lack in knoledge about the subject at the moment, I am already on my way to learning.

I guess the better idea would be to create a portal allowing to manage tap or turn devices?

1 Like

Forgive my ignorance, it’s just when the word portal is used in computing I think associate it with a website that provides access to something.

So I am wandering if that would be like a web service that the flatpak could use?
Or would that be more like a segment of code?

It’s a part of code, that runs on your machine.

Ok so I know what a bus is in terms of hardware, but the phrase “dedicated bus connection” is throwing me a bit.

What exactly does that imply ?

My understanding of a bus is printed line on the circuit board that distributes either data or power various components on the same board.

Is this implying a separate machine with the portal installed on it to act as a server?

I know very little about software development, prototyping and deployment. If this requires an external device it would be very difficult for me, on the software design level, to help with that.

I have a basic understanding of electronics, and many be able to help with the hardware design of such a device.
I am thinking already, if this is the case, that some type of raspberry pi based device may work for this purpose, however I have never bought, nor used a raspberry pi and am only vaguely aware of the different board’s capability’s.

If it does not require an external device, how, and this would be of interest to me for reasons beyond the scope of the project, do you create a “dedicated bus connection” ?
I am assuming it has something to do with the hardware bus address assignment. In windows that could be altered in using devman and the registry but I have not seen anything in Ubuntu remotely resembling devman since I started learning Linux in late December.

I am thinking if it is the “Dedicated bus connection” is a software device, that the portal apt creates then since the portal is required to match the native design of the os, the flatpak could provide install options to the user so that that can choose which portal they require. This would provide compatibility.

In the terminal it could list the options as numbered bullets and request a number input. the inputted variable would correspond to the repository / install command for the chosen version of the portal.

In a gui similar setup could be implemented however instead of listing the options as numbered bullets the options could be listed with a tick box before the string.
I guess the code would be something like

'Print (“GTK”) if true, sudo apt install GitHub - flatpak/xdg-desktop-portal-gtk: Gtk implementation of xdg-desktop-portal,
Print (“GNOME”) if true, sudo apt install GNOME / xdg-desktop-portal-gnome · GitLab,
Print (“KDE”) if ture, sudo apt install Plasma / KDE Portal for XDG Desktop · GitLab, ’
#I do not know the code for a tick bock.
#I am guessing the code would need a different style of install command for each however I only know one.
#I have no idea how something like this would be coded in to a terminal installation.

I guess the next step would be to provide the user with an option to choose a default form that file api’s are passed to the portal apt, after installation.

every desktop should by default ship a portal implementation or have a fallback portal like xdg-desktop-portal-gtk you don’t need to worry about that.

D-Bus is basically software, that’s highly likely also included in your distro by default D-Bus - Wikipedia