Remove DotNetZip dependency.

This commit is contained in:
2026-04-14 11:05:58 +01:00
parent 52a7582e54
commit 1ac7128fb0
7 changed files with 116 additions and 98 deletions

View File

@@ -79,7 +79,6 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Aaru.Compression.Native"/>
<PackageReference Include="DotNetZip"/>
<PackageReference Include="Newtonsoft.Json"/>
<PackageReference Include="Sentry"/>
<PackageReference Include="SharpCompress"/>

View File

@@ -28,7 +28,8 @@
using System.IO;
using System.Runtime.InteropServices;
using Ionic.BZip2;
using SharpCompress.Compressors;
using SharpCompress.Compressors.BZip2;
namespace Aaru.Compression;
@@ -62,7 +63,7 @@ public partial class BZip2
}
using var cmpMs = new MemoryStream(source);
using var decStream = new BZip2InputStream(cmpMs, false);
using var decStream = BZip2Stream.Create(cmpMs, CompressionMode.Decompress, false);
return decStream.Read(destination, 0, destination.Length);
}
@@ -84,7 +85,7 @@ public partial class BZip2
}
using var cmpMs = new MemoryStream(source);
using var encStream = new BZip2OutputStream(new MemoryStream(destination), blockSize100K);
using var encStream = BZip2Stream.Create(new MemoryStream(destination), CompressionMode.Compress, false);
encStream.Write(source, 0, source.Length);
return source.Length;

View File

@@ -45,7 +45,6 @@
<ProjectReference Include="..\Aaru.Helpers\Aaru.Helpers.csproj"/>
</ItemGroup>
<ItemGroup>
<PackageReference Include="DotNetZip"/>
<PackageReference Include="Microsoft.Extensions.DependencyInjection"/>
<PackageReference Include="SharpCompress"/>
</ItemGroup>

View File

@@ -36,7 +36,8 @@ using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Interfaces;
using Aaru.Helpers;
using Aaru.Helpers.IO;
using Ionic.BZip2;
using SharpCompress.Compressors;
using SharpCompress.Compressors.BZip2;
namespace Aaru.Filters;
@@ -142,11 +143,14 @@ public class BZip2 : IFilter
/// <inheritdoc />
public ErrorNumber Open(byte[] buffer)
{
_dataStream = new MemoryStream(buffer);
BasePath = null;
CreationTime = DateTime.UtcNow;
LastWriteTime = CreationTime;
_innerStream = new ForcedSeekStream<BZip2InputStream>(_dataStream, false);
_dataStream = new MemoryStream(buffer);
BasePath = null;
CreationTime = DateTime.UtcNow;
LastWriteTime = CreationTime;
_innerStream =
new ForcedSeekStream<BZip2Stream>(BZip2Stream.Create(_dataStream, CompressionMode.Decompress, false));
DataForkLength = _innerStream.Length;
return ErrorNumber.NoError;
@@ -155,11 +159,14 @@ public class BZip2 : IFilter
/// <inheritdoc />
public ErrorNumber Open(Stream stream)
{
_dataStream = stream;
BasePath = null;
CreationTime = DateTime.UtcNow;
LastWriteTime = CreationTime;
_innerStream = new ForcedSeekStream<BZip2InputStream>(_dataStream, false);
_dataStream = stream;
BasePath = null;
CreationTime = DateTime.UtcNow;
LastWriteTime = CreationTime;
_innerStream =
new ForcedSeekStream<BZip2Stream>(BZip2Stream.Create(_dataStream, CompressionMode.Decompress, false));
DataForkLength = _innerStream.Length;
return ErrorNumber.NoError;
@@ -172,9 +179,12 @@ public class BZip2 : IFilter
BasePath = System.IO.Path.GetFullPath(path);
var fi = new FileInfo(path);
CreationTime = fi.CreationTimeUtc;
LastWriteTime = fi.LastWriteTimeUtc;
_innerStream = new ForcedSeekStream<BZip2InputStream>(_dataStream, false);
CreationTime = fi.CreationTimeUtc;
LastWriteTime = fi.LastWriteTimeUtc;
_innerStream =
new ForcedSeekStream<BZip2Stream>(BZip2Stream.Create(_dataStream, CompressionMode.Decompress, false));
DataForkLength = _innerStream.Length;
return ErrorNumber.NoError;

View File

@@ -48,6 +48,17 @@ public sealed class ForcedSeekStream<T> : Stream where T : Stream
readonly T _baseStream;
long _streamLength;
/// <summary>Initializes a new instance of the <see cref="T:Aaru.Helpers.IO.ForcedSeekStream`1" /> class.</summary>
/// <param name="stream">A pre-created stream instance.</param>
/// <inheritdoc />
public ForcedSeekStream(T stream)
{
_baseStream = stream;
_backFile = Path.GetTempFileName();
_backStream = new FileStream(_backFile, FileMode.Open, FileAccess.ReadWrite, FileShare.None);
CalculateLength();
}
/// <summary>Initializes a new instance of the <see cref="T:Aaru.Helpers.IO.ForcedSeekStream`1" /> class.</summary>
/// <param name="length">The real (uncompressed) length of the stream.</param>
/// <param name="args">Parameters that are used to create the base stream.</param>

View File

@@ -34,7 +34,6 @@
<ItemGroup>
<PackageReference Include="Claunia.Encoding"/>
<PackageReference Include="Claunia.RsrcFork"/>
<PackageReference Include="DotNetZip"/>
<PackageReference Include="Humanizer"/>
<PackageReference Include="libaaruformat"/>
<PackageReference Include="plist-cil"/>

View File

@@ -1,82 +1,81 @@
<Project>
<ItemGroup>
<PackageVersion Include="Aaru.Checksums.Native" Version="6.0.0-alpha.11" />
<PackageVersion Include="Aaru.Compression.Native" Version="6.0.0-alpha.14" />
<PackageVersion Include="AsyncFixer" Version="2.1.0" />
<PackageVersion Include="Avalonia.Controls.DataGrid" Version="12.0.0" />
<PackageVersion Include="Avalonia.Desktop" Version="12.0.0" />
<PackageVersion Include="Avalonia.Themes.Fluent" Version="12.0.0" />
<PackageVersion Include="Avalonia" Version="12.0.0" />
<PackageVersion Include="Claunia.Encoding" Version="1.9.2" />
<PackageVersion Include="Claunia.RsrcFork" Version="1.2.0" />
<PackageVersion Include="Consolonia" Version="11.3.7-beta.1773" />
<PackageVersion Include="CommunityToolkit.Mvvm" Version="8.4.2" />
<PackageVersion Include="DotNetZip" Version="1.16.0" />
<PackageVersion Include="ErrorProne.NET.CoreAnalyzers" Version="0.1.2" />
<PackageVersion Include="ErrorProne.NET.Structs" Version="0.1.2" />
<PackageVersion Include="FluentAssertions.Analyzers" Version="0.34.1" />
<PackageVersion Include="FluentAssertions" Version="8.9.0" />
<PackageVersion Include="FluentIcons.Avalonia" Version="2.1.323" />
<PackageVersion Include="Humanizer.Core" Version="3.0.10" />
<PackageVersion Include="Humanizer" Version="3.0.10" />
<PackageVersion Include="JetBrains.Annotations" Version="2025.2.4" />
<PackageVersion Include="libaaruformat" Version="1.0.0-alpha.41" />
<PackageVersion Include="Macross.Json.Extensions" Version="3.0.0" />
<PackageVersion Include="MessageBox.Avalonia" Version="3.3.1.1" />
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.4" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="5.3.0" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.5" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Proxies" Version="10.0.5" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="10.0.5" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.5" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.5" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.4.0" />
<PackageVersion Include="Microsoft.VisualStudio.Threading.Analyzers" Version="17.14.15" />
<PackageVersion Include="Microsoft.Win32.Registry" Version="6.0.0-preview.5.21301.5" />
<PackageVersion Include="Newtonsoft.Json" Version="13.0.4" />
<PackageVersion Include="NUnit.Analyzers" Version="4.12.0" />
<PackageVersion Include="nunit" Version="4.5.1" />
<PackageVersion Include="NUnit3TestAdapter" Version="6.2.0" />
<PackageVersion Include="Philips.CodeAnalysis.MaintainabilityAnalyzers" Version="1.12.0" />
<PackageVersion Include="plist-cil" Version="2.3.1" />
<PackageVersion Include="Prism.Avalonia" Version="9.0.537.11130" />
<PackageVersion Include="Prism.DryIoc.Avalonia" Version="9.0.537.11130" />
<PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" />
<PackageVersion Include="Roslynator.CodeAnalysis.Analyzers" Version="4.15.0" />
<PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" />
<PackageVersion Include="Sentry" Version="6.3.1" />
<PackageVersion Include="Sentry.Serilog" Version="6.3.1" />
<PackageVersion Include="Serilog" Version="4.3.1" />
<PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" />
<PackageVersion Include="Serilog.Sinks.Spectre" Version="0.5.0" />
<PackageVersion Include="SharpCompress" Version="0.47.4" />
<PackageVersion Include="SkiaSharp" Version="3.119.3-preview.1.1" />
<PackageVersion Include="SkiaSharp.NativeAssets.Linux" Version="3.119.3-preview.1.1" Condition="$([MSBuild]::IsOSPlatform('Linux'))" />
<PackageVersion Include="SmartAnalyzers.MultithreadingAnalyzer" Version="1.1.31" />
<PackageVersion Include="Spectre.Console.Analyzer" Version="1.0.0" />
<PackageVersion Include="Spectre.Console" Version="0.55.0" />
<PackageVersion Include="Spectre.Console.Cli" Version="0.55.0" />
<PackageVersion Include="Spectre.Console.Json" Version="0.55.0" />
<PackageVersion Include="Svg.Controls.Avalonia" Version="12.0.0.2" />
<PackageVersion Include="System.Collections" Version="4.3.0" />
<PackageVersion Include="System.ComponentModel.Annotations" Version="6.0.0-preview.4.21253.7" />
<PackageVersion Include="System.Diagnostics.Debug" Version="4.3.0" />
<PackageVersion Include="System.Drawing.Common" Version="10.0.5" />
<PackageVersion Include="System.IO.FileSystem.Primitives" Version="4.3.0" />
<PackageVersion Include="System.IO.FileSystem" Version="4.3.0" />
<PackageVersion Include="System.Management" Version="10.0.5" />
<PackageVersion Include="System.Memory" Version="4.6.3" />
<PackageVersion Include="System.Net.Primitives" Version="4.3.1" />
<PackageVersion Include="System.Resources.Extensions" Version="10.0.5" />
<PackageVersion Include="System.Runtime.Extensions" Version="4.3.1" />
<PackageVersion Include="System.Runtime.Handles" Version="4.3.0" />
<PackageVersion Include="System.Runtime.InteropServices" Version="4.3.0" />
<PackageVersion Include="System.Security.Principal.Windows" Version="6.0.0-preview.5.21301.5" />
<PackageVersion Include="System.Text.Encoding.CodePages" Version="10.0.0" />
<PackageVersion Include="System.Text.Json" Version="10.0.0" />
<PackageVersion Include="System.ValueTuple" Version="4.6.2" />
<PackageVersion Include="Text.Analyzers" Version="4.14.0" />
<PackageVersion Include="Unclassified.NetRevisionTask" Version="0.4.4" />
<PackageVersion Include="Packaging.Targets" Version="0.1.232" />
<PackageVersion Include="Aaru.Checksums.Native" Version="6.0.0-alpha.11"/>
<PackageVersion Include="Aaru.Compression.Native" Version="6.0.0-alpha.14"/>
<PackageVersion Include="AsyncFixer" Version="2.1.0"/>
<PackageVersion Include="Avalonia.Controls.DataGrid" Version="12.0.0"/>
<PackageVersion Include="Avalonia.Desktop" Version="12.0.0"/>
<PackageVersion Include="Avalonia.Themes.Fluent" Version="12.0.0"/>
<PackageVersion Include="Avalonia" Version="12.0.0"/>
<PackageVersion Include="Claunia.Encoding" Version="1.9.2"/>
<PackageVersion Include="Claunia.RsrcFork" Version="1.2.0"/>
<PackageVersion Include="Consolonia" Version="11.3.7-beta.1773"/>
<PackageVersion Include="CommunityToolkit.Mvvm" Version="8.4.2"/>
<PackageVersion Include="ErrorProne.NET.CoreAnalyzers" Version="0.1.2"/>
<PackageVersion Include="ErrorProne.NET.Structs" Version="0.1.2"/>
<PackageVersion Include="FluentAssertions.Analyzers" Version="0.34.1"/>
<PackageVersion Include="FluentAssertions" Version="8.9.0"/>
<PackageVersion Include="FluentIcons.Avalonia" Version="2.1.323"/>
<PackageVersion Include="Humanizer.Core" Version="3.0.10"/>
<PackageVersion Include="Humanizer" Version="3.0.10"/>
<PackageVersion Include="JetBrains.Annotations" Version="2025.2.4"/>
<PackageVersion Include="libaaruformat" Version="1.0.0-alpha.41"/>
<PackageVersion Include="Macross.Json.Extensions" Version="3.0.0"/>
<PackageVersion Include="MessageBox.Avalonia" Version="3.3.1.1"/>
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.4"/>
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="5.3.0"/>
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.5"/>
<PackageVersion Include="Microsoft.EntityFrameworkCore.Proxies" Version="10.0.5"/>
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="10.0.5"/>
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.5"/>
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.5"/>
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.4.0"/>
<PackageVersion Include="Microsoft.VisualStudio.Threading.Analyzers" Version="17.14.15"/>
<PackageVersion Include="Microsoft.Win32.Registry" Version="6.0.0-preview.5.21301.5"/>
<PackageVersion Include="Newtonsoft.Json" Version="13.0.4"/>
<PackageVersion Include="NUnit.Analyzers" Version="4.12.0"/>
<PackageVersion Include="nunit" Version="4.5.1"/>
<PackageVersion Include="NUnit3TestAdapter" Version="6.2.0"/>
<PackageVersion Include="Philips.CodeAnalysis.MaintainabilityAnalyzers" Version="1.12.0"/>
<PackageVersion Include="plist-cil" Version="2.3.1"/>
<PackageVersion Include="Prism.Avalonia" Version="9.0.537.11130"/>
<PackageVersion Include="Prism.DryIoc.Avalonia" Version="9.0.537.11130"/>
<PackageVersion Include="Roslynator.Analyzers" Version="4.15.0"/>
<PackageVersion Include="Roslynator.CodeAnalysis.Analyzers" Version="4.15.0"/>
<PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0"/>
<PackageVersion Include="Sentry" Version="6.3.1"/>
<PackageVersion Include="Sentry.Serilog" Version="6.3.1"/>
<PackageVersion Include="Serilog" Version="4.3.1"/>
<PackageVersion Include="Serilog.Sinks.File" Version="7.0.0"/>
<PackageVersion Include="Serilog.Sinks.Spectre" Version="0.5.0"/>
<PackageVersion Include="SharpCompress" Version="0.47.4"/>
<PackageVersion Include="SkiaSharp" Version="3.119.3-preview.1.1"/>
<PackageVersion Include="SkiaSharp.NativeAssets.Linux" Version="3.119.3-preview.1.1" Condition="$([MSBuild]::IsOSPlatform('Linux'))"/>
<PackageVersion Include="SmartAnalyzers.MultithreadingAnalyzer" Version="1.1.31"/>
<PackageVersion Include="Spectre.Console.Analyzer" Version="1.0.0"/>
<PackageVersion Include="Spectre.Console" Version="0.55.0"/>
<PackageVersion Include="Spectre.Console.Cli" Version="0.55.0"/>
<PackageVersion Include="Spectre.Console.Json" Version="0.55.0"/>
<PackageVersion Include="Svg.Controls.Avalonia" Version="12.0.0.2"/>
<PackageVersion Include="System.Collections" Version="4.3.0"/>
<PackageVersion Include="System.ComponentModel.Annotations" Version="6.0.0-preview.4.21253.7"/>
<PackageVersion Include="System.Diagnostics.Debug" Version="4.3.0"/>
<PackageVersion Include="System.Drawing.Common" Version="10.0.5"/>
<PackageVersion Include="System.IO.FileSystem.Primitives" Version="4.3.0"/>
<PackageVersion Include="System.IO.FileSystem" Version="4.3.0"/>
<PackageVersion Include="System.Management" Version="10.0.5"/>
<PackageVersion Include="System.Memory" Version="4.6.3"/>
<PackageVersion Include="System.Net.Primitives" Version="4.3.1"/>
<PackageVersion Include="System.Resources.Extensions" Version="10.0.5"/>
<PackageVersion Include="System.Runtime.Extensions" Version="4.3.1"/>
<PackageVersion Include="System.Runtime.Handles" Version="4.3.0"/>
<PackageVersion Include="System.Runtime.InteropServices" Version="4.3.0"/>
<PackageVersion Include="System.Security.Principal.Windows" Version="6.0.0-preview.5.21301.5"/>
<PackageVersion Include="System.Text.Encoding.CodePages" Version="10.0.0"/>
<PackageVersion Include="System.Text.Json" Version="10.0.0"/>
<PackageVersion Include="System.ValueTuple" Version="4.6.2"/>
<PackageVersion Include="Text.Analyzers" Version="4.14.0"/>
<PackageVersion Include="Unclassified.NetRevisionTask" Version="0.4.4"/>
<PackageVersion Include="Packaging.Targets" Version="0.1.232"/>
</ItemGroup>
</Project>