Re: how to "guix pack" a profile?

2020-06-19 Thread elaexuotee
At this point, I am probably firmly in kOOk territory. :p

For now I will stay silent on the issue until I have some concrete code to
share.

Thank you for sincerely engaging with me.

Cheers,

zimoun  wrote:
> On Fri, 19 Jun 2020 at 14:34,  wrote:
> > > > 1. Composable profiles,
> > >
> > > This is already possible.
> >
> > Would you kindly point me to the documentation? I am failing to find it.
> 
>   guix install hello -p foo
>   guix install emacs -p bar
>   eval $(guix package -p foo -p bar --search-paths=exact)
> 
> So it composes.  However maybe not what you had in mind. ;-)
> 
> > By "composable profiles" what I have in mind is the sum of two existing
> > profiles and extending them as necessary
> >
> > $ guix environment --with-profile saved-profiles/profile-A \
> >--with-profile saved-profiles/profile-B \
> >
> 
> Yes, because "guix environment" cannot support "profile".  As said,
> IMHO you raised 2 interesting use cases:
> 
>  1. create an environment based on a profile
>  2. pack an existing profile
> 
> Obviously "a profile" means the composition of profiles if any.
> 
> 
> > I agree. If I'm to make any points, I should just submit some concrete 
> > patches.
> 
> Patches are always welcome. :-)
> 
> 
> Cheers,
> simon
> 
> ps:
> Well, maybe we are falling in the "take it to private email" thread pattern. 
> ;-)
> https://joeyh.name/blog/entry/thread_patterns/





Re: how to "guix pack" a profile?

2020-06-19 Thread elaexuotee
Ludovic Courtès  wrote:
> Hi,
> 
> zimoun  skribis:
> 
> > Ludo, WDYT about "guix pack -p profile" to generate a (relocatable)
> > tarball or Docker image?  I mean if it is not already possible. :-)
> 
> That could work, but honestly I’d rather encourage -m.  I’m not
> convinced there’s a need for what you suggest here.
> 
> Ludo’.

The original proposal for this was to enable packing a development environment,
as opposed to an --ad-hoc collection of packages. Am I simply missing how to do
this?


signature.asc
Description: PGP signature


Policy to remove broken packages

2020-06-19 Thread zimoun
Dear,

After Guix Days 2019, the idea of having an informal policy to remove
broken packages had emerged.  Quoting the initial Björn's message [1]:

> If a package is broken for  more than 6 months, we should just
> remove it from Guix. Prior  to removing, we should announce on
> the  dev  mailing  list,  maybe someone  will  care  about  it
> then. If there is no response within 2 weeks, we really remove
> it.

And we all agreed. :-)

How to make it happen?  Where is the correct place to mark list them:
Data Service or Cuirass?


1: https://lists.gnu.org/archive/html/guix-devel/2019-02/msg00019.html


All the best,
simon



Re: [OUTREACHY]: Integration of desktop environments into GNU Guix

2020-06-19 Thread Raghav Gururajan
@Danny

Please find the attached patches.

@Others

Please find the following git log.

commit a412459054b7ad00738dc66cb2035638f9c11b3c
Author: Raghav Gururajan 
Date:   Fri Jun 19 19:11:28 2020 -0400

gnu: gst-libav: Update package definition.

* gnu/packages/gstreamer.scm (gst-libav): Update package definition.
[arguments]<#:phases>['patch-docbook-xml]: New phase.
[native-inputs]: Add docbook-xml, perl and ruby.
[inputs]: Remove gst-plugins-base, orc and zlib.
[propagated-inputs]: Add gstreamer and gst-plugins-base.
[synopsis]: Modify.
[description]: Modify.
[license]: Change from gpl2+ to lgpl2.0+.

commit 0109580032805d61700513aa5aee0891fed96b3c
Author: Raghav Gururajan 
Date:   Fri Jun 19 18:53:51 2020 -0400

gnu: gst-plugins-ugly: Update package definition.

* gnu/packages/gstreamer.scm (gst-plugins-ugly): Update package
definition.
[arguments]<#:glib-or-gtk?>: New argument.
<#:phases>['patch-docbook-xml]: New phase.
['pre-check]: New phase.
[native-inputs]: Add docbook-xml, gettext-minimal,
gsettings-desktop-schemas,
perl and xorg-server-for-tests.
[inputs]: Add glib, glib-networking and opencore-amr. Remove
gst-plugins-base.
[propagated-inputs]: Add gstreamer and gst-plugins-base.
[synopsis]: Modify.
[description]: Modify.

commit 8d47e7bc65fa241e761e8a723a147f9c097f66d2
Author: Raghav Gururajan 
Date:   Fri Jun 19 18:48:19 2020 -0400

gnu: gst-plugins-bad: Update package definition.

* gnu/packages/gstreamer.scm (gst-plugins-base): Update package
definition.
[outputs]: New output 'doc'.
[arguments]<#:glib-or-gtk?>: New argument.
<#:phases>['patch-docbook-xml]: New phase.
['pre-check]: New phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml, gettext-minimal,
gsettings-desktop-schemas,
perl, libxml2 and xorg-server-for-tests.
[inputs]: Add bzip2, cairo, ccextractor, chromaprint, directfb, faac,
flite, glib, glib-networking, glu, gsm, iqa, lcms, libaom, libbs2b,
libdc1394,
libdca, libde265, libdrm, libexif, libfdk, libgme, libmfx, libmms,
libmpcdec,
libnice, libofa, libopenmpt, libtiff, libva, libx11, libxcb,
libxext, libxshm, lilv,
lv2, mjpegtools, nettle, opencv, openh264, openni2, pango, rtmpdump,
sbc, sctp, spandsp, srt, svt-hevc, transcode, v4l-utils, vo-aacenc,
vo-amrwbenc,
vulkan-headers, vulkan-loader, webrtc-audio-processing, wildmidi,
wpebackend-fdo, zbar and zxing-cpp.
[propagated-inputs]: Add gstreamer and gst-plugins-base.
[synopsis]: Modify.
[description]: Modify.

commit 5970d09c8db16c565ccdf9e3964829affdab2f6c
Author: Raghav Gururajan 
Date:   Thu Jun 18 21:05:20 2020 -0400

gnu: Add openni2.

* gnu/packages/gstreamer.scm (openni2): New variable.

commit f16e64e5afee6d70814cbf9b5730cb1b00f7589f
Author: Raghav Gururajan 
Date:   Thu Jun 18 20:38:35 2020 -0400

gnu: Add libnice.

* gnu/packages/networking.scm (libnice): New variable.

commit 3e032569d0dfe0b2f5b184b65f5534532abda5f3
Author: Raghav Gururajan 
Date:   Thu Jun 18 12:33:53 2020 -0400

gnu: Add rtmpdump.

* gnu/packages/networking.scm (rtmpdump): New variable.

commit 4fdfc0999a8f16d563a6651875859973af798b1c
Author: Raghav Gururajan 
Date:   Thu Jun 18 12:29:16 2020 -0400

gnu: Add iqa.

* gnu/packages/image.scm (iqa): New variable.

commit bf481717c8a0b306c532eb5d3cc170c1581f4324
Author: Raghav Gururajan 
Date:   Thu Jun 18 10:04:15 2020 -0400

gnu: Add zxing-cpp.

* gnu/packages/aidc.scm (zxing-cpp): New variable.

commit b34d5c89db9df4b63906e6b716610de4d423efe1
Author: Raghav Gururajan 
Date:   Thu Jun 18 09:25:50 2020 -0400

gnu: Add wildmidi.

* gnu/packages/audio.scm (wildmidi): New variable.

commit 6dc93ef31c2ecca6618638a1d92c790c3bf9
Author: Raghav Gururajan 
Date:   Thu Jun 18 06:55:01 2020 -0400

gnu: Add webrtc-audio-processing.

* gnu/packages/audio.scm (webrtc-audio-processing): New variable.

commit 3f49b0393cb26eb88fe9efc0f25853a3a62de36b
Author: Raghav Gururajan 
Date:   Thu Jun 18 06:14:20 2020 -0400

gnu: Add vo-aacenc.

* gnu/packages/audio.scm (vo-aacenc): New variable.

commit 9244d35ef12b4bd975f2bcd3a5e485aaa8bf7d20
Author: Raghav Gururajan 
Date:   Wed Jun 17 16:50:58 2020 -0400

gnu: Add transcode.

* gnu/packages/video.scm (transcode): New variable.

commit fca9377762504f4fb70bc1427335dafbed4b0fe5
Author: Raghav Gururajan 
Date:   Wed Jun 17 15:07:02 2020 -0400

gnu: Add tinyalsa.

* gnu/packages/audio.scm (tinyalsa): New variable.

commit 01e1f8eeb2688c960dfa861945bd4691e598f8b0
Author: Raghav Gururajan 
Date:   Wed Jun 17 13:22:49 2020 -0400

gnu: Add svt-hevc.

* gnu/packages/video.scm (svt-hevc): New variable.

commit 3ba833d7d6bbed44cfb44429da56f84f6ba36cdf
Author: Raghav Gururajan 
Date:   Wed Jun 17 13:00:23 2020 -0400

gnu: Add srt.

* gnu/packages/networking.scm (srt): New variable.

commit 

Re: Jami bug source investigation #4

2020-06-19 Thread Jan Wielkiewicz
Hello,

it turns out there is a directory in libringclient package -
include/libringclient/web-chatview and it contains the missing files,
including the "web.gresource.xml" make and configure complain about.
I need to copy the files from include/libringclient/web-chatview of
libringclient package to source/web/ of jami package.
How do I do this? I tried using modify-phases and just copying the
files, but it fails in the same manner, while in the build directory
obtained using "--keep-failed", there are only links to the files.


Jan Wielkiewicz



Re: Change the '--with-source' flag to use the syntax `--with-source=PACKAGE=SOURCE`

2020-06-19 Thread pkill9
> You can use ‘--with-source=PACKAGE=SOURCE’, too:
> 
>   https://guix.gnu.org/manual/en/html_node/Package-Transformation-Options.html

Ah great, thanks!



Re: (propagated) 'inputs' depends on 'outputs'?

2020-06-19 Thread zimoun
Hi Ludo,

On Fri, 19 Jun 2020 at 22:47, Ludovic Courtès  wrote:
> zimoun  skribis:

>>   ;; For 'git-svn'.
>>   ("subversion" ,subversion "svn")
>>   ("perl-term-readkey" ,perl-term-readkey "svn")

> The ‘TODO’ file, which is really a museum, has this:
>
> ** extend ‘propagated-build-inputs’ with support for multiple outputs
>
> #+BEGIN_SRC scheme
>   (outputs '("out" "include"))
>   (propagated-build-inputs
> `"i1" ,p1 "o1")
> ("i2" ,p2))
>=> "include")
>   ("i3" ,p3)))
> #+END_SRC
>
>
> Is this what you have in mind?

Yes.  That's why it is important to go to museum. ;-)
But if the idea is old and has not happened yet, maybe it is not
worth... For Git, for sure! :-)


All the best,
simon



Re: backtrace when building os

2020-06-19 Thread Ludovic Courtès
Hi,

Jan Synacek  skribis:

> $ cat guix-os.scm
> (use-modules (gnu bootloader)
>(gnu bootloader grub)
>(gnu system file-systems))
>
> (operating-system
>   (host-name "jsynacek-guix-os")
>   (timezone "Europe/Prague")
>   (locale "en_US.utf8")
>   (bootloader
> (bootloader-configuration
>   (bootloader grub-efi-bootloader)
>   (target "/dev/sdx")))
>   (file-systems
> (list (file-system (mount-point "/home")
>(device "/dev/sda33")
>(type "ext4")

This OS lacks a root file system (which is no excuse for throwing a
backtrace, though!).

Ludo’.



Re: Change the '--with-source' flag to use the syntax `--with-source=PACKAGE=SOURCE`

2020-06-19 Thread Ludovic Courtès
Hi,

pkill9  skribis:

> I propose changing the `--with-source` flag to use the syntax of
> similar `--with-...` flags such as `--with-commit`, e.g.
> `--with-source=PACKAGE=SOURCE`, because currently you need to
> change a file to match the form "package-version.extension`, and it
> searches the package graph to find the package to replace the input
> with. It's annoying having to download a source file and change it's
> filename just to have it work with this flag.

You can use ‘--with-source=PACKAGE=SOURCE’, too:

  https://guix.gnu.org/manual/en/html_node/Package-Transformation-Options.html

Ludo’.



Re: (propagated) 'inputs' depends on 'outputs'?

2020-06-19 Thread Ludovic Courtès
Hi,

zimoun  skribis:

> I am not sure to get the point.  From my understanding, it could be
> possible to add information to native-inputs, inputs and
> propagated-inputs, e.g.,
>
>   ;; For 'git-svn'.
>   ("subversion" ,subversion "svn")
>   ("perl-term-readkey" ,perl-term-readkey "svn")
>
> or whatever other mean.  Then it becomes possible to only build e.g.,
> git:svn and/or propagate specific inputs depending on the outputs.

The ‘TODO’ file, which is really a museum, has this:

** extend ‘propagated-build-inputs’ with support for multiple outputs

#+BEGIN_SRC scheme
  (outputs '("out" "include"))
  (propagated-build-inputs
`"i1" ,p1 "o1")
("i2" ,p2))
   => "include")
  ("i3" ,p3)))
#+END_SRC


Is this what you have in mind?

Ludo’.


Re: Latest download from website

2020-06-19 Thread Ludovic Courtès
Hi,

Mathieu Othacehe  skribis:

>> That looks nice to me!  I think it should prominently say that these are
>> “development snapshots” (probably these two words must appear) though,
>> and perhaps contain a link to /download for those looking for releases.
>>
>> Other than that, I’d say go for it!
>
> I took your remark into account and pushed. However, I missed
> something. As the website is built as a derivation, there's no network
> connection and the "latest-builds" request fails.
>
> ERROR: In procedure getaddrinfo:
> In procedure getaddrinfo: Servname not supported for ai_socktype
> building pages in '/tmp/gnu.org/software/guix'...
> Backtrace:
>2 (primitive-load "/gnu/store/k2r4jxc4jww15f05n3kndxrk0a4?")
> In ice-9/eval.scm:
> 619:8  1 (_ #f)
> In guix/build/utils.scm:
> 654:6  0 (invoke _ . _)
>
> Do you see a work-around?

I missed something.  Can’t we have a static page that refers to
ci.guix.gnu.org/…/latest, and Cuirass returns a redirect from /latest to
the actual URL?

Thanks,
Ludo’.



Re: generate commit messages for package updates

2020-06-19 Thread Ludovic Courtès
Hi,

Ricardo Wurmus  skribis:

> Ludovic Courtès  writes:
>
>> Pierre Neidhardt  skribis:
>>
>>> Is it worth including in guix/etc?
>>
>> I think it’d be nice!
>
> I fixed a bug and added etc/committer.scm.in.

Yay!  Consider adding a line in “Contributing” to mention its existence.

Thank you,
Ludo’.



Re: how to "guix pack" a profile?

2020-06-19 Thread Ludovic Courtès
Hi,

elaexuo...@wilsonb.com skribis:

> What Pierre (and others?) initially proposed---what I am re-proposing---is 
> that
> we put a blob of Guile into the profiles that is capable of uniquely and
> completely generating the profile where it resides.

What you propose is what ‘guix system reconfigure’ does: it produces
/run/current-system/{channels,configuration}.scm and you can reuse them
right away.

The different with ‘guix package’ is that ‘guix system’ supports nothing
but a declarative mode, so it’s easy to do the above.

Conversely, profiles can be managed “imperatively”.  Thus, in the
general case, it’s not possible to write a ‘manifest.scm’ file
corresponding to a profile.

I hope this clarifies the situation.

Ludo’.



Re: how to "guix pack" a profile?

2020-06-19 Thread Ludovic Courtès
Hi,

zimoun  skribis:

> Ludo, WDYT about "guix pack -p profile" to generate a (relocatable)
> tarball or Docker image?  I mean if it is not already possible. :-)

That could work, but honestly I’d rather encourage -m.  I’m not
convinced there’s a need for what you suggest here.

Ludo’.



Re: K of N trust in substitutes (related to reproducible builds)

2020-06-19 Thread Ludovic Courtès
Hi,

Christopher Baines  skribis:

> Ludovic Courtès  writes:
>
>>> 3: http://theworld.com/~cme/spki.txt
>>>
>>> Using the above ACL, you'd trust a substitute for a path with a specific
>>> hash if you can find 2 narinfos for that path and hash if they're signed
>>> with keys in that entry. Multiple entries would still be supported, and
>>> you wouldn't need to specify the k-of-n bit if you don't want to.
>>>
>>> I'm not quite sure how expressive this is, or if there are some policies
>>> that would be good to support that either can't be expressed, or can't
>>> be expressed easily. There's probably other approaches, and how to
>>> support trusting substitutes is an important part to consider.
>>
>> I would be tempted to not bake it into /etc/guix/acl.  You would still
>> authorize all the servers, but instead of choosing a policy that accepts
>> anything signed by one of them, as is currently the case, you would
>> choose a policy that only accepts something signed by two of them.
>>
>> The policy would be implemented in (guix scripts substitute).  I haven’t
>> put much thought into it but it could be something akin to
>> ‘lookup-narinfos/diverse’, roughly.
>>
>> Thoughts?
>
> I think that could work, do you have any suggestions on how that "two"
> would be configured? I guess it could be a boolean on/off, but it would
> be probably more extensible to just allow providing a minimum number of
> substitiute servers to agree.

There should be a procedure that takes a list of narinfos signed with an
authorized key and returns a Boolean.

Then there can be a higher-order procedure returning a predicate, like:

  (make-ratio-predicate k n)

The user-chosen predicate could live in /etc/guix/substitute-policy.scm
or similar.

Thanks,
Ludo’.



Re: bug#35728: Tor & IceCat's TorButton shows it's connected but doesn't route the traffic

2020-06-19 Thread sirmacik
Mark H Weaver dixit (2020-06-18, 03:45):

> Hello again.
> 
> In my previous message, I asked:
> > Which version of Debian did you test with, and how did you
> > install the Firefox that you used for testing this?
> 
> Also, what version of Firefox did you test with?

Mark,
That was more than a year ago, I cannot recall. I'm also not using Debian
anymore so I cannot check it. 

Best regards,
Marcin



Re: Release Guix 1.1.1?

2020-06-19 Thread Leo Famulari
On Thu, Jun 18, 2020 at 11:31:07PM +0200, zimoun wrote:
>  - What is the status of "alsa-lib cannot find its plugin"?

The patch works (last time I tested a couple weeks ago) but I would
really like a review of the C-language parts of the patch.


signature.asc
Description: PGP signature


Re: how to "guix pack" a profile?

2020-06-19 Thread zimoun
On Fri, 19 Jun 2020 at 14:34,  wrote:
> > > 1. Composable profiles,
> >
> > This is already possible.
>
> Would you kindly point me to the documentation? I am failing to find it.

  guix install hello -p foo
  guix install emacs -p bar
  eval $(guix package -p foo -p bar --search-paths=exact)

So it composes.  However maybe not what you had in mind. ;-)

> By "composable profiles" what I have in mind is the sum of two existing
> profiles and extending them as necessary
>
> $ guix environment --with-profile saved-profiles/profile-A \
>--with-profile saved-profiles/profile-B \
>

Yes, because "guix environment" cannot support "profile".  As said,
IMHO you raised 2 interesting use cases:

 1. create an environment based on a profile
 2. pack an existing profile

Obviously "a profile" means the composition of profiles if any.


> I agree. If I'm to make any points, I should just submit some concrete 
> patches.

Patches are always welcome. :-)


Cheers,
simon

ps:
Well, maybe we are falling in the "take it to private email" thread pattern. ;-)
https://joeyh.name/blog/entry/thread_patterns/



Re: “Reproducible research articles, from source code to PDF”

2020-06-19 Thread Ludovic Courtès
zimoun  skribis:

> On Fri, 19 Jun 2020 at 14:04, Ludovic Courtès  
> wrote:
>
>> I’d happily defer to Simon; Simon, would you be able to organize this?
>
> Yesterday evening, I have sent an email to guix-hpc with the subject:
> "Let sync Hackathon reproducible and past" for this purpose. :-)
> Is this email lost?  Or somehow blocked?  Let me know?

Oh great, let me check mail…

Ludo’.



Re: how to "guix pack" a profile?

2020-06-19 Thread elaexuotee
> > 1. Composable profiles,
> 
> This is already possible.

Would you kindly point me to the documentation? I am failing to find it.

By "composable profiles" what I have in mind is the sum of two existing
profiles and extending them as necessary

$ guix environment --with-profile saved-profiles/profile-A \
   --with-profile saved-profiles/profile-B \
   

> This snippet of quotation shows that it is not "easy" for the general
> case.  And the transformation using "--load-path" has not been evoked.
> For example:
> 
> --8<---cut here---start->8---
> (define-module (foo)
>  #:use-module (guix packages)
>  #:use-module (guix profiles) ;; imagine it is used
>  #:use-module (gnu packages base))
> 
> (define (crazy-transformation pkg)
>   "Could do really complicated things"
>   (package
> (inherit pkg)
> (name (string-append "ex-" (package-name pkg)
> 
> (define bonjour
>   (package
> (inherit hello)
> (name "bonjour")))
> 
> (define-public crazy-bonjour
>   (crazy-transformation bonjour))
> --8<---cut here---end--->8---
> 
> then "guix install -L /path/to/foo ex-bonjour".

Thank you for the concrete example.

I guess it wasn't clear in my previous emails, but I proposed *simply
copying /path/to/foo* into the generated profile and letting "manifest.scm"
refer to these copies. Is this obviously broken.

> Thank you for the ideas.  Especially the two ones:
> 
>  1. create an environment from a profile
>  2. pack a profile
> 
> Well, I do not know if they will happen but it should be cool to have.

I agree. If I'm to make any points, I should just submit some concrete patches.

Again, thank you for your time and patience.

Cheers,


signature.asc
Description: PGP signature


Re: how to "guix pack" a profile?

2020-06-19 Thread elaexuotee
> I am not sure we are talking about the same channels.scm file.  I guess,
> you have in mind ~/.config/guix/channels.scm but it is not the one of
> interest for reproducing.  You need the real one, i.e., "guix describe
> -f channels".
> 
> AFAIU, manifest.scm+$(guix describe -f channel) is enough to have
> "deterministic profile (re)generation".  If not, it means there is a
> "bug" in Inferiors or I miss something.

Bingo! This is exactly what I was missing. Thank you for sifting this out.

Given the stated "goal of ... [allowing] users to move towards declarative
'manifest.scm' style..." I completely mis-interpreted the sense in which you
were using "channels.scm".


signature.asc
Description: PGP signature


Re: “Reproducible research articles, from source code to PDF”

2020-06-19 Thread zimoun
On Fri, 19 Jun 2020 at 14:04, Ludovic Courtès  wrote:

> I’d happily defer to Simon; Simon, would you be able to organize this?

Yesterday evening, I have sent an email to guix-hpc with the subject:
"Let sync Hackathon reproducible and past" for this purpose. :-)
Is this email lost?  Or somehow blocked?  Let me know?

Well, I do not know if I would be able to organize but I can do my best. :-)

> I guess we don’t need much actually: a date, an IRC channel, and
> perhaps a web page on hpc.guix.info announcing the event so others can
> join.

The email mentioned above asks exactly that: first pick a date.  And
for the sake of archive, I started another thread.

Cheers,
simon



Re: “Reproducible research articles, from source code to PDF”

2020-06-19 Thread Ludovic Courtès
Hi,

Konrad Hinsen  skribis:

> Ludovic Courtès  writes:
>
>>> Maybe we could organize a Virtual Hackathon?  Over 1 day?  Or 2 days?
>>> The power of collective motivation. :-)
>>
>> Sounds like a good idea!  Perhaps a one-day hackathon to begin with?
>> Early July maybe?
>
> Sounds fine. I am not much of a hackathon expert, so I don't propose
> myself for organizing this, but I can make a preselection of suitable
> submissions to the ReScience challenge (no proprietary software etc.)
> with comments about the specific challenges.

I’d happily defer to Simon; Simon, would you be able to organize this?

I guess we don’t need much actually: a date, an IRC channel, and
perhaps a web page on hpc.guix.info announcing the event so others can
join.

Ludo’.



Re: how to "guix pack" a profile?

2020-06-19 Thread zimoun
On Fri, 19 Jun 2020 at 11:52, elaexuo...@wilsonb.com wrote:

> You emphasize that declarative package management with "manifest.scm" is the
> way to go. I agree but wanted to point out that
>
> $ guix package -m manifest.scm
>
> produces a different /gnu/store/-profile, depending on when it's run (or
> more precisely, depending on which channel commits guix resolves for the
> invocation).

Yes, but AFAIU the correct is:

  guix describe -f channels > channel.scm
  guix package -m manifest.scm

then later or elsewhere, reproduce with:

  guix time-machine -C channel.scm -- package -m manifest.scm


> You know that, of course, but the point I try to make is that "manifest.scm"
> and "channels.scm" are *not enough* to uniquely determine a specific
> /gnu/store/-profile. We need to separate out the concepts of 
> "declarative
> profile management" and "deterministic profile regeneration."

Do you have examples?

I am not sure we are talking about the same channels.scm file.  I guess,
you have in mind ~/.config/guix/channels.scm but it is not the one of
interest for reproducing.  You need the real one, i.e., "guix describe
-f channels".

AFAIU, manifest.scm+$(guix describe -f channel) is enough to have
"deterministic profile (re)generation".  If not, it means there is a
"bug" in Inferiors or I miss something.


All the best,
simon



Re: how to "guix pack" a profile?

2020-06-19 Thread elaexuotee
zimoun,

Thank you for you time.

Apparently, I am indeed missing some important conceptual details. I will come
back later when I know more.

Cheers and happy Guixing,

zimoun  wrote:
> Dear,
> 
> On Fri, 19 Jun 2020 at 11:52, elaexuo...@wilsonb.com wrote:
> 
> > What Pierre (and others?) initially proposed---what I am
> > re-proposing---is that we put a blob of Guile into the profiles that
> > is capable of uniquely and completely generating the profile where it
> > resides.
> 
> Others?  For example me.  With Pierre, we spent some time at Guix Days
> to propose a new format.
> 
> > 1. Composable profiles,
> 
> This is already possible.
> 
> > 2. Sharing "light" profiles buy sending only the "recipe.scm" instead
> > of an entire container.
> 
> I am not sure to get what is a "light" profile but from my understanding
> what you want here already exist and it is manifest.scm+channel.scm.
> 
> > 3. guix archive --manifest
> > 4. guix profile --manifest-from-recipe /recipe.scm
> >
> > The last one there is intended to be the tool for "migrate from
> > imperative to declarative" user profile management, starting from a
> > given profile.
> 
> See below.
> 
> >> What you describe here is exactly what Pierre and other have
> >> proposed.  And the work-to-do is to prototype the format of what you
> >> called "recipe.scm", which means equivalently in the previous emails
> >> change the format of /manifest.
> >
> > I agree. However, in previous emails I have tried to make a rebuttal
> > to Ludo's argument than the best we can do is *approximate* a
> > manifest.scm.
> >
> > See https://lists.gnu.org/archive/html/guix-devel/2020-02/msg00098.html:
> 
> I have the impression that the discussion is going nowhere.
> 
> Make what you called "recipe.scm" or modify " become an acceptable "--manifest" is doable.  Note that the idea is not
> new either.  As I said, all the technical material is here.  But Ludo
> and others (me) are not convinced that it will pay off because the
> general case is hard.  Well, to be concrete, there are 2 possible next
> actions:
> 
>  a) prototype the new format and implement it
>  b) make an approximation exposed with "--export"
> 
> Frankly, I doubt that a) happens because no one will do the tough work.
> Therefore, b) is pragmatic.
> 
> 
>  (Ludo)
>  As far as faithfulness is concerned, we should also keep in mind
>  that we don’t always have all the information needed to reconstruct
>  what’s in a profile.  For example, we lack information about the
>  package transformation options that were used (if any),
> >>>
> >>> (Pierre)
> >>> Like `--with-input'?  I didn't think of this.  Can't we extend the
> >>> format then to include all transformation options, with future-proof
> >>> provisions?
> >>
> >> (Ludo)
> >> We couldstore package transformations as manifest entry properties.
> >>
> >> However, that’ll be an approximation: the exact implementation of
> >> ‘--with-input’, for instance, can vary over time.
> 
> This snippet of quotation shows that it is not "easy" for the general
> case.  And the transformation using "--load-path" has not been evoked.
> For example:
> 
> --8<---cut here---start->8---
> (define-module (foo)
>  #:use-module (guix packages)
>  #:use-module (guix profiles) ;; imagine it is used
>  #:use-module (gnu packages base))
> 
> (define (crazy-transformation pkg)
>   "Could do really complicated things"
>   (package
> (inherit pkg)
> (name (string-append "ex-" (package-name pkg)
> 
> (define bonjour
>   (package
> (inherit hello)
> (name "bonjour")))
> 
> (define-public crazy-bonjour
>   (crazy-transformation bonjour))
> --8<---cut here---end--->8---
> 
> then "guix install -L /path/to/foo ex-bonjour".
> 
> 
> > However, with `time-machine' and a given `guix environment' or `guix
> > profile' invocation, we are able to deterministically resolve a
> > /gnu/store/-profile, no? Better yet, this is in a future-proof
> > way, no?  If that is so, then why not canonify this profile recipe in
> > guile code instead of what is needed now: guile + bash? What am I
> > missing here?
> 
> You are missing the difficulty to make it concretely, I guess. :-)
> 
> 
> > Just to be clear, I would be more than thrilled with a --from-profile
> > option to `guix pack'. However, I am trying to make a case that "first
> > class profiles" is both feasible and may pay back more in maintenance
> > cost than it consumes.
> 
> Thank you for the ideas.  Especially the two ones:
> 
>  1. create an environment from a profile
>  2. pack a profile
> 
> Well, I do not know if they will happen but it should be cool to have.
> 
> 
> I am going to move on since we already raised all the points, I guess. :-)
> 
> 
> All the best,
> simon




signature.asc
Description: PGP signature


Re: how to "guix pack" a profile?

2020-06-19 Thread zimoun
Dear,

On Fri, 19 Jun 2020 at 11:52, elaexuo...@wilsonb.com wrote:

> What Pierre (and others?) initially proposed---what I am
> re-proposing---is that we put a blob of Guile into the profiles that
> is capable of uniquely and completely generating the profile where it
> resides.

Others?  For example me.  With Pierre, we spent some time at Guix Days
to propose a new format.

> 1. Composable profiles,

This is already possible.

> 2. Sharing "light" profiles buy sending only the "recipe.scm" instead
> of an entire container.

I am not sure to get what is a "light" profile but from my understanding
what you want here already exist and it is manifest.scm+channel.scm.

> 3. guix archive --manifest
> 4. guix profile --manifest-from-recipe /recipe.scm
>
> The last one there is intended to be the tool for "migrate from
> imperative to declarative" user profile management, starting from a
> given profile.

See below.

>> What you describe here is exactly what Pierre and other have
>> proposed.  And the work-to-do is to prototype the format of what you
>> called "recipe.scm", which means equivalently in the previous emails
>> change the format of /manifest.
>
> I agree. However, in previous emails I have tried to make a rebuttal
> to Ludo's argument than the best we can do is *approximate* a
> manifest.scm.
>
> See https://lists.gnu.org/archive/html/guix-devel/2020-02/msg00098.html:

I have the impression that the discussion is going nowhere.

Make what you called "recipe.scm" or modify ">>> (Ludo)
 As far as faithfulness is concerned, we should also keep in mind
 that we don’t always have all the information needed to reconstruct
 what’s in a profile.  For example, we lack information about the
 package transformation options that were used (if any),
>>>
>>> (Pierre)
>>> Like `--with-input'?  I didn't think of this.  Can't we extend the
>>> format then to include all transformation options, with future-proof
>>> provisions?
>>
>> (Ludo)
>> We couldstore package transformations as manifest entry properties.
>>
>> However, that’ll be an approximation: the exact implementation of
>> ‘--with-input’, for instance, can vary over time.

This snippet of quotation shows that it is not "easy" for the general
case.  And the transformation using "--load-path" has not been evoked.
For example:

--8<---cut here---start->8---
(define-module (foo)
 #:use-module (guix packages)
 #:use-module (guix profiles) ;; imagine it is used
 #:use-module (gnu packages base))

(define (crazy-transformation pkg)
  "Could do really complicated things"
  (package
(inherit pkg)
(name (string-append "ex-" (package-name pkg)

(define bonjour
  (package
(inherit hello)
(name "bonjour")))

(define-public crazy-bonjour
  (crazy-transformation bonjour))
--8<---cut here---end--->8---

then "guix install -L /path/to/foo ex-bonjour".


> However, with `time-machine' and a given `guix environment' or `guix
> profile' invocation, we are able to deterministically resolve a
> /gnu/store/-profile, no? Better yet, this is in a future-proof
> way, no?  If that is so, then why not canonify this profile recipe in
> guile code instead of what is needed now: guile + bash? What am I
> missing here?

You are missing the difficulty to make it concretely, I guess. :-)


> Just to be clear, I would be more than thrilled with a --from-profile
> option to `guix pack'. However, I am trying to make a case that "first
> class profiles" is both feasible and may pay back more in maintenance
> cost than it consumes.

Thank you for the ideas.  Especially the two ones:

 1. create an environment from a profile
 2. pack a profile

Well, I do not know if they will happen but it should be cool to have.


I am going to move on since we already raised all the points, I guess. :-)


All the best,
simon