oSoMoN Posted January 14, 2017 Report Share Posted January 14, 2017 Hi everyone, Ever heard of snaps as a new packaging format? If you haven't, information available at http://snapcraft.io/. I packaged 0ad as a snap, it is now available in the Ubuntu app store for amd64 and i386. Official announcement on the snapcraft mailing list: https://lists.ubuntu.com/archives/snapcraft/2017-January/002486.html. Note that the package is registered under my user in the ubuntu app store, but I’m happy to hand it over to the development team if this is something you're interested in maintaining. For anyone interested in the packaging details, the code lives here: https://code.launchpad.net/~osomon/+junk/0ad-snap. Feedback welcome, and keep up the awesome work on 0ad, my favourite game by far. 1 Quote Link to comment Share on other sites More sharing options...
leper Posted January 14, 2017 Report Share Posted January 14, 2017 Moved this out of the announcements forum to a better place (as that one should be about WFG announcments, I'm sligthly surprised that you could start a topic there). We do provide a ppa, that provides updated versions of the game for Ubuntu versions and doesn't have the shortcomings of emulating static libraries. Quote Link to comment Share on other sites More sharing options...
Lion.Kanzen Posted January 14, 2017 Report Share Posted January 14, 2017 2 minutes ago, leper said: Moved this out of the announcements forum to a better place (as that one should be about WFG announcments, I'm sligthly surprised that you could start a topic there). Isn't the first time this happen. @feneur you can contact with @implodedok ? Quote Link to comment Share on other sites More sharing options...
feneur Posted January 14, 2017 Report Share Posted January 14, 2017 1 hour ago, Lion.Kanzen said: Isn't the first time this happen. @feneur you can contact with @implodedok ? I don't need to contact him, I could change it myself. I don't really see the need to though. Most people won't post here unless they have a reason to, and if they do it's easy to move/delete it. If this actually would have added something new and not just another way to do the same thing that can already be done I think it could have been relevant to have in that forum, but I guess that can be discussed. I think it's better to have the possibility in case there is a situation where there is a point to it, even if we might have trouble thinking of relevant topics at the moment, than not to have it. 2 Quote Link to comment Share on other sites More sharing options...
oSoMoN Posted January 14, 2017 Author Report Share Posted January 14, 2017 2 hours ago, leper said: Moved this out of the announcements forum to a better place (as that one should be about WFG announcments, I'm sligthly surprised that you could start a topic there). Sorry I posted that in the wrong place, and thanks for fixing it. 2 hours ago, leper said: We do provide a ppa, that provides updated versions of the game for Ubuntu versions and doesn't have the shortcomings of emulating static libraries. Right, snaps embed all their dependencies, not relying on system-wide shared libs. Much like a windows or java application would do. That’s a new paradigm for people used to the traditional linux distribution model. There are pros and cons, and I’m not saying this should replace the PPA (which is what I used to use). Rather, this is (hopefully) a way of reaching more gamers Quote Link to comment Share on other sites More sharing options...
sphyrth Posted January 14, 2017 Report Share Posted January 14, 2017 I made a similar question once, but it was about AppImage. The real benefit I could see is that if I have an Internet Cafe filled with Linux machines, then I could just download 0 A.D. once and just slap it anywhere rather than download it for each machine. But I'm just settling on 0 A.D.'s DEB files for a workaround: download once, install in every Xenial Machine. Quote Link to comment Share on other sites More sharing options...
leper Posted January 15, 2017 Report Share Posted January 15, 2017 3 hours ago, oSoMoN said: Much like a windows or java application would do. That’s a new paradigm for people used to the traditional linux distribution model. And both of these support sharing libraries too (though in the former case you might end up with a quite large WinSxS folder). Not new, rather decades old. I did not use the static linking moniker without a reason. You can just build something statically (though that ignores what to do with the data) against some quite old (and thus supported everywhere) version of glibc and have it run on most Linux distributions. However both that and these bundle solutions have the same issue as you have possibly multiple versions of the same libraries stored (not a huge issue nowadays with FS compression and deduplication, and huge amounts of storage space available) and have to rely on whoever created that bundle to provide security updates (and I doubt a lot of those have someone responsible for tracking security issues in libraries; while most distros do have that). I do see the appeal of having something that should work everywhere, but then again nobody forces anyone to use a distro that lives years in the past with regard to shipped software. 1 hour ago, sphyrth said: The real benefit I could see is that if I have an Internet Cafe filled with Linux machines, then I could just download 0 A.D. once and just slap it anywhere rather than download it for each machine. In that case you should create one image (centrally) and mirror that to all the boxes, or even boot of a NAS caching used files locally. That way you have less work administering the whole thing and can spend more time beating your regulars at the game. 3 Quote Link to comment Share on other sites More sharing options...
Loki1950 Posted January 15, 2017 Report Share Posted January 15, 2017 2 hours ago, sphyrth said: The real benefit I could see is that if I have an Internet Cafe filled with Linux machines, Not on this side of the Atlantic have never seen even one Linux machine at any internet cafe of which there are six with in walking distance most still have XP or at most Win 7. Enjoy the Choice 1 Quote Link to comment Share on other sites More sharing options...
oSoMoN Posted January 15, 2017 Author Report Share Posted January 15, 2017 10 hours ago, leper said: Not new, rather decades old. New as in "unlike what traditional linux distros do", not new as in "just been invented", of course 10 hours ago, leper said: have to rely on whoever created that bundle to provide security updates Indeed with snaps the responsibility of providing security updates falls on the packager. Thankfully 0ad has an active community of packagers for major linux distros, but many software vendors don’t have that, and they want to be in control of the versions of the deps their software will run against. One considerable advantage of snaps is that they run fully confined by default, so even if using old libs with known vulnerabilities, the damage they can do the host system is very limited. Quote Link to comment Share on other sites More sharing options...
Michael Hall Posted January 18, 2017 Report Share Posted January 18, 2017 Hi all, I work with oSoMoN, just jumping in to add some thoughts to the conversation. Quote You can just build something statically (though that ignores what to do with the data) against some quite old (and thus supported everywhere) version of glibc and have it run on most Linux distributions. This is quite true, but it means you have to sacrifice having the features of a modern library version for the convenient or portability, or sacrifice portability to gain the features. Bundling those libraries means you get to keep both, while only sacrificing a little disk space. The build tools (snapcraft) also make it considerably easier than trying to build against an old library. Quote However both that and these bundle solutions have the same issue as you have possibly multiple versions of the same libraries stored (not a huge issue nowadays with FS compression and deduplication, and huge amounts of storage space available) Indeed, with snaps being bind-mounted squashfs filesystem images, they can sometimes take up less disk space than a traditional package that is extracted on install. Quote and have to rely on whoever created that bundle to provide security updates (and I doubt a lot of those have someone responsible for tracking security issues in libraries; while most distros do have that) They don't have to, as I said above the build tools make it easy to do, and in most cases re-running the build script is all that's needed to get the latest (fixed) version of those dependencies either from your distro or directly from upstream. For an actively developed application, this isn't going to be a problem for the developers or users. And, as oSoMoN mentioned already, snapped apps are run in a sandbox, so even for apps that don't get updated regularly, they won't be able to damage the user's system. Quote Link to comment Share on other sites More sharing options...
Leo Arias Posted February 14, 2017 Report Share Posted February 14, 2017 Hello! A snapcraft and 0ad fan here I've reviewed the package from oSoMoN and I have been playing with it. I agree it would be awesome to publish it in the ubuntu store. Quote Link to comment Share on other sites More sharing options...
oSoMoN Posted July 31, 2017 Author Report Share Posted July 31, 2017 Following up on this thread to advertise that Alpha 22 Venustas is now available in the Ubuntu store as a snap package. All that's required to install and run it is: snap install play0ad snap connect play0ad:process-control :process-control play0ad.0ad Feedback welcome! 2 Quote Link to comment Share on other sites More sharing options...
oSoMoN Posted July 20, 2018 Author Report Share Posted July 20, 2018 I pushed a change to the snap package to get the desktop file from the source tarball, instead of a hardcoded, old version. This ensures the MimeType=application/x-pyromod+zip association is there and generates the corresponding mimeinfo.cache entry when snapd installs the snap. This, however, is not enough. The host system also needs to be made aware of the new mime type (need to run update-mime-database with the pyrogenesis.xml file). As far as I can tell snapd doesn't provide such a feature yet, but I have asked about it on the snapcraft forum. Please note that the name of the snap has changed from play0ad to 0ad (the previous name was a consequence of a limitation in snapd that didn't allow names starting with a digit, but this was fixed since then). Also note that the process-control interface doesn't need to be manually connected any longer. In summary, to install and run, just do: snap install 0ad 0ad This will get you the latest official release. If you feel adventurous and want to try the latest changes in the development repository, use the edge channel: snap install 0ad --edge 1 Quote Link to comment Share on other sites More sharing options...
oSoMoN Posted November 13, 2019 Author Report Share Posted November 13, 2019 A follow-up post to state that I regularly update the 0ad snap with the latest releases. The current version in the stable channel is 0.0.23b-alpha, while the edge channel has a fairly recent svn development snapshot. Maintaining the snap is a minimal amount of work (builds happen automatically on Launchpad) so I'm happy to continue doing so, however I'd like to highlight that one big advantage of transferring the ownership of the snap to Wildfire Games is that it would give the project control over the branded store page at https://snapcraft.io/0ad, and access to a dashboard with detailed metrics (versions, distributions, territories, weekly active installations). As a quick glimpse of what this looks like, here is a screenshot showing active installations per version over the past two years: As you can see, there are currently more than 4K users of the snap, and whenever an update is available the way snapd automatically installs it ensures that players will always be on the latest version. And the snap is being used on 19 different linux distributions (snapd currently supports more than 100 of them). 1 Quote Link to comment Share on other sites More sharing options...
ssorbom Posted November 16, 2019 Report Share Posted November 16, 2019 Hi oSoMoN, Happy 0AD Snap customer here! Thank you so much for your work! It's nice not to have to worry about updates. Quote Link to comment Share on other sites More sharing options...
Stan` Posted November 16, 2019 Report Share Posted November 16, 2019 Hello @oSoMoN First let me thank you again for your time Even though it's launchpad doing it taking the time to maintain it is important. I don't think that we can nor should take over though because of the limited amount of available developers. Maybe you could give me access to the dashboard though so I can have some stats, or maybe we could use an API to extract those stats from time to time. Quote Link to comment Share on other sites More sharing options...
oSoMoN Posted November 18, 2019 Author Report Share Posted November 18, 2019 Hi @Stan` I understand the developers' time is limited and precious, and is better spent improving the game. I suggest making you (or someone trustworthy on the development team) a collaborator of the snap. This is a feature of the snap store that will give you permission to administer the 0AD snap, while I retain ownership (and I'll continue to update it). It will give you access to the dashboard with detailed metrics. There can be more than one collaborator. All that's needed is an e-mail address for each collaborator, feel free to contact me in private. Quote Link to comment Share on other sites More sharing options...
Stan` Posted November 18, 2019 Report Share Posted November 18, 2019 PM Sent. Quote Link to comment Share on other sites More sharing options...
ssorbom Posted February 20, 2021 Report Share Posted February 20, 2021 Would it be possible to make the snap Auto release? I realize dependencies may be an issue, but if versioning of libraries is handled, it could work. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.