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

emacs: tramp: detect wrapped gvfsd-fuse daemon #53763

Merged
merged 1 commit into from Feb 8, 2019

Conversation

Projects
None yet
4 participants
@liff
Copy link
Contributor

commented Jan 10, 2019

Motivation for this change

Tramp checks for a running gvfsd-fuse process to figure out whether to enable gvfs-based. Its tramp-compat-process-running-p function uses /proc/<pid>/comm to check for the name of running process(es). In Nix, the gvfsd processes are launched via wrappers and the name of gvfsd-fuse in
comm in Linux is .gvfsd-fuse-wra (truncated to 15 characters) which means the process is not detected and tramp-gvfs-enabled ends up with nil even when gvfs is available.

This patch adds .gvfsd-fuse-wrapped to the list of process names to check when determining the value of tramp-gvfs-enabled.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Assured whether relevant documentation is up to date
  • Fits CONTRIBUTING.md.

emacs: tramp: detect wrapped gvfsd-fuse daemon
Tramp checks for a running `gvfsd-fuse` process to figure out whether to enable
gvfs-based. Its `tramp-compat-process-running-p` function uses
`/proc/<pid>/comm` to check for the name of running process(es). In Nix, the
gvfsd processes are launched via wrappers and the name of `gvfsd-fuse` in
`comm` in Linux is `.gvfsd-fuse-wra` (truncated to 15 characters) which
means the process is not detected and `tramp-gvfs-enabled` ends up with
`nil` even when gvfs is available.

This patch adds `.gvfsd-fuse-wrapped` to the list of process names to check when
determining the value of `tramp-gvfs-enabled`.
@Mic92

This comment has been minimized.

Copy link
Contributor

commented Jan 10, 2019

Would it help if we wrap gvfsd-fuse with --argv0 to gvfsd-fuse set when calling makeWrapper?

@liff

This comment has been minimized.

Copy link
Contributor Author

commented Jan 10, 2019

Oh, I’ll try that out. Thanks.

@liff

This comment has been minimized.

Copy link
Contributor Author

commented Jan 10, 2019

@Mic92 the wrapper already sets --argv0 (via wrapGAppsHook -> wrapProgram).

However, even if it didn’t it wouldn’t help because Tramp is specifically looking at the comm attribute, which comes from /proc/<pid>/comm which, as far as I can tell, could only be changed by the program that was execed.

@matthewbauer matthewbauer merged commit 9316105 into NixOS:master Feb 8, 2019

10 checks passed

grahamcofborg-eval ^.^!
Details
grahamcofborg-eval-check-maintainers matching changed paths to changed attrs...
Details
grahamcofborg-eval-check-meta config.nix: checkMeta = true
Details
grahamcofborg-eval-nixos-manual nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./nixos/release.nix -A manual
Details
grahamcofborg-eval-nixos-options nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./nixos/release.nix -A options
Details
grahamcofborg-eval-nixpkgs-manual nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./pkgs/top-level/release.nix -A manual
Details
grahamcofborg-eval-nixpkgs-tarball nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./pkgs/top-level/release.nix -A tarball
Details
grahamcofborg-eval-nixpkgs-unstable-jobset nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./pkgs/top-level/release.nix -A unstable
Details
grahamcofborg-eval-package-list nix-env -qa --json --file .
Details
grahamcofborg-eval-package-list-no-aliases nix-env -qa --json --file . --arg config { allowAliases = false; }
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.