diff --git a/pkgs/by-name/re/renode-bin/package.nix b/pkgs/by-name/re/renode-bin/package.nix new file mode 100644 index 000000000000..edf34d337346 --- /dev/null +++ b/pkgs/by-name/re/renode-bin/package.nix @@ -0,0 +1,111 @@ +{ + stdenv, + lib, + fetchFromGitHub, + fetchurl, + fetchpatch, + autoPatchelfHook, + makeWrapper, + nix-update-script, + glibcLocales, + python3Packages, + dotnetCorePackages, + gtk-sharp-3_0, + gtk3-x11, + dconf, +}: + +let + pythonLibs = + with python3Packages; + makePythonPath [ + construct + psutil + pyyaml + requests + tkinter + + # from tools/csv2resd/requirements.txt + construct + + # from tools/execution_tracer/requirements.txt + pyelftools + + (robotframework.overrideDerivation (oldAttrs: { + src = fetchFromGitHub { + owner = "robotframework"; + repo = "robotframework"; + rev = "v6.1"; + hash = "sha256-l1VupBKi52UWqJMisT2CVnXph3fGxB63mBVvYdM1NWE="; + }; + patches = (oldAttrs.patches or [ ]) ++ [ + (fetchpatch { + # utest: Improve filtering of output sugar for Python 3.13+ + name = "python3.13-support.patch"; + url = "https://github.com/robotframework/robotframework/commit/921e352556dc8538b72de1e693e2a244d420a26d.patch"; + hash = "sha256-aSaror26x4kVkLVetPEbrJG4H1zstHsNWqmwqOys3zo="; + }) + ]; + })) + ]; +in +stdenv.mkDerivation (finalAttrs: { + pname = "renode"; + version = "1.16.0"; + + src = fetchurl { + url = "https://github.com/renode/renode/releases/download/v${finalAttrs.version}/renode-${finalAttrs.version}.linux-dotnet.tar.gz"; + hash = "sha256-oNlTz5LBggPkjKM4TJO2UDKQdt2Ga7rBTdgyGjN8/zA="; + }; + + nativeBuildInputs = [ + autoPatchelfHook + makeWrapper + ]; + + propagatedBuildInputs = [ + gtk-sharp-3_0 + ]; + + strictDeps = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out/{bin,libexec/renode} + + mv * $out/libexec/renode + mv .renode-root $out/libexec/renode + + makeWrapper "$out/libexec/renode/renode" "$out/bin/renode" \ + --prefix PATH : "$out/libexec/renode:${lib.makeBinPath [ dotnetCorePackages.runtime_8_0 ]}" \ + --prefix GIO_EXTRA_MODULES : "${lib.getLib dconf}/lib/gio/modules" \ + --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk3-x11 ]}" \ + --prefix PYTHONPATH : "${pythonLibs}" \ + --set LOCALE_ARCHIVE "${glibcLocales}/lib/locale/locale-archive" + makeWrapper "$out/libexec/renode/renode-test" "$out/bin/renode-test" \ + --prefix PATH : "$out/libexec/renode:${lib.makeBinPath [ dotnetCorePackages.runtime_8_0 ]}" \ + --prefix GIO_EXTRA_MODULES : "${lib.getLib dconf}/lib/gio/modules" \ + --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk3-x11 ]}" \ + --prefix PYTHONPATH : "${pythonLibs}" \ + --set LOCALE_ARCHIVE "${glibcLocales}/lib/locale/locale-archive" + + substituteInPlace "$out/libexec/renode/renode-test" \ + --replace '$PYTHON_RUNNER' '${python3Packages.python}/bin/python3' + + runHook postInstall + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Virtual development framework for complex embedded systems"; + homepage = "https://renode.io"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ + otavio + znaniye + ]; + platforms = [ "x86_64-linux" ]; + }; +}) diff --git a/pkgs/by-name/re/renode-unstable-bin/package.nix b/pkgs/by-name/re/renode-unstable-bin/package.nix new file mode 100644 index 000000000000..ddfca5a5b4ce --- /dev/null +++ b/pkgs/by-name/re/renode-unstable-bin/package.nix @@ -0,0 +1,38 @@ +{ + fetchurl, + renode-bin, + writeScript, +}: + +renode-bin.overrideAttrs ( + finalAttrs: _: { + pname = "renode-unstable"; + version = "1.16.0+20250805git769469683"; + + src = fetchurl { + url = "https://builds.renode.io/renode-${finalAttrs.version}.linux-dotnet.tar.gz"; + hash = "sha256-UZSfdJ14igoqaFCwCZmy29MfKZcxr7j8RtI/epHs2WI="; + }; + + passthru.updateScript = + let + versionRegex = "[0-9\\.\\+]+[^\\+]*."; + in + writeScript "${finalAttrs.pname}-updater" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p common-updater-scripts curl gnugrep gnused pup + + latestVersion=$( + curl -sS https://builds.renode.io \ + | pup 'a text{}' \ + | egrep 'renode-${versionRegex}\.linux-dotnet\.tar\.gz' \ + | head -n1 \ + | sed -e 's,renode-\(.*\)\.linux-dotnet\.tar\.gz,\1,g' + ) + + update-source-version ${finalAttrs.pname} "$latestVersion" \ + --file=pkgs/by-name/re/${finalAttrs.pname}/package.nix \ + --system=x86_64-linux + ''; + } +) diff --git a/pkgs/by-name/re/renode-unstable/package.nix b/pkgs/by-name/re/renode-unstable/package.nix index af344a2e1608..d778a7c00fa8 100644 --- a/pkgs/by-name/re/renode-unstable/package.nix +++ b/pkgs/by-name/re/renode-unstable/package.nix @@ -1,38 +1,32 @@ { + fetchFromGitHub, + nix-update-script, renode, - fetchurl, - writeScript, + ... }: +renode.overrideAttrs (old: rec { + pname = "renode-unstable"; + version = "1.16.0-unstable-2025-08-08"; -renode.overrideAttrs ( - finalAttrs: _: { - pname = "renode-unstable"; - version = "1.16.0+20250805git769469683"; + src = fetchFromGitHub { + owner = "renode"; + repo = "renode"; + rev = "194d90650a9337a05cd81e8855474773d23d4396"; + hash = "sha256-oRtbjup5RKbVzKMTa0yiY1gGhDqUrQ4N3SgwQ7lm8Ho="; + fetchSubmodules = true; + }; - src = fetchurl { - url = "https://builds.renode.io/renode-${finalAttrs.version}.linux-dotnet.tar.gz"; - hash = "sha256-UZSfdJ14igoqaFCwCZmy29MfKZcxr7j8RtI/epHs2WI="; + prePatch = '' + substituteInPlace tools/building/createAssemblyInfo.sh \ + --replace CURRENT_INFORMATIONAL_VERSION="`git rev-parse --short=8 HEAD`" \ + CURRENT_INFORMATIONAL_VERSION="${builtins.substring 0 8 src.rev}" + ''; + + passthru = old.passthru // { + updateScript = nix-update-script { + extraArgs = [ + "--version=branch" + ]; }; - - passthru.updateScript = - let - versionRegex = "[0-9\\.\\+]+[^\\+]*."; - in - writeScript "${finalAttrs.pname}-updater" '' - #!/usr/bin/env nix-shell - #!nix-shell -i bash -p common-updater-scripts curl gnugrep gnused pup - - latestVersion=$( - curl -sS https://builds.renode.io \ - | pup 'a text{}' \ - | egrep 'renode-${versionRegex}\.linux-dotnet\.tar\.gz' \ - | head -n1 \ - | sed -e 's,renode-\(.*\)\.linux-dotnet\.tar\.gz,\1,g' - ) - - update-source-version ${finalAttrs.pname} "$latestVersion" \ - --file=pkgs/by-name/re/${finalAttrs.pname}/package.nix \ - --system=x86_64-linux - ''; - } -) + }; +}) diff --git a/pkgs/by-name/re/renode/deps.json b/pkgs/by-name/re/renode/deps.json new file mode 100644 index 000000000000..c50fb3ed5d39 --- /dev/null +++ b/pkgs/by-name/re/renode/deps.json @@ -0,0 +1,1192 @@ +[ + { + "pname": "AsyncIO", + "version": "0.1.69", + "hash": "sha256-JQKq/U71NQTfPuUqj7z5bALe+d7G1o3GcI8kvVDxy6o=" + }, + { + "pname": "AtkSharp", + "version": "3.24.24.95", + "hash": "sha256-NgdWbXToBHhEVbvPrFcwXeit5iaqbBmNPQiC0jPKlnQ=" + }, + { + "pname": "CairoSharp", + "version": "3.24.24.95", + "hash": "sha256-ycdgmQyQ1uSshI/9uMaqn5OBxRF8RADf4Tn/TptE2BU=" + }, + { + "pname": "Castle.Core", + "version": "5.0.0", + "hash": "sha256-o0dLsy0RfVOIggymFbUJMhfR3XDp6uFI3G1o4j9o2Lg=" + }, + { + "pname": "DynamicLanguageRuntime", + "version": "1.3.5", + "hash": "sha256-8spaocJ0jH4suK7EQKjMOH0+pdhapV44ZxBFUBKl3h0=" + }, + { + "pname": "Dynamitey", + "version": "2.0.10.189", + "hash": "sha256-Gk2sqTdAzX6JqIGm+qoVnQX0tuI1eV3Cn+eJMkcmnD0=" + }, + { + "pname": "GdkSharp", + "version": "3.24.24.95", + "hash": "sha256-NYjADgZG9TUQDIZiSSXDAxj5PyX/B7oKRo9f8Oyb4vI=" + }, + { + "pname": "GioSharp", + "version": "3.24.24.95", + "hash": "sha256-5THx4af5PghPnQxXdnsC+wtVcoslh+0636WkB1FaPYg=" + }, + { + "pname": "GLibSharp", + "version": "3.24.24.95", + "hash": "sha256-1pDRkKoUI9fLJBcTA2DBlpVccJl2GyAdL+VKjsFbttA=" + }, + { + "pname": "GtkSharp", + "version": "3.24.24.95", + "hash": "sha256-sBvk5Ecf2i6c2fYVjMBVoXz0I6IlucOWeE2czZH9QHg=" + }, + { + "pname": "Humanizer.Core", + "version": "2.2.0", + "hash": "sha256-5Q6oRaV8wHPONHreKvB74VjV2FW36mwC3n+05It5vyI=" + }, + { + "pname": "IronPython", + "version": "2.7.8", + "hash": "sha256-91NgTy3Q4MmD4GlhT+WjdVKQGRlIENdIJuyP9hE/iCs=" + }, + { + "pname": "IronPython.StdLib", + "version": "2.7.12", + "hash": "sha256-LfGg7EMJCVl2MiQjVD2dr8nOZKSqS/I42lO364YtzcA=" + }, + { + "pname": "K4os.Compression.LZ4", + "version": "1.3.8", + "hash": "sha256-OmT3JwO4qpkZDL7XqiFqZCyxySj64s9t+mXcN1T+IyA=" + }, + { + "pname": "Microsoft.Bcl.AsyncInterfaces", + "version": "5.0.0", + "hash": "sha256-bpJjcJSUSZH0GeOXoZI12xUQOf2SRtxG7sZV0dWS5TI=" + }, + { + "pname": "Microsoft.CodeAnalysis.Analyzers", + "version": "3.0.0", + "hash": "sha256-KDbCfsBWSJ5ohEXUKp1s1LX9xA2NPvXE/xVzj68EdC0=" + }, + { + "pname": "Microsoft.CodeAnalysis.Analyzers", + "version": "3.3.4", + "hash": "sha256-qDzTfZBSCvAUu9gzq2k+LOvh6/eRvJ9++VCNck/ZpnE=" + }, + { + "pname": "Microsoft.CodeAnalysis.Common", + "version": "3.9.0", + "hash": "sha256-M2LpVHr+UDFCVD7PtDSRD635+RO620JKmK/siOw01PQ=" + }, + { + "pname": "Microsoft.CodeAnalysis.Compilers", + "version": "3.9.0", + "hash": "sha256-l9P26Rz6pV1DZkz8L8HHE63+2qTK+IOGVEtEd7A//us=" + }, + { + "pname": "Microsoft.CodeAnalysis.CSharp", + "version": "3.9.0", + "hash": "sha256-f3591/1mz/P3Asi9NTYU38bNukrKR7COR0pGmEtPKzM=" + }, + { + "pname": "Microsoft.CodeAnalysis.CSharp.Workspaces", + "version": "3.9.0", + "hash": "sha256-/3J5wdymZZdsDOaKtkvda8o97T69EaTKk5aR4Rc1bzM=" + }, + { + "pname": "Microsoft.CodeAnalysis.VisualBasic", + "version": "3.9.0", + "hash": "sha256-5p4UrCoOMdFZ65vkHlak1VDpvU6msBCM2dK3Kyn4k2c=" + }, + { + "pname": "Microsoft.CodeAnalysis.Workspaces.Common", + "version": "3.9.0", + "hash": "sha256-Zzi/rXQA8BDJbUn9kKR7GB8dB7iwA1qlPnEkh8NMecU=" + }, + { + "pname": "Microsoft.CodeCoverage", + "version": "16.9.1", + "hash": "sha256-Tnlv9n5qKipmc17lld4HHfL/KInIq4KhmdTySTjqOqI=" + }, + { + "pname": "Microsoft.CSharp", + "version": "4.0.1", + "hash": "sha256-0huoqR2CJ3Z9Q2peaKD09TV3E6saYSqDGZ290K8CrH8=" + }, + { + "pname": "Microsoft.CSharp", + "version": "4.5.0", + "hash": "sha256-dAhj/CgXG5VIy2dop1xplUsLje7uBPFjxasz9rdFIgY=" + }, + { + "pname": "Microsoft.CSharp", + "version": "4.7.0", + "hash": "sha256-Enknv2RsFF68lEPdrf5M+BpV1kHoLTVRApKUwuk/pj0=" + }, + { + "pname": "Microsoft.DotNet.InternalAbstractions", + "version": "1.0.0", + "hash": "sha256-HX3iOXH75I1L7eNihCbMNDDpcotfZpfQUdqdRTGM6FY=" + }, + { + "pname": "Microsoft.Extensions.ObjectPool", + "version": "5.0.10", + "hash": "sha256-tAjiU3w0hdPAGUitszxZ6jtEilRn977MY7N5eZMx0x0=" + }, + { + "pname": "Microsoft.Extensions.ObjectPool", + "version": "6.0.16", + "hash": "sha256-+b3/mTZkFXTAC+dLeCfN6B3XuTDT8e+/N6xkzwgZRi4=" + }, + { + "pname": "Microsoft.IdentityModel.Logging", + "version": "6.8.0", + "hash": "sha256-w3jP0TAD3D2HLWlY0meGDmbV7N5kc2Er2nfYmuq0TJo=" + }, + { + "pname": "Microsoft.IdentityModel.Protocols.WsTrust", + "version": "6.8.0", + "hash": "sha256-yBnJQC+1pYpScnb8w/EYrVB5VrD7S0FytiGNNnCXggk=" + }, + { + "pname": "Microsoft.IdentityModel.Tokens", + "version": "6.8.0", + "hash": "sha256-NJsIvWJwrVrQndhHDpXf7eS1Gr/+2ua9nkW5ivWQyFY=" + }, + { + "pname": "Microsoft.IdentityModel.Tokens.Saml", + "version": "6.8.0", + "hash": "sha256-K3EUlCtNP+w6woHkwGaWhMJmIhlfOD5x4gl4qwo3rHU=" + }, + { + "pname": "Microsoft.IdentityModel.Xml", + "version": "6.8.0", + "hash": "sha256-Fd7vRbOmJb0VwdO4RzF94GWBVNncDD5vC8FNPunayWw=" + }, + { + "pname": "Microsoft.NET.Test.Sdk", + "version": "16.9.1", + "hash": "sha256-hefOxUAdu2CRsz+9Avq+fS9PIGxfbQdK4JDXcueuwZw=" + }, + { + "pname": "Microsoft.NETCore.Platforms", + "version": "1.0.1", + "hash": "sha256-mZotlGZqtrqDSoBrZhsxFe6fuOv5/BIo0w2Z2x0zVAU=" + }, + { + "pname": "Microsoft.NETCore.Platforms", + "version": "1.1.0", + "hash": "sha256-FeM40ktcObQJk4nMYShB61H/E8B7tIKfl9ObJ0IOcCM=" + }, + { + "pname": "Microsoft.NETCore.Platforms", + "version": "2.0.0", + "hash": "sha256-IEvBk6wUXSdyCnkj6tHahOJv290tVVT8tyemYcR0Yro=" + }, + { + "pname": "Microsoft.NETCore.Platforms", + "version": "2.1.2", + "hash": "sha256-gYQQO7zsqG+OtN4ywYQyfsiggS2zmxw4+cPXlK+FB5Q=" + }, + { + "pname": "Microsoft.NETCore.Platforms", + "version": "3.1.0", + "hash": "sha256-cnygditsEaU86bnYtIthNMymAHqaT/sf9Gjykhzqgb0=" + }, + { + "pname": "Microsoft.NETCore.Platforms", + "version": "5.0.0", + "hash": "sha256-LIcg1StDcQLPOABp4JRXIs837d7z0ia6+++3SF3jl1c=" + }, + { + "pname": "Microsoft.NETCore.Targets", + "version": "1.0.1", + "hash": "sha256-lxxw/Gy32xHi0fLgFWNj4YTFBSBkjx5l6ucmbTyf7V4=" + }, + { + "pname": "Microsoft.NETCore.Targets", + "version": "1.1.0", + "hash": "sha256-0AqQ2gMS8iNlYkrD+BxtIg7cXMnr9xZHtKAuN4bjfaQ=" + }, + { + "pname": "Microsoft.TestPlatform.ObjectModel", + "version": "16.9.1", + "hash": "sha256-LZJLTWU2DOnuBiN/g+S+rwG2/BJtKrjydKnj3ujp98U=" + }, + { + "pname": "Microsoft.TestPlatform.TestHost", + "version": "16.9.1", + "hash": "sha256-92/trlM66kPR7ASpg6x7kk43glZYaOKrkaNJQE8uPbs=" + }, + { + "pname": "Microsoft.Win32.Primitives", + "version": "4.3.0", + "hash": "sha256-mBNDmPXNTW54XLnPAUwBRvkIORFM7/j0D0I2SyQPDEg=" + }, + { + "pname": "Microsoft.Win32.Registry", + "version": "4.3.0", + "hash": "sha256-50XwFbyRfZkTD/bBn76WV/NIpOy/mzXD3MMEVFX/vr8=" + }, + { + "pname": "Microsoft.Win32.Registry", + "version": "4.4.0", + "hash": "sha256-ZumsykAAIYKmVtP4QI5kZ0J10n2zcOZZ69PmAK0SEiE=" + }, + { + "pname": "Microsoft.Win32.SystemEvents", + "version": "4.7.0", + "hash": "sha256-GHxnD1Plb32GJWVWSv0Y51Kgtlb+cdKgOYVBYZSgVF4=" + }, + { + "pname": "Microsoft.Win32.SystemEvents", + "version": "5.0.0", + "hash": "sha256-mGUKg+bmB5sE/DCwsTwCsbe00MCwpgxsVW3nCtQiSmo=" + }, + { + "pname": "Mono.Cecil", + "version": "0.11.3", + "hash": "sha256-QxJcRt3eYy7R0mc25F/hM5n4qVqBAlZChsEKn+Y9nXU=" + }, + { + "pname": "Mono.Posix", + "version": "7.1.0-final.1.21458.1", + "hash": "sha256-kbpbruyWKfWfRg9IX0wR8UirykgJdLZl2d5PqUgFxz4=" + }, + { + "pname": "Mono.Unix", + "version": "7.1.0-final.1.21458.1", + "hash": "sha256-tm3niOm4OFCe/kL5M5zwCZgfHEaPtmDqsOLN6GExYHs=" + }, + { + "pname": "Moq", + "version": "4.18.1", + "hash": "sha256-Qe3wOHdnTAKRUiqj9BeqOUOiFC6L9lCTCSkvkXrEnEM=" + }, + { + "pname": "NaCl.Net", + "version": "0.1.13", + "hash": "sha256-Zy9ckPxrBcKy31g2pKc5uxF22jayw3ZmbrvDBW3MIlk=" + }, + { + "pname": "NetMQ", + "version": "4.0.1.12", + "hash": "sha256-O38SQuMRpTCz3YScEu0T9jw9DrVeQW5pAeHexYyooH8=" + }, + { + "pname": "NETStandard.Library", + "version": "2.0.0", + "hash": "sha256-Pp7fRylai8JrE1O+9TGfIEJrAOmnWTJRLWE+qJBahK0=" + }, + { + "pname": "NETStandard.Library", + "version": "2.0.3", + "hash": "sha256-Prh2RPebz/s8AzHb2sPHg3Jl8s31inv9k+Qxd293ybo=" + }, + { + "pname": "Newtonsoft.Json", + "version": "9.0.1", + "hash": "sha256-mYCBrgUhIJFzRuLLV9SIiIFHovzfR8Uuqfg6e08EnlU=" + }, + { + "pname": "NuGet.Frameworks", + "version": "5.0.0", + "hash": "sha256-WWLh+v9Y9as+WURW8tUPowQB8HWIiVJzbpKzEWTdMqI=" + }, + { + "pname": "NUnit", + "version": "3.13.1", + "hash": "sha256-qdbPWgCXueQdHpGdNQtdz16Zfg+XESI9xDlRD/IzJRw=" + }, + { + "pname": "NUnit3TestAdapter", + "version": "3.17.0", + "hash": "sha256-ZlpEM9IQlqsRPmYPMN6yCbICfakSoY89y40xtMY3rE8=" + }, + { + "pname": "PangoSharp", + "version": "3.24.24.95", + "hash": "sha256-YhltIz1jisJqR2ZxvbYy0ybi4oGw6qR2SkjF/2aWiBQ=" + }, + { + "pname": "runtime.any.System.Collections", + "version": "4.3.0", + "hash": "sha256-4PGZqyWhZ6/HCTF2KddDsbmTTjxs2oW79YfkberDZS8=" + }, + { + "pname": "runtime.any.System.Diagnostics.Tools", + "version": "4.3.0", + "hash": "sha256-8yLKFt2wQxkEf7fNfzB+cPUCjYn2qbqNgQ1+EeY2h/I=" + }, + { + "pname": "runtime.any.System.Diagnostics.Tracing", + "version": "4.3.0", + "hash": "sha256-dsmTLGvt8HqRkDWP8iKVXJCS+akAzENGXKPV18W2RgI=" + }, + { + "pname": "runtime.any.System.Globalization", + "version": "4.3.0", + "hash": "sha256-PaiITTFI2FfPylTEk7DwzfKeiA/g/aooSU1pDcdwWLU=" + }, + { + "pname": "runtime.any.System.IO", + "version": "4.3.0", + "hash": "sha256-vej7ySRhyvM3pYh/ITMdC25ivSd0WLZAaIQbYj/6HVE=" + }, + { + "pname": "runtime.any.System.Reflection", + "version": "4.3.0", + "hash": "sha256-ns6f++lSA+bi1xXgmW1JkWFb2NaMD+w+YNTfMvyAiQk=" + }, + { + "pname": "runtime.any.System.Reflection.Extensions", + "version": "4.3.0", + "hash": "sha256-Y2AnhOcJwJVYv7Rp6Jz6ma0fpITFqJW+8rsw106K2X8=" + }, + { + "pname": "runtime.any.System.Reflection.Primitives", + "version": "4.3.0", + "hash": "sha256-LkPXtiDQM3BcdYkAm5uSNOiz3uF4J45qpxn5aBiqNXQ=" + }, + { + "pname": "runtime.any.System.Resources.ResourceManager", + "version": "4.3.0", + "hash": "sha256-9EvnmZslLgLLhJ00o5MWaPuJQlbUFcUF8itGQNVkcQ4=" + }, + { + "pname": "runtime.any.System.Runtime", + "version": "4.3.0", + "hash": "sha256-qwhNXBaJ1DtDkuRacgHwnZmOZ1u9q7N8j0cWOLYOELM=" + }, + { + "pname": "runtime.any.System.Runtime.Handles", + "version": "4.3.0", + "hash": "sha256-PQRACwnSUuxgVySO1840KvqCC9F8iI9iTzxNW0RcBS4=" + }, + { + "pname": "runtime.any.System.Runtime.InteropServices", + "version": "4.3.0", + "hash": "sha256-Kaw5PnLYIiqWbsoF3VKJhy7pkpoGsUwn4ZDCKscbbzA=" + }, + { + "pname": "runtime.any.System.Text.Encoding", + "version": "4.3.0", + "hash": "sha256-Q18B9q26MkWZx68exUfQT30+0PGmpFlDgaF0TnaIGCs=" + }, + { + "pname": "runtime.any.System.Text.Encoding.Extensions", + "version": "4.3.0", + "hash": "sha256-6MYj0RmLh4EVqMtO/MRqBi0HOn5iG4x9JimgCCJ+EFM=" + }, + { + "pname": "runtime.any.System.Threading.Tasks", + "version": "4.3.0", + "hash": "sha256-agdOM0NXupfHbKAQzQT8XgbI9B8hVEh+a/2vqeHctg4=" + }, + { + "pname": "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-LXUPLX3DJxsU1Pd3UwjO1PO9NM2elNEDXeu2Mu/vNps=" + }, + { + "pname": "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-qeSqaUI80+lqw5MK4vMpmO0CZaqrmYktwp6L+vQAb0I=" + }, + { + "pname": "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-SrHqT9wrCBsxILWtaJgGKd6Odmxm8/Mh7Kh0CUkZVzA=" + }, + { + "pname": "runtime.native.System", + "version": "4.3.0", + "hash": "sha256-ZBZaodnjvLXATWpXXakFgcy6P+gjhshFXmglrL5xD5Y=" + }, + { + "pname": "runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-Jy01KhtcCl2wjMpZWH+X3fhHcVn+SyllWFY8zWlz/6I=" + }, + { + "pname": "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-wyv00gdlqf8ckxEdV7E+Ql9hJIoPcmYEuyeWb5Oz3mM=" + }, + { + "pname": "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-zi+b4sCFrA9QBiSGDD7xPV27r3iHGlV99gpyVUjRmc4=" + }, + { + "pname": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-gybQU6mPgaWV3rBG2dbH6tT3tBq8mgze3PROdsuWnX0=" + }, + { + "pname": "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-VsP72GVveWnGUvS/vjOQLv1U80H2K8nZ4fDAmI61Hm4=" + }, + { + "pname": "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-4yKGa/IrNCKuQ3zaDzILdNPD32bNdy6xr5gdJigyF5g=" + }, + { + "pname": "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-HmdJhhRsiVoOOCcUvAwdjpMRiyuSwdcgEv2j9hxi+Zc=" + }, + { + "pname": "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-pVFUKuPPIx0edQKjzRon3zKq8zhzHEzko/lc01V/jdw=" + }, + { + "pname": "runtime.unix.Microsoft.Win32.Primitives", + "version": "4.3.0", + "hash": "sha256-LZb23lRXzr26tRS5aA0xyB08JxiblPDoA7HBvn6awXg=" + }, + { + "pname": "runtime.unix.System.Diagnostics.Debug", + "version": "4.3.0", + "hash": "sha256-ReoazscfbGH+R6s6jkg5sIEHWNEvjEoHtIsMbpc7+tI=" + }, + { + "pname": "runtime.unix.System.IO.FileSystem", + "version": "4.3.0", + "hash": "sha256-Pf4mRl6YDK2x2KMh0WdyNgv0VUNdSKVDLlHqozecy5I=" + }, + { + "pname": "runtime.unix.System.Private.Uri", + "version": "4.3.0", + "hash": "sha256-c5tXWhE/fYbJVl9rXs0uHh3pTsg44YD1dJvyOA0WoMs=" + }, + { + "pname": "runtime.unix.System.Runtime.Extensions", + "version": "4.3.0", + "hash": "sha256-l8S9gt6dk3qYG6HYonHtdlYtBKyPb29uQ6NDjmrt3V4=" + }, + { + "pname": "StyleCop.Analyzers", + "version": "1.1.118", + "hash": "sha256-CjC1f5z0sP15F6FeXqIDOtZLHqgjmQTzpsIrRkxXREI=" + }, + { + "pname": "System.AppContext", + "version": "4.1.0", + "hash": "sha256-v6YfyfrKmhww+EYHUq6cwYUMj00MQ6SOfJtcGVRlYzs=" + }, + { + "pname": "System.Buffers", + "version": "4.3.0", + "hash": "sha256-XqZWb4Kd04960h4U9seivjKseGA/YEIpdplfHYHQ9jk=" + }, + { + "pname": "System.Buffers", + "version": "4.5.1", + "hash": "sha256-wws90sfi9M7kuCPWkv1CEYMJtCqx9QB/kj0ymlsNaxI=" + }, + { + "pname": "System.CodeDom", + "version": "6.0.0", + "hash": "sha256-uPetUFZyHfxjScu5x4agjk9pIhbCkt5rG4Axj25npcQ=" + }, + { + "pname": "System.Collections", + "version": "4.0.11", + "hash": "sha256-puoFMkx4Z55C1XPxNw3np8nzNGjH+G24j43yTIsDRL0=" + }, + { + "pname": "System.Collections", + "version": "4.3.0", + "hash": "sha256-afY7VUtD6w/5mYqrce8kQrvDIfS2GXDINDh73IjxJKc=" + }, + { + "pname": "System.Collections.Immutable", + "version": "5.0.0", + "hash": "sha256-GdwSIjLMM0uVfE56VUSLVNgpW0B//oCeSFj8/hSlbM8=" + }, + { + "pname": "System.Collections.NonGeneric", + "version": "4.3.0", + "hash": "sha256-8/yZmD4jjvq7m68SPkJZLBQ79jOTOyT5lyzX4SCYAx8=" + }, + { + "pname": "System.Collections.Specialized", + "version": "4.3.0", + "hash": "sha256-QNg0JJNx+zXMQ26MJRPzH7THdtqjrNtGLUgaR1SdvOk=" + }, + { + "pname": "System.ComponentModel", + "version": "4.3.0", + "hash": "sha256-i00uujMO4JEDIEPKLmdLY3QJ6vdSpw6Gh9oOzkFYBiU=" + }, + { + "pname": "System.ComponentModel.EventBasedAsync", + "version": "4.3.0", + "hash": "sha256-h7o4X3XojdRyJWQdUfZetLdqtrQlddMzxhh6j9Zcaec=" + }, + { + "pname": "System.ComponentModel.Primitives", + "version": "4.3.0", + "hash": "sha256-IOMJleuIBppmP4ECB3uftbdcgL7CCd56+oAD/Sqrbus=" + }, + { + "pname": "System.ComponentModel.TypeConverter", + "version": "4.3.0", + "hash": "sha256-PSDiPYt8PgTdTUBz+GH6lHCaM1YgfObneHnZsc8Fz54=" + }, + { + "pname": "System.Composition", + "version": "1.0.31", + "hash": "sha256-wcQEG6MCRa1S03s3Yb3E3tfsIBZid99M7WDhcb48Qik=" + }, + { + "pname": "System.Composition.AttributedModel", + "version": "1.0.31", + "hash": "sha256-u+XnXfj6LQ3OXwrb9KqHRW4a/a9yHzLrJOXwDQ1a/sY=" + }, + { + "pname": "System.Composition.Convention", + "version": "1.0.31", + "hash": "sha256-GQWo1YDyQ3r2OMcKW+GbR3BbZNIAdwK79XAfinNj+AE=" + }, + { + "pname": "System.Composition.Hosting", + "version": "1.0.31", + "hash": "sha256-fg9BIY+zWtiEBIJefYP2lKHDYa4r/vtPTr3ZI8e0K7g=" + }, + { + "pname": "System.Composition.Runtime", + "version": "1.0.31", + "hash": "sha256-mqfxjAnVyE1YCgXMOcV34IWhYFnvXVKjMo9Y/d3yDuo=" + }, + { + "pname": "System.Composition.TypedParts", + "version": "1.0.31", + "hash": "sha256-w9ApcUJr7jYP4Vf5+efIIqoWmr5v9R56W4uC0n8KktQ=" + }, + { + "pname": "System.Diagnostics.Debug", + "version": "4.0.11", + "hash": "sha256-P+rSQJVoN6M56jQbs76kZ9G3mAWFdtF27P/RijN8sj4=" + }, + { + "pname": "System.Diagnostics.Debug", + "version": "4.3.0", + "hash": "sha256-fkA79SjPbSeiEcrbbUsb70u9B7wqbsdM9s1LnoKj0gM=" + }, + { + "pname": "System.Diagnostics.EventLog", + "version": "6.0.0", + "hash": "sha256-zUXIQtAFKbiUMKCrXzO4mOTD5EUphZzghBYKXprowSM=" + }, + { + "pname": "System.Diagnostics.Process", + "version": "4.3.0", + "hash": "sha256-Rzo24qXhuJDDgrGNHr2eQRHhwLmsYmWDqAg/P5fOlzw=" + }, + { + "pname": "System.Diagnostics.Tools", + "version": "4.0.1", + "hash": "sha256-vSBqTbmWXylvRa37aWyktym+gOpsvH43mwr6A962k6U=" + }, + { + "pname": "System.Diagnostics.Tools", + "version": "4.3.0", + "hash": "sha256-gVOv1SK6Ape0FQhCVlNOd9cvQKBvMxRX9K0JPVi8w0Y=" + }, + { + "pname": "System.Diagnostics.Tracing", + "version": "4.3.0", + "hash": "sha256-hCETZpHHGVhPYvb4C0fh4zs+8zv4GPoixagkLZjpa9Q=" + }, + { + "pname": "System.Drawing.Common", + "version": "4.7.0", + "hash": "sha256-D3qG+xAe78lZHvlco9gHK2TEAM370k09c6+SQi873Hk=" + }, + { + "pname": "System.Drawing.Common", + "version": "5.0.0", + "hash": "sha256-8PgFBZ3Agd+UI9IMxr4fRIW8IA1hqCl15nqlLTJETzk=" + }, + { + "pname": "System.Drawing.Common", + "version": "5.0.3", + "hash": "sha256-nr1bSJoGA97IfrQQTyakVIx3r0bpoZfs6xtrDgvE2+Y=" + }, + { + "pname": "System.Dynamic.Runtime", + "version": "4.0.11", + "hash": "sha256-qWqFVxuXioesVftv2RVJZOnmojUvRjb7cS3Oh3oTit4=" + }, + { + "pname": "System.Formats.Asn1", + "version": "5.0.0", + "hash": "sha256-9nL3dN4w/dZ49W1pCkTjRqZm6Dh0mMVExNungcBHrKs=" + }, + { + "pname": "System.Formats.Asn1", + "version": "6.0.0", + "hash": "sha256-KaMHgIRBF7Nf3VwOo+gJS1DcD+41cJDPWFh+TDQ8ee8=" + }, + { + "pname": "System.Globalization", + "version": "4.0.11", + "hash": "sha256-rbSgc2PIEc2c2rN6LK3qCREAX3DqA2Nq1WcLrZYsDBw=" + }, + { + "pname": "System.Globalization", + "version": "4.3.0", + "hash": "sha256-caL0pRmFSEsaoeZeWN5BTQtGrAtaQPwFi8YOZPZG5rI=" + }, + { + "pname": "System.Globalization.Extensions", + "version": "4.3.0", + "hash": "sha256-mmJWA27T0GRVuFP9/sj+4TrR4GJWrzNIk2PDrbr7RQk=" + }, + { + "pname": "System.IO", + "version": "4.1.0", + "hash": "sha256-V6oyQFwWb8NvGxAwvzWnhPxy9dKOfj/XBM3tEC5aHrw=" + }, + { + "pname": "System.IO", + "version": "4.3.0", + "hash": "sha256-ruynQHekFP5wPrDiVyhNiRIXeZ/I9NpjK5pU+HPDiRY=" + }, + { + "pname": "System.IO.FileSystem", + "version": "4.0.1", + "hash": "sha256-4VKXFgcGYCTWVXjAlniAVq0dO3o5s8KHylg2wg2/7k0=" + }, + { + "pname": "System.IO.FileSystem", + "version": "4.3.0", + "hash": "sha256-vNIYnvlayuVj0WfRfYKpDrhDptlhp1pN8CYmlVd2TXw=" + }, + { + "pname": "System.IO.FileSystem.Primitives", + "version": "4.0.1", + "hash": "sha256-IpigKMomqb6pmYWkrlf0ZdpILtRluX2cX5sOKVW0Feg=" + }, + { + "pname": "System.IO.FileSystem.Primitives", + "version": "4.3.0", + "hash": "sha256-LMnfg8Vwavs9cMnq9nNH8IWtAtSfk0/Fy4s4Rt9r1kg=" + }, + { + "pname": "System.IO.Pipelines", + "version": "5.0.0", + "hash": "sha256-o5ATaT13t/Q+ejEO70N9qOzb2dLrjYxCba1plPJfu80=" + }, + { + "pname": "System.Linq", + "version": "4.1.0", + "hash": "sha256-ZQpFtYw5N1F1aX0jUK3Tw+XvM5tnlnshkTCNtfVA794=" + }, + { + "pname": "System.Linq", + "version": "4.3.0", + "hash": "sha256-R5uiSL3l6a3XrXSSL6jz+q/PcyVQzEAByiuXZNSqD/A=" + }, + { + "pname": "System.Linq.Expressions", + "version": "4.1.0", + "hash": "sha256-7zqB+FXgkvhtlBzpcZyd81xczWP0D3uWssyAGw3t7b4=" + }, + { + "pname": "System.Linq.Expressions", + "version": "4.3.0", + "hash": "sha256-+3pvhZY7rip8HCbfdULzjlC9FPZFpYoQxhkcuFm2wk8=" + }, + { + "pname": "System.Memory", + "version": "4.5.4", + "hash": "sha256-3sCEfzO4gj5CYGctl9ZXQRRhwAraMQfse7yzKoRe65E=" + }, + { + "pname": "System.Numerics.Vectors", + "version": "4.4.0", + "hash": "sha256-auXQK2flL/JpnB/rEcAcUm4vYMCYMEMiWOCAlIaqu2U=" + }, + { + "pname": "System.Numerics.Vectors", + "version": "4.5.0", + "hash": "sha256-qdSTIFgf2htPS+YhLGjAGiLN8igCYJnCCo6r78+Q+c8=" + }, + { + "pname": "System.ObjectModel", + "version": "4.0.12", + "hash": "sha256-MudZ/KYcvYsn2cST3EE049mLikrNkmE7QoUoYKKby+s=" + }, + { + "pname": "System.ObjectModel", + "version": "4.3.0", + "hash": "sha256-gtmRkWP2Kwr3nHtDh0yYtce38z1wrGzb6fjm4v8wN6Q=" + }, + { + "pname": "System.Private.ServiceModel", + "version": "4.8.1", + "hash": "sha256-d/Mw1lVN0Gb2+pHltqM4qjBOO67vFGfI5zRK5MHa2rg=" + }, + { + "pname": "System.Private.ServiceModel", + "version": "4.9.0", + "hash": "sha256-AbJKAZzZDxKVXm5761XE+nhlkiDqX9eb6+Y9d4Hq+4Q=" + }, + { + "pname": "System.Private.Uri", + "version": "4.3.0", + "hash": "sha256-fVfgcoP4AVN1E5wHZbKBIOPYZ/xBeSIdsNF+bdukIRM=" + }, + { + "pname": "System.Reflection", + "version": "4.1.0", + "hash": "sha256-idZHGH2Yl/hha1CM4VzLhsaR8Ljo/rV7TYe7mwRJSMs=" + }, + { + "pname": "System.Reflection", + "version": "4.3.0", + "hash": "sha256-NQSZRpZLvtPWDlvmMIdGxcVuyUnw92ZURo0hXsEshXY=" + }, + { + "pname": "System.Reflection.DispatchProxy", + "version": "4.7.1", + "hash": "sha256-Oi+l32p73ZxwcB6GrSS2m25BccfpuwbY4eyFEwUe0IM=" + }, + { + "pname": "System.Reflection.Emit", + "version": "4.0.1", + "hash": "sha256-F1MvYoQWHCY89/O4JBwswogitqVvKuVfILFqA7dmuHk=" + }, + { + "pname": "System.Reflection.Emit", + "version": "4.3.0", + "hash": "sha256-5LhkDmhy2FkSxulXR+bsTtMzdU3VyyuZzsxp7/DwyIU=" + }, + { + "pname": "System.Reflection.Emit.ILGeneration", + "version": "4.0.1", + "hash": "sha256-YG+eJBG5P+5adsHiw/lhJwvREnvdHw6CJyS8ZV4Ujd0=" + }, + { + "pname": "System.Reflection.Emit.ILGeneration", + "version": "4.3.0", + "hash": "sha256-mKRknEHNls4gkRwrEgi39B+vSaAz/Gt3IALtS98xNnA=" + }, + { + "pname": "System.Reflection.Emit.ILGeneration", + "version": "4.7.0", + "hash": "sha256-GUnQeGo/DtvZVQpFnESGq7lJcjB30/KnDY7Kd2G/ElE=" + }, + { + "pname": "System.Reflection.Emit.Lightweight", + "version": "4.0.1", + "hash": "sha256-uVvNOnL64CPqsgZP2OLqNmxdkZl6Q0fTmKmv9gcBi+g=" + }, + { + "pname": "System.Reflection.Emit.Lightweight", + "version": "4.3.0", + "hash": "sha256-rKx4a9yZKcajloSZHr4CKTVJ6Vjh95ni+zszPxWjh2I=" + }, + { + "pname": "System.Reflection.Emit.Lightweight", + "version": "4.7.0", + "hash": "sha256-V0Wz/UUoNIHdTGS9e1TR89u58zJjo/wPUWw6VaVyclU=" + }, + { + "pname": "System.Reflection.Extensions", + "version": "4.0.1", + "hash": "sha256-NsfmzM9G/sN3H8X2cdnheTGRsh7zbRzvegnjDzDH/FQ=" + }, + { + "pname": "System.Reflection.Extensions", + "version": "4.3.0", + "hash": "sha256-mMOCYzUenjd4rWIfq7zIX9PFYk/daUyF0A8l1hbydAk=" + }, + { + "pname": "System.Reflection.Metadata", + "version": "1.6.0", + "hash": "sha256-JJfgaPav7UfEh4yRAQdGhLZF1brr0tUWPl6qmfNWq/E=" + }, + { + "pname": "System.Reflection.Metadata", + "version": "5.0.0", + "hash": "sha256-Wo+MiqhcP9dQ6NuFGrQTw6hpbJORFwp+TBNTq2yhGp8=" + }, + { + "pname": "System.Reflection.Primitives", + "version": "4.0.1", + "hash": "sha256-SFSfpWEyCBMAOerrMCOiKnpT+UAWTvRcmoRquJR6Vq0=" + }, + { + "pname": "System.Reflection.Primitives", + "version": "4.3.0", + "hash": "sha256-5ogwWB4vlQTl3jjk1xjniG2ozbFIjZTL9ug0usZQuBM=" + }, + { + "pname": "System.Reflection.TypeExtensions", + "version": "4.1.0", + "hash": "sha256-R0YZowmFda+xzKNR4kKg7neFoE30KfZwp/IwfRSKVK4=" + }, + { + "pname": "System.Reflection.TypeExtensions", + "version": "4.3.0", + "hash": "sha256-4U4/XNQAnddgQIHIJq3P2T80hN0oPdU2uCeghsDTWng=" + }, + { + "pname": "System.Resources.ResourceManager", + "version": "4.0.1", + "hash": "sha256-cZ2/3/fczLjEpn6j3xkgQV9ouOVjy4Kisgw5xWw9kSw=" + }, + { + "pname": "System.Resources.ResourceManager", + "version": "4.3.0", + "hash": "sha256-idiOD93xbbrbwwSnD4mORA9RYi/D/U48eRUsn/WnWGo=" + }, + { + "pname": "System.Runtime", + "version": "4.1.0", + "hash": "sha256-FViNGM/4oWtlP6w0JC0vJU+k9efLKZ+yaXrnEeabDQo=" + }, + { + "pname": "System.Runtime", + "version": "4.3.0", + "hash": "sha256-51813WXpBIsuA6fUtE5XaRQjcWdQ2/lmEokJt97u0Rg=" + }, + { + "pname": "System.Runtime.CompilerServices.Unsafe", + "version": "4.5.3", + "hash": "sha256-lnZMUqRO4RYRUeSO8HSJ9yBHqFHLVbmenwHWkIU20ak=" + }, + { + "pname": "System.Runtime.CompilerServices.Unsafe", + "version": "5.0.0", + "hash": "sha256-neARSpLPUzPxEKhJRwoBzhPxK+cKIitLx7WBYncsYgo=" + }, + { + "pname": "System.Runtime.Extensions", + "version": "4.1.0", + "hash": "sha256-X7DZ5CbPY7jHs20YZ7bmcXs9B5Mxptu/HnBUvUnNhGc=" + }, + { + "pname": "System.Runtime.Extensions", + "version": "4.3.0", + "hash": "sha256-wLDHmozr84v1W2zYCWYxxj0FR0JDYHSVRaRuDm0bd/o=" + }, + { + "pname": "System.Runtime.Handles", + "version": "4.0.1", + "hash": "sha256-j2QgVO9ZOjv7D1het98CoFpjoYgxjupuIhuBUmLLH7w=" + }, + { + "pname": "System.Runtime.Handles", + "version": "4.3.0", + "hash": "sha256-KJ5aXoGpB56Y6+iepBkdpx/AfaJDAitx4vrkLqR7gms=" + }, + { + "pname": "System.Runtime.InteropServices", + "version": "4.1.0", + "hash": "sha256-QceAYlJvkPRJc/+5jR+wQpNNI3aqGySWWSO30e/FfQY=" + }, + { + "pname": "System.Runtime.InteropServices", + "version": "4.3.0", + "hash": "sha256-8sDH+WUJfCR+7e4nfpftj/+lstEiZixWUBueR2zmHgI=" + }, + { + "pname": "System.Runtime.InteropServices.RuntimeInformation", + "version": "4.3.0", + "hash": "sha256-MYpl6/ZyC6hjmzWRIe+iDoldOMW1mfbwXsduAnXIKGA=" + }, + { + "pname": "System.Runtime.Serialization.Primitives", + "version": "4.1.1", + "hash": "sha256-80B05oxJbPLGq2pGOSl6NlZvintX9A1CNpna2aN0WRA=" + }, + { + "pname": "System.Security.AccessControl", + "version": "4.4.0", + "hash": "sha256-J3T2ECVdL0JiBA999CUz77az545CVOYB11/NPA/huEc=" + }, + { + "pname": "System.Security.AccessControl", + "version": "4.7.0", + "hash": "sha256-/9ZCPIHLdhzq7OW4UKqTsR0O93jjHd6BRG1SRwgHE1g=" + }, + { + "pname": "System.Security.AccessControl", + "version": "5.0.0", + "hash": "sha256-ueSG+Yn82evxyGBnE49N4D+ngODDXgornlBtQ3Omw54=" + }, + { + "pname": "System.Security.AccessControl", + "version": "6.0.0", + "hash": "sha256-qOyWEBbNr3EjyS+etFG8/zMbuPjA+O+di717JP9Cxyg=" + }, + { + "pname": "System.Security.Cryptography.Cng", + "version": "4.5.0", + "hash": "sha256-9llRbEcY1fHYuTn3vGZaCxsFxSAqXl4bDA6Rz9b0pN4=" + }, + { + "pname": "System.Security.Cryptography.Cng", + "version": "4.7.0", + "hash": "sha256-MvVSJhAojDIvrpuyFmcSVRSZPl3dRYOI9hSptbA+6QA=" + }, + { + "pname": "System.Security.Cryptography.Cng", + "version": "5.0.0", + "hash": "sha256-nOJP3vdmQaYA07TI373OvZX6uWshETipvi5KpL7oExo=" + }, + { + "pname": "System.Security.Cryptography.Pkcs", + "version": "4.7.0", + "hash": "sha256-lZMmOxtg5d7Oyoof8p6awVALUsYQstc2mBNNrQr9m9c=" + }, + { + "pname": "System.Security.Cryptography.Pkcs", + "version": "5.0.0", + "hash": "sha256-kq/tvYQSa24mKSvikFK2fKUAnexSL4PO4LkPppqtYkE=" + }, + { + "pname": "System.Security.Cryptography.Pkcs", + "version": "6.0.1", + "hash": "sha256-OJ4NJ8E/8l86aR+Hsw+k/7II63Y/zPS+MgC+UfeCXHM=" + }, + { + "pname": "System.Security.Cryptography.Xml", + "version": "4.7.0", + "hash": "sha256-67k24CjNisMJUtnyWb08V/t7mBns+pxLyNhBG5YXiCE=" + }, + { + "pname": "System.Security.Cryptography.Xml", + "version": "5.0.0", + "hash": "sha256-0LyU7KmpFRFZFCugAgDnp93Unw3rL4hFSqx6GNqov9o=" + }, + { + "pname": "System.Security.Cryptography.Xml", + "version": "6.0.1", + "hash": "sha256-spXV8cWZu0V3liek1936REtdpvS4fQwc98JvacO1oJU=" + }, + { + "pname": "System.Security.Permissions", + "version": "4.4.0", + "hash": "sha256-P3U50uTv0HF5uOZVoVEARyBDTyG3+Ilm9t2Ko6KVf7w=" + }, + { + "pname": "System.Security.Permissions", + "version": "4.7.0", + "hash": "sha256-BGgXMLUi5rxVmmChjIhcXUxisJjvlNToXlyaIbUxw40=" + }, + { + "pname": "System.Security.Permissions", + "version": "5.0.0", + "hash": "sha256-BI1Js3L4R32UkKOLMTAVpXzGlQ27m+oaYHSV3J+iQfc=" + }, + { + "pname": "System.Security.Principal.Windows", + "version": "4.4.0", + "hash": "sha256-lwNBM33EW45j6o8bM4hKWirEUZCvep0VYFchc50JOYc=" + }, + { + "pname": "System.Security.Principal.Windows", + "version": "4.7.0", + "hash": "sha256-rWBM2U8Kq3rEdaa1MPZSYOOkbtMGgWyB8iPrpIqmpqg=" + }, + { + "pname": "System.Security.Principal.Windows", + "version": "5.0.0", + "hash": "sha256-CBOQwl9veFkrKK2oU8JFFEiKIh/p+aJO+q9Tc2Q/89Y=" + }, + { + "pname": "System.ServiceModel.Duplex", + "version": "4.8.1", + "hash": "sha256-WDwB7gEfvvbIF18NYPvSdI7GJhYn7vINWndgrh8wpsg=" + }, + { + "pname": "System.ServiceModel.Federation", + "version": "4.8.1", + "hash": "sha256-5PmzrNH8q+kHaVS1T1bcBcH4Kgh9eL350P0qm6frWVo=" + }, + { + "pname": "System.ServiceModel.Http", + "version": "4.8.1", + "hash": "sha256-pgLvBQk2FnJbTETUKZag2LeGSXDBK6WnPYsfDbcPhLk=" + }, + { + "pname": "System.ServiceModel.Http", + "version": "6.0.0", + "hash": "sha256-jy3bGKjvrQF5l3zn8/MiYwBqlkes6kWnNHUUJxPho/s=" + }, + { + "pname": "System.ServiceModel.NetTcp", + "version": "4.8.1", + "hash": "sha256-MQGtgKRV4XuIVPV4iABY+ABIx+C4I+J74p5ohclSj7Y=" + }, + { + "pname": "System.ServiceModel.Primitives", + "version": "4.8.1", + "hash": "sha256-sZEzX9vgwtckMrTPwNg8s+bZErDv5/Yakeg5c6nUWis=" + }, + { + "pname": "System.ServiceModel.Primitives", + "version": "4.9.0", + "hash": "sha256-DguxLLRrYNn99rYxCGIljZTdZqrVC+VxJNahkFUy9NM=" + }, + { + "pname": "System.ServiceModel.Primitives", + "version": "6.0.0", + "hash": "sha256-XKKDaDp32Igr+cSPviNjUVlSjgzuGBQNCiTZUBinawY=" + }, + { + "pname": "System.ServiceModel.Security", + "version": "4.8.1", + "hash": "sha256-4aEWyw9HudwzO0oRuKKrEQrQpnUvNvkRc0aLtCQ8NZI=" + }, + { + "pname": "System.Text.Encoding", + "version": "4.0.11", + "hash": "sha256-PEailOvG05CVgPTyKLtpAgRydlSHmtd5K0Y8GSHY2Lc=" + }, + { + "pname": "System.Text.Encoding", + "version": "4.3.0", + "hash": "sha256-GctHVGLZAa/rqkBNhsBGnsiWdKyv6VDubYpGkuOkBLg=" + }, + { + "pname": "System.Text.Encoding.CodePages", + "version": "4.4.0", + "hash": "sha256-zD24blG8xhAcL9gC4UTGKetd8c3LO0nv22nKTp2Vfx0=" + }, + { + "pname": "System.Text.Encoding.CodePages", + "version": "4.5.1", + "hash": "sha256-PIhkv59IXjyiuefdhKxS9hQfEwO9YWRuNudpo53HQfw=" + }, + { + "pname": "System.Text.Encoding.Extensions", + "version": "4.0.11", + "hash": "sha256-+kf7J3dEhgCbnCM5vHYlsTm5/R/Ud0Jr6elpHm922iI=" + }, + { + "pname": "System.Text.Encoding.Extensions", + "version": "4.3.0", + "hash": "sha256-vufHXg8QAKxHlujPHHcrtGwAqFmsCD6HKjfDAiHyAYc=" + }, + { + "pname": "System.Text.RegularExpressions", + "version": "4.1.0", + "hash": "sha256-x6OQN6MCN7S0fJ6EFTfv4rczdUWjwuWE9QQ0P6fbh9c=" + }, + { + "pname": "System.Text.RegularExpressions", + "version": "4.3.0", + "hash": "sha256-VLCk1D1kcN2wbAe3d0YQM/PqCsPHOuqlBY1yd2Yo+K0=" + }, + { + "pname": "System.Threading", + "version": "4.0.11", + "hash": "sha256-mob1Zv3qLQhQ1/xOLXZmYqpniNUMCfn02n8ZkaAhqac=" + }, + { + "pname": "System.Threading", + "version": "4.3.0", + "hash": "sha256-ZDQ3dR4pzVwmaqBg4hacZaVenQ/3yAF/uV7BXZXjiWc=" + }, + { + "pname": "System.Threading.Tasks", + "version": "4.0.11", + "hash": "sha256-5SLxzFg1df6bTm2t09xeI01wa5qQglqUwwJNlQPJIVs=" + }, + { + "pname": "System.Threading.Tasks", + "version": "4.3.0", + "hash": "sha256-Z5rXfJ1EXp3G32IKZGiZ6koMjRu0n8C1NGrwpdIen4w=" + }, + { + "pname": "System.Threading.Tasks.Extensions", + "version": "4.0.0", + "hash": "sha256-+YdcPkMhZhRbMZHnfsDwpNbUkr31X7pQFGxXYcAPZbE=" + }, + { + "pname": "System.Threading.Tasks.Extensions", + "version": "4.3.0", + "hash": "sha256-X2hQ5j+fxcmnm88Le/kSavjiGOmkcumBGTZKBLvorPc=" + }, + { + "pname": "System.Threading.Tasks.Extensions", + "version": "4.5.4", + "hash": "sha256-owSpY8wHlsUXn5xrfYAiu847L6fAKethlvYx97Ri1ng=" + }, + { + "pname": "System.Threading.Thread", + "version": "4.3.0", + "hash": "sha256-pMs6RNFC3nQOGz9EqIcyWmO8YLaqay+q/Qde5hqPXXg=" + }, + { + "pname": "System.Threading.ThreadPool", + "version": "4.3.0", + "hash": "sha256-wW0QdvssRoaOfQLazTGSnwYTurE4R8FxDx70pYkL+gg=" + }, + { + "pname": "System.ValueTuple", + "version": "4.5.0", + "hash": "sha256-niH6l2fU52vAzuBlwdQMw0OEoRS/7E1w5smBFoqSaAI=" + }, + { + "pname": "System.Windows.Extensions", + "version": "4.7.0", + "hash": "sha256-yW+GvQranReaqPw5ZFv+mSjByQ5y1pRLl05JIEf3tYU=" + }, + { + "pname": "System.Windows.Extensions", + "version": "5.0.0", + "hash": "sha256-fzWnaRBCDuoq3hQsGIi0PvCEJN7yGaaJvlU6pq4052A=" + }, + { + "pname": "System.Xml.ReaderWriter", + "version": "4.0.11", + "hash": "sha256-haZAFFQ9Sl2DhfvEbdx2YRqKEoxNMU5STaqpMmXw0zA=" + }, + { + "pname": "System.Xml.ReaderWriter", + "version": "4.3.0", + "hash": "sha256-QQ8KgU0lu4F5Unh+TbechO//zaAGZ4MfgvW72Cn1hzA=" + }, + { + "pname": "System.Xml.XDocument", + "version": "4.0.11", + "hash": "sha256-KPz1kxe0RUBM+aoktJ/f9p51GudMERU8Pmwm//HdlFg=" + }, + { + "pname": "System.Xml.XmlDocument", + "version": "4.3.0", + "hash": "sha256-kbuV4Y7rVJkfMp2Kgoi8Zvdatm9CZNmlKB3GZgANvy4=" + }, + { + "pname": "System.Xml.XPath", + "version": "4.3.0", + "hash": "sha256-kd1JMqj6obhxzEPRJeYvcUyJqkOs/9A0UOQccC6oYrM=" + }, + { + "pname": "System.Xml.XPath.XmlDocument", + "version": "4.3.0", + "hash": "sha256-NWPne5KQuqUt7WvaRT1KX3kkpWv6EPTHcI6CO/GBNME=" + } +] diff --git a/pkgs/by-name/re/renode/package.nix b/pkgs/by-name/re/renode/package.nix index edf34d337346..85f4a4dd846d 100644 --- a/pkgs/by-name/re/renode/package.nix +++ b/pkgs/by-name/re/renode/package.nix @@ -1,21 +1,36 @@ { - stdenv, - lib, - fetchFromGitHub, - fetchurl, - fetchpatch, - autoPatchelfHook, - makeWrapper, - nix-update-script, - glibcLocales, - python3Packages, - dotnetCorePackages, - gtk-sharp-3_0, - gtk3-x11, + buildDotnetModule, + cmake, dconf, + dotnet-runtime_8, + dotnet-sdk_6, + fetchFromGitHub, + fetchpatch, + gcc, + glibcLocales, + gtk3-x11, + gtk3, + lib, + mono, + nix-update-script, + python3Packages, }: let + resources = fetchFromGitHub { + owner = "renode"; + repo = "renode-resources"; + rev = "d3d69f8f17ed164ee23e46f0c06844a69bf4c004"; + hash = "sha256-wR3heL58NOQLENwCzL4lPM4KuvT/ON7dlc/KUqrlRjg="; + }; + assemblyVersion = + s: + let + part = lib.strings.splitString "-" s; + result = builtins.head part; + in + result; + pythonLibs = with python3Packages; makePythonPath [ @@ -48,58 +63,134 @@ let ]; })) ]; + in -stdenv.mkDerivation (finalAttrs: { +buildDotnetModule rec { pname = "renode"; version = "1.16.0"; - src = fetchurl { - url = "https://github.com/renode/renode/releases/download/v${finalAttrs.version}/renode-${finalAttrs.version}.linux-dotnet.tar.gz"; - hash = "sha256-oNlTz5LBggPkjKM4TJO2UDKQdt2Ga7rBTdgyGjN8/zA="; + src = fetchFromGitHub { + owner = "renode"; + repo = "renode"; + rev = "20ad06d9379997829df309c5724be94ba4effedd"; + hash = "sha256-I/W3OAzHCN8rEIlDyBwI1ZDvKfHYYBDiqE9XkWHxo7o="; + fetchSubmodules = true; }; - nativeBuildInputs = [ - autoPatchelfHook - makeWrapper - ]; + projectFile = "Renode_NET.sln"; - propagatedBuildInputs = [ - gtk-sharp-3_0 - ]; + dotnet-runtime = dotnet-runtime_8; + dotnet-sdk = dotnet-sdk_6; - strictDeps = true; + nugetDeps = ./deps.json; - installPhase = '' - runHook preInstall + patches = [ ./renode-test.patch ]; - mkdir -p $out/{bin,libexec/renode} - - mv * $out/libexec/renode - mv .renode-root $out/libexec/renode - - makeWrapper "$out/libexec/renode/renode" "$out/bin/renode" \ - --prefix PATH : "$out/libexec/renode:${lib.makeBinPath [ dotnetCorePackages.runtime_8_0 ]}" \ - --prefix GIO_EXTRA_MODULES : "${lib.getLib dconf}/lib/gio/modules" \ - --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk3-x11 ]}" \ - --prefix PYTHONPATH : "${pythonLibs}" \ - --set LOCALE_ARCHIVE "${glibcLocales}/lib/locale/locale-archive" - makeWrapper "$out/libexec/renode/renode-test" "$out/bin/renode-test" \ - --prefix PATH : "$out/libexec/renode:${lib.makeBinPath [ dotnetCorePackages.runtime_8_0 ]}" \ - --prefix GIO_EXTRA_MODULES : "${lib.getLib dconf}/lib/gio/modules" \ - --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk3-x11 ]}" \ - --prefix PYTHONPATH : "${pythonLibs}" \ - --set LOCALE_ARCHIVE "${glibcLocales}/lib/locale/locale-archive" - - substituteInPlace "$out/libexec/renode/renode-test" \ - --replace '$PYTHON_RUNNER' '${python3Packages.python}/bin/python3' - - runHook postInstall + prePatch = '' + substituteInPlace tools/building/createAssemblyInfo.sh \ + --replace CURRENT_INFORMATIONAL_VERSION="`git rev-parse --short=8 HEAD`" \ + CURRENT_INFORMATIONAL_VERSION="${builtins.substring 0 8 src.rev}" ''; + postPatch = '' + # https://github.com/dotnet/roslyn/issues/37379#issuecomment-513371985 + cat << EOF > Directory.Build.props + + + + + + EOF + + patchShebangs build.sh tools/ + + # Fixes determinism build error + sed -i 's/AssemblyVersion("%VERSION%.*")/AssemblyVersion("${assemblyVersion version}")/g' src/Renode/Properties/AssemblyInfo.template + sed -i 's/AssemblyVersion("1.0.*")/AssemblyVersion("1.0.0.0")/g' lib/AntShell/AntShell/Properties/AssemblyInfo.cs lib/CxxDemangler/CxxDemangler/Properties/AssemblyInfo.cs + ''; + + # https://github.com/NixOS/nixpkgs/issues/38991 + # bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) + env.LOCALE_ARCHIVE = "${glibcLocales}/lib/locale/locale-archive"; + + nativeBuildInputs = [ + cmake + gcc + ]; + + runtimeDeps = [ + gtk3 + mono + ]; + + dontUseCmakeConfigure = true; + + enableParallelBuilding = false; + + preBuild = '' + mkdir -p lib/resources + ln -s ${resources}/* lib/resources/ + + mkdir output + mv src/Infrastructure/src/Emulator/Cores/linux-properties.csproj output/properties.csproj + sed -i "s#/usr/bin/gcc#${gcc}/bin/gcc#g" output/properties.csproj + sed -i "s#/usr/bin/ar#${gcc}/bin/ar#g" output/properties.csproj + + # To fix value "" error in element + rm -rf src/Directory.Build.targets + + CORES=(arm.le arm.be arm64.le arm-m.le arm-m.be ppc.le ppc.be ppc64.le ppc64.be i386.le x86_64.le riscv.le riscv64.le sparc.le sparc.be xtensa.le) + for core_config in ''${CORES[@]} + do + CORE="$(echo $core_config | cut -d '.' -f 1)" + ENDIAN="$(echo $core_config | cut -d '.' -f 2)" + BITS=32 + + if [[ $CORE =~ "64" ]]; then + BITS=64 + fi + + SOURCE="${src}/src/Infrastructure/src/Emulator/Cores" + CMAKE_CONF_FLAGS="-DTARGET_ARCH=$CORE -DTARGET_WORD_SIZE=$BITS -DCMAKE_BUILD_TYPE=Release -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=$out/lib" + CORE_DIR=build/$CORE/$ENDIAN + mkdir -p $CORE_DIR + pushd $CORE_DIR + + if [[ $ENDIAN == "be" ]]; then + CMAKE_CONF_FLAGS+=" -DTARGET_WORDS_BIGENDIAN=1" + fi + + cmake $CMAKE_CONF_FLAGS -DHOST_ARCH=i386 $SOURCE + cmake --build . -j$NIX_BUILD_CORES + popd + done + + mkdir -p src/Infrastructure/src/Emulator/Cores/bin/Release/lib + ln -s $out/lib/*.so src/Infrastructure/src/Emulator/Cores/bin/Release/lib + ''; + + dotnetInstallFlags = [ "-p:TargetFramework=net6.0" ]; + + postInstall = '' + mkdir -p $out/lib/renode + mv * .renode-root $out/lib/renode + + makeWrapper "$out/lib/renode/renode-test" "$out/bin/renode-test" \ + --prefix PATH : "$out/lib/renode:${lib.makeBinPath [ dotnet-sdk ]}" \ + --prefix GIO_EXTRA_MODULES : "${lib.getLib dconf}/lib/gio/modules" \ + --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk3-x11 ]}" \ + --prefix PYTHONPATH : "${pythonLibs}" \ + --set LOCALE_ARCHIVE "${glibcLocales}/lib/locale/locale-archive" \ + ''; + + executables = [ "Renode" ]; + passthru.updateScript = nix-update-script { }; meta = { + changelog = "https://github.com/renode/renode/blob/${version}/CHANGELOG.rst"; description = "Virtual development framework for complex embedded systems"; + downloadPage = "https://github.com/renode/renode"; homepage = "https://renode.io"; license = lib.licenses.bsd3; maintainers = with lib.maintainers; [ @@ -108,4 +199,4 @@ stdenv.mkDerivation (finalAttrs: { ]; platforms = [ "x86_64-linux" ]; }; -}) +} diff --git a/pkgs/by-name/re/renode/renode-test.patch b/pkgs/by-name/re/renode/renode-test.patch new file mode 100644 index 000000000000..2b902218e903 --- /dev/null +++ b/pkgs/by-name/re/renode/renode-test.patch @@ -0,0 +1,28 @@ +diff --git a/renode-test b/renode-test +index 0f8f8d0..1fdfe23 100755 +--- a/renode-test ++++ b/renode-test +@@ -5,22 +5,17 @@ set -u + # this is to support running renode-test from an external directory and via a symlink + ROOT_PATH="$(cd $(dirname $(readlink -f $0 2>/dev/null || echo $0)); echo $PWD)" + +-TESTS_FILE="$ROOT_PATH/tests/tests.yaml" +-TESTS_RESULTS="$ROOT_PATH/output/tests" + + . "${ROOT_PATH}/tools/common.sh" + + set +e + STTY_CONFIG=`stty -g 2>/dev/null` +-$PYTHON_RUNNER -u "`get_path "$ROOT_PATH/tests/run_tests.py"`" --exclude "skip_${DETECTED_OS}" --exclude "skip_host_${DETECTED_ARCH}" --properties-file "`get_path "$ROOT_PATH/output/properties.csproj"`" -r "`get_path "$TESTS_RESULTS"`" -t "`get_path "$TESTS_FILE"`" "$@" ++$PYTHON_RUNNER -u "`get_path "$ROOT_PATH/tests/run_tests.py"`" --exclude "skip_${DETECTED_OS}" -r $(pwd) --runner=dotnet "$@" + RESULT_CODE=$? + + set -e + if [ -n "${STTY_CONFIG:-}" ] + then +- # SIGTTOU might be sent when trying to change the terminal settings when "renode-test" runs in the background so trap the signal. +- trap "" SIGTTOU + stty "$STTY_CONFIG" +- trap - SIGTTOU + fi + exit $RESULT_CODE