Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
5d1dbc5
Use net8.0 for CLI
AliveDevil Jan 27, 2025
eab566d
Preparing for CLI Wix v5 installer
AliveDevil Jan 28, 2025
8522040
Migrate to Directory.Packages.props
AliveDevil Mar 10, 2025
dc26373
Prepare for publishing NuGet packages into Maven
AliveDevil Mar 10, 2025
c12d607
Progress towards less house-keeping in projects
AliveDevil Mar 10, 2025
537dcce
Package NuGet
AliveDevil Mar 10, 2025
640f3c9
Packaging
AliveDevil May 15, 2025
e275ef5
Sign artifacts during build
AliveDevil May 20, 2025
1215ac3
Skip PDBs
AliveDevil May 20, 2025
ed7f93f
Update dependency.
dkocher Jun 2, 2025
1f8d597
Simplify Cyberduck Windows
AliveDevil May 27, 2025
ea66734
Add native dependencies.
dkocher Jun 2, 2025
11e24cb
Use installer Profile in cli-windows
AliveDevil May 28, 2025
113c125
Removed native libraries in archive.
dkocher Jun 2, 2025
ba400a4
Review outputs
AliveDevil May 28, 2025
8cdb4f1
Set library.jansi.path for loading native library.
dkocher Jun 2, 2025
f91d2e3
Bundle x64/arm64 MSI package
AliveDevil May 28, 2025
a09949a
Move dependencies to arch profiles.
dkocher Jun 10, 2025
64e65d6
Disable building of CLI installers in Visual Studio (requires dirs.proj)
AliveDevil Jun 16, 2025
4d6a56a
Set native libraries search path for Linux CLI.
dkocher Jun 11, 2025
485aa2c
Restore IKVM from NuGet
AliveDevil Jun 16, 2025
805c524
Copy arm64/x64 to specific lib dir
AliveDevil Jun 16, 2025
4034191
Remove build warning
AliveDevil Jun 16, 2025
d7a1877
Replace with universal binary.
dkocher Jun 16, 2025
1d4b9f2
Add missing skip sign conditions
AliveDevil Jun 17, 2025
9019d16
Merge pull request #17145 from iterate-ch/feature/GH-17143
dkocher Jun 17, 2025
809279b
Skip signing of i18n-gen
AliveDevil Jun 17, 2025
099d056
Reference platform native lib path
AliveDevil Jun 24, 2025
2cacc8e
Merge remote-tracking branch 'origin/master' into feature/10-ikvmnet-cli
AliveDevil Jun 26, 2025
2283566
Forward Platform to Test target
AliveDevil Jun 24, 2025
c867428
Merge remote-tracking branch 'origin/master' into feature/10-ikvmnet-cli
AliveDevil Jan 27, 2026
36e8ee8
Sign packages and payload
AliveDevil Feb 2, 2026
569ac94
Merge remote-tracking branch 'origin/master' into feature/10-ikvmnet-cli
AliveDevil Feb 2, 2026
2032327
Disable IKVM MSBuild targets in WAPProj
AliveDevil Feb 2, 2026
7c124ec
Add Utils-project for cleaning up stale credentials
AliveDevil Feb 13, 2026
b263908
Review credential target name matching
AliveDevil Feb 13, 2026
47b9140
Merge remote-tracking branch 'origin/master' into feature/10-ikvmnet-cli
AliveDevil Feb 17, 2026
d04441c
Remove duplicate import
AliveDevil Feb 17, 2026
f00809f
Remove SkipDuplicates from NuGet dependencies
AliveDevil Feb 17, 2026
b255f11
Skip excessive writes copying packages around (resolve from Maven rep…
AliveDevil Feb 17, 2026
e9f9b45
Fix Installer/Packaging
AliveDevil Feb 18, 2026
0087e59
Fix NuGet packaging
AliveDevil Feb 18, 2026
c36a12a
Update InstallerTheme to Wix v4 schema
AliveDevil Feb 19, 2026
157e86e
Merge remote-tracking branch 'origin/master' into feature/10-ikvmnet-cli
AliveDevil Mar 11, 2026
24e59c2
Merge remote-tracking branch 'origin/master' into feature/10-ikvmnet-cli
AliveDevil Mar 16, 2026
4a0f658
Speed up consecutive IKVM runs
AliveDevil Mar 16, 2026
75e76c4
Temporarily change version.
dkocher Mar 20, 2026
5e5649f
Merge remote-tracking branch 'origin/master' into feature/10-ikvmnet-cli
AliveDevil Mar 27, 2026
f0ed26e
Fix icons in installers
AliveDevil Mar 30, 2026
78ebbb3
Revert "Temporarily change version."
dkocher Apr 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ insert_final_newline = true
charset = utf-8-bom

# XML project files
[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj,wixproj,msbuildproj}]
[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj,wixproj,ikvmproj}]
indent_size = 2

# XML config files
Expand Down
170 changes: 83 additions & 87 deletions Cyberduck.sln

Large diffs are not rendered by default.

39 changes: 2 additions & 37 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -16,46 +16,11 @@

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<PropertyGroup Label="AssemblyInfo">
<Company>iterate GmbH</Company>
<Description>Libre FTP, SFTP, WebDAV, S3 and OpenStack Swift browser for Mac and Windows.</Description>
</PropertyGroup>

<PropertyGroup>
<CyberduckDir>$(MSBuildThisFileDirectory)</CyberduckDir>
<BuildSupportDir>$(CyberduckDir)src\main\msbuild\</BuildSupportDir>
<TargetBuildDir>$(ModulePath)target\</TargetBuildDir>
<LibDir>$(TargetBuildDir)lib\</LibDir>
<GeneratedMSBuildDir>$(TargetBuildDir)generated\msbuild\</GeneratedMSBuildDir>

<ArtifactsPath>$(TargetBuildDir)</ArtifactsPath>
<UseArtifactsOutput>false</UseArtifactsOutput>

<BaseIntermediateOutputPath>$(ArtifactsPath)obj\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
<BaseOutputPath>$(ArtifactsPath)</BaseOutputPath>
<IntermediateOutputPath>$(BaseIntermediateOutputPath)$(Configuration)\</IntermediateOutputPath>
<OutputPath>$(BaseOutputPath)</OutputPath>

<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<LangVersion>12</LangVersion>

<BuildProjectReferences Condition=" '$(BuildProjectReferences)'=='' And '$(BuildingInsideVisualStudio)'!='True' ">false</BuildProjectReferences>
</PropertyGroup>

<ItemDefinitionGroup>
<CyberduckReference>
<ProjectPath />
</CyberduckReference>
</ItemDefinitionGroup>

<Import Project="$(GeneratedMSBuildDir)Version.props" Condition="Exists('$(GeneratedMSBuildDir)Version.props')" />

<PropertyGroup>
<SignToolExecutablePath>$(PATH)</SignToolExecutablePath>
</PropertyGroup>

<ItemGroup>
<AdditionalFiles Include="$(MSBuildThisFileDirectory)src\main\msbuild\BannedSymbols.*.txt" Link="%(Filename)%(Extension)" />
</ItemGroup>
<Import Project="$(BuildSupportDir)Cyberduck.Default.props" />

</Project>
</Project>
120 changes: 1 addition & 119 deletions Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -16,124 +16,6 @@

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<Sdk Name="Microsoft.Build.CentralPackageVersions" Version="2.0.41" />

<PropertyGroup>
<AssemblySearchPaths>$(LibDir);$(AssemblySearchPaths)</AssemblySearchPaths>
</PropertyGroup>

<PropertyGroup Condition=" '$(TargetFramework)' != '' ">
<LibDirFramework Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net472'))">net472</LibDirFramework>
<LibDirFramework Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">net8.0</LibDirFramework>
<AssemblySearchPaths Condition=" '$(LibDirFramework)' != '' ">$(LibDir)$(LibDirFramework)\;$(AssemblySearchPaths)</AssemblySearchPaths>
</PropertyGroup>

<PropertyGroup Condition=" '$(TargetFramework)' != 'net472' ">
<DefaultItemExcludes>$(DefaultItemExcludes);**/*net472*</DefaultItemExcludes>
</PropertyGroup>
<PropertyGroup Condition=" !$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0')) ">
<DefaultItemExcludes>$(DefaultItemExcludes);**/*net8.0*</DefaultItemExcludes>
</PropertyGroup>

<ItemGroup>
<CyberduckReference Update="Bonjour">
<ProjectPath>$(CyberduckDir)bonjour\dll\Cyberduck.Bonjour.msbuildproj</ProjectPath>
</CyberduckReference>
<CyberduckReference Update="Bonjour.Native">
<ProjectPath>$(CyberduckDir)bonjour\src\main\csharp\Cyberduck.Bonjour.Native.csproj</ProjectPath>
</CyberduckReference>
<CyberduckReference Update="Cli">
<ProjectPath>$(CyberduckDir)cli\dll\Cyberduck.Cli.msbuildproj</ProjectPath>
</CyberduckReference>
<CyberduckReference Update="Core">
<ProjectPath>$(CyberduckDir)core\dll\Cyberduck.Core.msbuildproj</ProjectPath>
</CyberduckReference>
<CyberduckReference Update="Core.Native">
<ProjectPath>$(CyberduckDir)core\src\main\csharp\Cyberduck.Core.Native.csproj</ProjectPath>
</CyberduckReference>
<CyberduckReference Update="Core.Refresh">
<ProjectPath>$(CyberduckDir)core\native\refresh\src\main\csharp\Cyberduck.Core.Refresh.csproj</ProjectPath>
</CyberduckReference>
<CyberduckReference Update="Cryptomator">
<ProjectPath>$(CyberduckDir)cryptomator\dll\Cyberduck.Cryptomator.msbuildproj</ProjectPath>
</CyberduckReference>
<CyberduckReference Update="Importer">
<ProjectPath>$(CyberduckDir)importer\dll\Cyberduck.Importer.msbuildproj</ProjectPath>
</CyberduckReference>
<CyberduckReference Update="Protocols">
<ProjectPath>$(CyberduckDir)protocols\dll\Cyberduck.Protocols.msbuildproj</ProjectPath>
</CyberduckReference>

<CyberduckProjectReference Include="@(CyberduckReference->HasMetadata('ProjectPath'))" Condition=" '$(BuildingInsideVisualStudio)'=='true' Or '$(BuildProjectReferences)'!='false' " />
<CyberduckAssemblyReference Include="@(CyberduckReference)" Exclude="@(CyberduckProjectReference)" />
<ProjectReference Include="@(CyberduckProjectReference->'%(ProjectPath)')">
<Name>Cyberduck.%(Identity)</Name>
</ProjectReference>
<Reference Include="@(CyberduckAssemblyReference->'Cyberduck.%(Identity)')">
<JavaClasspath>\\?\</JavaClasspath>
</Reference>
</ItemGroup>

<PropertyGroup>
<!-- Fix .NET 8 Sdk RuntimeIdentifiers to align with .NET 9 Sdk -->
<RuntimeIdentifier Condition=" '$(RuntimeIdentifier)'=='win7-x86'">win-x86</RuntimeIdentifier>
<RuntimeIdentifier Condition=" '$(RuntimeIdentifier)'=='win7-x64'">win-x64</RuntimeIdentifier>
</PropertyGroup>

<PropertyGroup Condition=" '$(NETCoreSdkVersion)'!='' ">
<!-- Treat SDK 6.0.301 as last known to work. -->
<NETSDKBeforeFeature>$([MSBuild]::VersionLessThanOrEquals('$(NETCoreSdkVersion)', '6.0.301'))</NETSDKBeforeFeature>
<NETSDKAfterFix>$([MSBuild]::VersionGreaterThanOrEquals('$(NETCoreSdkVersion)', '6.0.401'))</NETSDKAfterFix>
<CoreCompileDependsOn Condition="!($(NETSDKBeforeFeature) or $(NETSDKAfterFix))">SDKFix_RemoveDuplicateAnalyzers;$(CoreCompileDependsOn)</CoreCompileDependsOn>
</PropertyGroup>

<Target Name="SDKFix_RemoveDuplicateAnalyzers">
<ItemGroup>
<FilteredAnalyzer Include="@(Analyzer-&gt;Distinct())" />
<Analyzer Remove="@(Analyzer)" />
<Analyzer Include="@(FilteredAnalyzer)" />
<FilteredAnalyzer Remove="@(FilteredAnalyzer)" />
</ItemGroup>
</Target>

<PropertyGroup>
<_SignToolArgs Condition="'$(SignTool)'=='cng'">_SignToolArgsCNG</_SignToolArgs>
<_SignToolArgs Condition="'$(_SignToolArgs)'==''">_SignToolArgsCertificateStore</_SignToolArgs>

<SignToolArgsDependsOn>$(_SignToolArgs);SignToolExecutablePath</SignToolArgsDependsOn>
</PropertyGroup>

<Target Name="SignToolExecutablePath" Returns="$(SignToolExecutablePath);$(SignToolExecutable)">
<PropertyGroup>
<SignToolExecutable Condition="'$(SignToolExecutable)'==''">SignTool.exe</SignToolExecutable>
<SignToolExecutablePath>$(WindowsSdk_ExecutablePath);$(SignToolExecutablePath)</SignToolExecutablePath>
</PropertyGroup>
</Target>

<Target Name="SignToolArgsBase" Returns="$(SignToolArgsBase)">
<PropertyGroup>
<SignToolArgsBase>sign /d "Cyberduck" /fd sha256 /tr "http://timestamp.acs.microsoft.com" /td "sha256" /a</SignToolArgsBase>
</PropertyGroup>
</Target>

<Target Name="SignToolArgs" DependsOnTargets="$(SignToolArgsDependsOn)">
<Error Text="'$(SignTool)' unsupported." Condition="'$(_SignToolArgs)'==''" />
<PropertyGroup>
<SignToolArgs>"$(SignToolExecutable)" $(SignToolArgsBase)</SignToolArgs>
</PropertyGroup>
<ItemGroup>
<SignToolEnvironmentVariable Include="PATH=$([MSBuild]::Escape('$(SignToolExecutablePath)'))" />
</ItemGroup>
</Target>
<Target Name="_SignToolArgsCertificateStore" DependsOnTargets="SignToolArgsBase" Returns="$(SignToolArgsBase)">
<PropertyGroup>
<SignToolArgsBase>$(SignToolArgsBase) /sm /n "iterate GmbH"</SignToolArgsBase>
</PropertyGroup>
</Target>
<Target Name="_SignToolArgsCNG" DependsOnTargets="SignToolArgsBase" Returns="$(SignToolArgsBase)">
<PropertyGroup>
<SignToolArgsBase>$(SignToolArgsBase) /f "$(CyberduckDir)setup\cert\certificate.crt" /csp "$(SignToolCSP)" /kc "$(SignToolKC)"</SignToolArgsBase>
</PropertyGroup>
</Target>
<Import Project="$(BuildSupportDir)Cyberduck.Default.targets" />

</Project>
60 changes: 60 additions & 0 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (c) 2002-2019 iterate GmbH. All rights reserved.
~ https://cyberduck.io/
~
~ This program is free software; you can redistribute it and/or modify
~ it under the terms of the GNU General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU General Public License for more details.
-->

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>

<ItemGroup>
<PackageVersion Include="CommunityToolkit.Mvvm" Version="8.2.2" />
<PackageVersion Include="DotNetProjects.Extended.Wpf.Toolkit" Version="5.0.100" />
<PackageVersion Include="ExceptionReporter " Version="2.4.2" />
<PackageVersion Include="IKVM" Version="8.13.3" />
<PackageVersion Include="iterate-ch.IKVM.MSBuild.SkipDuplicates" Version="1.1.0" />
<PackageVersion Include="Microsoft.Build.Utilities.Core" Version="17.1.0" />
<PackageVersion Include="Microsoft.CSharp" Version="4.7.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
<PackageVersion Include="Microsoft.Toolkit.Uwp.Notifications" Version="7.1.2" />
<PackageVersion Include="Microsoft.Windows.CsWin32" Version="0.3.106" />
<PackageVersion Include="Microsoft.Windows.SDK.Contracts" Version="10.0.22000.196" />
<PackageVersion Include="NUnit" Version="4.2.0" />
<PackageVersion Include="NUnit.Console" Version="3.17.0" />
<PackageVersion Include="NUnit3TestAdapter" Version="4.5.0" />
<PackageVersion Include="ObjectListView.Official" Version="2.9.1" />
<PackageVersion Include="ReactiveMarbles.ObservableEvents.SourceGenerator" Version="1.2.3" />
<PackageVersion Include="ReactiveUI" Version="17.1.50" />
<PackageVersion Include="ReactiveUI.WPF" Version="17.1.50" />
<PackageVersion Include="StructureMap" Version="2.6.4.1" />
<PackageVersion Include="System.CommandLine" Version="2.0.3" />
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="8.0.0" />
<PackageVersion Include="System.Memory" Version="4.5.5" />
<PackageVersion Include="System.Runtime.Caching" Version="8.0.0" />
<PackageVersion Include="System.Security.Cryptography.ProtectedData" Version="8.0.0" />
<PackageVersion Include="WixToolset.Bal.wixext" Version="5.0.2" />
<PackageVersion Include="WixToolset.Heat" Version="5.0.2" />
<PackageVersion Include="WixToolset.NetFx.wixext" Version="5.0.2" />
<PackageVersion Include="WixToolset.Util.wixext" Version="5.0.2" />
</ItemGroup>

<ItemGroup>
<GlobalPackageReference Include="Microsoft.CodeAnalysis.BannedApiAnalyzers" Version="3.3.4" />
</ItemGroup>

<PropertyGroup>
<PackageVersions>@(PackageVersion->'%(Identity)'->Replace('.', '_')->'Pkg%(Identity)Version=%(Version)')</PackageVersions>
</PropertyGroup>
</Project>
46 changes: 0 additions & 46 deletions Packages.props

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
<Project Sdk="IKVM.NET.Sdk">

<PropertyGroup>
<!--
Only really used in Cyberduck.
-->
<TargetFramework>net472</TargetFramework>
</PropertyGroup>

<Import Project="$(BuildSupportDir)Cyberduck.Java.props" />

<ItemGroup>
<CyberduckReference Include="Core" />
<PackageReference Include="iterate-ch.IKVM.MSBuild.SkipDuplicates" />
<PackageReference Include="iterate-ch.IKVM.MSBuild.SkipDuplicates">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>

<Convert Include="$(TargetBuildDir)*.jar" />
</ItemGroup>

</Project>
18 changes: 13 additions & 5 deletions bonjour/dll/build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,26 @@
-->
<project name="Cyberduck Native Libraries" basedir=".">

<import file="../../build.xml"/>
<import file="../../build.xml" />

<target name="restore" depends="msbuild">
<msbuild buildfile="Cyberduck.Bonjour.msbuildproj">
<msbuild buildfile="Cyberduck.Bonjour.ikvmproj">
<target name="Restore" />
</msbuild>
</target>

<target name="build" if="platform.windows" depends="restore,msbuild">
<msbuild buildfile="Cyberduck.Bonjour.msbuildproj">
<target name="build" depends="restore,msbuild">
<msbuild buildfile="Cyberduck.Bonjour.ikvmproj">
<property name="Configuration" value="${msbuild.configuration}" />
</msbuild>
</target>

</project>
<target name="pack" depends="msbuild">
<msbuild buildfile="Cyberduck.Bonjour.ikvmproj">
<target name="Pack" />

<property name="Configuration" value="${msbuild.configuration}" />
</msbuild>
</target>

</project>
12 changes: 5 additions & 7 deletions bonjour/dll/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -50,17 +50,16 @@
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>install-dll</id>
<phase>verify</phase>
<id>install-nupkg</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<classifier>net472</classifier>
<type>dll</type>
<file>${project.build.directory}/net472/Cyberduck.Bonjour.dll</file>
<type>nupkg</type>
<file>${project.build.directory}/Cyberduck.Bonjour.${project.version}.nupkg</file>
</artifact>
</artifacts>
</configuration>
Expand All @@ -76,9 +75,8 @@
<dependency>
<groupId>ch.cyberduck</groupId>
<artifactId>Cyberduck.Core</artifactId>
<classifier>net472</classifier>
<type>nupkg</type>
<version>${project.version}</version>
<type>dll</type>
</dependency>
</dependencies>
</profile>
Expand Down
Loading
Loading