Racket uses checksums to test if it needs to recompile its source files to bytecode. If Racket is updated by grafting, the source and bytecode files get updated, but the checksum stays the same. Since the checksum no longer matches the source file, Racket tries to regenerate the bytecode and write it to the store, causing errors because the store is immutable. This patch makes Racket ignore checksums for files in the store. See for details. --- --- a/collects/compiler/private/cm-minimal.rkt +++ b/collects/compiler/private/cm-minimal.rkt @@ -6,6 +6,7 @@ racket/list racket/path racket/promise + racket/string file/sha1 setup/cross-system compiler/compilation-path @@ -268,7 +269,8 @@ (trace-printf "newer src... ~a > ~a" path-time path-zo-time) (maybe-compile-zo deps path->mode roots path orig-path read-src-syntax up-to-date collection-cache new-seen #:trying-sha1? sha1-only?)] - [(different-source-sha1-and-dep-recorded path deps) + [(and (not (store-reference? path)) + (different-source-sha1-and-dep-recorded path deps)) => (lambda (difference) (trace-printf "different src hash ~a for ~a..." difference path) (maybe-compile-zo deps path->mode roots path orig-path read-src-syntax up-to-date collection-cache new-seen @@ -1012,5 +1014,9 @@ #f (list src-hash recorded-hash))) +(define (store-reference? path) + (let ([store-prefix (or (getenv "NIX_STORE") "/gnu/store")]) + (string-prefix? (path->string path) store-prefix))) + ;; Make sure `recompile-from` is machine-independent so that ;; recompilation makes sense. ;; The compilation lock must is held for the source of `recompile-from`.h' size='10' name='q' value=''/>
path: root/gnu/services/sound.scm
AgeCommit message (Expand)Author
2020-05-06services: Do not use symbolic links in PulseAudio variables....This addresses <https://bugs.gnu.org/40837> by making these configuration files more easily accessible within the WebKitGTK sandbox. * gnu/services/sound.scm (pulseaudio-environment): Move below PULSEAUDIO-CONF-ENTRY. Instantiate PULSE_CONFIG and PULSE_CLIENTCONFIG entries directly instead of referring to /etc/pulse. (pulseaudio-etc): Do not create /etc/pulse/client.conf and /etc/pulse/daemon.conf. Marius Bakke
2020-01-11services: Split ladspa-service-type from pulseaudio-service-type....* gnu/services/sound.scm (ladspa-configuration): New record. (ladspa-environment): New procedure. (ladspa-service-type): New service type. (pulseaudio-environment): Remove LADSPA_PATH. * doc/guix.texi: Adjust documentation. Signed-off-by: Marius Bakke <mbakke@fastmail.com> Leo Prikler
2020-01-11services: pulseaudio-configuration: Set flat-volumes to no....* gnu/services/sound (pulseaudio-configuration) [daemon-conf]: Disable flat-volumes, which causes unpleasant experiences to users when applications inadvertently max out the system volume (e.g. as in #38172). Signed-off-by: Marius Bakke <mbakke@fastmail.com> Leo Prikler
2020-01-11services: Add pulseaudio-configuration....* gnu/services/sound (<pulseaudio-configuration>): New record. (pulseaudio-etc): New procedure. (pulseaudio-environment): Add PULSE_CONFIG and PULSE_CLIENTCONFIG. (pulseaudio-service-type): Update accordingly. Signed-off-by: Marius Bakke <mbakke@fastmail.com> Leo Prikler
2020-01-08services: Add pulseaudio service....* gnu/services/sound.scm (pulseaudio-environment): New procedure. (pulseaudio-service-type): New variable. * doc/guix.texi (Sound Services): Document it. Oleg Pykhalov