mirror of
https://github.com/quamotion/dotnet-packaging.git
synced 2026-07-08 18:06:08 +00:00
Add support for recommended packages on Debian
This commit is contained in:
@@ -33,6 +33,7 @@ namespace Packaging.Targets.Deb
|
||||
string preRemoveScript,
|
||||
string postRemoveScript,
|
||||
IEnumerable<string> additionalDependencies,
|
||||
IEnumerable<string> recommends,
|
||||
Action<DebPackage> additionalMetadata)
|
||||
{
|
||||
var pkg = new DebPackage
|
||||
@@ -130,11 +131,16 @@ namespace Packaging.Targets.Deb
|
||||
}
|
||||
}
|
||||
|
||||
if (additionalDependencies != null)
|
||||
if (additionalDependencies != null && additionalDependencies.Any())
|
||||
{
|
||||
pkg.ControlFile["Depends"] = string.Join(", ", additionalDependencies);
|
||||
}
|
||||
|
||||
if (recommends != null && recommends.Any())
|
||||
{
|
||||
pkg.ControlFile["Recommends"] = string.Join(", ", recommends);
|
||||
}
|
||||
|
||||
additionalMetadata?.Invoke(pkg);
|
||||
|
||||
return pkg;
|
||||
|
||||
@@ -88,6 +88,12 @@ namespace Packaging.Targets
|
||||
/// </summary>
|
||||
public ITaskItem[] DebDependencies { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a list of Debian packages which this Debian
|
||||
/// package recommends.
|
||||
/// </summary>
|
||||
public ITaskItem[] DebRecommends { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether to create a Linux
|
||||
/// user and group when installing the package.
|
||||
@@ -230,6 +236,14 @@ namespace Packaging.Targets
|
||||
dependencies.AddRange(debDotNetDependencies);
|
||||
}
|
||||
|
||||
// Prepare the list of recommended dependencies
|
||||
List<string> recommends = new List<string>();
|
||||
|
||||
if (this.DebRecommends != null)
|
||||
{
|
||||
recommends.AddRange(this.DebRecommends.Select(d => d.ItemSpec));
|
||||
}
|
||||
|
||||
// XZOutputStream class has low quality (doesn't even know it's current position,
|
||||
// needs to be disposed to finish compression, etc),
|
||||
// So we are doing compression in a separate step
|
||||
@@ -261,6 +275,7 @@ namespace Packaging.Targets
|
||||
this.PreRemoveScript,
|
||||
this.PostRemoveScript,
|
||||
dependencies,
|
||||
recommends,
|
||||
null);
|
||||
|
||||
DebPackageCreator.WriteDebPackage(
|
||||
|
||||
@@ -176,6 +176,7 @@
|
||||
DebDependencies="@(DebDependency)"
|
||||
DebDotNetDependencies="@(DebDotNetDependencies)"
|
||||
DebPackageArchitecture="$(DebPackageArchitecture)"
|
||||
DebRecommends="@(DebRecommends)"
|
||||
RuntimeIdentifier="$(RuntimeIdentifier)"
|
||||
CreateUser="$(CreateUser)"
|
||||
Maintainer="$(PackageMaintainer)"
|
||||
|
||||
Reference in New Issue
Block a user