Allow classic confinement for electron/asar


#1

The electron/asar project needs classic confinement because it is a
packaging tool that may access arbitrary file on the filesystem.

It is a tool used by apps written in Electron framework.

The link to the snapcraft site:
https://build.snapcraft.io/user/electron/asar

The link to the electron/asar project:

Introduction to electron/asar:
https://electron.atom.io/docs/tutorial/application-packaging/


#2

How is asar typically used? Put another way, why are the ‘home’ and removable-media interfaces not sufficient?


#3

asar is a utility and may require access to arbitrary files from anywhere of the file system. Particularly when inspecting archives already installed that will exist outside of $HOME


#4

“may require access” could be said of almost any application that needs filesystem access, but we have plenty of examples (eg, brave, chromium, gedit, etc) that use strict mode that also require filesystem access. I’m unfamiliar with asar: what about it makes it different from strictly confined snaps such that it requires classic? Put another way, what are typical use cases that make it not work with strict mode?

Providing specific use cases that are making people use classic over strict will help us better understand how to improve the system in the future.


#5

asar is a command line utility, much like tar for creating and extracting archives. It is the default bundling tool/library used in Electron applications.


#6

Thank you, that is helpful. As a command line archive utility, that use case is understood for classic.

You mentioned that it is used by electron applications, but I’m confused by this detail. Wouldn’t an electron snap just embed asar? Or are you saying it is primarily used to build electron applications (in which case, wouldn’t things to bundle in the electron app already be in home or removable-media?)? Something else?

Thanks!


#7

asar is a command line implementation of the asar archive format. The asar library is used by Electron to create the application bundles. The asar snap is really just exposing the asar utility, which doesn’t feature in the deb archives.


#8

I see. Ok, then the requirements for classic are understood. Thanks again.

@Wimpress - can you (or someone else) document your vetting of the publisher as per Process for reviewing classic confinement snaps?


#9

@jdstrand This snap package can be published by committers of the Electron project, who are usually GitHub employees or third party contributors that have been verified by GitHub.


#10

Thanks.

@popey or @evan, can you comment on this? How do this relate to Classic confinement for Sublime Text 3, if at all?


#11

@popey / @evan - ping


#12

+1 from me.

Post must be 20 characters…


#13

I can confirm that the snap is published by @zcbenz, a core contributor to asar. As he pointed out, new revisions of the snap will be released to edge automatically (using build.snapcraft.io).


#14

Granting use of classic to this snap. This is now live.

@zcbenz - note that while the snaps you previously uploaded now are passing automated review, you’ll still need to release them to a channel.