diff --git a/pkgs/by-name/sl/slsk-batchdl/deps.json b/pkgs/by-name/sl/slsk-batchdl/deps.json new file mode 100644 index 000000000000..e2c86476f9d0 --- /dev/null +++ b/pkgs/by-name/sl/slsk-batchdl/deps.json @@ -0,0 +1,217 @@ +[ + { + "pname": "AngleSharp", + "version": "1.2.0", + "hash": "sha256-l8+Var9o773VL6Ybih3boaFf9sYjS7eqtLGd8DCIPsk=" + }, + { + "pname": "EmbedIO", + "version": "3.5.2", + "hash": "sha256-e6GfVHXxYeUw3ntCrHokNoAS6mXArO7+vdMeUFnsSo8=" + }, + { + "pname": "Goblinfactory.ProgressBar", + "version": "1.0.0", + "hash": "sha256-tV3Fw792zfYhB2dN97VKXBwS5eypqKExgAJy+bcDo8I=" + }, + { + "pname": "Google.Apis", + "version": "1.69.0", + "hash": "sha256-/9JN0CZIFZnmGS69ki38RlNzQiwp4yO0MFDeRk1slsg=" + }, + { + "pname": "Google.Apis.Auth", + "version": "1.69.0", + "hash": "sha256-T6n3hc+KpgHNqQQeJLOmgHQWkjBvnhIob5giHabREV8=" + }, + { + "pname": "Google.Apis.Core", + "version": "1.69.0", + "hash": "sha256-IW1AOY8o6hHkrc/tINsS/VCOUrOSoXb6OCSEF6gamkc=" + }, + { + "pname": "Google.Apis.YouTube.v3", + "version": "1.69.0.3680", + "hash": "sha256-3aNScBqmchnDkLejK5HYHiLVVDexrFUtZ6xe8cGP28M=" + }, + { + "pname": "HtmlAgilityPack", + "version": "1.11.72", + "hash": "sha256-MRt7yj6+/ORmr2WBERpQ+1gMRzIaPFKddHoB4zZmv2k=" + }, + { + "pname": "Microsoft.ApplicationInsights", + "version": "2.22.0", + "hash": "sha256-mUQ63atpT00r49ca50uZu2YCiLg3yd6r3HzTryqcuEA=" + }, + { + "pname": "Microsoft.Bcl.AsyncInterfaces", + "version": "9.0.1", + "hash": "sha256-A3W2Hvhlf1ODx1NYWHwUyziZOGMaDPvXHZ/ubgNLYJA=" + }, + { + "pname": "Microsoft.CodeCoverage", + "version": "17.9.0", + "hash": "sha256-OaGa4+jRPHs+T+p/oekm2Miluqfd2IX8Rt+BmUx8kr4=" + }, + { + "pname": "Microsoft.CSharp", + "version": "4.7.0", + "hash": "sha256-Enknv2RsFF68lEPdrf5M+BpV1kHoLTVRApKUwuk/pj0=" + }, + { + "pname": "Microsoft.NET.Test.Sdk", + "version": "17.9.0", + "hash": "sha256-q/1AJ7eNlk02wvN76qvjl2xBx5iJ+h5ssiE/4akLmtI=" + }, + { + "pname": "Microsoft.Testing.Extensions.Telemetry", + "version": "1.5.3", + "hash": "sha256-bIXwPSa3jkr2b6xINOqMUs6/uj/r4oVFM7xq3uVIZDU=" + }, + { + "pname": "Microsoft.Testing.Extensions.TrxReport.Abstractions", + "version": "1.5.3", + "hash": "sha256-IfMRfcyaIKEMRtx326ICKtinDBEfGw/Sv8ZHawJ96Yc=" + }, + { + "pname": "Microsoft.Testing.Extensions.VSTestBridge", + "version": "1.5.3", + "hash": "sha256-XpM/yFjhLSsuzyDV+xKubs4V1zVVYiV05E0+N4S1h0g=" + }, + { + "pname": "Microsoft.Testing.Platform", + "version": "1.5.3", + "hash": "sha256-y61Iih6w5D79dmrj2V675mcaeIiHoj1HSa1FRit2BLM=" + }, + { + "pname": "Microsoft.Testing.Platform.MSBuild", + "version": "1.5.3", + "hash": "sha256-YspvjE5Jfi587TAfsvfDVJXNrFOkx1B3y1CKV6m7YLY=" + }, + { + "pname": "Microsoft.TestPlatform.ObjectModel", + "version": "17.12.0", + "hash": "sha256-3XBHBSuCxggAIlHXmKNQNlPqMqwFlM952Av6RrLw1/w=" + }, + { + "pname": "Microsoft.TestPlatform.ObjectModel", + "version": "17.9.0", + "hash": "sha256-iiXUFzpvT8OWdzMj9FGJDqanwHx40s1TXVY9l3ii+s0=" + }, + { + "pname": "Microsoft.TestPlatform.TestHost", + "version": "17.9.0", + "hash": "sha256-1BZIY1z+C9TROgdTV/tq4zsPy7Q71GQksr/LoMKAzqU=" + }, + { + "pname": "MSTest.Analyzers", + "version": "3.7.3", + "hash": "sha256-6mNfHtx9FBWA6/QrRUepwbxXWG/54GRyeZYazDiMacg=" + }, + { + "pname": "MSTest.TestAdapter", + "version": "3.7.3", + "hash": "sha256-3O/AXeS+3rHWstinivt73oa0QDp+xQpTc9p46EF+Mtc=" + }, + { + "pname": "MSTest.TestFramework", + "version": "3.7.3", + "hash": "sha256-RweCMMf14GI6HqjDIP68JM67IaJKYQTZy0jk5Q4DFxs=" + }, + { + "pname": "Newtonsoft.Json", + "version": "13.0.1", + "hash": "sha256-K2tSVW4n4beRPzPu3rlVaBEMdGvWSv/3Q1fxaDh4Mjo=" + }, + { + "pname": "Newtonsoft.Json", + "version": "13.0.3", + "hash": "sha256-hy/BieY4qxBWVVsDqqOPaLy1QobiIapkbrESm6v2PHc=" + }, + { + "pname": "SmallestCSVParser", + "version": "1.1.1", + "hash": "sha256-64E87w+4FcQtYsFIOMGGmYmjXVGBwsBqgLVb7p0wc04=" + }, + { + "pname": "Soulseek", + "version": "7.1.0", + "hash": "sha256-n6LUNuPmmy9QYNNALR0ObYyR9LJalf0H8P+SKnoqfFc=" + }, + { + "pname": "SpotifyAPI.Web", + "version": "7.2.1", + "hash": "sha256-gbTLJaj7DSXZQlo0xpegZ8HLruMe6WmDyD8+l6YE3hg=" + }, + { + "pname": "SpotifyAPI.Web.Auth", + "version": "7.2.1", + "hash": "sha256-uzpyPlXNCuSHrcK4SKH0ydY2HlDKXU51W5ahk2Oqu98=" + }, + { + "pname": "System.CodeDom", + "version": "7.0.0", + "hash": "sha256-7IPt39cY+0j0ZcRr/J45xPtEjnSXdUJ/5ai3ebaYQiE=" + }, + { + "pname": "System.Diagnostics.DiagnosticSource", + "version": "5.0.0", + "hash": "sha256-6mW3N6FvcdNH/pB58pl+pFSCGWgyaP4hfVtC/SMWDV4=" + }, + { + "pname": "System.IO.Pipelines", + "version": "9.0.1", + "hash": "sha256-CnmDanknCGbNnoDjgZw62M/Grg8IMTJDa8x3P07UR2A=" + }, + { + "pname": "System.Management", + "version": "7.0.2", + "hash": "sha256-bJ21ILQfbHb8mX2wnVh7WP/Ip7gdVPIw+BamQuifTVY=" + }, + { + "pname": "System.Memory", + "version": "4.6.0", + "hash": "sha256-OhAEKzUM6eEaH99DcGaMz2pFLG/q/N4KVWqqiBYUOFo=" + }, + { + "pname": "System.Reflection.Metadata", + "version": "1.6.0", + "hash": "sha256-JJfgaPav7UfEh4yRAQdGhLZF1brr0tUWPl6qmfNWq/E=" + }, + { + "pname": "System.Text.Encodings.Web", + "version": "9.0.1", + "hash": "sha256-iuAVcTiiZQLCZjDfDqdLLPHqZdZqvFabwLFHiVYdRJo=" + }, + { + "pname": "System.Text.Json", + "version": "9.0.1", + "hash": "sha256-2dqE+Mx5eJZ8db74ofUiUXHOSxDCmXw5n9VC9w4fUr0=" + }, + { + "pname": "System.Threading.Tasks.Extensions", + "version": "4.6.0", + "hash": "sha256-OwIB0dpcdnyfvTUUj6gQfKW2XF2pWsQhykwM1HNCHqY=" + }, + { + "pname": "System.ValueTuple", + "version": "4.5.0", + "hash": "sha256-niH6l2fU52vAzuBlwdQMw0OEoRS/7E1w5smBFoqSaAI=" + }, + { + "pname": "TagLibSharp", + "version": "2.3.0", + "hash": "sha256-PD9bVZiPaeC8hNx2D+uDUf701cCaMi2IRi5oPTNN+/w=" + }, + { + "pname": "Unosquare.Swan.Lite", + "version": "3.1.0", + "hash": "sha256-PL8N3CqIz/wku8/mkRMC3X868Byv47C20/rBLBhkS3o=" + }, + { + "pname": "YoutubeExplode", + "version": "6.5.4", + "hash": "sha256-5sexIiBj5XP9rP5DA0NQ+vHJ9lpjwp00EvVux901WLc=" + } +] diff --git a/pkgs/by-name/sl/slsk-batchdl/package.nix b/pkgs/by-name/sl/slsk-batchdl/package.nix new file mode 100644 index 000000000000..5967bd8ed2ee --- /dev/null +++ b/pkgs/by-name/sl/slsk-batchdl/package.nix @@ -0,0 +1,58 @@ +{ + lib, + buildDotnetModule, + dotnetCorePackages, + fetchFromGitHub, + nix-update-script, +}: +buildDotnetModule (finalAttrs: { + pname = "slsk-batchdl"; + version = "2.4.7"; + + src = fetchFromGitHub { + owner = "fiso64"; + repo = "slsk-batchdl"; + tag = "v${finalAttrs.version}"; + hash = "sha256-P7V7YJUA1bkfp13Glb1Q+NJ7iTya/xgO1TM88z1Nddc="; + }; + + postPatch = '' + # .NET 6 is EOL, .NET 8 works fine modulo the trimming flag. + # See: https://github.com/fiso64/slsk-batchdl/issues/112 + substituteInPlace \ + slsk-batchdl/slsk-batchdl.csproj \ + slsk-batchdl.Tests/slsk-batchdl.Tests.csproj \ + --replace-fail "net6.0" "net8.0" + ''; + + projectFile = "slsk-batchdl/slsk-batchdl.csproj"; + + # Tests fail to build. + # See: https://github.com/fiso64/slsk-batchdl/issues/111 + # testProjectFile = "slsk-batchdl.Tests/slsk-batchdl.Tests.csproj"; + + dotnet-sdk = dotnetCorePackages.sdk_8_0; + nugetDeps = ./deps.json; + executables = [ "sldl" ]; + + dotnetFlags = [ + "--property:PublishSingleFile=true" + # Note: This breaks Spotify authentication! + # See: https://github.com/fiso64/slsk-batchdl/issues/112 + # "--property:PublishTrimmed=true" + ]; + + selfContainedBuild = true; + + passthru.updateScript = nix-update-script { }; + + meta = { + homepage = "https://github.com/fiso64/slsk-batchdl"; + description = "Advanced download tool for Soulseek"; + license = lib.licenses.gpl3Only; + maintainers = [ + lib.maintainers._9999years + ]; + mainProgram = "sldl"; + }; +})