diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 1dcd5f76a5..f61044f76b 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -14078,7 +14078,35 @@ (define-public ruby-sorbet-runtime (package (name "ruby-sorbet-runtime") (version sorbet-version) - (source (make-sorbet-gem-source "runtime")) + (source + (origin + (inherit sorbet-monorepo) + (file-name (git-file-name name version)) + (modules '((guix build utils) + (ice-9 ftw))) + (snippet + #~(begin + (use-modules (guix build utils)) + (let* ((name "runtime") + (gems "gems") + (gem (string-append gems "/sorbet-" name))) + (for-each + (lambda (x) + (unless (or (string=? "." x) + (string=? ".." x)) + (delete-file-recursively x))) + (scandir "." + (lambda (x) + (and (eq? (stat:type (stat x)) 'directory) + (not (string-prefix? gems x)))))) + (for-each + delete-file + (find-files "." + (lambda (x _) + (not (string-prefix? (string-append "./" gems) x))) + #:directories? #f)) + (copy-recursively gem ".") + (delete-file-recursively gems)))))) (build-system ruby-build-system) ;; 25 out of 841 tests currently fail, seemingly due to invalid ;; assumptions about file names in the build environment (see: