diff mbox series

[bug#59410] gnu: Add distrobox.

Message ID ddd32c90-3933-a942-3754-98862af0fad0@disroot.org
State New
Headers show
Series [bug#59410] gnu: Add distrobox. | expand

Checks

Context Check Description
cbaines/applying patch fail
cbaines/issue success View issue
cbaines/applying patch fail
cbaines/issue success View issue
cbaines/applying patch fail
cbaines/issue success View issue
cbaines/applying patch fail
cbaines/issue success View issue
cbaines/applying patch fail
cbaines/issue success View issue
cbaines/applying patch fail
cbaines/issue success View issue
cbaines/applying patch fail
cbaines/issue success View issue
cbaines/applying patch fail
cbaines/issue success View issue
cbaines/applying patch fail
cbaines/issue success View issue
cbaines/applying patch fail
cbaines/issue success View issue
cbaines/applying patch fail
cbaines/issue success View issue
cbaines/applying patch fail
cbaines/issue success View issue
cbaines/applying patch fail
cbaines/issue success View issue
cbaines/applying patch fail
cbaines/issue success View issue
cbaines/applying patch fail
cbaines/issue success View issue
cbaines/applying patch fail
cbaines/issue success View issue
cbaines/applying patch fail
cbaines/issue success View issue
cbaines/applying patch fail
cbaines/issue success View issue

Commit Message

Adam Faiz Nov. 20, 2022, 2:30 p.m. UTC
From 1fc7bf3f3c35490f95e223fef9c83ef7d2501dff Mon Sep 17 00:00:00 2001
From: AwesomeAdam54321 <adam.faiz@disroot.org>
Date: Fri, 18 Nov 2022 10:51:30 +0800
Subject: [PATCH] gnu: Add distrobox.

* gnu/packages/containers.scm (distrobox): New variable.
---
  gnu/packages/containers.scm | 39 ++++++++++++++++++++++++++++++++++++-
  1 file changed, 38 insertions(+), 1 deletion(-)

+     "Distrobox is a fancy wrapper around Podman or Docker
+to create and start containers highly integrated with the hosts.")
+    (license license:gpl3+)))

Comments

iyzsong--- via Guix-patches via Dec. 19, 2022, 2:48 p.m. UTC | #1
Its possible approved the package?
Ricardo Wurmus Dec. 19, 2022, 4:30 p.m. UTC | #2
Hi,

thanks for the patch.

I’m always a bit worried when I see the copy-build-system, because the
lack of a configuration step often means that the tool makes possibly
invalid assumptions about the runtime environment.

I see that you’re patching the locations of “podman”, “wget”, and
“command -v”, but the tools contain even more references, e.g. to
“curl”, “grep”, “sed”, coreutils, “host-spawn”, “sudo”, “pinentry”,
“less”, …

It may be a better idea to wrap all the executables in a reasonable
default environment.

What do you think?
Adam Faiz Dec. 20, 2022, 1:25 a.m. UTC | #3
> Hi,
> 
> thanks for the patch.
> 
> I’m always a bit worried when I see the copy-build-system, because the
> lack of a configuration step often means that the tool makes possibly
> invalid assumptions about the runtime environment.
> 
> I see that you’re patching the locations of “podman”, “wget”, and
> “command -v”, but the tools contain even more references, e.g. to
> “curl”, “grep”, “sed”, coreutils, “host-spawn”, “sudo”, “pinentry”,
> “less”, …
> 
> It may be a better idea to wrap all the executables in a reasonable
> default environment.
> 
> What do you think?
It sounds like a good idea.

> -- 
> Ricardo
iyzsong--- via Guix-patches via Jan. 15, 2023, 5:14 p.m. UTC | #4
I don't know how much longer the official packaging for guix will take, but with the distrobox it will be possible to download many free software applications that are taking to be brought to the guix package manager
Nicolas Goaziou Feb. 3, 2023, 11:16 p.m. UTC | #5
Hello,

Adam Faiz via Guix-patches via <guix-patches@gnu.org> writes:

> Subject: [PATCH] gnu: Add distrobox.

Applied with the changes below. Thank you.

> +(define-public distrobox
> +  (package
> +    (name "distrobox")
> +    (version "1.4.1")

I updated it to latest version.

> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://github.com/89luca89/distrobox")
> +             (commit version)))
> +       (sha256
> +        (base32 "1qc66ghlq6b0nh4gk8ls64njwv96pkhz0p31k40fnicxwkfnb2jq"))
> +       (file-name (git-file-name name version))))
> +    (build-system copy-build-system)
> +    (inputs
> +     (list podman wget))
> +    (arguments
> +     (list #:phases
> +           #~(modify-phases %standard-phases
> +               (add-before 'install 'refer-to-inputs
> +                 (lambda _
> +                   (substitute* (find-files "." "^distrobox.*")
> +                     (("podman") (string-append #$(this-package-input 
> "podman") "/bin/podman"))
> +                     (("wget") (string-append #$(this-package-input 
> "wget") "/bin/wget"))

I used `search-input-file' instead of `this-package-input'.

> +    (license license:gpl3+)))

License seems to be GPL3 only, so I changed it.

Regards,
diff mbox series

Patch

diff --git a/gnu/packages/containers.scm b/gnu/packages/containers.scm
index 59eea423a1..384a263e2e 100644
--- a/gnu/packages/containers.scm
+++ b/gnu/packages/containers.scm
@@ -26,6 +26,7 @@  (define-module (gnu packages containers)
    #:use-module (guix packages)
    #:use-module (guix download)
    #:use-module (guix git-download)
+  #:use-module (guix build-system copy)
    #:use-module (guix build-system gnu)
    #:use-module (guix build-system go)
    #:use-module (guix build-system meson)
@@ -46,7 +47,8 @@  (define-module (gnu packages containers)
    #:use-module (gnu packages selinux)
    #:use-module (gnu packages version-control)
    #:use-module (gnu packages virtualization)
-  #:use-module (gnu packages web))
+  #:use-module (gnu packages web)
+  #:use-module (gnu packages wget))

  (define-public crun
    (let ((commit "c381048530aa750495cf502ddb7181f2ded5b400"))
@@ -354,3 +356,38 @@  (define-public podman
  volumes mounted into those containers, and pods made from groups of
  containers.")
      (license license:asl2.0)))
+
+(define-public distrobox
+  (package
+    (name "distrobox")
+    (version "1.4.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/89luca89/distrobox")
+             (commit version)))
+       (sha256
+        (base32 "1qc66ghlq6b0nh4gk8ls64njwv96pkhz0p31k40fnicxwkfnb2jq"))
+       (file-name (git-file-name name version))))
+    (build-system copy-build-system)
+    (inputs
+     (list podman wget))
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (add-before 'install 'refer-to-inputs
+                 (lambda _
+                   (substitute* (find-files "." "^distrobox.*")
+                     (("podman") (string-append #$(this-package-input 
"podman") "/bin/podman"))
+                     (("wget") (string-append #$(this-package-input 
"wget") "/bin/wget"))
+                     (("command -v") "test -x"))))
+               (replace 'install
+                 (lambda _
+                   (invoke "./install" "--prefix" #$output))))))
+    (home-page "https://distrobox.privatedns.org/")
+    (synopsis "Fancy wrapper to create and start containers highly 
integrated with the hosts")
+    (description