mosh: Hermeticize mosh-client path reference from mosh.pl

Do the same thing as we do for the "ssh" binary, except with
mosh-client: Patch the perl source to substitute mosh-client with
@mosh-client@, then substituteInPlace the variable out for the
compilation output path.
This commit is contained in:
Andreas Fuchs 2020-12-14 00:45:26 -05:00
parent 1e8ca69151
commit 9b18a0f353
2 changed files with 25 additions and 0 deletions

View file

@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
patches = [
./ssh_path.patch
./mosh-client_path.patch
./utempter_path.patch
# Fix w/c++17, ::bind vs std::bind
(fetchpatch {
@ -32,6 +33,8 @@ stdenv.mkDerivation rec {
postPatch = ''
substituteInPlace scripts/mosh.pl \
--subst-var-by ssh "${openssh}/bin/ssh"
substituteInPlace scripts/mosh.pl \
--subst-var-by mosh-client "$out/bin/mosh-client"
'';
configureFlags = [ "--enable-completion" ] ++ lib.optional withUtempter "--with-utempter";

View file

@ -0,0 +1,22 @@
diff --git a/scripts/mosh.pl b/scripts/mosh.pl
index 56e96d7..2a2177e 100755
--- a/scripts/mosh.pl
+++ b/scripts/mosh.pl
@@ -61,7 +61,7 @@ my $have_ipv6 = eval {
$|=1;
-my $client = 'mosh-client';
+my $client = '@mosh-client@';
my $server = 'mosh-server';
my $predict = undef;
@@ -91,7 +91,7 @@ my @cmdline = @ARGV;
my $usage =
qq{Usage: $0 [options] [--] [user@]host [command...]
--client=PATH mosh client on local machine
- (default: "mosh-client")
+ (default: "@mosh-client@")
--server=COMMAND mosh server on remote machine
(default: "mosh-server")