avalonia: init at 11.0.10

This commit is contained in:
David McFarland 2024-09-07 09:23:31 -03:00
parent 0e5b1ff245
commit 3aad599551
7 changed files with 4368 additions and 0 deletions

View File

@ -0,0 +1,137 @@
From f4c599a48d153d15ccb1879ff511617c8e310515 Mon Sep 17 00:00:00 2001
From: David McFarland <corngood@gmail.com>
Date: Sat, 10 Aug 2024 23:14:12 -0300
Subject: [PATCH 1/2] use files for unicode character database
---
.../BiDiClassTestDataGenerator.cs | 1 -
.../TextFormatting/BiDiTestDataGenerator.cs | 1 -
.../GraphemeBreakClassTrieGenerator.cs | 1 -
.../GraphemeBreakTestDataGenerator.cs | 1 -
.../LineBreakEnumuratorTests.cs | 1 -
.../TextFormatting/UnicodeDataGenerator.cs | 28 +++++++++++++++++--
.../TextFormatting/UnicodeEnumsGenerator.cs | 1 -
7 files changed, 26 insertions(+), 8 deletions(-)
diff --git a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiClassTestDataGenerator.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiClassTestDataGenerator.cs
index f6b01d737..bc7278ef8 100644
--- a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiClassTestDataGenerator.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiClassTestDataGenerator.cs
@@ -3,7 +3,6 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using System.Net.Http;
using Avalonia.Base.UnitTests.Media.TextFormatting;
namespace Avalonia.Visuals.UnitTests.Media.TextFormatting
diff --git a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiTestDataGenerator.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiTestDataGenerator.cs
index 28d37130a..5e26edf49 100644
--- a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiTestDataGenerator.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiTestDataGenerator.cs
@@ -3,7 +3,6 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using System.Net.Http;
using Avalonia.Base.UnitTests.Media.TextFormatting;
using Avalonia.Media.TextFormatting.Unicode;
diff --git a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGenerator.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGenerator.cs
index 1a8d41caa..185b6ea62 100644
--- a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGenerator.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGenerator.cs
@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.IO;
-using System.Net.Http;
using System.Text.RegularExpressions;
using Avalonia.Media.TextFormatting.Unicode;
diff --git a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakTestDataGenerator.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakTestDataGenerator.cs
index 029f8e236..44c2aaf6a 100644
--- a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakTestDataGenerator.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakTestDataGenerator.cs
@@ -3,7 +3,6 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using System.Net.Http;
using Avalonia.Base.UnitTests.Media.TextFormatting;
namespace Avalonia.Visuals.UnitTests.Media.TextFormatting
diff --git a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/LineBreakEnumuratorTests.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/LineBreakEnumuratorTests.cs
index 3db9a32b6..b8df1f446 100644
--- a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/LineBreakEnumuratorTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/LineBreakEnumuratorTests.cs
@@ -3,7 +3,6 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using System.Net.Http;
using Avalonia.Media.TextFormatting;
using Avalonia.Media.TextFormatting.Unicode;
using Xunit;
diff --git a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeDataGenerator.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeDataGenerator.cs
index f05a1e574..7e698ae0a 100644
--- a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeDataGenerator.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeDataGenerator.cs
@@ -1,16 +1,40 @@
using System;
using System.Collections.Generic;
using System.IO;
-using System.Net.Http;
using System.Text.RegularExpressions;
+using System.Threading.Tasks;
using Avalonia.Media.TextFormatting.Unicode;
using Xunit;
namespace Avalonia.Base.UnitTests.Media.TextFormatting
{
+ class HttpContent : IDisposable {
+ readonly string url;
+ public HttpContent(string url) => this.url = url;
+
+ public void Dispose() {}
+ public Task<Stream> ReadAsStreamAsync() =>
+ Task.FromResult<Stream>(File.OpenRead(url));
+ }
+
+ class HttpResponseMessage : IDisposable {
+ HttpContent content;
+ public HttpResponseMessage(string url) => Content = new(url);
+
+ public void Dispose() {}
+ public bool IsSuccessStatusCode => true;
+ public HttpContent Content { get; init; }
+ }
+
+ class HttpClient : IDisposable {
+ public void Dispose() {}
+ public Task<HttpResponseMessage> GetAsync(string url) =>
+ Task.FromResult<HttpResponseMessage>(new (url));
+ }
+
internal static class UnicodeDataGenerator
{
- public const string Ucd = "https://www.unicode.org/Public/15.0.0/ucd/";
+ public static readonly string Ucd = Environment.GetEnvironmentVariable("UNICODE_CHARACTER_DATABASE");
public static UnicodeTrie GenerateBiDiTrie(out BiDiDataEntries biDiDataEntries, out Dictionary<int, BiDiDataItem> biDiData)
{
diff --git a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeEnumsGenerator.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeEnumsGenerator.cs
index 110e57cbd..7073ea508 100644
--- a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeEnumsGenerator.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeEnumsGenerator.cs
@@ -2,7 +2,6 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using System.Net.Http;
namespace Avalonia.Base.UnitTests.Media.TextFormatting
{
--
2.42.2

View File

@ -0,0 +1,38 @@
From 9ba51df4258d0dc2fe72d4f621d29073eeadc011 Mon Sep 17 00:00:00 2001
From: David McFarland <corngood@gmail.com>
Date: Sun, 11 Aug 2024 00:03:36 -0300
Subject: [PATCH 2/2] disable parallel compile
---
nukebuild/Build.cs | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/nukebuild/Build.cs b/nukebuild/Build.cs
index e3d5139bf..ce50db574 100644
--- a/nukebuild/Build.cs
+++ b/nukebuild/Build.cs
@@ -136,12 +136,20 @@ DotNetConfigHelper ApplySettingCore(DotNetConfigHelper c)
ProcessTasks.StartProcess("xcodebuild", args).AssertZeroExitCode();
});
+ [Serializable]
+ public class SerialBuildSettings : DotNetBuildSettings
+ {
+ protected override Arguments ConfigureProcessArguments(Arguments arguments) =>
+ base.ConfigureProcessArguments(arguments)
+ .Add("-m:1");
+ }
+
Target Compile => _ => _
.DependsOn(Clean, CompileNative)
.DependsOn(CompileHtmlPreviewer)
.Executes(() =>
{
- DotNetBuild(c => ApplySetting(c)
+ DotNetBuild(ApplySetting(new SerialBuildSettings())
.SetProjectFile(Parameters.MSBuildSolution)
);
});
--
2.42.2

2957
pkgs/by-name/av/avalonia/deps.nix generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
[
{
path = "src/Avalonia.DesignerSupport/Remote/HtmlTransport/webapp";
hash = "sha256-gncHW5SMtAUMtvHGZ2nUc0KEjxX24DZkAnmeHgo1Roc=";
}
{
path = "tests/Avalonia.DesignerSupport.Tests/Remote/HtmlTransport/webapp";
hash = "sha256-MiznlOJ+hIO1cUswy9oGNHP6MWfx+FDLKVT8qcmg8vo=";
}
{
path = "src/Browser/Avalonia.Browser/webapp";
hash = "sha256-LTQzT4ycLyGQs9T0sa2k/0wfG1GWCdeH9Wx2KeecOyU=";
}
]

View File

@ -0,0 +1,996 @@
[
{
"id": "Avalonia",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": ".NETFramework,Version=v4.6.1",
"packages": [
{
"id": "Avalonia.Remote.Protocol",
"version": "11.0.11"
},
{
"id": "Microsoft.Bcl.AsyncInterfaces",
"version": "6.0.0"
},
{
"id": "System.ComponentModel.Annotations",
"version": "4.5.0"
},
{
"id": "System.Memory",
"version": "4.5.3"
},
{
"id": "System.Runtime.CompilerServices.Unsafe",
"version": "4.6.0"
},
{
"id": "System.Threading.Tasks.Extensions",
"version": "4.5.4"
},
{
"id": "System.ValueTuple",
"version": "4.5.0"
},
{
"id": "MicroCom.Runtime",
"version": "0.11.0"
}
]
},
{
"framework": ".NETCoreApp,Version=v2.0",
"packages": [
{
"id": "Avalonia.Remote.Protocol",
"version": "11.0.11"
},
{
"id": "Microsoft.Bcl.AsyncInterfaces",
"version": "6.0.0"
},
{
"id": "System.ComponentModel.Annotations",
"version": "4.5.0"
},
{
"id": "System.Memory",
"version": "4.5.3"
},
{
"id": "System.Runtime.CompilerServices.Unsafe",
"version": "4.6.0"
},
{
"id": "System.Threading.Tasks.Extensions",
"version": "4.5.4"
},
{
"id": "System.ValueTuple",
"version": "4.5.0"
},
{
"id": "MicroCom.Runtime",
"version": "0.11.0"
}
]
},
{
"framework": "net6.0",
"packages": [
{
"id": "Avalonia.Remote.Protocol",
"version": "11.0.11"
},
{
"id": "System.ComponentModel.Annotations",
"version": "4.5.0"
},
{
"id": "MicroCom.Runtime",
"version": "0.11.0"
}
]
},
{
"framework": ".NETStandard,Version=v2.0",
"packages": [
{
"id": "Avalonia.Remote.Protocol",
"version": "11.0.11"
},
{
"id": "Microsoft.Bcl.AsyncInterfaces",
"version": "6.0.0"
},
{
"id": "System.ComponentModel.Annotations",
"version": "4.5.0"
},
{
"id": "System.Memory",
"version": "4.5.3"
},
{
"id": "System.Runtime.CompilerServices.Unsafe",
"version": "4.6.0"
},
{
"id": "System.Threading.Tasks.Extensions",
"version": "4.5.4"
},
{
"id": "System.ValueTuple",
"version": "4.5.0"
},
{
"id": "MicroCom.Runtime",
"version": "0.11.0"
}
]
}
]
},
{
"id": "Avalonia.Browser",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net7.0",
"packages": [
{
"id": "HarfBuzzSharp",
"version": "7.3.0"
},
{
"id": "SkiaSharp",
"version": "2.88.7"
},
{
"id": "Avalonia",
"version": "11.0.11"
},
{
"id": "Avalonia.Skia",
"version": "11.0.11"
}
]
}
]
},
{
"id": "Avalonia.Browser.Blazor",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net7.0",
"packages": [
{
"id": "Microsoft.AspNetCore.Components.Web",
"version": "7.0.2"
},
{
"id": "Avalonia.Browser",
"version": "11.0.11"
}
]
}
]
},
{
"id": "Avalonia.Controls.ColorPicker",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net6.0",
"packages": [
{
"id": "Avalonia.Remote.Protocol",
"version": "11.0.11"
},
{
"id": "Avalonia",
"version": "11.0.11"
}
]
},
{
"framework": ".NETStandard,Version=v2.0",
"packages": [
{
"id": "Avalonia.Remote.Protocol",
"version": "11.0.11"
},
{
"id": "Avalonia",
"version": "11.0.11"
}
]
}
]
},
{
"id": "Avalonia.Controls.DataGrid",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net6.0",
"packages": [
{
"id": "Avalonia.Remote.Protocol",
"version": "11.0.11"
},
{
"id": "Avalonia",
"version": "11.0.11"
}
]
},
{
"framework": ".NETStandard,Version=v2.0",
"packages": [
{
"id": "Avalonia.Remote.Protocol",
"version": "11.0.11"
},
{
"id": "Avalonia",
"version": "11.0.11"
}
]
}
]
},
{
"id": "Avalonia.Controls.ItemsRepeater",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net6.0",
"packages": [
{
"id": "Avalonia",
"version": "11.0.11"
}
]
},
{
"framework": ".NETStandard,Version=v2.0",
"packages": [
{
"id": "Avalonia",
"version": "11.0.11"
}
]
}
]
},
{
"id": "Avalonia.Desktop",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net6.0",
"packages": [
{
"id": "Avalonia",
"version": "11.0.11"
},
{
"id": "Avalonia.Native",
"version": "11.0.11"
},
{
"id": "Avalonia.X11",
"version": "11.0.11"
},
{
"id": "Avalonia.Skia",
"version": "11.0.11"
},
{
"id": "Avalonia.Win32",
"version": "11.0.11"
}
]
},
{
"framework": ".NETStandard,Version=v2.0",
"packages": [
{
"id": "Avalonia",
"version": "11.0.11"
},
{
"id": "Avalonia.Native",
"version": "11.0.11"
},
{
"id": "Avalonia.X11",
"version": "11.0.11"
},
{
"id": "Avalonia.Skia",
"version": "11.0.11"
},
{
"id": "Avalonia.Win32",
"version": "11.0.11"
}
]
}
]
},
{
"id": "Avalonia.Diagnostics",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net6.0",
"packages": [
{
"id": "Microsoft.CodeAnalysis.CSharp.Scripting",
"version": "3.8.0"
},
{
"id": "Microsoft.CodeAnalysis.Common",
"version": "3.8.0"
},
{
"id": "Avalonia.Controls.ColorPicker",
"version": "11.0.11"
},
{
"id": "Avalonia.Controls.DataGrid",
"version": "11.0.11"
},
{
"id": "Avalonia.Themes.Simple",
"version": "11.0.11"
},
{
"id": "Avalonia",
"version": "11.0.11"
}
]
},
{
"framework": ".NETStandard,Version=v2.0",
"packages": [
{
"id": "Microsoft.CodeAnalysis.CSharp.Scripting",
"version": "3.8.0"
},
{
"id": "Microsoft.CodeAnalysis.Common",
"version": "3.8.0"
},
{
"id": "Avalonia.Controls.ColorPicker",
"version": "11.0.11"
},
{
"id": "Avalonia.Controls.DataGrid",
"version": "11.0.11"
},
{
"id": "Avalonia.Themes.Simple",
"version": "11.0.11"
},
{
"id": "Avalonia",
"version": "11.0.11"
}
]
}
]
},
{
"id": "Avalonia.Direct2D1",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net6.0",
"packages": [
{
"id": "HarfBuzzSharp",
"version": "7.3.0"
},
{
"id": "SharpDX",
"version": "4.0.1"
},
{
"id": "SharpDX.DXGI",
"version": "4.0.1"
},
{
"id": "SharpDX.Direct2D1",
"version": "4.0.1"
},
{
"id": "SharpDX.Direct3D11",
"version": "4.0.1"
},
{
"id": "Avalonia",
"version": "11.0.11"
},
{
"id": "Avalonia.Win32",
"version": "11.0.11"
}
]
},
{
"framework": ".NETStandard,Version=v2.0",
"packages": [
{
"id": "HarfBuzzSharp",
"version": "7.3.0"
},
{
"id": "SharpDX",
"version": "4.0.1"
},
{
"id": "SharpDX.DXGI",
"version": "4.0.1"
},
{
"id": "SharpDX.Direct2D1",
"version": "4.0.1"
},
{
"id": "SharpDX.Direct3D11",
"version": "4.0.1"
},
{
"id": "Avalonia",
"version": "11.0.11"
},
{
"id": "Avalonia.Win32",
"version": "11.0.11"
}
]
}
]
},
{
"id": "Avalonia.Fonts.Inter",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net6.0",
"packages": [
{
"id": "Avalonia",
"version": "11.0.11"
}
]
},
{
"framework": ".NETStandard,Version=v2.0",
"packages": [
{
"id": "Avalonia",
"version": "11.0.11"
}
]
}
]
},
{
"id": "Avalonia.FreeDesktop",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net6.0",
"packages": [
{
"id": "Tmds.DBus.Protocol",
"version": "0.15.0"
},
{
"id": "Avalonia",
"version": "11.0.11"
}
]
},
{
"framework": ".NETStandard,Version=v2.0",
"packages": [
{
"id": "Tmds.DBus.Protocol",
"version": "0.15.0"
},
{
"id": "Avalonia",
"version": "11.0.11"
}
]
}
]
},
{
"id": "Avalonia.Headless",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net6.0",
"packages": [
{
"id": "Avalonia",
"version": "11.0.11"
}
]
},
{
"framework": ".NETStandard,Version=v2.0",
"packages": [
{
"id": "Avalonia",
"version": "11.0.11"
}
]
}
]
},
{
"id": "Avalonia.Headless.NUnit",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net6.0",
"packages": [
{
"id": "NUnit",
"version": "3.13.0"
},
{
"id": "Avalonia.Headless",
"version": "11.0.11"
}
]
},
{
"framework": ".NETStandard,Version=v2.0",
"packages": [
{
"id": "NUnit",
"version": "3.13.0"
},
{
"id": "Avalonia.Headless",
"version": "11.0.11"
}
]
}
]
},
{
"id": "Avalonia.Headless.Vnc",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net6.0",
"packages": [
{
"id": "Quamotion.RemoteViewing",
"version": "1.1.21"
},
{
"id": "Avalonia.Headless",
"version": "11.0.11"
}
]
},
{
"framework": ".NETStandard,Version=v2.0",
"packages": [
{
"id": "Quamotion.RemoteViewing",
"version": "1.1.21"
},
{
"id": "Avalonia.Headless",
"version": "11.0.11"
}
]
}
]
},
{
"id": "Avalonia.Headless.XUnit",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net6.0",
"packages": [
{
"id": "xunit.core",
"version": "2.4.0"
},
{
"id": "Avalonia.Headless",
"version": "11.0.11"
}
]
},
{
"framework": ".NETStandard,Version=v2.0",
"packages": [
{
"id": "xunit.core",
"version": "2.4.0"
},
{
"id": "Avalonia.Headless",
"version": "11.0.11"
}
]
}
]
},
{
"id": "Avalonia.LinuxFramebuffer",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net6.0",
"packages": [
{
"id": "Avalonia",
"version": "11.0.11"
},
{
"id": "Avalonia.Skia",
"version": "11.0.11"
}
]
},
{
"framework": ".NETStandard,Version=v2.0",
"packages": [
{
"id": "Avalonia",
"version": "11.0.11"
},
{
"id": "Avalonia.Skia",
"version": "11.0.11"
}
]
}
]
},
{
"id": "Avalonia.Markup.Xaml.Loader",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net6.0",
"packages": [
{
"id": "System.Reflection.Emit",
"version": "4.3.0"
},
{
"id": "Avalonia",
"version": "11.0.11"
}
]
},
{
"framework": ".NETStandard,Version=v2.0",
"packages": [
{
"id": "System.Reflection.Emit",
"version": "4.3.0"
},
{
"id": "Avalonia",
"version": "11.0.11"
}
]
}
]
},
{
"id": "Avalonia.Native",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net6.0",
"packages": [
{
"id": "Avalonia",
"version": "11.0.11"
}
]
},
{
"framework": ".NETStandard,Version=v2.0",
"packages": [
{
"id": "Avalonia",
"version": "11.0.11"
}
]
}
]
},
{
"id": "Avalonia.ReactiveUI",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net6.0",
"packages": [
{
"id": "ReactiveUI",
"version": "18.3.1"
},
{
"id": "System.Reactive",
"version": "5.0.0"
},
{
"id": "Avalonia",
"version": "11.0.11"
}
]
},
{
"framework": ".NETStandard,Version=v2.0",
"packages": [
{
"id": "ReactiveUI",
"version": "18.3.1"
},
{
"id": "System.Reactive",
"version": "5.0.0"
},
{
"id": "Avalonia",
"version": "11.0.11"
}
]
}
]
},
{
"id": "Avalonia.Remote.Protocol",
"version": "11.0.11",
"hash": null,
"dependencies": []
},
{
"id": "Avalonia.Skia",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net6.0",
"packages": [
{
"id": "HarfBuzzSharp",
"version": "7.3.0"
},
{
"id": "HarfBuzzSharp.NativeAssets.Linux",
"version": "7.3.0"
},
{
"id": "HarfBuzzSharp.NativeAssets.WebAssembly",
"version": "7.3.0"
},
{
"id": "SkiaSharp",
"version": "2.88.7"
},
{
"id": "SkiaSharp.NativeAssets.Linux",
"version": "2.88.7"
},
{
"id": "SkiaSharp.NativeAssets.WebAssembly",
"version": "2.88.7"
},
{
"id": "Avalonia",
"version": "11.0.11"
}
]
},
{
"framework": ".NETStandard,Version=v2.0",
"packages": [
{
"id": "HarfBuzzSharp",
"version": "7.3.0"
},
{
"id": "HarfBuzzSharp.NativeAssets.Linux",
"version": "7.3.0"
},
{
"id": "HarfBuzzSharp.NativeAssets.WebAssembly",
"version": "7.3.0"
},
{
"id": "SkiaSharp",
"version": "2.88.7"
},
{
"id": "SkiaSharp.NativeAssets.Linux",
"version": "2.88.7"
},
{
"id": "SkiaSharp.NativeAssets.WebAssembly",
"version": "2.88.7"
},
{
"id": "Avalonia",
"version": "11.0.11"
}
]
}
]
},
{
"id": "Avalonia.Themes.Fluent",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net6.0",
"packages": [
{
"id": "Avalonia",
"version": "11.0.11"
}
]
},
{
"framework": ".NETStandard,Version=v2.0",
"packages": [
{
"id": "Avalonia",
"version": "11.0.11"
}
]
}
]
},
{
"id": "Avalonia.Themes.Simple",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net6.0",
"packages": [
{
"id": "Avalonia",
"version": "11.0.11"
}
]
},
{
"framework": ".NETStandard,Version=v2.0",
"packages": [
{
"id": "Avalonia",
"version": "11.0.11"
}
]
}
]
},
{
"id": "Avalonia.Win32",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net6.0",
"packages": [
{
"id": "Avalonia.Angle.Windows.Natives",
"version": "2.1.0.2023020321"
},
{
"id": "System.Numerics.Vectors",
"version": "4.5.0"
},
{
"id": "Avalonia",
"version": "11.0.11"
}
]
},
{
"framework": ".NETStandard,Version=v2.0",
"packages": [
{
"id": "Avalonia.Angle.Windows.Natives",
"version": "2.1.0.2023020321"
},
{
"id": "System.Numerics.Vectors",
"version": "4.5.0"
},
{
"id": "Avalonia",
"version": "11.0.11"
}
]
}
]
},
{
"id": "Avalonia.X11",
"version": "11.0.11",
"hash": null,
"dependencies": [
{
"framework": "net6.0",
"packages": [
{
"id": "Avalonia",
"version": "11.0.11"
},
{
"id": "Avalonia.FreeDesktop",
"version": "11.0.11"
},
{
"id": "Avalonia.Skia",
"version": "11.0.11"
}
]
},
{
"framework": ".NETStandard,Version=v2.0",
"packages": [
{
"id": "Avalonia",
"version": "11.0.11"
},
{
"id": "Avalonia.FreeDesktop",
"version": "11.0.11"
},
{
"id": "Avalonia.Skia",
"version": "11.0.11"
}
]
}
]
}
]

View File

@ -0,0 +1,199 @@
{
dotnetCorePackages,
fetchFromGitHub,
fetchNpmDeps,
fetchzip,
fontconfig,
lib,
libICE,
libSM,
libX11,
libXcursor,
libXext,
libXi,
libXrandr,
liberation_ttf,
makeFontsConf,
nodejs,
npmHooks,
runCommand,
stdenvNoCC,
}:
let
inherit (dotnetCorePackages) systemToDotnetRid;
dotnet-sdk =
with dotnetCorePackages;
combinePackages [
sdk_6_0
sdk_7_0_1xx
];
npmDepsFile = ./npm-deps.nix;
in
stdenvNoCC.mkDerivation (
finalAttrs:
dotnetCorePackages.addNuGetDeps
{
nugetDeps = ./deps.nix;
overrideFetchAttrs = old: {
runtimeIds = map (system: dotnetCorePackages.systemToDotnetRid system) old.meta.platforms;
};
}
rec {
pname = "Avalonia";
version = "11.0.10";
src = fetchFromGitHub {
owner = "AvaloniaUI";
repo = "Avalonia";
rev = version;
fetchSubmodules = true;
hash = "sha256-OVV15Be/wzgglXgCG0IraDV4MfMtOgWUnEg206/Wsxc=";
};
patches = [
# Fix failing tests that use unicode.org
./0001-use-files-for-unicode-character-database.patch
# [ERR] Compile: [...]/Microsoft.NET.Sdk.targets(148,5): error MSB4018: The "GenerateDepsFile" task failed unexpectedly. [/build/source/src/tools/DevAnalyzers/DevAnalyzers.csproj]
# [ERR] Compile: [...]/Microsoft.NET.Sdk.targets(148,5): error MSB4018: System.IO.IOException: The process cannot access the file '/build/source/src/tools/DevAnalyzers/bin/Release/netstandard2.0/DevAnalyzers.deps.json' because it is being used by another process. [/build/source/src/tools/DevAnalyzers/DevAnalyzers.csproj]
./0002-disable-parallel-compile.patch
];
# this needs to be match the version being patched above
UNICODE_CHARACTER_DATABASE = fetchzip {
url = "https://www.unicode.org/Public/15.0.0/ucd/UCD.zip";
hash = "sha256-jj6bX46VcnH7vpc9GwM9gArG+hSPbOGL6E4SaVd0s60=";
stripRoot = false;
};
postPatch =
''
patchShebangs build.sh
substituteInPlace src/Avalonia.X11/ICELib.cs \
--replace-fail '"libICE.so.6"' '"${lib.getLib libICE}/lib/libICE.so.6"'
substituteInPlace src/Avalonia.X11/SMLib.cs \
--replace-fail '"libSM.so.6"' '"${lib.getLib libSM}/lib/libSM.so.6"'
substituteInPlace src/Avalonia.X11/XLib.cs \
--replace-fail '"libX11.so.6"' '"${lib.getLib libX11}/lib/libX11.so.6"' \
--replace-fail '"libXrandr.so.2"' '"${lib.getLib libXrandr}/lib/libXrandr.so.2"' \
--replace-fail '"libXext.so.6"' '"${lib.getLib libXext}/lib/libXext.so.6"' \
--replace-fail '"libXi.so.6"' '"${lib.getLib libXi}/lib/libXi.so.6"' \
--replace-fail '"libXcursor.so.1"' '"${lib.getLib libXcursor}/lib/libXcursor.so.1"'
# from RestoreAdditionalProjectSources, which isn't supported by nuget-to-nix
dotnet nuget add source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet8-transport/nuget/v3/index.json
# Tricky way to run npmConfigHook multiple times (borrowed from pagefind)
(
local postPatchHooks=() # written to by npmConfigHook
source ${npmHooks.npmConfigHook}/nix-support/setup-hook
''
+
# TODO: implement updateScript
lib.concatMapStrings (
{ path, hash }:
let
deps = fetchNpmDeps {
src = "${src}/${path}";
inherit hash;
};
in
''
npmRoot=${path} npmDeps="${deps}" npmConfigHook
rm -rf "$TMPDIR/cache"
''
) (import npmDepsFile)
+ ''
)
# Avalonia.Native is normally only packed on darwin.
substituteInPlace src/Avalonia.Native/Avalonia.Native.csproj \
--replace-fail \
'<IsPackable>$(PackAvaloniaNative)</IsPackable>' \
'<IsPackable>true</IsPackable>'
'';
makeCacheWritable = true;
# CSC : error CS1566: Error reading resource 'pdbstr.exe' -- 'Could not find a part of the path '/build/.nuget-temp/packages/sourcelink/1.1.0/tools/pdbstr.exe'.' [/build/source/nukebuild/_build.csproj]
linkNugetPackages = true;
# [WRN] Could not inject value for Build.ApiCompatTool
# System.Exception: Missing package reference/download.
# Run one of the following commands:
# ---> System.ArgumentException: Could not find package 'Microsoft.DotNet.ApiCompat.Tool' using:
# - Project assets file '/build/source/nukebuild/obj/project.assets.json'
# - NuGet packages config '/build/source/nukebuild/_build.csproj'
makeEmptyNupkgInPackages = true;
FONTCONFIG_FILE =
let
fc = makeFontsConf { fontDirectories = [ liberation_ttf ]; };
in
runCommand "fonts.conf" { } ''
substitute ${fc} $out \
--replace-fail "/etc/" "${fontconfig.out}/etc/"
'';
preConfigure = ''
# closed source (telemetry?) https://github.com/AvaloniaUI/Avalonia/discussions/16878
dotnet remove packages/Avalonia/Avalonia.csproj package Avalonia.BuildServices
'';
runtimeIds = [ (systemToDotnetRid stdenvNoCC.hostPlatform.system) ];
configurePhase = ''
runHook preConfigure
for project in nukebuild/_build.csproj dirs.proj; do
for rid in $runtimeIds; do
dotnet restore --runtime "$rid" "$project"
done
done
runHook postConfigure
'';
nativeBuildInputs = [
nodejs
dotnet-sdk
];
buildInputs = [ dotnet-sdk.packages ];
buildTarget = "Package";
buildPhase = ''
runHook preBuild
# ValidateApiDiff requires a network connection
./build.sh --target $buildTarget --verbosity Verbose --skip ValidateApiDiff
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p "$out/share/nuget/source"
cp artifacts/nuget/* "$out/share/nuget/source"
runHook postInstall
'';
passthru = {
updateScript = ./update.bash;
inherit npmDepsFile;
};
meta = {
homepage = "https://avaloniaui.net/";
license = [ lib.licenses.mit ];
maintainers = with lib.maintainers; [ corngood ];
description = "A cross-platform UI framework for dotnet";
sourceProvenance = with lib.sourceTypes; [
fromSource
binaryNativeCode # npm dependencies contain binaries
];
platforms = dotnet-sdk.meta.platforms;
broken = stdenvNoCC.hostPlatform.isDarwin;
};
}
finalAttrs
)

View File

@ -0,0 +1,27 @@
#!/usr/bin/env nix-shell
#!nix-shell -I nixpkgs=./. -i bash -p nix-update -p prefetch-npm-deps
#shellcheck shell=bash
set -euo pipefail
package="$UPDATE_NIX_ATTR_PATH"
nix-update "$package"
src=$(nix-build -A "$package".src --no-out-link)
npmDepsFile=$(nix-instantiate --eval -A "$package".npmDepsFile)
(
echo '['
for path in \
src/Avalonia.DesignerSupport/Remote/HtmlTransport/webapp \
tests/Avalonia.DesignerSupport.Tests/Remote/HtmlTransport/webapp \
src/Browser/Avalonia.Browser/webapp
do
echo ' {'
echo " path = \"$path\";"
echo prefetch-npm-deps "$src/$path/package-lock.json" >&2
hash=$(prefetch-npm-deps "$src/$path/package-lock.json")
echo " hash = \"$hash\";"
echo ' }'
done
echo ']'
) > "$npmDepsFile"
"$(nix-build -A "$package".fetch-deps --no-out-link)"