From 46e42d7ecf51fc84ab138e5ebedd185d906c27df Mon Sep 17 00:00:00 2001 From: David Anthoff Date: Wed, 19 Jun 2024 18:49:44 +0200 Subject: [PATCH 1/6] Experiment with win package identity --- Cargo.toml | 3 +- build.rs | 4 + .../appmanifest/app.manifest | 9 ++ deploy/winpkgidentityext/juliaup.msix | Bin 0 -> 2415 bytes .../winpkgidentityext/msix/appxmanifest.xml | 104 ++++++++++++++++++ src/bin/juliaup.rs | 18 +++ 6 files changed, 137 insertions(+), 1 deletion(-) create mode 100644 deploy/winpkgidentityext/appmanifest/app.manifest create mode 100644 deploy/winpkgidentityext/juliaup.msix create mode 100644 deploy/winpkgidentityext/msix/appxmanifest.xml diff --git a/Cargo.toml b/Cargo.toml index 778fbc4e..320940bd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -61,7 +61,7 @@ path-absolutize = "3.1.0" human-sort = "0.2.2" [target.'cfg(windows)'.dependencies] -windows = { version = "0.56.0", features = ["Win32_Foundation", "Win32_UI_Shell", "Win32_System_Console", "Services_Store", "Foundation", "Foundation_Collections", "Web_Http", "Web_Http_Headers", "Storage_Streams",] } +windows = { version = "0.56.0", features = ["Win32_Foundation", "Win32_UI_Shell", "Win32_System_Console", "Services_Store", "Foundation", "Foundation_Collections", "Web_Http", "Web_Http_Headers", "Storage_Streams", "Management_Deployment"] } [target.'cfg(target_os = "macos")'.dependencies] reqwest = { version = "0.12.3", default-features = false, features = ["blocking", "native-tls", "socks"] } @@ -96,6 +96,7 @@ windowsappinstaller = [] dummy = [] binjuliainstaller = [] binjulialauncher = [] +winpkgidentityext = [] [package.metadata.msix] winstoremsix = { file = "deploy/msix/PackagingLayout.xml", variables = [{name = "FlatBundle", value="false"}, {name = "IdentityPublisher", value = "CN=7FB784C5-4411-4067-914E-A7B06CC00FFC"}] } diff --git a/build.rs b/build.rs index b6225b93..59299403 100644 --- a/build.rs +++ b/build.rs @@ -45,6 +45,10 @@ fn main() -> Result<()> { { let mut res = winres::WindowsResource::new(); res.set_icon("src/julia.ico"); + + #[cfg(winpkgidentityext)] + res.set_manifest_file("deploy/winpkgidentityext/app.manifest"); + res.compile().unwrap(); } diff --git a/deploy/winpkgidentityext/appmanifest/app.manifest b/deploy/winpkgidentityext/appmanifest/app.manifest new file mode 100644 index 00000000..33b02067 --- /dev/null +++ b/deploy/winpkgidentityext/appmanifest/app.manifest @@ -0,0 +1,9 @@ + + + + + diff --git a/deploy/winpkgidentityext/juliaup.msix b/deploy/winpkgidentityext/juliaup.msix new file mode 100644 index 0000000000000000000000000000000000000000..ebab86cf9067e85a8909dbcbd3be9f624cb0c3dd GIT binary patch literal 2415 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 R{clD$4$BT=2FCONz;CJF4JQBq literal 0 HcmV?d00001 diff --git a/deploy/winpkgidentityext/msix/appxmanifest.xml b/deploy/winpkgidentityext/msix/appxmanifest.xml new file mode 100644 index 00000000..9c53ff84 --- /dev/null +++ b/deploy/winpkgidentityext/msix/appxmanifest.xml @@ -0,0 +1,104 @@ + + + + + + + + Julia Dev + Julia Computing, Inc. + Images\StoreLogo.png + disabled + disabled + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/bin/juliaup.rs b/src/bin/juliaup.rs index 37fcca95..35621eaa 100644 --- a/src/bin/juliaup.rs +++ b/src/bin/juliaup.rs @@ -47,6 +47,24 @@ fn main() -> Result<()> { .write_style("JULIAUP_LOG_STYLE"); env_logger::init_from_env(env); + #[cfg(feature = "winpkgidentityext")] + { + use windows::Management::Deployment::{PackageManager,AddPackageOptions}; + + let package_manager = PackageManager::new().unwrap(); + + let package_manager_options = AddPackageOptions::new().unwrap(); + + let loc = windows::Foundation::Uri::CreateUri(&windows::core::HSTRING::from(".")).unwrap(); + + package_manager_options.SetExternalLocationUri(&loc).unwrap(); + package_manager_options.SetAllowUnsigned(true).unwrap(); + + let arg = package_manager.AddPackageByUriAsync(&loc, &package_manager_options).unwrap(); + + + } + info!("Parsing command line arguments."); let args = Juliaup::parse(); From a50146f469550104bf57c3e1731fdbcc6ba48135 Mon Sep 17 00:00:00 2001 From: David Anthoff Date: Fri, 12 Jul 2024 13:38:44 +0200 Subject: [PATCH 2/6] Add sign script --- deploy/winpkgidentityext/sign.ps1 | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 deploy/winpkgidentityext/sign.ps1 diff --git a/deploy/winpkgidentityext/sign.ps1 b/deploy/winpkgidentityext/sign.ps1 new file mode 100644 index 00000000..aafb8a7e --- /dev/null +++ b/deploy/winpkgidentityext/sign.ps1 @@ -0,0 +1,12 @@ +$params = @{ + Endpoint = "https://eus.codesigning.azure.net/" + CodeSigningAccountName = "juliahubwincertsaccount" + CertificateProfileName = "JuliaHubWinCert" + FilesFolder = "." + FilesFolderFilter = "msix" + FileDigest = "SHA256" + TimestampRfc3161 = "http://timestamp.acs.microsoft.com" + TimestampDigest = "SHA256" + } + +Invoke-TrustedSigning @params \ No newline at end of file From d8db2123908421366d690f2b96cb6f606ceb8097 Mon Sep 17 00:00:00 2001 From: David Anthoff Date: Fri, 16 Aug 2024 14:07:04 -0700 Subject: [PATCH 3/6] Fix package identity --- .../appmanifest/app.manifest | 2 +- deploy/winpkgidentityext/create-msix.ps1 | 24 ++++++++++++++++++ deploy/winpkgidentityext/juliaup.msix | Bin 2415 -> 12060 bytes .../winpkgidentityext/msix/appxmanifest.xml | 18 ++----------- deploy/winpkgidentityext/sign.ps1 | 12 --------- src/bin/juliaup.rs | 15 ++++++++--- 6 files changed, 38 insertions(+), 33 deletions(-) create mode 100644 deploy/winpkgidentityext/create-msix.ps1 delete mode 100644 deploy/winpkgidentityext/sign.ps1 diff --git a/deploy/winpkgidentityext/appmanifest/app.manifest b/deploy/winpkgidentityext/appmanifest/app.manifest index 33b02067..3217a224 100644 --- a/deploy/winpkgidentityext/appmanifest/app.manifest +++ b/deploy/winpkgidentityext/appmanifest/app.manifest @@ -2,7 +2,7 @@ diff --git a/deploy/winpkgidentityext/create-msix.ps1 b/deploy/winpkgidentityext/create-msix.ps1 new file mode 100644 index 00000000..4aaf6147 --- /dev/null +++ b/deploy/winpkgidentityext/create-msix.ps1 @@ -0,0 +1,24 @@ +Remove-Item .\juliaup.msix +& 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64\makeappx.exe' pack /d .\msix\ /p .\juliaup.msix /nv + +$params = @{ + Endpoint = "https://eus.codesigning.azure.net/" + CodeSigningAccountName = "juliahubwincertsaccount" + CertificateProfileName = "JuliaHubWinCert" + FilesFolder = "." + FilesFolderFilter = "msix" + FileDigest = "SHA256" + TimestampRfc3161 = "http://timestamp.acs.microsoft.com" + TimestampDigest = "SHA256" + ExcludeManagedIdentityCredential = $True + ExcludeEnvironmentCredential = $True + ExcludeWorkloadIdentityCredential = $True + ExcludeSharedTokenCacheCredential = $True + ExcludeVisualStudioCredential = $True + ExcludeVisualStudioCodeCredential = $True + ExcludeAzurePowerShellCredential = $True + ExcludeAzureDeveloperCliCredential = $True + ExcludeInteractiveBrowserCredential = $True + } + +Invoke-TrustedSigning @params diff --git a/deploy/winpkgidentityext/juliaup.msix b/deploy/winpkgidentityext/juliaup.msix index ebab86cf9067e85a8909dbcbd3be9f624cb0c3dd..6c117e524469b2d69f50421268ebeb27ffe65da4 100644 GIT binary patch literal 12060 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 P{`VRG!QlRDKtTT=K!E9a literal 2415 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 R{clD$4$BT=2FCONz;CJF4JQBq diff --git a/deploy/winpkgidentityext/msix/appxmanifest.xml b/deploy/winpkgidentityext/msix/appxmanifest.xml index 9c53ff84..38a87dfc 100644 --- a/deploy/winpkgidentityext/msix/appxmanifest.xml +++ b/deploy/winpkgidentityext/msix/appxmanifest.xml @@ -12,11 +12,11 @@ xmlns:desktop6="http://schemas.microsoft.com/appx/manifest/desktop/windows10/6" xmlns:iot2="http://schemas.microsoft.com/appx/manifest/iot/windows10/2" IgnorableNamespaces="mp uap uap3 uap5 rescap desktop desktop4 desktop6 iot2"> - + Julia Dev - Julia Computing, Inc. + JuliaHub, Inc. Images\StoreLogo.png disabled disabled @@ -55,15 +55,6 @@ - - - - - - - - - @@ -88,11 +79,6 @@ - - - - - diff --git a/deploy/winpkgidentityext/sign.ps1 b/deploy/winpkgidentityext/sign.ps1 deleted file mode 100644 index aafb8a7e..00000000 --- a/deploy/winpkgidentityext/sign.ps1 +++ /dev/null @@ -1,12 +0,0 @@ -$params = @{ - Endpoint = "https://eus.codesigning.azure.net/" - CodeSigningAccountName = "juliahubwincertsaccount" - CertificateProfileName = "JuliaHubWinCert" - FilesFolder = "." - FilesFolderFilter = "msix" - FileDigest = "SHA256" - TimestampRfc3161 = "http://timestamp.acs.microsoft.com" - TimestampDigest = "SHA256" - } - -Invoke-TrustedSigning @params \ No newline at end of file diff --git a/src/bin/juliaup.rs b/src/bin/juliaup.rs index 2fdcf0bc..96dd1e51 100644 --- a/src/bin/juliaup.rs +++ b/src/bin/juliaup.rs @@ -55,14 +55,21 @@ fn main() -> Result<()> { let package_manager_options = AddPackageOptions::new().unwrap(); - let loc = windows::Foundation::Uri::CreateUri(&windows::core::HSTRING::from(".")).unwrap(); + let self_location = std::env::current_exe().unwrap(); + let self_location = self_location.parent().unwrap(); + let pkg_loc = self_location.join("juliaup.msix"); - package_manager_options.SetExternalLocationUri(&loc).unwrap(); - package_manager_options.SetAllowUnsigned(true).unwrap(); + let external_loc = windows::Foundation::Uri::CreateUri(&windows::core::HSTRING::from(self_location)).unwrap(); + let pkg_loc = windows::Foundation::Uri::CreateUri(&windows::core::HSTRING::from(pkg_loc.as_os_str())).unwrap(); - let arg = package_manager.AddPackageByUriAsync(&loc, &package_manager_options).unwrap(); + package_manager_options.SetExternalLocationUri(&external_loc).unwrap(); + package_manager_options.SetAllowUnsigned(false).unwrap(); + let depl_result = package_manager.AddPackageByUriAsync(&pkg_loc, &package_manager_options).unwrap().get().unwrap(); + if !depl_result.IsRegistered().unwrap() { + println!("Failed to register package identity. Error Message ${:?}", depl_result.ErrorText()); + } } info!("Parsing command line arguments."); From ed11f86a0ec83b238fb81759fa4071a5fefd03af Mon Sep 17 00:00:00 2001 From: David Anthoff Date: Fri, 16 Aug 2024 14:08:13 -0700 Subject: [PATCH 4/6] Format --- src/bin/juliaup.rs | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/bin/juliaup.rs b/src/bin/juliaup.rs index 96dd1e51..b585d3b4 100644 --- a/src/bin/juliaup.rs +++ b/src/bin/juliaup.rs @@ -49,7 +49,7 @@ fn main() -> Result<()> { #[cfg(feature = "winpkgidentityext")] { - use windows::Management::Deployment::{PackageManager,AddPackageOptions}; + use windows::Management::Deployment::{AddPackageOptions, PackageManager}; let package_manager = PackageManager::new().unwrap(); @@ -59,16 +59,29 @@ fn main() -> Result<()> { let self_location = self_location.parent().unwrap(); let pkg_loc = self_location.join("juliaup.msix"); - let external_loc = windows::Foundation::Uri::CreateUri(&windows::core::HSTRING::from(self_location)).unwrap(); - let pkg_loc = windows::Foundation::Uri::CreateUri(&windows::core::HSTRING::from(pkg_loc.as_os_str())).unwrap(); + let external_loc = + windows::Foundation::Uri::CreateUri(&windows::core::HSTRING::from(self_location)) + .unwrap(); + let pkg_loc = + windows::Foundation::Uri::CreateUri(&windows::core::HSTRING::from(pkg_loc.as_os_str())) + .unwrap(); - package_manager_options.SetExternalLocationUri(&external_loc).unwrap(); - package_manager_options.SetAllowUnsigned(false).unwrap(); + package_manager_options + .SetExternalLocationUri(&external_loc) + .unwrap(); + package_manager_options.SetAllowUnsigned(false).unwrap(); - let depl_result = package_manager.AddPackageByUriAsync(&pkg_loc, &package_manager_options).unwrap().get().unwrap(); + let depl_result = package_manager + .AddPackageByUriAsync(&pkg_loc, &package_manager_options) + .unwrap() + .get() + .unwrap(); if !depl_result.IsRegistered().unwrap() { - println!("Failed to register package identity. Error Message ${:?}", depl_result.ErrorText()); + println!( + "Failed to register package identity. Error Message ${:?}", + depl_result.ErrorText() + ); } } From 94c238ad7f42d337bb089f7505550e4306daa09a Mon Sep 17 00:00:00 2001 From: David Anthoff Date: Fri, 16 Aug 2024 14:18:12 -0700 Subject: [PATCH 5/6] Fix config --- build.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.rs b/build.rs index 59299403..2b4e1bc1 100644 --- a/build.rs +++ b/build.rs @@ -46,7 +46,7 @@ fn main() -> Result<()> { let mut res = winres::WindowsResource::new(); res.set_icon("src/julia.ico"); - #[cfg(winpkgidentityext)] + #[cfg(feature="winpkgidentityext")] res.set_manifest_file("deploy/winpkgidentityext/app.manifest"); res.compile().unwrap(); From 76b1e649b9a200048969dc30ff49475b2aceb412 Mon Sep 17 00:00:00 2001 From: David Anthoff Date: Fri, 16 Aug 2024 14:19:06 -0700 Subject: [PATCH 6/6] Format --- build.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.rs b/build.rs index 2b4e1bc1..a6c90838 100644 --- a/build.rs +++ b/build.rs @@ -46,7 +46,7 @@ fn main() -> Result<()> { let mut res = winres::WindowsResource::new(); res.set_icon("src/julia.ico"); - #[cfg(feature="winpkgidentityext")] + #[cfg(feature = "winpkgidentityext")] res.set_manifest_file("deploy/winpkgidentityext/app.manifest"); res.compile().unwrap();