From 7f1ab9080664aba7da4d62ecf1728997381b8641 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 25 May 2017 12:35:22 -0600 Subject: [PATCH] raco exe on Mac OS: ensure that "PkgInfo" is writable Relevant to #1680 --- racket/collects/compiler/embed.rkt | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/racket/collects/compiler/embed.rkt b/racket/collects/compiler/embed.rkt index 283d0fbdfd..6af647a9cf 100644 --- a/racket/collects/compiler/embed.rkt +++ b/racket/collects/compiler/embed.rkt @@ -271,12 +271,13 @@ #:exists 'truncate (lambda (port) (write-plist new-plist port))))) - (call-with-output-file (build-path dest - "Contents" - "PkgInfo") - #:exists 'truncate - (lambda (port) - (fprintf port "APPL~a" creator))) + (let* ([pkginfo-path (build-path dest "Contents" "PkgInfo")] + [old-perms (ensure-writable pkginfo-path)]) + (call-with-output-file pkginfo-path + #:exists 'truncate + (lambda (port) + (fprintf port "APPL~a" creator))) + (done-writable pkginfo-path old-perms)) (when resource-files (for-each (lambda (p) (let-values ([(base name dir?) (split-path p)])