From 1884048a0ab148721a7e9f74c3c419863b47f0a7 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sat, 31 Aug 2024 17:06:30 -0700 Subject: hi --- pkgs/bindtointerface.nix | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 pkgs/bindtointerface.nix (limited to 'pkgs/bindtointerface.nix') diff --git a/pkgs/bindtointerface.nix b/pkgs/bindtointerface.nix new file mode 100644 index 0000000..dfba655 --- /dev/null +++ b/pkgs/bindtointerface.nix @@ -0,0 +1,46 @@ +{ pkgs, lib, stdenv, fetchurl, gcc }: +stdenv.mkDerivation { + pname = "bindtointerface"; + version = "1.0"; + + src = pkgs.fetchFromGitHub { + owner = "JsBergbau"; + repo = "BindToInterface"; + rev = "d477326d85f64fdd1dc46382fe698e46f4843100"; + hash = "sha256-B29nXjy8RyFEOsYtko8l9i38sDauX2eW+pLsQssNTmQ="; + }; + + nativeBuildInputs = [ gcc ]; + + buildPhase = '' + gcc \ + -nostartfiles \ + -fpic \ + -shared $src/bindToInterface.c \ + -o bindToInterface.so \ + -ldl \ + -D_GNU_SOURCE + ''; + + installPhase = '' + mkdir -p $out/bin $out/lib + + cp bindToInterface.so $out/lib + + cat < $out/bin/vpn + #!/usr/bin/env bash + + env LD_PRELOAD=$out/lib/bindToInterface.so "\$@" + EOF + + chmod +x $out/bin/vpn + ''; + + meta = with lib; { + description = "With this program you can bind applications to a specific network interface / network adapter."; + homepage = "https://github.com/JsBergbau/BindToInterface"; + license = licenses.gpl2; + maintainers = with lib.maintainers; [ Fuwn ]; + platforms = platforms.linux; + }; +} -- cgit v1.2.3