unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Debugging info unavailability
@ 2017-04-23  0:02 Danny Milosavljevic
  2017-04-24  7:35 ` Tomas Cech
  2017-05-02 10:08 ` Ludovic Courtès
  0 siblings, 2 replies; 19+ messages in thread
From: Danny Milosavljevic @ 2017-04-23  0:02 UTC (permalink / raw)
  To: guix-devel

Hi,

just now I had to debug a doxygen Segmentation Fault.  I tried to install doxygen:debug but that wasn't available.

I think it would be nice if these outputs were available by default (but not installed by default).

If we wanted to do that, we could just adapt guix/build-system/cmake.scm, guix/build-system/gnu.scm and guix/build-system/glib-or-gtk.scm outputs default to say '("out" "debug") instead of '("out").

Do we want to do that in one of the larger update cycles?

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

* Re: Debugging info unavailability
  2017-04-23  0:02 Debugging info unavailability Danny Milosavljevic
@ 2017-04-24  7:35 ` Tomas Cech
  2017-05-02 10:08 ` Ludovic Courtès
  1 sibling, 0 replies; 19+ messages in thread
From: Tomas Cech @ 2017-04-24  7:35 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel

On Sun, 23 Apr 2017 02:02:06 +0200,
Danny Milosavljevic wrote:
> 
> Hi,
> 
> just now I had to debug a doxygen Segmentation Fault.  I tried to install doxygen:debug but that wasn't available.
> 
> I think it would be nice if these outputs were available by default (but not installed by default).
> 
> If we wanted to do that, we could just adapt guix/build-system/cmake.scm, guix/build-system/gnu.scm and guix/build-system/glib-or-gtk.scm outputs default to say '("out" "debug") instead of '("out").

This is the feature I wish for years, I'd really appreciate such feature as well.

Best regards,

S_W

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

* Re: Debugging info unavailability
  2017-04-23  0:02 Debugging info unavailability Danny Milosavljevic
  2017-04-24  7:35 ` Tomas Cech
@ 2017-05-02 10:08 ` Ludovic Courtès
  2017-05-02 16:39   ` Maxim Cournoyer
  1 sibling, 1 reply; 19+ messages in thread
From: Ludovic Courtès @ 2017-05-02 10:08 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel

Hi,

Danny Milosavljevic <dannym@scratchpost.org> skribis:

> just now I had to debug a doxygen Segmentation Fault.  I tried to install doxygen:debug but that wasn't available.
>
> I think it would be nice if these outputs were available by default (but not installed by default).

Yeah, on of the reasons this is currently opt-in is disk space on hydra,
as noted in the manual (info "(guix) Installing Debugging Files").

There’s also the fact that packages that do not use the GNU build system
will most likely not produce debugging info out of the box, so adding
“debug” automatically may break many packages.

> If we wanted to do that, we could just adapt guix/build-system/cmake.scm, guix/build-system/gnu.scm and guix/build-system/glib-or-gtk.scm outputs default to say '("out" "debug") instead of '("out").

Rather we should change the default value of the ‘outputs’ field of
<package>.

The problem is that we’d have to add a line like:

  (outputs '("out"))

to all the packages that do not provide debugging symbols (such as
Perl/Python/Ruby packages), which could be a lot of them.  Or we could
provide:

  (define-syntax-rule (package/no-debug fields ...)
    (package
      (outputs '("out"))
      fields ...))

Thoughts?

Ludo’.

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

* Re: Debugging info unavailability
  2017-05-02 10:08 ` Ludovic Courtès
@ 2017-05-02 16:39   ` Maxim Cournoyer
  2017-05-02 21:16     ` Ludovic Courtès
  0 siblings, 1 reply; 19+ messages in thread
From: Maxim Cournoyer @ 2017-05-02 16:39 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

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

Hi,

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

> Hi,
>
> Danny Milosavljevic <dannym@scratchpost.org> skribis:
>
>> just now I had to debug a doxygen Segmentation Fault.  I tried to install doxygen:debug but that wasn't available.
>>
>> I think it would be nice if these outputs were available by default (but not installed by default).
>
> Yeah, on of the reasons this is currently opt-in is disk space on hydra,
> as noted in the manual (info "(guix) Installing Debugging Files").
>
> There’s also the fact that packages that do not use the GNU build system
> will most likely not produce debugging info out of the box, so adding
> “debug” automatically may break many packages.
>
>> If we wanted to do that, we could just adapt
>> guix/build-system/cmake.scm, guix/build-system/gnu.scm and
>> guix/build-system/glib-or-gtk.scm outputs default to say '("out"
>> "debug") instead of '("out").
>
> Rather we should change the default value of the ‘outputs’ field of
> <package>.
>

Adding the "debug" to the default value of <package> would every package
to now have a debug output; isn't this why Danny suggested to only
change it at the build system level? That way nothing which doesn't have
debugging symbols by default would break or have a useless debug output.

Or, was there something with making the change at that level?

> The problem is that we’d have to add a line like:
>
>   (outputs '("out"))
>
> to all the packages that do not provide debugging symbols (such as
> Perl/Python/Ruby packages), which could be a lot of them.  Or we could
> provide:
>
>   (define-syntax-rule (package/no-debug fields ...)
>     (package
>       (outputs '("out"))
>       fields ...))
>
> Thoughts?
>
> Ludo’.

That seems a more invasive/uglier solution to that hinted by Danny? Or am I
missing something? :)

Thanks,

Maxim

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

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

* Re: Debugging info unavailability
  2017-05-02 16:39   ` Maxim Cournoyer
@ 2017-05-02 21:16     ` Ludovic Courtès
  2017-05-03  4:53       ` Maxim Cournoyer
  0 siblings, 1 reply; 19+ messages in thread
From: Ludovic Courtès @ 2017-05-02 21:16 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: guix-devel

Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

> ludo@gnu.org (Ludovic Courtès) writes:
>
>> Hi,
>>
>> Danny Milosavljevic <dannym@scratchpost.org> skribis:
>>
>>> just now I had to debug a doxygen Segmentation Fault.  I tried to install doxygen:debug but that wasn't available.
>>>
>>> I think it would be nice if these outputs were available by default (but not installed by default).
>>
>> Yeah, on of the reasons this is currently opt-in is disk space on hydra,
>> as noted in the manual (info "(guix) Installing Debugging Files").
>>
>> There’s also the fact that packages that do not use the GNU build system
>> will most likely not produce debugging info out of the box, so adding
>> “debug” automatically may break many packages.
>>
>>> If we wanted to do that, we could just adapt
>>> guix/build-system/cmake.scm, guix/build-system/gnu.scm and
>>> guix/build-system/glib-or-gtk.scm outputs default to say '("out"
>>> "debug") instead of '("out").
>>
>> Rather we should change the default value of the ‘outputs’ field of
>> <package>.
>>
>
> Adding the "debug" to the default value of <package> would every package
> to now have a debug output; isn't this why Danny suggested to only
> change it at the build system level? That way nothing which doesn't have
> debugging symbols by default would break or have a useless debug output.

Yes, it’s tempting to do it at the build-system level.  However, there
would now be a discrepancy between the actual outputs of the package
derivations and those of the package object: the package object would
declare just one output, but the corresponding derivation would have two
outputs.

I guess bad things would happen if we did that, but maybe someone needs
to try and see exactly what goes wrong.

Ludo’.

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

* Re: Debugging info unavailability
  2017-05-02 21:16     ` Ludovic Courtès
@ 2017-05-03  4:53       ` Maxim Cournoyer
  2017-05-03  6:29         ` Ricardo Wurmus
  0 siblings, 1 reply; 19+ messages in thread
From: Maxim Cournoyer @ 2017-05-03  4:53 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

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

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

> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>
>> ludo@gnu.org (Ludovic Courtès) writes:
>>
>>> Hi,
>>>
>>> Danny Milosavljevic <dannym@scratchpost.org> skribis:
>>>
>>>> just now I had to debug a doxygen Segmentation Fault.  I tried to install doxygen:debug but that wasn't available.
>>>>
>>>> I think it would be nice if these outputs were available by default (but not installed by default).
>>>
>>> Yeah, on of the reasons this is currently opt-in is disk space on hydra,
>>> as noted in the manual (info "(guix) Installing Debugging Files").
>>>
>>> There’s also the fact that packages that do not use the GNU build system
>>> will most likely not produce debugging info out of the box, so adding
>>> “debug” automatically may break many packages.
>>>
>>>> If we wanted to do that, we could just adapt
>>>> guix/build-system/cmake.scm, guix/build-system/gnu.scm and
>>>> guix/build-system/glib-or-gtk.scm outputs default to say '("out"
>>>> "debug") instead of '("out").
>>>
>>> Rather we should change the default value of the ‘outputs’ field of
>>> <package>.
>>>
>>
>> Adding the "debug" to the default value of <package> would every package
>> to now have a debug output; isn't this why Danny suggested to only
>> change it at the build system level? That way nothing which doesn't have
>> debugging symbols by default would break or have a useless debug output.
>
> Yes, it’s tempting to do it at the build-system level.  However, there
> would now be a discrepancy between the actual outputs of the package
> derivations and those of the package object: the package object would
> declare just one output, but the corresponding derivation would have two
> outputs.
>

Thanks for pointing that! It would be a Bad Thing indeed to introduce a
mismatch between the package definition and the corresponding store
item...

Possibly another Bad Idea, but we could leave things as they are... And
run a script which would rewrite (really, at the package definition
level) the package outputs to include "debug" for every package built
using the gnu/glib-or-gtk build systems? The commit will not be
pretty, that would bring us where we want to be? Being Scheme, that'd be
somewhat easy.

Maxim

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

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

* Re: Debugging info unavailability
  2017-05-03  4:53       ` Maxim Cournoyer
@ 2017-05-03  6:29         ` Ricardo Wurmus
  2017-05-03 10:11           ` Ludovic Courtès
  0 siblings, 1 reply; 19+ messages in thread
From: Ricardo Wurmus @ 2017-05-03  6:29 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: guix-devel


Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:

>>> Adding the "debug" to the default value of <package> would every package
>>> to now have a debug output; isn't this why Danny suggested to only
>>> change it at the build system level? That way nothing which doesn't have
>>> debugging symbols by default would break or have a useless debug output.
>>
>> Yes, it’s tempting to do it at the build-system level.  However, there
>> would now be a discrepancy between the actual outputs of the package
>> derivations and those of the package object: the package object would
>> declare just one output, but the corresponding derivation would have two
>> outputs.
>>
>
> Thanks for pointing that! It would be a Bad Thing indeed to introduce a
> mismatch between the package definition and the corresponding store
> item...
>
> Possibly another Bad Idea, but we could leave things as they are... And
> run a script which would rewrite (really, at the package definition
> level) the package outputs to include "debug" for every package built
> using the gnu/glib-or-gtk build systems? The commit will not be
> pretty, that would bring us where we want to be? Being Scheme, that'd be
> somewhat easy.

This sounds better.  I just don’t know if Hydra would have enough space
for all of these additional outputs.

Can we increase storage space on Hydra already or do we need to wait for
bayfront to replace the server in Boston?

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net

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

* Re: Debugging info unavailability
  2017-05-03  6:29         ` Ricardo Wurmus
@ 2017-05-03 10:11           ` Ludovic Courtès
  2017-05-03 15:22             ` Maxim Cournoyer
  0 siblings, 1 reply; 19+ messages in thread
From: Ludovic Courtès @ 2017-05-03 10:11 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel, Maxim Cournoyer

Ricardo Wurmus <rekado@elephly.net> skribis:

> Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:
>
>>>> Adding the "debug" to the default value of <package> would every package
>>>> to now have a debug output; isn't this why Danny suggested to only
>>>> change it at the build system level? That way nothing which doesn't have
>>>> debugging symbols by default would break or have a useless debug output.
>>>
>>> Yes, it’s tempting to do it at the build-system level.  However, there
>>> would now be a discrepancy between the actual outputs of the package
>>> derivations and those of the package object: the package object would
>>> declare just one output, but the corresponding derivation would have two
>>> outputs.
>>>
>>
>> Thanks for pointing that! It would be a Bad Thing indeed to introduce a
>> mismatch between the package definition and the corresponding store
>> item...
>>
>> Possibly another Bad Idea, but we could leave things as they are... And
>> run a script which would rewrite (really, at the package definition
>> level) the package outputs to include "debug" for every package built
>> using the gnu/glib-or-gtk build systems? The commit will not be
>> pretty, that would bring us where we want to be? Being Scheme, that'd be
>> somewhat easy.
>
> This sounds better.  I just don’t know if Hydra would have enough space
> for all of these additional outputs.
>
> Can we increase storage space on Hydra already or do we need to wait for
> bayfront to replace the server in Boston?

I don’t think we can have more space easily on hydra.gnu.org.

I’m also unsure how much would be needed.  Currently ‘guix publish’
prepares bakes archives on-demand.  So if you ask for glibc:out, it
returns 404, prepares it, and the next request for glibc:out will
succeed.  But if you ask for glibc:debug, it’s similarly missing
initially.

With this model, ‘guix publish’ gives the impression that not all the
outputs of a given derivation are available at the same time.

We could change ‘guix publish’ to “bake” all the outputs of a derivation
as soon as one if requested—e.g., when you ask for glibc:out, it bakes
not only glibc:out but also glibc:debug.  But then we might have a disk
space issue.

Thoughts?

Ludo’.

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

* Re: Debugging info unavailability
  2017-05-03 10:11           ` Ludovic Courtès
@ 2017-05-03 15:22             ` Maxim Cournoyer
  2017-05-05 20:31               ` Ludovic Courtès
  0 siblings, 1 reply; 19+ messages in thread
From: Maxim Cournoyer @ 2017-05-03 15:22 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

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

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

> Ricardo Wurmus <rekado@elephly.net> skribis:
>
>> Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:
>>
>>>>> Adding the "debug" to the default value of <package> would every package
>>>>> to now have a debug output; isn't this why Danny suggested to only
>>>>> change it at the build system level? That way nothing which doesn't have
>>>>> debugging symbols by default would break or have a useless debug output.
>>>>
>>>> Yes, it’s tempting to do it at the build-system level.  However, there
>>>> would now be a discrepancy between the actual outputs of the package
>>>> derivations and those of the package object: the package object would
>>>> declare just one output, but the corresponding derivation would have two
>>>> outputs.
>>>>
>>>
>>> Thanks for pointing that! It would be a Bad Thing indeed to introduce a
>>> mismatch between the package definition and the corresponding store
>>> item...
>>>
>>> Possibly another Bad Idea, but we could leave things as they are... And
>>> run a script which would rewrite (really, at the package definition
>>> level) the package outputs to include "debug" for every package built
>>> using the gnu/glib-or-gtk build systems? The commit will not be
>>> pretty, that would bring us where we want to be? Being Scheme, that'd be
>>> somewhat easy.
>>
>> This sounds better.  I just don’t know if Hydra would have enough space
>> for all of these additional outputs.
>>
>> Can we increase storage space on Hydra already or do we need to wait for
>> bayfront to replace the server in Boston?
>
> I don’t think we can have more space easily on hydra.gnu.org.
>
> I’m also unsure how much would be needed.  Currently ‘guix publish’
> prepares bakes archives on-demand.  So if you ask for glibc:out, it
> returns 404, prepares it, and the next request for glibc:out will
> succeed.  But if you ask for glibc:debug, it’s similarly missing
> initially.
>
> With this model, ‘guix publish’ gives the impression that not all the
> outputs of a given derivation are available at the same time.
>
> We could change ‘guix publish’ to “bake” all the outputs of a derivation
> as soon as one if requested—e.g., when you ask for glibc:out, it bakes
> not only glibc:out but also glibc:debug.  But then we might have a disk
> space issue.
>
> Thoughts?
>
> Ludo’.

The ideal situation would be to not be space contrived and to build a cache
everything or at least following some heuristic such as "every package that
was requested at least once in the past month". For someone following
master, I find that the current way substitutes are built is not
aggressive enough, and I find often find myself building the world with
--fallback.

What good is a substitute server if it doesn't hold the stuff I need
*now*? :) On the other side, it really makes me want to look at GNUnet,
which seems like the better long term solution.

I'll investigate the script to add "debug" to our gnu/gtk packages.

Maxim

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

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

* Re: Debugging info unavailability
  2017-05-03 15:22             ` Maxim Cournoyer
@ 2017-05-05 20:31               ` Ludovic Courtès
  2017-05-05 21:47                 ` Ricardo Wurmus
  2017-05-05 22:09                 ` Maxim Cournoyer
  0 siblings, 2 replies; 19+ messages in thread
From: Ludovic Courtès @ 2017-05-05 20:31 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: guix-devel

Hi!

Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

> The ideal situation would be to not be space contrived and to build a cache
> everything or at least following some heuristic such as "every package that
> was requested at least once in the past month". For someone following
> master, I find that the current way substitutes are built is not
> aggressive enough,

All the packages in ‘master’ are evaluated a couple of times a day
roughly; you can see that at <https://hydra.gnu.org/jobset/gnu/master>.

For x86_64 I think the latency is usually not too bad; sometimes it’s
there’s an increased delay in building the latest packages because
hydra.gnu.org is loaded or something like that.

> and I find often find myself building the world with --fallback.

Maybe that’s because you stumbled upon corrupt items?  I really think
we’re reaching the end of these problems now that we use ‘guix publish
--cache’.

> What good is a substitute server if it doesn't hold the stuff I need
> *now*? :) On the other side, it really makes me want to look at GNUnet,
> which seems like the better long term solution.

Though GNUnet doesn’t solve the fact that one needs a lot of CPU and
storage to build and store all this.  :-)

Ludo’.

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

* Re: Debugging info unavailability
  2017-05-05 20:31               ` Ludovic Courtès
@ 2017-05-05 21:47                 ` Ricardo Wurmus
  2017-05-06 12:21                   ` Ludovic Courtès
  2017-05-05 22:09                 ` Maxim Cournoyer
  1 sibling, 1 reply; 19+ messages in thread
From: Ricardo Wurmus @ 2017-05-05 21:47 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel, Maxim Cournoyer


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

>> What good is a substitute server if it doesn't hold the stuff I need
>> *now*? :) On the other side, it really makes me want to look at GNUnet,
>> which seems like the better long term solution.
>
> Though GNUnet doesn’t solve the fact that one needs a lot of CPU and
> storage to build and store all this.  :-)

FWIW I’m working on setting up a Guix+Cuirass build farm at the MDC, and
the goal is to eventually make it available to the public.  Initially we
will restrict building to a subset that we use most often (all the
science stuff), but this will result in extra substitutes for packages
lower in the graph.

Ultimately, though, we ought to distribute the workload better, and
“guix publish” already helps with this.

-- 
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net

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

* Re: Debugging info unavailability
  2017-05-05 20:31               ` Ludovic Courtès
  2017-05-05 21:47                 ` Ricardo Wurmus
@ 2017-05-05 22:09                 ` Maxim Cournoyer
  2017-05-06 12:26                   ` Distributing substitutes over GNUnet Ludovic Courtès
  2017-05-06 12:46                   ` Debugging info unavailability ng0
  1 sibling, 2 replies; 19+ messages in thread
From: Maxim Cournoyer @ 2017-05-05 22:09 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

Hi!

> Maybe that’s because you stumbled upon corrupt items?  I really think
> we’re reaching the end of these problems now that we use ‘guix publish
> --cache’.
>

That's possible! I've stumbled on a few of those in the past 2 weeks.
It's good to know something's been done about it!

>> What good is a substitute server if it doesn't hold the stuff I need
>> *now*? :) On the other side, it really makes me want to look at GNUnet,
>> which seems like the better long term solution.
>
> Though GNUnet doesn’t solve the fact that one needs a lot of CPU and
> storage to build and store all this.  :-)
>

I think what I meant was "integration of GNUnet with guix publish".
Something which would allow anyone to effortlessly share what's been
built on their machine with the other Guix users. A zero config kind
of thing, with auto discovery of peers and available substitutes.

I haven't researched much about GNUnet yet, but it seems it might be
fit for that purpose.

Maxim

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

* Re: Debugging info unavailability
  2017-05-05 21:47                 ` Ricardo Wurmus
@ 2017-05-06 12:21                   ` Ludovic Courtès
  0 siblings, 0 replies; 19+ messages in thread
From: Ludovic Courtès @ 2017-05-06 12:21 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel, Maxim Cournoyer

Ricardo Wurmus <rekado@elephly.net> skribis:

> Ludovic Courtès <ludo@gnu.org> writes:
>
>>> What good is a substitute server if it doesn't hold the stuff I need
>>> *now*? :) On the other side, it really makes me want to look at GNUnet,
>>> which seems like the better long term solution.
>>
>> Though GNUnet doesn’t solve the fact that one needs a lot of CPU and
>> storage to build and store all this.  :-)
>
> FWIW I’m working on setting up a Guix+Cuirass build farm at the MDC, and
> the goal is to eventually make it available to the public.  Initially we
> will restrict building to a subset that we use most often (all the
> science stuff), but this will result in extra substitutes for packages
> lower in the graph.

Excellent.  If you’re using a GuixSD config like that of
bayfront.guixsd.org, perhaps your experience will help us streamline
that, such that we can eventually provide, say, a guix-build-farm
service that does the right thing.

> Ultimately, though, we ought to distribute the workload better, and
> “guix publish” already helps with this.

Agreed!

Ludo’.

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

* Distributing substitutes over GNUnet
  2017-05-05 22:09                 ` Maxim Cournoyer
@ 2017-05-06 12:26                   ` Ludovic Courtès
  2017-05-11 15:05                     ` Maxim Cournoyer
  2017-05-06 12:46                   ` Debugging info unavailability ng0
  1 sibling, 1 reply; 19+ messages in thread
From: Ludovic Courtès @ 2017-05-06 12:26 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: guix-devel

Hello,

Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

> I think what I meant was "integration of GNUnet with guix publish".
> Something which would allow anyone to effortlessly share what's been
> built on their machine with the other Guix users. A zero config kind
> of thing, with auto discovery of peers and available substitutes.

Sure, I agree this is a worthwhile goal.  If you haven’t already, check
out the GSoC by Rémy Birot-Delrue on this topic a couple of years ago:

  https://gnu.org/software/guix/news/gsoc-update.html

Rémy ended up with Guile bindings for GNUnet, along with a
proof-of-concept publish and substitute process using GNUnet:

  https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00455.html

I know ng0 is very interested in this as well.  I’d love to work in this
area!

Ludo’.

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

* Re: Debugging info unavailability
  2017-05-05 22:09                 ` Maxim Cournoyer
  2017-05-06 12:26                   ` Distributing substitutes over GNUnet Ludovic Courtès
@ 2017-05-06 12:46                   ` ng0
  2017-05-11  5:13                     ` Maxim Cournoyer
  1 sibling, 1 reply; 19+ messages in thread
From: ng0 @ 2017-05-06 12:46 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: guix-devel

Maxim Cournoyer transcribed 1.0K bytes:
…
> >> What good is a substitute server if it doesn't hold the stuff I need
> >> *now*? :) On the other side, it really makes me want to look at GNUnet,
> >> which seems like the better long term solution.
> >
> > Though GNUnet doesn’t solve the fact that one needs a lot of CPU and
> > storage to build and store all this.  :-)
> >
> 
> I think what I meant was "integration of GNUnet with guix publish".
> Something which would allow anyone to effortlessly share what's been
> built on their machine with the other Guix users. A zero config kind
> of thing, with auto discovery of peers and available substitutes.
> 
> I haven't researched much about GNUnet yet, but it seems it might be
> fit for that purpose.
> 
> Maxim
> 

This has been addressed between 2013? and late 2015, and I'm about to document my own
discussions, thoughts, and roadmap for this (gathered in the last 2 years).
In the sense of freedom of choice, I'd rather make this an opt-in (contrary to what
my own position in discussions was before) so that I can make pragmaOS use this and
those who would like to use it too.
The main roadblocker is 5 weeks - 5 months until a new GNUnet release, but there's
some tasks to work on which can be quickly updated once we have released GNUnet 0.11
or which version number is decided upon.
If you are interested, I can CC you in the message update when I have documented
the ideas (though they are 90% identical to the outcomes of the GSoC discussions
of the past, thought about without knowing it has been discussed before).
My basic idea without going too much into depth (I don't want to search my papers):

- following the ideas of pragmaOS, to first make GNUnet as easy as
  possible to use and configure (the system service I'm working on)
- update the gnunet-guile bindings for HEAD of gnunet but work with 0.10.1 for the
  current version of the service
- write the necessary guix integrations

There's more documented with reasons and ideas beyond just this.
I'm often quoted as the GNUnet expert here in Guix recently (as far as I follow
irc logs), but I would really appreciate if interested people who are passionate
about seeing this feature implemented would join me.
I'm just slow because one person efforts are always slow when the entire project
is not just writing the above listed project but also 3 concepts (blueprint for
how to build a system based on GuixSD, create a base for future systems, package
and write all the things which are required by the blueprint system (which happens
to be focused on GNUnet applications), and last but not least improve the system
by helping upstream).

I know from the meeting december of last year that Ludovic is sceptic about
GNUnet by now to some degree, and if I could decide on releases GNUnet would now
have an -dev or -preview or whatever release. The amount of bugfixes which happened
since 0.10.1 are just too much to keep 0.10.1 around, especially since the compability
no longer works between nodes running 0.10.1 and ones running HEAD.

So far all we can is either take on the last two bugs (I don't know enough C) or
wait until Christian had time to work on them.
-- 
https://pragmatique.xyz
PGP: https://people.pragmatique.xyz/ng0/

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

* Re: Debugging info unavailability
  2017-05-06 12:46                   ` Debugging info unavailability ng0
@ 2017-05-11  5:13                     ` Maxim Cournoyer
  2017-05-11 16:50                       ` ng0
  0 siblings, 1 reply; 19+ messages in thread
From: Maxim Cournoyer @ 2017-05-11  5:13 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

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

Hello ng0,

Sorry for the delayed reply!

ng0 <contact.ng0@cryptolab.net> writes:

> Maxim Cournoyer transcribed 1.0K bytes:
> …
>> >> What good is a substitute server if it doesn't hold the stuff I need
>> >> *now*? :) On the other side, it really makes me want to look at GNUnet,
>> >> which seems like the better long term solution.
>> >
>> > Though GNUnet doesn’t solve the fact that one needs a lot of CPU and
>> > storage to build and store all this.  :-)
>> >
>> 
>> I think what I meant was "integration of GNUnet with guix publish".
>> Something which would allow anyone to effortlessly share what's been
>> built on their machine with the other Guix users. A zero config kind
>> of thing, with auto discovery of peers and available substitutes.
>> 
>> I haven't researched much about GNUnet yet, but it seems it might be
>> fit for that purpose.
>> 
>> Maxim
>> 
>
> This has been addressed between 2013? and late 2015, and I'm about to document my own
> discussions, thoughts, and roadmap for this (gathered in the last 2 years).
> In the sense of freedom of choice, I'd rather make this an opt-in (contrary to what
> my own position in discussions was before) so that I can make pragmaOS use this and
> those who would like to use it too.
> The main roadblocker is 5 weeks - 5 months until a new GNUnet release, but there's
> some tasks to work on which can be quickly updated once we have released GNUnet 0.11
> or which version number is decided upon.
> If you are interested, I can CC you in the message update when I have documented
> the ideas (though they are 90% identical to the outcomes of the GSoC discussions
> of the past, thought about without knowing it has been discussed
> before).

Count me in. I'd like to learn more about GNUnet and any design
ideas/known issues there might be to integrate 'guix publish' with it.

> My basic idea without going too much into depth (I don't want to search my papers):
>
> - following the ideas of pragmaOS, to first make GNUnet as easy as
>   possible to use and configure (the system service I'm working on)

Shouldn't deploying GNUnet on Guix be as easy as adding a service to the
system declaration (and maybe tweeking a few parameters) ?

> - update the gnunet-guile bindings for HEAD of gnunet but work with 0.10.1 for the
>   current version of the service
[...]
> I know from the meeting december of last year that Ludovic is sceptic about
> GNUnet by now to some degree, and if I could decide on releases GNUnet would now
> have an -dev or -preview or whatever release. The amount of bugfixes which happened
> since 0.10.1 are just too much to keep 0.10.1 around, especially since the compability
> no longer works between nodes running 0.10.1 and ones running HEAD.
>

Is backward compatiblity absolutely necessary, given that this version
has its share of problems and is fragmenting the network. I'd rather put
efforts on making GNUnet 'next' working, and well.

Also, why not packaging a GNUnet-next already in Guix? With only two
bugs left to fix, it should already work rather well (maybe better?)
compared to 0.10.1? Guix makes it easy to have multiple versions if we
need -- let's make use of it!

Maxim

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

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

* Re: Distributing substitutes over GNUnet
  2017-05-06 12:26                   ` Distributing substitutes over GNUnet Ludovic Courtès
@ 2017-05-11 15:05                     ` Maxim Cournoyer
  0 siblings, 0 replies; 19+ messages in thread
From: Maxim Cournoyer @ 2017-05-11 15:05 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

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

Hi,

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

> Hello,
>
> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>
>> I think what I meant was "integration of GNUnet with guix publish".
>> Something which would allow anyone to effortlessly share what's been
>> built on their machine with the other Guix users. A zero config kind
>> of thing, with auto discovery of peers and available substitutes.
>
> Sure, I agree this is a worthwhile goal.  If you haven’t already, check
> out the GSoC by Rémy Birot-Delrue on this topic a couple of years ago:
>
>   https://gnu.org/software/guix/news/gsoc-update.html
>
> Rémy ended up with Guile bindings for GNUnet, along with a
> proof-of-concept publish and substitute process using GNUnet:
>
>   https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00455.html
>
> I know ng0 is very interested in this as well.  I’d love to work in this
> area!
>
> Ludo’.

This is a very interesting idea indeed! Thank you for the pointers. I've
taken a quick look at the  code Rémy created in 2015. I wonder if it's
still working. Looks like there are a some tests, so that's good! I'll have to try it!

Maxim

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

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

* Re: Debugging info unavailability
  2017-05-11  5:13                     ` Maxim Cournoyer
@ 2017-05-11 16:50                       ` ng0
  2017-05-11 21:04                         ` Ludovic Courtès
  0 siblings, 1 reply; 19+ messages in thread
From: ng0 @ 2017-05-11 16:50 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: guix-devel

Maxim Cournoyer transcribed 4.2K bytes:
> Hello ng0,
> 
> Sorry for the delayed reply!
> 
> ng0 <contact.ng0@cryptolab.net> writes:
> 
> > Maxim Cournoyer transcribed 1.0K bytes:
> > …
> >> >> What good is a substitute server if it doesn't hold the stuff I need
> >> >> *now*? :) On the other side, it really makes me want to look at GNUnet,
> >> >> which seems like the better long term solution.
> >> >
> >> > Though GNUnet doesn’t solve the fact that one needs a lot of CPU and
> >> > storage to build and store all this.  :-)
> >> >
> >> 
> >> I think what I meant was "integration of GNUnet with guix publish".
> >> Something which would allow anyone to effortlessly share what's been
> >> built on their machine with the other Guix users. A zero config kind
> >> of thing, with auto discovery of peers and available substitutes.
> >> 
> >> I haven't researched much about GNUnet yet, but it seems it might be
> >> fit for that purpose.
> >> 
> >> Maxim
> >> 
> >
> > This has been addressed between 2013? and late 2015, and I'm about to document my own
> > discussions, thoughts, and roadmap for this (gathered in the last 2 years).
> > In the sense of freedom of choice, I'd rather make this an opt-in (contrary to what
> > my own position in discussions was before) so that I can make pragmaOS use this and
> > those who would like to use it too.
> > The main roadblocker is 5 weeks - 5 months until a new GNUnet release, but there's
> > some tasks to work on which can be quickly updated once we have released GNUnet 0.11
> > or which version number is decided upon.
> > If you are interested, I can CC you in the message update when I have documented
> > the ideas (though they are 90% identical to the outcomes of the GSoC discussions
> > of the past, thought about without knowing it has been discussed
> > before).
> 
> Count me in. I'd like to learn more about GNUnet and any design
> ideas/known issues there might be to integrate 'guix publish' with it.

This week applications for university started, so I will transfer the
documentation when I have more time. Probably within the next weeks.

> > My basic idea without going too much into depth (I don't want to search my papers):
> >
> > - following the ideas of pragmaOS, to first make GNUnet as easy as
> >   possible to use and configure (the system service I'm working on)
> 
> Shouldn't deploying GNUnet on Guix be as easy as adding a service to the
> system declaration (and maybe tweeking a few parameters) ?

For just the system service, yes. But I want to make the most out of
shepherd and include every possible option which can be later extended
to have example or services documented for configuring the gnunet-vpn, etc
(actually the system-service part is only a small part of improving
the usability).

> > - update the gnunet-guile bindings for HEAD of gnunet but work with 0.10.1 for the
> >   current version of the service
> [...]
> > I know from the meeting december of last year that Ludovic is sceptic about
> > GNUnet by now to some degree, and if I could decide on releases GNUnet would now
> > have an -dev or -preview or whatever release. The amount of bugfixes which happened
> > since 0.10.1 are just too much to keep 0.10.1 around, especially since the compability
> > no longer works between nodes running 0.10.1 and ones running HEAD.
> >
> 
> Is backward compatiblity absolutely necessary, given that this version
> has its share of problems and is fragmenting the network. I'd rather put
> efforts on making GNUnet 'next' working, and well.

There is no backwards compability. This extra step is just done because
in past discussions some of us in Guix insisted on an available release.
Given that we (at GNUnet) now explicitly recommend not to run 0.10.1,
and the only delay is 2 bugs which depend on Christian freeing up time
in the schedule between jobs, it's annoying that we can't use HEAD.

Anyway, for getting the service started it should work like this,
I'm just generally stuck on services and the help on services is
mostly try and run it until it could/should/would work… I don't expect
any help, but there's more help on packages then getting started with
services. It takes much longer.

> Also, why not packaging a GNUnet-next already in Guix? With only two
> bugs left to fix, it should already work rather well (maybe better?)
> compared to 0.10.1? Guix makes it easy to have multiple versions if we
> need -- let's make use of it!

Refer to Ludovic and others for the reasons why we don't have that.
In any case I have many different variants of gnunet in my public
package repository https://git.pragmatique.xyz/ng0-packages/log.html

I could test run the current HEAD with some of my definitions, but
I don't really want to waste my time on discussions about the why
and why not again. If you want it, it can be added very quickly.

> Maxim



-- 
https://pragmatique.xyz
PGP: https://people.pragmatique.xyz/ng0/

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

* Re: Debugging info unavailability
  2017-05-11 16:50                       ` ng0
@ 2017-05-11 21:04                         ` Ludovic Courtès
  0 siblings, 0 replies; 19+ messages in thread
From: Ludovic Courtès @ 2017-05-11 21:04 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: guix-devel

ng0 <ng0@pragmatique.xyz> skribis:

> Maxim Cournoyer transcribed 4.2K bytes:

[...]

>> Also, why not packaging a GNUnet-next already in Guix? With only two
>> bugs left to fix, it should already work rather well (maybe better?)
>> compared to 0.10.1? Guix makes it easy to have multiple versions if we
>> need -- let's make use of it!
>
> Refer to Ludovic and others for the reasons why we don't have that.

Hi!  :-) At the time we discussed it I was reluctant to adding a GNUnet
snapshot as a package because (1) we have the general rule¹ to package
only releases, and (2) when we violate the rule anyway ;-), we need to
be confident that we’re doing the right thing, such as picking the right
commit.

#2 is hard unless you’re also an upstream developer of the software in
question.  For example we wouldn’t want to have Guix users run a version
of GNUnet that uses a protocol compatible neither with the old nor with
the next version.

So I would urge you to lobby on the gnunet-developers list until we get
a shiny new release.  :-)

Ludo’.

¹ https://www.gnu.org/software/guix/manual/html_node/Version-Numbers.html

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

end of thread, other threads:[~2017-05-11 21:04 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-23  0:02 Debugging info unavailability Danny Milosavljevic
2017-04-24  7:35 ` Tomas Cech
2017-05-02 10:08 ` Ludovic Courtès
2017-05-02 16:39   ` Maxim Cournoyer
2017-05-02 21:16     ` Ludovic Courtès
2017-05-03  4:53       ` Maxim Cournoyer
2017-05-03  6:29         ` Ricardo Wurmus
2017-05-03 10:11           ` Ludovic Courtès
2017-05-03 15:22             ` Maxim Cournoyer
2017-05-05 20:31               ` Ludovic Courtès
2017-05-05 21:47                 ` Ricardo Wurmus
2017-05-06 12:21                   ` Ludovic Courtès
2017-05-05 22:09                 ` Maxim Cournoyer
2017-05-06 12:26                   ` Distributing substitutes over GNUnet Ludovic Courtès
2017-05-11 15:05                     ` Maxim Cournoyer
2017-05-06 12:46                   ` Debugging info unavailability ng0
2017-05-11  5:13                     ` Maxim Cournoyer
2017-05-11 16:50                       ` ng0
2017-05-11 21:04                         ` 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).