~ruther/guix-local

cbe64c316dda4307d8ae47ca9f696ff874fb4e28 — Christopher Baines 2 years ago 25b83bd
services: guix: Remove guix-build-coordinator-queue-builds service.

This has been effectively replaced by the bffe.

* gnu/services/guix.scm (<guix-data-service-configuration>): Remove record
type.
(guix-build-coordinator-queue-builds-shepherd-services,
guix-build-coordinator-queue-builds-activation,
guix-build-coordinator-queue-builds-account): Remove procedures
(guix-build-coordinator-queue-builds-service-type): Remove service type.

Change-Id: I2a233fb10b12cc9bfddebaa35928b25c243f82a2
2 files changed, 0 insertions(+), 185 deletions(-)

M doc/guix.texi
M gnu/services/guix.scm
M doc/guix.texi => doc/guix.texi +0 -52
@@ 38763,58 38763,6 @@ the coordinator database, and is used by the agent to authenticate.
@end table
@end deftp

The Guix Build Coordinator package contains a script to query an
instance of the Guix Data Service for derivations to build, and then
submit builds for those derivations to the coordinator.  The service
type below assists in running this script.  This is an additional tool
that may be useful when building derivations contained within an
instance of the Guix Data Service.

@defvar guix-build-coordinator-queue-builds-service-type
Service type for the
guix-build-coordinator-queue-builds-from-guix-data-service script.  Its
value must be a @code{guix-build-coordinator-queue-builds-configuration}
object.
@end defvar

@deftp {Data Type} guix-build-coordinator-queue-builds-configuration
Data type representing the options to the queue builds from guix data
service script.

@table @asis
@item @code{package} (default: @code{guix-build-coordinator})
The Guix Build Coordinator package to use.

@item @code{user} (default: @code{"guix-build-coordinator-queue-builds"})
The system user to run the service as.

@item @code{coordinator} (default: @code{"http://localhost:8746"})
The URI to use when connecting to the coordinator.

@item @code{systems} (default: @code{#f})
The systems for which to fetch derivations to build.

@item @code{systems-and-targets} (default: @code{#f})
An association list of system and target pairs for which to fetch
derivations to build.

@item @code{guix-data-service} (default: @code{"https://data.guix.gnu.org"})
The Guix Data Service instance from which to query to find out about
derivations to build.

@item @code{guix-data-service-build-server-id} (default: @code{#f})
The Guix Data Service build server ID corresponding to the builds being
submitted.  Providing this speeds up the submitting of builds as
derivations that have already been submitted can be skipped before
asking the coordinator to build them.

@item @code{processed-commits-file} (default: @code{"/var/cache/guix-build-coordinator-queue-builds/processed-commits"})
A file to record which commits have been processed, to avoid needlessly
processing them again if the service is restarted.

@end table
@end deftp

@subsubheading Guix Data Service
The @uref{http://data.guix.gnu.org,Guix Data Service} processes, stores
and provides data about GNU Guix.  This includes information about

M gnu/services/guix.scm => gnu/services/guix.scm +0 -133
@@ 88,19 88,6 @@

            guix-build-coordinator-agent-service-type

            guix-build-coordinator-queue-builds-configuration
            guix-build-coordinator-queue-builds-configuration?
            guix-build-coordinator-queue-builds-configuration-package
            guix-build-coordinator-queue-builds-configuration-user
            guix-build-coordinator-queue-builds-coordinator
            guix-build-coordinator-queue-builds-configuration-systems
            guix-build-coordinator-queue-builds-configuration-system-and-targets
            guix-build-coordinator-queue-builds-configuration-guix-data-service
            guix-build-coordinator-queue-builds-configuration-guix-data-service-build-server-id
            guix-build-coordinator-queue-builds-configuration-processed-commits-file

            guix-build-coordinator-queue-builds-service-type

            <guix-data-service-configuration>
            guix-data-service-configuration
            guix-data-service-configuration?


@@ 250,31 237,6 @@
  (agent-name      guix-build-coordinator-agent-dynamic-auth-with-file-agent-name)
  (token-file      guix-build-coordinator-agent-dynamic-auth-with-file-token-file))

(define-record-type* <guix-build-coordinator-queue-builds-configuration>
  guix-build-coordinator-queue-builds-configuration
  make-guix-build-coordinator-queue-builds-configuration
  guix-build-coordinator-queue-builds-configuration?
  (package              guix-build-coordinator-queue-builds-configuration-package
                        (default guix-build-coordinator))
  (user                 guix-build-coordinator-queue-builds-configuration-user
                        (default "guix-build-coordinator-queue-builds"))
  (coordinator          guix-build-coordinator-queue-builds-coordinator
                        (default "http://localhost:8746"))
  (systems              guix-build-coordinator-queue-builds-configuration-systems
                        (default #f))
  (systems-and-targets
   guix-build-coordinator-queue-builds-configuration-system-and-targets
   (default #f))
  (guix-data-service
   guix-build-coordinator-queue-builds-configuration-guix-data-service
   (default "https://data.guix.gnu.org"))
  (guix-data-service-build-server-id
   guix-build-coordinator-queue-builds-configuration-guix-data-service-build-server-id
   (default #f))
  (processed-commits-file
   guix-build-coordinator-queue-builds-configuration-processed-commits-file
   (default "/var/cache/guix-build-coordinator-queue-builds/processed-commits")))

(define* (make-guix-build-coordinator-start-script database-uri-string
                                                   allocation-strategy
                                                   pid-file


@@ 559,101 521,6 @@
   (description
    "Run a Guix Build Coordinator agent.")))

(define (guix-build-coordinator-queue-builds-shepherd-services config)
  (match-record config <guix-build-coordinator-queue-builds-configuration>
    (package user coordinator systems systems-and-targets
             guix-data-service
             guix-data-service-build-server-id
             processed-commits-file)
    (list
     (shepherd-service
      (documentation "Guix Build Coordinator queue builds from Guix Data Service")
      (provision '(guix-build-coordinator-queue-builds))
      (requirement '(networking))
      (start
       #~(lambda _
           (parameterize ((%current-logfile-date-format ""))
             (fork+exec-command
              (list
               #$(file-append
                  package
                  "/bin/guix-build-coordinator-queue-builds-from-guix-data-service")
               #$(string-append "--coordinator=" coordinator)
               #$@(map (lambda (system)
                         (string-append "--system=" system))
                       (or systems '()))
               #$@(map (match-lambda
                         ((system . target)
                          (string-append "--system-and-target=" system "=" target)))
                       (or systems-and-targets '()))
               #$@(if guix-data-service
                      #~(#$(string-append "--guix-data-service=" guix-data-service))
                      #~())
               #$@(if guix-data-service-build-server-id
                      #~(#$(simple-format
                            #f
                            "--guix-data-service-build-server-id=~A"
                            guix-data-service-build-server-id))
                      #~())
               #$@(if processed-commits-file
                      #~(#$(string-append "--processed-commits-file="
                                          processed-commits-file))
                      #~()))
              #:user #$user
              #:environment-variables
              `(,(string-append
                  "GUIX_LOCPATH="
                  #$(libc-utf8-locales-for-target) "/lib/locale")
                "LC_ALL=en_US.utf8")
              #:log-file "/var/log/guix-build-coordinator/queue-builds.log"))))
      (stop #~(make-kill-destructor))
      (modules
       `((shepherd comm)
         ,@%default-modules))))))

(define (guix-build-coordinator-queue-builds-activation config)
  #~(begin
      (use-modules (guix build utils))

      (define %user
        (getpw #$(guix-build-coordinator-queue-builds-configuration-user
                  config)))

      (mkdir-p "/var/log/guix-build-coordinator")

      ;; Allow writing the processed commits file
      (mkdir-p "/var/cache/guix-build-coordinator-queue-builds")
      (chown "/var/cache/guix-build-coordinator-queue-builds"
             (passwd:uid %user)
             (passwd:gid %user))))

(define (guix-build-coordinator-queue-builds-account config)
  (list (user-account
         (name (guix-build-coordinator-queue-builds-configuration-user config))
         (group "nogroup")
         (system? #t)
         (comment "Guix Build Coordinator queue-builds user")
         (home-directory "/var/empty")
         (shell (file-append shadow "/sbin/nologin")))))

(define guix-build-coordinator-queue-builds-service-type
  (service-type
   (name 'guix-build-coordinator-queue-builds)
   (extensions
    (list
     (service-extension shepherd-root-service-type
                        guix-build-coordinator-queue-builds-shepherd-services)
     (service-extension activation-service-type
                        guix-build-coordinator-queue-builds-activation)
     (service-extension account-service-type
                        guix-build-coordinator-queue-builds-account)))
   (description
    "Run the guix-build-coordinator-queue-builds-from-guix-data-service
script.

This is a script to assist in having the Guix Build Coordinator build
derivations stored in an instance of the Guix Data Service.")))


;;;
;;; Guix Data Service