all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* How to install prerelease package versions (particularly Emacs)
@ 2018-03-03  0:00 Jorge
  2018-03-03 10:24 ` Oleg Pykhalov
  2018-03-03 13:46 ` Jorge
  0 siblings, 2 replies; 30+ messages in thread
From: Jorge @ 2018-03-03  0:00 UTC (permalink / raw)
  To: help-guix

Hi.  I use Spacemacs v.0.300.0 (develop) atop Emacs 26.0.91.  I compile
Emacs 26 locally and stow it with GNU Stow.  I would prefer to get Emacs
26 from Guix, which would be more automatic and would come configured to
work with Guix-installed Emacs packages.  So is Emacs 26 available from
Guix?  Unfortunately ~guix package --show=emacs~ only reports version
25.3, but maybe there is a non intuitive way to get Emacs 26.

Regards

- I am Brazilian.  I hope my English is correct and I welcome feedback
- Please adopt free formats like PDF, ODF, Org, LaTeX, Opus, WebM and 7z
- Free/libre software for Android: https://f-droid.org/
- [[https://www.gnu.org/philosophy/free-sw.html][What is free software?]]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-03-03  0:00 How to install prerelease package versions (particularly Emacs) Jorge
@ 2018-03-03 10:24 ` Oleg Pykhalov
  2018-03-19  4:13   ` Chris Marusich
  2018-03-03 13:46 ` Jorge
  1 sibling, 1 reply; 30+ messages in thread
From: Oleg Pykhalov @ 2018-03-03 10:24 UTC (permalink / raw)
  To: Jorge; +Cc: help-guix

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

Hello Jorge,

"Jorge" <jorge+list@disroot.org> writes:

> I would prefer to get Emacs 26 from Guix, which would be more
> automatic and would come configured to work with Guix-installed Emacs
> packages.

Guix package collection provides only stable package releases for the
most part.

> So is Emacs 26 available from Guix?  Unfortunately ~guix package
> --show=emacs~ only reports version 25.3, but maybe there is a non
> intuitive way to get Emacs 26.

You could write a package recipe with a new version based on original
recipe, see [1].

Also you could try ‘--with-source’ [2], but in Emacs case the package
recipe should be tweaked a little bit, so it will probably not work.

[1]  http://lists.gnu.org/archive/html/help-guix/2017-09/msg00074.html
[2]  https://www.gnu.org/software/guix/manual/html_node/Package-Transformation-Options.html#Package-Transformation-Options

Oleg.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-03-03  0:00 How to install prerelease package versions (particularly Emacs) Jorge
  2018-03-03 10:24 ` Oleg Pykhalov
@ 2018-03-03 13:46 ` Jorge
  1 sibling, 0 replies; 30+ messages in thread
From: Jorge @ 2018-03-03 13:46 UTC (permalink / raw)
  To: Oleg Pykhalov; +Cc: help-guix

March 3, 2018 7:24 AM, "Oleg Pykhalov" <go.wigust@gmail.com> wrote:
> Guix package collection provides only stable package releases for the
> most part.
That's a pity.

> You could write a package recipe with a new version based on original
> recipe, see [1].
> 
> Also you could try ‘--with-source’ [2], but in Emacs case the package
> recipe should be tweaked a little bit, so it will probably not work.
> 
> [1] http://lists.gnu.org/archive/html/help-guix/2017-09/msg00074.html
> [2]
> https://www.gnu.org/software/guix/manual/html_node/Package-Transformation-Options.html#Package-Trans
> ormation-Options
Thank you for your tips!  For now I’ll keep building Emacs manually, but
when I become more knowledgeable about Guix I intend to follow your
instructions.

Regards

- I am Brazilian.  I hope my English is correct and I welcome feedback
- Please adopt free formats like PDF, ODF, Org, LaTeX, Opus, WebM and 7z
- Free/libre software for Android: https://f-droid.org/
- [[https://www.gnu.org/philosophy/free-sw.html][What is free software?]]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-03-03 10:24 ` Oleg Pykhalov
@ 2018-03-19  4:13   ` Chris Marusich
  2018-03-26 18:42     ` Pierre Neidhardt
  0 siblings, 1 reply; 30+ messages in thread
From: Chris Marusich @ 2018-03-19  4:13 UTC (permalink / raw)
  To: Oleg Pykhalov; +Cc: help-guix

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

Oleg Pykhalov <go.wigust@gmail.com> writes:

> Hello Jorge,
>
> "Jorge" <jorge+list@disroot.org> writes:
>
>> I would prefer to get Emacs 26 from Guix, which would be more
>> automatic and would come configured to work with Guix-installed Emacs
>> packages.
>
> Guix package collection provides only stable package releases for the
> most part.

There is no reason why we cannot also provide cutting-edge versions.
We do this already for some packages.  For example, see any of the
following packages:

  guix package --search=. | recsel -e 'name ~ "-(git|next|dev|devel|cvs|svn)$"'

Generally, it seems the trend is that we provide such development
versions as separate packages.

-- 
Chris

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-03-19  4:13   ` Chris Marusich
@ 2018-03-26 18:42     ` Pierre Neidhardt
  2018-03-27  9:51       ` Ludovic Courtès
  2018-04-05 15:53       ` Jorge
  0 siblings, 2 replies; 30+ messages in thread
From: Pierre Neidhardt @ 2018-03-26 18:42 UTC (permalink / raw)
  To: Chris Marusich; +Cc: help-guix

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


Considering the importance of Emacs in this community, I think it would
make sense to provide a cutting-edge version.

Is anyone willing to accept this?

-- 
Pierre Neidhardt

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-03-26 18:42     ` Pierre Neidhardt
@ 2018-03-27  9:51       ` Ludovic Courtès
  2018-03-27 12:24         ` Clément Lassieur
  2018-03-27 15:33         ` Oleg Pykhalov
  2018-04-05 15:53       ` Jorge
  1 sibling, 2 replies; 30+ messages in thread
From: Ludovic Courtès @ 2018-03-27  9:51 UTC (permalink / raw)
  To: Pierre Neidhardt; +Cc: help-guix

Hello,

Pierre Neidhardt <ambrevar@gmail.com> skribis:

> Considering the importance of Emacs in this community, I think it would
> make sense to provide a cutting-edge version.

Do you mean a snapshot of the ‘master’ branch?

We don’t do that usually, and I would instead suggest using
‘--with-source’ for people who would like that.

What do people think?

Ludo’.

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-03-27  9:51       ` Ludovic Courtès
@ 2018-03-27 12:24         ` Clément Lassieur
  2018-03-27 15:33         ` Oleg Pykhalov
  1 sibling, 0 replies; 30+ messages in thread
From: Clément Lassieur @ 2018-03-27 12:24 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: help-guix

Ludovic Courtès <ludo@gnu.org> writes:

> Hello,
>
> Pierre Neidhardt <ambrevar@gmail.com> skribis:
>
>> Considering the importance of Emacs in this community, I think it would
>> make sense to provide a cutting-edge version.
>
> Do you mean a snapshot of the ‘master’ branch?
>
> We don’t do that usually, and I would instead suggest using
> ‘--with-source’ for people who would like that.
>
> What do people think?

I agree.  Also, if we use Emacs often, it doesn't mean we develop Emacs.
Emacs developers need more than a cutting-edge version anyway, they
build it manually.

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-03-27  9:51       ` Ludovic Courtès
  2018-03-27 12:24         ` Clément Lassieur
@ 2018-03-27 15:33         ` Oleg Pykhalov
  2018-03-27 17:46           ` Marius Bakke
  2018-03-27 20:57           ` Ludovic Courtès
  1 sibling, 2 replies; 30+ messages in thread
From: Oleg Pykhalov @ 2018-03-27 15:33 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: help-guix

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

ludo@gnu.org (Ludovic Courtès) writes:

> Pierre Neidhardt <ambrevar@gmail.com> skribis:
>
>> Considering the importance of Emacs in this community, I think it would
>> make sense to provide a cutting-edge version.
>
> Do you mean a snapshot of the ‘master’ branch?
>
> We don’t do that usually, and I would instead suggest using
> ‘--with-source’ for people who would like that.
>
> What do people think?

In case of ‘emacs’ package recipe, ‘--with-source’ doesn't work for a
snapshot of the ‘master’ branch.

To build the ‘master’ branch you need to write a new package recipe.  I
think it's not acceptable for a non-contributor in Guix.  WDYT?

Oleg.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-03-27 15:33         ` Oleg Pykhalov
@ 2018-03-27 17:46           ` Marius Bakke
  2018-03-27 20:57           ` Ludovic Courtès
  1 sibling, 0 replies; 30+ messages in thread
From: Marius Bakke @ 2018-03-27 17:46 UTC (permalink / raw)
  To: Oleg Pykhalov, Ludovic Courtès; +Cc: help-guix

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

Oleg Pykhalov <go.wigust@gmail.com> writes:

> ludo@gnu.org (Ludovic Courtès) writes:
>
>> Pierre Neidhardt <ambrevar@gmail.com> skribis:
>>
>>> Considering the importance of Emacs in this community, I think it would
>>> make sense to provide a cutting-edge version.
>>
>> Do you mean a snapshot of the ‘master’ branch?
>>
>> We don’t do that usually, and I would instead suggest using
>> ‘--with-source’ for people who would like that.
>>
>> What do people think?
>
> In case of ‘emacs’ package recipe, ‘--with-source’ doesn't work for a
> snapshot of the ‘master’ branch.
>
> To build the ‘master’ branch you need to write a new package recipe.  I
> think it's not acceptable for a non-contributor in Guix.  WDYT?

This sounds like a job for the mythical "channel" facility.  In the mean
time, sharing package recipes for sticking in GUIX_PACKAGE_PATH like you
did upthread seems like a reasonable workaround.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-03-27 15:33         ` Oleg Pykhalov
  2018-03-27 17:46           ` Marius Bakke
@ 2018-03-27 20:57           ` Ludovic Courtès
  2018-03-28  7:12             ` Oleg Pykhalov
  1 sibling, 1 reply; 30+ messages in thread
From: Ludovic Courtès @ 2018-03-27 20:57 UTC (permalink / raw)
  To: Oleg Pykhalov; +Cc: help-guix

Oleg Pykhalov <go.wigust@gmail.com> skribis:

> ludo@gnu.org (Ludovic Courtès) writes:
>
>> Pierre Neidhardt <ambrevar@gmail.com> skribis:
>>
>>> Considering the importance of Emacs in this community, I think it would
>>> make sense to provide a cutting-edge version.
>>
>> Do you mean a snapshot of the ‘master’ branch?
>>
>> We don’t do that usually, and I would instead suggest using
>> ‘--with-source’ for people who would like that.
>>
>> What do people think?
>
> In case of ‘emacs’ package recipe, ‘--with-source’ doesn't work for a
> snapshot of the ‘master’ branch.

Why?  Because you’d need to run ‘autoreconf’ and the like?

Ludo’.

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-03-27 20:57           ` Ludovic Courtès
@ 2018-03-28  7:12             ` Oleg Pykhalov
  2018-03-30  7:06               ` Pierre Neidhardt
  2018-04-11 15:57               ` Pierre Neidhardt
  0 siblings, 2 replies; 30+ messages in thread
From: Oleg Pykhalov @ 2018-03-28  7:12 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: help-guix

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

ludo@gnu.org (Ludovic Courtès) writes:

> Oleg Pykhalov <go.wigust@gmail.com> skribis:

[…]

>> In case of ‘emacs’ package recipe, ‘--with-source’ doesn't work for a
>> snapshot of the ‘master’ branch.
>
> Why?  Because you’d need to run ‘autoreconf’ and the like?

To run everything in ‘(arguments …)’ except ‘#:parallel-build? #t’.

From http://lists.gnu.org/archive/html/help-guix/2017-09/msg00074.html
--8<---------------cut here---------------start------------->8---
      (arguments
       (substitute-keyword-arguments
           `(#:parallel-build? #t
                               #:tests? #f
                               ,@(package-arguments emacs))
         ((#:phases phases)
          `(modify-phases ,phases
             (add-after 'unpack 'autogen
               (lambda _
                 (zero? (system* "sh" "autogen.sh"))))
             (delete 'reset-gzip-timestamps)))))
--8<---------------cut here---------------end--------------->8---

Oleg.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-03-28  7:12             ` Oleg Pykhalov
@ 2018-03-30  7:06               ` Pierre Neidhardt
  2018-03-30 12:13                 ` Mathieu Lirzin
  2018-04-01 14:09                 ` Oleg Pykhalov
  2018-04-11 15:57               ` Pierre Neidhardt
  1 sibling, 2 replies; 30+ messages in thread
From: Pierre Neidhardt @ 2018-03-30  7:06 UTC (permalink / raw)
  To: Oleg Pykhalov; +Cc: help-guix

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


Oleg, I tried reusing your package snippet from
http://lists.gnu.org/archive/html/help-guix/2017-09/msg00074.html
by setting

               (url "git://localhost/~ambrevar/projects/emacs")

but it fails for me:

	> guix build -K emacs
	@ build-started /gnu/store/f3gbd1y74vw1my0fmzlpz5cxkqqk423l-emacs-25.3-1.752fba9-checkout.drv - x86_64-linux /var/log/guix/drvs/f3//gbd1y74vw1my0fmzlpz5cxkqqk423l-emacs-25.3-1.752fba9-checkout.drv.bz2
	Initialized empty Git repository in /gnu/store/xrprmz45mi7njni6ypz4mad0ijf02r32-emacs-25.3-1.752fba9-checkout/.git/
	fatal: unable to connect to localhost:
	localhost[0: 127.0.0.1]: errno=Connection refused

	fatal: unable to connect to localhost:
	localhost[0: 127.0.0.1]: errno=Connection refused

	Backtrace:
	           4 (primitive-load "/gnu/store/cq0wvv65l9d7zn515dfg07jg3gr?")
	In ice-9/eval.scm:
	   293:34  3 (_ #<directory (guile-user) 7ce140>)
	In ./guix/build/git.scm:
	    48:10  2 (git-fetch "git://localhost/~ambrevar/projects/emacs" # ?)
	In ./guix/build/utils.scm:
	    589:6  1 (invoke _ . _)
	In unknown file:
	           0 (scm-error misc-error #f "~A ~S" ("program \"/gnu/s?" ?) ?)

I'm not very familiar with the "git" protocol: does it require some
special configuration?

I also tried specifying a local path:

               (url "/home/ambrevar/projects/emacs")

but it seems that Guix' `git-reference` does not like it:

	> guix build -K emacs
	@ build-started /gnu/store/rvadb9sgi9dj0b3hlgpr3l91nbw9vvn0-emacs-25.3-1.752fba9-checkout.drv - x86_64-linux /var/log/guix/drvs/rv//adb9sgi9dj0b3hlgpr3l91nbw9vvn0-emacs-25.3-1.752fba9-checkout.drv.bz2
	Initialized empty Git repository in /gnu/store/xrprmz45mi7njni6ypz4mad0ijf02r32-emacs-25.3-1.752fba9-checkout/.git/
	fatal: '/home/ambrevar/projects/emacs' does not appear to be a git repository
	fatal: Could not read from remote repository.

	Please make sure you have the correct access rights
	and the repository exists.
	fatal: '/home/ambrevar/projects/emacs' does not appear to be a git repository
	fatal: Could not read from remote repository.

	Please make sure you have the correct access rights
	and the repository exists.
	Backtrace:
	           4 (primitive-load "/gnu/store/cq0wvv65l9d7zn515dfg07jg3gr?")
	In ice-9/eval.scm:
	   293:34  3 (_ #<directory (guile-user) 7ce140>)
	In ./guix/build/git.scm:
	    48:10  2 (git-fetch "/home/ambrevar/projects/emacs" "752fba992b?" ?)
	In ./guix/build/utils.scm:
	    589:6  1 (invoke _ . _)
	In unknown file:
	           0 (scm-error misc-error #f "~A ~S" ("program \"/gnu/s?" ?) ?)

I think this is a bug: if git clone accepts local paths, then so should
git-reference.

--
Pierre Neidhardt

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-03-30  7:06               ` Pierre Neidhardt
@ 2018-03-30 12:13                 ` Mathieu Lirzin
  2018-03-30 12:19                   ` Pierre Neidhardt
  2018-04-01 14:09                 ` Oleg Pykhalov
  1 sibling, 1 reply; 30+ messages in thread
From: Mathieu Lirzin @ 2018-03-30 12:13 UTC (permalink / raw)
  To: Pierre Neidhardt; +Cc: help-guix

Pierre Neidhardt <ambrevar@gmail.com> writes:

> Oleg, I tried reusing your package snippet from
> http://lists.gnu.org/archive/html/help-guix/2017-09/msg00074.html
> by setting
>
>                (url "git://localhost/~ambrevar/projects/emacs")
>
> but it fails for me:
[...]
> I'm not very familiar with the "git" protocol: does it require some
> special configuration?
>
> I also tried specifying a local path:
>
>                (url "/home/ambrevar/projects/emacs")
>
> but it seems that Guix' `git-reference` does not like it:

I think you have to use the ‘local-file’ procedure in place of ‘origin’
in the ‘source’ field.

Unless I am not up-to-date with current Guix practices, it is still not
convenient since you still need to manually filter git related files and
build results with the ‘#:select’ keyword argument of ‘local-file’.

HTH,

-- 
Mathieu Lirzin
GPG: F2A3 8D7E EB2B 6640 5761  070D 0ADE E100 9460 4D37

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-03-30 12:13                 ` Mathieu Lirzin
@ 2018-03-30 12:19                   ` Pierre Neidhardt
  2018-03-30 13:08                     ` Mathieu Lirzin
  0 siblings, 1 reply; 30+ messages in thread
From: Pierre Neidhardt @ 2018-03-30 12:19 UTC (permalink / raw)
  To: Mathieu Lirzin; +Cc: help-guix

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


Mathieu Lirzin <mthl@gnu.org> writes:

> I think you have to use the ‘local-file’ procedure in place of ‘origin’
> in the ‘source’ field.

Unless I'm mistaken, local-file does not work on folders.  In the case
of a Git repo, that would mean extracting the archive and overwriting
the destination on each build.  It's not a solution then.

-- 
Pierre Neidhardt

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-03-30 12:19                   ` Pierre Neidhardt
@ 2018-03-30 13:08                     ` Mathieu Lirzin
  2018-04-11 15:53                       ` Pierre Neidhardt
  0 siblings, 1 reply; 30+ messages in thread
From: Mathieu Lirzin @ 2018-03-30 13:08 UTC (permalink / raw)
  To: Pierre Neidhardt; +Cc: help-guix

Pierre Neidhardt <ambrevar@gmail.com> writes:

> Mathieu Lirzin <mthl@gnu.org> writes:
>
>> I think you have to use the ‘local-file’ procedure in place of ‘origin’
>> in the ‘source’ field.
>
> Unless I'm mistaken, local-file does not work on folders.  In the case
> of a Git repo, that would mean extracting the archive and overwriting
> the destination on each build.  It's not a solution then.

With the ‘#:recursive?’ keyword option set to #t, ‘local-file’ should
work for directories.

-- 
Mathieu Lirzin
GPG: F2A3 8D7E EB2B 6640 5761  070D 0ADE E100 9460 4D37

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-03-30  7:06               ` Pierre Neidhardt
  2018-03-30 12:13                 ` Mathieu Lirzin
@ 2018-04-01 14:09                 ` Oleg Pykhalov
  2018-04-11 16:00                   ` Pierre Neidhardt
  1 sibling, 1 reply; 30+ messages in thread
From: Oleg Pykhalov @ 2018-04-01 14:09 UTC (permalink / raw)
  To: Pierre Neidhardt; +Cc: help-guix

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

Pierre Neidhardt <ambrevar@gmail.com> writes:

> I tried reusing your package snippet from
> http://lists.gnu.org/archive/html/help-guix/2017-09/msg00074.html by
> setting
>
>                (url "git://localhost/~ambrevar/projects/emacs")

I'm sorry for probably an obvious question.  Does ‘git clone
git://localhost/~ambrevar/projects/emacs’ work?

[…]

> I'm not very familiar with the "git" protocol: does it require some
> special configuration?

It does, see https://www.gnu.org/software/guix/manual/html_node/Version-Control-Services.html

Be sure ‘user-path’ is setted correctly.

> I also tried specifying a local path:
>
>                (url "/home/ambrevar/projects/emacs")
> 
> […]
> 
> I think this is a bug: if git clone accepts local paths, then so should
> git-reference.

It would be a useful feature, but I don't know all pitfalls.

We can do ‘guix pull --url=$PWD’ in “Guix checkout” though.


Oleg.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-03-26 18:42     ` Pierre Neidhardt
  2018-03-27  9:51       ` Ludovic Courtès
@ 2018-04-05 15:53       ` Jorge
  2018-04-05 19:36         ` Pierre Neidhardt
  1 sibling, 1 reply; 30+ messages in thread
From: Jorge @ 2018-04-05 15:53 UTC (permalink / raw)
  To: ludo, Pierre Neidhardt; +Cc: help-guix

March 27, 2018 6:51 AM, ludo@gnu.org wrote:
> Pierre Neidhardt <ambrevar@gmail.com> skribis:
> 
>> Considering the importance of Emacs in this community, I think it would
>> make sense to provide a cutting-edge version.
> 
> Do you mean a snapshot of the ‘master’ branch?
> 
> We don’t do that usually, and I would instead suggest using
> ‘--with-source’ for people who would like that.
> 
> What do people think?
I am sorry for having taken this long to reply.  I (the original poster) was
thinking not of ‘master’ branch snapshots.  GNU Emacs has already branched the
upcoming Emacs 26, and the ‘master’ branch has been opened for the development
of what will be Emacs 27.  I was thinking of the latest official pretest version
of the almost-released branch (currently Emacs 26.0.91).  In my experience so
far, these pretest versions are reliable enough for daily usage.

Providing Emacs pretest versions would enable a larger audience to test them,
thus helping the GNU project.  It would also enable more people to
get Emacs from Guix; I need Emacs 26 for its better proxy support (so I can
install ELPA packages from my work desktop) and I really like its many other
features, so if Guix only has 25.3, I will continue to compile 26.0.9x manually
(and miss the Guix features).

I think it would be clearly beneficial to package 26.0.9x, unless Guix lacks the
manpower.  I unfortunately don't think I'll be able to help much, beyond testing
and filing bug reports.

Regards

- I am Brazilian.  I hope my English is correct and I welcome feedback
- Please adopt free formats like PDF, ODF, Org, LaTeX, Opus, WebM and 7z
- Free/libre software for Android: https://f-droid.org/
- [[https://www.gnu.org/philosophy/free-sw.html][What is free software?]]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-04-05 15:53       ` Jorge
@ 2018-04-05 19:36         ` Pierre Neidhardt
  0 siblings, 0 replies; 30+ messages in thread
From: Pierre Neidhardt @ 2018-04-05 19:36 UTC (permalink / raw)
  To: Jorge; +Cc: help-guix

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


Jorge <jorge+list@disroot.org> writes:

> In my experience so
> far, these pretest versions are reliable enough for daily usage.
>
> Providing Emacs pretest versions would enable a larger audience to test them,
> thus helping the GNU project.  

Very good points, I think.

-- 
Pierre Neidhardt

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-03-30 13:08                     ` Mathieu Lirzin
@ 2018-04-11 15:53                       ` Pierre Neidhardt
  2018-04-12  8:29                         ` Chris Marusich
  2018-04-13  5:57                         ` Carlo Zancanaro
  0 siblings, 2 replies; 30+ messages in thread
From: Pierre Neidhardt @ 2018-04-11 15:53 UTC (permalink / raw)
  To: Mathieu Lirzin; +Cc: help-guix

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


Mathieu Lirzin <mthl@gnu.org> writes:

> With the ‘#:recursive?’ keyword option set to #t, ‘local-file’ should
> work for directories.

Indeed, thanks for pointing out.

I tried and it failed with

	starting phase `configure'
	source directory: "/tmp/guix-build-emacs-dev-26.0.91.drv-0/source" (relative from build: ".")
	build directory: "/tmp/guix-build-emacs-dev-26.0.91.drv-0/source"
	configure flags: ("CONFIG_SHELL=/gnu/store/icz3hd36aqpjz5slyp4hhr8wsfbgiml1-bash-minimal-4.4.12/bin/bash" "SHELL=/gnu/store/icz3hd36aqpjz5slyp4hhr8wsfbgiml1-bash-minimal-4.4.12/bin/bash" "--prefix=/gnu/store/iaipasvi8dys79ms3y0axvwwdfnd31dq-emacs-dev-26.0.91" "--enable-fast-install" "--build=x86_64-unknown-linux-gnu")
	configure: WARNING: unrecognized options: --enable-fast-install
	./configure: line 3350: config.log: Permission denied
	./configure: line 3360: config.log: Permission denied
	phase `configure' failed after 0.1 seconds

I inspected the content of
"/tmp/guix-build-emacs-dev-26.0.91.drv-0/source": many files are
missing, among others "configure".

I am very confused...

--
Pierre Neidhardt

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 483 bytes --]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-03-28  7:12             ` Oleg Pykhalov
  2018-03-30  7:06               ` Pierre Neidhardt
@ 2018-04-11 15:57               ` Pierre Neidhardt
  2018-04-12  6:06                 ` Pierre Neidhardt
  1 sibling, 1 reply; 30+ messages in thread
From: Pierre Neidhardt @ 2018-04-11 15:57 UTC (permalink / raw)
  To: Oleg Pykhalov; +Cc: help-guix

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


Oleg Pykhalov <go.wigust@gmail.com> writes:

>>> In case of ‘emacs’ package recipe, ‘--with-source’ doesn't work for a
>>> snapshot of the ‘master’ branch.
>>
>> Why?  Because you’d need to run ‘autoreconf’ and the like?
>
> To run everything in ‘(arguments …)’ except ‘#:parallel-build? #t’.
>
> From http://lists.gnu.org/archive/html/help-guix/2017-09/msg00074.html
> --8<---------------cut here---------------start------------->8---
>       (arguments
>        (substitute-keyword-arguments
>            `(#:parallel-build? #t
>                                #:tests? #f
>                                ,@(package-arguments emacs))
>          ((#:phases phases)
>           `(modify-phases ,phases
>              (add-after 'unpack 'autogen
>                (lambda _
>                  (zero? (system* "sh" "autogen.sh"))))
>              (delete 'reset-gzip-timestamps)))))
> --8<---------------cut here---------------end--------------->8---

What do you mean?  That parallel-build has to be turned off for the
master branch?

I actually noticed that running `make -j5` locally, the build fails at
the `temacs` step.  The build succeeds with `make`.

That said, I tried running

	guix build --keep-failed --with-source=ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-26.1-rc1.tar.xz emacs

It fails with

	starting phase `check'
	make -C lib all
	make info-real info-dir
	You do not seem to have the test/ directory.
	Maybe you are using a release tarfile, rather than a repository checkout.
	make: *** [Makefile:937: have-tests] Error 1
	make: *** Waiting for unfinished jobs....

Why should it fail if it's a tarball?  The error message seems that it
understands precisely what we are trying to do.

-- 
Pierre Neidhardt

<JHM> Being overloaded is the sign of a true Debian maintainer.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-04-01 14:09                 ` Oleg Pykhalov
@ 2018-04-11 16:00                   ` Pierre Neidhardt
  2018-04-12  8:28                     ` Chris Marusich
  0 siblings, 1 reply; 30+ messages in thread
From: Pierre Neidhardt @ 2018-04-11 16:00 UTC (permalink / raw)
  To: Oleg Pykhalov; +Cc: help-guix

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


Oleg Pykhalov <go.wigust@gmail.com> writes:

> Pierre Neidhardt <ambrevar@gmail.com> writes:
>
>> I tried reusing your package snippet from
>> http://lists.gnu.org/archive/html/help-guix/2017-09/msg00074.html by
>> setting
>>
>>                (url "git://localhost/~ambrevar/projects/emacs")
>
> I'm sorry for probably an obvious question.  Does ‘git clone
> git://localhost/~ambrevar/projects/emacs’ work?
>
> […]
>
>> I'm not very familiar with the "git" protocol: does it require some
>> special configuration?
>
> It does, see https://www.gnu.org/software/guix/manual/html_node/Version-Control-Services.html
>
> Be sure ‘user-path’ is setted correctly.
>
>> I also tried specifying a local path:
>>
>>                (url "/home/ambrevar/projects/emacs")
>> 
>> […]
>> 
>> I think this is a bug: if git clone accepts local paths, then so should
>> git-reference.
>
> It would be a useful feature, but I don't know all pitfalls.
>
> We can do ‘guix pull --url=$PWD’ in “Guix checkout” though.

Thank you for the hint.  That said, I really don't want to set up a git
server for so little.

Is there a good reason not to allow local paths in git URLs?

-- 
Pierre Neidhardt

Every solution breeds new problems.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-04-11 15:57               ` Pierre Neidhardt
@ 2018-04-12  6:06                 ` Pierre Neidhardt
  0 siblings, 0 replies; 30+ messages in thread
From: Pierre Neidhardt @ 2018-04-12  6:06 UTC (permalink / raw)
  To: Oleg Pykhalov; +Cc: help-guix


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


For now I'll stick to Emacs 26 RC1.  I've adapted the package
declaration from "emacs" with the following changes:
- Disable the scheme patch.
- Disable tests.

Find the declaration attached.

-- 
Pierre Neidhardt

When you get your PH.D. will you get able to work at BURGER KING?

[-- Attachment #1.2: emacs.scm --]
[-- Type: application/octet-stream, Size: 7294 bytes --]

(define-module (emacs)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (gnu packages emacs)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix git-download)
  #:use-module (guix gexp)
  #:use-module (guix monads)
  #:use-module (guix store)
  #:use-module (guix build-system gnu)
  #:use-module (guix build-system emacs)
  #:use-module (guix build-system glib-or-gtk)
  #:use-module (guix build-system trivial)
  #:use-module (gnu packages)
  #:use-module (gnu packages audio)
  #:use-module (gnu packages bash)
  #:use-module (gnu packages code)
  #:use-module (gnu packages guile)
  #:use-module (gnu packages gtk)
  #:use-module (gnu packages gnome)
  #:use-module (gnu packages ncurses)
  #:use-module (gnu packages python)
  #:use-module (gnu packages tex)
  #:use-module (gnu packages texinfo)
  #:use-module (gnu packages tcl)
  #:use-module (gnu packages tls)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages xorg)
  #:use-module (gnu packages lesstif)
  #:use-module (gnu packages image)
  #:use-module (gnu packages linux)
  #:use-module (gnu packages version-control)
  #:use-module (gnu packages imagemagick)
  #:use-module (gnu packages w3m)
  #:use-module (gnu packages wget)
  #:use-module (gnu packages autotools)
  #:use-module (gnu packages base)
  #:use-module (gnu packages compression)
  #:use-module (gnu packages xml)
  #:use-module (gnu packages glib)
  #:use-module (gnu packages acl)
  #:use-module (gnu packages package-management)
  #:use-module (gnu packages perl)
  #:use-module (gnu packages pdf)
  #:use-module (gnu packages scheme)
  #:use-module (gnu packages statistics)
  #:use-module (gnu packages xiph)
  #:use-module (gnu packages mp3)
  #:use-module (gnu packages gettext)
  #:use-module (gnu packages fribidi)
  #:use-module (gnu packages gd)
  #:use-module (gnu packages fontutils)
  #:use-module (guix utils)
  #:use-module (srfi srfi-1)
  #:use-module (ice-9 match))

(define-public emacs-prerelease
  (package
    (name "emacs-prerelease")
    (version "26.1-rc1")
    (source (origin
             (method url-fetch)
             (uri (string-append "ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-" version ".tar.xz"))
             (sha256
              (base32
               "0n2pl1i4piga43p1kbscbb2sgg74gy4qq5jgmmrnxf80vrlfd535"))
             (patches (search-patches "emacs-exec-path.patch"
                                      ;; "emacs-fix-scheme-indent-function.patch"
                                      "emacs-source-date-epoch.patch"))
             (modules '((guix build utils)))
             (snippet
              ;; Delete the bundled byte-compiled elisp files and
              ;; generated autoloads.
              '(with-directory-excursion "lisp"
                 (for-each delete-file
                           (append (find-files "." "\\.elc$")
                                   (find-files "." "loaddefs\\.el$")
                                   ;; This is the only "autoloads" file that
                                   ;; does not have "*loaddefs.el" name.
                                   '("eshell/esh-groups.el")))

                 ;; Make sure Tramp looks for binaries in the right places on
                 ;; remote GuixSD machines, where 'getconf PATH' returns
                 ;; something bogus.
                 (substitute* "net/tramp-sh.el"
                   ;; Patch the line after "(defcustom tramp-remote-path".
                   (("\\(tramp-default-remote-path")
                    (format #f "(tramp-default-remote-path ~s ~s ~s ~s "
                            "~/.guix-profile/bin" "~/.guix-profile/sbin"
                            "/run/current-system/profile/bin"
                            "/run/current-system/profile/sbin")))

                 ;; Make sure Man looks for C header files in the right
                 ;; places.
                 (substitute* "man.el"
                   (("\"/usr/local/include\"" line)
                    (string-join
                     (list line
                           "\"~/.guix-profile/include\""
                           "\"/var/guix/profiles/system/profile/include\"")
                     " ")))))))
    (build-system glib-or-gtk-build-system)
    (arguments
     `(#:tests? #f
       #:phases
       (modify-phases %standard-phases
         (add-before 'configure 'fix-/bin/pwd
           (lambda _
             ;; Use `pwd', not `/bin/pwd'.
             (substitute* (find-files "." "^Makefile\\.in$")
               (("/bin/pwd")
                "pwd"))))
         (add-after 'install 'install-site-start
           ;; Use 'guix-emacs' in "site-start.el".  This way, Emacs packages
           ;; provided by Guix and installed in
           ;; ~/.guix-profile/share/emacs/site-lisp/guix.d/PACKAGE-VERSION are
           ;; automatically found.
           (lambda* (#:key inputs outputs #:allow-other-keys)
             (let* ((out      (assoc-ref outputs "out"))
                    (lisp-dir (string-append out "/share/emacs/site-lisp")))
               (copy-file (assoc-ref inputs "guix-emacs.el")
                          (string-append lisp-dir "/guix-emacs.el"))
               (with-output-to-file (string-append lisp-dir "/site-start.el")
                 (lambda ()
                   (display
                    (string-append "(when (require 'guix-emacs nil t)\n"
                                   "  (guix-emacs-autoload-packages))\n"))))
               #t))))))
    (inputs
     `(("gnutls" ,gnutls)
       ("ncurses" ,ncurses)

       ;; TODO: Add the optional dependencies.
       ("libx11" ,libx11)
       ("gtk+" ,gtk+)
       ("libxft" ,libxft)
       ("libtiff" ,libtiff)
       ("giflib" ,giflib)
       ("libjpeg" ,libjpeg-8)
       ("imagemagick" ,imagemagick)
       ("acl" ,acl)

       ;; When looking for libpng `configure' links with `-lpng -lz', so we
       ;; must also provide zlib as an input.
       ("libpng" ,libpng)
       ("zlib" ,zlib)

       ("librsvg" ,librsvg)
       ("libxpm" ,libxpm)
       ("libxml2" ,libxml2)
       ("libice" ,libice)
       ("libsm" ,libsm)
       ("alsa-lib" ,alsa-lib)
       ("dbus" ,dbus)

       ;; multilingualization support
       ("libotf" ,libotf)
       ("m17n-lib" ,m17n-lib)))
    (native-inputs
     `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
       ("pkg-config" ,pkg-config)
       ("texinfo" ,texinfo)))

    (native-search-paths
     (list (search-path-specification
            (variable "INFOPATH")
            (files '("share/info")))))

    (home-page "https://www.gnu.org/software/emacs/")
    (synopsis "The extensible, customizable, self-documenting text editor")
    (description
     "GNU Emacs is an extensible and highly customizable text editor.  It is
based on an Emacs Lisp interpreter with extensions for text editing.  Emacs
has been extended in essentially all areas of computing, giving rise to a
vast array of packages supporting, e.g., email, IRC and XMPP messaging,
spreadsheets, remote server editing, and much more.  Emacs includes extensive
documentation on all aspects of the system, from basic editing to writing
large Lisp programs.  It has full Unicode support for nearly all human
languages.")
    (license license:gpl3+)))

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-04-11 16:00                   ` Pierre Neidhardt
@ 2018-04-12  8:28                     ` Chris Marusich
  2018-04-12  8:32                       ` Pierre Neidhardt
  0 siblings, 1 reply; 30+ messages in thread
From: Chris Marusich @ 2018-04-12  8:28 UTC (permalink / raw)
  To: Pierre Neidhardt; +Cc: help-guix

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

Pierre Neidhardt <ambrevar@gmail.com> writes:

> Is there a good reason not to allow local paths in git URLs?

You might find the "local-file" procedure to be helpful here.  You can
pass a local-file as the source of a package, which should allow you to
define packages that use a local file path as the source.  See (guix)
G-Expressions in the manual for details.

-- 
Chris

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-04-11 15:53                       ` Pierre Neidhardt
@ 2018-04-12  8:29                         ` Chris Marusich
  2018-04-12  9:12                           ` Pierre Neidhardt
  2018-04-13  5:57                         ` Carlo Zancanaro
  1 sibling, 1 reply; 30+ messages in thread
From: Chris Marusich @ 2018-04-12  8:29 UTC (permalink / raw)
  To: Pierre Neidhardt; +Cc: help-guix

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

Pierre Neidhardt <ambrevar@gmail.com> writes:

> Mathieu Lirzin <mthl@gnu.org> writes:
>
>> With the ‘#:recursive?’ keyword option set to #t, ‘local-file’ should
>> work for directories.
>
> Indeed, thanks for pointing out.
>
> I tried and it failed with
>
> 	starting phase `configure'
> 	source directory: "/tmp/guix-build-emacs-dev-26.0.91.drv-0/source" (relative from build: ".")
> 	build directory: "/tmp/guix-build-emacs-dev-26.0.91.drv-0/source"
> 	configure flags:
> ("CONFIG_SHELL=/gnu/store/icz3hd36aqpjz5slyp4hhr8wsfbgiml1-bash-minimal-4.4.12/bin/bash"
> "SHELL=/gnu/store/icz3hd36aqpjz5slyp4hhr8wsfbgiml1-bash-minimal-4.4.12/bin/bash"
> "--prefix=/gnu/store/iaipasvi8dys79ms3y0axvwwdfnd31dq-emacs-dev-26.0.91"
> "--enable-fast-install" "--build=x86_64-unknown-linux-gnu")
> 	configure: WARNING: unrecognized options: --enable-fast-install
> 	./configure: line 3350: config.log: Permission denied
> 	./configure: line 3360: config.log: Permission denied
> 	phase `configure' failed after 0.1 seconds
>
> I inspected the content of
> "/tmp/guix-build-emacs-dev-26.0.91.drv-0/source": many files are
> missing, among others "configure".
>
> I am very confused...

Can you share the package definition?

-- 
Chris

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-04-12  8:28                     ` Chris Marusich
@ 2018-04-12  8:32                       ` Pierre Neidhardt
  0 siblings, 0 replies; 30+ messages in thread
From: Pierre Neidhardt @ 2018-04-12  8:32 UTC (permalink / raw)
  To: Chris Marusich; +Cc: help-guix

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


Chris Marusich <cmmarusich@gmail.com> writes:

> Pierre Neidhardt <ambrevar@gmail.com> writes:
>
>> Is there a good reason not to allow local paths in git URLs?
>
> You might find the "local-file" procedure to be helpful here.  You can
> pass a local-file as the source of a package, which should allow you to
> define packages that use a local file path as the source.  See (guix)
> G-Expressions in the manual for details.

Thank you for this suggestion.  Mathieu Lirzin already mentioned it in
another branch of this thread and after trying it I ran into strange issues.
Do you have experience with local-file?

-- 
Pierre Neidhardt

job Placement, n.:
	Telling your boss what he can do with your job.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-04-12  8:29                         ` Chris Marusich
@ 2018-04-12  9:12                           ` Pierre Neidhardt
  2018-04-12 12:57                             ` Ricardo Wurmus
  2018-04-13  5:27                             ` Chris Marusich
  0 siblings, 2 replies; 30+ messages in thread
From: Pierre Neidhardt @ 2018-04-12  9:12 UTC (permalink / raw)
  To: Chris Marusich; +Cc: help-guix

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


Chris Marusich <cmmarusich@gmail.com> writes:

> Can you share the package definition?

Let's start from the most straight-forward:

(define-public emacs-dev
  (package
   (inherit emacs)
   (name "emacs-dev")
   (version "26.0.91")
   (source
     (local-file "/home/ambrevar/projects/emacs-build" #:recursive? #t))))

-- 
Pierre Neidhardt

Must I hold a candle to my shames?
		-- William Shakespeare, "The Merchant of Venice"

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-04-12  9:12                           ` Pierre Neidhardt
@ 2018-04-12 12:57                             ` Ricardo Wurmus
  2018-04-12 13:21                               ` Pierre Neidhardt
  2018-04-13  5:27                             ` Chris Marusich
  1 sibling, 1 reply; 30+ messages in thread
From: Ricardo Wurmus @ 2018-04-12 12:57 UTC (permalink / raw)
  To: Pierre Neidhardt; +Cc: help-guix


Hi Pierre,

> Chris Marusich <cmmarusich@gmail.com> writes:
>
>> Can you share the package definition?
>
> Let's start from the most straight-forward:
>
> (define-public emacs-dev
>   (package
>    (inherit emacs)
>    (name "emacs-dev")
>    (version "26.0.91")
>    (source
>      (local-file "/home/ambrevar/projects/emacs-build" #:recursive? #t))))

Here’s mine:

--8<---------------cut here---------------start------------->8---
(define-public my/emacs
  (package (inherit emacs)
    (name "my-emacs")
    (version "26.0.91")
    (source (origin
              (method url-fetch)
              (uri (string-append "http://alpha.gnu.org/gnu/emacs/"
                                  "pretest/emacs-" version ".tar.xz"))
              (sha256
               (base32
                "1841hcqvwnh812gircpv2g9fqarlirh7ixv007hkglqk7qsvpxii"))))
    (arguments
     (substitute-keyword-arguments
         ;; NOTE: I don’t know if the tests pass in this version; this
         ;; is for a much older version.
         (append '(#:tests? #f ; tests fail in this development version
                   #:configure-flags '("--with-xwidgets=yes"))
                 (package-arguments emacs))))
    (inputs
     `(("libxcomposite" ,libxcomposite)
       ("webkitgtk+" ,webkitgtk)
       ;; These two are needed to get HTTPS support in Webkit.
       ("glib-networking" ,glib-networking)
       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
       ,@(package-inputs emacs)))
    ;; This is only needed when building from a git checkout.
    (native-inputs
     `(("autoconf" ,autoconf)
       ("automake" ,automake)
       ,@(package-native-inputs emacs)))))
--8<---------------cut here---------------end--------------->8---

Since I don’t know what the source code looks like, I can only guess
that maybe you need to bootstrap the build system first.

--
Ricardo

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-04-12 12:57                             ` Ricardo Wurmus
@ 2018-04-12 13:21                               ` Pierre Neidhardt
  0 siblings, 0 replies; 30+ messages in thread
From: Pierre Neidhardt @ 2018-04-12 13:21 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: help-guix

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


Ricardo Wurmus <rekado@elephly.net> writes:

> Here’s mine:
>
> --8<---------------cut here---------------start------------->8---
> (define-public my/emacs
>   (package (inherit emacs)
>     (name "my-emacs")
>     (version "26.0.91")
> [...]
> --8<---------------cut here---------------end--------------->8---

Note that RC1 is out.

> Since I don’t know what the source code looks like, I can only guess
> that maybe you need to bootstrap the build system first.

No, my local folder has all the files, including the "configure" file.
The whole point of working over a directory instead of an archive or a
git reference is that all files are re-used as-is.

-- 
Pierre Neidhardt

When in doubt, tell the truth.
		-- Mark Twain

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-04-12  9:12                           ` Pierre Neidhardt
  2018-04-12 12:57                             ` Ricardo Wurmus
@ 2018-04-13  5:27                             ` Chris Marusich
  1 sibling, 0 replies; 30+ messages in thread
From: Chris Marusich @ 2018-04-13  5:27 UTC (permalink / raw)
  To: Pierre Neidhardt; +Cc: help-guix


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

Hi Pierre,

Pierre Neidhardt <ambrevar@gmail.com> writes:

> Chris Marusich <cmmarusich@gmail.com> writes:
>
>> Can you share the package definition?
>
> Let's start from the most straight-forward:
>
> (define-public emacs-dev
>   (package
>    (inherit emacs)
>    (name "emacs-dev")
>    (version "26.0.91")
>    (source
>      (local-file "/home/ambrevar/projects/emacs-build" #:recursive? #t))))

I took this definition and adapted it as shown in the attached file.  I
then did the following things:

* Save the file at /tmp/emacs.scm.

* Clone Emacs' Git repository into /tmp/emacs at commit
  93678bffe6427b9d83dae032c56a4e480539a4a7.

* Get an environment with the necessary dependencies, and run autogen.sh:

    guix environment emacs

  You could try with --pure to see if the emacs inputs are actually
  enough to bootstrap Emacs' Git repository.  I doubt they are.  You can
  experiment with adding dependencies by using the --ad-hoc option.
  Once you figure out what dependencies are required to run autogen.sh,
  you can add them to your custom package definition if you want
  (although they won't be required for building Emacs once you've built
  the "configure" script).

  I happen to have various tools, such as Autoconf, installed in my
  profile (mainly so I can browse the manuals locally).  I'm pretty sure
  that's why the next step succeeded for me.

* Run autogen.sh to create the "configure" script:

    ./autogen.sh

* Now that the "configure" script has been created, build Emacs:

    guix build -f /tmp/emacs.scm

For me, the build proceeded but then failed during the "check" phase:

--8<---------------cut here---------------start------------->8---
SUMMARY OF TEST RESULTS
-----------------------
Files examined: 195
Ran 2767 tests, 2619 results as expected, 24 unexpected, 124 skipped
7 files contained unexpected results:
  src/process-tests.log
  lisp/progmodes/xref-tests.log
  lisp/progmodes/flymake-tests.log
  lisp/files-tests.log
  lisp/eshell/em-ls-tests.log
  lisp/calendar/todo-mode-tests.log
  lisp/net/tramp-tests.log
make[2]: *** [Makefile:280: check-doit] Error 1
make[2]: Leaving directory '/tmp/guix-build-emacs-dev-26.0.91.drv-0/build/test'
make[1]: *** [Makefile:255: check] Error 2
make[1]: Leaving directory '/tmp/guix-build-emacs-dev-26.0.91.drv-0/build/test'
make: *** [Makefile:945: check] Error 2
phase `check' failed after 104.0 seconds
builder for `/gnu/store/dshw12bj2486lcfv65g04g9rznxgfrwp-emacs-dev-26.0.91.drv' failed with exit code 1
@ build-failed /gnu/store/dshw12bj2486lcfv65g04g9rznxgfrwp-emacs-dev-26.0.91.drv - 1 builder for `/gnu/store/dshw12bj2486lcfv65g04g9rznxgfrwp-emacs-dev-26.0.91.drv' failed with exit code 1
guix build: error: build failed: build of `/gnu/store/dshw12bj2486lcfv65g04g9rznxgfrwp-emacs-dev-26.0.91.drv' failed
--8<---------------cut here---------------end--------------->8---

I don't know much about the test failures, but this is a success as far
as I'm concerned: If you get this far, it means the local-file
declaration in your package definition is working as intended.

Hope that helps!

-- 
Chris

[-- Attachment #1.2: emacs.scm --]
[-- Type: application/octet-stream, Size: 194 bytes --]

(use-modules
 (guix packages)
 (guix gexp)
 (gnu packages emacs))

(package
  (inherit emacs)
  (name "emacs-dev")
  (version "26.0.91")
  (source
   (local-file "/tmp/emacs" #:recursive? #t)))

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

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

* Re: How to install prerelease package versions (particularly Emacs)
  2018-04-11 15:53                       ` Pierre Neidhardt
  2018-04-12  8:29                         ` Chris Marusich
@ 2018-04-13  5:57                         ` Carlo Zancanaro
  1 sibling, 0 replies; 30+ messages in thread
From: Carlo Zancanaro @ 2018-04-13  5:57 UTC (permalink / raw)
  To: Pierre Neidhardt; +Cc: help-guix

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

I've had a problem like this before, when I was trying to build 
the Shepherd from git.

On Wed, Apr 11 2018, Pierre Neidhardt wrote:
> 	./configure: line 3350: config.log: Permission denied

I'm pretty sure this is what I had, and it was a problem of trying 
to build in a directory that was already built. I think the daemon 
copies the files, but the permissions aren't right, so it can't 
write over the file that my user had created. From memory I solved 
it by doing `make distclean` before running the build with Guix.

Carlo

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

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

end of thread, other threads:[~2018-04-13  5:57 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-03  0:00 How to install prerelease package versions (particularly Emacs) Jorge
2018-03-03 10:24 ` Oleg Pykhalov
2018-03-19  4:13   ` Chris Marusich
2018-03-26 18:42     ` Pierre Neidhardt
2018-03-27  9:51       ` Ludovic Courtès
2018-03-27 12:24         ` Clément Lassieur
2018-03-27 15:33         ` Oleg Pykhalov
2018-03-27 17:46           ` Marius Bakke
2018-03-27 20:57           ` Ludovic Courtès
2018-03-28  7:12             ` Oleg Pykhalov
2018-03-30  7:06               ` Pierre Neidhardt
2018-03-30 12:13                 ` Mathieu Lirzin
2018-03-30 12:19                   ` Pierre Neidhardt
2018-03-30 13:08                     ` Mathieu Lirzin
2018-04-11 15:53                       ` Pierre Neidhardt
2018-04-12  8:29                         ` Chris Marusich
2018-04-12  9:12                           ` Pierre Neidhardt
2018-04-12 12:57                             ` Ricardo Wurmus
2018-04-12 13:21                               ` Pierre Neidhardt
2018-04-13  5:27                             ` Chris Marusich
2018-04-13  5:57                         ` Carlo Zancanaro
2018-04-01 14:09                 ` Oleg Pykhalov
2018-04-11 16:00                   ` Pierre Neidhardt
2018-04-12  8:28                     ` Chris Marusich
2018-04-12  8:32                       ` Pierre Neidhardt
2018-04-11 15:57               ` Pierre Neidhardt
2018-04-12  6:06                 ` Pierre Neidhardt
2018-04-05 15:53       ` Jorge
2018-04-05 19:36         ` Pierre Neidhardt
2018-03-03 13:46 ` Jorge

Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.