diff --git a/snamellit/packages/uv.scm b/snamellit/packages/uv.scm new file mode 100644 index 0000000..953f57f --- /dev/null +++ b/snamellit/packages/uv.scm @@ -0,0 +1,70 @@ +(define-module (snamellit packages uv) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system copy) + #:use-module (guix utils) + #:use-module (gnu packages) + #:use-module (gnu packages gcc) + #:use-module (gnu packages base) + #:use-module (gnu packages elf) + #:use-module (guix licenses)) + +;; found at https://git.sr.ht/~alex-iam/alex-guix-channel/tree/master/item/alex/packages/uv.scm + +(define-public uv + (package + (name "uv") + (version "0.8.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/astral-sh/uv/releases/download/" + version + "/uv-x86_64-unknown-linux-gnu.tar.gz")) + (sha256 + (base32 "1bdhi34cwc051xqxp8h5hs4bzmix52hx9s5jxxd4b2l686jjijvd")))) + (build-system copy-build-system) + (inputs + `(("gcc:lib" ,gcc "lib") + ("glibc" ,glibc))) + (native-inputs (list patchelf)) + (arguments + `(#:install-plan + '(("uv" "bin/") + ("uvx" "bin/")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'make-executables + (lambda _ + (for-each make-file-writable '("uv" "uvx")) + #t)) + (add-after 'install 'patch-runpath + (lambda* (#:key outputs inputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (gcc-lib (assoc-ref inputs "gcc:lib")) + (libgcc-path (string-append gcc-lib "/lib/libgcc_s.so.1")) + (glibc (assoc-ref inputs "glibc")) + (glibc-lib (string-append glibc "/lib")) + (dynamic-linker (string-append glibc-lib "/ld-linux-x86-64.so.2"))) + + (for-each + (lambda (exe) + (invoke "patchelf" + "--set-interpreter" dynamic-linker + (string-append bin "/" exe)) + (invoke "patchelf" + "--set-rpath" + (string-append gcc-lib "/lib:" glibc-lib) + (string-append bin "/" exe))) + '("uv" "uvx")) + #t)))))) + (synopsis "Fast Python package manager (prebuilt binary)") + (description + "uv is a fast and unified Python package manager, written in Rust. This version installs the official prebuilt binaries.") + (home-page "https://astral.sh/uv") + (license expat))) + + +uv