(define* (unpack #:key source #:allow-other-keys) "Unpack the jar archive SOURCE. When SOURCE is not a jar archive fall back to the default GNU unpack strategy." (if (string-suffix? ".jar" source) (begin (mkdir "src") (with-directory-excursion "src" (invoke "jar" "-xf" source)) #t) ;; Use GNU unpack strategy for things that aren't jar archives. ((assq-ref gnu:%standard-phases 'unpack) #:source source))) Hmm... maybe the patched source gets a random name that doesn't end in ".jar"