Skip to content

Commit

Permalink
Build with locally patched version of Cecil for FIPS complicance
Browse files Browse the repository at this point in the history
  • Loading branch information
SteveGilham committed Apr 6, 2024
1 parent 8489283 commit c6716a6
Show file tree
Hide file tree
Showing 20 changed files with 160 additions and 13 deletions.
16 changes: 16 additions & 0 deletions AltCover.Api.Tests/AltCover.Api.Tests.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,22 @@
<PackageReference Include="FSharp.Core">
<ExcludeAssets>contentfiles</ExcludeAssets>
</PackageReference>
<PackageReference Include="Mono.Cecil" Condition="'$(LocalCecil)' != 'true'" />
<Reference Include="Mono.Cecil" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Rocks" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.Rocks.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Mdb" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.Mdb.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Pdb" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.Pdb.dll</HintPath>
</Reference>
<Reference Include="Unquote" Condition="'$(TargetFramework)' == 'net472'">
<HintPath>..\ThirdParty\Unquote.dll</HintPath>
</Reference>
</ItemGroup>

<ItemGroup>
Expand Down
14 changes: 13 additions & 1 deletion AltCover.Engine/AltCover.Engine.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,19 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="Mono.Cecil" />
<PackageReference Include="Mono.Cecil" Condition="'$(LocalCecil)' != 'true'" />
<Reference Include="Mono.Cecil" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Rocks" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.Rocks.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Mdb" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.Mdb.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Pdb" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.Pdb.dll</HintPath>
</Reference>
<PackageReference Include="System.IO.Compression" />
<PackageReference Include="FSharp.Core">
<ExcludeAssets>contentfiles</ExcludeAssets>
Expand Down
13 changes: 13 additions & 0 deletions AltCover.PowerShell/AltCover.PowerShell.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,19 @@
<PackageReference Include="FSharp.Core">
<ExcludeAssets>contentfiles</ExcludeAssets>
</PackageReference>
<PackageReference Include="Mono.Cecil" Condition="'$(LocalCecil)' != 'true'" />
<Reference Include="Mono.Cecil" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Rocks" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.Rocks.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Mdb" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.Mdb.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Pdb" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.Pdb.dll</HintPath>
</Reference>
</ItemGroup>

<ItemGroup>
Expand Down
16 changes: 16 additions & 0 deletions AltCover.Toolkit/AltCover.Toolkit.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,22 @@
<PackageReference Include="FSharp.Core">
<ExcludeAssets>contentfiles</ExcludeAssets>
</PackageReference>
<PackageReference Include="Mono.Cecil" Condition="'$(LocalCecil)' != 'true'" />
<Reference Include="Mono.Cecil" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Rocks" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.Rocks.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Mdb" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.Mdb.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Pdb" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.Pdb.dll</HintPath>
</Reference>
<Reference Include="Unquote" Condition="'$(TargetFramework)' == 'net472'">
<HintPath>..\ThirdParty\Unquote.dll</HintPath>
</Reference>
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,19 @@
<Reference Include="Gendarme.Rules.Maintainability">
<HintPath>$(GendarmeToolDir)Gendarme.Rules.Maintainability.dll</HintPath>
</Reference>
<PackageReference Include="mono.cecil" />
<PackageReference Include="Mono.Cecil" Condition="'$(LocalCecil)' != 'true'" />
<Reference Include="Mono.Cecil" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Rocks" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.Rocks.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Mdb" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.Mdb.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Pdb" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.Pdb.dll</HintPath>
</Reference>
<Reference Include="Unquote" Condition="'$(TargetFramework)' == 'net472'">
<HintPath>..\ThirdParty\Unquote.dll</HintPath>
</Reference>
Expand Down
17 changes: 16 additions & 1 deletion AltCover.Visualizer.Tests/AltCover.Visualizer.Tests.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,25 @@
<PackageReference Include="NUnit" Condition="'$(TargetFramework)' != 'net472'" />
<PackageReference Include="NUnit" VersionOverride="3.14.0" Condition="'$(TargetFramework)' == 'net472'" />
<PackageReference Include="YoloDev.Expecto.TestSdk" Condition="'$(TargetFramework)' != 'net472'" />
<PackageReference Include="Mono.Cecil" />
<PackageReference Include="FSharp.Core">
<ExcludeAssets>contentfiles</ExcludeAssets>
</PackageReference>
<PackageReference Include="Mono.Cecil" Condition="'$(LocalCecil)' != 'true'" />
<Reference Include="Mono.Cecil" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Rocks" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.Rocks.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Mdb" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.Mdb.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Pdb" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.Pdb.dll</HintPath>
</Reference>
<Reference Include="Unquote" Condition="'$(TargetFramework)' == 'net472'">
<HintPath>..\ThirdParty\Unquote.dll</HintPath>
</Reference>
</ItemGroup>

<ItemGroup>
Expand Down
54 changes: 49 additions & 5 deletions Build/targets.fs
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
// Downloads/docker-machine-Windows-x86_64 create --driver virtualbox <name>

//copy ..\cecil\bin\Release\netstandard2.0\Mono.Cecil.dll .\ThirdParty\cecil\ -force
//copy ..\cecil\rocks\bin\Release\netstandard2.0\Mono.Cecil.Rocks.dll .\ThirdParty\cecil\ -force
//copy ..\cecil\symbols\mdb\bin\Release\netstandard2.0\Mono.Cecil.Mdb.dll .\ThirdParty\cecil\ -force
//copy ..\cecil\symbols\pdb\bin\Release\netstandard2.0\Mono.Cecil.Pdb.dll .\ThirdParty\cecil\ -force

namespace AltCover

module Targets =
Expand Down Expand Up @@ -33,6 +39,21 @@ module Targets =
let mutable Copyright = String.Empty
let mutable Version = String.Empty

let localCecil =
let xml =
"./Directory.Build.props"
|> Path.getFullName
|> XDocument.Load

xml.Descendants()
|> Seq.filter (fun (e: XElement) ->
e.Name.LocalName.Equals("LocalCecil", StringComparison.OrdinalIgnoreCase))
|> Seq.map (fun x -> x.Value |> Boolean.TryParse |> snd)
|> Seq.tryLast
|> Option.defaultValue false

printfn "Local Cecil = %A" localCecil

let currentBranch =
"."
|> Path.getFullName
Expand Down Expand Up @@ -579,7 +600,13 @@ module Targets =
let dotnetBuildDebug proj =
DotNet.build
(fun p ->
{ p.WithCommon(dotnetOptions >> dotnetOptionsWithSkipGtkInstall) with
{ p.WithCommon(
dotnetOptions
>> dotnetOptionsWithSkipGtkInstall
>> (fun o ->
{ o with
Verbosity = Some DotNet.Verbosity.Minimal })
) with
Configuration = DotNet.BuildConfiguration.Debug }
|> buildWithCLIArguments)
(Path.GetFullPath proj)
Expand Down Expand Up @@ -1425,10 +1452,13 @@ module Targets =
@@ "gtksharp/"
+ (ddItem "gtksharp")
+ "/lib/netstandard2.0"
nugetCache
@@ "mono.cecil/"
+ (ddItem "mono.cecil")
+ "/lib/netstandard2.0"
if localCecil then
Path.GetFullPath "./ThirdParty/cecil"
else
nugetCache
@@ "mono.cecil/"
+ (ddItem "mono.cecil")
+ "/lib/netstandard2.0"
nugetCache
@@ "mono.options/"
+ (ddItem "mono.options")
Expand Down Expand Up @@ -1477,10 +1507,20 @@ module Targets =
|> Path.getFullName
|> XDocument.Load

let skip =
if localCecil then
"mono.cecil"
else
"$$$$$$$"

let packages =
xml.Descendants(XName.Get("PackageReference"))
|> Seq.filter (_.Attribute(XName.Get("Include")) >> isNull >> not)
|> Seq.map _.Attribute(XName.Get("Include")).Value
|> Seq.filter (
_.Equals(skip, StringComparison.OrdinalIgnoreCase)
>> not
) //CECIL
|> Seq.toList

let dirs =
Expand Down Expand Up @@ -4572,10 +4612,12 @@ module Targets =
"AltCover.Fake"
"AltCover.Cake"
"Recorder"
"Mono"
"DataCollector"
"FSharp" ]
InPlace = false
ReportFormat = "OpenCover"
LocalSource = true
Save = true
VisibleBranches = true }
)
Expand Down Expand Up @@ -8080,6 +8122,8 @@ module Targets =
"AltCover.Tests/OpenCoverWithPartials.xml"
"AltCover.Tests/Sample4FullTracking.xml"
"_Reports/AltCoverAsyncAwaitTests.xml"
"_Reports/Pester.xml"
"_Reports/RawPester.xml"
"RegressionTesting/issue37/coverage.xml"
"Samples/Sample16/Test/_Issue72/combined.Test.xml"
"Samples/Sample16/Test/_Issue72/original.Test.xml"
Expand Down
5 changes: 3 additions & 2 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@
<DisableImplicitSystemValueTupleReference>true</DisableImplicitSystemValueTupleReference>
<!-- .nuget\packages\dotnet.reproduciblebuilds.isolated\x.x.x\Sdk\Sdk.targets -->
<EnsureNETFrameworkReferenceAssembliesProvided>false</EnsureNETFrameworkReferenceAssembliesProvided>
<LocalCecil>true</LocalCecil>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DotNet.ReproducibleBuilds" PrivateAssets="All" />
<PackageReference Include="Nerdbank.GitVersioning"
Condition="('$(TargetFramework)' != 'net20') AND ('$(Configuration)'!='Debug')" >
<PackageReference Include="Nerdbank.GitVersioning"
Condition="('$(TargetFramework)' != 'net20') AND ('$(Configuration)'!='Debug')">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
Expand Down
2 changes: 1 addition & 1 deletion Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.9.0" />
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
<PackageVersion Include="Microsoft.TestPlatform.ObjectModel" Version="16.0.0" />
<PackageVersion Include="Mono.Cecil" Version="0.11.5" />
<PackageVersion Include="Mono.Cecil" Version="0.11.5" Condition="'$(LocalCecil)' != 'true'" />
<PackageVersion Include="Mono.CSharp" Version="4.0.0.143" />
<PackageVersion Include="Mono.Options" Version="6.12.0.148" />
<PackageVersion Include="MSTest.TestFramework" Version="3.2.1" />
Expand Down
14 changes: 13 additions & 1 deletion MCS/MCS.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,19 @@
</Target>

<ItemGroup>
<PackageReference Include="Mono.Cecil" />
<PackageReference Include="Mono.Cecil" Condition="'$(LocalCecil)' != 'true'" />
<Reference Include="Mono.Cecil" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Rocks" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.Rocks.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Mdb" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.Mdb.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Pdb" Condition="'$(LocalCecil)' == 'true'">
<HintPath>..\ThirdParty\cecil\Mono.Cecil.Pdb.dll</HintPath>
</Reference>
<PackageReference Include="Mono.CSharp" />
<PackageReference Include="FSharp.Core" />
</ItemGroup>
Expand Down
8 changes: 7 additions & 1 deletion ThirdParty/Mono.Options.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,8 @@
ildasm /all /out=Mono.Options.il Mono.Options.dll
ilasm /dll /output=..\ThirdParty\Mono.Options.dll /key=..\ThirdParty\ThirdParty.snk /resource=Mono.Options.res Mono.Options.il
ilasm /dll /output=..\ThirdParty\Mono.Options.dll /key=..\ThirdParty\ThirdParty.snk /resource=Mono.Options.res Mono.Options.il


ildasm /all /out=Mono.Cecil.il .\cecil\Mono.Cecil.dll

var sha1 = new SHA1CryptoServiceProvider ();
ilasm /dll /output=Mono.Cecil.dll /key=.\cecil.snk /resource=.\Mono.Cecil.res .\Mono.Cecil.il
Binary file added ThirdParty/cecil.snk
Binary file not shown.
Binary file added ThirdParty/cecil/Mono.Cecil.Mdb.dll
Binary file not shown.
Binary file added ThirdParty/cecil/Mono.Cecil.Mdb.pdb
Binary file not shown.
Binary file added ThirdParty/cecil/Mono.Cecil.Pdb.dll
Binary file not shown.
Binary file added ThirdParty/cecil/Mono.Cecil.Pdb.pdb
Binary file not shown.
Binary file added ThirdParty/cecil/Mono.Cecil.Rocks.dll
Binary file not shown.
Binary file added ThirdParty/cecil/Mono.Cecil.Rocks.pdb
Binary file not shown.
Binary file added ThirdParty/cecil/Mono.Cecil.dll
Binary file not shown.
Binary file added ThirdParty/cecil/Mono.Cecil.pdb
Binary file not shown.

0 comments on commit c6716a6

Please sign in to comment.