Skip to content
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

Intent to package: Snaps are universal Linux packages #704

Open
brlin-tw opened this issue Mar 19, 2019 · 4 comments
Open

Intent to package: Snaps are universal Linux packages #704

brlin-tw opened this issue Mar 19, 2019 · 4 comments

Comments

@brlin-tw
Copy link

Dear maintainer(s),

Snaps are universal Linux packages that can be installed and run on many GNU+Linux distributions with ease. I've been following the Snapcrafters instructions and have built a working snap on the Snap Store, you may try it by running the following commands after installing snapd:

sudo snap install --channel=edge --devmode simplescreenrecorder-brlin
sudo snap install core
sudo snap connect simplescreenrecorder-brlin:alsa

Currently the only feature that is not working is the OpenGL recording, which is technically not seemed to be possible due to the confined and dependency-separated nature of snap apps. In addition to make it build under non i386/AMD64 architectures this feature is currently disabled in the snap.

I'm looking forward to working with you to make the packaging work upstream (if you're interested). You may want to check out the current packaging recipe, the documentation, registering a developer account on the Snap Store, and get in touch with us to transfer the work under your control.

Thanks for your time and attention.

@MaartenBaert
Copy link
Owner

MaartenBaert commented Mar 25, 2019

If I decide to create an official snap package, what would be the procedure to update it? Am I responsible for recompiling the package when I release a new version, or should I upload a source package to a build server as with Launchpad? Do I have to compile it on a specific version of Ubuntu?

I have some minimalistic Ubuntu chroot environments which I use for testing purposes, but they are 64-bit only. Would that be enough to push updates? I'd rather not deal with multiple full-featured VMs since it makes the update process too complicated.

@brlin-tw
Copy link
Author

brlin-tw commented Mar 26, 2019

If I decide to create an official snap package, what would be the procedure to update it?

If you make use of the snapcraft build service you can set-up automatic snap building on every code push(which will be published to the edge channel), and promote specific builds to the beta, the candidate, and the stable channel via the snapcraft release command and the snap's releases page https://snapcraft.io/simplescreenrecorder-brlin/releases on the website:

demo snap promote channels

Check out Channels - Documentation for snaps: Universal Linux packages for more info regarding the snap release channels. I've added your committer e-mail address to the demonstration snap's collaborator list so that you can access the administration pages after login with the Ubuntu One account associated with that address.

Do I have to compile it on a specific version of Ubuntu?

Yes, it depends on the base snap the snap is targeting on, which is currently Ubuntu 18.04.

I have some minimalistic Ubuntu chroot environments which I use for testing purposes, but they are 64-bit only. Would that be enough to push updates?

That will be more or less challenging as the utility of building and pushing snaps, Snapcraft, is mainly distributed via snaps, which is not installable in a chroot environment due to snapd's dependency of systemd.

You can install Snapcraft in distros that are supported by snapd and Mac OS. By default Snapcraft makes use of Multipass to automatically fire up a minimal, clean Ubuntu virtual machine to build the snap.

I personally prefer LXD containers over chroots and VMs for building snaps (and any other development under Linux) locally as I can create snapshots and restore them at any time. Here's a tutorial: How to create a LXD container for snap development - doc - snapcraft.io

brlin-tw added a commit to brlin-tw/ssr that referenced this issue Mar 27, 2019
…aert#704)

Snaps[1] are universal Linux packages that can be installed and run on
many GNU+Linux distributions with ease.

This patch implements the necessary details to package
SimpleScreenRecorder as a snap.  [Install Snapcraft][2] and run
`snapcraft` under the source tree to build it.

[1]: https://snapcraft.io
[2]: https://docs.snapcraft.io/snapcraft-overview/8940

Signed-off-by: 林博仁(Buo-ren Lin) <Buo.Ren.Lin@gmail.com>
brlin-tw added a commit to brlin-tw/ssr that referenced this issue Mar 27, 2019
…aert#704)

[Snaps][1] are universal Linux packages that can be installed and run on
many GNU+Linux distributions with ease.

This patch implements the necessary details to package
SimpleScreenRecorder as a snap.  [Install Snapcraft][2] and run
`snapcraft` under the source tree to build it.

[1]: https://snapcraft.io
[2]: https://docs.snapcraft.io/snapcraft-overview/8940

Signed-off-by: 林博仁(Buo-ren Lin) <Buo.Ren.Lin@gmail.com>
brlin-tw added a commit to brlin-tw/ssr that referenced this issue Mar 27, 2019
…aert#704)

[Snaps][1] are universal Linux packages that can be installed and run on
many GNU+Linux distributions with ease.

This patch implements the necessary details to package
SimpleScreenRecorder as a snap.  [Install Snapcraft][2] and run
`snapcraft` under the source tree to build it.

[1]: https://snapcraft.io
[2]: https://docs.snapcraft.io/snapcraft-overview/8940

Signed-off-by: 林博仁(Buo-ren Lin) <Buo.Ren.Lin@gmail.com>
brlin-tw added a commit to brlin-tw/ssr that referenced this issue Mar 27, 2019
…aert#704)

[Snaps][1] are universal Linux packages that can be installed and run on
many GNU+Linux distributions with ease.

This patch implements the necessary details to package
SimpleScreenRecorder as a snap.  [Install Snapcraft][2] and run
`snapcraft` under the source tree to build it.

[1]: https://snapcraft.io
[2]: https://docs.snapcraft.io/snapcraft-overview/8940

Signed-off-by: 林博仁(Buo-ren Lin) <Buo.Ren.Lin@gmail.com>
brlin-tw added a commit to brlin-tw/ssr that referenced this issue Mar 27, 2019
…aert#704)

[Snaps][1] are universal Linux packages that can be installed and run on
many GNU+Linux distributions with ease.

This patch implements the necessary details to package
SimpleScreenRecorder as a snap.  [Install Snapcraft][2] and run
`snapcraft` under the source tree to build it.

[1]: https://snapcraft.io
[2]: https://docs.snapcraft.io/snapcraft-overview/8940

Signed-off-by: 林博仁(Buo-ren Lin) <Buo.Ren.Lin@gmail.com>
@Drakeo
Copy link

Drakeo commented Apr 15, 2019

From what I understand with snap is that your building in canister or something like it. I never will understand it. if snap wants to be universal time to have there own system not push you to build in those environments. Linux is Linux. the libraries all work the same.
playing with snap for a while I came to the conclusion another toy for linux.
Slackware has it's own package manager.
I see security issues with this down the road.
just like malicious PPA's.
fun toy to play with.

@brlin-tw
Copy link
Author

Hello, unlike the PPAs where the maintenance scripts run as the superuser and can do almost anything to the users' system, snap applications are run in multiple layers of confinement where it can only access the resources allowed by the connected Snapd security confinement interfaces. You can check out the Ubuntu Core Security Whitepaper for more info regarding this topic. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants