Subject: Re: bug#61680: [PATCH] gnu: podman: Add 'docker' alias script as 'docker' output

From: Ludovic Courtès <[email-masked]>
Date: Thu, 02 Mar 2023 19:35:05 +0100

Hi,

Zongyuan Li <[email-masked]> skribis:

> Introduces a output named 'docker' in podman package. This
> output provides a 'docker' alias for podman. Since their
> cmd interface are identical, this simple script just act
> the same as 'alias docker=podman', with some additional
> checks and notification.
>
> Changes since v1:
>
>     * Add more details in commit messages
>     * Revert style format
>     * Add output-synopsis for 'docker' output
>
> * gnu/packages/containers.scm: New 'docker' output for podman

Regarding the commit log, please check ‘git log’ and the “Submitting
Patches” of the manual for convention.  We can tweak that for you if you
want, but basically it’s about describe what has changed, not why.

>  gnu/packages/containers.scm | 14 ++++++++++++--
>  1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/gnu/packages/containers.scm b/gnu/packages/containers.scm
> index 272b67c38d..50dfa88421 100644
> --- a/gnu/packages/containers.scm
> +++ b/gnu/packages/containers.scm
> @@ -327,6 +327,9 @@ (define-public podman
>         (file-name (git-file-name name version))))
>
>      (build-system gnu-build-system)
> +    (outputs '("out" "docker"))
> +    (properties
> +      `((output-synopsis "docker" "docker alias for podman")))

Are there downsides to having the ‘docker’ command directly in “out”?

I would prefer that because it’d be more easily discovered.

>      (arguments
>       (list
>        #:make-flags
> @@ -349,7 +352,7 @@ (define-public podman
>                  (invoke "make" "localsystem")
>                  (invoke "make" "remotesystem"))))
>            (add-after 'unpack 'fix-hardcoded-paths
> -            (lambda _
> +            (lambda* (#:key outputs #:allow-other-keys)
>                (substitute* (find-files "libpod" "\\.go")
>                  (("exec.LookPath[(][\"]slirp4netns[\"][)]")
>                   (string-append "exec.LookPath(\""
> @@ -365,7 +368,14 @@ (define-public podman
>                  (("/usr/local/libexec/cni")
>                   (string-append #$(this-package-input "cni-plugins")
>                                  "/bin"))
> -                (("/usr/bin/crun") (which "crun")))))
> +                (("/usr/bin/crun") (which "crun")))
> +              (substitute* "docker"
> +                (("/usr/bin/podman") (string-append (assoc-ref outputs "out")
> +                                                    "/bin/podman")))))
> +          (add-after 'install 'install-docker
> +            (lambda* (#:key outputs #:allow-other-keys)
> +              (let* ((docker (assoc-ref outputs "docker")))
> +                (install-file "docker" (string-append docker "/bin")) #t)))

No need for a trailing #t.

Thanks,
Ludo’.