v2rayn: init at 7.3.1

This commit is contained in:
aucub
2024-12-12 02:57:08 +08:00
parent 8a44f79f61
commit 47583d3037
2 changed files with 475 additions and 0 deletions
+361
View File
@@ -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=";
})
]
+114
View File
@@ -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"
];
};
}