diff --git a/.editorconfig b/.editorconfig index 8b11b7e73cf..e056e378136 100644 --- a/.editorconfig +++ b/.editorconfig @@ -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 diff --git a/Cyberduck.sln b/Cyberduck.sln index a7a00c5df4f..432b0e0c6a6 100644 --- a/Cyberduck.sln +++ b/Cyberduck.sln @@ -1,67 +1,67 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.0.31825.309 +# Visual Studio Version 18 +VisualStudioVersion = 18.2.11415.280 MinimumVisualStudioVersion = 15.0.26124.0 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cyberduck.Core.Native", "core\src\main\csharp\Cyberduck.Core.Native.csproj", "{89D94AC6-3D04-4B67-A39B-C1DEFB8A1766}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cyberduck.Bonjour.Native", "bonjour\src\main\csharp\Cyberduck.Bonjour.Native.csproj", "{1926AB55-690C-4081-99D5-170847C206D9}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cyberduck.Core.Test", "core\src\test\csharp\Cyberduck.Core.Test.csproj", "{581C7683-D22D-4346-B3BF-DC2936231C46}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "duck", "cli\src\main\csharp\duck.csproj", "{2287E64E-3515-4324-9833-553348295C15}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{8B08EF96-10D6-4F35-94C1-986F9F0F1506}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{3FAE38FB-24D9-4F8C-81BA-68BAD19FC81D}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "libs", "libs", "{72B4BA09-65D8-4C49-930E-B14104B2AB1B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cyberduck", "windows\src\main\csharp\Cyberduck.csproj", "{04AFCFBB-97D5-44EA-B087-F0CFAEB51E30}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cyberduck.Test", "windows\src\test\csharp\Cyberduck.Test.csproj", "{B5565834-1164-4858-AF50-AE89CFC9BDD2}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "installer", "installer", "{0DF59FB4-AEA9-4213-A935-6DB851411B67}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "duck", "duck", "{457F1D6D-8AEC-42E2-9211-2A8405C95019}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Cyberduck", "Cyberduck", "{7D32EE61-B6F0-4978-B500-45172B181283}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WindowsVersionCustomAction", "windows\src\main\wix\WindowsVersionCustomAction\WindowsVersionCustomAction.vcxproj", "{FBA5EFE2-362B-4BAD-A748-3248F79468AC}" -EndProject -Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Cyberduck.Bootstrapper", "windows\src\main\wix\Bootstrapper\Cyberduck.Bootstrapper.wixproj", "{00858CE5-437F-46BE-8A2E-519B552DBF7D}" -EndProject -Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Cyberduck.Bundle", "windows\src\main\wix\Bundle\Cyberduck.Bundle.wixproj", "{65AB4CE3-5AF4-411A-928C-7FFD250C6D85}" -EndProject -Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "duck.bootstrapper", "cli\src\main\wix\Bootstrapper\duck.bootstrapper.wixproj", "{EF87DE0E-BC36-4D3C-8852-C8AD11D01F04}" -EndProject -Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "duck.bundle", "cli\src\main\wix\Bundle\duck.bundle.wixproj", "{F6975079-F730-4A31-9909-DE536E524764}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cyberduck.Core.Refresh", "core\native\refresh\src\main\csharp\Cyberduck.Core.Refresh.csproj", "{D1286C4A-9D6A-4904-B9AD-CB7688483EDB}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B9726AB9-4100-4499-A9CF-78167CC27024}" ProjectSection(SolutionItems) = preProject .editorconfig = .editorconfig Directory.Build.props = Directory.Build.props Directory.Build.targets = Directory.Build.targets + Directory.Packages.props = Directory.Packages.props global.json = global.json - Packages.props = Packages.props EndProjectSection EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cyberduck.Core.Native", "core\src\main\csharp\Cyberduck.Core.Native.csproj", "{89D94AC6-3D04-4B67-A39B-C1DEFB8A1766}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cyberduck.Bonjour.Native", "bonjour\src\main\csharp\Cyberduck.Bonjour.Native.csproj", "{1926AB55-690C-4081-99D5-170847C206D9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cyberduck.Core.Test", "core\src\test\csharp\Cyberduck.Core.Test.csproj", "{581C7683-D22D-4346-B3BF-DC2936231C46}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "duck", "cli\src\main\csharp\duck.csproj", "{2287E64E-3515-4324-9833-553348295C15}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cyberduck", "windows\src\main\csharp\Cyberduck.csproj", "{04AFCFBB-97D5-44EA-B087-F0CFAEB51E30}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cyberduck.Test", "windows\src\test\csharp\Cyberduck.Test.csproj", "{B5565834-1164-4858-AF50-AE89CFC9BDD2}" +EndProject +Project("{B7DD6F7E-DEF8-4E67-B5B7-07EF123DB6F0}") = "Cyberduck.Bootstrapper", "windows\src\main\wix\Bootstrapper\Cyberduck.Bootstrapper.wixproj", "{00858CE5-437F-46BE-8A2E-519B552DBF7D}" +EndProject +Project("{B7DD6F7E-DEF8-4E67-B5B7-07EF123DB6F0}") = "Cyberduck.Bundle", "windows\src\main\wix\Bundle\Cyberduck.Bundle.wixproj", "{65AB4CE3-5AF4-411A-928C-7FFD250C6D85}" +EndProject +Project("{B7DD6F7E-DEF8-4E67-B5B7-07EF123DB6F0}") = "duck.bootstrapper", "cli\src\main\wix\Bootstrapper\duck.bootstrapper.wixproj", "{EF87DE0E-BC36-4D3C-8852-C8AD11D01F04}" +EndProject +Project("{B7DD6F7E-DEF8-4E67-B5B7-07EF123DB6F0}") = "duck.bundle", "cli\src\main\wix\Bundle\duck.bundle.wixproj", "{F6975079-F730-4A31-9909-DE536E524764}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cyberduck.Core.Refresh", "core\native\refresh\src\main\csharp\Cyberduck.Core.Refresh.csproj", "{D1286C4A-9D6A-4904-B9AD-CB7688483EDB}" +EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "i18n-gen", "core\i18n-gen\i18n-gen.csproj", "{ABB0D3AD-BCDA-4F73-88C3-C67B76AAB6FE}" EndProject Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "package", "windows\src\main\package\package.wapproj", "{55CDD736-9A8A-4091-AC99-60E2F9C73269}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cyberduck.Core", "core\dll\Cyberduck.Core.msbuildproj", "{1B4DFDAD-C676-4338-B435-F2F62D79E096}" +Project("{DAEA77DE-8320-43BA-BA7C-EF5C12478AB5}") = "Cyberduck.Core", "core\dll\Cyberduck.Core.ikvmproj", "{1B4DFDAD-C676-4338-B435-F2F62D79E096}" +EndProject +Project("{DAEA77DE-8320-43BA-BA7C-EF5C12478AB5}") = "Cyberduck.Bonjour", "bonjour\dll\Cyberduck.Bonjour.ikvmproj", "{B31E6C36-D710-443F-8ED7-16BE3BD51FC4}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cyberduck.Bonjour", "bonjour\dll\Cyberduck.Bonjour.msbuildproj", "{B31E6C36-D710-443F-8ED7-16BE3BD51FC4}" +Project("{DAEA77DE-8320-43BA-BA7C-EF5C12478AB5}") = "Cyberduck.Importer", "importer\dll\Cyberduck.Importer.ikvmproj", "{C9B1C169-1354-4348-9938-7892399C6336}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cyberduck.Importer", "importer\dll\Cyberduck.Importer.msbuildproj", "{C9B1C169-1354-4348-9938-7892399C6336}" +Project("{DAEA77DE-8320-43BA-BA7C-EF5C12478AB5}") = "Cyberduck.Protocols", "protocols\dll\Cyberduck.Protocols.ikvmproj", "{9C7B827F-AE30-44C4-A210-E49DF883C720}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cyberduck.Protocols", "protocols\dll\Cyberduck.Protocols.msbuildproj", "{9C7B827F-AE30-44C4-A210-E49DF883C720}" +Project("{DAEA77DE-8320-43BA-BA7C-EF5C12478AB5}") = "Cyberduck.Cryptomator", "cryptomator\dll\Cyberduck.Cryptomator.ikvmproj", "{7EFC0398-8F4D-4850-BBE3-A0CC85410559}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cyberduck.Cryptomator", "cryptomator\dll\Cyberduck.Cryptomator.msbuildproj", "{7EFC0398-8F4D-4850-BBE3-A0CC85410559}" +Project("{DAEA77DE-8320-43BA-BA7C-EF5C12478AB5}") = "Cyberduck.Cli", "cli\dll\Cyberduck.Cli.ikvmproj", "{2D33598A-21A1-4117-82DC-250F4CE8D5E5}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cyberduck.Cli", "cli\dll\Cyberduck.Cli.msbuildproj", "{2D33598A-21A1-4117-82DC-250F4CE8D5E5}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "test-utils", "windows\src\test\utils\test-utils.csproj", "{BBCC0F0C-0135-AAAB-DB32-CC4E28BC88E0}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -69,18 +69,6 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {1B4DFDAD-C676-4338-B435-F2F62D79E096}.Debug|x64.ActiveCfg = Debug|Any CPU - {1B4DFDAD-C676-4338-B435-F2F62D79E096}.Debug|x64.Build.0 = Debug|Any CPU - {1B4DFDAD-C676-4338-B435-F2F62D79E096}.Release|x64.ActiveCfg = Release|Any CPU - {1B4DFDAD-C676-4338-B435-F2F62D79E096}.Release|x64.Build.0 = Release|Any CPU - {2D33598A-21A1-4117-82DC-250F4CE8D5E5}.Debug|x64.ActiveCfg = Debug|Any CPU - {2D33598A-21A1-4117-82DC-250F4CE8D5E5}.Debug|x64.Build.0 = Debug|Any CPU - {2D33598A-21A1-4117-82DC-250F4CE8D5E5}.Release|x64.ActiveCfg = Release|Any CPU - {2D33598A-21A1-4117-82DC-250F4CE8D5E5}.Release|x64.Build.0 = Release|Any CPU - {7EFC0398-8F4D-4850-BBE3-A0CC85410559}.Debug|x64.ActiveCfg = Debug|Any CPU - {7EFC0398-8F4D-4850-BBE3-A0CC85410559}.Debug|x64.Build.0 = Debug|Any CPU - {7EFC0398-8F4D-4850-BBE3-A0CC85410559}.Release|x64.ActiveCfg = Release|Any CPU - {7EFC0398-8F4D-4850-BBE3-A0CC85410559}.Release|x64.Build.0 = Release|Any CPU {89D94AC6-3D04-4B67-A39B-C1DEFB8A1766}.Debug|x64.ActiveCfg = Debug|x64 {89D94AC6-3D04-4B67-A39B-C1DEFB8A1766}.Debug|x64.Build.0 = Debug|x64 {89D94AC6-3D04-4B67-A39B-C1DEFB8A1766}.Release|x64.ActiveCfg = Release|x64 @@ -101,42 +89,22 @@ Global {04AFCFBB-97D5-44EA-B087-F0CFAEB51E30}.Debug|x64.Build.0 = Debug|x64 {04AFCFBB-97D5-44EA-B087-F0CFAEB51E30}.Release|x64.ActiveCfg = Release|x64 {04AFCFBB-97D5-44EA-B087-F0CFAEB51E30}.Release|x64.Build.0 = Release|x64 - {9C7B827F-AE30-44C4-A210-E49DF883C720}.Debug|x64.ActiveCfg = Debug|Any CPU - {9C7B827F-AE30-44C4-A210-E49DF883C720}.Debug|x64.Build.0 = Debug|Any CPU - {9C7B827F-AE30-44C4-A210-E49DF883C720}.Release|x64.ActiveCfg = Release|Any CPU - {9C7B827F-AE30-44C4-A210-E49DF883C720}.Release|x64.Build.0 = Release|Any CPU - {B31E6C36-D710-443F-8ED7-16BE3BD51FC4}.Debug|x64.ActiveCfg = Debug|Any CPU - {B31E6C36-D710-443F-8ED7-16BE3BD51FC4}.Debug|x64.Build.0 = Debug|Any CPU - {B31E6C36-D710-443F-8ED7-16BE3BD51FC4}.Release|x64.ActiveCfg = Release|Any CPU - {B31E6C36-D710-443F-8ED7-16BE3BD51FC4}.Release|x64.Build.0 = Release|Any CPU {B5565834-1164-4858-AF50-AE89CFC9BDD2}.Debug|x64.ActiveCfg = Debug|x64 {B5565834-1164-4858-AF50-AE89CFC9BDD2}.Debug|x64.Build.0 = Debug|x64 {B5565834-1164-4858-AF50-AE89CFC9BDD2}.Release|x64.ActiveCfg = Release|x64 {B5565834-1164-4858-AF50-AE89CFC9BDD2}.Release|x64.Build.0 = Release|x64 - {C9B1C169-1354-4348-9938-7892399C6336}.Debug|x64.ActiveCfg = Debug|Any CPU - {C9B1C169-1354-4348-9938-7892399C6336}.Debug|x64.Build.0 = Debug|Any CPU - {C9B1C169-1354-4348-9938-7892399C6336}.Release|x64.ActiveCfg = Release|Any CPU - {C9B1C169-1354-4348-9938-7892399C6336}.Release|x64.Build.0 = Release|Any CPU - {FBA5EFE2-362B-4BAD-A748-3248F79468AC}.Debug|x64.ActiveCfg = Debug|Win32 - {FBA5EFE2-362B-4BAD-A748-3248F79468AC}.Debug|x64.Build.0 = Debug|Win32 - {FBA5EFE2-362B-4BAD-A748-3248F79468AC}.Release|x64.ActiveCfg = Release|Win32 - {FBA5EFE2-362B-4BAD-A748-3248F79468AC}.Release|x64.Build.0 = Release|Win32 - {00858CE5-437F-46BE-8A2E-519B552DBF7D}.Debug|x64.ActiveCfg = Debug|x86 - {00858CE5-437F-46BE-8A2E-519B552DBF7D}.Debug|x64.Build.0 = Debug|x86 - {00858CE5-437F-46BE-8A2E-519B552DBF7D}.Release|x64.ActiveCfg = Release|x86 - {00858CE5-437F-46BE-8A2E-519B552DBF7D}.Release|x64.Build.0 = Release|x86 - {65AB4CE3-5AF4-411A-928C-7FFD250C6D85}.Debug|x64.ActiveCfg = Debug|x86 - {65AB4CE3-5AF4-411A-928C-7FFD250C6D85}.Debug|x64.Build.0 = Debug|x86 - {65AB4CE3-5AF4-411A-928C-7FFD250C6D85}.Release|x64.ActiveCfg = Release|x86 - {65AB4CE3-5AF4-411A-928C-7FFD250C6D85}.Release|x64.Build.0 = Release|x86 - {EF87DE0E-BC36-4D3C-8852-C8AD11D01F04}.Debug|x64.ActiveCfg = Debug|x86 - {EF87DE0E-BC36-4D3C-8852-C8AD11D01F04}.Debug|x64.Build.0 = Debug|x86 - {EF87DE0E-BC36-4D3C-8852-C8AD11D01F04}.Release|x64.ActiveCfg = Release|x86 - {EF87DE0E-BC36-4D3C-8852-C8AD11D01F04}.Release|x64.Build.0 = Release|x86 - {F6975079-F730-4A31-9909-DE536E524764}.Debug|x64.ActiveCfg = Debug|x86 - {F6975079-F730-4A31-9909-DE536E524764}.Debug|x64.Build.0 = Debug|x86 - {F6975079-F730-4A31-9909-DE536E524764}.Release|x64.ActiveCfg = Release|x86 - {F6975079-F730-4A31-9909-DE536E524764}.Release|x64.Build.0 = Release|x86 + {00858CE5-437F-46BE-8A2E-519B552DBF7D}.Debug|x64.ActiveCfg = Debug|x64 + {00858CE5-437F-46BE-8A2E-519B552DBF7D}.Debug|x64.Build.0 = Debug|x64 + {00858CE5-437F-46BE-8A2E-519B552DBF7D}.Release|x64.ActiveCfg = Release|x64 + {00858CE5-437F-46BE-8A2E-519B552DBF7D}.Release|x64.Build.0 = Release|x64 + {65AB4CE3-5AF4-411A-928C-7FFD250C6D85}.Debug|x64.ActiveCfg = Debug|x64 + {65AB4CE3-5AF4-411A-928C-7FFD250C6D85}.Debug|x64.Build.0 = Debug|x64 + {65AB4CE3-5AF4-411A-928C-7FFD250C6D85}.Release|x64.ActiveCfg = Release|x64 + {65AB4CE3-5AF4-411A-928C-7FFD250C6D85}.Release|x64.Build.0 = Release|x64 + {EF87DE0E-BC36-4D3C-8852-C8AD11D01F04}.Debug|x64.ActiveCfg = Debug|x64 + {EF87DE0E-BC36-4D3C-8852-C8AD11D01F04}.Release|x64.ActiveCfg = Release|x64 + {F6975079-F730-4A31-9909-DE536E524764}.Debug|x64.ActiveCfg = Debug|x64 + {F6975079-F730-4A31-9909-DE536E524764}.Release|x64.ActiveCfg = Release|x64 {D1286C4A-9D6A-4904-B9AD-CB7688483EDB}.Debug|x64.ActiveCfg = Debug|x64 {D1286C4A-9D6A-4904-B9AD-CB7688483EDB}.Debug|x64.Build.0 = Debug|x64 {D1286C4A-9D6A-4904-B9AD-CB7688483EDB}.Release|x64.ActiveCfg = Release|x64 @@ -151,27 +119,48 @@ Global {55CDD736-9A8A-4091-AC99-60E2F9C73269}.Release|x64.ActiveCfg = Release|x64 {55CDD736-9A8A-4091-AC99-60E2F9C73269}.Release|x64.Build.0 = Release|x64 {55CDD736-9A8A-4091-AC99-60E2F9C73269}.Release|x64.Deploy.0 = Release|x64 + {1B4DFDAD-C676-4338-B435-F2F62D79E096}.Debug|x64.ActiveCfg = Debug|Any CPU + {1B4DFDAD-C676-4338-B435-F2F62D79E096}.Debug|x64.Build.0 = Debug|Any CPU + {1B4DFDAD-C676-4338-B435-F2F62D79E096}.Release|x64.ActiveCfg = Release|Any CPU + {1B4DFDAD-C676-4338-B435-F2F62D79E096}.Release|x64.Build.0 = Release|Any CPU + {B31E6C36-D710-443F-8ED7-16BE3BD51FC4}.Debug|x64.ActiveCfg = Debug|Any CPU + {B31E6C36-D710-443F-8ED7-16BE3BD51FC4}.Debug|x64.Build.0 = Debug|Any CPU + {B31E6C36-D710-443F-8ED7-16BE3BD51FC4}.Release|x64.ActiveCfg = Release|Any CPU + {B31E6C36-D710-443F-8ED7-16BE3BD51FC4}.Release|x64.Build.0 = Release|Any CPU + {C9B1C169-1354-4348-9938-7892399C6336}.Debug|x64.ActiveCfg = Debug|Any CPU + {C9B1C169-1354-4348-9938-7892399C6336}.Debug|x64.Build.0 = Debug|Any CPU + {C9B1C169-1354-4348-9938-7892399C6336}.Release|x64.ActiveCfg = Release|Any CPU + {C9B1C169-1354-4348-9938-7892399C6336}.Release|x64.Build.0 = Release|Any CPU + {9C7B827F-AE30-44C4-A210-E49DF883C720}.Debug|x64.ActiveCfg = Debug|Any CPU + {9C7B827F-AE30-44C4-A210-E49DF883C720}.Debug|x64.Build.0 = Debug|Any CPU + {9C7B827F-AE30-44C4-A210-E49DF883C720}.Release|x64.ActiveCfg = Release|Any CPU + {9C7B827F-AE30-44C4-A210-E49DF883C720}.Release|x64.Build.0 = Release|Any CPU + {7EFC0398-8F4D-4850-BBE3-A0CC85410559}.Debug|x64.ActiveCfg = Debug|Any CPU + {7EFC0398-8F4D-4850-BBE3-A0CC85410559}.Debug|x64.Build.0 = Debug|Any CPU + {7EFC0398-8F4D-4850-BBE3-A0CC85410559}.Release|x64.ActiveCfg = Release|Any CPU + {7EFC0398-8F4D-4850-BBE3-A0CC85410559}.Release|x64.Build.0 = Release|Any CPU + {2D33598A-21A1-4117-82DC-250F4CE8D5E5}.Debug|x64.ActiveCfg = Debug|Any CPU + {2D33598A-21A1-4117-82DC-250F4CE8D5E5}.Debug|x64.Build.0 = Debug|Any CPU + {2D33598A-21A1-4117-82DC-250F4CE8D5E5}.Release|x64.ActiveCfg = Release|Any CPU + {2D33598A-21A1-4117-82DC-250F4CE8D5E5}.Release|x64.Build.0 = Release|Any CPU + {BBCC0F0C-0135-AAAB-DB32-CC4E28BC88E0}.Debug|x64.ActiveCfg = Debug|Any CPU + {BBCC0F0C-0135-AAAB-DB32-CC4E28BC88E0}.Debug|x64.Build.0 = Debug|Any CPU + {BBCC0F0C-0135-AAAB-DB32-CC4E28BC88E0}.Release|x64.ActiveCfg = Release|Any CPU + {BBCC0F0C-0135-AAAB-DB32-CC4E28BC88E0}.Release|x64.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {1B4DFDAD-C676-4338-B435-F2F62D79E096} = {72B4BA09-65D8-4C49-930E-B14104B2AB1B} - {2D33598A-21A1-4117-82DC-250F4CE8D5E5} = {72B4BA09-65D8-4C49-930E-B14104B2AB1B} - {7EFC0398-8F4D-4850-BBE3-A0CC85410559} = {72B4BA09-65D8-4C49-930E-B14104B2AB1B} + {72B4BA09-65D8-4C49-930E-B14104B2AB1B} = {3FAE38FB-24D9-4F8C-81BA-68BAD19FC81D} + {457F1D6D-8AEC-42E2-9211-2A8405C95019} = {0DF59FB4-AEA9-4213-A935-6DB851411B67} + {7D32EE61-B6F0-4978-B500-45172B181283} = {0DF59FB4-AEA9-4213-A935-6DB851411B67} {89D94AC6-3D04-4B67-A39B-C1DEFB8A1766} = {72B4BA09-65D8-4C49-930E-B14104B2AB1B} {1926AB55-690C-4081-99D5-170847C206D9} = {72B4BA09-65D8-4C49-930E-B14104B2AB1B} {581C7683-D22D-4346-B3BF-DC2936231C46} = {8B08EF96-10D6-4F35-94C1-986F9F0F1506} {2287E64E-3515-4324-9833-553348295C15} = {3FAE38FB-24D9-4F8C-81BA-68BAD19FC81D} - {72B4BA09-65D8-4C49-930E-B14104B2AB1B} = {3FAE38FB-24D9-4F8C-81BA-68BAD19FC81D} {04AFCFBB-97D5-44EA-B087-F0CFAEB51E30} = {3FAE38FB-24D9-4F8C-81BA-68BAD19FC81D} - {9C7B827F-AE30-44C4-A210-E49DF883C720} = {72B4BA09-65D8-4C49-930E-B14104B2AB1B} - {B31E6C36-D710-443F-8ED7-16BE3BD51FC4} = {72B4BA09-65D8-4C49-930E-B14104B2AB1B} {B5565834-1164-4858-AF50-AE89CFC9BDD2} = {8B08EF96-10D6-4F35-94C1-986F9F0F1506} - {457F1D6D-8AEC-42E2-9211-2A8405C95019} = {0DF59FB4-AEA9-4213-A935-6DB851411B67} - {7D32EE61-B6F0-4978-B500-45172B181283} = {0DF59FB4-AEA9-4213-A935-6DB851411B67} - {C9B1C169-1354-4348-9938-7892399C6336} = {72B4BA09-65D8-4C49-930E-B14104B2AB1B} - {FBA5EFE2-362B-4BAD-A748-3248F79468AC} = {7D32EE61-B6F0-4978-B500-45172B181283} {00858CE5-437F-46BE-8A2E-519B552DBF7D} = {7D32EE61-B6F0-4978-B500-45172B181283} {65AB4CE3-5AF4-411A-928C-7FFD250C6D85} = {7D32EE61-B6F0-4978-B500-45172B181283} {EF87DE0E-BC36-4D3C-8852-C8AD11D01F04} = {457F1D6D-8AEC-42E2-9211-2A8405C95019} @@ -179,6 +168,13 @@ Global {D1286C4A-9D6A-4904-B9AD-CB7688483EDB} = {72B4BA09-65D8-4C49-930E-B14104B2AB1B} {ABB0D3AD-BCDA-4F73-88C3-C67B76AAB6FE} = {72B4BA09-65D8-4C49-930E-B14104B2AB1B} {55CDD736-9A8A-4091-AC99-60E2F9C73269} = {7D32EE61-B6F0-4978-B500-45172B181283} + {1B4DFDAD-C676-4338-B435-F2F62D79E096} = {72B4BA09-65D8-4C49-930E-B14104B2AB1B} + {B31E6C36-D710-443F-8ED7-16BE3BD51FC4} = {72B4BA09-65D8-4C49-930E-B14104B2AB1B} + {C9B1C169-1354-4348-9938-7892399C6336} = {72B4BA09-65D8-4C49-930E-B14104B2AB1B} + {9C7B827F-AE30-44C4-A210-E49DF883C720} = {72B4BA09-65D8-4C49-930E-B14104B2AB1B} + {7EFC0398-8F4D-4850-BBE3-A0CC85410559} = {72B4BA09-65D8-4C49-930E-B14104B2AB1B} + {2D33598A-21A1-4117-82DC-250F4CE8D5E5} = {72B4BA09-65D8-4C49-930E-B14104B2AB1B} + {BBCC0F0C-0135-AAAB-DB32-CC4E28BC88E0} = {8B08EF96-10D6-4F35-94C1-986F9F0F1506} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {289E6003-15D5-4377-ADA6-2E7093785BCD} diff --git a/Directory.Build.props b/Directory.Build.props index 8ef4e8dfcfd..7cd498cbc8f 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -16,46 +16,11 @@ - - iterate GmbH - Libre FTP, SFTP, WebDAV, S3 and OpenStack Swift browser for Mac and Windows. - - $(MSBuildThisFileDirectory) $(CyberduckDir)src\main\msbuild\ - $(ModulePath)target\ - $(TargetBuildDir)lib\ - $(TargetBuildDir)generated\msbuild\ - - $(TargetBuildDir) - false - - $(ArtifactsPath)obj\$(MSBuildProjectName)\ - $(ArtifactsPath) - $(BaseIntermediateOutputPath)$(Configuration)\ - $(BaseOutputPath) - - false - 12 - - false - - - - - - - - - - - - $(PATH) - - - + - \ No newline at end of file + diff --git a/Directory.Build.targets b/Directory.Build.targets index bda255d49f3..bb8c9469a1c 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -16,124 +16,6 @@ - - - - $(LibDir);$(AssemblySearchPaths) - - - - net472 - net8.0 - $(LibDir)$(LibDirFramework)\;$(AssemblySearchPaths) - - - - $(DefaultItemExcludes);**/*net472* - - - $(DefaultItemExcludes);**/*net8.0* - - - - - $(CyberduckDir)bonjour\dll\Cyberduck.Bonjour.msbuildproj - - - $(CyberduckDir)bonjour\src\main\csharp\Cyberduck.Bonjour.Native.csproj - - - $(CyberduckDir)cli\dll\Cyberduck.Cli.msbuildproj - - - $(CyberduckDir)core\dll\Cyberduck.Core.msbuildproj - - - $(CyberduckDir)core\src\main\csharp\Cyberduck.Core.Native.csproj - - - $(CyberduckDir)core\native\refresh\src\main\csharp\Cyberduck.Core.Refresh.csproj - - - $(CyberduckDir)cryptomator\dll\Cyberduck.Cryptomator.msbuildproj - - - $(CyberduckDir)importer\dll\Cyberduck.Importer.msbuildproj - - - $(CyberduckDir)protocols\dll\Cyberduck.Protocols.msbuildproj - - - - - - Cyberduck.%(Identity) - - - \\?\ - - - - - - win-x86 - win-x64 - - - - - $([MSBuild]::VersionLessThanOrEquals('$(NETCoreSdkVersion)', '6.0.301')) - $([MSBuild]::VersionGreaterThanOrEquals('$(NETCoreSdkVersion)', '6.0.401')) - SDKFix_RemoveDuplicateAnalyzers;$(CoreCompileDependsOn) - - - - - - - - - - - - - <_SignToolArgs Condition="'$(SignTool)'=='cng'">_SignToolArgsCNG - <_SignToolArgs Condition="'$(_SignToolArgs)'==''">_SignToolArgsCertificateStore - - $(_SignToolArgs);SignToolExecutablePath - - - - - SignTool.exe - $(WindowsSdk_ExecutablePath);$(SignToolExecutablePath) - - - - - - sign /d "Cyberduck" /fd sha256 /tr "http://timestamp.acs.microsoft.com" /td "sha256" /a - - - - - - - "$(SignToolExecutable)" $(SignToolArgsBase) - - - - - - - - $(SignToolArgsBase) /sm /n "iterate GmbH" - - - - - $(SignToolArgsBase) /f "$(CyberduckDir)setup\cert\certificate.crt" /csp "$(SignToolCSP)" /kc "$(SignToolKC)" - - + \ No newline at end of file diff --git a/Directory.Packages.props b/Directory.Packages.props new file mode 100644 index 00000000000..d16e1d5ab6c --- /dev/null +++ b/Directory.Packages.props @@ -0,0 +1,60 @@ + + + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @(PackageVersion->'%(Identity)'->Replace('.', '_')->'Pkg%(Identity)Version=%(Version)') + + diff --git a/Packages.props b/Packages.props deleted file mode 100644 index 87aeddb46a7..00000000000 --- a/Packages.props +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/bonjour/dll/Cyberduck.Bonjour.msbuildproj b/bonjour/dll/Cyberduck.Bonjour.ikvmproj similarity index 67% rename from bonjour/dll/Cyberduck.Bonjour.msbuildproj rename to bonjour/dll/Cyberduck.Bonjour.ikvmproj index 4efb34d915e..c36747ad83f 100644 --- a/bonjour/dll/Cyberduck.Bonjour.msbuildproj +++ b/bonjour/dll/Cyberduck.Bonjour.ikvmproj @@ -1,5 +1,4 @@ - - + - + - - + + - + + + + + + + + + \ No newline at end of file diff --git a/bonjour/dll/pom.xml b/bonjour/dll/pom.xml index 9c0769809f8..df05293ca49 100644 --- a/bonjour/dll/pom.xml +++ b/bonjour/dll/pom.xml @@ -50,17 +50,16 @@ build-helper-maven-plugin - install-dll - verify + install-nupkg + package attach-artifact - net472 - dll - ${project.build.directory}/net472/Cyberduck.Bonjour.dll + nupkg + ${project.build.directory}/Cyberduck.Bonjour.${project.version}.nupkg @@ -76,9 +75,8 @@ ch.cyberduck Cyberduck.Core - net472 + nupkg ${project.version} - dll diff --git a/bonjour/native/Directory.Build.props b/bonjour/native/Directory.Build.props index ae8c28c65de..17adff8d341 100644 --- a/bonjour/native/Directory.Build.props +++ b/bonjour/native/Directory.Build.props @@ -15,10 +15,11 @@ - - $(MSBuildThisFileDirectory) - + + Cyberduck.Bonjour.Native + $(MSBuildThisFileDirectory) + - + - + \ No newline at end of file diff --git a/bonjour/native/build.xml b/bonjour/native/build.xml index fd59646a58f..6dfdf913695 100644 --- a/bonjour/native/build.xml +++ b/bonjour/native/build.xml @@ -37,4 +37,13 @@ + + + + + + + + + diff --git a/bonjour/native/pom.xml b/bonjour/native/pom.xml index 0554869abcc..ab6099abb02 100644 --- a/bonjour/native/pom.xml +++ b/bonjour/native/pom.xml @@ -28,7 +28,7 @@ build-helper-maven-plugin - install-dll + install-nupkg package attach-artifact @@ -36,9 +36,8 @@ - net472 - dll - ${project.build.directory}/net472/Cyberduck.Bonjour.Native.dll + nupkg + ${project.build.directory}/Cyberduck.Bonjour.Native.${project.version}.nupkg @@ -54,8 +53,7 @@ ch.cyberduck Cyberduck.Bonjour - net472 - dll + nupkg ${project.version} diff --git a/bonjour/native/src/main/nuget/Cyberduck.Bonjour.Native.nuspec b/bonjour/native/src/main/nuget/Cyberduck.Bonjour.Native.nuspec new file mode 100644 index 00000000000..9134c53240f --- /dev/null +++ b/bonjour/native/src/main/nuget/Cyberduck.Bonjour.Native.nuspec @@ -0,0 +1,20 @@ + + + + $id$ + $version$ + $description$ + $authors$ + + + + + + + + + + + + + \ No newline at end of file diff --git a/bonjour/native/src/main/nuget/nuget.proj b/bonjour/native/src/main/nuget/nuget.proj new file mode 100644 index 00000000000..f5a01498fce --- /dev/null +++ b/bonjour/native/src/main/nuget/nuget.proj @@ -0,0 +1,9 @@ + + + + netstandard2.0 + true + false + Cyberduck.Bonjour.Native.nuspec + + diff --git a/bonjour/src/main/csharp/Directory.Build.props b/bonjour/src/main/Directory.Build.props similarity index 100% rename from bonjour/src/main/csharp/Directory.Build.props rename to bonjour/src/main/Directory.Build.props diff --git a/bonjour/src/main/csharp/Cyberduck.Bonjour.Native.csproj b/bonjour/src/main/csharp/Cyberduck.Bonjour.Native.csproj index f26981c6860..62132827907 100644 --- a/bonjour/src/main/csharp/Cyberduck.Bonjour.Native.csproj +++ b/bonjour/src/main/csharp/Cyberduck.Bonjour.Native.csproj @@ -13,7 +13,6 @@ - diff --git a/bonjour/src/main/csharp/nuget.proj b/bonjour/src/main/csharp/nuget.proj new file mode 100644 index 00000000000..6b158b5b195 --- /dev/null +++ b/bonjour/src/main/csharp/nuget.proj @@ -0,0 +1,8 @@ + + + netstandard2.0 + true + false + Cyberduck.Core.Native.nuspec + + diff --git a/build.xml b/build.xml index 51454c418da..a5984b2466b 100644 --- a/build.xml +++ b/build.xml @@ -127,9 +127,13 @@ - + + + - + @@ -137,20 +141,35 @@ - + + + + + + + + - + - - + + - + + + + + + + + + diff --git a/cli/dll/Cyberduck.Cli.ikvmproj b/cli/dll/Cyberduck.Cli.ikvmproj new file mode 100644 index 00000000000..7af58505026 --- /dev/null +++ b/cli/dll/Cyberduck.Cli.ikvmproj @@ -0,0 +1,15 @@ + + + net8.0 + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + diff --git a/cli/dll/Cyberduck.Cli.msbuildproj b/cli/dll/Cyberduck.Cli.msbuildproj deleted file mode 100644 index 80b06bc152b..00000000000 --- a/cli/dll/Cyberduck.Cli.msbuildproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - net472 - - - - - - - - - - - - \ No newline at end of file diff --git a/cli/dll/build.xml b/cli/dll/build.xml index 68d88d0cf85..d26f3e01fc0 100644 --- a/cli/dll/build.xml +++ b/cli/dll/build.xml @@ -16,17 +16,25 @@ --> - + - + - - + + - + + + + + + + + + \ No newline at end of file diff --git a/cli/dll/pom.xml b/cli/dll/pom.xml index 5d7c0e4f654..20eca8d4c3c 100644 --- a/cli/dll/pom.xml +++ b/cli/dll/pom.xml @@ -70,9 +70,8 @@ - net472 - dll - ${project.build.directory}/net472/Cyberduck.Cli.dll + nupkg + ${project.build.directory}/Cyberduck.Cli.${project.version}.nupkg @@ -91,29 +90,19 @@ ch.cyberduck Cyberduck.Core - net472 - dll - ${project.version} - - - ch.cyberduck - Cyberduck.Core.Native - net472 - dll + nupkg ${project.version} ch.cyberduck Cyberduck.Protocols - net472 - dll + nupkg ${project.version} ch.cyberduck Cyberduck.Cryptomator - net472 - dll + nupkg ${project.version} @@ -141,5 +130,21 @@ + + org.fusesource.jansi + jansi + ${jansi.version} + x86_64 + dll + runtime + + + org.fusesource.jansi + jansi + ${jansi.version} + arm64 + dll + runtime + diff --git a/cli/linux/pom.xml b/cli/linux/pom.xml index 13163576f61..c334880e6dd 100644 --- a/cli/linux/pom.xml +++ b/cli/linux/pom.xml @@ -81,6 +81,14 @@ ${jna-version} runtime + + org.fusesource.jansi + jansi + ${jansi.version} + arm64 + so + runtime + @@ -99,6 +107,14 @@ ${jna-version} runtime + + org.fusesource.jansi + jansi + ${jansi.version} + ${os.arch} + so + runtime + @@ -117,6 +133,14 @@ ${jna-version} runtime + + org.fusesource.jansi + jansi + ${jansi.version} + x86_64 + so + runtime + diff --git a/cli/osx/build.xml b/cli/osx/build.xml index 3fbdc051e19..ed291d181ec 100644 --- a/cli/osx/build.xml +++ b/cli/osx/build.xml @@ -23,7 +23,7 @@ + value="-client --add-opens=java.base/sun.security.ssl=ALL-UNNAMED --add-opens=java.base/sun.security.util=ALL-UNNAMED -Djava.library.path=$APP_PACKAGE/Contents/Frameworks -Dlibrary.jansi.path=$APP_PACKAGE/Contents/Frameworks -Djna.boot.library.path=$APP_PACKAGE/Contents/Frameworks -Djna.library.path=$APP_PACKAGE/Contents/Frameworks -Djna.nounpack=true -Djava.awt.headless=true -Dsun.jnu.encoding=utf-8 -Dfile.encoding=utf-8 -Dsun.io.useCanonCaches=false -DLog4jContextSelector=org.apache.logging.log4j.core.selector.BasicContextSelector -XX:+UseG1GC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -XX:+UseStringDeduplication"/> diff --git a/cli/osx/pom.xml b/cli/osx/pom.xml index 7cd6227438e..c0d5fa7b557 100644 --- a/cli/osx/pom.xml +++ b/cli/osx/pom.xml @@ -81,7 +81,7 @@ ${project.build.directory}/duck.bundle/Contents/Frameworks - dylib + dylib,jnilib runtime true true @@ -226,5 +226,12 @@ test ${project.version} + + org.fusesource.jansi + libjansi + ${jansi.version} + jnilib + runtime + diff --git a/cli/pom.xml b/cli/pom.xml index 53cbc98eef4..80b3f6a43ed 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -79,8 +79,8 @@ org.fusesource.jansi - jansi - 2.4.0 + jansi-min + ${jansi.version} diff --git a/cli/src/main/csharp/Properties/PublishProfiles/win-arm64.pubxml b/cli/src/main/csharp/Properties/PublishProfiles/win-arm64.pubxml new file mode 100644 index 00000000000..b7028ce11ac --- /dev/null +++ b/cli/src/main/csharp/Properties/PublishProfiles/win-arm64.pubxml @@ -0,0 +1,7 @@ + + + + win-arm64 + true + + \ No newline at end of file diff --git a/cli/src/main/csharp/Properties/PublishProfiles/win-x64.pubxml b/cli/src/main/csharp/Properties/PublishProfiles/win-x64.pubxml new file mode 100644 index 00000000000..3bab3131c94 --- /dev/null +++ b/cli/src/main/csharp/Properties/PublishProfiles/win-x64.pubxml @@ -0,0 +1,7 @@ + + + + win-x64 + true + + \ No newline at end of file diff --git a/cli/src/main/csharp/ch/cyberduck/cli/WindowsTerminalPreferences.cs b/cli/src/main/csharp/ch/cyberduck/cli/WindowsTerminalPreferences.cs index e4cadaf6cb6..641979ee41c 100644 --- a/cli/src/main/csharp/ch/cyberduck/cli/WindowsTerminalPreferences.cs +++ b/cli/src/main/csharp/ch/cyberduck/cli/WindowsTerminalPreferences.cs @@ -16,6 +16,7 @@ // feedback@cyberduck.io // +using System; using ch.cyberduck.cli; using ch.cyberduck.core.cryptomator; using ch.cyberduck.core.serviceloader; @@ -28,6 +29,7 @@ using Ch.Cyberduck.Core.Proxy; using java.security; using sun.security.mscapi; +using JavaSystem = java.lang.System; namespace Ch.Cyberduck.Cli { @@ -48,6 +50,8 @@ protected override void setDefaults() { base.setDefaults(); + JavaSystem.setProperty("library.jansi.path", AppContext.BaseDirectory); + this.setDefault("application.language", "en"); Security.addProvider(new SunMSCAPI()); diff --git a/cli/src/main/csharp/duck.csproj b/cli/src/main/csharp/duck.csproj index f8a05377bed..de33d9492d4 100644 --- a/cli/src/main/csharp/duck.csproj +++ b/cli/src/main/csharp/duck.csproj @@ -2,9 +2,10 @@ Exe - net472 - x64 - win-x64 + net8.0-windows10.0.26100.0 + win-x64;win-arm64 + x64;arm64 + win-$(Platform) @@ -12,22 +13,10 @@ - - $(Filename)$(Extension) - PreserveNewest - - - $(Filename)$(Extension) - PreserveNewest - - - PreserveNewest - $(Filename)$(Extension) - - - PreserveNewest - $(Filename)$(Extension) - + + + + bookmarks/%(Filename)%(Extension) @@ -43,9 +32,4 @@ - - - - - - \ No newline at end of file + diff --git a/cli/src/main/java/ch/cyberduck/cli/LinuxTerminalPreferences.java b/cli/src/main/java/ch/cyberduck/cli/LinuxTerminalPreferences.java index e3fe8cf2bce..2c82309e44f 100644 --- a/cli/src/main/java/ch/cyberduck/cli/LinuxTerminalPreferences.java +++ b/cli/src/main/java/ch/cyberduck/cli/LinuxTerminalPreferences.java @@ -45,6 +45,9 @@ public LinuxTerminalPreferences() { protected void setDefaults() { super.setDefaults(); + this.setProperty("library.jansi.path", new ClasspathResourcesFinder().find().getAbsolute()); + this.setProperty("jna.boot.library.path", new ClasspathResourcesFinder().find().getAbsolute()); + try { final Process echo = Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", "echo ~"}); this.setDefault("local.user.home", StringUtils.strip(IOUtils.toString(echo.getInputStream(), Charset.defaultCharset()))); diff --git a/cli/src/main/wix/Bootstrapper/Cyberduck CLI Bundle.wxs b/cli/src/main/wix/Bootstrapper/Cyberduck CLI Bundle.wxs index a82786ba8aa..b5c4c215679 100644 --- a/cli/src/main/wix/Bootstrapper/Cyberduck CLI Bundle.wxs +++ b/cli/src/main/wix/Bootstrapper/Cyberduck CLI Bundle.wxs @@ -1,29 +1,21 @@ - + + + + + + + + - - - - - - - - - - - - = v10.0 AND CBNumber >= 14393]]> - + - - - + + + + + + diff --git a/cli/src/main/wix/Bootstrapper/InstallerTheme.xml b/cli/src/main/wix/Bootstrapper/InstallerTheme.xml new file mode 100644 index 00000000000..50f697be9fa --- /dev/null +++ b/cli/src/main/wix/Bootstrapper/InstallerTheme.xml @@ -0,0 +1,134 @@ + + + + + + Segoe UI + Segoe UI + Segoe UI + Segoe UI + + + + + + + + + + + + + + + + + #(loc.InstallLicenseLinkText) + + #(loc.InstallAcceptCheckbox) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #(loc.FailureHyperlinkLogText) + + + + + + + \ No newline at end of file diff --git a/cli/src/main/wix/Bootstrapper/duck.bootstrapper.wixproj b/cli/src/main/wix/Bootstrapper/duck.bootstrapper.wixproj index 9e1f9f8b742..c4db4bd4c61 100644 --- a/cli/src/main/wix/Bootstrapper/duck.bootstrapper.wixproj +++ b/cli/src/main/wix/Bootstrapper/duck.bootstrapper.wixproj @@ -1,74 +1,14 @@ - - - + - 3.14 - ef87de0e-bc36-4d3c-8852-c8ad11d01f04 - 2.0 - duck-$(Version) + duck-$(FileVersion) Bundle - CyberduckDir=$(CyberduckDir);SetupDir=$(SetupDir) + CyberduckDir=$(CyberduckDir);SetupDir=$(SetupDir);ProductVersion=$(FileVersion);$(DefineConstants) - - false - Debug;$(DefineConstants) - - - true - - - - - - - x64 - - - - - - - - - - - $(WixExtDir)\WixNetFxExtension.dll - WixNetFxExtension - - - $(WixExtDir)\WixBalExtension.dll - WixBalExtension - - - $(WixExtDir)\WixUtilExtension.dll - WixUtilExtension - + + - - CLI-WiX - {f6975079-f730-4a31-9909-de536e524764} - True - True - Binaries;Content;Satellites - INSTALLFOLDER - + - - - - - - - - - diff --git a/cli/src/main/wix/Bundle/Cyberduck CLI-WiX.wxs b/cli/src/main/wix/Bundle/Cyberduck CLI-WiX.wxs index 6c4740ae08f..747ba9d2120 100644 --- a/cli/src/main/wix/Bundle/Cyberduck CLI-WiX.wxs +++ b/cli/src/main/wix/Bundle/Cyberduck CLI-WiX.wxs @@ -1,132 +1,29 @@ - - - - + - - - - - - - - - - - = 14393]]> - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/cli/src/main/wix/Bundle/duck.bundle.wixproj b/cli/src/main/wix/Bundle/duck.bundle.wixproj index d550427f8d0..4519fc0fbd4 100644 --- a/cli/src/main/wix/Bundle/duck.bundle.wixproj +++ b/cli/src/main/wix/Bundle/duck.bundle.wixproj @@ -1,112 +1,13 @@ - - - + - 3.11 - f6975079-f730-4a31-9909-de536e524764 - 2.0 - duck-$(Version) - Package - x64 + duck-$(FileVersion)-$(Platform) + x64;arm64 - CyberduckDir=$(CyberduckDir); - ProfilesDir=$(CyberduckDir)profiles\default\; - LicenseFile=$(CyberduckDir)i18n/src/main/resources/en.lproj/License.txt; - $(DefineConstants) - - - - false - Debug;$(DefineConstants) - - - true - - - - - - - - $(WixExtDir)\WixNetFxExtension.dll - WixNetFxExtension - - - - - - Profiles - PROFILES - ProfileComponents - var.ProfilesDir - - - - - x64 - - - - - - - - - - - - $(IntermediateOutputPath)CLI\ - - CLIPublishDir=$(CLIPublishDir); - IkvmRuntimeDir=$(CLIPublishDir)\ikvm; + ProductVersion=$(FileVersion); $(DefineConstants) - - CLI - {4b14000d-f435-4eca-a119-7aef03792dee} - Publish - True - True - Binaries;Content;Satellites - INSTALLFOLDER - PublishDir=$(CLIPublishDir);RuntimeIdentifier=win-x64 - - - ikvm - INSTALLLOCATION - IkvmRuntime - var.IkvmRuntimeDir - + - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + diff --git a/cli/src/main/wix/Directory.Build.props b/cli/src/main/wix/Directory.Build.props index 73156ad64d5..aaea473a943 100644 --- a/cli/src/main/wix/Directory.Build.props +++ b/cli/src/main/wix/Directory.Build.props @@ -15,15 +15,14 @@ - - <_CliBasePath>$([MSBuild]::GetDirectoryNameOfFileAbove('$(MSBuildThisFileDirectory)../', 'Directory.Build.props'))/ - - + + <_CliBasePath>$([MSBuild]::GetDirectoryNameOfFileAbove('$(MSBuildThisFileDirectory)../', 'Directory.Build.props'))/ + + - - $(OutputPath)$(Configuration) - $(CyberduckDir)setup\wix\ - $(OutputPath) - + + $(BaseOutputPath)$(Configuration)\ + $(CyberduckDir)setup\wix\ + diff --git a/cli/windows/Directory.Build.props b/cli/windows/Directory.Build.props index 345496fbdd4..446ced77aa6 100644 --- a/cli/windows/Directory.Build.props +++ b/cli/windows/Directory.Build.props @@ -17,7 +17,6 @@ $(MSBuildThisFileDirectory) - false diff --git a/cli/windows/build.xml b/cli/windows/build.xml index fb00f208fbc..8c2d98d1fcb 100644 --- a/cli/windows/build.xml +++ b/cli/windows/build.xml @@ -23,7 +23,7 @@ - + @@ -32,7 +32,7 @@ - + @@ -40,11 +40,10 @@ - - + + - diff --git a/cli/windows/build.proj b/cli/windows/dirs.proj similarity index 63% rename from cli/windows/build.proj rename to cli/windows/dirs.proj index 9d4e4035e57..c498d1a49d5 100644 --- a/cli/windows/build.proj +++ b/cli/windows/dirs.proj @@ -2,10 +2,12 @@ + - + + diff --git a/cli/windows/pom.xml b/cli/windows/pom.xml index 724d54ac7ba..4460cb4cca3 100644 --- a/cli/windows/pom.xml +++ b/cli/windows/pom.xml @@ -40,37 +40,8 @@ maven-antrun-plugin - run-ant-installer-target - package - - run - - - - - - - - - - - - - run-ant-deploy-target - deploy - - run - - - - - - - - - - - + pack-nupkg + none @@ -83,40 +54,88 @@ ch.cyberduck Cyberduck.Core - net472 - dll + nupkg ${project.version} ch.cyberduck Cyberduck.Core.Native - net472 - dll + nupkg ${project.version} runtime ch.cyberduck Cyberduck.Protocols - net472 - dll + nupkg ${project.version} ch.cyberduck Cyberduck.Cryptomator - net472 - dll + nupkg ${project.version} ch.cyberduck Cyberduck.Cli - net472 - dll + nupkg ${project.version} + + installer + + + env.JENKINS_HOME + + + Windows + + + + + + maven-antrun-plugin + + + run-ant-installer-target + package + + run + + + + + + + + + + + + + run-ant-deploy-target + deploy + + run + + + + + + + + + + + + + + + + + - + \ No newline at end of file diff --git a/core/dll/Cyberduck.Core.msbuildproj b/core/dll/Cyberduck.Core.ikvmproj similarity index 61% rename from core/dll/Cyberduck.Core.msbuildproj rename to core/dll/Cyberduck.Core.ikvmproj index 39d59a7e8fb..936ec724fc1 100644 --- a/core/dll/Cyberduck.Core.msbuildproj +++ b/core/dll/Cyberduck.Core.ikvmproj @@ -4,10 +4,11 @@ net472;net8.0 - - - + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/core/dll/Directory.Build.props b/core/dll/Directory.Build.props index 415d5cdf9b5..08574032576 100644 --- a/core/dll/Directory.Build.props +++ b/core/dll/Directory.Build.props @@ -15,10 +15,10 @@ - - $(MSBuildThisFileDirectory) - + + $(MSBuildThisFileDirectory) + - + - + \ No newline at end of file diff --git a/core/dll/build.xml b/core/dll/build.xml index c49487124ed..3d0f208acbb 100644 --- a/core/dll/build.xml +++ b/core/dll/build.xml @@ -24,13 +24,21 @@ - + - - + + + + + + + + + + diff --git a/core/dll/pom.xml b/core/dll/pom.xml index 5fce1a80260..f73ced8b472 100644 --- a/core/dll/pom.xml +++ b/core/dll/pom.xml @@ -50,22 +50,16 @@ build-helper-maven-plugin - install-dll - verify + install-nupkg + package attach-artifact - net472 - dll - ${project.build.directory}/net472/Cyberduck.Core.dll - - - net8.0 - dll - ${project.build.directory}/net8.0/Cyberduck.Core.dll + nupkg + ${project.build.directory}/Cyberduck.Core.${project.version}.nupkg @@ -103,19 +97,11 @@ runtime - com.microsoft - vcruntime140 - x64 - dll - 14.44.35211 - runtime - - - com.microsoft - vcruntime140_1 - x64 + net.java.dev.jna + jnidispatch + aarch64 dll - 14.44.35211 + ${jna-version} runtime @@ -130,4 +116,4 @@ provided - \ No newline at end of file + diff --git a/core/i18n-gen/i18n-gen.csproj b/core/i18n-gen/i18n-gen.csproj index c6589fd79fb..48ab06f0c85 100644 --- a/core/i18n-gen/i18n-gen.csproj +++ b/core/i18n-gen/i18n-gen.csproj @@ -5,6 +5,7 @@ 9.0 i18n_gen True + false diff --git a/core/i18n-gen/i18n-gen.targets b/core/i18n-gen/i18n-gen.targets index ff9b37d2bfa..07430771edb 100644 --- a/core/i18n-gen/i18n-gen.targets +++ b/core/i18n-gen/i18n-gen.targets @@ -1,18 +1,19 @@  - $(CyberduckDir)core\target\netstandard2.0\i18n-gen.dll + $(CyberduckDir)core\target\i18n-gen.dll + AssemblyFile="$(i18n_gen_dll)" + TaskFactory="TaskHostFactory" /> + AssemblyFile="$(i18n_gen_dll)" + TaskFactory="TaskHostFactory" /> - + + OutputItemType="Analyzer" + ReferenceOutputAssembly="False" + SetPlatform="Platform=" /> - + \ No newline at end of file diff --git a/core/native/Directory.Build.props b/core/native/Directory.Build.props index 415d5cdf9b5..08574032576 100644 --- a/core/native/Directory.Build.props +++ b/core/native/Directory.Build.props @@ -15,10 +15,10 @@ - - $(MSBuildThisFileDirectory) - + + $(MSBuildThisFileDirectory) + - + - + \ No newline at end of file diff --git a/core/native/build.xml b/core/native/build.xml index 914ac71531e..1eca549a17f 100644 --- a/core/native/build.xml +++ b/core/native/build.xml @@ -21,27 +21,34 @@ --> - + - - + + - - + + + + + + + + - + + - + \ No newline at end of file diff --git a/core/native/build.proj b/core/native/dirs.proj similarity index 74% rename from core/native/build.proj rename to core/native/dirs.proj index 0f8972db81a..9ee449db01a 100644 --- a/core/native/build.proj +++ b/core/native/dirs.proj @@ -2,6 +2,7 @@ + - + \ No newline at end of file diff --git a/core/native/pom.xml b/core/native/pom.xml index a9289ab75ea..420ccb6c18e 100644 --- a/core/native/pom.xml +++ b/core/native/pom.xml @@ -32,7 +32,7 @@ build-helper-maven-plugin - install-dll + install-nupkg package attach-artifact @@ -40,14 +40,8 @@ - net472 - dll - ${project.build.directory}/net472/Cyberduck.Core.Native.dll - - - net8.0 - dll - ${project.build.directory}/net8.0-windows10.0.22621.0/Cyberduck.Core.Native.dll + nupkg + ${project.build.directory}/Cyberduck.Core.Native.${project.version}.nupkg @@ -83,15 +77,7 @@ ch.cyberduck Cyberduck.Core - net472 - dll - ${project.version} - - - ch.cyberduck - Cyberduck.Core - net8.0 - dll + nupkg ${project.version} @@ -108,4 +94,4 @@ test - + \ No newline at end of file diff --git a/core/native/refresh/Directory.Build.props b/core/native/refresh/Directory.Build.props index 415d5cdf9b5..05a101d4b82 100644 --- a/core/native/refresh/Directory.Build.props +++ b/core/native/refresh/Directory.Build.props @@ -15,10 +15,11 @@ - - $(MSBuildThisFileDirectory) - + + Cyberduck.Core.Refresh + $(MSBuildThisFileDirectory) + - + - + \ No newline at end of file diff --git a/core/native/refresh/build.xml b/core/native/refresh/build.xml index 90d718df519..8e018ae69c5 100644 --- a/core/native/refresh/build.xml +++ b/core/native/refresh/build.xml @@ -24,18 +24,24 @@ - + - + - + + + + + + + diff --git a/core/native/refresh/dirs.proj b/core/native/refresh/dirs.proj new file mode 100644 index 00000000000..14980442909 --- /dev/null +++ b/core/native/refresh/dirs.proj @@ -0,0 +1,6 @@ + + + + + + diff --git a/core/native/refresh/pom.xml b/core/native/refresh/pom.xml index 210a2016273..3db6bc66772 100644 --- a/core/native/refresh/pom.xml +++ b/core/native/refresh/pom.xml @@ -28,7 +28,7 @@ build-helper-maven-plugin - install-dll + install-nupkg package attach-artifact @@ -36,14 +36,8 @@ - net472 - dll - ${project.build.directory}/net472/Cyberduck.Core.Refresh.dll - - - net8.0 - dll - ${project.build.directory}/net8.0-windows10.0.22621.0/Cyberduck.Core.Refresh.dll + nupkg + ${project.build.directory}/Cyberduck.Core.Refresh.${project.version}.nupkg @@ -59,15 +53,7 @@ ch.cyberduck Cyberduck.Core.Native - net472 - dll - ${project.version} - - - ch.cyberduck - Cyberduck.Core.Native - net8.0 - dll + nupkg ${project.version} diff --git a/core/native/refresh/src/main/csharp/Cyberduck.Core.Refresh.csproj b/core/native/refresh/src/main/csharp/Cyberduck.Core.Refresh.csproj index b2429b5cd3a..b93bb79f1fc 100644 --- a/core/native/refresh/src/main/csharp/Cyberduck.Core.Refresh.csproj +++ b/core/native/refresh/src/main/csharp/Cyberduck.Core.Refresh.csproj @@ -18,7 +18,7 @@ net472;net8.0-windows10.0.22621.0 10.0.14393.0 - x64 + x64;arm64 12.0 true true @@ -31,7 +31,6 @@ - all runtime; build; native; contentfiles; analyzers; buildtransitive @@ -41,10 +40,13 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - + + + + diff --git a/core/native/refresh/src/main/nuget/Cyberduck.Core.Refresh.nuspec b/core/native/refresh/src/main/nuget/Cyberduck.Core.Refresh.nuspec new file mode 100644 index 00000000000..67229ab9bd5 --- /dev/null +++ b/core/native/refresh/src/main/nuget/Cyberduck.Core.Refresh.nuspec @@ -0,0 +1,34 @@ + + + + $id$ + $version$ + $description$ + $authors$ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/native/refresh/src/main/nuget/build/net8.0-windows10.0.22621.0/Cyberduck.Core.Refresh.targets b/core/native/refresh/src/main/nuget/build/net8.0-windows10.0.22621.0/Cyberduck.Core.Refresh.targets new file mode 100644 index 00000000000..a6c412e656a --- /dev/null +++ b/core/native/refresh/src/main/nuget/build/net8.0-windows10.0.22621.0/Cyberduck.Core.Refresh.targets @@ -0,0 +1,7 @@ + + + + $(MSBuildThisFileDirectory)../../lib/net8.0-windows10.0.22621.0/win-$(Platform)/Cyberduck.Core.Refresh.dll + + + \ No newline at end of file diff --git a/core/native/refresh/src/main/nuget/nuget.proj b/core/native/refresh/src/main/nuget/nuget.proj new file mode 100644 index 00000000000..b67ea958fcf --- /dev/null +++ b/core/native/refresh/src/main/nuget/nuget.proj @@ -0,0 +1,8 @@ + + + netstandard2.0 + true + false + Cyberduck.Core.Refresh.nuspec + + diff --git a/core/native/src/main/Cyberduck.Core.Native.nuspec b/core/native/src/main/Cyberduck.Core.Native.nuspec new file mode 100644 index 00000000000..0a672abe1e8 --- /dev/null +++ b/core/native/src/main/Cyberduck.Core.Native.nuspec @@ -0,0 +1,34 @@ + + + + $id$ + $version$ + $description$ + $authors$ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/native/src/main/Directory.Build.props b/core/native/src/main/Directory.Build.props new file mode 100644 index 00000000000..f09eb05b706 --- /dev/null +++ b/core/native/src/main/Directory.Build.props @@ -0,0 +1,20 @@ + + + + + + + \ No newline at end of file diff --git a/core/native/src/main/build/net8.0-windows10.0.22621.0/Cyberduck.Core.Native.targets b/core/native/src/main/build/net8.0-windows10.0.22621.0/Cyberduck.Core.Native.targets new file mode 100644 index 00000000000..bc0498253ee --- /dev/null +++ b/core/native/src/main/build/net8.0-windows10.0.22621.0/Cyberduck.Core.Native.targets @@ -0,0 +1,7 @@ + + + + $(MSBuildThisFileDirectory)../../lib/net8.0-windows10.0.22621.0/win-$(Platform)/Cyberduck.Core.Native.dll + + + \ No newline at end of file diff --git a/core/native/src/main/nuget.proj b/core/native/src/main/nuget.proj new file mode 100644 index 00000000000..6b158b5b195 --- /dev/null +++ b/core/native/src/main/nuget.proj @@ -0,0 +1,8 @@ + + + netstandard2.0 + true + false + Cyberduck.Core.Native.nuspec + + diff --git a/core/src/main/csharp/Cyberduck.Core.Native.csproj b/core/src/main/csharp/Cyberduck.Core.Native.csproj index dcc4bd19b4e..68c217be6fa 100644 --- a/core/src/main/csharp/Cyberduck.Core.Native.csproj +++ b/core/src/main/csharp/Cyberduck.Core.Native.csproj @@ -18,7 +18,7 @@ net472;net8.0-windows10.0.22621.0 10.0.14393.0 - x64 + x64;arm64 true @@ -27,7 +27,6 @@ - all @@ -40,13 +39,13 @@ - + - + @@ -76,4 +75,4 @@ Ch.Cyberduck.Properties - \ No newline at end of file + diff --git a/core/src/main/csharp/Directory.Build.props b/core/src/main/csharp/Directory.Build.props index 4a975e0eebb..64e75b0a913 100644 --- a/core/src/main/csharp/Directory.Build.props +++ b/core/src/main/csharp/Directory.Build.props @@ -16,9 +16,10 @@ + Cyberduck.Core.Native <_CoreBasePath>$([MSBuild]::GetDirectoryNameOfFileAbove('$(MSBuildThisFileDirectory)../', 'Directory.Build.props'))/ - - + + \ No newline at end of file diff --git a/core/src/main/csharp/ch/cyberduck/core/preferences/ApplicationPreferences.cs b/core/src/main/csharp/ch/cyberduck/core/preferences/ApplicationPreferences.cs index 2efd5499a34..dd35f30991f 100644 --- a/core/src/main/csharp/ch/cyberduck/core/preferences/ApplicationPreferences.cs +++ b/core/src/main/csharp/ch/cyberduck/core/preferences/ApplicationPreferences.cs @@ -45,8 +45,6 @@ public ApplicationPreferences(Locales locales, IPropertyStoreFactory propertySto this.locales = locales; SetEnvironmentInfo(); this.propertyStore = propertyStore.New(); - - JavaSystem.setProperty("jna.boot.library.path", AppContext.BaseDirectory); } public override List applicationLocales() => locales.applicationLocales(); @@ -147,6 +145,8 @@ protected override void setDefaults() { base.setDefaults(); + JavaSystem.setProperty("jna.boot.library.path", AppContext.BaseDirectory); + this.setDefault("os.version", Environment.OSVersion.Version.ToString()); this.setDefault("oauth.handler.scheme", diff --git a/cryptomator/dll/Cyberduck.Cryptomator.msbuildproj b/cryptomator/dll/Cyberduck.Cryptomator.ikvmproj similarity index 64% rename from cryptomator/dll/Cyberduck.Cryptomator.msbuildproj rename to cryptomator/dll/Cyberduck.Cryptomator.ikvmproj index 8622a7d14bd..fed598227d2 100644 --- a/cryptomator/dll/Cyberduck.Cryptomator.msbuildproj +++ b/cryptomator/dll/Cyberduck.Cryptomator.ikvmproj @@ -1,16 +1,15 @@ - net472;net8.0 - - - + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + - \ No newline at end of file diff --git a/cryptomator/dll/build.xml b/cryptomator/dll/build.xml index f5d9e5435cf..da5be489dd3 100644 --- a/cryptomator/dll/build.xml +++ b/cryptomator/dll/build.xml @@ -15,18 +15,26 @@ --> - + - + - - + + - + + + + + + + + + \ No newline at end of file diff --git a/cryptomator/dll/pom.xml b/cryptomator/dll/pom.xml index b4a3355c92d..1f316460ef1 100644 --- a/cryptomator/dll/pom.xml +++ b/cryptomator/dll/pom.xml @@ -62,7 +62,7 @@ build-helper-maven-plugin - install-dll + install-nupkg verify attach-artifact @@ -70,14 +70,8 @@ - net472 - dll - ${project.build.directory}/net472/Cyberduck.Cryptomator.dll - - - net8.0 - dll - ${project.build.directory}/net8.0/Cyberduck.Cryptomator.dll + nupkg + ${project.build.directory}/Cyberduck.Cryptomator.${project.version}.nupkg @@ -96,15 +90,7 @@ ch.cyberduck Cyberduck.Core - net472 - dll - ${project.version} - - - ch.cyberduck - Cyberduck.Core - net8.0 - dll + nupkg ${project.version} diff --git a/global.json b/global.json index f121e3673fa..e70bdcde325 100644 --- a/global.json +++ b/global.json @@ -2,6 +2,7 @@ "msbuild-sdks": { "IKVM.NET.Sdk": "8.13.3", "Microsoft.Build.NoTargets": "3.7.56", - "Microsoft.Build.Traversal": "4.1.0" + "Microsoft.Build.Traversal": "4.1.0", + "WixToolset.Sdk": "5.0.2" } } diff --git a/protocols/dll/Cyberduck.Protocols.msbuildproj b/importer/dll/Cyberduck.Importer.ikvmproj similarity index 63% rename from protocols/dll/Cyberduck.Protocols.msbuildproj rename to importer/dll/Cyberduck.Importer.ikvmproj index 8622a7d14bd..4ce368a9902 100644 --- a/protocols/dll/Cyberduck.Protocols.msbuildproj +++ b/importer/dll/Cyberduck.Importer.ikvmproj @@ -1,16 +1,15 @@ - net472;net8.0 - - - - + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + - \ No newline at end of file diff --git a/importer/dll/build.xml b/importer/dll/build.xml index 547ea69d8d0..2a108355914 100644 --- a/importer/dll/build.xml +++ b/importer/dll/build.xml @@ -24,13 +24,21 @@ - + - - + + + + + + + + + + diff --git a/importer/dll/pom.xml b/importer/dll/pom.xml index 08e7bdc6937..c00c5c36edf 100644 --- a/importer/dll/pom.xml +++ b/importer/dll/pom.xml @@ -47,7 +47,7 @@ build-helper-maven-plugin - install-dll + install-nupkg verify attach-artifact @@ -55,14 +55,8 @@ - net472 - dll - ${project.build.directory}/net472/Cyberduck.Importer.dll - - - net8.0 - dll - ${project.build.directory}/net8.0/Cyberduck.Importer.dll + nupkg + ${project.build.directory}/Cyberduck.Importer.${project.version}.nupkg @@ -81,15 +75,7 @@ ch.cyberduck Cyberduck.Core - net472 - dll - ${project.version} - - - ch.cyberduck - Cyberduck.Core - net8.0 - dll + nupkg ${project.version} diff --git a/nuget.config b/nuget.config index 2a93883a26e..dd70b0b80a4 100644 --- a/nuget.config +++ b/nuget.config @@ -7,13 +7,13 @@ + + + - - - diff --git a/pom.xml b/pom.xml index 97c7ae22a7c..ad7116e63cb 100644 --- a/pom.xml +++ b/pom.xml @@ -93,6 +93,7 @@ 4.5.0 8u312b07 0.10.0 + 2.4.2 ch.cyberduck.test.IntegrationTest @@ -639,35 +640,35 @@ ${project.build.directory}/lib - net472,net8.0 + net472,net8.0,net8.0-x64,net8.0-arm64,aarch64,arm64,x86_64 dll true true - copy-dependencies-dll-net472-target + copy-dependencies-dll-x64-target generate-sources copy-dependencies - ${project.build.directory}/lib/net472 - net472 + ${project.build.directory}/lib/x64 + x86_64 dll true true - copy-dependencies-dll-net8.0-target + copy-dependencies-dll-arm64-target generate-sources copy-dependencies - ${project.build.directory}/lib/net8.0 - net8.0 + ${project.build.directory}/lib/arm64 + aarch64,arm64 dll true true @@ -1068,6 +1069,18 @@ maven-dependency-plugin + + generate-nupkgs + generate-sources + + resolve + + + ${project.build.directory}/.nuget/packages.list + true + nupkg + + copy-dependencies-jar-target @@ -1078,9 +1091,57 @@ + + maven-antrun-plugin + + + unpack-nupkg + process-sources + + run + + + + + + + + + + run-msbuild-props-target + generate-sources + + run + + + + + + + + + + + + + + pack-nupkg + package + + run + + + + + + + + + + - \ No newline at end of file + diff --git a/importer/dll/Cyberduck.Importer.msbuildproj b/protocols/dll/Cyberduck.Protocols.ikvmproj similarity index 62% rename from importer/dll/Cyberduck.Importer.msbuildproj rename to protocols/dll/Cyberduck.Protocols.ikvmproj index 8622a7d14bd..9dfd61f01d3 100644 --- a/importer/dll/Cyberduck.Importer.msbuildproj +++ b/protocols/dll/Cyberduck.Protocols.ikvmproj @@ -1,16 +1,15 @@ - net472;net8.0 - - - + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + - - \ No newline at end of file + diff --git a/protocols/dll/build.xml b/protocols/dll/build.xml index 296b9012ad0..4cdf34143f5 100644 --- a/protocols/dll/build.xml +++ b/protocols/dll/build.xml @@ -21,17 +21,25 @@ --> - + - + - - + + - + + + + + + + + + \ No newline at end of file diff --git a/protocols/dll/pom.xml b/protocols/dll/pom.xml index 1bfb159fb21..c3b572391ad 100644 --- a/protocols/dll/pom.xml +++ b/protocols/dll/pom.xml @@ -47,7 +47,7 @@ build-helper-maven-plugin - install-dll + install-nupkg verify attach-artifact @@ -55,14 +55,8 @@ - net472 - dll - ${project.build.directory}/net472/Cyberduck.Protocols.dll - - - net8.0 - dll - ${project.build.directory}/net8.0/Cyberduck.Protocols.dll + nupkg + ${project.build.directory}/Cyberduck.Protocols.${project.version}.nupkg @@ -81,15 +75,7 @@ ch.cyberduck Cyberduck.Core - net472 - dll - ${project.version} - - - ch.cyberduck - Cyberduck.Core - net8.0 - dll + nupkg ${project.version} diff --git a/setup/wix/banner.png b/setup/wix/banner.png deleted file mode 100644 index d9d35f25ff5..00000000000 Binary files a/setup/wix/banner.png and /dev/null differ diff --git a/setup/wix/header.bmp b/setup/wix/header.bmp deleted file mode 100644 index 97acc227567..00000000000 Binary files a/setup/wix/header.bmp and /dev/null differ diff --git a/setup/wix/side.png b/setup/wix/side.png new file mode 100644 index 00000000000..d05dca0ca5e Binary files /dev/null and b/setup/wix/side.png differ diff --git a/setup/wix/welcome.bmp b/setup/wix/welcome.bmp deleted file mode 100644 index 9a772f3bff0..00000000000 Binary files a/setup/wix/welcome.bmp and /dev/null differ diff --git a/src/main/msbuild/Cyberduck.Artifacts.targets b/src/main/msbuild/Cyberduck.Artifacts.targets new file mode 100644 index 00000000000..e172e0ef3e6 --- /dev/null +++ b/src/main/msbuild/Cyberduck.Artifacts.targets @@ -0,0 +1,15 @@ + + + + $(BaseOutputPath) + + + false + + + + $(BaseOutputPath) + $(BaseOutputPath)$(Platform)\ + + + \ No newline at end of file diff --git a/src/main/msbuild/Cyberduck.Common.props b/src/main/msbuild/Cyberduck.Common.props new file mode 100644 index 00000000000..114a904e439 --- /dev/null +++ b/src/main/msbuild/Cyberduck.Common.props @@ -0,0 +1,56 @@ + + + + iterate GmbH + Libre FTP, SFTP, WebDAV, S3 and OpenStack Swift browser for Mac and Windows. + + + + $(ModulePath)target\ + $(TargetBuildDir)lib\ + $(TargetBuildDir)generated\msbuild\ + + false + $(TargetBuildDir) + + $(ArtifactsPath)obj\$(MSBuildProjectName)\ + $(ArtifactsPath) + + false + 12 + + + $(TargetBuildDir).nuget\packages\;$(RestoreAdditionalProjectFallbackFolders) + + + + + + + + + + + + false + + + true + + + + x64 + + + + diff --git a/src/main/msbuild/Cyberduck.Common.targets b/src/main/msbuild/Cyberduck.Common.targets new file mode 100644 index 00000000000..eb4ced02eea --- /dev/null +++ b/src/main/msbuild/Cyberduck.Common.targets @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/main/msbuild/Cyberduck.Cpp.props b/src/main/msbuild/Cyberduck.Cpp.props deleted file mode 100644 index 96185344ba5..00000000000 --- a/src/main/msbuild/Cyberduck.Cpp.props +++ /dev/null @@ -1,6 +0,0 @@ - - - $(OutputPath) - $(IntermediateOutputPath) - - \ No newline at end of file diff --git a/src/main/msbuild/Cyberduck.Default.props b/src/main/msbuild/Cyberduck.Default.props new file mode 100644 index 00000000000..c3a6698c975 --- /dev/null +++ b/src/main/msbuild/Cyberduck.Default.props @@ -0,0 +1,26 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/msbuild/Cyberduck.Default.targets b/src/main/msbuild/Cyberduck.Default.targets new file mode 100644 index 00000000000..3119eecee41 --- /dev/null +++ b/src/main/msbuild/Cyberduck.Default.targets @@ -0,0 +1,26 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/msbuild/Cyberduck.Java.props b/src/main/msbuild/Cyberduck.Java.props deleted file mode 100644 index 9c3429b2c88..00000000000 --- a/src/main/msbuild/Cyberduck.Java.props +++ /dev/null @@ -1,7 +0,0 @@ - - - <_DirectoryBuildJavaPropsFile>$([MSBuild]::GetPathOfFileAbove('Directory.Build.Java.props', '$(MSBuildProjectDirectory)')) - - - - \ No newline at end of file diff --git a/src/main/msbuild/Cyberduck.MSVC.Toolset.props b/src/main/msbuild/Cyberduck.MSVC.Toolset.props new file mode 100644 index 00000000000..707c83f52ae --- /dev/null +++ b/src/main/msbuild/Cyberduck.MSVC.Toolset.props @@ -0,0 +1,62 @@ + + + + + + <_LatestWindowsTargetPlatformVersion>$([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion(Windows, 10.0)) + $([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformSDKLocation(Windows, 10.0)) + $(WindowsSdkDir)bin\$(_LatestWindowsTargetPlatformVersion)\x86\ + $(WindowsSdkDir)bin\$(_LatestWindowsTargetPlatformVersion)\x64\ + $(WindowsSdkDir)bin\$(_LatestWindowsTargetPlatformVersion)\arm64\ + + + + + + + $(VsInstallRoot)\ + $(VSInstallDir)Common7\IDE\VC\ + + + + + + + Native64Bit + + + + NativeARM64 + + + + Native32Bit + + + + + $(VCToolArchitecture) + + + + $(WindowsSDK_ExecutablePath_x64);$(WindowsSDK_ExecutablePath_x86) + + + + $(WindowsSDK_ExecutablePath_ARM64);$(WindowsSDK_ExecutablePath_x86) + + + + $(WindowsSDK_ExecutablePath_x86) + + + + + + $(WindowsSDK_ExecutablePath);$(MSBuild_ExecutablePath);$(PATH); + + + \ No newline at end of file diff --git a/src/main/msbuild/Cyberduck.Net.props b/src/main/msbuild/Cyberduck.Net.props new file mode 100644 index 00000000000..4823952dcd0 --- /dev/null +++ b/src/main/msbuild/Cyberduck.Net.props @@ -0,0 +1,18 @@ + + + + $(BuildSupportDir)Cyberduck.Artifacts.targets;$(BeforeMicrosoftNETSdkTargets) + + + + $(DefaultItemExcludes);**/*net472* + + + $(DefaultItemExcludes);**/*net8.0* + + + + + + + \ No newline at end of file diff --git a/src/main/msbuild/Cyberduck.Net.targets b/src/main/msbuild/Cyberduck.Net.targets new file mode 100644 index 00000000000..192098411a8 --- /dev/null +++ b/src/main/msbuild/Cyberduck.Net.targets @@ -0,0 +1,46 @@ + + + + $(LibDir);$(AssemblySearchPaths) + + + + net472 + net8.0 + + + $(LibDir)$(LibDirFramework)\;$(AssemblySearchPaths) + $(LibDir)$(LibDirFramework)\$(Platform)\;$(AssemblySearchpaths) + + + + + win-x86 + win-x64 + + + + + + + + + + + + + $([MSBuild]::VersionLessThanOrEquals('$(NETCoreSdkVersion)', '6.0.301')) + $([MSBuild]::VersionGreaterThanOrEquals('$(NETCoreSdkVersion)', '6.0.401')) + SDKFix_RemoveDuplicateAnalyzers;$(CoreCompileDependsOn) + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/msbuild/Cyberduck.NuGet.targets b/src/main/msbuild/Cyberduck.NuGet.targets new file mode 100644 index 00000000000..4a7531a769e --- /dev/null +++ b/src/main/msbuild/Cyberduck.NuGet.targets @@ -0,0 +1,22 @@ + + + + $(GenerateNuspecDependsOn);CyberduckNuspecProperties + + + + + + $(PackageVersions); + id=$(PackageId); + version=$(PackageVersion); + authors=$(Authors); + company=$(Company); + description=$(Description); + buildDir=$(TargetBuildDir); + $(NuspecProperties) + + + + + \ No newline at end of file diff --git a/src/main/msbuild/Cyberduck.References.props b/src/main/msbuild/Cyberduck.References.props new file mode 100644 index 00000000000..d4ca367ce98 --- /dev/null +++ b/src/main/msbuild/Cyberduck.References.props @@ -0,0 +1,52 @@ + + + + + $(CyberduckDir)bonjour\dll\Cyberduck.Bonjour.ikvmproj + + + $(CyberduckDir)bonjour\src\main\csharp\Cyberduck.Bonjour.Native.csproj + + + $(CyberduckDir)cli\dll\Cyberduck.Cli.ikvmproj + + + $(CyberduckDir)core\dll\Cyberduck.Core.ikvmproj + + + $(CyberduckDir)core\src\main\csharp\Cyberduck.Core.Native.csproj + + + $(CyberduckDir)core\native\refresh\src\main\csharp\Cyberduck.Core.Refresh.csproj + + + $(CyberduckDir)cryptomator\dll\Cyberduck.Cryptomator.ikvmproj + + + $(CyberduckDir)importer\dll\Cyberduck.Importer.ikvmproj + + + $(CyberduckDir)protocols\dll\Cyberduck.Protocols.ikvmproj + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/msbuild/Cyberduck.Sign.targets b/src/main/msbuild/Cyberduck.Sign.targets new file mode 100644 index 00000000000..d457d7f0dae --- /dev/null +++ b/src/main/msbuild/Cyberduck.Sign.targets @@ -0,0 +1,41 @@ + + + + <_SignToolArgsTarget Condition="'$(_SignToolArgsTarget)'=='' And '$(SignTool)'=='cng'">_SignToolArgsCNG + <_SignToolArgsTarget Condition="'$(_SignToolArgsTarget)'==''">_SignToolArgsCertificateStore + $(_SignToolArgsTarget);SignToolExecutableName + + + + + SignTool.exe + + + + + + + + + sign /d "Cyberduck" /fd sha256 /tr "http://timestamp.acs.microsoft.com" /td "sha256" /a + + + + + + + "$(SignToolExecutableName)" $(SignToolArgsBase) + + + + + $(SignToolArgsBase) /sm /n "iterate GmbH" + + + + + $(SignToolArgsBase) /f "$(CyberduckDir)setup\cert\certificate.crt" /csp "$(SignToolCSP)" /kc "$(SignToolKC)" + + + + \ No newline at end of file diff --git a/src/main/msbuild/Cyberduck.java.After.targets b/src/main/msbuild/Cyberduck.java.After.targets new file mode 100644 index 00000000000..d93c56daf2b --- /dev/null +++ b/src/main/msbuild/Cyberduck.java.After.targets @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/Directory.Build.Java.props b/src/main/msbuild/Cyberduck.java.props similarity index 67% rename from Directory.Build.Java.props rename to src/main/msbuild/Cyberduck.java.props index daf82155590..a75866dc4bf 100644 --- a/Directory.Build.Java.props +++ b/src/main/msbuild/Cyberduck.java.props @@ -2,6 +2,7 @@ ikvm.runtime.AppDomainAssemblyClassLoader + true false 1.8 @@ -17,6 +18,11 @@ IKVM0111: Emitted NoClassDefFoundError --> IKVM0100;IKVM0101;IKVM0105;IKVM0111;$(NoWarn) + $(MSBuildThisFileDirectory)Cyberduck.java.After.targets;$(AfterMicrosoftNETSdkTargets) + + + + \ No newline at end of file diff --git a/src/main/msbuild/Cyberduck.wapproj.props b/src/main/msbuild/Cyberduck.wapproj.props new file mode 100644 index 00000000000..b1d2c94e1e9 --- /dev/null +++ b/src/main/msbuild/Cyberduck.wapproj.props @@ -0,0 +1,21 @@ + + + + + $(BaseOutputPath) + $(OutputPath)$(Configuration)\ + + \ No newline at end of file diff --git a/src/main/msbuild/Cyberduck.wxs.targets b/src/main/msbuild/Cyberduck.wxs.targets new file mode 100644 index 00000000000..6e71f5321cf --- /dev/null +++ b/src/main/msbuild/Cyberduck.wxs.targets @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + <_SignPayload Include="@(BindPathPayloadExecutable->WithoutMetadataValue('Sign', '0'))" /> + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/msbuild/NuGet-Unpack.ps1 b/src/main/msbuild/NuGet-Unpack.ps1 new file mode 100644 index 00000000000..d4756ce1326 --- /dev/null +++ b/src/main/msbuild/NuGet-Unpack.ps1 @@ -0,0 +1,32 @@ +[CmdletBinding()] +param ( + # Source path, where all .nupkgs are stored. + [Parameter()] + [string] + $PackagesListPath +) + +if (-not (Test-Path -Path $PackagesListPath -PathType Leaf)) { + return; +} + +$NugetParent = [System.IO.Path]::GetDirectoryName($PackagesListPath) +$PackagesPath = "$NugetParent\packages" + +foreach ($line in Get-Content $PackagesListPath) { + $line = $line.Trim() + if ($line -notmatch "\s*(?[^:]+):(?[^:]+):(?[^:]+):(?[^:]+):(?[^:]+):(?.*)$") { + continue + } + + $artifact = $Matches["artifact"] + $version = $Matches["version"] + + $NupkgFile = $Matches["path"] + $PackageName = [System.IO.Path]::GetFileNameWithoutExtension((tar.exe tf "$NupkgFile" '*.nuspec')) + $TargetDirectory = "$PackagesPath\$PackageName\$version" + New-Item -Force -Type Directory $TargetDirectory + Get-ChildItem $TargetDirectory | Remove-Item -Recurse -Force + tar.exe xf $NupkgFile -C $TargetDirectory + Set-Content "$TargetDirectory\.nupkg.metadata" '{}' +} diff --git a/src/template/msbuild/Version.props b/src/template/msbuild/Version.props index 664c70296e2..8d577106637 100644 --- a/src/template/msbuild/Version.props +++ b/src/template/msbuild/Version.props @@ -1,11 +1,13 @@ - - + ${version} ${fullversion} - ${version}.${revision} - $(AssemblyVersion) + ${revision} + 0 + $(AssemblyVersion).$(Revision) + + $(InformationalVersion) diff --git a/windows/Directory.Build.props b/windows/Directory.Build.props index 423651ecc5d..a3586910509 100644 --- a/windows/Directory.Build.props +++ b/windows/Directory.Build.props @@ -17,7 +17,6 @@ $(MSBuildThisFileDirectory) - false diff --git a/windows/build.xml b/windows/build.xml index 8580638486f..10c76114cb2 100755 --- a/windows/build.xml +++ b/windows/build.xml @@ -30,13 +30,13 @@ - + - + @@ -49,10 +49,11 @@ + - + @@ -69,7 +70,7 @@ - + diff --git a/windows/build.proj b/windows/dirs.proj similarity index 84% rename from windows/build.proj rename to windows/dirs.proj index a8e703d6492..163805f076f 100644 --- a/windows/build.proj +++ b/windows/dirs.proj @@ -15,9 +15,8 @@ - - - + + diff --git a/windows/pom.xml b/windows/pom.xml index 73b263347cb..683365da58f 100644 --- a/windows/pom.xml +++ b/windows/pom.xml @@ -76,6 +76,10 @@ + + pack-nupkg + none + @@ -84,57 +88,49 @@ ch.cyberduck Cyberduck.Core - net472 - dll + nupkg ${project.version} ch.cyberduck Cyberduck.Core.Native - net472 - dll + nupkg ${project.version} ch.cyberduck Cyberduck.Core.Refresh - net472 - dll + nupkg ${project.version} ch.cyberduck Cyberduck.Protocols - net472 - dll + nupkg ${project.version} ch.cyberduck Cyberduck.Bonjour - net472 - dll + nupkg ${project.version} ch.cyberduck Cyberduck.Bonjour.Native - net472 - dll + nupkg ${project.version} ch.cyberduck Cyberduck.Importer - net472 - dll + nupkg ${project.version} ch.cyberduck Cyberduck.Cryptomator - net472 - dll + nupkg ${project.version} diff --git a/windows/src/main/csharp/Cyberduck.csproj b/windows/src/main/csharp/Cyberduck.csproj index ce6364b2fe1..3c1ec3b6e2d 100644 --- a/windows/src/main/csharp/Cyberduck.csproj +++ b/windows/src/main/csharp/Cyberduck.csproj @@ -3,8 +3,8 @@ WinExe net472 - win-x64 x64 + win-x64 true true @@ -19,10 +19,10 @@ - - PreserveNewest - $(Filename)$(Extension) - + + + + @@ -90,4 +90,4 @@ - \ No newline at end of file + diff --git a/windows/src/main/package/Directory.Build.props b/windows/src/main/package/Directory.Build.props deleted file mode 100644 index 5a1f1658923..00000000000 --- a/windows/src/main/package/Directory.Build.props +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - $(OutputPath)$(Configuration)\ - - - diff --git a/windows/src/main/package/Package.appxmanifest.template b/windows/src/main/package/Package.appxmanifest.template index 64f5f87622f..df62797cef5 100644 --- a/windows/src/main/package/Package.appxmanifest.template +++ b/windows/src/main/package/Package.appxmanifest.template @@ -112,7 +112,7 @@ Cyberduck OAuth - diff --git a/windows/src/main/package/package.wapproj b/windows/src/main/package/package.wapproj index 6fb7d763dc6..f7add900a83 100644 --- a/windows/src/main/package/package.wapproj +++ b/windows/src/main/package/package.wapproj @@ -27,18 +27,12 @@ false - - False - - - True - false - + Package.appxmanifest Designer Package.appxmanifest.template @@ -57,16 +51,21 @@ Images\CyberduckAppx.150x150.png - - Profiles\%(Filename)%(Extension) - %(Filename)%(Extension) + + + + <_FilteredNonWapProjProjectOutput Update="@(_FilteredNonWapProjProjectOutput)" SourceProject="" Condition="'%(SourceProject)'!=''" /> + + + + @@ -81,13 +80,13 @@ - + - $(SignAppxPackageExeFullPath) + $(SignAppxPackageExeFullPath) - - + @@ -101,8 +100,8 @@ BeforeTargets="_GenerateAppxPackageFile" DependsOnTargets="_CollectSignAppxPackagePayload;SignToolArgs" Condition="'$(SignOutput)'=='true'"> - - + \ No newline at end of file diff --git a/windows/src/main/wix/Bootstrapper/Cyberduck Bootstrapper.wxs b/windows/src/main/wix/Bootstrapper/Cyberduck Bootstrapper.wxs index 4670c451b2e..c0ad20cb7c9 100644 --- a/windows/src/main/wix/Bootstrapper/Cyberduck Bootstrapper.wxs +++ b/windows/src/main/wix/Bootstrapper/Cyberduck Bootstrapper.wxs @@ -1,42 +1,29 @@ - - - - - - - - - + + + + + + + + - + - - - = v10.0 AND CBNumber >= 14393]]> - + - - - - + + + - + diff --git a/windows/src/main/wix/Bootstrapper/Cyberduck.Bootstrapper.wixproj b/windows/src/main/wix/Bootstrapper/Cyberduck.Bootstrapper.wixproj index 8054ac4edf8..34b5d25ccb6 100644 --- a/windows/src/main/wix/Bootstrapper/Cyberduck.Bootstrapper.wixproj +++ b/windows/src/main/wix/Bootstrapper/Cyberduck.Bootstrapper.wixproj @@ -1,76 +1,18 @@ - - - + - 3.14 - 00858CE5-437F-46BE-8A2E-519B552DBF7D - 2.0 - Cyberduck-Installer-$(Version) + Cyberduck-Installer-$(FileVersion) Bundle - CyberduckDir=$(CyberduckDir);SetupDir=$(SetupDir) + CyberduckDir=$(CyberduckDir);SetupDir=$(SetupDir);ProductVersion=$(FileVersion);$(DefineConstants) - - Debug;$(DefineConstants) - false - - - true - - - - - - - x64 - - - - - - - - - - - $(WixExtDir)\WixNetFxExtension.dll - WixNetFxExtension - - - $(WixExtDir)\WixBalExtension.dll - WixBalExtension - - - $(WixExtDir)\WixUtilExtension.dll - WixUtilExtension - + + + - - cyberduck-installer-msi - {65ab4ce3-5af4-411a-928c-7ffd250c6d85} - True - True - Binaries;Content;Satellites - INSTALLFOLDER - + - - - - - - - - diff --git a/windows/src/main/wix/Bootstrapper/InstallerTheme.xml b/windows/src/main/wix/Bootstrapper/InstallerTheme.xml index 0955c724043..000efa59c30 100644 --- a/windows/src/main/wix/Bootstrapper/InstallerTheme.xml +++ b/windows/src/main/wix/Bootstrapper/InstallerTheme.xml @@ -2,99 +2,135 @@ - - #(loc.Caption) - Segoe UI - Segoe UI - Segoe UI - Segoe UI - Segoe UI + + Segoe UI + Segoe UI + Segoe UI + Segoe UI - - #(loc.Title) - - #(loc.HelpHeader) - #(loc.HelpText) - - - - #(loc.Title) - - #(loc.InstallHeader) - #(loc.InstallMessage) - - #(loc.InstallLicenseLinkText) - #(loc.InstallVersion) - #(loc.InstallAcceptCheckbox) - - - - - - #(loc.Title) - - #(loc.OptionsHeader) - #(loc.OptionsLocationLabel) - - - Bonjour - - - - - - #(loc.Title) - - #(loc.FilesInUseHeader) - #(loc.FilesInUseLabel) - - - - - - - - - - #(loc.Title) - - #(loc.ProgressHeader) - #(loc.ProgressLabel) - #(loc.OverallProgressPackageText) - - - - - #(loc.Title) - - #(loc.ModifyHeader) - - - - - - #(loc.Title) - - #(loc.SuccessHeader) - #(loc.SuccessInstallHeader) - #(loc.SuccessRepairHeader) - #(loc.SuccessUninstallHeader) - - #(loc.SuccessRestartText) - - - - - #(loc.Title) - - #(loc.FailureHeader) - #(loc.FailureInstallHeader) - #(loc.FailureUninstallHeader) - #(loc.FailureRepairHeader) - #(loc.FailureHyperlinkLogText) - - #(loc.FailureRestartText) - - - - + + + + + + + + + + + + + + + + #(loc.InstallLicenseLinkText) + + #(loc.InstallAcceptCheckbox) + + + + + + + + + + + + + Bonjour + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #(loc.FailureHyperlinkLogText) + + + + + + + \ No newline at end of file diff --git a/windows/src/main/wix/Bundle/Cyberduck.Bundle.wixproj b/windows/src/main/wix/Bundle/Cyberduck.Bundle.wixproj index 3c7738ea6fb..fb9ece60f38 100644 --- a/windows/src/main/wix/Bundle/Cyberduck.Bundle.wixproj +++ b/windows/src/main/wix/Bundle/Cyberduck.Bundle.wixproj @@ -1,125 +1,13 @@ - - - + - 3.11 - 65ab4ce3-5af4-411a-928c-7ffd250c6d85 - 2.0 - Cyberduck-Installer-$(Version) - Package - x64 + Cyberduck-Installer-$(FileVersion) + x64 - CyberduckDir=$(CyberduckDir); - ProfilesDir=$(CyberduckDir)profiles\default\; - LicenseFile=$(CyberduckDir)i18n/src/main/resources/en.lproj/License.txt; - $(DefineConstants) - - - - Debug;$(DefineConstants) - false - - - true - - - - - - - WindowsVersionCustomAction - {fba5efe2-362b-4bad-a748-3248f79468ac} - True - True - Binaries;Content;Satellites - INSTALLFOLDER - - - - - $(WixExtDir)\WixNetFxExtension.dll - WixNetFxExtension - - - $(WixExtDir)\WixUtilExtension.dll - WixUtilExtension - - - - - - Profiles - PROFILES - ProfileComponents - var.ProfilesDir - - - - - x64 - - - - - - - - - - - - $(IntermediateOutputPath)Cyberduck\ - - CyberduckPublishDir=$(CyberduckPublishDir); - IkvmRuntimeDir=$(CyberduckPublishDir)\ikvm; + ProductVersion=$(FileVersion); $(DefineConstants) - - cyberduck - {04AFCFBB-97D5-44EA-B087-F0CFAEB51E30} - Publish - True - True - Binaries;Content;Satellites - INSTALLFOLDER - PublishDir=$(CyberduckPublishDir);RuntimeIdentifier=win-x64 - - - ikvm - INSTALLLOCATION - IkvmRuntime - var.IkvmRuntimeDir - + - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + diff --git a/windows/src/main/wix/Bundle/Cyberduck.wxs b/windows/src/main/wix/Bundle/Cyberduck.wxs index f6f6ab57ca4..fb6e8fa5a69 100644 --- a/windows/src/main/wix/Bundle/Cyberduck.wxs +++ b/windows/src/main/wix/Bundle/Cyberduck.wxs @@ -1,320 +1,208 @@ - - - - - + + - + - + - - = 14393]]> - - - - - - - - - - - - + - - + + - - + + + + + + + + + + + + - + - - + + + + Name="Cyberduck" + Advertise="yes" + Description="Libre FTP, SFTP, WebDAV, SMB, S3 and OpenStack Swift browser" + Directory="ApplicationProgramsFolder" + WorkingDirectory="INSTALLFOLDER" + Icon="icon.ico"> - - + + + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - + + + + + + + + + - - - - - - + + + + + + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - - - - - - - - - - - AUTOSTART=1 - - - \ No newline at end of file + + diff --git a/windows/src/main/wix/Directory.Build.props b/windows/src/main/wix/Directory.Build.props index e66b74af7aa..d13e2e3b000 100644 --- a/windows/src/main/wix/Directory.Build.props +++ b/windows/src/main/wix/Directory.Build.props @@ -18,9 +18,8 @@ - $(OutputPath)$(Configuration) - $(CyberduckDir)setup\wix\ - $(OutputPath) + $(BaseOutputPath)$(Configuration)\ + $(CyberduckDir)setup\wix\ diff --git a/windows/src/main/wix/WindowsVersionCustomAction/CustomAction.cpp b/windows/src/main/wix/WindowsVersionCustomAction/CustomAction.cpp deleted file mode 100644 index b4656568fec..00000000000 --- a/windows/src/main/wix/WindowsVersionCustomAction/CustomAction.cpp +++ /dev/null @@ -1,129 +0,0 @@ -#include "stdafx.h" -#include -#include - -BOOL GetKernelVersion(VS_FIXEDFILEINFO& vInfo) -{ - static const wchar_t kernel32[] = L"\\kernel32.dll"; - wchar_t path[MAX_PATH]; - - unsigned int n = GetSystemDirectory(path, MAX_PATH); - memcpy_s(path + n, MAX_PATH, kernel32, sizeof(kernel32)); - - unsigned int size = GetFileVersionInfoSize(path, NULL); - if (size == 0) - { - return false; - } - - std::vector verionInfo; - verionInfo.resize(size); - BOOL result = GetFileVersionInfo(path, 0, size, verionInfo.data()); - if (!result || GetLastError() != S_OK) - { - return false; - } - - VS_FIXEDFILEINFO *vinfo; - result = VerQueryValue(verionInfo.data(), L"\\", (LPVOID *)&vinfo, &size); - vInfo = *vinfo; - - return result; -} - -OSVERSIONINFO GetOSVersionInfo() -{ - OSVERSIONINFO osvi; - - VS_FIXEDFILEINFO vinfo; - if (GetKernelVersion(vinfo)) - { - osvi.dwMajorVersion = HIWORD(vinfo.dwProductVersionMS); - osvi.dwMinorVersion = LOWORD(vinfo.dwProductVersionMS); - osvi.dwBuildNumber = HIWORD(vinfo.dwProductVersionLS); - } - - return osvi; -} - -bool windows10orGreater() -{ - static const wchar_t kernel32[] = L"\\kernel32.dll"; - wchar_t path[MAX_PATH]; - - unsigned int n = GetSystemDirectory(path, MAX_PATH); - memcpy_s(path + n, MAX_PATH, kernel32, sizeof(kernel32)); - - unsigned int size = GetFileVersionInfoSize(path, NULL); - if (size == 0) - { - return false; - } - - std::vector verionInfo; - verionInfo.resize(size); - BOOL result = GetFileVersionInfo(path, 0, size, verionInfo.data()); - if (!result || GetLastError() != S_OK) - { - return false; - } - - VS_FIXEDFILEINFO *vinfo; - result = VerQueryValue(verionInfo.data(), L"\\", (LPVOID *)&vinfo, &size); - if (!result || size < sizeof(VS_FIXEDFILEINFO)) - { - return false; - } - - return HIWORD(vinfo->dwProductVersionMS) >= 10; -} - -UINT __stdcall CustomAction1( - MSIHANDLE hInstall -) -{ - HRESULT hr = S_OK; - UINT er = ERROR_SUCCESS; - - hr = WcaInitialize(hInstall, "CustomAction1"); - ExitOnFailure(hr, "Failed to initialize"); - - WcaLog(LOGMSG_STANDARD, "Initialized."); - - // TODO: Add your custom action code here. - auto eightOrGreater = IsWindows8OrGreater(); - if (eightOrGreater) - { - auto osVersion = GetOSVersionInfo(); - hr = WcaSetIntProperty(L"VersionNT", osVersion.dwMajorVersion * 100 + osVersion.dwMinorVersion); - ExitOnFailure(hr, "Failed on set VersionNT"); - hr = WcaSetIntProperty(L"WindowsBuild", osVersion.dwBuildNumber); - ExitOnFailure(hr, "Failed on set WindowsBuild"); - } - -LExit: - er = SUCCEEDED(hr) ? ERROR_SUCCESS : ERROR_INSTALL_FAILURE; - return WcaFinalize(er); -} - - -// DllMain - Initialize and cleanup WiX custom action utils. -extern "C" BOOL WINAPI DllMain( - __in HINSTANCE hInst, - __in ULONG ulReason, - __in LPVOID -) -{ - switch (ulReason) - { - case DLL_PROCESS_ATTACH: - WcaGlobalInitialize(hInst); - break; - - case DLL_PROCESS_DETACH: - WcaGlobalFinalize(); - break; - } - - return TRUE; -} diff --git a/windows/src/main/wix/WindowsVersionCustomAction/CustomAction.def b/windows/src/main/wix/WindowsVersionCustomAction/CustomAction.def deleted file mode 100644 index eaa41932285..00000000000 --- a/windows/src/main/wix/WindowsVersionCustomAction/CustomAction.def +++ /dev/null @@ -1,4 +0,0 @@ -LIBRARY "WindowsVersionCustomAction" - -EXPORTS - CustomAction1 diff --git a/windows/src/main/wix/WindowsVersionCustomAction/WindowsVersionCustomAction.vcxproj b/windows/src/main/wix/WindowsVersionCustomAction/WindowsVersionCustomAction.vcxproj deleted file mode 100644 index d75f8a5eb68..00000000000 --- a/windows/src/main/wix/WindowsVersionCustomAction/WindowsVersionCustomAction.vcxproj +++ /dev/null @@ -1,115 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {fba5efe2-362b-4bad-a748-3248f79468ac} - Win32Proj - WindowsVersionCustomAction - 10.0 - - - - - DynamicLibrary - v145 - v143 - DynamicLibrary - Unicode - - - true - true - - - false - true - false - - - - - - - - - - - - - - Use - Level3 - $(WIX)sdk\$(WixPlatformToolset)\inc;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;_USRDLL;CUSTOMACTIONTEST_EXPORTS;%(PreprocessorDefinitions) - - - Windows - CustomAction.def - msi.lib;dutil.lib;wcautil.lib;Version.lib;%(AdditionalDependencies) - $(WIX)sdk\$(WixPlatformToolset)\lib\x86;%(AdditionalLibraryDirectories) - - - - - MachineX86 - - - - - Disabled - _DEBUG;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - EditAndContinue - - - true - - - - - MaxSpeed - true - NDEBUG;%(PreprocessorDefinitions) - MultiThreaded - true - ProgramDatabase - - - true - true - true - - - - - - Create - - - - - - - - - - - - - - - - - - diff --git a/windows/src/main/wix/WindowsVersionCustomAction/stdafx.cpp b/windows/src/main/wix/WindowsVersionCustomAction/stdafx.cpp deleted file mode 100644 index 9a5cc24eaa5..00000000000 --- a/windows/src/main/wix/WindowsVersionCustomAction/stdafx.cpp +++ /dev/null @@ -1,4 +0,0 @@ -#include "stdafx.h" - -// TODO: reference any additional headers you need in STDAFX.H -// and not in this file diff --git a/windows/src/main/wix/WindowsVersionCustomAction/stdafx.h b/windows/src/main/wix/WindowsVersionCustomAction/stdafx.h deleted file mode 100644 index 2a8fcf239f2..00000000000 --- a/windows/src/main/wix/WindowsVersionCustomAction/stdafx.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include "targetver.h" - -#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers -// Windows Header Files: -#include -#include -#include - -// WiX Header Files: -#include - - -// TODO: reference additional headers your program requires here diff --git a/windows/src/main/wix/WindowsVersionCustomAction/targetver.h b/windows/src/main/wix/WindowsVersionCustomAction/targetver.h deleted file mode 100644 index c3a06de6f83..00000000000 --- a/windows/src/main/wix/WindowsVersionCustomAction/targetver.h +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once - -#ifndef WINVER // Specifies that the minimum required platform is Windows XP. -#define WINVER 0x0501 // Change this to the appropriate value to target other versions of Windows. -#endif - -#ifndef _WIN32_WINNT // Specifies that the minimum required platform is Windows XP. -#define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target other versions of Windows. -#endif - -#ifndef _WIN32_IE // Specifies that the minimum required platform is Internet Explorer 6.0 SP3. -#define _WIN32_IE 0x0603 // Change this to the appropriate value to target other versions of IE. -#endif - -#ifndef _WIN32_MSI // Specifies that the minimum required MSI version is MSI 3.1 -#define _WIN32_MSI 310 // Change this to the appropriate value to target other versions of MSI. -#endif diff --git a/windows/src/test/utils/CredDeleteCommand.cs b/windows/src/test/utils/CredDeleteCommand.cs new file mode 100644 index 00000000000..dcfe50930b1 --- /dev/null +++ b/windows/src/test/utils/CredDeleteCommand.cs @@ -0,0 +1,62 @@ +using System; +using System.CommandLine; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text.RegularExpressions; +using Windows.Win32; +using Windows.Win32.Security.Credentials; +using static Program; + +namespace test_utils; + +internal static class CredDeleteCommand +{ + internal static unsafe void Invoke(ParseResult result) + { + var patternValues = result.GetValue(CredMatch); + Regex[] patterns = null; + if (patternValues is not null) + { + patterns = new Regex[patternValues.Length]; + var patternWriter = ((Span)patterns).GetEnumerator(); + foreach (var item in patternValues) + { + patternWriter.MoveNext(); + patternWriter.Current = new Regex(item, RegexOptions.Compiled); + } + } + + CREDENTIALW** credentials = null; + try + { + if (!PInvoke.CredEnumerate(null, out var count, out credentials)) + { + throw Marshal.GetExceptionForHR(Marshal.GetHRForLastWin32Error()); + } + + foreach (ref readonly var credential in new ReadOnlySpan(credentials, (int)count)) + { + bool matched = false; + if (patterns.Length > 0 && !(matched = patterns.Any(credential.Value.TargetName.ToString().Match))) + { + continue; + } + + Console.WriteLine($"{credential.Value.TargetName} ({credential.Value.UserName})"); + if (matched) + { + if (!PInvoke.CredDelete(credential.Value.TargetName, credential.Value.Type, 0)) + { + Console.WriteLine($" Failure deleting: {Marshal.GetLastPInvokeErrorMessage()}"); + } + } + } + } + finally + { + PInvoke.CredFree(credentials); + } + } + + private static bool Match(this string text, Regex pattern) => pattern.IsMatch(text); +} diff --git a/windows/src/test/utils/NativeMethods.txt b/windows/src/test/utils/NativeMethods.txt new file mode 100644 index 00000000000..557f60df4f9 --- /dev/null +++ b/windows/src/test/utils/NativeMethods.txt @@ -0,0 +1,3 @@ +CredDelete +CredEnumerate +CredFree diff --git a/windows/src/test/utils/Program.cs b/windows/src/test/utils/Program.cs new file mode 100644 index 00000000000..d41b3043029 --- /dev/null +++ b/windows/src/test/utils/Program.cs @@ -0,0 +1,30 @@ +using System.CommandLine; +using test_utils; +using Windows.Win32.Security.Credentials; + +RootCommand command = []; + +Command credDeleteCommand = new("cred-delete", "Lists Credentials, and optionally deletes them when matching."); +command.Add(credDeleteCommand); +credDeleteCommand.SetAction(CredDeleteCommand.Invoke); +credDeleteCommand.Add(CredMatch = new("--match") +{ + AllowMultipleArgumentsPerToken = true, + Arity = ArgumentArity.ZeroOrMore, + Description = "When specified, Cred-Delete will delete items matching any of the Regex patterns." +}); + + +return command.Parse(args).Invoke(); + +partial class Program +{ + internal static Option CredMatch; + + internal readonly unsafe struct PCREDENTIALW + { + private readonly CREDENTIALW* _ptr; + + public readonly ref CREDENTIALW Value => ref *_ptr; + } +} diff --git a/windows/src/test/utils/test-utils.csproj b/windows/src/test/utils/test-utils.csproj new file mode 100644 index 00000000000..c9c7de15e2b --- /dev/null +++ b/windows/src/test/utils/test-utils.csproj @@ -0,0 +1,13 @@ + + + + Exe + net8.0-win + + + + + + + + \ No newline at end of file