diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index b9dfd7b0f162cab554fe046fabf8a67b4f512287..06c43a0483b5852db7e9b6c63ab98d85b3d212e7 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -725,13 +725,14 @@ (define-public virtualgl
     (version "2.6")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/VirtualGL/virtualgl/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/VirtualGL/virtualgl.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "1ck1d0w19cgyqvrb9mdlj6l5db90xf18yln71kdninlqxvpgj6h7"))))
+         "0di2igj2bhwb153fndgxks7y57pyhp0gj31n47j93gb7lxc9qcck"))))
     (arguments
      `(#:tests? #f                      ; no tests are available
        #:configure-flags (list