I am currently working on building JuiceFS into a snap package using this repository: https://github.com/juicedata/juicefs-snapcraft. However, this process requires the use of classic confinement. Could anyone assist me by reviewing this request?
JuiceFS is a cloud-based file system that supports a variety of access interfaces, including posix-fuse, s3 gateway, webdav, and the hdfs API.
The primary reason for our need to use “classic” confinement is due to the mount mode (posix-fuse) that JuiceFS commonly utilizes. This mode requires full access to the file system, which includes allowing users to specify any location as the mount point or cache directory.
I appreciate your time and assistance in this matter.
Hi, as per the Process for reviewing classic confinement requests, a snap which is requesting the use of classic confinement must fit within one of the supported categories. From what I can see your snap does not appear to match with one of the existing categories, however if you believe that it does, can you please provide more details.
Thank you, @alexmurray! I appreciate the information you shared. After going through your insights and exploring similar tools like Restic on the Snap store, I’ve noticed some parallels with JuiceFS.
Regarding the confinement: classic requirement, I’ve observed that JuiceFS and Restic share a commonality in providing a flexible mount function, allowing users to choose their preferred mount path on the host machine. Despite their differences in technical architecture and use cases, they exhibit similar functionalities:
Both JuiceFS and Restic serve as storage and backup tools, relying on public cloud object storage as the underlying storage layer.
They both offer a POSIX-FUSE access interface, which justifies the request for confinement: classic.
Restic was actually one of the apps that triggered the creation of the system-backup interface so backup applications do not need classic anymore, this in turn was the reason this type of apps was removed from the “supported” list on:
Thank you @ogra, I have packaged juicefs in strict mode.
By the way, how can I modify the snapcraft.yaml file so that users can execute “juicefs mount” to mount a cloud-based file system onto a specific directory on the host?
FYI: A typical mount command for JuiceFS is:
juicefs mount redis://192.168.1.88/1 /media/myjfs
Where “redis://192.168.1.88/1” is the metadata engine for the file system, and “/media/myjfs” is a mount point on the host.
I see the latest revision of juicefs successfully published under strict confinement. If everything is working properly, I will proceed to remove this request from our review queue.