$OpenBSD: patch-collects_compiler_private_write-perm_rkt,v 1.1 2016/01/14 21:21:01 juanfra Exp $

http://bugs.racket-lang.org/query/?cmd=view&pr=15214

https://github.com/racket/racket/commit/9498bdd

--- collects/compiler/private/write-perm.rkt.orig	Thu Jan 14 21:41:32 2016
+++ collects/compiler/private/write-perm.rkt	Thu Jan 14 21:41:32 2016
@@ -0,0 +1,21 @@
+#lang racket/base
+
+(provide ensure-writable
+         done-writable)
+
+;; Returns #f (no change needed) or old permissions
+(define (ensure-writable dest-exe)
+  (cond
+   [(member 'write (file-or-directory-permissions dest-exe))
+    ;; No change needed
+    #f]
+   [else
+    (define old-perms
+      (file-or-directory-permissions dest-exe 'bits))
+    (file-or-directory-permissions dest-exe (bitwise-ior old-perms #o200))
+    old-perms]))
+
+;; Restores old permissions (if not #f)
+(define (done-writable dest-exe old-perms)
+  (when old-perms
+    (file-or-directory-permissions dest-exe old-perms)))
