Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion ee/maintained-apps/inputs/homebrew/abstract.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@
"token": "abstract",
"installer_format": "zip",
"slug": "abstract/darwin",
"default_categories": ["Productivity"]
"default_categories": ["Productivity"],
"frozen": true
}
3 changes: 2 additions & 1 deletion ee/maintained-apps/inputs/homebrew/freefilesync.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@
"slug": "freefilesync/darwin",
"default_categories": [
"Productivity"
]
],
"frozen": true
}
3 changes: 2 additions & 1 deletion ee/maintained-apps/inputs/winget/nordpass.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@
"installer_arch": "x64",
"installer_type": "exe",
"installer_scope": "user",
"default_categories": ["Productivity"]
"default_categories": ["Productivity"],
"frozen": true
}
37 changes: 26 additions & 11 deletions ee/maintained-apps/inputs/winget/scripts/evernote_install.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,34 @@ try {
# Evernote uses an electron-builder NSIS installer. It defaults to a per-user
# install, so /allusers is required for a machine-wide install alongside the
# NSIS /S silent flag.
$processOptions = @{
FilePath = "$exeFilePath"
ArgumentList = "/allusers /S"
PassThru = $true
Wait = $true
}
#
# The NSIS self-extractor intermittently dies with 0xc0000005 (access
# violation, exit code -1073741819) before extracting anything. The same
# installer succeeds on the next run, so retry on that specific exit code
# only; every other exit code is reported as-is.
$maxAttempts = 3
$exitCode = 1

for ($attempt = 1; $attempt -le $maxAttempts; $attempt++) {
$processOptions = @{
FilePath = "$exeFilePath"
ArgumentList = "/allusers /S"
PassThru = $true
Wait = $true
}

$process = Start-Process @processOptions
$exitCode = $process.ExitCode

# Start process and track exit code
$process = Start-Process @processOptions
$exitCode = $process.ExitCode
Write-Host "Install exit code: $exitCode (attempt $attempt of $maxAttempts)"

if ($exitCode -ne -1073741819) {
Exit $exitCode
}

Start-Sleep -Seconds 10
}

# Prints the exit code
Write-Host "Install exit code: $exitCode"
Exit $exitCode

} catch {
Expand Down
62 changes: 34 additions & 28 deletions ee/maintained-apps/inputs/winget/scripts/onedrive_install.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -10,56 +10,62 @@ try {
# silentinstallhq.com). The catch: OneDriveSetup.exe spawns several child
# processes and starts the resident OneDrive.exe, so a plain Start-Process -Wait
# can wait indefinitely and hit the CI step timeout. Instead, start the
# installer, then poll for the per-machine install to land (registry uninstall
# key + the all-users binary) and return success as soon as it appears.
# installer and poll for the per-machine ARP (uninstall) registry entry.
#
# The ARP entry is the completion signal — not files on disk. The installer
# drops OneDrive.exe under Program Files well before it registers the
# uninstall key, and the uninstall key (DisplayName/DisplayVersion) is what
# osquery's programs table — and therefore Fleet's detection — reads. Waiting
# on the binary races detection. Modern x64 OneDrive registers in the native
# hive; older builds used WOW6432Node, so check both. Registration is done by
# child processes, so keep polling to the deadline even after the top-level
# setup process exits.

$process = Start-Process -FilePath "$exeFilePath" -ArgumentList "/allusers /silent" -PassThru

# Per-machine OneDrive registers an uninstall key and drops OneDrive.exe under
# Program Files (x86) (or Program Files on x86 OS).
$uninstallKey = "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\OneDriveSetup.exe"
$exePaths = @(
"$env:ProgramFiles\Microsoft OneDrive\OneDrive.exe",
"${env:ProgramFiles(x86)}\Microsoft OneDrive\OneDrive.exe"
$uninstallKeys = @(
"HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OneDriveSetup.exe",
"HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\OneDriveSetup.exe"
)

function Test-OneDriveRegistered {
foreach ($key in $uninstallKeys) {
if (Test-Path $key) {
$entry = Get-ItemProperty -Path $key -ErrorAction SilentlyContinue
if ($entry -and $entry.DisplayName -and $entry.DisplayVersion) {
return $true
}
}
}
return $false
}

$timeoutSeconds = 240
$deadline = (Get-Date).AddSeconds($timeoutSeconds)
$installed = $false

while ((Get-Date) -lt $deadline) {
$exeExists = $false
foreach ($p in $exePaths) {
if ($p -and (Test-Path $p)) { $exeExists = $true; break }
}
if ((Test-Path $uninstallKey) -or $exeExists) {
if (Test-OneDriveRegistered) {
$installed = $true
break
}
# If the top-level setup process exited, capture its code and stop polling.
if ($process.HasExited) { break }
Start-Sleep -Seconds 5
}

# Final check in case the setup process exited right before the loop bailed.
if (-not $installed) {
$exeExists = $false
foreach ($p in $exePaths) {
if ($p -and (Test-Path $p)) { $exeExists = $true; break }
}
if ((Test-Path $uninstallKey) -or $exeExists) { $installed = $true }
}

if ($installed) {
Write-Host "OneDrive per-machine install detected."
Write-Host "OneDrive per-machine install registered."
# Give the setup process a moment to exit so the installer file isn't locked.
if (-not $process.HasExited) {
Wait-Process -Id $process.Id -Timeout 60 -ErrorAction SilentlyContinue
}
Exit 0
}

if ($process.HasExited) {
$exitCode = $process.ExitCode
Write-Host "OneDriveSetup exited with code: $exitCode"
if ($exitCode -eq 0 -or $exitCode -eq 3010 -or $exitCode -eq 1641) { Exit 0 }
Exit $exitCode
Write-Host "OneDriveSetup exited with code: $exitCode, but no per-machine registry entry was found."
if ($exitCode -ne 0 -and $exitCode -ne 3010 -and $exitCode -ne 1641) { Exit $exitCode }
Exit 1
}

Write-Host "Timed out waiting for OneDrive install to complete."
Expand Down
4 changes: 2 additions & 2 deletions ee/maintained-apps/inputs/winget/vc-redist-x64.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
"name": "Microsoft Visual C++ 2015-2022 Redistributable (x64)",
"slug": "vc-redist-x64/windows",
"package_identifier": "Microsoft.VCRedist.2015+.x64",
"unique_identifier": "Microsoft Visual C++ 2015-2022 Redistributable (x64)",
"exists_query": "SELECT 1 FROM programs WHERE name LIKE 'Microsoft Visual C++ 2015-2022 Redistributable (x64)%' AND publisher = 'Microsoft Corporation';",
"unique_identifier": "Microsoft Visual C++ v14 Redistributable (x64)",
"exists_query": "SELECT 1 FROM programs WHERE (name LIKE 'Microsoft Visual C++ 2015-2022 Redistributable (x64)%' OR name LIKE 'Microsoft Visual C++ v14 Redistributable (x64)%') AND publisher = 'Microsoft Corporation';",
"installer_arch": "x64",
"installer_type": "exe",
"installer_scope": "machine",
Expand Down
3 changes: 2 additions & 1 deletion ee/maintained-apps/inputs/winget/xnconvert.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@
"installer_scope": "machine",
"default_categories": ["Productivity"],
"install_script_path": "ee/maintained-apps/inputs/winget/scripts/xnconvert_install.ps1",
"uninstall_script_path": "ee/maintained-apps/inputs/winget/scripts/xnconvert_uninstall.ps1"
"uninstall_script_path": "ee/maintained-apps/inputs/winget/scripts/xnconvert_uninstall.ps1",
"frozen": true
}
3 changes: 2 additions & 1 deletion ee/maintained-apps/outputs/010-editor/darwin.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"version": "16.0.4",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.SweetScape.010Editor';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.SweetScape.010Editor' AND version_compare(bundle_short_version, '16.0.4') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.SweetScape.010Editor' AND version_compare(bundle_short_version, '16.0.4') < 0);",
"open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.SweetScape.010Editor');"
},
"installer_url": "https://download.sweetscape.com/010EditorMacARM64Installer16.0.4.dmg",
"install_script_ref": "b3fb6381",
Expand Down
3 changes: 2 additions & 1 deletion ee/maintained-apps/outputs/010-editor/windows.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"version": "16.0.4",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name LIKE '010 Editor %' AND publisher = 'SweetScape Software';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE '010 Editor %' AND publisher = 'SweetScape Software' AND version_compare(version, '16.0.4') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE '010 Editor %' AND publisher = 'SweetScape Software' AND version_compare(version, '16.0.4') < 0);",
"open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = '010 editor.exe');"
},
"installer_url": "https://download.sweetscape.com/010EditorWin64Installer16.0.4.exe",
"install_script_ref": "5764f801",
Expand Down
3 changes: 2 additions & 1 deletion ee/maintained-apps/outputs/1password/darwin.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"version": "8.12.30",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.1password.1password';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.1password.1password' AND version_compare(bundle_short_version, '8.12.30') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.1password.1password' AND version_compare(bundle_short_version, '8.12.30') < 0);",
"open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.1password.1password');"
},
"installer_url": "https://downloads.1password.com/mac/1Password.pkg",
"install_script_ref": "1d854c01",
Expand Down
3 changes: 2 additions & 1 deletion ee/maintained-apps/outputs/1password/windows.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"version": "8.12.30",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name = '1Password' AND publisher = 'Agilebits Inc.';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = '1Password' AND publisher = 'Agilebits Inc.' AND version_compare(version, '8.12.30') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = '1Password' AND publisher = 'Agilebits Inc.' AND version_compare(version, '8.12.30') < 0);",
"open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) LIKE '1password%');"
},
"installer_url": "https://c.1password.com/dist/1P/win8/1PasswordSetup-8.12.30.msi",
"install_script_ref": "22e48c46",
Expand Down
3 changes: 2 additions & 1 deletion ee/maintained-apps/outputs/3df-zephyr-free/windows.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"version": "9.007",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name LIKE '3DF Zephyr Free %' AND publisher = '3Dflow srl';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE '3DF Zephyr Free %' AND publisher = '3Dflow srl' AND version_compare(version, '9.007') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE '3DF Zephyr Free %' AND publisher = '3Dflow srl' AND version_compare(version, '9.007') < 0);",
"open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = '3df zephyr free.exe');"
},
"installer_url": "https://3df-eu.fra1.digitaloceanspaces.com/9.007/3DF%20Zephyr%20Free%20v9.007%20(x64).exe",
"install_script_ref": "df7f059c",
Expand Down
3 changes: 2 additions & 1 deletion ee/maintained-apps/outputs/4k-slideshow-maker/darwin.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"version": "2.0.1",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kslideshowmaker';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kslideshowmaker' AND version_compare(bundle_short_version, '2.0.1') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kslideshowmaker' AND version_compare(bundle_short_version, '2.0.1') < 0);",
"open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.openmedia.4kslideshowmaker');"
},
"installer_url": "https://dl.4kdownload.com/app/4kslideshowmaker_2.0.1.dmg",
"install_script_ref": "4d6c6c3a",
Expand Down
3 changes: 2 additions & 1 deletion ee/maintained-apps/outputs/4k-stogram/darwin.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"version": "4.9.0",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kstogram';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kstogram' AND version_compare(bundle_short_version, '4.9.0') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kstogram' AND version_compare(bundle_short_version, '4.9.0') < 0);",
"open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.openmedia.4kstogram');"
},
"installer_url": "https://dl.4kdownload.com/app/4kstogram_4.9.0_arm64.dmg",
"install_script_ref": "17ba87c2",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"version": "26.1.1.355",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name = '4K Video Downloader+' AND publisher = 'InterPromo GMBH';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = '4K Video Downloader+' AND publisher = 'InterPromo GMBH' AND version_compare(version, '26.1.1.355') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = '4K Video Downloader+' AND publisher = 'InterPromo GMBH' AND version_compare(version, '26.1.1.355') < 0);",
"open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = '4k video downloader+.exe');"
},
"installer_url": "https://dl.4kdownload.com/app/4kvideodownloaderplus_26.1.1_x64_offline.exe?source=website",
"install_script_ref": "e60e87a2",
Expand Down
3 changes: 2 additions & 1 deletion ee/maintained-apps/outputs/4k-video-downloader/darwin.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"version": "4.33.5",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.4kdownload.ApplicationDirectories';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.4kdownload.ApplicationDirectories' AND version_compare(bundle_short_version, '4.33.5') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.4kdownload.ApplicationDirectories' AND version_compare(bundle_short_version, '4.33.5') < 0);",
"open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.4kdownload.ApplicationDirectories');"
},
"installer_url": "https://dl.4kdownload.com/app/4kvideodownloader_4.33.5_x64.dmg",
"install_script_ref": "b39acc12",
Expand Down
3 changes: 2 additions & 1 deletion ee/maintained-apps/outputs/4k-video-to-mp3/darwin.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"version": "3.0.1",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kvideotomp3';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kvideotomp3' AND version_compare(bundle_short_version, '3.0.1') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kvideotomp3' AND version_compare(bundle_short_version, '3.0.1') < 0);",
"open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.openmedia.4kvideotomp3');"
},
"installer_url": "https://dl.4kdownload.com/app/4kvideotomp3_3.0.1.dmg",
"install_script_ref": "7e311119",
Expand Down
3 changes: 2 additions & 1 deletion ee/maintained-apps/outputs/4k-youtube-to-mp3/darwin.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"version": "26.2.1",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kyoutubetomp3';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kyoutubetomp3' AND version_compare(bundle_short_version, '26.2.1') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kyoutubetomp3' AND version_compare(bundle_short_version, '26.2.1') < 0);",
"open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.openmedia.4kyoutubetomp3');"
},
"installer_url": "https://dl.4kdownload.com/app/4kyoutubetomp3_26.2.1_arm64.dmg",
"install_script_ref": "86bee2e4",
Expand Down
3 changes: 2 additions & 1 deletion ee/maintained-apps/outputs/7-zip/windows.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"version": "26.02",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name LIKE '7-Zip %' AND publisher = 'Igor Pavlov';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE '7-Zip %' AND publisher = 'Igor Pavlov' AND version_compare(version, '26.02') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE '7-Zip %' AND publisher = 'Igor Pavlov' AND version_compare(version, '26.02') < 0);",
"open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('7zfm.exe','7zg.exe'));"
},
"installer_url": "https://github.com/ip7z/7zip/releases/download/26.02/7z2602-x64.msi",
"install_script_ref": "22e48c46",
Expand Down
3 changes: 2 additions & 1 deletion ee/maintained-apps/outputs/8x8-work/darwin.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"version": "8.36.2",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.8x8---virtual-office';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.8x8---virtual-office' AND version_compare(bundle_short_version, '8.36.2') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.8x8---virtual-office' AND version_compare(bundle_short_version, '8.36.2') < 0);",
"open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.electron.8x8---virtual-office');"
},
"installer_url": "https://work-desktop-assets.8x8.com/prod-publish/ga/work-arm64-dmg-v8.36.2-3.dmg",
"install_script_ref": "18ff65bc",
Expand Down
3 changes: 2 additions & 1 deletion ee/maintained-apps/outputs/8x8-work/windows.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"version": "8.36.2",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name = '8x8 Work' AND publisher = '8x8 Inc.';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = '8x8 Work' AND publisher = '8x8 Inc.' AND version_compare(version, '8.36.2') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = '8x8 Work' AND publisher = '8x8 Inc.' AND version_compare(version, '8.36.2') < 0);",
"open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = '8x8 work.exe');"
},
"installer_url": "https://work-desktop-assets.8x8.com/prod-publish/ga/work-64-msi-v8.36.2-3.msi",
"install_script_ref": "22e48c46",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"version": "12.31",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.publicspace.abfr12';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.publicspace.abfr12' AND version_compare(bundle_short_version, '12.31') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.publicspace.abfr12' AND version_compare(bundle_short_version, '12.31') < 0);",
"open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.publicspace.abfr12');"
},
"installer_url": "https://www.publicspace.net/download/ABFRX12.dmg",
"install_script_ref": "07711880",
Expand Down
3 changes: 2 additions & 1 deletion ee/maintained-apps/outputs/ableton-live-suite/darwin.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"version": "12.4.3",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.ableton.live';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ableton.live' AND version_compare(bundle_short_version, '12.4.3') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ableton.live' AND version_compare(bundle_short_version, '12.4.3') < 0);",
"open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.ableton.live');"
},
"installer_url": "https://cdn-downloads.ableton.com/channels/12.4.3/ableton_live_suite_12.4.3_universal.dmg",
"install_script_ref": "9ea4cfbf",
Expand Down
Loading
Loading