Add ChatGPT label (with appNewVersion)
Add ChatGPT label (with appNewVersion)
./assemble.sh --labels DevLabels/ chatgpt
2024-07-05 12:09:32 : REQ : chatgpt : ################## Start Installomator v. 10.6beta, date 2024-07-05 2024-07-05 12:09:32 : INFO : chatgpt : ################## Version: 10.6beta 2024-07-05 12:09:32 : INFO : chatgpt : ################## Date: 2024-07-05 2024-07-05 12:09:32 : INFO : chatgpt : ################## chatgpt 2024-07-05 12:09:32 : DEBUG : chatgpt : DEBUG mode 1 enabled. 2024-07-05 12:09:32 : INFO : chatgpt : SwiftDialog is not installed, clear cmd file var 2024-07-05 12:09:33 : DEBUG : chatgpt : name=ChatGPT 2024-07-05 12:09:33 : DEBUG : chatgpt : appName= 2024-07-05 12:09:33 : DEBUG : chatgpt : type=dmg 2024-07-05 12:09:33 : DEBUG : chatgpt : archiveName= 2024-07-05 12:09:33 : DEBUG : chatgpt : downloadURL=https://persistent.oaistatic.com/sidekick/public/ChatGPT_Desktop_public_latest.dmg 2024-07-05 12:09:33 : DEBUG : chatgpt : curlOptions= 2024-07-05 12:09:33 : DEBUG : chatgpt : appNewVersion=1.2024.171 2024-07-05 12:09:33 : DEBUG : chatgpt : appCustomVersion function: Not defined 2024-07-05 12:09:33 : DEBUG : chatgpt : versionKey=CFBundleShortVersionString 2024-07-05 12:09:33 : DEBUG : chatgpt : packageID= 2024-07-05 12:09:33 : DEBUG : chatgpt : pkgName= 2024-07-05 12:09:33 : DEBUG : chatgpt : choiceChangesXML= 2024-07-05 12:09:33 : DEBUG : chatgpt : expectedTeamID=2DC432GLL2 2024-07-05 12:09:33 : DEBUG : chatgpt : blockingProcesses= 2024-07-05 12:09:33 : DEBUG : chatgpt : installerTool= 2024-07-05 12:09:33 : DEBUG : chatgpt : CLIInstaller= 2024-07-05 12:09:33 : DEBUG : chatgpt : CLIArguments= 2024-07-05 12:09:33 : DEBUG : chatgpt : updateTool= 2024-07-05 12:09:33 : DEBUG : chatgpt : updateToolArguments= 2024-07-05 12:09:33 : DEBUG : chatgpt : updateToolRunAsCurrentUser= 2024-07-05 12:09:33 : INFO : chatgpt : BLOCKING_PROCESS_ACTION=tell_user 2024-07-05 12:09:33 : INFO : chatgpt : NOTIFY=success 2024-07-05 12:09:33 : INFO : chatgpt : LOGGING=DEBUG 2024-07-05 12:09:33 : INFO : chatgpt : LOGO=/System/Applications/App Store.app/Contents/Resources/AppIcon.icns 2024-07-05 12:09:33 : INFO : chatgpt : Label type: dmg 2024-07-05 12:09:33 : INFO : chatgpt : archiveName: ChatGPT.dmg 2024-07-05 12:09:33 : INFO : chatgpt : no blocking processes defined, using ChatGPT as default 2024-07-05 12:09:33 : DEBUG : chatgpt : Changing directory to /Users/ithompson/Downloads/Installomator-ChatGPT-label/build 2024-07-05 12:09:33 : INFO : chatgpt : name: ChatGPT, appName: ChatGPT.app 2024-07-05 12:09:33 : WARN : chatgpt : No previous app found 2024-07-05 12:09:33 : WARN : chatgpt : could not find ChatGPT.app 2024-07-05 12:09:33 : INFO : chatgpt : appversion: 2024-07-05 12:09:33 : INFO : chatgpt : Latest version of ChatGPT is 1.2024.171 2024-07-05 12:09:33 : REQ : chatgpt : Downloading https://persistent.oaistatic.com/sidekick/public/ChatGPT_Desktop_public_latest.dmg to ChatGPT.dmg 2024-07-05 12:09:33 : DEBUG : chatgpt : No Dialog connection, just download 2024-07-05 12:09:34 : DEBUG : chatgpt : File list: -rw-r--r-- 1 ithompson staff 46M Jul 5 12:09 ChatGPT.dmg 2024-07-05 12:09:34 : DEBUG : chatgpt : File type: ChatGPT.dmg: zlib compressed data 2024-07-05 12:09:34 : DEBUG : chatgpt : curl output was:
- Host persistent.oaistatic.com:443 was resolved.
- IPv6: (none)
- IPv4: 104.18.13.201, 104.18.12.201
- Trying 104.18.13.201:443...
- Connected to persistent.oaistatic.com (104.18.13.201) port 443
- ALPN: curl offers h2,http/1.1
- (304) (OUT), TLS handshake, Client hello (1): } [329 bytes data]
- CAfile: /etc/ssl/cert.pem
- CApath: none
- (304) (IN), TLS handshake, Server hello (2): { [122 bytes data]
- (304) (IN), TLS handshake, Unknown (8): { [19 bytes data]
- (304) (IN), TLS handshake, Certificate (11): { [3437 bytes data]
- (304) (IN), TLS handshake, CERT verify (15): { [78 bytes data]
- (304) (IN), TLS handshake, Finished (20): { [36 bytes data]
- (304) (OUT), TLS handshake, Finished (20): } [36 bytes data]
- SSL connection using TLSv1.3 / AEAD-CHACHA20-POLY1305-SHA256 / [blank] / UNDEF
- ALPN: server accepted h2
- Server certificate:
- subject: CN=persistent.oaistatic.com
- start date: Jun 25 20:41:19 2024 GMT
- expire date: Sep 23 20:41:18 2024 GMT
- subjectAltName: host "persistent.oaistatic.com" matched cert's "persistent.oaistatic.com"
- issuer: C=US; O=Let's Encrypt; CN=E6
- SSL certificate verify ok.
- using HTTP/2
- [HTTP/2] [1] OPENED stream for https://persistent.oaistatic.com/sidekick/public/ChatGPT_Desktop_public_latest.dmg
- [HTTP/2] [1] [:method: GET]
- [HTTP/2] [1] [:scheme: https]
- [HTTP/2] [1] [:authority: persistent.oaistatic.com]
- [HTTP/2] [1] [:path: /sidekick/public/ChatGPT_Desktop_public_latest.dmg]
- [HTTP/2] [1] [user-agent: curl/8.6.0]
- [HTTP/2] [1] [accept: /]
GET /sidekick/public/ChatGPT_Desktop_public_latest.dmg HTTP/2 Host: persistent.oaistatic.com User-Agent: curl/8.6.0 Accept: /
< HTTP/2 200 < date: Fri, 05 Jul 2024 19:09:33 GMT < content-type: application/x-apple-diskimage < content-length: 48519669 < cache-control: max-age=300 < content-md5: OegrDUOmOJd+gOuWvKkBEw== < last-modified: Wed, 03 Jul 2024 18:02:20 GMT < etag: 0x8DC9B8A48562083 < x-ms-request-id: 424b97ce-e01e-0073-1573-cd9c51000000 < x-ms-version: 2009-09-19 < x-ms-lease-status: unlocked < x-ms-blob-type: BlockBlob < access-control-expose-headers: content-length < access-control-allow-origin: * < cf-cache-status: HIT < age: 130 < accept-ranges: bytes < set-cookie: __cf_bm=4cMjtZq5s5TKWidJILBqdK29Rs.Gj_Rn6i0gtloAGHk-1720206573-1.0.1.1-Dra_0b_1pLbXedVhMJSXXLOPAisrnztEGt_lvtJx3W0DjtNcF2vliqu0IPoUf6Rqwv5zs9wAj_ggJuhXIAze0g; path=/; expires=Fri, 05-Jul-24 19:39:33 GMT; domain=.oaistatic.com; HttpOnly; Secure; SameSite=None < strict-transport-security: max-age=31536000; includeSubDomains; preload < x-content-type-options: nosniff < set-cookie: _cfuvid=zr07tzVm.EHgzn67Lr5kkMWLEnkQVbKV.7O3G6Z_OL8-1720206573628-0.0.1.1-604800000; path=/; domain=.oaistatic.com; HttpOnly; Secure; SameSite=None < server: cloudflare < cf-ray: 89e9a66d1e009803-SJC < alt-svc: h3=":443"; ma=86400 < { [42433 bytes data]
- Connection #0 to host persistent.oaistatic.com left intact
2024-07-05 12:09:34 : DEBUG : chatgpt : DEBUG mode 1, not checking for blocking processes 2024-07-05 12:09:34 : REQ : chatgpt : Installing ChatGPT 2024-07-05 12:09:34 : INFO : chatgpt : Mounting /Users/ithompson/Downloads/Installomator-ChatGPT-label/build/ChatGPT.dmg 2024-07-05 12:09:38 : DEBUG : chatgpt : Debugging enabled, dmgmount output was: Checksumming Protective Master Boot Record (MBR : 0)… Protective Master Boot Record (MBR :: verified CRC32 $E14B5432 Checksumming GPT Header (Primary GPT Header : 1)… GPT Header (Primary GPT Header : 1): verified CRC32 $D378FA74 Checksumming GPT Partition Data (Primary GPT Table : 2)… GPT Partition Data (Primary GPT Tabl: verified CRC32 $B345CF1D Checksumming (Apple_Free : 3)… (Apple_Free : 3): verified CRC32 $00000000 Checksumming disk image (Apple_HFS : 4)… disk image (Apple_HFS : 4): verified CRC32 $C14F67FF Checksumming (Apple_Free : 5)… (Apple_Free : 5): verified CRC32 $00000000 Checksumming GPT Partition Data (Backup GPT Table : 6)… GPT Partition Data (Backup GPT Table: verified CRC32 $B345CF1D Checksumming GPT Header (Backup GPT Header : 7)… GPT Header (Backup GPT Header : 7): verified CRC32 $B086A371 verified CRC32 $145767E1 /dev/disk7 GUID_partition_scheme /dev/disk7s1 Apple_HFS /Volumes/ChatGPT Installer
2024-07-05 12:09:38 : INFO : chatgpt : Mounted: /Volumes/ChatGPT Installer 2024-07-05 12:09:38 : INFO : chatgpt : Verifying: /Volumes/ChatGPT Installer/ChatGPT.app 2024-07-05 12:09:38 : DEBUG : chatgpt : App size: 138M /Volumes/ChatGPT Installer/ChatGPT.app 2024-07-05 12:09:39 : DEBUG : chatgpt : Debugging enabled, App Verification output was: /Volumes/ChatGPT Installer/ChatGPT.app: accepted source=Notarized Developer ID origin=Developer ID Application: OpenAI, L.L.C. (2DC432GLL2)
2024-07-05 12:09:39 : INFO : chatgpt : Team ID matching: 2DC432GLL2 (expected: 2DC432GLL2 ) 2024-07-05 12:09:39 : INFO : chatgpt : Installing ChatGPT version 1.2024.171 on versionKey CFBundleShortVersionString. 2024-07-05 12:09:39 : INFO : chatgpt : App has LSMinimumSystemVersion: 14.0 2024-07-05 12:09:39 : DEBUG : chatgpt : DEBUG mode 1 enabled, skipping remove, copy and chown steps 2024-07-05 12:09:39 : INFO : chatgpt : Finishing... 2024-07-05 12:09:42 : INFO : chatgpt : name: ChatGPT, appName: ChatGPT.app 2024-07-05 12:09:43 : WARN : chatgpt : No previous app found 2024-07-05 12:09:43 : WARN : chatgpt : could not find ChatGPT.app 2024-07-05 12:09:43 : REQ : chatgpt : Installed ChatGPT, version 1.2024.171 2024-07-05 12:09:43 : INFO : chatgpt : notifying 2024-07-05 12:09:43 : DEBUG : chatgpt : Unmounting /Volumes/ChatGPT Installer 2024-07-05 12:09:43 : DEBUG : chatgpt : Debugging enabled, Unmounting output was: "disk7" ejected. 2024-07-05 12:09:43 : DEBUG : chatgpt : DEBUG mode 1, not reopening anything 2024-07-05 12:09:43 : REQ : chatgpt : All done! 2024-07-05 12:09:43 : REQ : chatgpt : ################## End Installomator, exit code 0
https://persistent.oaistatic.com/sidekick/public/ChatGPT_Desktop_public_latest.dmg is still serving 1.2024.199 even though 1.2024.212 is current. Not sure if there's anything we can do though as that may be the only download link. I have users update ChatGPT through Self Service to get around the admin prompt for the built-in updater and was wondering why it hasn't been working.
Edit: I think I came up with a workaround for the above issue.
Again, the current downloadURL is currently downloading a version that is two behind current. So when launching for the first time, you'd get admin credential prompt to update. And using the label to update to the latest wouldn't work.
You can download the latest version: https://persistent.oaistatic.com/sidekick/public/ChatGPT_Desktop_public_1.2024.212_1722628638.dmg
Label that would download the above:
chatgpt)
name="ChatGPT"
type="dmg"
appNewVersion="$(curl -fs "https://persistent.oaistatic.com/sidekick/public/sparkle_public_appcast.xml" | xpath '(//rss/channel/item/title)[1]/text()' 2>/dev/null)"
appLongVersion="$(curl -fs "https://persistent.oaistatic.com/sidekick/public/sparkle_public_appcast.xml" | xpath '(//rss/channel/item/sparkle:version)[1]/text()' 2>/dev/null)"
downloadURL="https://persistent.oaistatic.com/sidekick/public/ChatGPT_Desktop_public_${appNewVersion}_${appLongVersion}.dmg"
expectedTeamID="2DC432GLL2"
;;
Output:
Script result: 2024-08-08 19:08:29 : REQ : : shifting arguments for Jamf
2024-08-08 19:08:29 : REQ : chatgpt : ################## Start Installomator v. 10.6beta, date 2024-04-23
2024-08-08 19:08:29 : INFO : chatgpt : ################## Version: 10.6beta
2024-08-08 19:08:29 : INFO : chatgpt : ################## Date: 2024-04-23
2024-08-08 19:08:29 : INFO : chatgpt : ################## chatgpt
2024-08-08 19:08:29 : INFO : chatgpt : BLOCKING_PROCESS_ACTION=prompt_user_then_kill
2024-08-08 19:08:29 : INFO : chatgpt : NOTIFY=silent
2024-08-08 19:08:29 : INFO : chatgpt : LOGGING=INFO
2024-08-08 19:08:29 : INFO : chatgpt : LOGO=/Library/Application Support/JAMF/Jamf.app/Contents/Resources/AppIcon.icns
2024-08-08 19:08:29 : INFO : chatgpt : Label type: dmg
2024-08-08 19:08:29 : INFO : chatgpt : archiveName: ChatGPT.dmg
2024-08-08 19:08:29 : INFO : chatgpt : no blocking processes defined, using ChatGPT as default
2024-08-08 19:08:29 : INFO : chatgpt : App(s) found: /Applications/ChatGPT.app
2024-08-08 19:08:29 : INFO : chatgpt : found app at /Applications/ChatGPT.app, version 1.2024.199, on versionKey CFBundleShortVersionString
2024-08-08 19:08:29 : INFO : chatgpt : appversion: 1.2024.199
2024-08-08 19:08:29 : INFO : chatgpt : Label is not of type “updateronly”, and it’s set to use force to install or ignoring app store apps, so not using updateTool.
2024-08-08 19:08:29 : INFO : chatgpt : Latest version of ChatGPT is 1.2024.212
2024-08-08 19:08:29 : REQ : chatgpt : Downloading https://persistent.oaistatic.com/sidekick/public/ChatGPT_Desktop_public_1.2024.212_1722628638.dmg to ChatGPT.dmg
2024-08-08 19:08:30 : REQ : chatgpt : no more blocking processes, continue with update
2024-08-08 19:08:30 : REQ : chatgpt : Installing ChatGPT
2024-08-08 19:08:30 : INFO : chatgpt : Mounting /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.60O2Ab2QLW/ChatGPT.dmg
2024-08-08 19:08:32 : INFO : chatgpt : Mounted: /Volumes/ChatGPT Installer
2024-08-08 19:08:32 : INFO : chatgpt : Verifying: /Volumes/ChatGPT Installer/ChatGPT.app
2024-08-08 19:08:34 : INFO : chatgpt : Team ID matching: 2DC432GLL2 (expected: 2DC432GLL2 )
2024-08-08 19:08:34 : INFO : chatgpt : Downloaded version of ChatGPT is 1.2024.212 on versionKey CFBundleShortVersionString (replacing version 1.2024.199).
2024-08-08 19:08:34 : INFO : chatgpt : App has LSMinimumSystemVersion: 14.0
2024-08-08 19:08:34 : WARN : chatgpt : Removing existing /Applications/ChatGPT.app
2024-08-08 19:08:36 : INFO : chatgpt : Copy /Volumes/ChatGPT Installer/ChatGPT.app to /Applications
2024-08-08 19:08:45 : WARN : chatgpt : Changing owner to whiteb
2024-08-08 19:08:46 : INFO : chatgpt : Finishing...
2024-08-08 19:08:49 : INFO : chatgpt : App(s) found: /Applications/ChatGPT.app
2024-08-08 19:08:49 : INFO : chatgpt : found app at /Applications/ChatGPT.app, version 1.2024.212, on versionKey CFBundleShortVersionString
2024-08-08 19:08:49 : REQ : chatgpt : Installed ChatGPT, version 1.2024.212
2024-08-08 19:08:49 : INFO : chatgpt : Installomator did not close any apps, so no need to reopen any apps.
2024-08-08 19:08:49 : REQ : chatgpt : All done!
2024-08-08 19:08:49 : REQ : chatgpt : ################## End Installomator, exit code 0
Hi, Brad—thanks for flagging this and working through it! Looks good to me. It's odd that OpenAI hasn't updated the download at the evergreen URL, as they are still serving it as the primary download URL on their own site. In any case, yours looks like the best approach to capture the newest version. Do you want to submit a pull request and I will retract mine?
FYI:
The "appNewVersion" isn't working for me.
curl -fs "https://persistent.oaistatic.com/sidekick/public/sparkle_public_appcast.xml" | xpath '(//rss/channel/item/title)[1]/text()'
Usage:
/usr/bin/xpath [options] -e query [-e query...] [filename...]
If no filenames are given, supply XML on STDIN. You must provide at
least one query. Each supplementary query is done in order, the
previous query giving the context of the next one.
Options:
-q quiet, only output the resulting PATH.
-s suffix, use suffix instead of linefeed.
-p postfix, use prefix instead of nothing.
-n Don't use an external DTD.
I believe this error is occurring because macOS uses an older version of xpath that does not support XPath 1.0 syntax with expressions in parentheses (such as (//rss/channel/item/title)[1]). You can resolve this by using an alternative method like xmllint, which is commonly available by default on macOS.
curl -fs "https://persistent.oaistatic.com/sidekick/public/sparkle_public_appcast.xml" | xmllint --xpath 'string(//rss/channel/item/title[1])' -
1.2024.261
FYI:
I created a new pull request here with the fix to the "appNewVersion" in this pull request label.
https://github.com/Installomator/Installomator/pull/1926
https://persistent.oaistatic.com/sidekick/public/ChatGPT_Desktop_public_latest.dmg
This now pulls the latest version (As of today, atleast). I'd recommend this closed and pushed to main branch.
🤖 Validation robot 🤖 File fragments/labels/chatgpt.sh ** Label info: ├ ✅ correct line ending ├ ✅ Name: ChatGPT ├ ✅ Type: dmg ├ ✅ Expected Team: 2DC432GLL2 ├ ✅ App New Version: 1.2025.031 └ Download URL: https://persistent.oaistatic.com/sidekick/public/ChatGPT_Desktop_public_latest.dmg ├ ✅ URL is reachable └ ✅ Download Size: 65.6 MB ✅ All checks passed
Thank you!