Skip to content

Add ratarmount #3115

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

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Add ratarmount #3115

wants to merge 2 commits into from

Conversation

mxmlnkn
Copy link

@mxmlnkn mxmlnkn commented Feb 19, 2023

No description provided.

@probonopd
Copy link
Member

Some permissions are wrong; cannot run in Firejail as a result:

image

@mxmlnkn
Copy link
Author

mxmlnkn commented Apr 4, 2023

Why is the CI green even though you report the permission error?

I have no idea what could be wrong. Do you have any idea, maybe from other projects with similar issues that have been resolved?

First off, I cannot even reproduce the error.

Running firejail ... gives me:

Reading profile /etc/firejail/default.profile
Reading profile /etc/firejail/disable-common.inc
Reading profile /etc/firejail/disable-programs.inc

** Note: you can use --noprofile to disable default.profile **

Parent pid 3886306, child pid 3886307
Child process initialized in 55.64 ms
fuse: failed to exec fusermount: Permission denied

Cannot mount AppImage, please check your FUSE setup.
You might still be able to extract the contents of this AppImage 
if you run it with the --appimage-extract option. 
See https://github.com/AppImage/AppImageKit/wiki/FUSE 
for more information
open dir error: No such file or directory

Parent is shutting down, bye...

Running firejail --noprofile ... works without issue. No idea which setting leads to the error above:

Parent pid 3888012, child pid 3888013
Child process initialized in 4.95 ms
usage: ratarmount.py [-h] [-c] [-r] [-u] [-P PARALLELIZATION] [-v] [--password PASSWORD] [--verify-mtime] [--index-file INDEX_FILE] [--index-folders INDEX_FOLDERS]
                     [--recursion-depth RECURSION_DEPTH] [-l] [-s] [--transform-recursive-mount-point REGEX_PATTERN REPLACEMENT] [-e ENCODING] [-i] [--gnu-incremental]
                     [--no-gnu-incremental] [-w WRITE_OVERLAY] [--commit-overlay] [-o FUSE] [-f] [-d DEBUG] [-gs GZIP_SEEK_POINT_SPACING] [-p PREFIX]
                     [--password-file PASSWORD_FILE] [--use-backend USE_BACKEND] [--oss-attributions]
                     mount_source [mount_source ...] [mount_point]
ratarmount.py: error: the following arguments are required: mount_source

Parent is shutting down, bye...

I tried to download the AppImage from the releases page, add execute permission and reupload it but it doesn't change the execute permissions when downloading. It was the wrong thought anyway because the problem stems from AppRun, not the .AppImage file.

The only issue I can think of is that the AppRun is a shell script with this shebang #! /bin/bash. And a bash binary is not shipped with the AppImage, so maybe your /bin/bash does not have the correct execute permissions?

I have now tried to redirect the shebang to dash and I have bundled a dash binary into the AppImage. Would you be so kind to check whether that fixes the issue so that I can merge it upstream and do a new release?

ratarmount.AppImage.zip

@probonopd
Copy link
Member

Why is the CI green even though you report the permission error?

I've been wondering the exact same thing since a veeery long time...

@probonopd
Copy link
Member

I have now tried to redirect the shebang to dash and I have bundled a dash binary into the AppImage. Would you be so kind to check whether that fixes the issue so that I can merge it upstream and do a new release?

ratarmount.AppImage.zip

I can run a test if you can upload it unzipped somewhere (GitHub Artifacts unfortunately can't do that). E.g., you can manually upload it to GitHub Releases.

@mxmlnkn
Copy link
Author

mxmlnkn commented Jun 18, 2023

I have now tried to redirect the shebang to dash and I have bundled a dash binary into the AppImage. Would you be so kind to check whether that fixes the issue so that I can merge it upstream and do a new release?
ratarmount.AppImage.zip

I can run a test if you can upload it unzipped somewhere (GitHub Artifacts unfortunately can't do that). E.g., you can manually upload it to GitHub Releases.

https://github.com/mxmlnkn/ratarmount/raw/appimagehub/ratarmount-0.13.0-with-dash-experimental.AppImage

The output without any argument is:

/bin/bash
lrwxrwxrwx 1 user group 0 Jun 18 13:56 /proc/2132468/exe -> /usr/bin/dash
-rwxr-xr-x 1 root root 125688 Mar 23  2022 /usr/bin/dash
usage: ratarmount.py [-h] [-c] [-r] [-u] [-P PARALLELIZATION] [-v] [--password PASSWORD] [--verify-mtime] [--index-file INDEX_FILE]
                     [--index-folders INDEX_FOLDERS] [--recursion-depth RECURSION_DEPTH] [-l] [-s]
                     [--transform-recursive-mount-point REGEX_PATTERN REPLACEMENT] [-e ENCODING] [-i] [--gnu-incremental] [--no-gnu-incremental]
                     [-w WRITE_OVERLAY] [--commit-overlay] [-o FUSE] [-f] [-d DEBUG] [-gs GZIP_SEEK_POINT_SPACING] [-p PREFIX]
                     [--password-file PASSWORD_FILE] [--use-backend USE_BACKEND] [--oss-attributions]
                     mount_source [mount_source ...] [mount_point]
ratarmount.py: error: the following arguments are required: mount_source

I.e. /proc/self/exe should use dash.

@probonopd
Copy link
Member

probonopd commented Jun 18, 2023

Looks like https://github.com/mxmlnkn/ratarmount/raw/ ... is not supported by the test?

In any case, we cannot expect /usr/bin/dash to be on each target system. /bin/sh would be a safer bet.

@mxmlnkn
Copy link
Author

mxmlnkn commented Jul 10, 2025

2 years have passed, all of the involved tools have received lots of updates. The CI is green. Could you please try again? I have rebased the PR. There is one new complication... Because of download size considerations, I am now offering a full and a slim AppImage on my releases page. I'm not sure how to specify that here. For now, I have pinned to an explicit version. One option could be to change ratarmount-1.1.0-full-x86_64.AppImage to ratarmount-full-1.1.0-x86_64.AppImage, then ratarmount-full could be interpreted as a project name, but even then this part First piece of the AppImage filename, "App" == name of the repo would not be true. I could also remove the full and only add the slim suffix because that one is probably only for special use cases anyway.

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

Successfully merging this pull request may close these issues.

2 participants