unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH] gnu: Add vcsh and perl-shell-command
@ 2016-02-13 16:07 Christopher Baines
  2016-02-13 16:07 ` [PATCH 1/3] gnu: Add perl-shell-command Christopher Baines
                   ` (2 more replies)
  0 siblings, 3 replies; 24+ messages in thread
From: Christopher Baines @ 2016-02-13 16:07 UTC (permalink / raw)
  To: guix-devel

Add vcsh (Version control system for $HOME), and perl-shell-command which is a
necessary input for running the tests.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [PATCH 1/3] gnu: Add perl-shell-command
  2016-02-13 16:07 [PATCH] gnu: Add vcsh and perl-shell-command Christopher Baines
@ 2016-02-13 16:07 ` Christopher Baines
  2016-02-13 22:42   ` Leo Famulari
  2016-02-13 16:07 ` [PATCH 2/3] gnu: Don't use guix build utils Christopher Baines
  2016-02-13 16:07 ` [PATCH 3/3] gnu: Add vcsh Christopher Baines
  2 siblings, 1 reply; 24+ messages in thread
From: Christopher Baines @ 2016-02-13 16:07 UTC (permalink / raw)
  To: guix-devel

This is required for the tests for vcsh.

* gnu/packages/perl.scm (perl-shell-command): New variable.
---
 gnu/packages/perl.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 0e63aa9..5146828 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -6277,4 +6277,28 @@ really be high enough to warrant the use of a keyword, and the size so small
 such that being individual extensions would be wasteful.")
     (license (package-license perl))))
 
+(define-public perl-shell-command
+  (package
+    (name "perl-shell-command")
+    (version "0.06")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://cpan/authors/id/F/FL/FLORA/Shell-Command-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "1lgc2rb3b5a4lxvbq0cbg08qk0n2i88srxbsz93bwi3razpxxr7k"))))
+    (build-system perl-build-system)
+    (home-page
+      "http://search.cpan.org/dist/Shell-Command")
+    (synopsis
+      "Cross-platform functions emulating common shell commands")
+    (description
+      "Thin wrapper around ExtUtils::Command.  See ExtUtils::Command for a
+ description of available commands.")
+    (license (package-license perl))))
+
 ;;; END: Core module overrides
-- 
2.7.0

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 2/3] gnu: Don't use guix build utils
  2016-02-13 16:07 [PATCH] gnu: Add vcsh and perl-shell-command Christopher Baines
  2016-02-13 16:07 ` [PATCH 1/3] gnu: Add perl-shell-command Christopher Baines
@ 2016-02-13 16:07 ` Christopher Baines
  2016-02-13 22:39   ` Leo Famulari
  2016-02-13 16:07 ` [PATCH 3/3] gnu: Add vcsh Christopher Baines
  2 siblings, 1 reply; 24+ messages in thread
From: Christopher Baines @ 2016-02-13 16:07 UTC (permalink / raw)
  To: guix-devel

As this provides a which procedure which conflicts with the which package
provided by gnu packages base.

* gnu/packages/version-control.scm (version-control): Don't use utils
---
 gnu/packages/version-control.scm | 1 -
 1 file changed, 1 deletion(-)

diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index e0626cb..721a284 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -37,7 +37,6 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
-  #:use-module (guix build utils)
   #:use-module (gnu packages apr)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages asciidoc)
-- 
2.7.0

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 3/3] gnu: Add vcsh
  2016-02-13 16:07 [PATCH] gnu: Add vcsh and perl-shell-command Christopher Baines
  2016-02-13 16:07 ` [PATCH 1/3] gnu: Add perl-shell-command Christopher Baines
  2016-02-13 16:07 ` [PATCH 2/3] gnu: Don't use guix build utils Christopher Baines
@ 2016-02-13 16:07 ` Christopher Baines
  2016-02-13 22:41   ` Leo Famulari
  2 siblings, 1 reply; 24+ messages in thread
From: Christopher Baines @ 2016-02-13 16:07 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/version-control.scm (vcsh): New variable.
---
 gnu/packages/version-control.scm | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 721a284..fd2056d 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -1058,3 +1058,41 @@ Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
      "This package allows you to use your hubic account as a \"special
 repository\" with git-annex.")
     (license gpl3+)))
+
+(define-public vcsh
+  (package
+    (name "vcsh")
+    (version "1.20151229")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/RichiH/vcsh/archive/v"
+             version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ym3swkh738c3vciffvlr96vqzhwmzkb8ajqzap8f0j9n039a1mf"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (delete 'configure)
+                  (delete 'check)
+                  (delete 'build))
+       #:make-flags (list (string-append "PREFIX=" %output))))
+    (native-inputs
+     `(("which" ,which)))
+    (inputs
+     `(("perl-shell-command" ,perl-shell-command)
+       ("perl-test-most" ,perl-test-most)))
+    (propagated-inputs
+     `(("git" ,git)))
+    (home-page "https://github.com/RichiH/vcsh")
+    (synopsis "Version control system for $HOME")
+    (description
+     "vcsh provides the @code{vcsh} command, which allows you to maintain
+several Git repositories in one single directory.  This can be useful when
+using version control for files in your home directory, as it allows for
+the separation of the files in to different repositories, for example you
+may keep your bash configuration in a separate Git repository from your
+emacs configuration.")
+    (license gpl2+)))
-- 
2.7.0

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] gnu: Don't use guix build utils
  2016-02-13 16:07 ` [PATCH 2/3] gnu: Don't use guix build utils Christopher Baines
@ 2016-02-13 22:39   ` Leo Famulari
  2016-02-17 18:28     ` Christopher Baines
  0 siblings, 1 reply; 24+ messages in thread
From: Leo Famulari @ 2016-02-13 22:39 UTC (permalink / raw)
  To: Christopher Baines; +Cc: guix-devel

On Sat, Feb 13, 2016 at 04:07:54PM +0000, Christopher Baines wrote:
> As this provides a which procedure which conflicts with the which package
> provided by gnu packages base.
> 
> * gnu/packages/version-control.scm (version-control): Don't use utils

I can build all the packages in version-control.scm with this change,
but I don't fully understand its implications so I'll wait for another
reviewer to weigh in.

If it's okay, I will squash this commit into "Add vcsh", since that
commit is broken without this one.

> ---
>  gnu/packages/version-control.scm | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
> index e0626cb..721a284 100644
> --- a/gnu/packages/version-control.scm
> +++ b/gnu/packages/version-control.scm
> @@ -37,7 +37,6 @@
>    #:use-module (guix build-system gnu)
>    #:use-module (guix build-system python)
>    #:use-module (guix build-system trivial)
> -  #:use-module (guix build utils)
>    #:use-module (gnu packages apr)
>    #:use-module (gnu packages autotools)
>    #:use-module (gnu packages asciidoc)
> -- 
> 2.7.0
> 
> 

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 3/3] gnu: Add vcsh
  2016-02-13 16:07 ` [PATCH 3/3] gnu: Add vcsh Christopher Baines
@ 2016-02-13 22:41   ` Leo Famulari
  2016-02-14 20:36     ` Christopher Baines
  0 siblings, 1 reply; 24+ messages in thread
From: Leo Famulari @ 2016-02-13 22:41 UTC (permalink / raw)
  To: Christopher Baines; +Cc: guix-devel

On Sat, Feb 13, 2016 at 04:07:55PM +0000, Christopher Baines wrote:
> * gnu/packages/version-control.scm (vcsh): New variable.

[...]

> +    (arguments
> +     `(#:phases (modify-phases %standard-phases
> +                  (delete 'configure)
> +                  (delete 'check)
> +                  (delete 'build))

Can you add comments explaining why the check and build phases are
deleted?

For the former, it can be as simple as "no test suite".

I assume the build phase is replaced by the install phase; the comment
can say something like that if it's the case.

> +       #:make-flags (list (string-append "PREFIX=" %output))))
> +    (native-inputs
> +     `(("which" ,which)))
> +    (inputs
> +     `(("perl-shell-command" ,perl-shell-command)
> +       ("perl-test-most" ,perl-test-most)))
> +    (propagated-inputs
> +     `(("git" ,git)))
> +    (home-page "https://github.com/RichiH/vcsh")
> +    (synopsis "Version control system for $HOME")
> +    (description
> +     "vcsh provides the @code{vcsh} command, which allows you to maintain
> +several Git repositories in one single directory.  This can be useful when
> +using version control for files in your home directory, as it allows for
> +the separation of the files in to different repositories, for example you
> +may keep your bash configuration in a separate Git repository from your
> +emacs configuration.")
> +    (license gpl2+)))
> -- 
> 2.7.0
> 
> 

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 1/3] gnu: Add perl-shell-command
  2016-02-13 16:07 ` [PATCH 1/3] gnu: Add perl-shell-command Christopher Baines
@ 2016-02-13 22:42   ` Leo Famulari
  0 siblings, 0 replies; 24+ messages in thread
From: Leo Famulari @ 2016-02-13 22:42 UTC (permalink / raw)
  To: Christopher Baines; +Cc: guix-devel

On Sat, Feb 13, 2016 at 04:07:53PM +0000, Christopher Baines wrote:
> This is required for the tests for vcsh.
> 
> * gnu/packages/perl.scm (perl-shell-command): New variable.

LGTM. If I am the one to push, I'll make some minor formatting changes
and I'll add attribution for you.

> ---
>  gnu/packages/perl.scm | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
> 
> diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
> index 0e63aa9..5146828 100644
> --- a/gnu/packages/perl.scm
> +++ b/gnu/packages/perl.scm
> @@ -6277,4 +6277,28 @@ really be high enough to warrant the use of a keyword, and the size so small
>  such that being individual extensions would be wasteful.")
>      (license (package-license perl))))
>  
> +(define-public perl-shell-command
> +  (package
> +    (name "perl-shell-command")
> +    (version "0.06")
> +    (source
> +      (origin
> +        (method url-fetch)
> +        (uri (string-append
> +               "mirror://cpan/authors/id/F/FL/FLORA/Shell-Command-"
> +               version
> +               ".tar.gz"))
> +        (sha256
> +          (base32
> +            "1lgc2rb3b5a4lxvbq0cbg08qk0n2i88srxbsz93bwi3razpxxr7k"))))
> +    (build-system perl-build-system)
> +    (home-page
> +      "http://search.cpan.org/dist/Shell-Command")
> +    (synopsis
> +      "Cross-platform functions emulating common shell commands")
> +    (description
> +      "Thin wrapper around ExtUtils::Command.  See ExtUtils::Command for a
> + description of available commands.")
> +    (license (package-license perl))))
> +
>  ;;; END: Core module overrides
> -- 
> 2.7.0
> 
> 

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 3/3] gnu: Add vcsh
  2016-02-13 22:41   ` Leo Famulari
@ 2016-02-14 20:36     ` Christopher Baines
  2016-02-17 18:11       ` Andreas Enge
  0 siblings, 1 reply; 24+ messages in thread
From: Christopher Baines @ 2016-02-14 20:36 UTC (permalink / raw)
  To: guix-devel


[-- Attachment #1.1: Type: text/plain, Size: 803 bytes --]

On 13/02/16 22:41, Leo Famulari wrote:
> On Sat, Feb 13, 2016 at 04:07:55PM +0000, Christopher Baines wrote:
>> * gnu/packages/version-control.scm (vcsh): New variable.
> 
> [...]
> 
>> +    (arguments
>> +     `(#:phases (modify-phases %standard-phases
>> +                  (delete 'configure)
>> +                  (delete 'check)
>> +                  (delete 'build))
> 
> Can you add comments explaining why the check and build phases are
> deleted?

Yep, I have attached an updated patch.

> For the former, it can be as simple as "no test suite".

There actually is one, I just forgot to enable it. This is now fixed in
the attached patch.

> I assume the build phase is replaced by the install phase; the comment
> can say something like that if it's the case.

Done.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0003-gnu-Add-vcsh.patch --]
[-- Type: text/x-patch; name="0003-gnu-Add-vcsh.patch", Size: 2370 bytes --]

From 856eb02a92cfdf3f647ca0198c5038440c2955ba Mon Sep 17 00:00:00 2001
From: Christopher Baines <mail@cbaines.net>
Date: Sat, 13 Feb 2016 23:49:25 +0000
Subject: [PATCH] gnu: Add vcsh

* gnu/packages/version-control.scm (vcsh): New variable.
---
 gnu/packages/version-control.scm | 41 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 721a284..ccdffbd 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -1058,3 +1058,44 @@ Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
      "This package allows you to use your hubic account as a \"special
 repository\" with git-annex.")
     (license gpl3+)))
+
+(define-public vcsh
+  (package
+    (name "vcsh")
+    (version "1.20151229")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/RichiH/vcsh/archive/v"
+             version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ym3swkh738c3vciffvlr96vqzhwmzkb8ajqzap8f0j9n039a1mf"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:phases (modify-phases %standard-phases
+                  ;; vcsh has no configure script
+                  (delete 'configure)
+                  ;; vcsh has no build stage
+                  (delete 'build))
+       #:make-flags (list (string-append "PREFIX=" %output))))
+    (native-inputs
+     `(("which" ,which)
+       ("perl" ,perl)))
+    (inputs
+     `(("perl-shell-command" ,perl-shell-command)
+       ("perl-test-most" ,perl-test-most)))
+    (propagated-inputs
+     `(("git" ,git)))
+    (home-page "https://github.com/RichiH/vcsh")
+    (synopsis "Version control system for $HOME")
+    (description
+     "vcsh provides the @code{vcsh} command, which allows you to maintain
+several Git repositories in one single directory.  This can be useful when
+using version control for files in your home directory, as it allows for
+the separation of the files in to different repositories, for example you
+may keep your bash configuration in a separate Git repository from your
+emacs configuration.")
+    (license gpl2+)))
-- 
2.7.0


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 949 bytes --]

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: [PATCH 3/3] gnu: Add vcsh
  2016-02-14 20:36     ` Christopher Baines
@ 2016-02-17 18:11       ` Andreas Enge
  2016-02-17 18:59         ` Christopher Baines
  0 siblings, 1 reply; 24+ messages in thread
From: Andreas Enge @ 2016-02-17 18:11 UTC (permalink / raw)
  To: Christopher Baines; +Cc: guix-devel

Hello,

this looks good. I also added a copyright line for you.

On Sun, Feb 14, 2016 at 08:36:00PM +0000, Christopher Baines wrote:
> +     "vcsh provides the @code{vcsh} command, which allows you to maintain

I would shorten to "vcsh allows ..."; that vcsh provides the vcsh command
is close to a tautology.

> +the separation of the files in to different repositories, for example you

"in to" -> "into".

The build depends on perl-shell-command, which is not yet in the distribution;
so it looks like another patch should go in first. Leo, I think you handled
these? Could you have another look? Concerning one of your questions, I think
that removing "guix build utils" from the imported modules is fine (actually,
it was me who recommended it...).

Andreas

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] gnu: Don't use guix build utils
  2016-02-13 22:39   ` Leo Famulari
@ 2016-02-17 18:28     ` Christopher Baines
  2016-02-18  0:15       ` Leo Famulari
  0 siblings, 1 reply; 24+ messages in thread
From: Christopher Baines @ 2016-02-17 18:28 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 855 bytes --]

On 13/02/16 22:39, Leo Famulari wrote:
> On Sat, Feb 13, 2016 at 04:07:54PM +0000, Christopher Baines wrote:
>> As this provides a which procedure which conflicts with the which package
>> provided by gnu packages base.
>>
>> * gnu/packages/version-control.scm (version-control): Don't use utils
> 
> I can build all the packages in version-control.scm with this change,
> but I don't fully understand its implications so I'll wait for another
> reviewer to weigh in.

Andreas has now commented on this in response to the third patch.

> If it's okay, I will squash this commit into "Add vcsh", since that
> commit is broken without this one.

This does not make much sense to me, as they are separate changes, and
when applied in the right sequence, everything will work (but it really
depends what workflow you are using with Git).


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 949 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 3/3] gnu: Add vcsh
  2016-02-17 18:11       ` Andreas Enge
@ 2016-02-17 18:59         ` Christopher Baines
  2016-02-18  0:11           ` Leo Famulari
  0 siblings, 1 reply; 24+ messages in thread
From: Christopher Baines @ 2016-02-17 18:59 UTC (permalink / raw)
  To: Andreas Enge; +Cc: guix-devel


[-- Attachment #1.1: Type: text/plain, Size: 885 bytes --]

On 17/02/16 18:11, Andreas Enge wrote:
> Hello,
> 
> this looks good. I also added a copyright line for you.
> 
> On Sun, Feb 14, 2016 at 08:36:00PM +0000, Christopher Baines wrote:
>> +     "vcsh provides the @code{vcsh} command, which allows you to maintain
> 
> I would shorten to "vcsh allows ..."; that vcsh provides the vcsh command
> is close to a tautology.
> 
>> +the separation of the files in to different repositories, for example you
> 
> "in to" -> "into".
> 
> The build depends on perl-shell-command, which is not yet in the distribution;
> so it looks like another patch should go in first. Leo, I think you handled
> these? Could you have another look? Concerning one of your questions, I think
> that removing "guix build utils" from the imported modules is fine (actually,
> it was me who recommended it...).

Great, updated patch attached.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0003-gnu-Add-vcsh.patch --]
[-- Type: text/x-patch; name="0003-gnu-Add-vcsh.patch", Size: 2327 bytes --]

From a4d10c0c98b4b9b3df05951b9a38d37b8b1da6d3 Mon Sep 17 00:00:00 2001
From: Christopher Baines <mail@cbaines.net>
Date: Sat, 13 Feb 2016 23:49:25 +0000
Subject: [PATCH] gnu: Add vcsh

* gnu/packages/version-control.scm (vcsh): New variable.
---
 gnu/packages/version-control.scm | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 721a284..a5219a7 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -1058,3 +1058,43 @@ Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
      "This package allows you to use your hubic account as a \"special
 repository\" with git-annex.")
     (license gpl3+)))
+
+(define-public vcsh
+  (package
+    (name "vcsh")
+    (version "1.20151229")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/RichiH/vcsh/archive/v"
+             version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ym3swkh738c3vciffvlr96vqzhwmzkb8ajqzap8f0j9n039a1mf"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:phases (modify-phases %standard-phases
+                  ;; vcsh has no configure script
+                  (delete 'configure)
+                  ;; vcsh has no build stage
+                  (delete 'build))
+       #:make-flags (list (string-append "PREFIX=" %output))))
+    (native-inputs
+     `(("which" ,which)
+       ("perl" ,perl)))
+    (inputs
+     `(("perl-shell-command" ,perl-shell-command)
+       ("perl-test-most" ,perl-test-most)))
+    (propagated-inputs
+     `(("git" ,git)))
+    (home-page "https://github.com/RichiH/vcsh")
+    (synopsis "Version control system for $HOME")
+    (description
+     "vcsh allows you to maintain several Git repositories in one single
+directory.  This can be useful when using version control for files in your
+home directory, as it allows for the separation of the files into different
+repositories, for example you may keep your bash configuration in a separate
+Git repository from your emacs configuration.")
+    (license gpl2+)))
-- 
2.7.0


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 949 bytes --]

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: [PATCH 3/3] gnu: Add vcsh
  2016-02-17 18:59         ` Christopher Baines
@ 2016-02-18  0:11           ` Leo Famulari
  2016-02-18  0:27             ` Christopher Baines
  2016-02-18 20:01             ` Andreas Enge
  0 siblings, 2 replies; 24+ messages in thread
From: Leo Famulari @ 2016-02-18  0:11 UTC (permalink / raw)
  To: Christopher Baines; +Cc: guix-devel

On Wed, Feb 17, 2016 at 06:59:08PM +0000, Christopher Baines wrote:
> From a4d10c0c98b4b9b3df05951b9a38d37b8b1da6d3 Mon Sep 17 00:00:00 2001
> From: Christopher Baines <mail@cbaines.net>
> Date: Sat, 13 Feb 2016 23:49:25 +0000
> Subject: [PATCH] gnu: Add vcsh
> 
> * gnu/packages/version-control.scm (vcsh): New variable.

[...]

> +    (propagated-inputs
> +     `(("git" ,git)))

I missed this earlier. We don't usually propagate this sort of "end-user
program" dependencies. For example rsync does not propagate ssh; the
user must install ssh. [0]

One problem is that the user may want to update git but not vcsh, or
vice versa. Multiple profiles would be required for the user to use
their desired version of git and vcsh.

Since vcsh's test suite requires git, I think it should be a native
input.

Your thoughts?

[0]
I know that ssh is not strictly required to use rsync, whereas it seems
that vcsh cannot work without git, but bear with me.

> +    (home-page "https://github.com/RichiH/vcsh")
> +    (synopsis "Version control system for $HOME")
> +    (description
> +     "vcsh allows you to maintain several Git repositories in one single
> +directory.  This can be useful when using version control for files in your
> +home directory, as it allows for the separation of the files into different
> +repositories, for example you may keep your bash configuration in a separate
> +Git repository from your emacs configuration.")
> +    (license gpl2+)))
> -- 
> 2.7.0
> 

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] gnu: Don't use guix build utils
  2016-02-17 18:28     ` Christopher Baines
@ 2016-02-18  0:15       ` Leo Famulari
  2016-02-18 19:55         ` Andreas Enge
  0 siblings, 1 reply; 24+ messages in thread
From: Leo Famulari @ 2016-02-18  0:15 UTC (permalink / raw)
  To: Christopher Baines; +Cc: guix-devel

On Wed, Feb 17, 2016 at 06:28:18PM +0000, Christopher Baines wrote:
> On 13/02/16 22:39, Leo Famulari wrote:
> > On Sat, Feb 13, 2016 at 04:07:54PM +0000, Christopher Baines wrote:
> >> As this provides a which procedure which conflicts with the which package
> >> provided by gnu packages base.
> >>
> >> * gnu/packages/version-control.scm (version-control): Don't use utils
> > 
> > I can build all the packages in version-control.scm with this change,
> > but I don't fully understand its implications so I'll wait for another
> > reviewer to weigh in.
> 
> Andreas has now commented on this in response to the third patch.
> 
> > If it's okay, I will squash this commit into "Add vcsh", since that
> > commit is broken without this one.
> 
> This does not make much sense to me, as they are separate changes, and
> when applied in the right sequence, everything will work (but it really
> depends what workflow you are using with Git).

The commit that removes the module only makes sense in the context of
adding vcsh. It's analogous to adding a module that is required for a
new package, and that is done in a single commit. So, I think it's
better to squash the commits.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 3/3] gnu: Add vcsh
  2016-02-18  0:11           ` Leo Famulari
@ 2016-02-18  0:27             ` Christopher Baines
  2016-02-18 20:01             ` Andreas Enge
  1 sibling, 0 replies; 24+ messages in thread
From: Christopher Baines @ 2016-02-18  0:27 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1786 bytes --]

On 18/02/16 00:11, Leo Famulari wrote:
> On Wed, Feb 17, 2016 at 06:59:08PM +0000, Christopher Baines wrote:
>> From a4d10c0c98b4b9b3df05951b9a38d37b8b1da6d3 Mon Sep 17 00:00:00 2001
>> From: Christopher Baines <mail@cbaines.net>
>> Date: Sat, 13 Feb 2016 23:49:25 +0000
>> Subject: [PATCH] gnu: Add vcsh
>>
>> * gnu/packages/version-control.scm (vcsh): New variable.
> 
> [...]
> 
>> +    (propagated-inputs
>> +     `(("git" ,git)))
> 
> I missed this earlier. We don't usually propagate this sort of "end-user
> program" dependencies. For example rsync does not propagate ssh; the
> user must install ssh. [0]
> 
> One problem is that the user may want to update git but not vcsh, or
> vice versa. Multiple profiles would be required for the user to use
> their desired version of git and vcsh.
> 
> Since vcsh's test suite requires git, I think it should be a native
> input.
> 
> Your thoughts?
> 
> [0]
> I know that ssh is not strictly required to use rsync, whereas it seems
> that vcsh cannot work without git, but bear with me.

Going a bit off topic, but at what level is this dependency resolution
dealt with, if at all? I am used to writing Debian packages which can
depend and/or recommend sets of packages to ensure that the package
functions as expected after installation.

In fact I think I have been noticing this recently, as I have been
gradually installing gnome related packages at random in the hope of
making the installation of Gnome on my GuixSD system work better (I seem
to have stumbled on the correct ones to get icons now :) ). I was
guessing this was a deficiency in the package definitions, but maybe not?

What you say makes some sense (I still have very little experience
manipulating packages in Guix).


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 949 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] gnu: Don't use guix build utils
  2016-02-18  0:15       ` Leo Famulari
@ 2016-02-18 19:55         ` Andreas Enge
  2016-02-18 19:59           ` Christopher Baines
  0 siblings, 1 reply; 24+ messages in thread
From: Andreas Enge @ 2016-02-18 19:55 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

On Wed, Feb 17, 2016 at 07:15:23PM -0500, Leo Famulari wrote:
> The commit that removes the module only makes sense in the context of
> adding vcsh. It's analogous to adding a module that is required for a
> new package, and that is done in a single commit. So, I think it's
> better to squash the commits.

Yes, I agree it could/should be done at the same time as adding vcsh.
First of all, we will need to get perl-shell-command in; I do not find
the patch any more. Leo, if you still have it and it looks good, could
you please push it? Otherwise, Christopher, could you resend it?

Sorry for my lack of organisation,

Andreas

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] gnu: Don't use guix build utils
  2016-02-18 19:55         ` Andreas Enge
@ 2016-02-18 19:59           ` Christopher Baines
  2016-02-18 20:16             ` Andreas Enge
  0 siblings, 1 reply; 24+ messages in thread
From: Christopher Baines @ 2016-02-18 19:59 UTC (permalink / raw)
  To: Andreas Enge, Leo Famulari; +Cc: guix-devel


[-- Attachment #1.1: Type: text/plain, Size: 795 bytes --]

On 18/02/16 19:55, Andreas Enge wrote:
> On Wed, Feb 17, 2016 at 07:15:23PM -0500, Leo Famulari wrote:
>> The commit that removes the module only makes sense in the context of
>> adding vcsh. It's analogous to adding a module that is required for a
>> new package, and that is done in a single commit. So, I think it's
>> better to squash the commits.
> 
> Yes, I agree it could/should be done at the same time as adding vcsh.
> First of all, we will need to get perl-shell-command in; I do not find
> the patch any more. Leo, if you still have it and it looks good, could
> you please push it? Otherwise, Christopher, could you resend it?

You can find it here [1], I have also attached it to this email.

1: https://lists.gnu.org/archive/html/guix-devel/2016-02/msg00524.html


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-gnu-Add-perl-shell-command.patch --]
[-- Type: text/x-patch; name="0001-gnu-Add-perl-shell-command.patch", Size: 1613 bytes --]

From cf1f343ab00a5ee31cfb650ec0033023cb0d0e02 Mon Sep 17 00:00:00 2001
From: Christopher Baines <mail@cbaines.net>
Date: Sat, 13 Feb 2016 23:40:22 +0000
Subject: [PATCH 1/3] gnu: Add perl-shell-command

This is required for the tests for vcsh.

* gnu/packages/perl.scm (perl-shell-command): New variable.
---
 gnu/packages/perl.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 0e63aa9..868f53c 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -6277,4 +6277,28 @@ really be high enough to warrant the use of a keyword, and the size so small
 such that being individual extensions would be wasteful.")
     (license (package-license perl))))
 
+(define-public perl-shell-command
+  (package
+    (name "perl-shell-command")
+    (version "0.06")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://cpan/authors/id/F/FL/FLORA/Shell-Command-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "1lgc2rb3b5a4lxvbq0cbg08qk0n2i88srxbsz93bwi3razpxxr7k"))))
+    (build-system perl-build-system)
+    (home-page
+      "http://search.cpan.org/dist/Shell-Command")
+    (synopsis
+      "Cross-platform functions emulating common shell commands")
+    (description
+      "Thin wrapper around ExtUtils::Command. See ExtUtils::Command for a
+ description of available commands.")
+    (license (package-license perl))))
+
 ;;; END: Core module overrides
-- 
2.7.0


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 949 bytes --]

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: [PATCH 3/3] gnu: Add vcsh
  2016-02-18  0:11           ` Leo Famulari
  2016-02-18  0:27             ` Christopher Baines
@ 2016-02-18 20:01             ` Andreas Enge
  2016-02-18 21:04               ` Christopher Baines
  2016-02-18 21:26               ` Leo Famulari
  1 sibling, 2 replies; 24+ messages in thread
From: Andreas Enge @ 2016-02-18 20:01 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

On Wed, Feb 17, 2016 at 07:11:44PM -0500, Leo Famulari wrote:
> I missed this earlier. We don't usually propagate this sort of "end-user
> program" dependencies. For example rsync does not propagate ssh; the
> user must install ssh. [0]

I think the cleanest approach would be to patch all calls to "git" in
the vcsh shell script by calls to "/gnu/store/xxxx-git-.../bin/git",
where the base name is taken as "(assoc-ref %build-inputs "git")" or the like.

What do you think?

It might be as simple as a call in a phase to "substitute*", replacing
"git " by the path+" ". The script is a bit annoying in that it scatters
calls to git all over the place. It would be cleaner to define "GIT=git"
at the start of the file, and then always call "$(GIT)". Maybe that is
something to suggest to the upstream author?

Andreas

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] gnu: Don't use guix build utils
  2016-02-18 19:59           ` Christopher Baines
@ 2016-02-18 20:16             ` Andreas Enge
  2016-02-18 21:13               ` Christopher Baines
  0 siblings, 1 reply; 24+ messages in thread
From: Andreas Enge @ 2016-02-18 20:16 UTC (permalink / raw)
  To: Christopher Baines; +Cc: guix-devel

On Thu, Feb 18, 2016 at 07:59:14PM +0000, Christopher Baines wrote:
> You can find it here [1], I have also attached it to this email.

Okay, thanks. I have added a "." to the tag line of the commit message
and dropped the line "needed for vcsh tests"; we can package it in its own
right. I also modified the description a bit, it should consist of complete
sentences.

Now before I push, I am just a bit confused that it is supposed to be a
thin wrapper around "ExtUtils::Command", but that we do not have
perl-extutils-command in our distribution, and even if we had, it is not
present as an input or probably even propagated input. Nevertheless, it
compiles and passes its tests. What did I overlook?

Andreas

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 3/3] gnu: Add vcsh
  2016-02-18 20:01             ` Andreas Enge
@ 2016-02-18 21:04               ` Christopher Baines
  2016-02-18 21:26               ` Leo Famulari
  1 sibling, 0 replies; 24+ messages in thread
From: Christopher Baines @ 2016-02-18 21:04 UTC (permalink / raw)
  To: Andreas Enge, Leo Famulari; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 935 bytes --]

On 18/02/16 20:01, Andreas Enge wrote:
> On Wed, Feb 17, 2016 at 07:11:44PM -0500, Leo Famulari wrote:
>> I missed this earlier. We don't usually propagate this sort of "end-user
>> program" dependencies. For example rsync does not propagate ssh; the
>> user must install ssh. [0]
> 
> I think the cleanest approach would be to patch all calls to "git" in
> the vcsh shell script by calls to "/gnu/store/xxxx-git-.../bin/git",
> where the base name is taken as "(assoc-ref %build-inputs "git")" or the like.
> 
> What do you think?
> 
> It might be as simple as a call in a phase to "substitute*", replacing
> "git " by the path+" ". The script is a bit annoying in that it scatters
> calls to git all over the place. It would be cleaner to define "GIT=git"
> at the start of the file, and then always call "$(GIT)". Maybe that is
> something to suggest to the upstream author?
=
Yep, I can look in to doing this.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 949 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] gnu: Don't use guix build utils
  2016-02-18 20:16             ` Andreas Enge
@ 2016-02-18 21:13               ` Christopher Baines
  2016-02-18 21:37                 ` Andreas Enge
  0 siblings, 1 reply; 24+ messages in thread
From: Christopher Baines @ 2016-02-18 21:13 UTC (permalink / raw)
  To: Andreas Enge; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 984 bytes --]

On 18/02/16 20:16, Andreas Enge wrote:
> On Thu, Feb 18, 2016 at 07:59:14PM +0000, Christopher Baines wrote:
>> You can find it here [1], I have also attached it to this email.
> 
> Okay, thanks. I have added a "." to the tag line of the commit message
> and dropped the line "needed for vcsh tests"; we can package it in its own
> right. I also modified the description a bit, it should consist of complete
> sentences.
> 
> Now before I push, I am just a bit confused that it is supposed to be a
> thin wrapper around "ExtUtils::Command", but that we do not have
> perl-extutils-command in our distribution, and even if we had, it is not
> present as an input or probably even propagated input. Nevertheless, it
> compiles and passes its tests. What did I overlook?

I am no perl expert, but I think it just comes with perl. Debian is easy
to check [1].

1:
https://sources.debian.net/src/perl/5.22.1-7/cpan/ExtUtils-Command/lib/ExtUtils/Command.pm/?hl=41#L41


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 949 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 3/3] gnu: Add vcsh
  2016-02-18 20:01             ` Andreas Enge
  2016-02-18 21:04               ` Christopher Baines
@ 2016-02-18 21:26               ` Leo Famulari
  2016-02-18 21:32                 ` Christopher Baines
  1 sibling, 1 reply; 24+ messages in thread
From: Leo Famulari @ 2016-02-18 21:26 UTC (permalink / raw)
  To: Andreas Enge; +Cc: guix-devel

On Thu, Feb 18, 2016 at 09:01:00PM +0100, Andreas Enge wrote:
> On Wed, Feb 17, 2016 at 07:11:44PM -0500, Leo Famulari wrote:
> > I missed this earlier. We don't usually propagate this sort of "end-user
> > program" dependencies. For example rsync does not propagate ssh; the
> > user must install ssh. [0]
> 
> I think the cleanest approach would be to patch all calls to "git" in
> the vcsh shell script by calls to "/gnu/store/xxxx-git-.../bin/git",
> where the base name is taken as "(assoc-ref %build-inputs "git")" or the like.
> 
> What do you think?

Indeed, this sounds like a clean solution. In that case, git would be a
plain input.

> 
> It might be as simple as a call in a phase to "substitute*", replacing
> "git " by the path+" ". The script is a bit annoying in that it scatters
> calls to git all over the place. It would be cleaner to define "GIT=git"
> at the start of the file, and then always call "$(GIT)". Maybe that is
> something to suggest to the upstream author?

Since 'git' is such a short string, the possibility of "mis-patching"
when performing the string substitution seems a little too high. What do
you think?

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 3/3] gnu: Add vcsh
  2016-02-18 21:26               ` Leo Famulari
@ 2016-02-18 21:32                 ` Christopher Baines
  2016-02-18 21:39                   ` Andreas Enge
  0 siblings, 1 reply; 24+ messages in thread
From: Christopher Baines @ 2016-02-18 21:32 UTC (permalink / raw)
  To: Leo Famulari, Andreas Enge; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1458 bytes --]

On 18/02/16 21:26, Leo Famulari wrote:
> On Thu, Feb 18, 2016 at 09:01:00PM +0100, Andreas Enge wrote:
>> On Wed, Feb 17, 2016 at 07:11:44PM -0500, Leo Famulari wrote:
>>> I missed this earlier. We don't usually propagate this sort of "end-user
>>> program" dependencies. For example rsync does not propagate ssh; the
>>> user must install ssh. [0]
>>
>> I think the cleanest approach would be to patch all calls to "git" in
>> the vcsh shell script by calls to "/gnu/store/xxxx-git-.../bin/git",
>> where the base name is taken as "(assoc-ref %build-inputs "git")" or the like.
>>
>> What do you think?
> 
> Indeed, this sounds like a clean solution. In that case, git would be a
> plain input.
> 
>>
>> It might be as simple as a call in a phase to "substitute*", replacing
>> "git " by the path+" ". The script is a bit annoying in that it scatters
>> calls to git all over the place. It would be cleaner to define "GIT=git"
>> at the start of the file, and then always call "$(GIT)". Maybe that is
>> something to suggest to the upstream author?
> 
> Since 'git' is such a short string, the possibility of "mis-patching"
> when performing the string substitution seems a little too high. What do
> you think?

A patch could be written as Andreas describes (to use a variable), and
then this could be used for Guix. Once written, the patch could also be
sent to the upstream maintainer to see if they want to include it.



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 949 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] gnu: Don't use guix build utils
  2016-02-18 21:13               ` Christopher Baines
@ 2016-02-18 21:37                 ` Andreas Enge
  0 siblings, 0 replies; 24+ messages in thread
From: Andreas Enge @ 2016-02-18 21:37 UTC (permalink / raw)
  To: Christopher Baines; +Cc: guix-devel

On Thu, Feb 18, 2016 at 09:13:47PM +0000, Christopher Baines wrote:
> I am no perl expert, but I think it just comes with perl. Debian is easy
> to check [1].

Indeed, so I just put your patch. Thanks for your patience!

Andreas

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 3/3] gnu: Add vcsh
  2016-02-18 21:32                 ` Christopher Baines
@ 2016-02-18 21:39                   ` Andreas Enge
  0 siblings, 0 replies; 24+ messages in thread
From: Andreas Enge @ 2016-02-18 21:39 UTC (permalink / raw)
  To: Christopher Baines; +Cc: guix-devel

On Thu, Feb 18, 2016 at 09:32:52PM +0000, Christopher Baines wrote:
> A patch could be written as Andreas describes (to use a variable), and
> then this could be used for Guix. Once written, the patch could also be
> sent to the upstream maintainer to see if they want to include it.

This would be quite invasive, but not unreasonable in this case I think.

Andreas

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2016-02-18 21:39 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-13 16:07 [PATCH] gnu: Add vcsh and perl-shell-command Christopher Baines
2016-02-13 16:07 ` [PATCH 1/3] gnu: Add perl-shell-command Christopher Baines
2016-02-13 22:42   ` Leo Famulari
2016-02-13 16:07 ` [PATCH 2/3] gnu: Don't use guix build utils Christopher Baines
2016-02-13 22:39   ` Leo Famulari
2016-02-17 18:28     ` Christopher Baines
2016-02-18  0:15       ` Leo Famulari
2016-02-18 19:55         ` Andreas Enge
2016-02-18 19:59           ` Christopher Baines
2016-02-18 20:16             ` Andreas Enge
2016-02-18 21:13               ` Christopher Baines
2016-02-18 21:37                 ` Andreas Enge
2016-02-13 16:07 ` [PATCH 3/3] gnu: Add vcsh Christopher Baines
2016-02-13 22:41   ` Leo Famulari
2016-02-14 20:36     ` Christopher Baines
2016-02-17 18:11       ` Andreas Enge
2016-02-17 18:59         ` Christopher Baines
2016-02-18  0:11           ` Leo Famulari
2016-02-18  0:27             ` Christopher Baines
2016-02-18 20:01             ` Andreas Enge
2016-02-18 21:04               ` Christopher Baines
2016-02-18 21:26               ` Leo Famulari
2016-02-18 21:32                 ` Christopher Baines
2016-02-18 21:39                   ` Andreas Enge

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).