mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-20 12:42:24 +00:00
Merge pull request #42373 from symphorien/gnirehtet
gnirehtet: init at 2.2.1
This commit is contained in:
commit
876598a2dd
50
pkgs/tools/networking/gnirehtet/default.nix
Normal file
50
pkgs/tools/networking/gnirehtet/default.nix
Normal file
|
@ -0,0 +1,50 @@
|
|||
{stdenv, rustPlatform, fetchFromGitHub, fetchzip, androidenv, substituteAll}:
|
||||
let
|
||||
version = "2.2.1";
|
||||
apk = stdenv.mkDerivation {
|
||||
name = "gnirehtet.apk-${version}";
|
||||
src = fetchzip {
|
||||
url = "https://github.com/Genymobile/gnirehtet/releases/download/v${version}/gnirehtet-rust-linux64-v${version}.zip";
|
||||
sha256 = "1rz2wdjc1y7n8fhskmki1nj0ak80ylxspcsrcdnjkk9r7jbq0kan";
|
||||
};
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
mv gnirehtet.apk $out
|
||||
'';
|
||||
};
|
||||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
name = "gnirehtet-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Genymobile";
|
||||
repo = "gnirehtet";
|
||||
rev = "v${version}";
|
||||
sha256 = "1mv8nq4422k2d766qjqqnqp47qzzbbvlwhdni0k6w4nmd3m5cnd9";
|
||||
};
|
||||
sourceRoot = "source/relay-rust";
|
||||
cargoSha256 = "11qf9n6h6akvb0rbmsgdlfmypkbnas8ss1cs7i8w19mh7524n0v5";
|
||||
|
||||
patchFlags = [ "-p2" ];
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./paths.patch;
|
||||
adb = "${androidenv.platformTools}/bin/adb";
|
||||
inherit apk;
|
||||
})
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Reverse tethering over adb for Android";
|
||||
longDescription = ''
|
||||
This project provides reverse tethering over adb for Android: it allows devices to use the internet connection of the computer they are plugged on. It does not require any root access (neither on the device nor on the computer).
|
||||
|
||||
This relies on adb, make sure you have the required permissions/udev rules.
|
||||
'';
|
||||
homepage = https://github.com/Genymobile/gnirehtet;
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ symphorien ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
35
pkgs/tools/networking/gnirehtet/paths.patch
Normal file
35
pkgs/tools/networking/gnirehtet/paths.patch
Normal file
|
@ -0,0 +1,35 @@
|
|||
diff --git a/relay-rust/src/main.rs b/relay-rust/src/main.rs
|
||||
index 4f1be53..96d2e78 100644
|
||||
--- a/relay-rust/src/main.rs
|
||||
+++ b/relay-rust/src/main.rs
|
||||
@@ -299,7 +299,7 @@ impl Command for RelayCommand {
|
||||
|
||||
fn cmd_install(serial: Option<&String>) -> Result<(), CommandExecutionError> {
|
||||
info!(target: TAG, "Installing gnirehtet client...");
|
||||
- exec_adb(serial, vec!["install", "-r", "gnirehtet.apk"])
|
||||
+ exec_adb(serial, vec!["install", "-r", "@apk@/gnirehtet.apk"])
|
||||
}
|
||||
|
||||
fn cmd_uninstall(serial: Option<&String>) -> Result<(), CommandExecutionError> {
|
||||
@@ -467,8 +467,8 @@ fn exec_adb<S: Into<String>>(
|
||||
args: Vec<S>,
|
||||
) -> Result<(), CommandExecutionError> {
|
||||
let adb_args = create_adb_args(serial, args);
|
||||
- debug!(target: TAG, "Execute: adb {:?}", adb_args);
|
||||
- match process::Command::new("adb").args(&adb_args[..]).status() {
|
||||
+ debug!(target: TAG, "Execute: @adb@ {:?}", adb_args);
|
||||
+ match process::Command::new("@adb@").args(&adb_args[..]).status() {
|
||||
Ok(exit_status) => {
|
||||
if exit_status.success() {
|
||||
Ok(())
|
||||
@@ -490,8 +490,8 @@ fn must_install_client(serial: Option<&String>) -> Result<bool, CommandExecution
|
||||
serial,
|
||||
vec!["shell", "dumpsys", "package", "com.genymobile.gnirehtet"],
|
||||
);
|
||||
- debug!(target: TAG, "Execute: adb {:?}", args);
|
||||
- match process::Command::new("adb").args(&args[..]).output() {
|
||||
+ debug!(target: TAG, "Execute: @adb@ {:?}", args);
|
||||
+ match process::Command::new("@adb@").args(&args[..]).output() {
|
||||
Ok(output) => {
|
||||
if output.status.success() {
|
||||
// the "regex" crate makes the binary far bigger, so just parse the versionCode
|
|
@ -2656,6 +2656,8 @@ with pkgs;
|
|||
stdenv = overrideCC stdenv gcc49;
|
||||
};
|
||||
|
||||
gnirehtet = callPackage ../tools/networking/gnirehtet { };
|
||||
|
||||
gnome15 = callPackage ../applications/misc/gnome15 {
|
||||
inherit (gnome2) gnome_python gnome_python_desktop;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue