-
-
Notifications
You must be signed in to change notification settings - Fork 177
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create AppImage for linux? Maybe containerize just one linux build environment in Docker image, first? #3459
Comments
Ah. I see you might actually be using Buildah, in . . . |
@bdklahn It's not clear to me what you're trying to achieve. |
I guess I was thinking it would make it easier to have packages which would actually work on Linux. I, personally, run OpenSUSE. The latest package (updated this January), again, doesn't work, testing the simple "seamless xterm" example on your main page in two different shells on the same machine (I filed a bug there, assuming you'd say "Their package is broken."). So I can, like I did just last summer, try to build from source. But then I always encounter like a half dozen dependencies IN ADDITION TO the many listed on the dependencies page. And with the regularly cryptic or useless error messages, it is often very difficult to figure out what needs to be installed. I figured, OK, I'm on a bit of a weird distribution, which I can't expect folks to support in addition to the most popular ones. So I thought I'd try an installation in a container of a distribution you support. I chose a stable LTS version of probably the most popular: Ubuntu focal. Should pretty easily work, right? It must have worked for you, since you have an example with Ubuntu Focal Fossa. Except that doesn't work, as written. Whoever created that must have been on a personal machine where they forgot they had installed (directly or indirectly) at least three additional, packages, so far. I'm currently building up a Singularity def file based on an "Official . . ." Ubuntu Focal Fossa image. Here's what I have so far.
(ultimately solved with I am currently hitting . . .
So I guess my point is that the packages aren't "providing a level of integration . . .", etc. The whole purpose of a distribution packaging system is to have a system where a software and all it's dependencies can be easily installed. The Xpra package does not do that. I'm not sure what you mean by "heavy". Yes, with more dependencies inside, the file can get pretty big. But this is not the year 2000. Disk space is cheap. There is a lot more network bandwidth, these days. Shared libraries are not as critically useful as they used to be. I thought, maybe, have a single container, where you build a single executable from. At least the container part would be useful. So you, and users, would actually know what the actual dependencies are, and have a clean, reproducible build environment. I keep forgetting, you are already using containers with buildah, etc. |
As far as we are aware they do on all the platforms supported: https://github.com/Xpra-org/xpra/wiki/Platforms
Definitely!
Perhaps you could help us and tell us what those are?
Which one? Perhaps we can improve it?
Yes.
As per the first hit on google:
IIRC,
Which are?
You haven't included any details of the actual problems you are hitting (apart from the package manager not being fully installed), so it is impossible to ascertain that.
Sort of, with some major caveats.
Disk space is not the primary concern with "heavy" containers, I was thinking of security and maintenance costs.
We'll have to agree to disagree on this one!
Yes, quite a few features were simply not achievable using flatpak / appimage / snap / whatever. (ie: printer forwarding, etc)
I'm not sure what you mean there.
I'm not seeing the problems, please share the details. |
FWIW: I needed a clean VM to test something else, so I followed the installation instructions for Ubuntu 20.04 (aka So unless you can provide more details, I will close this issue as The installation instructions on the wiki now include |
Yes. That was my thought: I'd need to run a full VM, to test and use Xpra, in my case. I suppose . . . there IS a difference between distribution version snapshot, and the full desktop installer version of a specific distribution version snapshot. :-) And I was going to ask if Xpra is always tested in a reproducible run-time environment (e.g. fresh VM), before releasing a package claimed to work on x distribution. Anyway, I am definitely also wrongly mixing build time "working" and run time working. Of course end users likely don't care if something builds, but then can't run it. I've always loved the idea of Xpra. When it works, it's pretty darn cool. It's just that, over the years, when I've tried it, the majority of the time it doesn't "just work". I think the first try was when I was running it on FreeBSD (PC-BSD -> TrueOS). I think it was then, or later, when I also installed on MacOSX. I probably even tried on Windows, but don't recall. Oh yeah, at work we also had it running on CentOS. That might have worked . . . maybe. So, yes, we can take time and iterate through a bunch of "I'm getting this specific error, etc.", . . . And often each individual error message is an easy Google lookup, but . . . It just seems that: Distribution developers would have to test and make sure 1000's of packages work. Each benefits from the other. Each often blames the other for apps not working. And I suppose this might be a bit natural, for the opensource stuff, because many are not being (directly) paid. We can't expect support we aren't (somehow) paying for. I've been using open source, as my primary work env for about a decade now, and like it. But sometimes it feels like the tag line could be "Free and open source: Sometimes you get what you pay for.". :-) Anyway . . . way too much verbiage which probably should have been saved for another place (IRC?) It seems reasonable to close this issue (which you may have already done, whilst I type in this stale tab :-) ). Regarding the initial issue, proper: I'm not sure it is "invalid" to consider a more unified Linux packaging strategy. Maybe you can suggest a reasonable best option if I do still want to run on OpenSUSE. Maybe first try and get a concrete idea of where the OpenSUSE package maintainer is at, on this? -offer to help there? I might guess that they just have it on "CI autopilot", with their Open Build Service, and maybe don't really, then, run test it(?). Almost forgot. I really appreciate your time here, and working on Xpra, for whatever that's worth to you :-) . |
Not just a fresh VM, but also upgrades, and compatibility with older versions, across dozens of Linux distro versions and MS Windows + MacOS.
Sadly, downstream packaging is a problem that has been plaguing the project for many years: https://github.com/Xpra-org/xpra/wiki/Distribution-Packages
FreeBSD is not an officially supported platform, but I do test it occasionally and it is close enough to Linux that it should work with minimal effort.
MacOS does work but because of the all-in-one binary image format, it's a real drag to maintain and Apple makes you jump through hoops to install packages outside of their app store.
MS Windows definitely works, it has been a supported platform for over 10 years.
Same as MS Windows. Very popular as an xpra server OS.
I try to record all the common pitfalls in the: https://github.com/Xpra-org/xpra/blob/master/docs/FAQ.md
It's an ongoing battle between those that want fewer direct package dependencies (for minimal installs and such) and those that want the package to just work with all the features included (ie: me).
These subsystems are most likely to cause integration problems: printing, service and authentication, nvenc (needs device access), etc
That's a good idea.
Looks like it.
Yes, building from source should be quite easy and you don't need to enable all the features to get working setup.
Thank you, much appreciated! |
This was a duplicate of #1748 which contains more reasons for not going down that path. |
Would it work to put a single xpra AppImage in the executable path? I don't know about the Travis CI they mention, but GitHub Actions has Docker builder actions, and can automatically build and store images in GitHub's container registry.
It seems like one could then get away with having just one linux build environment to build something that could work on all the Linux distros. A Dockerfile, maybe "FROM" a CentOS or Ubuntu/Debian LTS distro, could serve as . . .
a. where Xpra devs can do the builds
d. community users can do builds
c. living documentation of how to create a working Linux build environment for Xpra
Personally, I really like Singularity containers, because they don't need to be run as root nor have a daemon running (are possible for running things in multi-user environments, like HPC compute clusters).
So what I do is use them with the docker:// bootstrap. But Docker is much more widely used and supported in automatic build systems. It is also nice that Dockerfile parsing leverages a unionfs to enable layered builds, which can save time when adding software.
For some projects, I have a build Action set up to trigger a build when I push a tag matching a certain pattern.
The text was updated successfully, but these errors were encountered: