Merge branch 'grafting' into 'master'
Draft: nonguix: Add package-input-grafting. See merge request nonguix/nonguix!608
This commit is contained in:
commit
a58d16d5df
|
@ -876,19 +876,8 @@ variables @code{__GLX_VENDOR_LIBRARY_NAME=nvidia} and
|
||||||
(package-propagated-inputs nvidia-driver-beta)))
|
(package-propagated-inputs nvidia-driver-beta)))
|
||||||
(inputs (list mesa-for-nvda nvidia-driver-beta))))
|
(inputs (list mesa-for-nvda nvidia-driver-beta))))
|
||||||
|
|
||||||
(define mesa/fake
|
(define-deprecated/public-alias replace-mesa
|
||||||
(package
|
(package-input-grafting (list (cons mesa nvda))))
|
||||||
(inherit mesa)
|
|
||||||
(replacement nvda)))
|
|
||||||
|
|
||||||
(define-public mesa/fake-beta
|
|
||||||
(hidden-package
|
|
||||||
(package
|
|
||||||
(inherit mesa)
|
|
||||||
(replacement nvdb))))
|
|
||||||
|
|
||||||
(define-public replace-mesa
|
|
||||||
(package-input-rewriting `((,mesa . ,mesa/fake))))
|
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
|
|
|
@ -41,10 +41,6 @@
|
||||||
" This build of FFmpeg includes the nonfree NVIDIA encoder for
|
" This build of FFmpeg includes the nonfree NVIDIA encoder for
|
||||||
@code{h264_nvenc} and @code{hevc_nvenc} hardware encoding on NVIDIA GPUs."))))
|
@code{h264_nvenc} and @code{hevc_nvenc} hardware encoding on NVIDIA GPUs."))))
|
||||||
|
|
||||||
(define-public replace-ffmpeg-nvenc
|
|
||||||
(package-input-rewriting
|
|
||||||
`((,ffmpeg . ,ffmpeg-nvenc))))
|
|
||||||
|
|
||||||
(define-public gmmlib
|
(define-public gmmlib
|
||||||
(package
|
(package
|
||||||
(name "gmmlib")
|
(name "gmmlib")
|
||||||
|
@ -222,13 +218,3 @@ codec APIs.")
|
||||||
(package-description obs)
|
(package-description obs)
|
||||||
" This build of OBS includes embeded Chromium-based browser to enable
|
" This build of OBS includes embeded Chromium-based browser to enable
|
||||||
Browser source."))))
|
Browser source."))))
|
||||||
|
|
||||||
(define-public obs-nvenc
|
|
||||||
(let ((obs-ffmpeg-nvenc (replace-ffmpeg-nvenc obs)))
|
|
||||||
(package/inherit obs-ffmpeg-nvenc
|
|
||||||
(name "obs-nvenc")
|
|
||||||
(description
|
|
||||||
(string-append
|
|
||||||
(package-description obs)
|
|
||||||
" This build of OBS includes the nonfree NVIDIA encoder for FFmpeg
|
|
||||||
@code{h264_nvenc} and @code{hevc_nvenc} hardware encoding on NVIDIA GPUs.")))))
|
|
||||||
|
|
|
@ -11,7 +11,8 @@
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (gnu services)
|
#:use-module (gnu services)
|
||||||
#:export (with-transformation))
|
#:export (package-input-grafting
|
||||||
|
with-transformation))
|
||||||
|
|
||||||
(define-public (to32 package64)
|
(define-public (to32 package64)
|
||||||
"Build package for i686-linux.
|
"Build package for i686-linux.
|
||||||
|
@ -26,6 +27,34 @@ Only x86_64-linux and i686-linux are supported.
|
||||||
,@(package-arguments package64)))))
|
,@(package-arguments package64)))))
|
||||||
(_ package64)))
|
(_ package64)))
|
||||||
|
|
||||||
|
(define (package-input-grafting replacements)
|
||||||
|
"Return a procedure that, when passed a package, grafts its direct and
|
||||||
|
indirect dependencies, including implicit inputs, according to REPLACEMENTS.
|
||||||
|
REPLACEMENTS is a list of package pairs; the first element of each pair is the
|
||||||
|
package to replace, and the second one is the replacement.
|
||||||
|
|
||||||
|
Name and version of replacement packages will be padded to meet graft
|
||||||
|
requirement."
|
||||||
|
(package-input-rewriting
|
||||||
|
(map (match-lambda
|
||||||
|
((old . new)
|
||||||
|
`(,old . ,(package
|
||||||
|
(inherit old)
|
||||||
|
(replacement
|
||||||
|
(package
|
||||||
|
(inherit new)
|
||||||
|
(name
|
||||||
|
(string-pad-right
|
||||||
|
(package-name new)
|
||||||
|
(string-length (package-name old))
|
||||||
|
#\0))
|
||||||
|
(version
|
||||||
|
(string-pad-right
|
||||||
|
(package-version new)
|
||||||
|
(string-length (package-version old))
|
||||||
|
#\0))))))))
|
||||||
|
replacements)))
|
||||||
|
|
||||||
;; For concerns and direction of improvement, see this thread:
|
;; For concerns and direction of improvement, see this thread:
|
||||||
;; https://lists.gnu.org/archive/html/guix-devel/2024-06/msg00275.html
|
;; https://lists.gnu.org/archive/html/guix-devel/2024-06/msg00275.html
|
||||||
(define* (with-transformation proc obj #:optional (pred package?))
|
(define* (with-transformation proc obj #:optional (pred package?))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user