guix_mirror_bot pushed a commit to branch master
in repository guix.
commit 9d0fce8d975b18ad987a485fd7e63378564946dc
Author: Giacomo Leidi <[email protected]>
AuthorDate: Sat Feb 21 01:11:58 2026 +0100
gnu: Add guix-compose.
* gnu/packages/containers.scm (guix-compose): New variable.
Change-Id: I0a1270272222b620f1344c096b5f68274581b2fd
Signed-off-by: jgart <[email protected]>
---
gnu/packages/containers.scm | 67 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)
diff --git a/gnu/packages/containers.scm b/gnu/packages/containers.scm
index caecb4e541..18591258ba 100644
--- a/gnu/packages/containers.scm
+++ b/gnu/packages/containers.scm
@@ -10,6 +10,7 @@
;;; Copyright © 2024 Jean-Pierre De Jesus DIAZ <[email protected]>
;;; Copyright © 2025 Tomas Volf <[email protected]>
;;; Copyright © 2025 Foster Hangdaan <[email protected]>
+;;; Copyright © 2026 Giacomo Leidi <[email protected]>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -37,8 +38,10 @@
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
+ #:use-module (guix build-system guile)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
+ #:use-module ((guix search-paths) #:select ($GUIX_EXTENSIONS_PATH))
#:use-module (guix utils)
#:use-module (gnu packages admin)
#:use-module (gnu packages autotools)
@@ -58,11 +61,13 @@
#:use-module (gnu packages golang-web)
#:use-module (gnu packages golang-xyz)
#:use-module (gnu packages guile)
+ #:use-module (gnu packages guile-xyz)
#:use-module (gnu packages linux)
#:use-module (gnu packages man)
#:use-module (gnu packages pcre)
#:use-module (gnu packages python)
#:use-module (gnu packages networking)
+ #:use-module (gnu packages package-management)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages python-build)
@@ -286,6 +291,68 @@ containers highly integrated with the hosts.")
contents, and discovering ways to shrink the size of Docker/OCI image.")
(license license:expat)))
+(define-public guix-compose
+ (package
+ (name "guix-compose")
+ (version "0.1.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://codeberg.org/fishinthecalculator/guix-compose")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1ij6rfs5pfykk8c53q029sl2qx3k572dqdfb6pn5s569l6697ci1"))))
+ (build-system guile-build-system)
+ (arguments
+ (list
+ #:source-directory "src"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'set-load-paths-in-entry-point
+ (lambda _
+ (define load-path
+ (cons (string-append #$output "/share/guile/site/3.0")
+ (parse-path (getenv "GUILE_LOAD_PATH"))))
+ (define load-compiled-path
+ (cons (string-append #$output "/lib/guile/3.0/site-ccache")
+ (parse-path (getenv "GUILE_LOAD_COMPILED_PATH"))))
+ (define search-paths-header
+ `(begin
+ (set! %load-path
+ (append (list ,@load-path) %load-path))
+ (set! %load-compiled-path
+ (append (list ,@load-compiled-path)
+ %load-compiled-path))))
+
+ (substitute* "src/guix/extensions/compose.scm"
+ ((";;@load-paths@")
+ (with-output-to-string
+ (lambda () (write search-paths-header)))))))
+ (add-after 'build 'add-extension-to-search-path
+ (lambda _
+ (with-directory-excursion #$output
+ (mkdir-p "share/guix/extensions")
+ (symlink
+ (string-append
+ #$output "/share/guile/site/3.0/guix/extensions/compose.scm")
+ "share/guix/extensions/compose.scm"))))
+ (add-after 'add-extension-to-search-path 'check
+ (lambda _
+ (invoke
+ "guile" "-L" "./modules" "-s" "tests/test-compose.scm"))))))
+ (native-inputs (list guile-3.0))
+ ;; Avoid setting propagated so that we use the user’s profile.
+ (inputs (list guix guile-yamlpp))
+ (native-search-paths
+ (list $GUIX_EXTENSIONS_PATH))
+ (synopsis "Guix' docker compose compatibility layer")
+ (description "A toolkit to run, read and write docker-compose.yml files
with
+Guix machinery.")
+ (home-page "https://codeberg.org/fishinthecalculator/guix-compose")
+ (license license:gpl3+)))
+
(define-public libslirp
(package
(name "libslirp")