unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Package Definition Place
@ 2013-12-30  3:55 Kete
  2013-12-30  7:16 ` John Darrington
       [not found] ` <1458111.8sUPPTkUlg@knossos>
  0 siblings, 2 replies; 29+ messages in thread
From: Kete @ 2013-12-30  3:55 UTC (permalink / raw)
  To: guix-devel

Where does a package definition go to build a local package with Guix: 
/nix/store?

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

* Re: Package Definition Place
  2013-12-30  3:55 Package Definition Place Kete
@ 2013-12-30  7:16 ` John Darrington
  2013-12-31  0:37   ` Kete
       [not found] ` <1458111.8sUPPTkUlg@knossos>
  1 sibling, 1 reply; 29+ messages in thread
From: John Darrington @ 2013-12-30  7:16 UTC (permalink / raw)
  To: Kete; +Cc: guix-devel

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

I'm not sure that I understand the question correctly.

Package definitions reside in gnu/package/*.scm  The packages themselves, once
built, get automatically put into /nix/store.

J'



On Sun, Dec 29, 2013 at 10:55:59PM -0500, Kete wrote:
     Where does a package definition go to build a local package with Guix: 
     /nix/store?


-- 
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

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

* Re: Package Definition Place
  2013-12-30  7:16 ` John Darrington
@ 2013-12-31  0:37   ` Kete
  2014-01-01 12:52     ` John Darrington
  0 siblings, 1 reply; 29+ messages in thread
From: Kete @ 2013-12-31  0:37 UTC (permalink / raw)
  To: John Darrington; +Cc: guix-devel

On Monday, December 30, 2013 08:16:01 AM John Darrington wrote:
> Package definitions reside in gnu/package/*.scm  The packages themselves,
> once built, get automatically put into /nix/store.
> 
Sorry, I always forget to 'Reply all'. I hope you don't mind if I take this 
back public.

On Monday, December 30, 2013 02:23:33 PM you wrote:
> On Mon, Dec 30, 2013 at 05:57:48AM -0500, Kete wrote:
>      I'm asking if we're defining packages, how do we build them?
> 
> 
> What I do is:
> 
> make && ./pre-inst-env guix build <pkg-name>

Thanks, what do you do with the scm (Scheme) package definition file? Does it 
play a part in that? Do we place it in the current directory?

What if I used 'guix download', and the tarball is in /nix/store? Will it just 
work?

Wait, what is "pre-inst-env"? I'm a little lost. I'm just trying to contribute 
a package of my shell, so I can use it in Emacs.

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

* Re: Package Definition Place
  2013-12-31  0:37   ` Kete
@ 2014-01-01 12:52     ` John Darrington
  2014-01-01 16:05       ` Kete
  0 siblings, 1 reply; 29+ messages in thread
From: John Darrington @ 2014-01-01 12:52 UTC (permalink / raw)
  To: Kete; +Cc: guix-devel

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

On Mon, Dec 30, 2013 at 07:37:26PM -0500, Kete wrote:

     > make && ./pre-inst-env guix build <pkg-name>
     
     Thanks, what do you do with the scm (Scheme) package definition file? Does it 
     play a part in that? Do we place it in the current directory?

The .scm file usually stays in the directory gnu/packages/
     
     What if I used 'guix download', and the tarball is in /nix/store? Will it just 
     work?

No.  "guix download" is a convenience function for package developers.  It downloads the
tarball, places it in the store and reports the hash.  Nothing else (so far as I'm aware).
     
     Wait, what is "pre-inst-env"? I'm a little lost. I'm just trying to contribute 
     a package of my shell, so I can use it in Emacs.

pre-inst-env merely sets a number of environment parameters so that you can build and install
newly defined pacakges without having to have those package definitions actually installed.

Maybe having a look at what is currently in gnu/packags/emacs.scm will help

-- 
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

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

* Re: Package Definition Place
  2014-01-01 12:52     ` John Darrington
@ 2014-01-01 16:05       ` Kete
  0 siblings, 0 replies; 29+ messages in thread
From: Kete @ 2014-01-01 16:05 UTC (permalink / raw)
  To: John Darrington; +Cc: guix-devel

On Wednesday, January 01, 2014 01:52:35 PM you wrote:
> The .scm file usually stays in the directory gnu/packages/

If you mean http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/, then 
how do I contribute to the project?

> "guix download" is a convenience function for package developers.

I'm trying to develop a package.

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

* Re: Package Definition Place
       [not found]   ` <20140101160917.GA13487@intra>
@ 2014-01-01 16:32     ` Kete
  2014-01-01 16:50       ` John Darrington
  0 siblings, 1 reply; 29+ messages in thread
From: Kete @ 2014-01-01 16:32 UTC (permalink / raw)
  To: John Darrington; +Cc: guix-devel

On Wednesday, January 01, 2014 05:09:18 PM John Darrington wrote:
> When it's ready rpPost a patch to the list.  Ludovic will commit it to the
> repository (if he likes it).

This is my problem. How do I know if it works if I can't test it by building 
the package?

Thanks

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

* Re: Package Definition Place
  2014-01-01 16:32     ` Kete
@ 2014-01-01 16:50       ` John Darrington
  2014-01-01 19:13         ` Kete
  0 siblings, 1 reply; 29+ messages in thread
From: John Darrington @ 2014-01-01 16:50 UTC (permalink / raw)
  To: Kete; +Cc: guix-devel

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

On Wed, Jan 01, 2014 at 11:32:35AM -0500, Kete wrote:
     On Wednesday, January 01, 2014 05:09:18 PM John Darrington wrote:
     > When it's ready rpPost a patch to the list.  Ludovic will commit it to the
     > repository (if he likes it).
     
     This is my problem. How do I know if it works if I can't test it by building 
     the package?

To build: make && ./pre-inst-env guix build <pkg>

To install: ./pre-inst-env guix package -i <pkg>

Perform any tests you deem necessary, then submit the patch.

J'

-- 
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

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

* Re: Package Definition Place
  2014-01-01 16:50       ` John Darrington
@ 2014-01-01 19:13         ` Kete
  2014-01-01 19:55           ` John Darrington
  0 siblings, 1 reply; 29+ messages in thread
From: Kete @ 2014-01-01 19:13 UTC (permalink / raw)
  To: John Darrington; +Cc: guix-devel

On Wednesday, January 01, 2014 05:50:05 PM John Darrington wrote:
> make && ./pre-inst-env guix build
"no such file or directory: ./pre-inst-env"

So I need this: http://git.savannah.gnu.org/cgit/guix.git/tree/pre-inst-env.in?

can't cd to @abs_top_srcdir@ 
or @abs_top_builddir@
ERROR: no code for module (guix ui)

Am I supposed to "add to a module"? If so, how?

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

* Re: Package Definition Place
  2014-01-01 19:13         ` Kete
@ 2014-01-01 19:55           ` John Darrington
  2014-01-01 20:38             ` Kete
  2014-01-01 22:30             ` Kete
  0 siblings, 2 replies; 29+ messages in thread
From: John Darrington @ 2014-01-01 19:55 UTC (permalink / raw)
  To: Kete; +Cc: guix-devel

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

Are you working from Git or from a released tarball?   Either way, the 
pre-inst-env file should exist in your build directory (after you have built guix
of course)

On Wed, Jan 01, 2014 at 02:13:42PM -0500, Kete wrote:
     On Wednesday, January 01, 2014 05:50:05 PM John Darrington wrote:
     > make && ./pre-inst-env guix build
     "no such file or directory: ./pre-inst-env"
     
     So I need this: http://git.savannah.gnu.org/cgit/guix.git/tree/pre-inst-env.in?
     
     can't cd to @abs_top_srcdir@ 
     or @abs_top_builddir@
     ERROR: no code for module (guix ui)
     
     Am I supposed to "add to a module"? If so, how?

-- 
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

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

* Re: Package Definition Place
  2014-01-01 19:55           ` John Darrington
@ 2014-01-01 20:38             ` Kete
  2014-01-01 22:30             ` Kete
  1 sibling, 0 replies; 29+ messages in thread
From: Kete @ 2014-01-01 20:38 UTC (permalink / raw)
  To: John Darrington; +Cc: guix-devel

On Wednesday, January 01, 2014 08:55:07 PM John Darrington wrote:
> the
> pre-inst-env file should exist in your build directory (after you have built
> guix of course)

If I finish this process, maybe somebody could use the instructions.
 
The location of pre-inst-env was one of my earlier questions. How can I be 
more clear?

How is the <pkg> argument supposed to work? Guix can't find the package. This 
is a package that the Guix project has not provided. I am trying to create it. 
Is that still encouraged as it was in the manual? Are you leaving out 
information to discourage me?

Am I supposed to add a module to gnu-system.am?

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

* Re: Package Definition Place
  2014-01-01 19:55           ` John Darrington
  2014-01-01 20:38             ` Kete
@ 2014-01-01 22:30             ` Kete
  2014-01-02  2:44               ` Nikita Karetnikov
  1 sibling, 1 reply; 29+ messages in thread
From: Kete @ 2014-01-01 22:30 UTC (permalink / raw)
  To: John Darrington; +Cc: guix-devel

make[2]: *** No rule to make target `gnu/packages/zsh.scm', needed by `all-
am'.  Stop.

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

* Re: Package Definition Place
  2014-01-01 22:30             ` Kete
@ 2014-01-02  2:44               ` Nikita Karetnikov
  2014-01-02  2:50                 ` Nikita Karetnikov
  2014-01-03  2:28                 ` Kete
  0 siblings, 2 replies; 29+ messages in thread
From: Nikita Karetnikov @ 2014-01-02  2:44 UTC (permalink / raw)
  To: Kete; +Cc: guix-devel

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

> Am I supposed to add a module to gnu-system.am?

Yes, here’s an example [1].

> make[2]: *** No rule to make target `gnu/packages/zsh.scm', needed by `all-
> am'.  Stop.

I’ve just tried the following.  Could you do the same and report any
issues?

$ git clone git://git.sv.gnu.org/guix.git
$ cd guix
$ ./bootstrap && ./configure --localstatedir=/nix/var && make && make check

(See ‘HACKING’ for more information.)

Then you could add a recipe (i.e., the definition of a package) to
‘guix/gnu/packages’.  For instance, this commit [1] adds the elfutils
recipe to ‘gnu/packages/elf.scm’.

Did I forget to address anything?

[1] http://git.savannah.gnu.org/cgit/guix.git/commit/?id=2ed5b0f42c40b5eb8df462b3cff3399123423182

[-- Attachment #2: Type: application/pgp-signature, Size: 835 bytes --]

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

* Re: Package Definition Place
  2014-01-02  2:44               ` Nikita Karetnikov
@ 2014-01-02  2:50                 ` Nikita Karetnikov
  2014-01-02 10:06                   ` Kete
  2014-01-03  2:28                 ` Kete
  1 sibling, 1 reply; 29+ messages in thread
From: Nikita Karetnikov @ 2014-01-02  2:50 UTC (permalink / raw)
  To: Kete; +Cc: guix-devel

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

> make[2]: *** No rule to make target `gnu/packages/zsh.scm', needed by `all-
> am'.  Stop.

Sorry, I totally misunderstood the context.  Are you trying to add Zsh?

It seems you added a line to ‘gnu-system.am’ but forgot to add a file to
‘gnu/packages’.  Could you confirm?

[-- Attachment #2: Type: application/pgp-signature, Size: 835 bytes --]

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

* Re: Package Definition Place
  2014-01-02  2:50                 ` Nikita Karetnikov
@ 2014-01-02 10:06                   ` Kete
  2014-01-02 14:58                     ` Nikita Karetnikov
  0 siblings, 1 reply; 29+ messages in thread
From: Kete @ 2014-01-02 10:06 UTC (permalink / raw)
  To: Nikita Karetnikov; +Cc: guix-devel

On Thursday, January 02, 2014 06:50:25 AM Nikita Karetnikov wrote:
> > make[2]: *** No rule to make target `gnu/packages/zsh.scm', needed by
> > `all-
> > am'.  Stop.
> 
> Sorry, I totally misunderstood the context.  Are you trying to add Zsh?
> 
> It seems you added a line to ‘gnu-system.am’ but forgot to add a file to
> ‘gnu/packages’.  Could you confirm?

No problem. Yes, I'm trying to add Zsh. Yes, I don't know where 'gnu/packages' 
is except for savannah. Thanks

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

* Re: Package Definition Place
  2014-01-02 10:06                   ` Kete
@ 2014-01-02 14:58                     ` Nikita Karetnikov
  2014-01-02 23:45                       ` Kete
  0 siblings, 1 reply; 29+ messages in thread
From: Nikita Karetnikov @ 2014-01-02 14:58 UTC (permalink / raw)
  To: Kete; +Cc: guix-devel

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

> Yes, I don't know where 'gnu/packages' is except for savannah.

Hm, I’m a bit puzzled.  How did you change ‘gnu-system.am’, then?
‘gnu/packages’ should be in the same directory (on your machine) as
‘gnu-system.am’.

Did you clone the repository or download the tarball?  If not, could you
please follow the instructions in my previous email?

Are you familiar with Git?  Do you know Scheme?  Have you contributed to
free software projects?

[-- Attachment #2: Type: application/pgp-signature, Size: 835 bytes --]

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

* Re: Package Definition Place
  2014-01-02 14:58                     ` Nikita Karetnikov
@ 2014-01-02 23:45                       ` Kete
  0 siblings, 0 replies; 29+ messages in thread
From: Kete @ 2014-01-02 23:45 UTC (permalink / raw)
  To: Nikita Karetnikov; +Cc: guix-devel

On Thursday, January 02, 2014 06:58:47 PM Nikita Karetnikov wrote:
> Hm, I’m a bit puzzled.  How did you change ‘gnu-system.am’, then?

gnu-system.am was at the top level. I didn't have a packages folder in my gnu 
dir.

> Did you clone the repository or download the tarball?  If not, could you
> please follow the instructions in my previous email?

I downloaded the 0.5 tarball. Yes, I will be glad to clone the repo.

> Are you familiar with Git?

Yes, I have used Git's basic commands.

> Do you know Scheme?

I do not, but I have learned some Elisp fundamentals.

> Have you contributed to free software projects?

Yes, a little to Parabola and Savannah—I tried to package Clementine by myself 
for Parabola, but I got some help from their Emulatorman; and I checked the 
licensing of a couple nongnu applications for Savannah.

Kind regards

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

* Re: Package Definition Place
  2014-01-02  2:44               ` Nikita Karetnikov
  2014-01-02  2:50                 ` Nikita Karetnikov
@ 2014-01-03  2:28                 ` Kete
  2014-01-03  5:50                   ` John Darrington
  1 sibling, 1 reply; 29+ messages in thread
From: Kete @ 2014-01-03  2:28 UTC (permalink / raw)
  To: Nikita Karetnikov; +Cc: guix-devel

On Thursday, January 02, 2014 06:44:00 AM Nikita Karetnikov wrote:
> $ git clone git://git.sv.gnu.org/guix.git
> $ cd guix
> $ ./bootstrap && ./configure --localstatedir=/nix/var && make && make check
> 
> (See ‘HACKING’ for more information.)
> 
> Then you could add a recipe (i.e., the definition of a package) to
> ‘guix/gnu/packages’.  For instance, this commit [1] adds the elfutils
> recipe to ‘gnu/packages/elf.scm’.
> 
> Did I forget to address anything?

I copied my package definition to gnu/packages and added a line for it in gnu-
system.am. Then, I ran './pre-inst-env guix build zsh' and got this output: 
guix build: error: failed to connect to `/nix/var/nix/daemon-socket/socket': 
No such file or directory

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

* Re: Package Definition Place
  2014-01-03  2:28                 ` Kete
@ 2014-01-03  5:50                   ` John Darrington
  2014-01-03 11:37                     ` Kete
  0 siblings, 1 reply; 29+ messages in thread
From: John Darrington @ 2014-01-03  5:50 UTC (permalink / raw)
  To: Kete; +Cc: guix-devel

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

On Thu, Jan 02, 2014 at 09:28:24PM -0500, Kete wrote:
     On Thursday, January 02, 2014 06:44:00 AM Nikita Karetnikov wrote:
     > $ git clone git://git.sv.gnu.org/guix.git
     > $ cd guix
     > $ ./bootstrap && ./configure --localstatedir=/nix/var && make && make check
     > 
     > (See ‘HACKING’ for more information.)
     > 
     > Then you could add a recipe (i.e., the definition of a package) to
     > ‘guix/gnu/packages’.  For instance, this commit [1] adds the elfutils
     > recipe to ‘gnu/packages/elf.scm’.
     > 
     > Did I forget to address anything?
     
     I copied my package definition to gnu/packages and added a line for it in gnu-
     system.am. Then, I ran './pre-inst-env guix build zsh' and got this output: 
     guix build: error: failed to connect to `/nix/var/nix/daemon-socket/socket': 
     No such file or directory

This would suggest that you haven't got a guix daemon running.

Install guix and set up the daemon as described in Chapter 2 of the GUIX manual.

J'

-- 
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

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

* Re: Package Definition Place
  2014-01-03  5:50                   ` John Darrington
@ 2014-01-03 11:37                     ` Kete
  2014-01-03 15:16                       ` Nikita Karetnikov
  2014-01-03 15:19                       ` Ludovic Courtès
  0 siblings, 2 replies; 29+ messages in thread
From: Kete @ 2014-01-03 11:37 UTC (permalink / raw)
  To: John Darrington; +Cc: guix-devel

On Friday, January 03, 2014 06:50:40 AM John Darrington wrote:
> This would suggest that you haven't got a guix daemon running.
> 
> Install guix and set up the daemon as described in Chapter 2 of the GUIX
> manual.

Thanks, here are the results:

	gnu/packages/zsh.scm:12:2: warning: possibly unbound variable `mit'

The license is like MIT.

	guix build: error: zsh: unknown package

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

* Re: Package Definition Place
  2014-01-03 11:37                     ` Kete
@ 2014-01-03 15:16                       ` Nikita Karetnikov
  2014-01-03 15:19                       ` Ludovic Courtès
  1 sibling, 0 replies; 29+ messages in thread
From: Nikita Karetnikov @ 2014-01-03 15:16 UTC (permalink / raw)
  To: Kete; +Cc: guix-devel

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

> Thanks, here are the results:
>
> 	gnu/packages/zsh.scm:12:2: warning: possibly unbound variable `mit'
>
> The license is like MIT.
>
> 	guix build: error: zsh: unknown package

I guess it would be easier to help if you provide the code.

[-- Attachment #2: Type: application/pgp-signature, Size: 835 bytes --]

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

* Re: Package Definition Place
  2014-01-03 11:37                     ` Kete
  2014-01-03 15:16                       ` Nikita Karetnikov
@ 2014-01-03 15:19                       ` Ludovic Courtès
  2014-01-04  1:10                         ` Kete
  1 sibling, 1 reply; 29+ messages in thread
From: Ludovic Courtès @ 2014-01-03 15:19 UTC (permalink / raw)
  To: Kete; +Cc: guix-devel

Kete <kete@ninthfloor.org> skribis:

> On Friday, January 03, 2014 06:50:40 AM John Darrington wrote:
>> This would suggest that you haven't got a guix daemon running.
>> 
>> Install guix and set up the daemon as described in Chapter 2 of the GUIX
>> manual.
>
> Thanks, here are the results:
>
> 	gnu/packages/zsh.scm:12:2: warning: possibly unbound variable `mit'
>
> The license is like MIT.

It is called ‘x11’ (to avoid ambiguity with other licenses originating
from MIT) in the (guix licenses) module.  So you would write

   (define-module (gnu packages zsh)
      ...
      #:use-module (guix licenses)
      ...
      )

   (define-public zsh
     (package
       ...
       (license x11)))

If it’s similar to, but different from the X11 license, use:

       (license (x11-style "http://url-of/the/license"))

> 	guix build: error: zsh: unknown package

That will be solved by the above.

HTH!

Ludo’.

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

* Re: Package Definition Place
  2014-01-03 15:19                       ` Ludovic Courtès
@ 2014-01-04  1:10                         ` Kete
  2014-01-04  7:15                           ` John Darrington
  2014-01-04 11:47                           ` Ludovic Courtès
  0 siblings, 2 replies; 29+ messages in thread
From: Kete @ 2014-01-04  1:10 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

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

On Friday, January 03, 2014 04:19:26 PM Ludovic Courtès wrote:
> It is called ‘x11’ (to avoid ambiguity with other licenses originating
> from MIT) in the (guix licenses) module.  So you would write
> 
>    (define-module (gnu packages zsh)
>       ...
>        (license (x11-style "http://url-of/the/license"))
> 
> > 	guix build: error: zsh: unknown package
> 
> That will be solved by the above.
> 
> HTH!

Thanks, that did help, but I got the following error:
	checking if tcsetpgrp() actually works... notty
	configure: error: no controlling tty
	Try running configure with --with-tcsetpgrp or --without-tcsetpgrp
I tried the first flag, but it "failed to match any pattern in form". I was 
copying the bash.scm, but I'm not sure if Zsh needs the readline and texinfo 
stuff. Maybe I should just attach my package definition as Nikita requested. 
It's attached.

By the way, the license also says some of the scripts are licensed with the 
GPL.

[-- Attachment #2: zsh.scm --]
[-- Type: text/x-scheme, Size: 1292 bytes --]

(define-module (gnu packages zsh)
  #:use-module (guix licenses)
  ;; #:use-module (gnu packages ncurses)
  ;; #:use-module (gnu packages readline)
  ;; #:use-module (gnu packages texinfo)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix build-system gnu))
	     

(define-public zsh
  (let* ((configure-flags
	  ``("--with-tcsetpgrp"))))
  (package
   (name "zsh")
   (version "5.0.2")
   (source (origin
	    (method url-fetch)
	    (uri (string-append "ftp://ftp.zsh.org/zsh/zsh.tar.bz2"))
	    (sha256
	     (base32 "1s2fvv0zfpi0qg9fzhiv8ac19pwbbjd0sbsbzmll3nqa8k4yfvz9"))))
   (build-system gnu-build-system)
   (inputs `(("readline" ,readline)
	     ("ncurses" ,ncurses)
	     ("texinfo" ,texinfo)))
   (synopsis "Z Shell")
   (description "Zsh is a UNIX command interpreter (shell) usable as an interactive login shell and as a shell script command processor. Of the standard shells, zsh most closely resembles ksh but includes many enhancements. Zsh has command line editing, builtin spelling correction, programmable command completion, shell functions (with autoloading), a history mechanism, and a host of other features.")
   (license (x11-style "http://sourceforge.net/p/zsh/code/ci/master/tree/LICENCE"))
   (home-page "http://www.zsh.org/")))

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

* Re: Package Definition Place
  2014-01-04  1:10                         ` Kete
@ 2014-01-04  7:15                           ` John Darrington
  2014-01-04 21:21                             ` Kete
  2014-01-04 11:47                           ` Ludovic Courtès
  1 sibling, 1 reply; 29+ messages in thread
From: John Darrington @ 2014-01-04  7:15 UTC (permalink / raw)
  To: Kete; +Cc: guix-devel

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

On Fri, Jan 03, 2014 at 08:10:56PM -0500, Kete wrote:
     On Friday, January 03, 2014 04:19:26 PM Ludovic Courtès wrote:
     > It is called ‘x11’ (to avoid ambiguity with other licenses originating
     > from MIT) in the (guix licenses) module.  So you would write
     > 
     >    (define-module (gnu packages zsh)
     >       ...
     >        (license (x11-style "http://url-of/the/license"))
     > 
     > > 	guix build: error: zsh: unknown package
     > 
     > That will be solved by the above.
     > 
     > HTH!
     
     Thanks, that did help, but I got the following error:
     	checking if tcsetpgrp() actually works... notty
     	configure: error: no controlling tty
     	Try running configure with --with-tcsetpgrp or --without-tcsetpgrp
     I tried the first flag, but it "failed to match any pattern in form". I was 
     copying the bash.scm, but I'm not sure if Zsh needs the readline and texinfo 
     stuff. Maybe I should just attach my package definition as Nikita requested. 
     It's attached.
     

       (let* ((configure-flags
     	  ``("--with-tcsetpgrp"))))

The example in bash.scm is over complicated.  Look at some of the examples in 
xorg.scm to see how to set configure-flags.


-- 
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

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

* Re: Package Definition Place
  2014-01-04  1:10                         ` Kete
  2014-01-04  7:15                           ` John Darrington
@ 2014-01-04 11:47                           ` Ludovic Courtès
  2014-01-04 21:31                             ` Kete
  1 sibling, 1 reply; 29+ messages in thread
From: Ludovic Courtès @ 2014-01-04 11:47 UTC (permalink / raw)
  To: Kete; +Cc: guix-devel

Kete <kete@ninthfloor.org> skribis:

> Thanks, that did help, but I got the following error:
> 	checking if tcsetpgrp() actually works... notty
> 	configure: error: no controlling tty
> 	Try running configure with --with-tcsetpgrp or --without-tcsetpgrp

Ah, that’s an issue with the ‘configure’ script of Zsh now.

I’d recommend looking at how that tcsetpgrp check is implemented, to see
what makes it think it doesn’t work.  In particular what does
‘config.log’ report about this test?

This may be due to the chroot build environment, which could be lacking
something Zsh expects (see
<http://www.gnu.org/software/guix/manual/guix.html#Setting-Up-the-Daemon>
for details.)

> I tried the first flag, but it "failed to match any pattern in form". I was 
> copying the bash.scm, but I'm not sure if Zsh needs the readline and texinfo 
> stuff. Maybe I should just attach my package definition as Nikita requested. 
> It's attached.

Note that bash.scm is relatively complex, because Bash has a limited
‘configure’ interface; hopefully you can do something simpler here.

> By the way, the license also says some of the scripts are licensed with the 
> GPL.

The ‘license’ field should reflect the license of what gets installed.
So if build-time scripts are GPL, that doesn’t matter here.  But please
do skim over the license headers to make sure they’re all under that
X11-style license.

> (define-public zsh
>   (let* ((configure-flags
> 	  ``("--with-tcsetpgrp"))))

‘let*’ introduces a ‘configure-flags’ local variable, but it’s not used
after that.  So you can remove that ‘let*’ form altogether, and instead...

>   (package
>    (name "zsh")
>    (version "5.0.2")
>    (source (origin
> 	    (method url-fetch)
> 	    (uri (string-append "ftp://ftp.zsh.org/zsh/zsh.tar.bz2"))
> 	    (sha256
> 	     (base32 "1s2fvv0zfpi0qg9fzhiv8ac19pwbbjd0sbsbzmll3nqa8k4yfvz9"))))
>    (build-system gnu-build-system)

... you can add an ‘arguments’ field (info "(guix) Defining Packages"):

  (arguments '(#:configure-flags '("--with-tcsetpgrp")))

In the build log, search for ‘configure flags’, and you’ll notice that
--with-tcsetpgrp is now passed (and I guess this should solve the
problem above?)

>    (inputs `(("readline" ,readline)
> 	     ("ncurses" ,ncurses)
> 	     ("texinfo" ,texinfo)))

My guess is that Zsh doesn’t use Readline nor Texinfo, but please check
its documentation to see what’s needed.

>    (synopsis "Z Shell")
>    (description "Zsh is a UNIX command interpreter (shell) usable as an interactive login shell and as a shell script command processor. Of the standard shells, zsh most closely resembles ksh but includes many enhancements. Zsh has command line editing, builtin spelling correction, programmable command completion, shell functions (with autoloading), a history mechanism, and a host of other features.")

Please wrap lines below 80 characters, and don’t use tabs (see “Coding
Style” in the ‘HACKING’ file.)

Hope this helps!

Ludo’.

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

* Re: Package Definition Place
  2014-01-04  7:15                           ` John Darrington
@ 2014-01-04 21:21                             ` Kete
  2014-01-04 22:25                               ` John Darrington
  2014-01-05 18:21                               ` Ludovic Courtès
  0 siblings, 2 replies; 29+ messages in thread
From: Kete @ 2014-01-04 21:21 UTC (permalink / raw)
  To: John Darrington; +Cc: guix-devel

On Saturday, January 04, 2014 08:15:40 AM John Darrington wrote:
> The example in bash.scm is over complicated.  Look at some of the examples
> in xorg.scm to see how to set configure-flags.

That got me a little further.
	Src/../Src/mkmakemod.sh: line 467: /bin/sh: No such file or directory
	Makefile:299: recipe for target 'Makemod' failed
These are the lines around 464-470:
	if $second_stage ; then
	    trap "rm -f $the_subdir/${the_makefile}; exit 1" 1 2 15

	    ${CONFIG_SHELL-/bin/sh} ./config.status \
		--file=$the_subdir/${the_makefile}:$the_subdir/${the_makefile}.in ||
	    exit 1
	fi
I tried with the --without-tcsetpgrp flag, but I got the same error.

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

* Re: Package Definition Place
  2014-01-04 11:47                           ` Ludovic Courtès
@ 2014-01-04 21:31                             ` Kete
  2014-01-05 17:57                               ` Ludovic Courtès
  0 siblings, 1 reply; 29+ messages in thread
From: Kete @ 2014-01-04 21:31 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

On Saturday, January 04, 2014 12:47:06 PM Ludovic Courtès wrote:
> I’d recommend looking at how that tcsetpgrp check is implemented, to see
> what makes it think it doesn’t work.  In particular what does
> ‘config.log’ report about this test?

I didn't find any mention.
 
> The ‘license’ field should reflect the license of what gets installed.
> So if build-time scripts are GPL, that doesn’t matter here.  But please
> do skim over the license headers to make sure they’re all under that
> X11-style license.

Here is what I found with grep:
	Completion/Unix/Command/_darcs is licensed under the GNU GPL. "zsh
	will be linked against libgdbm.  This means the binary is covered by
	the GNU General Public License.  This does not affect the source
	code." config.guess and config.sub are also GPLed.
The rest default to that X11-style license.

> My guess is that Zsh doesn’t use Readline nor Texinfo, but please check
> its documentation to see what’s needed.

You guessed correctly. It only needed ncurses.

> Please wrap lines below 80 characters, and don’t use tabs (see “Coding
> Style” in the ‘HACKING’ file.)

I think the description is all on one line, so I don't know what happened.

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

* Re: Package Definition Place
  2014-01-04 21:21                             ` Kete
@ 2014-01-04 22:25                               ` John Darrington
  2014-01-05 18:21                               ` Ludovic Courtès
  1 sibling, 0 replies; 29+ messages in thread
From: John Darrington @ 2014-01-04 22:25 UTC (permalink / raw)
  To: Kete; +Cc: guix-devel

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

This is where you have to start doing some detective work and probably some patching!

Based on what you pasted, it looks as if CONFIG_SHELL isn't getting passed to the mkmakemod.sh file.
Probably the zsh devs have done something wierd.

What I do at this stage is to build with the -K flag, then you can manually enter the build directory which
guix places in /tmp/nix-build-* and start putting in diagnostics and running the build manually to find out
what is going on.

Sometimes it can be painful.

J'


On Sat, Jan 04, 2014 at 04:21:35PM -0500, Kete wrote:
     On Saturday, January 04, 2014 08:15:40 AM John Darrington wrote:
     > The example in bash.scm is over complicated.  Look at some of the examples
     > in xorg.scm to see how to set configure-flags.
     
     That got me a little further.
     	Src/../Src/mkmakemod.sh: line 467: /bin/sh: No such file or directory
     	Makefile:299: recipe for target 'Makemod' failed
     These are the lines around 464-470:
     	if $second_stage ; then
     	    trap "rm -f $the_subdir/${the_makefile}; exit 1" 1 2 15
     
     	    ${CONFIG_SHELL-/bin/sh} ./config.status \
     		--file=$the_subdir/${the_makefile}:$the_subdir/${the_makefile}.in ||
     	    exit 1
     	fi
     I tried with the --without-tcsetpgrp flag, but I got the same error.

-- 
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

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

* Re: Package Definition Place
  2014-01-04 21:31                             ` Kete
@ 2014-01-05 17:57                               ` Ludovic Courtès
  0 siblings, 0 replies; 29+ messages in thread
From: Ludovic Courtès @ 2014-01-05 17:57 UTC (permalink / raw)
  To: Kete; +Cc: guix-devel

Kete <kete@ninthfloor.org> skribis:

> On Saturday, January 04, 2014 12:47:06 PM Ludovic Courtès wrote:
>> I’d recommend looking at how that tcsetpgrp check is implemented, to see
>> what makes it think it doesn’t work.  In particular what does
>> ‘config.log’ report about this test?
>
> I didn't find any mention.

Hmm, that’s surprising.  Normally config.log contains details about
failed configure tests.

>> The ‘license’ field should reflect the license of what gets installed.
>> So if build-time scripts are GPL, that doesn’t matter here.  But please
>> do skim over the license headers to make sure they’re all under that
>> X11-style license.
>
> Here is what I found with grep:
> 	Completion/Unix/Command/_darcs is licensed under the GNU GPL. "zsh
> 	will be linked against libgdbm.  This means the binary is covered by
> 	the GNU General Public License.  This does not affect the source
> 	code." config.guess and config.sub are also GPLed.

Does it comes with a copy of GDBM?  Or is it an optional dependency?
If the latter, then I guess you should add that dependency.

> The rest default to that X11-style license.

So you should keep that ‘x11-style’ license, with a comment above saying
that, since it’s linked against GDBM, it’s GPLv3+ in practice.

If it builds fine, feel free to post a patch as produced by ‘git
format-patch’ (please read “Submitting Patches” in ‘HACKING’.)

Thanks,
Ludo’.

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

* Re: Package Definition Place
  2014-01-04 21:21                             ` Kete
  2014-01-04 22:25                               ` John Darrington
@ 2014-01-05 18:21                               ` Ludovic Courtès
  1 sibling, 0 replies; 29+ messages in thread
From: Ludovic Courtès @ 2014-01-05 18:21 UTC (permalink / raw)
  To: Kete; +Cc: guix-devel

Kete <kete@ninthfloor.org> skribis:

> On Saturday, January 04, 2014 08:15:40 AM John Darrington wrote:
>> The example in bash.scm is over complicated.  Look at some of the examples
>> in xorg.scm to see how to set configure-flags.
>
> That got me a little further.
> 	Src/../Src/mkmakemod.sh: line 467: /bin/sh: No such file or directory
> 	Makefile:299: recipe for target 'Makemod' failed

As John notes, there’s no /bin/sh in the build environment.  By default,
files starting with #!/bin/sh (or similar) are automatically patched to
#!/nix/store/.../bin/sh.

However, it could be that mkmakemod.sh explicitly invokes /bin/sh in its
body, in which case it has to be patched “manually”.

Try building with --keep-failed, inspect that file, and then don’t
hesitate to join #guix on Freenode for more advice/debugging.  ;-)

Ludo’.

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

end of thread, other threads:[~2014-01-05 18:26 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-12-30  3:55 Package Definition Place Kete
2013-12-30  7:16 ` John Darrington
2013-12-31  0:37   ` Kete
2014-01-01 12:52     ` John Darrington
2014-01-01 16:05       ` Kete
     [not found] ` <1458111.8sUPPTkUlg@knossos>
     [not found]   ` <20140101160917.GA13487@intra>
2014-01-01 16:32     ` Kete
2014-01-01 16:50       ` John Darrington
2014-01-01 19:13         ` Kete
2014-01-01 19:55           ` John Darrington
2014-01-01 20:38             ` Kete
2014-01-01 22:30             ` Kete
2014-01-02  2:44               ` Nikita Karetnikov
2014-01-02  2:50                 ` Nikita Karetnikov
2014-01-02 10:06                   ` Kete
2014-01-02 14:58                     ` Nikita Karetnikov
2014-01-02 23:45                       ` Kete
2014-01-03  2:28                 ` Kete
2014-01-03  5:50                   ` John Darrington
2014-01-03 11:37                     ` Kete
2014-01-03 15:16                       ` Nikita Karetnikov
2014-01-03 15:19                       ` Ludovic Courtès
2014-01-04  1:10                         ` Kete
2014-01-04  7:15                           ` John Darrington
2014-01-04 21:21                             ` Kete
2014-01-04 22:25                               ` John Darrington
2014-01-05 18:21                               ` Ludovic Courtès
2014-01-04 11:47                           ` Ludovic Courtès
2014-01-04 21:31                             ` Kete
2014-01-05 17:57                               ` Ludovic Courtès

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).