From 47583d3037553e90e99155c2dc76872cddfbb66f Mon Sep 17 00:00:00 2001 From: aucub <78630225+aucub@users.noreply.github.com> Date: Thu, 12 Dec 2024 02:57:08 +0800 Subject: [PATCH] v2rayn: init at 7.3.1 --- pkgs/by-name/v2/v2rayn/deps.nix | 361 +++++++++++++++++++++++++++++ pkgs/by-name/v2/v2rayn/package.nix | 114 +++++++++ 2 files changed, 475 insertions(+) create mode 100644 pkgs/by-name/v2/v2rayn/deps.nix create mode 100644 pkgs/by-name/v2/v2rayn/package.nix diff --git a/pkgs/by-name/v2/v2rayn/deps.nix b/pkgs/by-name/v2/v2rayn/deps.nix new file mode 100644 index 000000000000..6720fb3417a4 --- /dev/null +++ b/pkgs/by-name/v2/v2rayn/deps.nix @@ -0,0 +1,361 @@ +# This file was automatically generated by passthru.fetch-deps. +# Please dont edit it manually, your changes might get overwritten! + +{ fetchNuGet }: +[ + (fetchNuGet { + pname = "Avalonia"; + version = "11.2.2"; + hash = "sha256-lYWqgjYOyh4pg+TdkgqeFhi8OMI1p9IOvSntVXo5zvE="; + }) + (fetchNuGet { + pname = "Avalonia.Angle.Windows.Natives"; + version = "2.1.22045.20230930"; + hash = "sha256-RxPcWUT3b/+R3Tu5E5ftpr5ppCLZrhm+OTsi0SwW3pc="; + }) + (fetchNuGet { + pname = "Avalonia.BuildServices"; + version = "0.0.29"; + hash = "sha256-WPHRMNowRnYSCh88DWNBCltWsLPyOfzXGzBqLYE7tRY="; + }) + (fetchNuGet { + pname = "Avalonia.Controls.ColorPicker"; + version = "11.2.2"; + hash = "sha256-Mmp7Mjy9Y6uvkfjE8KLWoJWcVZHiJwqmhQupsxYRExo="; + }) + (fetchNuGet { + pname = "Avalonia.Controls.DataGrid"; + version = "11.2.2"; + hash = "sha256-RbkISZEp55N9dtqvPp0Ej2/wpU/YzI4wgJjBCJnIGl4="; + }) + (fetchNuGet { + pname = "Avalonia.Desktop"; + version = "11.2.2"; + hash = "sha256-ucd2SH0CAjwE5TSgwhhzYZqMD1zuTlR7qLQDl3mYGvg="; + }) + (fetchNuGet { + pname = "Avalonia.Diagnostics"; + version = "11.2.2"; + hash = "sha256-aOji+/TYSP0l3dpn62bvWMdce2YkYi5xzRPC3nS6ZGc="; + }) + (fetchNuGet { + pname = "Avalonia.Fonts.Inter"; + version = "11.2.2"; + hash = "sha256-H1h+PQBW8vrvJnKQZ+vcFaxCVssBcuHGBQw1Jj8dMR0="; + }) + (fetchNuGet { + pname = "Avalonia.FreeDesktop"; + version = "11.2.2"; + hash = "sha256-c/u6TX1Hl2h8B5xe7Zo1AJ6cR5BazI19NRnw56a36y0="; + }) + (fetchNuGet { + pname = "Avalonia.Native"; + version = "11.2.2"; + hash = "sha256-2Scuc+OCtfLChDYCi4feCh9XUrgJpbVaek3xRnpOGDE="; + }) + (fetchNuGet { + pname = "Avalonia.ReactiveUI"; + version = "11.2.2"; + hash = "sha256-Rr/wmmS47korAK0nAplpWCWrS1O9YZZD6i+efR7btN0="; + }) + (fetchNuGet { + pname = "Avalonia.Remote.Protocol"; + version = "11.2.2"; + hash = "sha256-lMb3VvHXQGxn0dyEGkzKXxFocvPJUaNnOpRJpHF9ORU="; + }) + (fetchNuGet { + pname = "Avalonia.Skia"; + version = "11.2.2"; + hash = "sha256-YmOT+r4OfyOyg8epho6bVaEW2HImEfsZ5rNqhWIY5Fk="; + }) + (fetchNuGet { + pname = "Avalonia.Themes.Simple"; + version = "11.2.2"; + hash = "sha256-HXkfpUuTN8hSBMXCCGW78+2GC5w3VdTUp1qm7HvUZPI="; + }) + (fetchNuGet { + pname = "Avalonia.Win32"; + version = "11.2.2"; + hash = "sha256-pouvlprL9VeEi1dG5zR6nFj+I/4CIjH1rHbV3N9/FHg="; + }) + (fetchNuGet { + pname = "Avalonia.X11"; + version = "11.2.2"; + hash = "sha256-86EIfm1zEvKleliP58xAs7KGxP/n7x2m8ca8C9W1XqA="; + }) + (fetchNuGet { + pname = "CliWrap"; + version = "3.6.7"; + hash = "sha256-9j3GILP25inLJoQe0E8sF8egVt8ISqEQBGdIShev4Mk="; + }) + (fetchNuGet { + pname = "DialogHost.Avalonia"; + version = "0.8.1"; + hash = "sha256-5gMb8Ap53YFIyFYfpceAd53RzlK0OF5PbiQtyCT5hew="; + }) + (fetchNuGet { + pname = "Downloader"; + version = "3.3.1"; + hash = "sha256-vJRRKgA+pUr5/kWBTu7oMy+pat+jKL9SD/G7CmV0WLk="; + }) + (fetchNuGet { + pname = "DynamicData"; + version = "9.0.4"; + hash = "sha256-3pyiJeWRwfaT7p1ArsoR13aI78Jo13aHOEw3BelTS9g="; + }) + (fetchNuGet { + pname = "Fody"; + version = "6.8.0"; + hash = "sha256-2laYscz0i0LalGTAup7dsh6XlYRZSojYpp8XOwZJJfg="; + }) + (fetchNuGet { + pname = "HarfBuzzSharp"; + version = "7.3.0.3"; + hash = "sha256-1vDIcG1aVwVABOfzV09eAAbZLFJqibip9LaIx5k+JxM="; + }) + (fetchNuGet { + pname = "HarfBuzzSharp.NativeAssets.Linux"; + version = "7.3.0.3"; + hash = "sha256-HW5r16wdlgDMbE/IfE5AQGDVFJ6TS6oipldfMztx+LM="; + }) + (fetchNuGet { + pname = "HarfBuzzSharp.NativeAssets.macOS"; + version = "7.3.0.3"; + hash = "sha256-UpAVfRIYY8Wh8xD4wFjrXHiJcvlBLuc2Xdm15RwQ76w="; + }) + (fetchNuGet { + pname = "HarfBuzzSharp.NativeAssets.WebAssembly"; + version = "7.3.0.3"; + hash = "sha256-jHrU70rOADAcsVfVfozU33t/5B5Tk0CurRTf4fVQe3I="; + }) + (fetchNuGet { + pname = "HarfBuzzSharp.NativeAssets.Win32"; + version = "7.3.0.3"; + hash = "sha256-v/PeEfleJcx9tsEQAo5+7Q0XPNgBqiSLNnB2nnAGp+I="; + }) + (fetchNuGet { + pname = "MessageBox.Avalonia"; + version = "3.2.0"; + hash = "sha256-LoB1rWPLGmeCypbn54qwE7T9nxHDqFVIJNL6qezS6Kw="; + }) + (fetchNuGet { + pname = "MicroCom.Runtime"; + version = "0.11.0"; + hash = "sha256-VdwpP5fsclvNqJuppaOvwEwv2ofnAI5ZSz2V+UEdLF0="; + }) + (fetchNuGet { + pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; + version = "8.0.1"; + hash = "sha256-lzTYLpRDAi3wW9uRrkTNJtMmaYdtGJJHdBLbUKu60PM="; + }) + (fetchNuGet { + pname = "Microsoft.Extensions.Logging.Abstractions"; + version = "8.0.1"; + hash = "sha256-TYce3qvMr92JbAZ62ATBsocaH0joJzw0px0tYGZ9N0U="; + }) + (fetchNuGet { + pname = "Microsoft.Win32.Registry"; + version = "5.0.0"; + hash = "sha256-9kylPGfKZc58yFqNKa77stomcoNnMeERXozWJzDcUIA="; + }) + (fetchNuGet { + pname = "NLog"; + version = "5.3.3"; + hash = "sha256-M6IbNKj4cUplxS7vi54m2SZe4bQdmMusDTMmsjqmZKg="; + }) + (fetchNuGet { + pname = "QRCoder"; + version = "1.6.0"; + hash = "sha256-2Ev/6d7PH6K4dVYQQHlZ+ZggkCnDtrlaGygs65mDo28="; + }) + (fetchNuGet { + pname = "ReactiveUI"; + version = "20.1.63"; + hash = "sha256-fcLBYRz5WFlPYtIiLA1k/6xxxWhlclVMj7li8z04g68="; + }) + (fetchNuGet { + pname = "ReactiveUI.Fody"; + version = "19.5.41"; + hash = "sha256-LfKELxAfApQLL0fDd7UJCsZML5C4MFN+Gc5ECaBXmUM="; + }) + (fetchNuGet { + pname = "Semi.Avalonia"; + version = "11.2.1.1"; + hash = "sha256-SG3MQHk1J/ktdRn1GXF3AOXvhgl3S6hcIwhmFU4sWU4="; + }) + (fetchNuGet { + pname = "Semi.Avalonia.DataGrid"; + version = "11.2.1.1"; + hash = "sha256-LH1Yjg9JkFdH8VEYXXBaKi9jvjCAXYoJkTWCJEoIMHM="; + }) + (fetchNuGet { + pname = "SkiaSharp"; + version = "2.88.6"; + hash = "sha256-y0wzgwdQXtgl5boCz/EgLWbK3SwC0cFVRUbBxOUPQXc="; + }) + (fetchNuGet { + pname = "SkiaSharp"; + version = "2.88.7"; + hash = "sha256-Ip3afwTr4QOqtwOUKqK6g/9Ug4dMSebTci5K29Jc3Dg="; + }) + (fetchNuGet { + pname = "SkiaSharp"; + version = "2.88.9"; + hash = "sha256-jZ/4nVXYJtrz9SBf6sYc/s0FxS7ReIYM4kMkrhZS+24="; + }) + (fetchNuGet { + pname = "SkiaSharp.NativeAssets.Linux"; + version = "2.88.9"; + hash = "sha256-mQ/oBaqRR71WfS66mJCvcc3uKW7CNEHoPN2JilDbw/A="; + }) + (fetchNuGet { + pname = "SkiaSharp.NativeAssets.macOS"; + version = "2.88.6"; + hash = "sha256-7hOMjlYTOiNPLNwfLFUjTcdgiGEtmYUI1EubiRiC6bo="; + }) + (fetchNuGet { + pname = "SkiaSharp.NativeAssets.macOS"; + version = "2.88.7"; + hash = "sha256-WgPldXSqPMm0TrdUWAyjge5rcRhd9G3/Ix/v/2NQvBc="; + }) + (fetchNuGet { + pname = "SkiaSharp.NativeAssets.macOS"; + version = "2.88.9"; + hash = "sha256-qvGuAmjXGjGKMzOPBvP9VWRVOICSGb7aNVejU0lLe/g="; + }) + (fetchNuGet { + pname = "SkiaSharp.NativeAssets.WebAssembly"; + version = "2.88.9"; + hash = "sha256-vgFL4Pdy3O1RKBp+T9N3W4nkH9yurZ0suo8u3gPmmhY="; + }) + (fetchNuGet { + pname = "SkiaSharp.NativeAssets.Win32"; + version = "2.88.6"; + hash = "sha256-ljD4QmAO2/vwA6I8GIUNkONpOzmGsOVJJy9vPDnjVfA="; + }) + (fetchNuGet { + pname = "SkiaSharp.NativeAssets.Win32"; + version = "2.88.7"; + hash = "sha256-+7RxCAr+ne9MZWdXKKpV4ZbHW0k6hLD20ZFWWOCiNYU="; + }) + (fetchNuGet { + pname = "SkiaSharp.NativeAssets.Win32"; + version = "2.88.9"; + hash = "sha256-kP5XM5GgwHGfNJfe4T2yO5NIZtiF71Ddp0pd1vG5V/4="; + }) + (fetchNuGet { + pname = "SkiaSharp.QrCode"; + version = "0.7.0"; + hash = "sha256-2FvbwizAKAPTcMvf/TgBZEwOF4nYQ/79TvTSC+8LZ74="; + }) + (fetchNuGet { + pname = "Splat"; + version = "15.1.1"; + hash = "sha256-WipAVaUx2HrYNQ9LcYm496LndmSpVbuzJxzP9FA6Ohg="; + }) + (fetchNuGet { + pname = "Splat"; + version = "15.2.22"; + hash = "sha256-GSD6XrFYlYj6jkmI7Z4bYCcRIQCRAyzcuVWHmAll5K4="; + }) + (fetchNuGet { + pname = "Splat.NLog"; + version = "15.2.22"; + hash = "sha256-oro9JqLAicoqdNA6wLWqTjcqOpHbsDDOPX82TnZoNIU="; + }) + (fetchNuGet { + pname = "sqlite-net-pcl"; + version = "1.9.172"; + hash = "sha256-0PTcOwm4k8bMeLm5+z0iWjy379KYdQXjqkaBGBR20cc="; + }) + (fetchNuGet { + pname = "SQLitePCLRaw.bundle_green"; + version = "2.1.2"; + hash = "sha256-7858BCblsCoALR11Q7ejjPKHk7johTjWxgndHwUYNws="; + }) + (fetchNuGet { + pname = "SQLitePCLRaw.core"; + version = "2.1.2"; + hash = "sha256-bbymML2TTQJDKZbYXoiyYJnF6mh/PjKrzDkqWhLaHaY="; + }) + (fetchNuGet { + pname = "SQLitePCLRaw.lib.e_sqlite3"; + version = "2.1.2"; + hash = "sha256-34lJgnGvODwrjn9WTkkBIg2jzYph/ARi1QSiKedCyUo="; + }) + (fetchNuGet { + pname = "SQLitePCLRaw.provider.e_sqlite3"; + version = "2.1.2"; + hash = "sha256-e56+FgxEHqV3SGQx0ZAqzlscPxNUPXJ8Ls9rtqET1S4="; + }) + (fetchNuGet { + pname = "System.Collections.Immutable"; + version = "8.0.0"; + hash = "sha256-F7OVjKNwpqbUh8lTidbqJWYi476nsq9n+6k0+QVRo3w="; + }) + (fetchNuGet { + pname = "System.ComponentModel.Annotations"; + version = "5.0.0"; + hash = "sha256-0pST1UHgpeE6xJrYf5R+U7AwIlH3rVC3SpguilI/MAg="; + }) + (fetchNuGet { + pname = "System.Diagnostics.EventLog"; + version = "8.0.0"; + hash = "sha256-rt8xc3kddpQY4HEdghlBeOK4gdw5yIj4mcZhAVtk2/Y="; + }) + (fetchNuGet { + pname = "System.IO.Pipelines"; + version = "8.0.0"; + hash = "sha256-LdpB1s4vQzsOODaxiKstLks57X9DTD5D6cPx8DE1wwE="; + }) + (fetchNuGet { + pname = "System.Memory"; + version = "4.5.3"; + hash = "sha256-Cvl7RbRbRu9qKzeRBWjavUkseT2jhZBUWV1SPipUWFk="; + }) + (fetchNuGet { + pname = "System.Reactive"; + version = "6.0.1"; + hash = "sha256-Lo5UMqp8DsbVSUxa2UpClR1GoYzqQQcSxkfyFqB/d4Q="; + }) + (fetchNuGet { + pname = "System.Security.AccessControl"; + version = "6.0.1"; + hash = "sha256-Ri4m95ZBfopDUGVahbvUIzuUy9D3FQwcXprP2I6IUUE="; + }) + (fetchNuGet { + pname = "System.Security.Principal.Windows"; + version = "5.0.0"; + hash = "sha256-CBOQwl9veFkrKK2oU8JFFEiKIh/p+aJO+q9Tc2Q/89Y="; + }) + (fetchNuGet { + pname = "TaskScheduler"; + version = "2.11.0"; + hash = "sha256-tS+V78zIrBuFy4VWVx9+IpeWu03YZvjfPg9PRamCswg="; + }) + (fetchNuGet { + pname = "Tmds.DBus.Protocol"; + version = "0.20.0"; + hash = "sha256-CRW/tkgsuBiBJfRwou12ozRQsWhHDooeP88E5wWpWJw="; + }) + (fetchNuGet { + pname = "WebDav.Client"; + version = "2.8.0"; + hash = "sha256-hINrSLAqy20lC0AtHgc/qfMA6iPrhZ265vpwdr6lkEY="; + }) + (fetchNuGet { + pname = "YamlDotNet"; + version = "16.2.1"; + hash = "sha256-Nu/rD43sihE4PTHC5r2Ua2gafclqcd2U95RcNFvGFhc="; + }) + (fetchNuGet { + pname = "ZXing.Net"; + version = "0.16.9"; + hash = "sha256-ACVKyq6gaSYuaxA9I/GpNOlT1QPqQ6/illJycYOI8y4="; + }) + (fetchNuGet { + pname = "ZXing.Net.Bindings.SkiaSharp"; + version = "0.16.14"; + hash = "sha256-B9q6dI+JvjwMLMMQVlPsiGtLltS0cFLtJZ9IaUn4yy4="; + }) +] diff --git a/pkgs/by-name/v2/v2rayn/package.nix b/pkgs/by-name/v2/v2rayn/package.nix new file mode 100644 index 000000000000..259f14ef767e --- /dev/null +++ b/pkgs/by-name/v2/v2rayn/package.nix @@ -0,0 +1,114 @@ +{ + fetchFromGitHub, + buildDotnetModule, + dotnetCorePackages, + icu, + zlib, + stdenv, + lib, + fontconfig, + autoPatchelfHook, + openssl, + lttng-ust_2_12, + krb5, + wrapGAppsHook4, + imagemagick, + makeDesktopItem, + copyDesktopItems, + bash, +}: +let + selectSystem = + attrs: + attrs.${stdenv.hostPlatform.system} + or (throw "v2rayn: ${stdenv.hostPlatform.system} is not supported"); + arch = selectSystem { + x86_64-linux = "linux-x64"; + aarch64-linux = "linux-arm64"; + }; +in +buildDotnetModule rec { + pname = "v2rayn"; + version = "7.3.1"; + + src = fetchFromGitHub { + owner = "2dust"; + repo = "v2rayN"; + tag = version; + hash = "sha256-K5u8+zaXcDn4aytsgYFhhzG3xzLgoks5dnWuVk/6cS4="; + }; + + projectFile = "v2rayN/v2rayN.Desktop/v2rayN.Desktop.csproj"; + + nugetDeps = ./deps.nix; + + postPatch = '' + substituteInPlace v2rayN/AmazTool/UpgradeApp.cs \ + --replace-fail "return AppDomain.CurrentDomain.BaseDirectory;" 'return Path.Combine(Environment.GetEnvironmentVariable("XDG_DATA_HOME") ?? Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".local", "share"), "v2rayn");' + substituteInPlace v2rayN/ServiceLib/Common/Utils.cs \ + --replace-fail "return AppDomain.CurrentDomain.BaseDirectory;" 'return Path.Combine(Environment.GetEnvironmentVariable("XDG_DATA_HOME") ?? Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".local", "share"), "v2rayn");' + substituteInPlace v2rayN/ServiceLib/Common/Utils.cs \ + --replace-fail "/bin/bash" "${bash}/bin/bash" + ''; + + dotnetInstallFlags = [ "-p:PublishReadyToRun=false" ]; + + selfContainedBuild = true; + + dotnet-sdk = dotnetCorePackages.sdk_8_0; + + dotnet-runtime = dotnetCorePackages.runtime_8_0; + + executables = [ "v2rayN" ]; + + nativeBuildInputs = [ + autoPatchelfHook + wrapGAppsHook4 + copyDesktopItems + imagemagick + ]; + + buildInputs = [ + zlib + fontconfig + icu + openssl + lttng-ust_2_12 + krb5 + (lib.getLib stdenv.cc.cc) + ]; + + postBuild = '' + mv ./v2rayN/v2rayN.Desktop/bin/Release/net8.0/${arch} ./v2rayN/v2rayN.Desktop/bin/Release/v2rayn + rm -r ./v2rayN/v2rayN.Desktop/bin/Release/net8.0 + mv ./v2rayN/v2rayN.Desktop/bin/Release/v2rayn ./v2rayN/v2rayN.Desktop/bin/Release/net8.0 + ln -s . ./v2rayN/v2rayN.Desktop/bin/Release/net8.0/${arch} + ''; + + desktopItems = [ + (makeDesktopItem { + name = "v2rayn"; + exec = "v2rayN"; + icon = "v2rayn"; + genericName = "v2rayN"; + desktopName = "v2rayN"; + }) + ]; + + postInstall = '' + mkdir -p $out/share/pixmaps + magick "v2rayN/v2rayN.Desktop/Assets/v2rayN.ico[11]" $out/share/pixmaps/v2rayn.png + ''; + + meta = { + description = "GUI client for Windows and Linux, support Xray core and sing-box-core and others"; + homepage = "https://github.com/2dust/v2rayN"; + mainProgram = "v2rayN"; + license = with lib.licenses; [ gpl3Plus ]; + maintainers = with lib.maintainers; [ aucub ]; + platforms = [ + "x86_64-linux" + "aarch64-linux" + ]; + }; +}