-
Notifications
You must be signed in to change notification settings - Fork 994
Update Fleet-maintained apps #51321
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update Fleet-maintained apps #51321
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,23 +1,23 @@ | ||
| { | ||
| "versions": [ | ||
| { | ||
| "version": "4.3.4", | ||
| "version": "4.3.5", | ||
| "queries": { | ||
| "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'dignicy.extraDock';", | ||
| "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dignicy.extraDock' AND version_compare(bundle_short_version, '4.3.4') < 0);", | ||
| "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dignicy.extraDock' AND version_compare(bundle_short_version, '4.3.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 = 'dignicy.extraDock');" | ||
| }, | ||
| "installer_url": "https://github.com/AppitStudio/extra-dock-updates/releases/download/v4.3.4/extraDock.dmg", | ||
| "installer_url": "https://github.com/AppitStudio/extra-dock-updates/releases/download/v4.3.5/extraDock.dmg", | ||
| "install_script_ref": "b1d54782", | ||
| "uninstall_script_ref": "8b3ad59b", | ||
| "sha256": "913a0a1afde1265d7ec6740d05e57d09bf95d89d383a19b3c67ad691bea008a7", | ||
| "uninstall_script_ref": "39871f56", | ||
| "sha256": "6b3607bcfcdf1a16cde318e58d0c05c03bcdb465507987aaf3b5e2c1af4d6c63", | ||
| "default_categories": [ | ||
| "Productivity" | ||
| ] | ||
| } | ||
| ], | ||
| "refs": { | ||
| "8b3ad59b": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n\n # If the target contains glob characters, expand it and move each match.\n if [[ \"$target_file\" == *[*?[]* ]]; then\n local file file_name\n local matched=false\n local i=0\n # compgen -G expands the (quoted) pattern itself, so paths containing\n # spaces glob correctly; reading line by line keeps each match intact.\n while IFS= read -r file; do\n [[ -n \"$file\" ]] || continue\n [[ -e \"$file\" || -L \"$file\" ]] || continue\n matched=true\n i=$((i + 1))\n file_name=\"$(basename \"$file\")\"\n echo \"removing $file.\"\n # The per-match counter keeps matches that share a basename from\n # overwriting each other in the trash.\n mv -f \"$file\" \"$trash/${file_name}_${timestamp}_${rand}_${i}\"\n done < <(compgen -G \"$target_file\" 2>/dev/null)\n if [[ \"$matched\" == false ]]; then\n echo \"$target_file doesn't exist.\"\n fi\n return\n fi\n\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nsudo rm -rf \"$APPDIR/ExtraDock.app\"\ntrash $LOGGED_IN_USER '~/Library/Application Support/ExtraDock'\ntrash $LOGGED_IN_USER '~/Library/Caches/dignicy.extraDock'\ntrash $LOGGED_IN_USER '~/Library/HTTPStorages/dignicy.extraDock'\ntrash $LOGGED_IN_USER '~/Library/Preferences/dignicy.extraDock.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/dignicy.extraDock.savedState'\n", | ||
| "39871f56": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n local app_running\n app_running=$(osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null)\n if [[ \"$app_running\" != \"true\" ]]; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n\n # If the target contains glob characters, expand it and move each match.\n if [[ \"$target_file\" == *[*?[]* ]]; then\n local file file_name\n local matched=false\n local i=0\n # compgen -G expands the (quoted) pattern itself, so paths containing\n # spaces glob correctly; reading line by line keeps each match intact.\n while IFS= read -r file; do\n [[ -n \"$file\" ]] || continue\n [[ -e \"$file\" || -L \"$file\" ]] || continue\n matched=true\n i=$((i + 1))\n file_name=\"$(basename \"$file\")\"\n echo \"removing $file.\"\n # The per-match counter keeps matches that share a basename from\n # overwriting each other in the trash.\n mv -f \"$file\" \"$trash/${file_name}_${timestamp}_${rand}_${i}\"\n done < <(compgen -G \"$target_file\" 2>/dev/null)\n if [[ \"$matched\" == false ]]; then\n echo \"$target_file doesn't exist.\"\n fi\n return\n fi\n\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nquit_application 'dignicy.extraDock'\nsudo rm -rf \"$APPDIR/ExtraDock.app\"\ntrash $LOGGED_IN_USER '~/Library/Application Support/ExtraDock'\ntrash $LOGGED_IN_USER '~/Library/Caches/dignicy.extraDock'\ntrash $LOGGED_IN_USER '~/Library/HTTPStorages/dignicy.extraDock'\ntrash $LOGGED_IN_USER '~/Library/Preferences/dignicy.extraDock.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/dignicy.extraDock.savedState'\n", | ||
| "b1d54782": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath \"$INSTALLER_PATH\")\")\n# functions\n\nquit_and_track_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local timeout_duration=10\n\n # check if the application is running\n local app_running\n app_running=$(osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null)\n if [[ \"$app_running\" != \"true\" ]]; then\n eval \"export $var_name=0\"\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n eval \"export $var_name=0\"\n return\n fi\n\n # App was running, mark it for relaunch\n eval \"export $var_name=1\"\n echo \"Application '$bundle_id' was running; will relaunch after installation.\"\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nrelaunch_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local was_running\n\n # Check if the app was running before installation\n eval \"was_running=\\$$var_name\"\n if [[ \"$was_running\" != \"1\" ]]; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping relaunching application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Relaunching application '$bundle_id'...\"\n\n # Launch the app in the logged-in user's GUI session. Apps launched by root\n # won't register with the user's Dock/GUI, so run 'open' as the console user.\n # Use 'launchctl asuser' to bootstrap into the console user's Mach namespace\n # and GUI session — 'sudo -u' alone doesn't do this, which can cause\n # LSOpenURLsWithRole() failures even when 'open' exits 0.\n local open_status=0\n if [[ $EUID -eq 0 ]]; then\n local console_uid\n console_uid=$(id -u \"$console_user\")\n /bin/launchctl asuser \"$console_uid\" sudo -u \"$console_user\" open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n else\n open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n fi\n\n if [[ $open_status -eq 0 ]]; then\n echo \"Application '$bundle_id' relaunched successfully.\"\n else\n echo \"Failed to relaunch application '$bundle_id'.\"\n fi\n}\n\n\n# extract contents\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nyes | hdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\" || exit 1\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\" || true\n# copy to the applications folder\nquit_and_track_application 'dignicy.extraDock'\nif [ -d \"$APPDIR/ExtraDock.app\" ]; then\n\tsudo mv \"$APPDIR/ExtraDock.app\" \"$TMPDIR/ExtraDock.app.bkp\" || exit $?\nfi\nif ! sudo cp -R \"$TMPDIR/ExtraDock.app\" \"$APPDIR\"; then\n\t# remove the partial copy so a failed install isn't inventoried as the new\n\t# version, then restore the previous version if there was one\n\tsudo rm -rf \"$APPDIR/ExtraDock.app\"\n\tif [ -d \"$TMPDIR/ExtraDock.app.bkp\" ]; then\n\t\tsudo mv \"$TMPDIR/ExtraDock.app.bkp\" \"$APPDIR/ExtraDock.app\"\n\tfi\n\texit 1\nfi\nrelaunch_application 'dignicy.extraDock'\n" | ||
| } | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,16 +1,16 @@ | ||
| { | ||
| "versions": [ | ||
| { | ||
| "version": "1.12.6", | ||
| "version": "1.12.7", | ||
| "queries": { | ||
| "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.Julia';", | ||
| "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.Julia' AND version_compare(bundle_short_version, '1.12.6') < 0);", | ||
| "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.Julia' AND version_compare(bundle_short_version, '1.12.7') < 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.github.Julia');" | ||
| }, | ||
| "installer_url": "https://julialang-s3.julialang.org/bin/mac/aarch64/1.12/julia-1.12.6-macaarch64.dmg", | ||
| "installer_url": "https://julialang-s3.julialang.org/bin/mac/aarch64/1.12/julia-1.12.7-macaarch64.dmg", | ||
| "install_script_ref": "d9e3339c", | ||
| "uninstall_script_ref": "d35fd82c", | ||
| "sha256": "d065db4f16d4a18b4f1ab682d0ff4299addd13b999e980100fd72db592b99242", | ||
| "sha256": "3c9c2978a4940c0c338f6b665d30c70da188e88bd03d739d5185187254967b8a", | ||
|
Comment on lines
+4
to
+13
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -eu
printf '%s\n' '--- repository metadata ---'
for f in \
ee/maintained-apps/outputs/julia-app/darwin.json \
ee/maintained-apps/outputs/julia-app/windows.json
do
if [ -f "$f" ]; then
printf '\n[%s]\n' "$f"
sed -n '1,24p' "$f"
else
printf '\n[%s] missing\n' "$f"
fi
done
printf '%s\n' '--- Julia release references in repository ---'
rg -n --glob '!node_modules' --glob '!dist' --glob '!build' \
'1\.12\.[0-9]+|julia-1\.12\.[0-9]+|julialang-s3' \
ee/maintained-apps/outputs/julia-app .github 2>/dev/null | head -200 || true
printf '%s\n' '--- official Julia release metadata ---'
for url in \
https://julialang.org/downloads/oldreleases/ \
https://julialang.org/downloads/
do
printf '\n[%s]\n' "$url"
curl -L --fail --silent --show-error --max-time 20 "$url" |
rg -o -i '.{0,100}(v1\.12\.[0-9]+|julia-1\.12\.[0-9]+|1\.12\.[0-9]+).{0,180}' |
head -40 || true
doneRepository: fleetdm/fleet Length of output: 19645 Do not publish Julia 1.12.7 metadata on either platform. The official release index lists
📍 Affects 2 files
🤖 Prompt for AI AgentsSource: MCP tools |
||
| "default_categories": [ | ||
| "Productivity" | ||
| ] | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
Repository: fleetdm/fleet
Length of output: 50370
🏁 Script executed:
Repository: fleetdm/fleet
Length of output: 50369
🏁 Script executed:
Repository: fleetdm/fleet
Length of output: 50371
🌐 Web query:
ChatGPT macOS desktop app Intel x86_64 support official download💡 Result:
There is no official ChatGPT desktop app for Intel (x86_64) Macs [1][2][3]. The official ChatGPT desktop application for macOS requires Apple Silicon (M1 processor or later) and macOS 14 or later [1][2]. OpenAI has not released an Intel-compatible version of the desktop app, and the official download page is designed to support only Apple Silicon architecture [4][5]. Users on Intel-based Macs are encouraged to use the web-based version of ChatGPT in their browser, which provides full functionality without requiring the desktop application [3]. While some community-driven projects exist that attempt to build unofficial, Intel-compatible versions of the app from source code, these are not supported by OpenAI, may pose security risks, and do not receive automatic updates [6][3]. Official documentation confirms that there are no plans to support older architectures [1][7].
Citations:
🌐 Web query:
Cursor macOS download Intel x64 universal Apple silicon official💡 Result:
Cursor provides official downloads for macOS that support both Intel (x64) and Apple Silicon (ARM64) architectures [1]. You can access these through the official download page at https://cursor.com/download [2]. For optimal performance, it is recommended to download the specific build that matches your hardware: - Apple Silicon Macs: Download the Mac ARM64 build to run natively [1][3][4]. - Intel Macs: Download the Mac x64 build [1][5]. While a "Universal" build is sometimes available or referenced, users on Apple Silicon devices may occasionally receive prompts to use the native ARM64 version if they are running an emulated x64/universal build [3][4]. To ensure you have the native version for your specific machine, you can select the architecture-specific installer directly from the Cursor website if the default download does not automatically match your system [1][4].
Citations:
Use an Intel-compatible Cursor installer.
The generic Darwin manifest has one
installer_url, but the current URL is ARM64-only. Use a universal or x64-compatible artifact, or add architecture-aware package selection atee/maintained-apps/outputs/cursor/darwin.json:10.📍 Affects 2 files
ee/maintained-apps/outputs/chatgpt/darwin.json#L10-L10(this comment)ee/maintained-apps/outputs/cursor/darwin.json#L10-L10🤖 Prompt for AI Agents