/usr/share/racket/collects/setup/winvers.rkt is in racket-common 6.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | ;; This is a wrapper around "winvers-change.rkt" to patch binary files with the
;; current version number.
#lang racket/base
(require racket/file "main-collects.rkt" "dirs.rkt")
(module test racket/base)
(define (make-copy)
(let* ([tmpdir (find-system-path 'temp-dir)]
[vers (build-path tmpdir "setvers")])
(unless (directory-exists? vers) (make-directory vers))
(for ([p (in-list '("racket.exe" "lib"))])
(let ([dest (build-path vers p)])
((cond [(file-exists? dest) delete-file]
[(directory-exists? dest) delete-directory/files]
[else void])
dest)
(copy-directory/files (build-path (find-console-bin-dir) p) dest)))
(build-path vers "racket.exe")))
(define (patch-files)
(parameterize ([current-command-line-arguments
(vector (path->string (find-console-bin-dir)))])
(dynamic-require 'setup/winvers-change #f)))
(define collects-dir
(path->string (find-collects-dir)))
(let ([argv (current-command-line-arguments)])
(cond [(equal? argv #())
(let ([exe (make-copy)])
(printf "re-launching first time...\n")
(subprocess
(current-output-port) (current-input-port) (current-error-port)
exe "--collects" collects-dir
"-l" "setup/winvers" "patch"))]
[(equal? argv #("patch"))
(sleep 1) ; time for other process to end
(patch-files)
(printf "re-launching last time...\n")
(subprocess
(current-output-port) (current-input-port) (current-error-port)
(build-path (find-console-bin-dir) "racket.exe")
"-l" "setup/winvers" "finish")]
[(equal? argv #("finish"))
(sleep 1) ; time for other process to end
(delete-directory/files
(build-path (find-system-path 'temp-dir) "setvers"))
(printf "done!\n")]
[else (error 'winvers "unknown command line: ~e" argv)])
(void))
|