From 0470b4b47452405907b70f27c7d048285be7f01e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 27 Jul 2022 14:15:52 +0200 Subject: gnu: rust-wayland-server: Add 0.29.4. * gnu/packages/crates-graphics.scm (rust-wayland-server-0.29): New variable. (rust-wayland-server-0.28): Inherit from it. --- gnu/packages/crates-graphics.scm | 49 +++++++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 8 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm index 0c9b323295..2b30720120 100644 --- a/gnu/packages/crates-graphics.scm +++ b/gnu/packages/crates-graphics.scm @@ -2828,17 +2828,17 @@ wayland-client crate for usable bindings.") (base32 "17mp49v7w0p0x5ry628lj2llljnwkr9aj9g4bqqhfibid32jhf5z")))))) -(define-public rust-wayland-server-0.28 +(define-public rust-wayland-server-0.29 (package (name "rust-wayland-server") - (version "0.28.3") + (version "0.29.4") (source (origin (method url-fetch) (uri (crate-uri "wayland-server" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "09jfdjfqhjfcpiz4csgh60ymfkmz1cl3jmxyzq9hzcp0kyyxix93")))) + (base32 "1wj8gf28dbjwb824i29wf3wr5r6wp6ssknjm9b5dnb1fah47mk66")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs @@ -2846,7 +2846,7 @@ wayland-client crate for usable bindings.") ("rust-downcast-rs" ,rust-downcast-rs-1) ("rust-lazy-static" ,rust-lazy-static-1) ("rust-libc" ,rust-libc-0.2) - ("rust-nix" ,rust-nix-0.18) + ("rust-nix" ,rust-nix-0.22) ("rust-parking-lot" ,rust-parking-lot-0.11) ("rust-scoped-tls" ,rust-scoped-tls-1)))) (inputs @@ -2854,12 +2854,12 @@ wayland-client crate for usable bindings.") rust-downcast-rs-1 rust-lazy-static-1 rust-libc-0.2 - rust-nix-0.18 + rust-nix-0.22 rust-parking-lot-0.11 rust-scoped-tls-1 - rust-wayland-commons-0.28 - rust-wayland-scanner-0.28 - rust-wayland-sys-0.28)) + rust-wayland-commons-0.29 + rust-wayland-scanner-0.29 + rust-wayland-sys-0.29)) (home-page "https://github.com/smithay/wayland-rs") (synopsis "Bindings to the standard C implementation of the wayland protocol") @@ -2868,6 +2868,39 @@ wayland-client crate for usable bindings.") the wayland protocol, server side.") (license license:expat))) +(define-public rust-wayland-server-0.28 + (package + (inherit rust-wayland-server-0.29) + (name "rust-wayland-server") + (version "0.28.3") + (source + (origin + (method url-fetch) + (uri (crate-uri "wayland-server" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "09jfdjfqhjfcpiz4csgh60ymfkmz1cl3jmxyzq9hzcp0kyyxix93")))) + (arguments + `(#:cargo-inputs + (("rust-bitflags" ,rust-bitflags-1) + ("rust-downcast-rs" ,rust-downcast-rs-1) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-libc" ,rust-libc-0.2) + ("rust-nix" ,rust-nix-0.18) + ("rust-parking-lot" ,rust-parking-lot-0.11) + ("rust-scoped-tls" ,rust-scoped-tls-1)))) + (inputs + (list rust-bitflags-1 + rust-downcast-rs-1 + rust-lazy-static-1 + rust-libc-0.2 + rust-nix-0.18 + rust-parking-lot-0.11 + rust-scoped-tls-1 + rust-wayland-commons-0.28 + rust-wayland-scanner-0.28 + rust-wayland-sys-0.28)))) + (define-public rust-wayland-server-0.23 (package (inherit rust-wayland-server-0.28) -- cgit v1.2.3 -os (simple-operating-system (service dhcp-client-service-type) (service guix-build-coordinator-service-type))) (define (run-guix-build-coordinator-test) (define os (marionette-operating-system %guix-build-coordinator-os #:imported-modules '((gnu services herd) (guix combinators)))) (define forwarded-port 8745) (define vm (virtual-machine (operating-system os) (memory-size 1024) (port-forwardings `((,forwarded-port . 8745))))) (define test (with-imported-modules '((gnu build marionette)) #~(begin (use-modules (srfi srfi-11) (srfi srfi-64) (gnu build marionette) (web uri) (web client) (web response)) (define marionette (make-marionette (list #$vm))) (test-runner-current (system-test-runner #$output)) (test-begin "guix-build-coordinator") (test-assert "service running" (marionette-eval '(begin (use-modules (gnu services herd)) (match (start-service 'guix-build-coordinator) (#f #f) (('service response-parts ...) (match (assq-ref response-parts 'running) ((pid) (number? pid)))))) marionette)) (test-equal "http-get" 200 (let-values (((response text) (http-get #$(simple-format #f "http://localhost:~A/metrics" forwarded-port) #:decode-body? #t))) (response-code response))) (test-end)))) (gexp->derivation "guix-build-coordinator-test" test)) (define %test-guix-build-coordinator (system-test (name "guix-build-coordinator") (description "Connect to a running Guix Build Coordinator.") (value (run-guix-build-coordinator-test)))) ;;; ;;; Guix Data Service ;;; (define guix-data-service-initial-database-setup-service (let ((user "guix_data_service") (name "guix_data_service")) (define start-gexp #~(lambda () (let ((pid (primitive-fork)) (postgres (getpwnam "postgres"))) (if (eq? pid 0) (dynamic-wind (const #t) (lambda () (setgid (passwd:gid postgres)) (setuid (passwd:uid postgres)) (primitive-exit (if (and (zero? (system* #$(file-append postgresql "/bin/createuser") #$user)) (zero? (system* #$(file-append postgresql "/bin/createdb") "-O" #$user #$name))) 0 1))) (lambda () (primitive-exit 1))) (zero? (cdr (waitpid pid))))))) (shepherd-service (requirement '(postgres)) (provision '(guix-data-service-initial-database-setup)) (start start-gexp) (stop #~(const #f)) (respawn? #f) (one-shot? #t) (documentation "Setup Guix Data Service database.")))) (define %guix-data-service-os (simple-operating-system (service dhcp-client-service-type) (service postgresql-service-type (postgresql-configuration (postgresql postgresql-10) (config-file (postgresql-config-file (hba-file (plain-file "pg_hba.conf" " local all all trust host all all 127.0.0.1/32 trust host all all ::1/128 trust")))))) (service guix-data-service-type (guix-data-service-configuration (host "0.0.0.0"))) (simple-service 'guix-data-service-database-setup shepherd-root-service-type (list guix-data-service-initial-database-setup-service)))) (define (run-guix-data-service-test) (define os (marionette-operating-system %guix-data-service-os #:imported-modules '((gnu services herd) (guix combinators)))) (define forwarded-port 8080) (define vm (virtual-machine (operating-system os) (memory-size 1024) (port-forwardings `((,forwarded-port . 8765))))) (define test (with-imported-modules '((gnu build marionette)) #~(begin (use-modules (srfi srfi-11) (srfi srfi-64) (gnu build marionette) (web uri) (web client) (web response)) (define marionette (make-marionette (list #$vm))) (test-runner-current (system-test-runner #$output)) (test-begin "guix-data-service") (test-assert "service running" (marionette-eval '(begin (use-modules (gnu services herd)) (match (start-service 'guix-data-service) (#f #f) (('service response-parts ...) (match (assq-ref response-parts 'running) ((pid) (number? pid)))))) marionette)) (test-assert "process jobs service running" (marionette-eval '(begin (use-modules (gnu services herd)) (match (start-service 'guix-data-service-process-jobs) (#f #f) (('service response-parts ...) (match (assq-ref response-parts 'running) ((pid) (number? pid)))))) marionette)) ;; The service starts immediately but replies with status 500 until ;; initialization is complete, so keep trying for a while. (define (try-http-get attempts) (let ((status (let-values (((response text) (http-get #$(simple-format #f "http://localhost:~A/healthcheck" forwarded-port)))) (response-code response)))) (if (or (= status 200) (<= attempts 1)) status (begin (sleep 5) (try-http-get (- attempts 1)))))) (test-equal "http-get" 200 (try-http-get 12)) (test-end)))) (gexp->derivation "guix-data-service-test" test)) (define %test-guix-data-service (system-test (name "guix-data-service") (description "Connect to a running Guix Data Service.") (value (run-guix-data-service-test)))) ;;; ;;; Guix Home ;;; (define %guix-home-service-he (home-environment (services (list (simple-service 'guix-home-service-test home-files-service-type `(("guix-home-service-activated" ,(plain-file "guix-home-service-activated" "Guix Home service activated")))))))) (define %guix-home-service-os (simple-operating-system (service guix-home-service-type `(("alice" ,%guix-home-service-he))))) (define (run-guix-home-service-test) (define os (marionette-operating-system %guix-home-service-os #:imported-modules '((gnu services herd)))) (define vm (virtual-machine (operating-system os) (memory-size 1024))) (define test (with-imported-modules '((gnu build marionette)) #~(begin (use-modules (srfi srfi-64) (gnu build marionette)) (define marionette (make-marionette (list #$vm))) (test-runner-current (system-test-runner #$output)) (test-begin "guix-home-service") (test-assert "service started" (marionette-eval '(begin (use-modules (gnu services herd)) (match (start-service 'guix-home-alice) (#f #f) ;; herd returns (running #f), likely because of one shot, ;; so consider any non-error a success. (('service response-parts ...) #t))) marionette)) (test-assert "file-exists" (marionette-eval '(begin (sleep 3) ;make sure service has time to symlink files (file-exists? "/home/alice/guix-home-service-activated")) marionette)) (test-end)))) (gexp->derivation "guix-home-service-test" test)) (define %test-guix-home-service (system-test (name "guix-home-service") (description "Activate a Guix home environment.") (value (run-guix-home-service-test)))) ;;; ;;; Nar Herder ;;; (define %nar-herder-os (simple-operating-system (service dhcp-client-service-type) (service nar-herder-service-type (nar-herder-configuration (host "0.0.0.0") ;; Not a realistic value, but works for the test (storage "/tmp"))))) (define (run-nar-herder-test) (define os (marionette-operating-system %nar-herder-os #:imported-modules '((gnu services herd) (guix combinators)))) (define forwarded-port (nar-herder-configuration-port (nar-herder-configuration))) (define vm (virtual-machine (operating-system os) (memory-size 1024) (port-forwardings `((,forwarded-port . ,forwarded-port))))) (define test (with-imported-modules '((gnu build marionette)) #~(begin (use-modules (srfi srfi-11) (srfi srfi-64) (gnu build marionette) (web uri) (web client) (web response)) (define marionette (make-marionette (list #$vm))) (test-runner-current (system-test-runner #$output)) (test-begin "nar-herder") (test-assert "service running" (marionette-eval '(begin (use-modules (gnu services herd)) (match (start-service 'nar-herder) (#f #f) (('service response-parts ...) (match (assq-ref response-parts 'running) ((pid) (number? pid)))))) marionette)) (test-equal "http-get" 404 (let-values (((response text) (http-get #$(simple-format #f "http://localhost:~A/" forwarded-port) #:decode-body? #t))) (response-code response))) (test-end)))) (gexp->derivation "nar-herder-test" test)) (define %test-nar-herder (system-test (name "nar-herder") (description "Connect to a running Nar Herder server.") (value (run-nar-herder-test)))) ;;; ;;; Build Farm Front-end ;;; (define %bffe-os (simple-operating-system (service dhcp-client-service-type) (service guix-build-coordinator-service-type) (service bffe-service-type (bffe-configuration (arguments #~(list #:web-server-args '(#:port 8767 #:controller-args (#:title "Test title")))))))) (define (run-bffe-test) (define os (marionette-operating-system %bffe-os #:imported-modules '((gnu services herd) (guix combinators)))) (define forwarded-port 8767) (define vm (virtual-machine (operating-system os) (memory-size 1024) (port-forwardings `((,forwarded-port . 8767))))) (define test (with-imported-modules '((gnu build marionette)) #~(begin (use-modules (srfi srfi-11) (srfi srfi-64) (gnu build marionette) (web uri) (web client) (web response)) (define marionette (make-marionette (list #$vm))) (test-runner-current (system-test-runner #$output)) (test-begin "bffe") (test-assert "service running" (marionette-eval '(begin (use-modules (gnu services herd)) (match (start-service 'bffe) (#f #f) (('service response-parts ...) (match (assq-ref response-parts 'running) ((pid) (number? pid)))))) marionette)) (test-equal "http-get" 200 (let-values (((response text) (http-get #$(simple-format #f "http://localhost:~A/" forwarded-port) #:decode-body? #t))) (response-code response))) (test-end)))) (gexp->derivation "bffe-test" test)) (define %test-bffe (system-test (name "bffe") (description "Connect to a running Build Farm Front-end.") (value (run-bffe-test))))