unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* (unknown), 
  2014-01-23 13:30 [PATCH] Doc: Introduction: rewrite for style and clarity Ludovic Courtès
@ 2014-01-23 18:00 ` Alex Sassmannshausen
  0 siblings, 0 replies; 36+ messages in thread
From: Alex Sassmannshausen @ 2014-01-23 18:00 UTC (permalink / raw)
  To: guix-devel

Hello,

Please find, following on from this, a further revision of the patch
for dmd's manual, taking into account Ludovic's feedback.

Best wishes,

Alex

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

* (unknown), 
  2014-01-25  7:00 [PATCH 2/2] gnu: fltk: New module John Darrington
@ 2014-01-25  8:27 ` John Darrington
  0 siblings, 0 replies; 36+ messages in thread
From: John Darrington @ 2014-01-25  8:27 UTC (permalink / raw)
  To: guix-devel

Sorry!  Corrected patch herewith.

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

* (unknown), 
  2014-01-26  7:38 [PATCH 3/3] gnu: Add octave and dependencies John Darrington
@ 2014-01-26  9:09 ` John Darrington
  0 siblings, 0 replies; 36+ messages in thread
From: John Darrington @ 2014-01-26  9:09 UTC (permalink / raw)
  To: guix-devel

... In the meantime, here is a patch for gnuplot (without octave).
This one includes some additional inputs not present in the previous
patch, to provide some features.

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

* (unknown), 
@ 2014-02-04 15:12 John Darrington
  0 siblings, 0 replies; 36+ messages in thread
From: John Darrington @ 2014-02-04 15:12 UTC (permalink / raw)
  To: guix-devel

In my opinion the changelog conventions are achronistic, unintuitive,
and bring benefit neither to developers nor users.

However thanks for showing me the correct format.

Updated patches follow

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

* (unknown), 
  2014-02-11 22:17 Gnunet-0.10.0 recipe Sree Harsha Totakura
@ 2014-02-12 15:15 ` Sree Harsha Totakura
  0 siblings, 0 replies; 36+ messages in thread
From: Sree Harsha Totakura @ 2014-02-12 15:15 UTC (permalink / raw)
  To: guix-devel


The reason why the transport tests are failing is that gnurl is not being
built with HTTPS protocol support and these tests expect gnurl to have those.
The HTTPS support was not built into gnurl because pkg-config was not
available as native inputs during configure time.

This patch fixes the above problem and also appends an existing patch to fix
testcases to run them on local interfaces.

-
Sree

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

* (unknown)
@ 2014-12-03 18:02 Tomas Cech
  0 siblings, 0 replies; 36+ messages in thread
From: Tomas Cech @ 2014-12-03 18:02 UTC (permalink / raw)
  To: guix-devel

Hello,

I'd like to share with you some experiences with using Guix.



I tried to install Guix as alternative OS to my Gentoo and openSUSE
installations to give a try. I tried unsupported scenario -
installation on LVM volume and separate /boot partition until I was
told it is unsupported. Separate boot wasn't hard as I had to just
copy generated files so they are loaded. But eventually I gave up
preparing it manually or automating it and I had rather put another
Grub in the same partition and set up chainloading.

I met then two problems:

1] if you set device to partition (and not to disk) in your grub-configuration like this:

 (bootloader (grub-configuration
               (device "/dev/sda4")))

`guix system init' will fail on grub installation. By default Grub
tries to fit in the beginning of partition and fails if it can't fit
in. I asked about this behaviour on Grub mailing list and it seems
that there are two options:

  a] add `--force' to command line and use block list for keeping information about position of Grub's core.img
  b] use filesystem which allows embedding - BtrFS or ZFS

I verified both options (a] and then b] with BtrFS) and it no longer fails.

But,
ad a] - I don't feel safe passing `--force' to grub-install every
time. So if installation fails on this point and you'd like to use
your FS anyway, you can pass `--no-grub' to `guix system init' and
then rung grub-install manually.

ad b] - I don't feel safe using still experimental BtrFS.


2] current Grub version in Guix during boots generated this error:

error: symbol 'grub_term_highlight_color' not found

and started rescue shell.
It seems to be a bit mystic bug:
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1289977

I used my Gentoo's version of Grub to fix it and then it worked.



I'm also interested in running chroot in Guix. This is something I
like about all Linux distribution I use - I can run Linux and at the
same time I prepare another Linux root filesystem for use. It seems
that chrooting into Guix may be tricky.

I prepared this script to be placed somewhere into Guix:

----------%<---------
#!/run/current-system/profile/bin/bash

export LIBRARY_PATH=LIBRARY_PATH=/root/.guix-profile/lib
export CPATH=/root/.guix-profile/include
export PATH=/run/setuid-programs:/run/current-system/profile/sbin:/root/.guix-profile/bin:/run/current-system/profile/bin
export INFOPATH=/root/.guix-profile/share/info:/run/current-system/profile/share/info

exec bash -i
----------%<--------

for i in dev proc sys; do mount -R /$i /guix_mountpoint/$i; done
chroot /guix_mountpoint/ /helper_script.sh

Ludovic said that `guix packages --search-paths' should generate similar path configuration so it may be the right way, but it didn't work for me.


And last thing I wanted to mention, you have kind community around Guix and Guile. It's really motivating!

Best regards,

Tomas Cech
Sleep_Walker

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

* (unknown), 
@ 2015-03-25 22:49 Tomáš Čech
  0 siblings, 0 replies; 36+ messages in thread
From: Tomáš Čech @ 2015-03-25 22:49 UTC (permalink / raw)
  To: guix-devel

I haven't seen any further reaction for 12 days so I hope you don't mind that
I resend it again.

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

* (unknown), 
  2015-07-08 14:30 [PATCH 2/2] gnu: Update pumpa to 0.9.1 Mathieu Lirzin
@ 2015-07-08 14:39 ` Claes Wallin (韋嘉誠)
  0 siblings, 0 replies; 36+ messages in thread
From: Claes Wallin (韋嘉誠) @ 2015-07-08 14:39 UTC (permalink / raw)
  To: guix-devel



Ok! Sending the merged patch. Sorry for the patch spam, still figuring out the git-send-mail way of working.

-- 
   /c

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

* (unknown)
@ 2015-07-13 13:01 Pjotr Prins
  0 siblings, 0 replies; 36+ messages in thread
From: Pjotr Prins @ 2015-07-13 13:01 UTC (permalink / raw)
  To: guix-devel

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



[-- Attachment #2: 0001-gnu-Add-ruby-nokogiri.patch --]
[-- Type: text/x-diff, Size: 2711 bytes --]

From e2fd935a659cacde5cb74bef19406f056a262f79 Mon Sep 17 00:00:00 2001
From: pjotrp <pjotr.public01@thebird.nl>
Date: Mon, 13 Jul 2015 14:56:40 +0200
Subject: [PATCH] gnu: Add ruby-nokogiri

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

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index bb7d865..85cb0d4 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -34,6 +34,7 @@
   #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
+  #:use-module (gnu packages xml)
   #:use-module (guix build-system ruby))
 
 (define-public ruby
@@ -519,6 +520,45 @@ using Net::HTTP, supporting reconnection and retry according to RFC 2616.")
     (home-page "https://github.com/drbrain/net-http-persistent")
     (license license:expat)))
 
+(define-public ruby-nokogiri
+  (package
+    (name "ruby-nokogiri")
+    (version "1.6.6.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+		    "https://github.com/sparklemotion/nokogiri/archive/v"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+	      (patches (map search-patch
+                            (list "ruby-nokogiri-Rakefile.patch")))
+              (sha256
+               (base32
+                "1dpmmxr8azbyvhhmw9hpyk3dds577vsd6c312gh2s7kgjd98nd9j"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(
+       #:tests? #f  ;; test fails because nokogiri can only test with a built extension (now part of install phase)
+       #:gem-flags (list "--use-system-libraries" (string-append "--with-xml2-include=" (assoc-ref %build-inputs "libxml2") "/include/libxml2" ))
+       #:phases (alist-replace
+                 'build
+                 (lambda _
+		   ;; calling rake gem 2x begets a gem
+		   (system* "rake" "gem")
+		   (zero? (system* "rake" "gem")))
+		  %standard-phases)))
+    (native-inputs
+     `(("ruby-hoe" ,ruby-hoe)
+       ("ruby-rake-compiler", ruby-rake-compiler)))
+    (inputs
+     `(("zlib" ,zlib)
+       ("libxml2" ,libxml2)
+       ("libxslt" ,libxslt)))
+    (synopsis "Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser")
+    (description "Nokogiri parses and searches XML/HTML very quickly, and also has correctly implemented CSS3 selector support as well as XPath 1.0 support.")
+    (home-page "http://www.nokogiri.org/")
+    (license license:x11)))
+
 (define-public ruby-minitest
   (package
     (name "ruby-minitest")
-- 
1.7.10.4


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

* (unknown)
@ 2015-09-15 14:35 Pjotr Prins
  0 siblings, 0 replies; 36+ messages in thread
From: Pjotr Prins @ 2015-09-15 14:35 UTC (permalink / raw)
  To: guix-devel

From f8493e0e3e4520bb4de4fd20e93d325444332dc3 Mon Sep 17 00:00:00 2001
Date: Tue, 15 Sep 2015 14:21:17 +0000
Subject: [PATCH] gnu: Add ruby-gherkin3
To: guix-devel@gnu.org
From: pjotr.public12@thebird.nl

* gnu/packages/ruby.scm (ruby-gherkin3): New variable.
---
 gnu/packages/ruby.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index ee0acc8..4756cd4 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1124,3 +1124,28 @@ it unifies the API for web servers, web frameworks, and software in between
 into a single method call.")
     (home-page "http://rack.github.io/")
     (license license:expat)))
+
+(define-public ruby-gherkin3
+  (package
+    (name "ruby-gherkin3")
+    (version "3.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (rubygems-uri "gherkin3" version))
+        (sha256
+          (base32
+            "0xsyxhqa1gwcxzvsdy4didaiq5vam8ma3fbwbw2w60via4k6r1z9"))))
+    (build-system ruby-build-system)
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-rspec" ,ruby-rspec)))
+    (arguments
+     '(#:tests? #f)) ; needs simplecov, among others
+    (synopsis "Gherkin parser")
+    (description "Gherkin 3 is a parser and compiler for the Gherkin
+language.  It is intended to replace Gherkin 2 and be used by all
+Cucumber implementations to parse .feature files.")
+    (home-page
+      "https://github.com/cucumber/gherkin3")
+    (license expat)))
-- 
2.4.3

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

* (unknown), 
  2016-05-30 19:24 [PATCH] gnu: Add py3status Tomáš Čech
@ 2016-05-30 20:01 ` Tomáš Čech
  0 siblings, 0 replies; 36+ messages in thread
From: Tomáš Čech @ 2016-05-30 20:01 UTC (permalink / raw)
  To: guix-devel


OK, I got too excited with sending patch, I'm just glad I get in touch once
again. And besides, that GPG signing of commits is new to me.

S_W

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

* (unknown), 
@ 2016-06-08 12:55 Ben Woodcroft
  0 siblings, 0 replies; 36+ messages in thread
From: Ben Woodcroft @ 2016-06-08 12:55 UTC (permalink / raw)
  To: guix-devel

Thanks in advance.
ben

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

* (unknown), 
@ 2016-06-30  0:27 ng0
  0 siblings, 0 replies; 36+ messages in thread
From: ng0 @ 2016-06-30  0:27 UTC (permalink / raw)
  To: guix-devel

Just a heads up for patchworks:

You currently have no option to change the firstname + lastname
you select at signing up (and not an efficient way to see if this
is a requirement (which it should not be in my opinion)).

Having now a random name associated on the patchworks list with
my submissions is not too weird for me, but it might be
irritating for other people who are not expecting this
"feature".

-- 
♥Ⓐ  ng0
For non-prism friendly talk find me on
psyced.org / loupsycedyglgamf.onion

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

* (unknown)
@ 2016-07-20  3:46 Pjotr Prins
  0 siblings, 0 replies; 36+ messages in thread
From: Pjotr Prins @ 2016-07-20  3:46 UTC (permalink / raw)
  To: guix-devel

From 5fd8f64794b27f59f6688177a7a9e532b5d57f01 Mon Sep 17 00:00:00 2001
Date: Tue, 19 Jul 2016 11:13:27 +0000
Subject: [PATCH] gnu: Add elixir.
To: guix-devel@gnu.org
From: Pjotr Prins <pjotr.public12@thebird.nl>

* gnu/packages/elixir.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
 gnu/local.mk                                       |   1 +
 gnu/packages/elixir.scm                            |  91 ++++++++++++
 .../patches/elixir-disable-failing-tests.patch     | 108 +++++++++++++++
 .../patches/elixir-disable-mix-tests.patch         | 152 +++++++++++++++++++++
 gnu/packages/ruby.scm                              |   1 -
 5 files changed, 352 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/elixir.scm
 create mode 100644 gnu/packages/patches/elixir-disable-failing-tests.patch
 create mode 100644 gnu/packages/patches/elixir-disable-mix-tests.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 536ecef..7a9a820 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -104,6 +104,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/ebook.scm			\
   %D%/packages/ed.scm				\
   %D%/packages/elf.scm				\
+  %D%/packages/elixir.scm			\
   %D%/packages/emacs.scm			\
   %D%/packages/enchant.scm			\
   %D%/packages/engineering.scm			\
diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm
new file mode 100644
index 0000000..c1bbab3
--- /dev/null
+++ b/gnu/packages/elixir.scm
@@ -0,0 +1,91 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016 Pjotr Prins <pjotr.public12@thebird.nl>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages elixir)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module (guix packages)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages base)  ; for patch
+  #:use-module (gnu packages erlang)
+  #:use-module (gnu packages version-control))
+
+(define-public elixir
+  (package
+   (name "elixir")
+   (version "1.3.2")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append
+                  "https://github.com/elixir-lang/elixir/archive/v"
+                  version ".tar.gz"))
+            (file-name (string-append name "-" version ".tar.gz"))
+            (sha256
+             (base32
+              "0jsc6kl7f74yszcypdv3w3vhyc9qfqav8nwc41in082m0vpfy95y"))))
+   (build-system gnu-build-system)
+   (native-inputs
+    `(("patch" ,patch)
+      ("patch/elixir-disable-failing-tests"
+       ,(search-patch "elixir-disable-failing-tests.patch"))
+      ("patch/elixir-disable-mix-tests"
+       ,(search-patch "elixir-disable-mix-tests.patch"))))
+   (inputs
+    `(("erlang" ,erlang)
+      ("git" ,git)))
+   (arguments
+    `(#:phases (modify-phases %standard-phases
+      (add-after 'unpack 'replace-git-path
+        (lambda _
+          (substitute* '("lib/elixir/lib/system.ex"
+                         "lib/mix/lib/mix/scm/git.ex")
+                       (("cmd\\('git") (string-append "cmd('" (which "git")))
+                       (("cmd\\(\"git") (string-append "cmd(\"" (which "git"))))
+          #t))
+      (delete 'configure)
+      (add-before 'build 'rewrite-path
+        (lambda* (#:key inputs #:allow-other-keys)
+                 (substitute* "bin/elixir"
+                              (("ERL_EXEC=\"erl\"")
+                               (string-append "ERL_EXEC=" (which "erl"))))))
+      (add-after 'build 'disable-breaking-elixir-tests
+        ;; when patching tests as part of source the build breaks, so we do
+        ;; it after the build phase
+        (lambda* (#:key inputs #:allow-other-keys)
+          (and
+           (zero? (system* "patch" "--force" "-p1" "-i"
+                           (assoc-ref inputs "patch/elixir-disable-failing-tests")))
+           (zero? (system* "patch" "--force" "-p1" "-i"
+                           (assoc-ref inputs "patch/elixir-disable-mix-tests")))
+           ;; Tests currently fail in these two files:
+           (delete-file "./lib/mix/test/mix/tasks/deps.git_test.exs")
+           (delete-file "./lib/mix/test/mix/shell_test.exs"))))
+      (replace 'check
+               (lambda _
+                 (zero? (system* "make" "test"))))) ;; 3124 tests, 0 failures, 11 skipped
+      #:make-flags (list (string-append "PREFIX=" %output))))
+   (home-page "http://elixir-lang.org/")
+   (synopsis "The Elixir programming language")
+   (description "Elixir is a dynamic, functional language used to
+build scalable and maintainable applications.  Elixir leverages the
+Erlang VM, known for running low-latency, distributed and
+fault-tolerant systems, while also being successfully used in web
+development and the embedded software domain.")
+   (license license:asl2.0)))
diff --git a/gnu/packages/patches/elixir-disable-failing-tests.patch b/gnu/packages/patches/elixir-disable-failing-tests.patch
new file mode 100644
index 0000000..802cb1e
--- /dev/null
+++ b/gnu/packages/patches/elixir-disable-failing-tests.patch
@@ -0,0 +1,108 @@
+diff --git a/lib/elixir/test/elixir/kernel/cli_test.exs b/lib/elixir/test/elixir/kernel/cli_test.exs
+index 3ffd56c..1232d19 100644
+--- a/lib/elixir/test/elixir/kernel/cli_test.exs
++++ b/lib/elixir/test/elixir/kernel/cli_test.exs
+@@ -39,6 +39,7 @@ end
+ defmodule Kernel.CLI.OptionParsingTest do
+   use ExUnit.Case, async: true
+ 
++  @tag :skip
+   test "properly parses paths" do
+     root = fixture_path("../../..") |> to_charlist
+     list = elixir('-pa "#{root}/*" -pz "#{root}/lib/*" -e "IO.inspect(:code.get_path, limit: :infinity)"')
+@@ -57,6 +58,7 @@ end
+ defmodule Kernel.CLI.AtExitTest do
+   use ExUnit.Case, async: true
+ 
++  @tag :skip
+   test "invokes at_exit callbacks" do
+     assert elixir(fixture_path("at_exit.exs") |> to_charlist) ==
+            'goodbye cruel world with status 1\n'
+@@ -66,6 +68,7 @@ end
+ defmodule Kernel.CLI.ErrorTest do
+   use ExUnit.Case, async: true
+ 
++  @tag :skip
+   test "properly format errors" do
+     assert :string.str('** (throw) 1', elixir('-e "throw 1"')) == 0
+     assert :string.str('** (ErlangError) erlang error: 1', elixir('-e "error 1"')) == 0
+@@ -86,6 +89,7 @@ defmodule Kernel.CLI.CompileTest do
+     {:ok, [tmp_dir_path: tmp_dir_path, beam_file_path: beam_file_path, fixture: fixture]}
+   end
+ 
++  @tag :skip
+   test "compiles code", context do
+     assert elixirc('#{context[:fixture]} -o #{context[:tmp_dir_path]}') == ''
+     assert File.regular?(context[:beam_file_path])
+@@ -96,6 +100,7 @@ defmodule Kernel.CLI.CompileTest do
+     Code.delete_path context[:tmp_dir_path]
+   end
+ 
++  @tag :skip
+   test "fails on missing patterns", context do
+     output = elixirc('#{context[:fixture]} non_existing.ex -o #{context[:tmp_dir_path]}')
+     assert :string.str(output, 'non_existing.ex') > 0, "expected non_existing.ex to be mentioned"
+@@ -103,6 +108,7 @@ defmodule Kernel.CLI.CompileTest do
+     refute File.exists?(context[:beam_file_path]), "expected the sample to not be compiled"
+   end
+ 
++  @tag :skip
+   test "fails on missing write access to .beam file", context do
+     compilation_args = '#{context[:fixture]} -o #{context[:tmp_dir_path]}'
+ 
+diff --git a/lib/elixir/test/elixir/kernel/dialyzer_test.exs b/lib/elixir/test/elixir/kernel/dialyzer_test.exs
+index 801d852..40fc5bc 100644
+--- a/lib/elixir/test/elixir/kernel/dialyzer_test.exs
++++ b/lib/elixir/test/elixir/kernel/dialyzer_test.exs
+@@ -60,16 +60,19 @@ defmodule Kernel.DialyzerTest do
+     assert_dialyze_no_warnings! context
+   end
+ 
++  @tag :skip
+   test "no warnings on rewrites", context do
+     copy_beam! context, Dialyzer.Rewrite
+     assert_dialyze_no_warnings! context
+   end
+ 
++  @tag :skip
+   test "no warnings on raise", context do
+     copy_beam! context, Dialyzer.Raise
+     assert_dialyze_no_warnings! context
+   end
+ 
++  @tag :skip
+   test "no warnings on macrocallback", context do
+     copy_beam! context, Dialyzer.Macrocallback
+     copy_beam! context, Dialyzer.Macrocallback.Impl
+diff --git a/lib/elixir/test/elixir/node_test.exs b/lib/elixir/test/elixir/node_test.exs
+index d1f1fe6..5c2d469 100644
+--- a/lib/elixir/test/elixir/node_test.exs
++++ b/lib/elixir/test/elixir/node_test.exs
+@@ -6,8 +6,10 @@ defmodule NodeTest do
+   doctest Node
+ 
+   test "start/3 and stop/0" do
+-    assert Node.stop == {:error, :not_found}
+-    assert {:ok, _} = Node.start(:hello, :shortnames, 15000)
+-    assert Node.stop() == :ok
++    IO.puts "Skipping test because GNU Guix does not allow the HOME environment variable."
++
++    # assert Node.stop == {:error, :not_found}
++    # assert {:ok, _} = Node.start(:hello, :shortnames, 15000)
++    # assert Node.stop() == :ok
+   end
+ end
+diff --git a/lib/elixir/test/elixir/system_test.exs b/lib/elixir/test/elixir/system_test.exs
+index aafa559..0f9c178 100644
+--- a/lib/elixir/test/elixir/system_test.exs
++++ b/lib/elixir/test/elixir/system_test.exs
+@@ -53,7 +53,8 @@ defmodule SystemTest do
+     assert System.endianness in [:little, :big]
+     assert System.endianness == System.compiled_endianness
+   end
+-
++ 
++  @tag :skip
+   test "argv/0" do
+     list = elixir('-e "IO.inspect System.argv" -- -o opt arg1 arg2 --long-opt 10')
+     {args, _} = Code.eval_string list, []
diff --git a/gnu/packages/patches/elixir-disable-mix-tests.patch b/gnu/packages/patches/elixir-disable-mix-tests.patch
new file mode 100644
index 0000000..649a916
--- /dev/null
+++ b/gnu/packages/patches/elixir-disable-mix-tests.patch
@@ -0,0 +1,152 @@
+diff --git a/lib/mix/test/mix/dep_test.exs b/lib/mix/test/mix/dep_test.exs
+index fff3351..d6ed1b3 100644
+--- a/lib/mix/test/mix/dep_test.exs
++++ b/lib/mix/test/mix/dep_test.exs
+@@ -244,6 +244,7 @@ defmodule Mix.DepTest do
+     end
+   end
+ 
++  @tag :skip
+   test "remote converger" do
+     deps = [{:deps_repo, "0.1.0", path: "custom/deps_repo"},
+             {:git_repo, "0.2.0", git: MixTest.Case.fixture_path("git_repo")}]
+@@ -301,6 +302,7 @@ defmodule Mix.DepTest do
+     end
+   end
+ 
++  @tag :skip
+   test "remote converger is not invoked if deps diverge" do
+     deps = [{:deps_repo, "0.1.0", path: "custom/deps_repo"},
+             {:git_repo, "0.2.0", git: MixTest.Case.fixture_path("git_repo"), only: :test}]
+diff --git a/lib/mix/test/mix/rebar_test.exs b/lib/mix/test/mix/rebar_test.exs
+index d2dd098..12cef15 100644
+--- a/lib/mix/test/mix/rebar_test.exs
++++ b/lib/mix/test/mix/rebar_test.exs
+@@ -120,6 +120,7 @@ defmodule Mix.RebarTest do
+     assert Enum.all?(deps, &(&1.manager == :rebar3))
+   end
+ 
++  @tag :skip
+   test "Rebar overrides" do
+     Mix.Project.push(RebarOverrideAsDep)
+ 
+@@ -150,6 +151,7 @@ defmodule Mix.RebarTest do
+     end
+   end
+ 
++  @tag :skip
+   test "get and compile dependencies for Rebar" do
+     Mix.Project.push(RebarAsDep)
+ 
+@@ -180,6 +182,7 @@ defmodule Mix.RebarTest do
+     end
+   end
+ 
++  @tag :skip
+   test "get and compile dependencies for rebar3" do
+     Mix.Project.push(Rebar3AsDep)
+ 
+diff --git a/lib/mix/test/mix/shell/io_test.exs b/lib/mix/test/mix/shell/io_test.exs
+index 9bfb6b4..d982ef3 100644
+--- a/lib/mix/test/mix/shell/io_test.exs
++++ b/lib/mix/test/mix/shell/io_test.exs
+@@ -29,6 +29,7 @@ defmodule Mix.Shell.IOTest do
+     assert capture_io("", fn -> refute yes?("Ok?") end)
+   end
+ 
++  @tag :skip
+   test "runs a given command" do
+     assert capture_io("", fn -> assert cmd("echo hello") == 0 end) == "hello\n"
+ 
+diff --git a/lib/mix/test/mix/shell/quiet_test.exs b/lib/mix/test/mix/shell/quiet_test.exs
+index 626429b..99fab35 100644
+--- a/lib/mix/test/mix/shell/quiet_test.exs
++++ b/lib/mix/test/mix/shell/quiet_test.exs
+@@ -29,6 +29,7 @@ defmodule Mix.Shell.QuietTest do
+     assert capture_io("", fn -> refute yes?("Ok?") end)
+   end
+ 
++  @tag :skip
+   test "runs a given command" do
+     assert capture_io("", fn -> assert cmd("echo hello") == 0 end) == ""
+ 
+diff --git a/lib/mix/test/mix/tasks/cmd_test.exs b/lib/mix/test/mix/tasks/cmd_test.exs
+index db4bf06..4d441f7 100644
+--- a/lib/mix/test/mix/tasks/cmd_test.exs
++++ b/lib/mix/test/mix/tasks/cmd_test.exs
+@@ -3,6 +3,7 @@ Code.require_file "../../test_helper.exs", __DIR__
+ defmodule Mix.Tasks.CmdTest do
+   use MixTest.Case
+ 
++  @tag :skip
+   test "runs the command for each app" do
+     in_fixture "umbrella_dep/deps/umbrella", fn ->
+       Mix.Project.in_project(:umbrella, ".", fn _ ->
+diff --git a/lib/mix/test/mix/tasks/deps.tree_test.exs b/lib/mix/test/mix/tasks/deps.tree_test.exs
+index 4f09ff3..c371997 100644
+--- a/lib/mix/test/mix/tasks/deps.tree_test.exs
++++ b/lib/mix/test/mix/tasks/deps.tree_test.exs
+@@ -29,6 +29,7 @@ defmodule Mix.Tasks.Deps.TreeTest do
+     end
+   end
+ 
++  @tag :skip
+   test "shows the dependency tree", context do
+     Mix.Project.push ConvergedDepsApp
+ 
+@@ -109,6 +110,7 @@ defmodule Mix.Tasks.Deps.TreeTest do
+     end
+   end
+ 
++  @tag :skip
+   test "shows the dependency tree in DOT graph format", context do
+     Mix.Project.push ConvergedDepsApp
+ 
+diff --git a/lib/mix/test/mix/tasks/deps_test.exs b/lib/mix/test/mix/tasks/deps_test.exs
+index b061777..cc45cf8 100644
+--- a/lib/mix/test/mix/tasks/deps_test.exs
++++ b/lib/mix/test/mix/tasks/deps_test.exs
+@@ -409,6 +409,7 @@ defmodule Mix.Tasks.DepsTest do
+     end
+   end
+ 
++  @tag :skip
+   test "fails on diverged dependencies by requirement" do
+     Mix.Project.push ConvergedDepsApp
+ 
+@@ -440,6 +441,7 @@ defmodule Mix.Tasks.DepsTest do
+     end
+   end
+ 
++  @tag :skip
+   test "fails on diverged dependencies even when optional" do
+     Mix.Project.push ConvergedDepsApp
+ 
+@@ -469,6 +471,7 @@ defmodule Mix.Tasks.DepsTest do
+     end
+   end
+ 
++  @tag :skip
+   test "works with converged dependencies" do
+     Mix.Project.push ConvergedDepsApp
+ 
+@@ -491,6 +494,7 @@ defmodule Mix.Tasks.DepsTest do
+     purge [GitRepo, GitRepo.Mixfile]
+   end
+ 
++  @tag :skip
+   test "works with overridden dependencies" do
+     Mix.Project.push OverriddenDepsApp
+ 
+diff --git a/lib/mix/test/mix/umbrella_test.exs b/lib/mix/test/mix/umbrella_test.exs
+index 69f9428..406668a 100644
+--- a/lib/mix/test/mix/umbrella_test.exs
++++ b/lib/mix/test/mix/umbrella_test.exs
+@@ -98,6 +98,7 @@ defmodule Mix.UmbrellaTest do
+     end
+   end
+ 
++  @tag :skip
+   test "loads umbrella child dependencies in all environments" do
+     in_fixture "umbrella_dep/deps/umbrella", fn ->
+       Mix.Project.in_project :umbrella, ".", fn _ ->
-- 
2.6.3

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

* (unknown)
@ 2016-07-21  1:39 Unknown, Pjotr Prins
  0 siblings, 0 replies; 36+ messages in thread
From: Unknown, Pjotr Prins @ 2016-07-21  1:39 UTC (permalink / raw)
  To: guix-devel

From 5fd8f64794b27f59f6688177a7a9e532b5d57f01 Mon Sep 17 00:00:00 2001
Date: Tue, 19 Jul 2016 11:13:27 +0000
Subject: [PATCH] gnu: Add elixir.
To: guix-devel@gnu.org
From: Pjotr Prins <pjotr.public01@thebird.nl>
References: <578e47d0.i8Ovns6KhzHqzVNC%pjotr.public12@thebird.nl>

* gnu/packages/elixir.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
 gnu/local.mk                                       |   1 +
 gnu/packages/elixir.scm                            |  91 ++++++++++++
 .../patches/elixir-disable-failing-tests.patch     | 108 +++++++++++++++
 .../patches/elixir-disable-mix-tests.patch         | 152 +++++++++++++++++++++
 gnu/packages/ruby.scm                              |   1 -
 5 files changed, 352 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/elixir.scm
 create mode 100644 gnu/packages/patches/elixir-disable-failing-tests.patch
 create mode 100644 gnu/packages/patches/elixir-disable-mix-tests.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 536ecef..7a9a820 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -104,6 +104,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/ebook.scm			\
   %D%/packages/ed.scm				\
   %D%/packages/elf.scm				\
+  %D%/packages/elixir.scm			\
   %D%/packages/emacs.scm			\
   %D%/packages/enchant.scm			\
   %D%/packages/engineering.scm			\
diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm
new file mode 100644
index 0000000..c1bbab3
--- /dev/null
+++ b/gnu/packages/elixir.scm
@@ -0,0 +1,91 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016 Pjotr Prins <pjotr.public12@thebird.nl>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages elixir)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module (guix packages)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages base)  ; for patch
+  #:use-module (gnu packages erlang)
+  #:use-module (gnu packages version-control))
+
+(define-public elixir
+  (package
+   (name "elixir")
+   (version "1.3.2")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append
+                  "https://github.com/elixir-lang/elixir/archive/v"
+                  version ".tar.gz"))
+            (file-name (string-append name "-" version ".tar.gz"))
+            (sha256
+             (base32
+              "0jsc6kl7f74yszcypdv3w3vhyc9qfqav8nwc41in082m0vpfy95y"))))
+   (build-system gnu-build-system)
+   (native-inputs
+    `(("patch" ,patch)
+      ("patch/elixir-disable-failing-tests"
+       ,(search-patch "elixir-disable-failing-tests.patch"))
+      ("patch/elixir-disable-mix-tests"
+       ,(search-patch "elixir-disable-mix-tests.patch"))))
+   (inputs
+    `(("erlang" ,erlang)
+      ("git" ,git)))
+   (arguments
+    `(#:phases (modify-phases %standard-phases
+      (add-after 'unpack 'replace-git-path
+        (lambda _
+          (substitute* '("lib/elixir/lib/system.ex"
+                         "lib/mix/lib/mix/scm/git.ex")
+                       (("cmd\\('git") (string-append "cmd('" (which "git")))
+                       (("cmd\\(\"git") (string-append "cmd(\"" (which "git"))))
+          #t))
+      (delete 'configure)
+      (add-before 'build 'rewrite-path
+        (lambda* (#:key inputs #:allow-other-keys)
+                 (substitute* "bin/elixir"
+                              (("ERL_EXEC=\"erl\"")
+                               (string-append "ERL_EXEC=" (which "erl"))))))
+      (add-after 'build 'disable-breaking-elixir-tests
+        ;; when patching tests as part of source the build breaks, so we do
+        ;; it after the build phase
+        (lambda* (#:key inputs #:allow-other-keys)
+          (and
+           (zero? (system* "patch" "--force" "-p1" "-i"
+                           (assoc-ref inputs "patch/elixir-disable-failing-tests")))
+           (zero? (system* "patch" "--force" "-p1" "-i"
+                           (assoc-ref inputs "patch/elixir-disable-mix-tests")))
+           ;; Tests currently fail in these two files:
+           (delete-file "./lib/mix/test/mix/tasks/deps.git_test.exs")
+           (delete-file "./lib/mix/test/mix/shell_test.exs"))))
+      (replace 'check
+               (lambda _
+                 (zero? (system* "make" "test"))))) ;; 3124 tests, 0 failures, 11 skipped
+      #:make-flags (list (string-append "PREFIX=" %output))))
+   (home-page "http://elixir-lang.org/")
+   (synopsis "The Elixir programming language")
+   (description "Elixir is a dynamic, functional language used to
+build scalable and maintainable applications.  Elixir leverages the
+Erlang VM, known for running low-latency, distributed and
+fault-tolerant systems, while also being successfully used in web
+development and the embedded software domain.")
+   (license license:asl2.0)))
diff --git a/gnu/packages/patches/elixir-disable-failing-tests.patch b/gnu/packages/patches/elixir-disable-failing-tests.patch
new file mode 100644
index 0000000..802cb1e
--- /dev/null
+++ b/gnu/packages/patches/elixir-disable-failing-tests.patch
@@ -0,0 +1,108 @@
+diff --git a/lib/elixir/test/elixir/kernel/cli_test.exs b/lib/elixir/test/elixir/kernel/cli_test.exs
+index 3ffd56c..1232d19 100644
+--- a/lib/elixir/test/elixir/kernel/cli_test.exs
++++ b/lib/elixir/test/elixir/kernel/cli_test.exs
+@@ -39,6 +39,7 @@ end
+ defmodule Kernel.CLI.OptionParsingTest do
+   use ExUnit.Case, async: true
+ 
++  @tag :skip
+   test "properly parses paths" do
+     root = fixture_path("../../..") |> to_charlist
+     list = elixir('-pa "#{root}/*" -pz "#{root}/lib/*" -e "IO.inspect(:code.get_path, limit: :infinity)"')
+@@ -57,6 +58,7 @@ end
+ defmodule Kernel.CLI.AtExitTest do
+   use ExUnit.Case, async: true
+ 
++  @tag :skip
+   test "invokes at_exit callbacks" do
+     assert elixir(fixture_path("at_exit.exs") |> to_charlist) ==
+            'goodbye cruel world with status 1\n'
+@@ -66,6 +68,7 @@ end
+ defmodule Kernel.CLI.ErrorTest do
+   use ExUnit.Case, async: true
+ 
++  @tag :skip
+   test "properly format errors" do
+     assert :string.str('** (throw) 1', elixir('-e "throw 1"')) == 0
+     assert :string.str('** (ErlangError) erlang error: 1', elixir('-e "error 1"')) == 0
+@@ -86,6 +89,7 @@ defmodule Kernel.CLI.CompileTest do
+     {:ok, [tmp_dir_path: tmp_dir_path, beam_file_path: beam_file_path, fixture: fixture]}
+   end
+ 
++  @tag :skip
+   test "compiles code", context do
+     assert elixirc('#{context[:fixture]} -o #{context[:tmp_dir_path]}') == ''
+     assert File.regular?(context[:beam_file_path])
+@@ -96,6 +100,7 @@ defmodule Kernel.CLI.CompileTest do
+     Code.delete_path context[:tmp_dir_path]
+   end
+ 
++  @tag :skip
+   test "fails on missing patterns", context do
+     output = elixirc('#{context[:fixture]} non_existing.ex -o #{context[:tmp_dir_path]}')
+     assert :string.str(output, 'non_existing.ex') > 0, "expected non_existing.ex to be mentioned"
+@@ -103,6 +108,7 @@ defmodule Kernel.CLI.CompileTest do
+     refute File.exists?(context[:beam_file_path]), "expected the sample to not be compiled"
+   end
+ 
++  @tag :skip
+   test "fails on missing write access to .beam file", context do
+     compilation_args = '#{context[:fixture]} -o #{context[:tmp_dir_path]}'
+ 
+diff --git a/lib/elixir/test/elixir/kernel/dialyzer_test.exs b/lib/elixir/test/elixir/kernel/dialyzer_test.exs
+index 801d852..40fc5bc 100644
+--- a/lib/elixir/test/elixir/kernel/dialyzer_test.exs
++++ b/lib/elixir/test/elixir/kernel/dialyzer_test.exs
+@@ -60,16 +60,19 @@ defmodule Kernel.DialyzerTest do
+     assert_dialyze_no_warnings! context
+   end
+ 
++  @tag :skip
+   test "no warnings on rewrites", context do
+     copy_beam! context, Dialyzer.Rewrite
+     assert_dialyze_no_warnings! context
+   end
+ 
++  @tag :skip
+   test "no warnings on raise", context do
+     copy_beam! context, Dialyzer.Raise
+     assert_dialyze_no_warnings! context
+   end
+ 
++  @tag :skip
+   test "no warnings on macrocallback", context do
+     copy_beam! context, Dialyzer.Macrocallback
+     copy_beam! context, Dialyzer.Macrocallback.Impl
+diff --git a/lib/elixir/test/elixir/node_test.exs b/lib/elixir/test/elixir/node_test.exs
+index d1f1fe6..5c2d469 100644
+--- a/lib/elixir/test/elixir/node_test.exs
++++ b/lib/elixir/test/elixir/node_test.exs
+@@ -6,8 +6,10 @@ defmodule NodeTest do
+   doctest Node
+ 
+   test "start/3 and stop/0" do
+-    assert Node.stop == {:error, :not_found}
+-    assert {:ok, _} = Node.start(:hello, :shortnames, 15000)
+-    assert Node.stop() == :ok
++    IO.puts "Skipping test because GNU Guix does not allow the HOME environment variable."
++
++    # assert Node.stop == {:error, :not_found}
++    # assert {:ok, _} = Node.start(:hello, :shortnames, 15000)
++    # assert Node.stop() == :ok
+   end
+ end
+diff --git a/lib/elixir/test/elixir/system_test.exs b/lib/elixir/test/elixir/system_test.exs
+index aafa559..0f9c178 100644
+--- a/lib/elixir/test/elixir/system_test.exs
++++ b/lib/elixir/test/elixir/system_test.exs
+@@ -53,7 +53,8 @@ defmodule SystemTest do
+     assert System.endianness in [:little, :big]
+     assert System.endianness == System.compiled_endianness
+   end
+-
++ 
++  @tag :skip
+   test "argv/0" do
+     list = elixir('-e "IO.inspect System.argv" -- -o opt arg1 arg2 --long-opt 10')
+     {args, _} = Code.eval_string list, []
diff --git a/gnu/packages/patches/elixir-disable-mix-tests.patch b/gnu/packages/patches/elixir-disable-mix-tests.patch
new file mode 100644
index 0000000..649a916
--- /dev/null
+++ b/gnu/packages/patches/elixir-disable-mix-tests.patch
@@ -0,0 +1,152 @@
+diff --git a/lib/mix/test/mix/dep_test.exs b/lib/mix/test/mix/dep_test.exs
+index fff3351..d6ed1b3 100644
+--- a/lib/mix/test/mix/dep_test.exs
++++ b/lib/mix/test/mix/dep_test.exs
+@@ -244,6 +244,7 @@ defmodule Mix.DepTest do
+     end
+   end
+ 
++  @tag :skip
+   test "remote converger" do
+     deps = [{:deps_repo, "0.1.0", path: "custom/deps_repo"},
+             {:git_repo, "0.2.0", git: MixTest.Case.fixture_path("git_repo")}]
+@@ -301,6 +302,7 @@ defmodule Mix.DepTest do
+     end
+   end
+ 
++  @tag :skip
+   test "remote converger is not invoked if deps diverge" do
+     deps = [{:deps_repo, "0.1.0", path: "custom/deps_repo"},
+             {:git_repo, "0.2.0", git: MixTest.Case.fixture_path("git_repo"), only: :test}]
+diff --git a/lib/mix/test/mix/rebar_test.exs b/lib/mix/test/mix/rebar_test.exs
+index d2dd098..12cef15 100644
+--- a/lib/mix/test/mix/rebar_test.exs
++++ b/lib/mix/test/mix/rebar_test.exs
+@@ -120,6 +120,7 @@ defmodule Mix.RebarTest do
+     assert Enum.all?(deps, &(&1.manager == :rebar3))
+   end
+ 
++  @tag :skip
+   test "Rebar overrides" do
+     Mix.Project.push(RebarOverrideAsDep)
+ 
+@@ -150,6 +151,7 @@ defmodule Mix.RebarTest do
+     end
+   end
+ 
++  @tag :skip
+   test "get and compile dependencies for Rebar" do
+     Mix.Project.push(RebarAsDep)
+ 
+@@ -180,6 +182,7 @@ defmodule Mix.RebarTest do
+     end
+   end
+ 
++  @tag :skip
+   test "get and compile dependencies for rebar3" do
+     Mix.Project.push(Rebar3AsDep)
+ 
+diff --git a/lib/mix/test/mix/shell/io_test.exs b/lib/mix/test/mix/shell/io_test.exs
+index 9bfb6b4..d982ef3 100644
+--- a/lib/mix/test/mix/shell/io_test.exs
++++ b/lib/mix/test/mix/shell/io_test.exs
+@@ -29,6 +29,7 @@ defmodule Mix.Shell.IOTest do
+     assert capture_io("", fn -> refute yes?("Ok?") end)
+   end
+ 
++  @tag :skip
+   test "runs a given command" do
+     assert capture_io("", fn -> assert cmd("echo hello") == 0 end) == "hello\n"
+ 
+diff --git a/lib/mix/test/mix/shell/quiet_test.exs b/lib/mix/test/mix/shell/quiet_test.exs
+index 626429b..99fab35 100644
+--- a/lib/mix/test/mix/shell/quiet_test.exs
++++ b/lib/mix/test/mix/shell/quiet_test.exs
+@@ -29,6 +29,7 @@ defmodule Mix.Shell.QuietTest do
+     assert capture_io("", fn -> refute yes?("Ok?") end)
+   end
+ 
++  @tag :skip
+   test "runs a given command" do
+     assert capture_io("", fn -> assert cmd("echo hello") == 0 end) == ""
+ 
+diff --git a/lib/mix/test/mix/tasks/cmd_test.exs b/lib/mix/test/mix/tasks/cmd_test.exs
+index db4bf06..4d441f7 100644
+--- a/lib/mix/test/mix/tasks/cmd_test.exs
++++ b/lib/mix/test/mix/tasks/cmd_test.exs
+@@ -3,6 +3,7 @@ Code.require_file "../../test_helper.exs", __DIR__
+ defmodule Mix.Tasks.CmdTest do
+   use MixTest.Case
+ 
++  @tag :skip
+   test "runs the command for each app" do
+     in_fixture "umbrella_dep/deps/umbrella", fn ->
+       Mix.Project.in_project(:umbrella, ".", fn _ ->
+diff --git a/lib/mix/test/mix/tasks/deps.tree_test.exs b/lib/mix/test/mix/tasks/deps.tree_test.exs
+index 4f09ff3..c371997 100644
+--- a/lib/mix/test/mix/tasks/deps.tree_test.exs
++++ b/lib/mix/test/mix/tasks/deps.tree_test.exs
+@@ -29,6 +29,7 @@ defmodule Mix.Tasks.Deps.TreeTest do
+     end
+   end
+ 
++  @tag :skip
+   test "shows the dependency tree", context do
+     Mix.Project.push ConvergedDepsApp
+ 
+@@ -109,6 +110,7 @@ defmodule Mix.Tasks.Deps.TreeTest do
+     end
+   end
+ 
++  @tag :skip
+   test "shows the dependency tree in DOT graph format", context do
+     Mix.Project.push ConvergedDepsApp
+ 
+diff --git a/lib/mix/test/mix/tasks/deps_test.exs b/lib/mix/test/mix/tasks/deps_test.exs
+index b061777..cc45cf8 100644
+--- a/lib/mix/test/mix/tasks/deps_test.exs
++++ b/lib/mix/test/mix/tasks/deps_test.exs
+@@ -409,6 +409,7 @@ defmodule Mix.Tasks.DepsTest do
+     end
+   end
+ 
++  @tag :skip
+   test "fails on diverged dependencies by requirement" do
+     Mix.Project.push ConvergedDepsApp
+ 
+@@ -440,6 +441,7 @@ defmodule Mix.Tasks.DepsTest do
+     end
+   end
+ 
++  @tag :skip
+   test "fails on diverged dependencies even when optional" do
+     Mix.Project.push ConvergedDepsApp
+ 
+@@ -469,6 +471,7 @@ defmodule Mix.Tasks.DepsTest do
+     end
+   end
+ 
++  @tag :skip
+   test "works with converged dependencies" do
+     Mix.Project.push ConvergedDepsApp
+ 
+@@ -491,6 +494,7 @@ defmodule Mix.Tasks.DepsTest do
+     purge [GitRepo, GitRepo.Mixfile]
+   end
+ 
++  @tag :skip
+   test "works with overridden dependencies" do
+     Mix.Project.push OverriddenDepsApp
+ 
+diff --git a/lib/mix/test/mix/umbrella_test.exs b/lib/mix/test/mix/umbrella_test.exs
+index 69f9428..406668a 100644
+--- a/lib/mix/test/mix/umbrella_test.exs
++++ b/lib/mix/test/mix/umbrella_test.exs
+@@ -98,6 +98,7 @@ defmodule Mix.UmbrellaTest do
+     end
+   end
+ 
++  @tag :skip
+   test "loads umbrella child dependencies in all environments" do
+     in_fixture "umbrella_dep/deps/umbrella", fn ->
+       Mix.Project.in_project :umbrella, ".", fn _ ->
-- 
2.6.3

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

* (unknown), 
@ 2016-10-06  6:16 Leo Famulari
  0 siblings, 0 replies; 36+ messages in thread
From: Leo Famulari @ 2016-10-06  6:16 UTC (permalink / raw)
  To: guix-devel

Subject: [PATCH 0/1] libupnp remote filesystem access CVE-2016-6255

You can use libupnp on a remote server to read and write the filesystem
with the privileges of the libupnp process:

http://seclists.org/oss-sec/2016/q3/102

This patch cherry-picks the upstream commit:

https://github.com/mrjimenez/pupnp/commit/d64d6a44906b5aa5306bdf1708531d698654dda5

Leo Famulari (1):
  gnu: libupnp: Fix CVE-2016-6255.

 gnu/local.mk                                     |  1 +
 gnu/packages/libupnp.scm                         |  2 +
 gnu/packages/patches/libupnp-CVE-2016-6255.patch | 86 ++++++++++++++++++++++++
 3 files changed, 89 insertions(+)
 create mode 100644 gnu/packages/patches/libupnp-CVE-2016-6255.patch

-- 
2.10.1

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

* (unknown), 
@ 2016-12-05 18:20 ng0
  2016-12-05 18:20 ` [PATCH 1/2] gnu: tlsdate: Use the system provided certificate store ng0
  2016-12-05 18:20 ` [PATCH 2/2] services: Add tlsdate-service ng0
  0 siblings, 2 replies; 36+ messages in thread
From: ng0 @ 2016-12-05 18:20 UTC (permalink / raw)
  To: guix-devel

[PATCH 1/2] gnu: tlsdate: Use the system provided certificate store.

So far it looks like we are using the application bundled certificates.
This should fix it to use the system provided certificates.

[PATCH 2/2] services: Add tlsdate-service.

Because I still need to learn how make network bridges and make the "guix vm" generated qemu machine use that to call outside, this is tested in theory:
The service spawns, complains about certificates, and quits because it was called with too many ssl connection failures. This is expected in the state the vm is in.
I used tlsdate and not sbin/tlsdated because tlsdate is a one-time, at boot only, setting of time while tlsdated does it periodically.
This can be changed, but I really need the "one time on boot only" service and find it reasonable not to query servers for time too often.

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

* [PATCH 1/2] gnu: tlsdate: Use the system provided certificate store.
  2016-12-05 18:20 (unknown), ng0
@ 2016-12-05 18:20 ` ng0
  2016-12-07 22:19   ` Ludovic Courtès
  2016-12-05 18:20 ` [PATCH 2/2] services: Add tlsdate-service ng0
  1 sibling, 1 reply; 36+ messages in thread
From: ng0 @ 2016-12-05 18:20 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/ntp.scm (tlsdate)[arguments]: Configure with unprivileged user and group.
[arguments]: Build with the system provided certificates in a new phase.
---
 gnu/packages/ntp.scm | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm
index 13781fbda..45f334b57 100644
--- a/gnu/packages/ntp.scm
+++ b/gnu/packages/ntp.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016 ng0 <ng0@libertad.pw>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -134,8 +135,17 @@ minimalist than ntpd.")
               (file-name (string-append name "-" version "-checkout"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'autogen
+     '(#:configure-flags '("--with-unpriv-user=tlsdate"
+                           "--with-unpriv-group=tlsdate")
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'set-cert-path
+                    ;; Use the system certificate store, not the
+                    ;; application bundled certificates.
+                    (lambda _
+                      (substitute* "Makefile.am"
+                        (("$(sysconfdir)/tlsdate/ca-roots/tlsdate-ca-roots.conf")
+                         "/etc/ssl/certs/ca-certificates.crt"))))
+                  (add-after 'set-cert-path 'autogen
                     (lambda _
                       ;; The ancestor of 'SOURCE_DATE_EPOCH'; it contains the
                       ;; date that is recorded in binaries.  It must be a
-- 
2.11.0

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

* [PATCH 2/2] services: Add tlsdate-service.
  2016-12-05 18:20 (unknown), ng0
  2016-12-05 18:20 ` [PATCH 1/2] gnu: tlsdate: Use the system provided certificate store ng0
@ 2016-12-05 18:20 ` ng0
  2016-12-05 18:23   ` ng0
  1 sibling, 1 reply; 36+ messages in thread
From: ng0 @ 2016-12-05 18:20 UTC (permalink / raw)
  To: guix-devel

* gnu/services/networking.scm (<tlsdate-configuration>): New record type.
(%tlsdate-accounts): New variables.
(tlsdate-shepherd-service): New procedure.
(tlsdate-service-type): New variable.
* doc/guix.texi (Networking Services): Document it.
---
 doc/guix.texi               | 32 +++++++++++++++++
 gnu/services/networking.scm | 84 ++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 115 insertions(+), 1 deletion(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 4d7f96d90..f6efd040d 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -8594,6 +8594,38 @@ make an initial adjustment of more than 1,000 seconds.
 List of host names used as the default NTP servers.
 @end defvr
 
+@cindex tlsdate
+@deffn {Scheme Procedure} tlsdate-service [#:config (tlsdate-configuration)]
+
+Return a service that runs @command{tlsdate}, a simple TCP based time service.
+The daemon will synchronize the system clock with a server of your
+choice via TCP at boot.
+
+The optional @var{config} argument should be a
+@code{<tlsdate-configuration>} object, by default it syncs the time with gnu.org.
+
+@end deffn
+
+@deftp {Data Type} tlsdate-configuration
+Data type representing the configuration of tlsdate.
+
+@table @asis
+@item @code{package} (default: @var{tlsdate})
+Package object of the tlsdate time service.
+
+@item @code{port} (default: @var{'()})
+Set the port of the remote hostname which should be used.
+
+@item @code{host} (default: @var{"gnu.org"})
+Set the remote hostname which will be queried. Defaults to @code{gnu.org}.
+
+@item @code{extra-options} (default: @var{'()})
+Extra options will be passed to @code{tlsdate}, please run
+@command{man tlsdate} for more information.
+
+@end table
+@end deftp
+
 @cindex Tor
 @deffn {Scheme Procedure} tor-service [@var{config-file}] [#:tor @var{tor}]
 Return a service to run the @uref{https://torproject.org, Tor} anonymous
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index d672ecf68..ab19bcb0e 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
+;;; Copyright © 2016 ng0 <ng0@libertad.pw>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -66,7 +67,13 @@
             wicd-service
             network-manager-service
             connman-service
-            wpa-supplicant-service-type))
+            wpa-supplicant-service-type
+
+            tlsdate-service
+            tlsdate-configuration
+            tlsdate-service-type
+            tlsdate-configuration?
+            tlsdate-configuration))
 
 ;;; Commentary:
 ;;;
@@ -360,6 +367,81 @@ make an initial adjustment of more than 1,000 seconds."
 
 \f
 ;;;
+;;; tlsdate
+;;;
+
+(define-record-type* <tlsdate-configuration>
+  tlsdate-configuration make-tlsdate-configuration
+  tlsdate-configuration?
+  (package        tlsdate-configuration-package
+                  (default tlsdate))
+  (host           tlsdate-configuration-host
+                  (default "gnu.org"))
+  (port           tlsdate-configuration-port
+                  (default #f))
+  (extra-options  tlsdate-configuration-extra-options
+                  (default '())))
+
+(define %tlsdate-accounts
+  (list (user-group (name "tlsdate") (system? #t))
+        (user-account
+         (name "tlsdate")
+         (group "tlsdate")
+         (system? #t)
+         (comment "tlsdate daemon user")
+         (home-directory "/var/empty")
+         (shell (file-append shadow "/sbin/nologin")))))
+
+(define tlsdate-shepherd-service
+  (match-lambda
+    (($ <tlsdate-configuration>
+        package host port extra-options)
+     (let* ((tlsdate (file-append package "/bin/tlsdate"))
+            (command `(,tlsdate
+                       "-l" ; leap
+                       "-t" ; timewarp
+                       ,@(if host
+                             `(,(string-append
+                                 "-H" " " host))
+                             '())
+                       ,@(if port
+                             `(,(string-append
+                                 "-p" " " (number->string port)))
+                             '())
+                       ,@extra-options)))
+       (list (shepherd-service
+              ;;(provision '(tlsdate))
+              (provision '(ntp))
+              ;; tlsdate needs at least one network interface to be up, hence the
+              ;; dependency on 'loopback'.
+              (requirement '(user-processes dbus-system loopback syslogd))
+
+              (start #~(make-forkexec-constructor '#$command
+                                                  #:user "tlsdate"
+                                                  #:group "tlsdate"))
+              (stop #~(make-kill-destructor))
+              (documentation "Run the tlsdate service.")))))))
+
+(define tlsdate-service-type
+  (service-type
+   (name 'tlsdate)
+   (extensions
+    (list (service-extension shepherd-root-service-type
+                             tlsdate-shepherd-service)
+          (service-extension account-service-type
+                             (const %tlsdate-accounts))))))
+
+(define* (tlsdate-service #:key (config (tlsdate-configuration)))
+  "Return a service that runs @command{tlsdate}, a simple TCP based
+time service.
+
+The optional @var{config} argument should be a
+@code{<tlsdate-configuration>} object, by default it querries gnu.org
+for time once at boot."
+  (service tlsdate-service-type config))
+
+\f
+;;;
 ;;; Tor.
 ;;;
 
-- 
2.11.0

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

* Re: [PATCH 2/2] services: Add tlsdate-service.
  2016-12-05 18:20 ` [PATCH 2/2] services: Add tlsdate-service ng0
@ 2016-12-05 18:23   ` ng0
  2016-12-05 18:30     ` v2 tlsdate-service ng0
  0 siblings, 1 reply; 36+ messages in thread
From: ng0 @ 2016-12-05 18:23 UTC (permalink / raw)
  To: guix-devel

ng0 <ng0@libertad.pw> writes:

> * gnu/services/networking.scm (<tlsdate-configuration>): New record type.
> (%tlsdate-accounts): New variables.
> (tlsdate-shepherd-service): New procedure.
> (tlsdate-service-type): New variable.
> * doc/guix.texi (Networking Services): Document it.
> ---
>  doc/guix.texi               | 32 +++++++++++++++++
>  gnu/services/networking.scm | 84 ++++++++++++++++++++++++++++++++++++++++++++-
>  2 files changed, 115 insertions(+), 1 deletion(-)
>
> diff --git a/doc/guix.texi b/doc/guix.texi
> index 4d7f96d90..f6efd040d 100644
> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -8594,6 +8594,38 @@ make an initial adjustment of more than 1,000 seconds.
>  List of host names used as the default NTP servers.
>  @end defvr
>  
> +@cindex tlsdate
> +@deffn {Scheme Procedure} tlsdate-service [#:config (tlsdate-configuration)]
> +
> +Return a service that runs @command{tlsdate}, a simple TCP based time service.
> +The daemon will synchronize the system clock with a server of your
> +choice via TCP at boot.
> +
> +The optional @var{config} argument should be a
> +@code{<tlsdate-configuration>} object, by default it syncs the time with gnu.org.
> +
> +@end deffn
> +
> +@deftp {Data Type} tlsdate-configuration
> +Data type representing the configuration of tlsdate.
> +
> +@table @asis
> +@item @code{package} (default: @var{tlsdate})
> +Package object of the tlsdate time service.
> +
> +@item @code{port} (default: @var{'()})
> +Set the port of the remote hostname which should be used.
> +
> +@item @code{host} (default: @var{"gnu.org"})
> +Set the remote hostname which will be queried. Defaults to @code{gnu.org}.
> +
> +@item @code{extra-options} (default: @var{'()})
> +Extra options will be passed to @code{tlsdate}, please run
> +@command{man tlsdate} for more information.
> +
> +@end table
> +@end deftp
> +
>  @cindex Tor
>  @deffn {Scheme Procedure} tor-service [@var{config-file}] [#:tor @var{tor}]
>  Return a service to run the @uref{https://torproject.org, Tor} anonymous
> diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
> index d672ecf68..ab19bcb0e 100644
> --- a/gnu/services/networking.scm
> +++ b/gnu/services/networking.scm
> @@ -3,6 +3,7 @@
>  ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
>  ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
>  ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
> +;;; Copyright © 2016 ng0 <ng0@libertad.pw>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -66,7 +67,13 @@
>              wicd-service
>              network-manager-service
>              connman-service
> -            wpa-supplicant-service-type))
> +            wpa-supplicant-service-type
> +
> +            tlsdate-service
> +            tlsdate-configuration
> +            tlsdate-service-type
> +            tlsdate-configuration?
> +            tlsdate-configuration))
>  
>  ;;; Commentary:
>  ;;;
> @@ -360,6 +367,81 @@ make an initial adjustment of more than 1,000 seconds."
>  
>  \f
>  ;;;
> +;;; tlsdate
> +;;;
> +
> +(define-record-type* <tlsdate-configuration>
> +  tlsdate-configuration make-tlsdate-configuration
> +  tlsdate-configuration?
> +  (package        tlsdate-configuration-package
> +                  (default tlsdate))
> +  (host           tlsdate-configuration-host
> +                  (default "gnu.org"))
> +  (port           tlsdate-configuration-port
> +                  (default #f))
> +  (extra-options  tlsdate-configuration-extra-options
> +                  (default '())))
> +
> +(define %tlsdate-accounts
> +  (list (user-group (name "tlsdate") (system? #t))
> +        (user-account
> +         (name "tlsdate")
> +         (group "tlsdate")
> +         (system? #t)
> +         (comment "tlsdate daemon user")
> +         (home-directory "/var/empty")
> +         (shell (file-append shadow "/sbin/nologin")))))
> +
> +(define tlsdate-shepherd-service
> +  (match-lambda
> +    (($ <tlsdate-configuration>
> +        package host port extra-options)
> +     (let* ((tlsdate (file-append package "/bin/tlsdate"))
> +            (command `(,tlsdate
> +                       "-l" ; leap
> +                       "-t" ; timewarp
> +                       ,@(if host
> +                             `(,(string-append
> +                                 "-H" " " host))
> +                             '())
> +                       ,@(if port
> +                             `(,(string-append
> +                                 "-p" " " (number->string port)))
> +                             '())
> +                       ,@extra-options)))
> +       (list (shepherd-service
> +              ;;(provision '(tlsdate))
> +              (provision '(ntp))
> +              ;; tlsdate needs at least one network interface to be up, hence the
> +              ;; dependency on 'loopback'.
> +              (requirement '(user-processes dbus-system loopback syslogd))
                                               ^__ remains from
                                               the time where I
                                               tried to enable
                                               the dbus
                                               functionality. I'll
                                               send a new patch.
> +
> +              (start #~(make-forkexec-constructor '#$command
> +                                                  #:user "tlsdate"
> +                                                  #:group "tlsdate"))
> +              (stop #~(make-kill-destructor))
> +              (documentation "Run the tlsdate service.")))))))
> +
> +(define tlsdate-service-type
> +  (service-type
> +   (name 'tlsdate)
> +   (extensions
> +    (list (service-extension shepherd-root-service-type
> +                             tlsdate-shepherd-service)
> +          (service-extension account-service-type
> +                             (const %tlsdate-accounts))))))
> +
> +(define* (tlsdate-service #:key (config (tlsdate-configuration)))
> +  "Return a service that runs @command{tlsdate}, a simple TCP based
> +time service.
> +
> +The optional @var{config} argument should be a
> +@code{<tlsdate-configuration>} object, by default it querries gnu.org
> +for time once at boot."
> +  (service tlsdate-service-type config))
> +
> +\f
> +;;;
>  ;;; Tor.
>  ;;;
>  
> -- 
> 2.11.0
>
>

-- 
♥Ⓐ  ng0  | ng0.chaosnet.org

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

* v2 tlsdate-service
  2016-12-05 18:23   ` ng0
@ 2016-12-05 18:30     ` ng0
  2016-12-05 18:31       ` [PATCH 1/2] gnu: tlsdate: Use the system provided certificate store ng0
  2016-12-05 18:31       ` [PATCH 2/2] services: Add tlsdate-service ng0
  0 siblings, 2 replies; 36+ messages in thread
From: ng0 @ 2016-12-05 18:30 UTC (permalink / raw)
  To: guix-devel

version 2, removes dbus from the tlsdate-service requirements.

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

* [PATCH 1/2] gnu: tlsdate: Use the system provided certificate store.
  2016-12-05 18:30     ` v2 tlsdate-service ng0
@ 2016-12-05 18:31       ` ng0
  2016-12-05 18:31       ` [PATCH 2/2] services: Add tlsdate-service ng0
  1 sibling, 0 replies; 36+ messages in thread
From: ng0 @ 2016-12-05 18:31 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/ntp.scm (tlsdate)[arguments]: Configure with unprivileged user and group.
[arguments]: Build with the system provided certificates in a new phase.
---
 gnu/packages/ntp.scm | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm
index 13781fbda..45f334b57 100644
--- a/gnu/packages/ntp.scm
+++ b/gnu/packages/ntp.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016 ng0 <ng0@libertad.pw>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -134,8 +135,17 @@ minimalist than ntpd.")
               (file-name (string-append name "-" version "-checkout"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'autogen
+     '(#:configure-flags '("--with-unpriv-user=tlsdate"
+                           "--with-unpriv-group=tlsdate")
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'set-cert-path
+                    ;; Use the system certificate store, not the
+                    ;; application bundled certificates.
+                    (lambda _
+                      (substitute* "Makefile.am"
+                        (("$(sysconfdir)/tlsdate/ca-roots/tlsdate-ca-roots.conf")
+                         "/etc/ssl/certs/ca-certificates.crt"))))
+                  (add-after 'set-cert-path 'autogen
                     (lambda _
                       ;; The ancestor of 'SOURCE_DATE_EPOCH'; it contains the
                       ;; date that is recorded in binaries.  It must be a
-- 
2.11.0

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

* [PATCH 2/2] services: Add tlsdate-service.
  2016-12-05 18:30     ` v2 tlsdate-service ng0
  2016-12-05 18:31       ` [PATCH 1/2] gnu: tlsdate: Use the system provided certificate store ng0
@ 2016-12-05 18:31       ` ng0
  2016-12-07  7:18         ` Chris Marusich
  1 sibling, 1 reply; 36+ messages in thread
From: ng0 @ 2016-12-05 18:31 UTC (permalink / raw)
  To: guix-devel

* gnu/services/networking.scm (<tlsdate-configuration>): New record type.
(%tlsdate-accounts): New variables.
(tlsdate-shepherd-service): New procedure.
(tlsdate-service-type): New variable.
* doc/guix.texi (Networking Services): Document it.
---
 doc/guix.texi               | 32 +++++++++++++++++
 gnu/services/networking.scm | 84 ++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 115 insertions(+), 1 deletion(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 4d7f96d90..f6efd040d 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -8594,6 +8594,38 @@ make an initial adjustment of more than 1,000 seconds.
 List of host names used as the default NTP servers.
 @end defvr
 
+@cindex tlsdate
+@deffn {Scheme Procedure} tlsdate-service [#:config (tlsdate-configuration)]
+
+Return a service that runs @command{tlsdate}, a simple TCP based time service.
+The daemon will synchronize the system clock with a server of your
+choice via TCP at boot.
+
+The optional @var{config} argument should be a
+@code{<tlsdate-configuration>} object, by default it syncs the time with gnu.org.
+
+@end deffn
+
+@deftp {Data Type} tlsdate-configuration
+Data type representing the configuration of tlsdate.
+
+@table @asis
+@item @code{package} (default: @var{tlsdate})
+Package object of the tlsdate time service.
+
+@item @code{port} (default: @var{'()})
+Set the port of the remote hostname which should be used.
+
+@item @code{host} (default: @var{"gnu.org"})
+Set the remote hostname which will be queried. Defaults to @code{gnu.org}.
+
+@item @code{extra-options} (default: @var{'()})
+Extra options will be passed to @code{tlsdate}, please run
+@command{man tlsdate} for more information.
+
+@end table
+@end deftp
+
 @cindex Tor
 @deffn {Scheme Procedure} tor-service [@var{config-file}] [#:tor @var{tor}]
 Return a service to run the @uref{https://torproject.org, Tor} anonymous
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index d672ecf68..52a899b8f 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
+;;; Copyright © 2016 ng0 <ng0@libertad.pw>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -66,7 +67,13 @@
             wicd-service
             network-manager-service
             connman-service
-            wpa-supplicant-service-type))
+            wpa-supplicant-service-type
+
+            tlsdate-service
+            tlsdate-configuration
+            tlsdate-service-type
+            tlsdate-configuration?
+            tlsdate-configuration))
 
 ;;; Commentary:
 ;;;
@@ -360,6 +367,81 @@ make an initial adjustment of more than 1,000 seconds."
 
 \f
 ;;;
+;;; tlsdate
+;;;
+
+(define-record-type* <tlsdate-configuration>
+  tlsdate-configuration make-tlsdate-configuration
+  tlsdate-configuration?
+  (package        tlsdate-configuration-package
+                  (default tlsdate))
+  (host           tlsdate-configuration-host
+                  (default "gnu.org"))
+  (port           tlsdate-configuration-port
+                  (default #f))
+  (extra-options  tlsdate-configuration-extra-options
+                  (default '())))
+
+(define %tlsdate-accounts
+  (list (user-group (name "tlsdate") (system? #t))
+        (user-account
+         (name "tlsdate")
+         (group "tlsdate")
+         (system? #t)
+         (comment "tlsdate daemon user")
+         (home-directory "/var/empty")
+         (shell (file-append shadow "/sbin/nologin")))))
+
+(define tlsdate-shepherd-service
+  (match-lambda
+    (($ <tlsdate-configuration>
+        package host port extra-options)
+     (let* ((tlsdate (file-append package "/bin/tlsdate"))
+            (command `(,tlsdate
+                       "-l" ; leap
+                       "-t" ; timewarp
+                       ,@(if host
+                             `(,(string-append
+                                 "-H" " " host))
+                             '())
+                       ,@(if port
+                             `(,(string-append
+                                 "-p" " " (number->string port)))
+                             '())
+                       ,@extra-options)))
+       (list (shepherd-service
+              ;;(provision '(tlsdate))
+              (provision '(ntp))
+              ;; tlsdate needs at least one network interface to be up, hence the
+              ;; dependency on 'loopback'.
+              (requirement '(user-processes loopback syslogd))
+
+              (start #~(make-forkexec-constructor '#$command
+                                                  #:user "tlsdate"
+                                                  #:group "tlsdate"))
+              (stop #~(make-kill-destructor))
+              (documentation "Run the tlsdate service.")))))))
+
+(define tlsdate-service-type
+  (service-type
+   (name 'tlsdate)
+   (extensions
+    (list (service-extension shepherd-root-service-type
+                             tlsdate-shepherd-service)
+          (service-extension account-service-type
+                             (const %tlsdate-accounts))))))
+
+(define* (tlsdate-service #:key (config (tlsdate-configuration)))
+  "Return a service that runs @command{tlsdate}, a simple TCP based
+time service.
+
+The optional @var{config} argument should be a
+@code{<tlsdate-configuration>} object, by default it querries gnu.org
+for time once at boot."
+  (service tlsdate-service-type config))
+
+\f
+;;;
 ;;; Tor.
 ;;;
 
-- 
2.11.0

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

* Re: [PATCH 2/2] services: Add tlsdate-service.
  2016-12-05 18:31       ` [PATCH 2/2] services: Add tlsdate-service ng0
@ 2016-12-07  7:18         ` Chris Marusich
  2016-12-07 12:04           ` ng0
  0 siblings, 1 reply; 36+ messages in thread
From: Chris Marusich @ 2016-12-07  7:18 UTC (permalink / raw)
  To: ng0; +Cc: guix-devel

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

Hi ng0!

Neat, I never knew about tlsdate until now!

ng0 <ng0@libertad.pw> writes:

> * gnu/services/networking.scm (<tlsdate-configuration>): New record type.
> (%tlsdate-accounts): New variables.
> (tlsdate-shepherd-service): New procedure.
> (tlsdate-service-type): New variable.
> * doc/guix.texi (Networking Services): Document it.
> ---
>  doc/guix.texi               | 32 +++++++++++++++++
>  gnu/services/networking.scm | 84 ++++++++++++++++++++++++++++++++++++++++++++-
>  2 files changed, 115 insertions(+), 1 deletion(-)
>
> diff --git a/doc/guix.texi b/doc/guix.texi
> index 4d7f96d90..f6efd040d 100644
> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -8594,6 +8594,38 @@ make an initial adjustment of more than 1,000 seconds.
>  List of host names used as the default NTP servers.
>  @end defvr
>  
> +@cindex tlsdate
> +@deffn {Scheme Procedure} tlsdate-service [#:config (tlsdate-configuration)]
> +
> +Return a service that runs @command{tlsdate}, a simple TCP based time service.
> +The daemon will synchronize the system clock with a server of your
> +choice via TCP at boot.

When you said TCP, did you mean TLS?

Are we running the daemon, or are we just running the tlsdate command
once at boot?

> +The optional @var{config} argument should be a
> +@code{<tlsdate-configuration>} object, by default it syncs the time with gnu.org.
> +
> +@end deffn
> +
> +@deftp {Data Type} tlsdate-configuration
> +Data type representing the configuration of tlsdate.
> +
> +@table @asis
> +@item @code{package} (default: @var{tlsdate})
> +Package object of the tlsdate time service.
> +
> +@item @code{port} (default: @var{'()})
> +Set the port of the remote hostname which should be used.
> +
> +@item @code{host} (default: @var{"gnu.org"})
> +Set the remote hostname which will be queried. Defaults to @code{gnu.org}.

I've briefly read about tlsdate.  Looks like it's a hack to sync time
from a "trusted" source using TLS.  Since this trust will vary by user,
wouldn't it be better to leave this field to the discretion of the user?

I think one could also argue that to be good Internet neighbors, we
should avoid putting a default hostname in here, to avoid spamming one
specific host by default with all the tlsdate traffic from this service.

> +@item @code{extra-options} (default: @var{'()})
> +Extra options will be passed to @code{tlsdate}, please run
> +@command{man tlsdate} for more information.
> +
> +@end table
> +@end deftp
> +
>  @cindex Tor
>  @deffn {Scheme Procedure} tor-service [@var{config-file}] [#:tor @var{tor}]
>  Return a service to run the @uref{https://torproject.org, Tor} anonymous
> diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
> index d672ecf68..52a899b8f 100644
> --- a/gnu/services/networking.scm
> +++ b/gnu/services/networking.scm
> @@ -3,6 +3,7 @@
>  ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
>  ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
>  ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
> +;;; Copyright © 2016 ng0 <ng0@libertad.pw>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -66,7 +67,13 @@
>              wicd-service
>              network-manager-service
>              connman-service
> -            wpa-supplicant-service-type))
> +            wpa-supplicant-service-type
> +
> +            tlsdate-service
> +            tlsdate-configuration
> +            tlsdate-service-type
> +            tlsdate-configuration?
> +            tlsdate-configuration))
>  
>  ;;; Commentary:
>  ;;;
> @@ -360,6 +367,81 @@ make an initial adjustment of more than 1,000 seconds."
>  
>  \f
>  ;;;
> +;;; tlsdate
> +;;;
> +
> +(define-record-type* <tlsdate-configuration>
> +  tlsdate-configuration make-tlsdate-configuration
> +  tlsdate-configuration?
> +  (package        tlsdate-configuration-package
> +                  (default tlsdate))
> +  (host           tlsdate-configuration-host
> +                  (default "gnu.org"))
> +  (port           tlsdate-configuration-port
> +                  (default #f))
> +  (extra-options  tlsdate-configuration-extra-options
> +                  (default '())))
> +
> +(define %tlsdate-accounts
> +  (list (user-group (name "tlsdate") (system? #t))
> +        (user-account
> +         (name "tlsdate")
> +         (group "tlsdate")
> +         (system? #t)
> +         (comment "tlsdate daemon user")

Is this really a daemon?  It looks like we're just invoking a command
which runs once at boot, but perhaps I'm mistaken.

> +         (home-directory "/var/empty")
> +         (shell (file-append shadow "/sbin/nologin")))))
> +
> +(define tlsdate-shepherd-service
> +  (match-lambda
> +    (($ <tlsdate-configuration>
> +        package host port extra-options)
> +     (let* ((tlsdate (file-append package "/bin/tlsdate"))
> +            (command `(,tlsdate
> +                       "-l" ; leap
> +                       "-t" ; timewarp
> +                       ,@(if host
> +                             `(,(string-append
> +                                 "-H" " " host))
> +                             '())
> +                       ,@(if port
> +                             `(,(string-append
> +                                 "-p" " " (number->string port)))
> +                             '())
> +                       ,@extra-options)))
> +       (list (shepherd-service
> +              ;;(provision '(tlsdate))
> +              (provision '(ntp))
> +              ;; tlsdate needs at least one network interface to be up, hence the
> +              ;; dependency on 'loopback'.
> +              (requirement '(user-processes loopback syslogd))
> +
> +              (start #~(make-forkexec-constructor '#$command

Just so I'm clear here, you've written '#$command in the gexp here
because when command is expanded via ungexp (#$), it will be expanded
into a list, and you intend to pass that list literally to the
make-forkexec-constructor procedure (at the time the gexp is run), which
is why you used quote (').  Right?

> +                                                  #:user "tlsdate"
> +                                                  #:group "tlsdate"))
> +              (stop #~(make-kill-destructor))

Does this "service" actually spawn a long-running process?  If not, will
this destructor actually be used?  If it IS used, will it send a signal
to a non-existent process (or worse, a process that happens to share the
same PID as the one we previously spawned)?  Will Shepherd repeatedly
re-spawn the "service"?  I'm still learning how Shepherd services work,
so if I'm missing something obvious, please let me know.

> +              (documentation "Run the tlsdate service.")))))))
> +
> +(define tlsdate-service-type
> +  (service-type
> +   (name 'tlsdate)
> +   (extensions
> +    (list (service-extension shepherd-root-service-type
> +                             tlsdate-shepherd-service)
> +          (service-extension account-service-type
> +                             (const %tlsdate-accounts))))))
> +
> +(define* (tlsdate-service #:key (config (tlsdate-configuration)))
> +  "Return a service that runs @command{tlsdate}, a simple TCP based
> +time service.

When you said TCP, did you mean TLS?

> +The optional @var{config} argument should be a
> +@code{<tlsdate-configuration>} object, by default it querries gnu.org
> +for time once at boot."
> +  (service tlsdate-service-type config))

When I talked with davexunit on IRC about doing something with a
side-effect once at boot, he was not in support of the idea [1], and I
agree he was right about that.  Maybe this tlsdate service is a little
different since it's happening once at EVERY boot instead of just the
very first one.  However, if we're going to add a tlsdate service,
wouldn't it make sense to use tlsdated instead of invoking tlsdate once?

Alternatively, if using tlsdated is difficult for some reason, is it
feasible to hold off on adding this service?  It seems to me like you
could accomplish what you need by running tlsdate ad-hoc when you need
it, or perhaps by configuring your own mcron job to run it periodically
(see: (guix) Scheduled Job Execution).  Again, I might be missing
something, so please let me know if that isn't a feasible alternative to
this service you're proposing.

[1] See https://gnunet.org/bot/log/guix/2016-11-30#T1216852 (excerpt follows):

[14:29:15]	<marusich>	davexunit, I see. Cool. Also, is there a way to do something "one time at first boot" in a GuixSD system, I wonder?
[14:29:44]	<davexunit>	marusich: no
[14:29:52]	<davexunit>	that goes against everything GuixSD is about
[14:30:08]	<davexunit>	if the only the first generation of a system did some side-effect
[14:30:14]	<davexunit>	it would be hard to reproduce elsewhere

-- 
Chris

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

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

* Re: [PATCH 2/2] services: Add tlsdate-service.
  2016-12-07  7:18         ` Chris Marusich
@ 2016-12-07 12:04           ` ng0
  2016-12-09  6:29             ` Chris Marusich
  0 siblings, 1 reply; 36+ messages in thread
From: ng0 @ 2016-12-07 12:04 UTC (permalink / raw)
  To: guix-devel

Chris Marusich <cmmarusich@gmail.com> writes:

> Hi ng0!
>
> Neat, I never knew about tlsdate until now!
>
> ng0 <ng0@libertad.pw> writes:
>
>> * gnu/services/networking.scm (<tlsdate-configuration>): New record type.
>> (%tlsdate-accounts): New variables.
>> (tlsdate-shepherd-service): New procedure.
>> (tlsdate-service-type): New variable.
>> * doc/guix.texi (Networking Services): Document it.
>> ---
>>  doc/guix.texi               | 32 +++++++++++++++++
>>  gnu/services/networking.scm | 84 ++++++++++++++++++++++++++++++++++++++++++++-
>>  2 files changed, 115 insertions(+), 1 deletion(-)
>>
>> diff --git a/doc/guix.texi b/doc/guix.texi
>> index 4d7f96d90..f6efd040d 100644
>> --- a/doc/guix.texi
>> +++ b/doc/guix.texi
>> @@ -8594,6 +8594,38 @@ make an initial adjustment of more than 1,000 seconds.
>>  List of host names used as the default NTP servers.
>>  @end defvr
>>  
>> +@cindex tlsdate
>> +@deffn {Scheme Procedure} tlsdate-service [#:config (tlsdate-configuration)]
>> +
>> +Return a service that runs @command{tlsdate}, a simple TCP based time service.
>> +The daemon will synchronize the system clock with a server of your
>> +choice via TCP at boot.
>
> When you said TCP, did you mean TLS?

It depends. I understand it as being different from ntp, but I
think TLS would also be correct.

> Are we running the daemon, or are we just running the tlsdate command
> once at boot?

The tlsdate command, but see further below.

>> +The optional @var{config} argument should be a
>> +@code{<tlsdate-configuration>} object, by default it syncs the time with gnu.org.
>> +
>> +@end deffn
>> +
>> +@deftp {Data Type} tlsdate-configuration
>> +Data type representing the configuration of tlsdate.
>> +
>> +@table @asis
>> +@item @code{package} (default: @var{tlsdate})
>> +Package object of the tlsdate time service.
>> +
>> +@item @code{port} (default: @var{'()})
>> +Set the port of the remote hostname which should be used.
>> +
>> +@item @code{host} (default: @var{"gnu.org"})
>> +Set the remote hostname which will be queried. Defaults to @code{gnu.org}.
>
> I've briefly read about tlsdate.  Looks like it's a hack to sync time
> from a "trusted" source using TLS.  Since this trust will vary by user,
> wouldn't it be better to leave this field to the discretion of the user?

The problem is, it defaults to google.com if we leave it
blank. I think this can be patched in the config it comes
with. But then again you could argue that so many people use
google that not using google and differing from the default would
make it obvious? I don't know much about tlsdate at the moment,
but I'm sure Jacob had an opinion and reasons why google.com was
picked.
sidenote: For my live-system I'm in the process of porting
another date/time application to Guix which eventually could
serve as a base for a gnunet based time service at some
point. The application I port uses hidden-services for getting
the time, so it's not ideal in my use case which is why tlsdate
comes before that (tor, potentially dangerous to people).

> I think one could also argue that to be good Internet neighbors, we
> should avoid putting a default hostname in here, to avoid spamming one
> specific host by default with all the tlsdate traffic from this service.
>
>> +@item @code{extra-options} (default: @var{'()})
>> +Extra options will be passed to @code{tlsdate}, please run
>> +@command{man tlsdate} for more information.
>> +
>> +@end table
>> +@end deftp
>> +
>>  @cindex Tor
>>  @deffn {Scheme Procedure} tor-service [@var{config-file}] [#:tor @var{tor}]
>>  Return a service to run the @uref{https://torproject.org, Tor} anonymous
>> diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
>> index d672ecf68..52a899b8f 100644
>> --- a/gnu/services/networking.scm
>> +++ b/gnu/services/networking.scm
>> @@ -3,6 +3,7 @@
>>  ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
>>  ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
>>  ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
>> +;;; Copyright © 2016 ng0 <ng0@libertad.pw>
>>  ;;;
>>  ;;; This file is part of GNU Guix.
>>  ;;;
>> @@ -66,7 +67,13 @@
>>              wicd-service
>>              network-manager-service
>>              connman-service
>> -            wpa-supplicant-service-type))
>> +            wpa-supplicant-service-type
>> +
>> +            tlsdate-service
>> +            tlsdate-configuration
>> +            tlsdate-service-type
>> +            tlsdate-configuration?
>> +            tlsdate-configuration))
>>  
>>  ;;; Commentary:
>>  ;;;
>> @@ -360,6 +367,81 @@ make an initial adjustment of more than 1,000 seconds."
>>  
>>  \f
>>  ;;;
>> +;;; tlsdate
>> +;;;
>> +
>> +(define-record-type* <tlsdate-configuration>
>> +  tlsdate-configuration make-tlsdate-configuration
>> +  tlsdate-configuration?
>> +  (package        tlsdate-configuration-package
>> +                  (default tlsdate))
>> +  (host           tlsdate-configuration-host
>> +                  (default "gnu.org"))
>> +  (port           tlsdate-configuration-port
>> +                  (default #f))
>> +  (extra-options  tlsdate-configuration-extra-options
>> +                  (default '())))
>> +
>> +(define %tlsdate-accounts
>> +  (list (user-group (name "tlsdate") (system? #t))
>> +        (user-account
>> +         (name "tlsdate")
>> +         (group "tlsdate")
>> +         (system? #t)
>> +         (comment "tlsdate daemon user")
>
> Is this really a daemon?  It looks like we're just invoking a command
> which runs once at boot, but perhaps I'm mistaken.

No, you are correct. I wanted to check out how the reaction and
feedback towards a one-time service at boot were, but I'll take
the feedback at the bottom of this message and switch back to the
tlsdated, which has some problems and isn't as easy as tlsdate.

>> +         (home-directory "/var/empty")
>> +         (shell (file-append shadow "/sbin/nologin")))))
>> +
>> +(define tlsdate-shepherd-service
>> +  (match-lambda
>> +    (($ <tlsdate-configuration>
>> +        package host port extra-options)
>> +     (let* ((tlsdate (file-append package "/bin/tlsdate"))
>> +            (command `(,tlsdate
>> +                       "-l" ; leap
>> +                       "-t" ; timewarp
>> +                       ,@(if host
>> +                             `(,(string-append
>> +                                 "-H" " " host))
>> +                             '())
>> +                       ,@(if port
>> +                             `(,(string-append
>> +                                 "-p" " " (number->string port)))
>> +                             '())
>> +                       ,@extra-options)))
>> +       (list (shepherd-service
>> +              ;;(provision '(tlsdate))
>> +              (provision '(ntp))
>> +              ;; tlsdate needs at least one network interface to be up, hence the
>> +              ;; dependency on 'loopback'.
>> +              (requirement '(user-processes loopback syslogd))
>> +
>> +              (start #~(make-forkexec-constructor '#$command
>
> Just so I'm clear here, you've written '#$command in the gexp here
> because when command is expanded via ungexp (#$), it will be expanded
> into a list, and you intend to pass that list literally to the
> make-forkexec-constructor procedure (at the time the gexp is run), which
> is why you used quote (').  Right?

I can respond to that once I've read more into shepherd and
gexp. Currently I just break until it's no longer broken, which
obviously is not ideal but it's one way to learn.

>> +                                                  #:user "tlsdate"
>> +                                                  #:group "tlsdate"))
>> +              (stop #~(make-kill-destructor))
>
> Does this "service" actually spawn a long-running process?  If not, will
> this destructor actually be used?  If it IS used, will it send a signal
> to a non-existent process (or worse, a process that happens to share the
> same PID as the one we previously spawned)?  Will Shepherd repeatedly
> re-spawn the "service"?  I'm still learning how Shepherd services work,
> so if I'm missing something obvious, please let me know.

Okay, this was written based on tlsdated and then rewritten but I
left some parts unchanged. This explains the "respawn until
shepherd switches tlsdate off" behavior.

>> +              (documentation "Run the tlsdate service.")))))))
>> +
>> +(define tlsdate-service-type
>> +  (service-type
>> +   (name 'tlsdate)
>> +   (extensions
>> +    (list (service-extension shepherd-root-service-type
>> +                             tlsdate-shepherd-service)
>> +          (service-extension account-service-type
>> +                             (const %tlsdate-accounts))))))
>> +
>> +(define* (tlsdate-service #:key (config (tlsdate-configuration)))
>> +  "Return a service that runs @command{tlsdate}, a simple TCP based
>> +time service.
>
> When you said TCP, did you mean TLS?

Adding to what I replied the first time you asked this, let's be
consistent and say just TLS.

>> +The optional @var{config} argument should be a
>> +@code{<tlsdate-configuration>} object, by default it querries gnu.org
>> +for time once at boot."
>> +  (service tlsdate-service-type config))
>
> When I talked with davexunit on IRC about doing something with a
> side-effect once at boot, he was not in support of the idea [1], and I
> agree he was right about that.  Maybe this tlsdate service is a little
> different since it's happening once at EVERY boot instead of just the
> very first one.  However, if we're going to add a tlsdate service,
> wouldn't it make sense to use tlsdated instead of invoking tlsdate once?
>
> Alternatively, if using tlsdated is difficult for some reason, is it
> feasible to hold off on adding this service?  It seems to me like you
> could accomplish what you need by running tlsdate ad-hoc when you need
> it, or perhaps by configuring your own mcron job to run it periodically
> (see: (guix) Scheduled Job Execution).  Again, I might be missing
> something, so please let me know if that isn't a feasible alternative to
> this service you're proposing.

My intention is to provide a service which does get the time,
regulary, but does not talk to the outside too much.
If the delay for tlsdated is set (can be part of the daemon
options) to something reasonable as default (for example 1 hour,
for my purposes I can shift it then or just use an mcron job as
you mentioned), I think this won't be an issue.
I don't think that a time service which just runs once will be an
issue, but I'd like to be proven wrong. Nothing bad happens when
ntp is run and that's also started at first boot of first
generation and continous to be started in every generation
afterwards. I think what you were talking about (in the excerpt)
is different to tlsdate.
But as a conclusion to the reasons you listed and what I've
written, I'll change this service back to tlsdated (and rename it
to tlsdated).

If our issue tracker would already be public I could link you to
more specific reasons and discussion, but so far: just assume I'm
building a system around/integrated into GuixSD which after core
(phase one) targets piece by piece to eliminate the need to fetch
information through the old internet and rather use gnunet for
those tasks. That's not easy to achieve (not in a very short
time), but this tlsdate is an intermediate solution.

**
There's an related issue:
Every service I currently work on absolutely requires network to
be tested (well except `psyced` which can cope fine just
locally), would the qemu be able to talk to outside if I created
an network bridge? Or is there more to be added? I know I had
this dicussion in the past but obviously it did not work for me
as I'm still sitting on an 90% finished 'in theory it works'
gnunet service for guix.
**

> [1] See https://gnunet.org/bot/log/guix/2016-11-30#T1216852 (excerpt follows):
>
> [14:29:15]	<marusich>	davexunit, I see. Cool. Also, is there a way to do something "one time at first boot" in a GuixSD system, I wonder?
> [14:29:44]	<davexunit>	marusich: no
> [14:29:52]	<davexunit>	that goes against everything GuixSD is about
> [14:30:08]	<davexunit>	if the only the first generation of a system did some side-effect
> [14:30:14]	<davexunit>	it would be hard to reproduce elsewhere
>
> -- 
> Chris

-- 
♥Ⓐ  ng0  | ng0.chaosnet.org

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

* Re: [PATCH 1/2] gnu: tlsdate: Use the system provided certificate store.
  2016-12-05 18:20 ` [PATCH 1/2] gnu: tlsdate: Use the system provided certificate store ng0
@ 2016-12-07 22:19   ` Ludovic Courtès
  2016-12-07 23:40     ` ng0
  0 siblings, 1 reply; 36+ messages in thread
From: Ludovic Courtès @ 2016-12-07 22:19 UTC (permalink / raw)
  To: ng0; +Cc: guix-devel

Hello!

ng0 <ng0@libertad.pw> skribis:

> * gnu/packages/ntp.scm (tlsdate)[arguments]: Configure with unprivileged user and group.
> [arguments]: Build with the system provided certificates in a new phase.

[...]

> +     '(#:configure-flags '("--with-unpriv-user=tlsdate"
> +                           "--with-unpriv-group=tlsdate")

Why?  I think the default is nobody/nogroup, which is fine no?

> +       #:phases (modify-phases %standard-phases
> +                  (add-after 'unpack 'set-cert-path
> +                    ;; Use the system certificate store, not the
> +                    ;; application bundled certificates.
> +                    (lambda _
> +                      (substitute* "Makefile.am"
> +                        (("$(sysconfdir)/tlsdate/ca-roots/tlsdate-ca-roots.conf")
> +                         "/etc/ssl/certs/ca-certificates.crt"))))

I sympathize with this but this may or may not work on foreign distros.
Still, it’s probably better (this ‘tlsdata-ca-roots.conf’ file seems to
be a 4-year old copy from Mozilla’s NSS).

WDYT?

Thanks,
Ludo’.

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

* Re: [PATCH 1/2] gnu: tlsdate: Use the system provided certificate store.
  2016-12-07 22:19   ` Ludovic Courtès
@ 2016-12-07 23:40     ` ng0
  2016-12-08  9:35       ` Ludovic Courtès
  0 siblings, 1 reply; 36+ messages in thread
From: ng0 @ 2016-12-07 23:40 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

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

> Hello!
>
> ng0 <ng0@libertad.pw> skribis:
>
>> * gnu/packages/ntp.scm (tlsdate)[arguments]: Configure with unprivileged user and group.
>> [arguments]: Build with the system provided certificates in a new phase.
>
> [...]
>
>> +     '(#:configure-flags '("--with-unpriv-user=tlsdate"
>> +                           "--with-unpriv-group=tlsdate")
>
> Why?  I think the default is nobody/nogroup, which is fine no?

I'm not sure if this is still fine when tlsdated is run. But I'll
figure out soon.

>> +       #:phases (modify-phases %standard-phases
>> +                  (add-after 'unpack 'set-cert-path
>> +                    ;; Use the system certificate store, not the
>> +                    ;; application bundled certificates.
>> +                    (lambda _
>> +                      (substitute* "Makefile.am"
>> +                        (("$(sysconfdir)/tlsdate/ca-roots/tlsdate-ca-roots.conf")
>> +                         "/etc/ssl/certs/ca-certificates.crt"))))
>
> I sympathize with this but this may or may not work on foreign distros.
> Still, it’s probably better (this ‘tlsdata-ca-roots.conf’ file seems to
> be a 4-year old copy from Mozilla’s NSS).
>
> WDYT?
>
> Thanks,
> Ludo’.
>

I don't really like the current way to setenv everything, but is
this something we could do here to keep other distros happy? if
so, what's a good suggestion how to apply this?

-- 
♥Ⓐ  ng0  | ng0.chaosnet.org

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

* Re: [PATCH 1/2] gnu: tlsdate: Use the system provided certificate store.
  2016-12-07 23:40     ` ng0
@ 2016-12-08  9:35       ` Ludovic Courtès
  2017-01-18 20:31         ` ng0
  0 siblings, 1 reply; 36+ messages in thread
From: Ludovic Courtès @ 2016-12-08  9:35 UTC (permalink / raw)
  To: ng0; +Cc: guix-devel

ng0 <ng0@libertad.pw> skribis:

> Ludovic Courtès <ludo@gnu.org> writes:
>
>> Hello!
>>
>> ng0 <ng0@libertad.pw> skribis:
>>
>>> * gnu/packages/ntp.scm (tlsdate)[arguments]: Configure with unprivileged user and group.
>>> [arguments]: Build with the system provided certificates in a new phase.
>>
>> [...]
>>
>>> +     '(#:configure-flags '("--with-unpriv-user=tlsdate"
>>> +                           "--with-unpriv-group=tlsdate")
>>
>> Why?  I think the default is nobody/nogroup, which is fine no?

s/I think//

> I'm not sure if this is still fine when tlsdated is run. But I'll
> figure out soon.

Right.  The choice between “nobody” and “tlsdate” is purely cosmetic.

>>> +       #:phases (modify-phases %standard-phases
>>> +                  (add-after 'unpack 'set-cert-path
>>> +                    ;; Use the system certificate store, not the
>>> +                    ;; application bundled certificates.
>>> +                    (lambda _
>>> +                      (substitute* "Makefile.am"
>>> +                        (("$(sysconfdir)/tlsdate/ca-roots/tlsdate-ca-roots.conf")
>>> +                         "/etc/ssl/certs/ca-certificates.crt"))))
>>
>> I sympathize with this but this may or may not work on foreign distros.
>> Still, it’s probably better (this ‘tlsdata-ca-roots.conf’ file seems to
>> be a 4-year old copy from Mozilla’s NSS).
>>
>> WDYT?
>>
>> Thanks,
>> Ludo’.
>>
>
> I don't really like the current way to setenv everything, but is
> this something we could do here to keep other distros happy? if
> so, what's a good suggestion how to apply this?

Actually there’s an even better option: add a dependency on ‘nss-certs’
and change the above substitution to refer to it.  This would always
work.

Problem is ‘nss-certs’ doesn’t have the single-file certificate bundle
so you’d have to create that, essentially by duplicating
‘ca-certificate-bundle’ from (guix profiles).

Could you do that?

Thanks!

Ludo’.

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

* Re: [PATCH 2/2] services: Add tlsdate-service.
  2016-12-07 12:04           ` ng0
@ 2016-12-09  6:29             ` Chris Marusich
  0 siblings, 0 replies; 36+ messages in thread
From: Chris Marusich @ 2016-12-09  6:29 UTC (permalink / raw)
  To: ng0; +Cc: guix-devel

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

ng0 <ng0@libertad.pw> writes:

> The problem is, it defaults to google.com if we leave it
> blank. I think this can be patched in the config it comes
> with. But then again you could argue that so many people use
> google that not using google and differing from the default would
> make it obvious? I don't know much about tlsdate at the moment,
> but I'm sure Jacob had an opinion and reasons why google.com was
> picked.

I see.  I'd say just use the default that comes with the package.  If a
user needs to update it to something else, they probably know what
they're doing and whom they trust.

>> Is this really a daemon?  It looks like we're just invoking a command
>> which runs once at boot, but perhaps I'm mistaken.
>
> No, you are correct. I wanted to check out how the reaction and
> feedback towards a one-time service at boot were, but I'll take
> the feedback at the bottom of this message and switch back to the
> tlsdated, which has some problems and isn't as easy as tlsdate.

I'm not 100% certain that "run a command once at boot (every time we
boot)" is bad, but I do think that if we can use the daemon instead, it
is obviously a better fit for the "service" model.

> Adding to what I replied the first time you asked this, let's be
> consistent and say just TLS.

Cool.  I don't know much about tlsdate, though.  If in fact it is
getting the timestamp from TCP, then the word "TCP" seems correct.
However, based on what I've read [1], tcpdate gets the time from the TLS
handshake [1], so "TLS" seems correct to me.

> I don't think that a time service which just runs once will be an
> issue, but I'd like to be proven wrong.

You're probably right about this.  I think I may have overreacted.  I
think that practically speaking, a "service" which just runs tlsdate
once at boot (every time we boot) is a little ugly (because it's a
stretch to say that it's a "service"), but it's not bad.  However, I do
still think that tlsdated is the natural fit for the "service" model,
since it is a daemon, and tlsdate is not.  So why not use it?

I agree: I think the problem David and I were discussing earlier in IRC
is different, and uglier.  For details, please refer to the IRC log.

> If our issue tracker would already be public I could link you to
> more specific reasons and discussion, but so far: just assume I'm
> building a system around/integrated into GuixSD which after core
> (phase one) targets piece by piece to eliminate the need to fetch
> information through the old internet and rather use gnunet for
> those tasks. That's not easy to achieve (not in a very short
> time), but this tlsdate is an intermediate solution.

Sounds cool!

> **
> There's an related issue:
> Every service I currently work on absolutely requires network to
> be tested (well except `psyced` which can cope fine just
> locally), would the qemu be able to talk to outside if I created
> an network bridge? Or is there more to be added? I know I had
> this dicussion in the past but obviously it did not work for me
> as I'm still sitting on an 90% finished 'in theory it works'
> gnunet service for guix.
> **

There are many ways to launch a qemu virtual machine.  If you use "the
right" combination of options, your guest will be able send IP packets
to other hosts on the Internet.  I'd be happy to help troubleshoot
whatever problems you're having - if you're interested, please contact
me privately (or start a new email thread) so we don't derail this email
thread.

-- 
Chris

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

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

* (unknown), 
@ 2016-12-19 17:50 John Darrington
  0 siblings, 0 replies; 36+ messages in thread
From: John Darrington @ 2016-12-19 17:50 UTC (permalink / raw)
  To: guix-devel


Thanks to Ludovic for showing me how to fix this.

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

* (unknown), 
@ 2017-01-02 19:22 manolis837
  0 siblings, 0 replies; 36+ messages in thread
From: manolis837 @ 2017-01-02 19:22 UTC (permalink / raw)
  To: guix-devel


Hello everyone,

The idea behind this patch is to remove the ugly (string-match (or "i586-pc-gnu" "i586-gnu") ...) I had 
everywhere.

Manolis

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

* Re: [PATCH 1/2] gnu: tlsdate: Use the system provided certificate store.
  2016-12-08  9:35       ` Ludovic Courtès
@ 2017-01-18 20:31         ` ng0
  2017-01-20 13:31           ` Ludovic Courtès
  0 siblings, 1 reply; 36+ messages in thread
From: ng0 @ 2017-01-18 20:31 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

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

> ng0 <ng0@libertad.pw> skribis:
>
>> Ludovic Courtès <ludo@gnu.org> writes:
>>
>>> Hello!
>>>
>>> ng0 <ng0@libertad.pw> skribis:
>>>
>>>> * gnu/packages/ntp.scm (tlsdate)[arguments]: Configure with unprivileged user and group.
>>>> [arguments]: Build with the system provided certificates in a new phase.
>>>
>>> [...]
>>>
>>>> +     '(#:configure-flags '("--with-unpriv-user=tlsdate"
>>>> +                           "--with-unpriv-group=tlsdate")
>>>
>>> Why?  I think the default is nobody/nogroup, which is fine no?
>
> s/I think//
>
>> I'm not sure if this is still fine when tlsdated is run. But I'll
>> figure out soon.
>
> Right.  The choice between “nobody” and “tlsdate” is purely cosmetic.
>
>>>> +       #:phases (modify-phases %standard-phases
>>>> +                  (add-after 'unpack 'set-cert-path
>>>> +                    ;; Use the system certificate store, not the
>>>> +                    ;; application bundled certificates.
>>>> +                    (lambda _
>>>> +                      (substitute* "Makefile.am"
>>>> +                        (("$(sysconfdir)/tlsdate/ca-roots/tlsdate-ca-roots.conf")
>>>> +                         "/etc/ssl/certs/ca-certificates.crt"))))
>>>
>>> I sympathize with this but this may or may not work on foreign distros.
>>> Still, it’s probably better (this ‘tlsdata-ca-roots.conf’ file seems to
>>> be a 4-year old copy from Mozilla’s NSS).
>>>
>>> WDYT?
>>>
>>> Thanks,
>>> Ludo’.
>>>
>>
>> I don't really like the current way to setenv everything, but is
>> this something we could do here to keep other distros happy? if
>> so, what's a good suggestion how to apply this?
>
> Actually there’s an even better option: add a dependency on ‘nss-certs’
> and change the above substitution to refer to it.  This would always
> work.
>
> Problem is ‘nss-certs’ doesn’t have the single-file certificate bundle
> so you’d have to create that, essentially by duplicating
> ‘ca-certificate-bundle’ from (guix profiles).
>
> Could you do that?

I agree this is a better approach. Is there an easy way (like import
ca-certificate-bundle from module guix profiles) or do I have to
really recreate it all in the ntp module in a phase of tlsdate
where it can only be used by tlsdate again?

> Thanks!
>
> Ludo’.
>

-- 
♥Ⓐ  ng0 -- https://www.inventati.org/patternsinthechaos/

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

* Re: [PATCH 1/2] gnu: tlsdate: Use the system provided certificate store.
  2017-01-18 20:31         ` ng0
@ 2017-01-20 13:31           ` Ludovic Courtès
  0 siblings, 0 replies; 36+ messages in thread
From: Ludovic Courtès @ 2017-01-20 13:31 UTC (permalink / raw)
  To: ng0; +Cc: guix-devel

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

> Ludovic Courtès <ludo@gnu.org> writes:
>
>> ng0 <ng0@libertad.pw> skribis:
>>
>>> Ludovic Courtès <ludo@gnu.org> writes:
>>>
>>>> Hello!
>>>>
>>>> ng0 <ng0@libertad.pw> skribis:
>>>>
>>>>> * gnu/packages/ntp.scm (tlsdate)[arguments]: Configure with unprivileged user and group.
>>>>> [arguments]: Build with the system provided certificates in a new phase.
>>>>
>>>> [...]
>>>>
>>>>> +     '(#:configure-flags '("--with-unpriv-user=tlsdate"
>>>>> +                           "--with-unpriv-group=tlsdate")
>>>>
>>>> Why?  I think the default is nobody/nogroup, which is fine no?
>>
>> s/I think//
>>
>>> I'm not sure if this is still fine when tlsdated is run. But I'll
>>> figure out soon.
>>
>> Right.  The choice between “nobody” and “tlsdate” is purely cosmetic.
>>
>>>>> +       #:phases (modify-phases %standard-phases
>>>>> +                  (add-after 'unpack 'set-cert-path
>>>>> +                    ;; Use the system certificate store, not the
>>>>> +                    ;; application bundled certificates.
>>>>> +                    (lambda _
>>>>> +                      (substitute* "Makefile.am"
>>>>> +                        (("$(sysconfdir)/tlsdate/ca-roots/tlsdate-ca-roots.conf")
>>>>> +                         "/etc/ssl/certs/ca-certificates.crt"))))
>>>>
>>>> I sympathize with this but this may or may not work on foreign distros.
>>>> Still, it’s probably better (this ‘tlsdata-ca-roots.conf’ file seems to
>>>> be a 4-year old copy from Mozilla’s NSS).
>>>>
>>>> WDYT?
>>>>
>>>> Thanks,
>>>> Ludo’.
>>>>
>>>
>>> I don't really like the current way to setenv everything, but is
>>> this something we could do here to keep other distros happy? if
>>> so, what's a good suggestion how to apply this?
>>
>> Actually there’s an even better option: add a dependency on ‘nss-certs’
>> and change the above substitution to refer to it.  This would always
>> work.
>>
>> Problem is ‘nss-certs’ doesn’t have the single-file certificate bundle
>> so you’d have to create that, essentially by duplicating
>> ‘ca-certificate-bundle’ from (guix profiles).
>>
>> Could you do that?
>
> I agree this is a better approach. Is there an easy way (like import
> ca-certificate-bundle from module guix profiles) or do I have to
> really recreate it all in the ntp module in a phase of tlsdate
> where it can only be used by tlsdate again?

Hmm looks like there’s no easy way currently, sorry.  :-/
That will require a bit of fiddling.

Ludo’.

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

* (unknown), 
@ 2018-04-27 15:05 Catonano
  0 siblings, 0 replies; 36+ messages in thread
From: Catonano @ 2018-04-27 15:05 UTC (permalink / raw)
  To: guix-devel

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

it's 17:05 of april 27th

I just pulled guix and tried to build it

with this result

impossibile aprire ./doc/guix.fr.texi: No such file or directory

ERROR: In procedure lstat:
In procedure lstat: File o directory non esistente:
"/home/catonano/GNU/guix/doc/contributing.fr.texi"

[-- Attachment #2: Type: text/html, Size: 412 bytes --]

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

* (unknown)
@ 2019-05-02 16:19 znavko
  0 siblings, 0 replies; 36+ messages in thread
From: znavko @ 2019-05-02 16:19 UTC (permalink / raw)
  To: guix-devel

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

Hi! I want be able to see which version number of guix I have, not commit but human-readable version, such as 1.0.0. How to do this?
Once performing `guix pull` I saw it, but now I cannot do it this ways:

# guix describe
Generation 88 May 02 2019 17:18:30 (current)
 guix 48f19e6
 repository URL: https://git.savannah.gnu.org/git/guix.git
 branch: master
 commit: 48f19e60c4677e392ee2c23f28098cfcaf9d1710

# guix pull
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
Building from this channel:
 guix https://git.savannah.gnu.org/git/guix.git 48f19e6
Computing Guix derivation for 'x86_64-linux'... |
nothing to be done

How to see guix version: 1.0.0 ?

[-- Attachment #2: Type: text/html, Size: 1008 bytes --]

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

* (unknown)
@ 2020-04-13  9:53 elaexuotee
  0 siblings, 0 replies; 36+ messages in thread
From: elaexuotee @ 2020-04-13  9:53 UTC (permalink / raw)
  To: guix-devel


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


Attempting to define and build my own package for the first time, I am havi=
ng trouble
simply setting up the basic environment. In particular, make is failing wit=
h a
plethora of "@ref reference to nonexistent node" errors on doc/*.de.texi fi=
les.

It looks like issues #35913 and #35786 may be related; however, at the mome=
nt
issues.guix.gnu.org is returning 500 when I attempt to open them.

Attached is the output of make, and below is how I am getting to that point=
:

    $ guix environment --pure guix --ad-hoc coreutils findutils which
    $ ./bootstrap
    $ ./configure --localstatedir=3D/var
    $ make

Am I just flubbing up something simple? For clarity, this is happening on a=
 freshly
pulled master:

    $ git rev-parse HEAD
    f6145358c7d33e73c0708bbe400e6e8e65512ef3



[-- Attachment #1.2: make.log --]
[-- Type: text/plain, Size: 47367 bytes --]

make  all-recursive
make[1]: Entering directory '/home/x/devel/guix'
Making all in po/guix
make[2]: Entering directory '/home/x/devel/guix/po/guix'
make[2]: Leaving directory '/home/x/devel/guix/po/guix'
Making all in po/packages
make[2]: Entering directory '/home/x/devel/guix/po/packages'
make[2]: Leaving directory '/home/x/devel/guix/po/packages'
make[2]: Entering directory '/home/x/devel/guix'
  MAKEINFO doc/guix.de.info
./doc/guix.de.texi:419: @ref reference to nonexistent node `GNU Distribution'
./doc/guix.de.texi:431: @ref reference to nonexistent node `Invoking guix package'
./doc/guix.de.texi:432: @ref reference to nonexistent node `Development'
./doc/guix.de.texi:433: @ref reference to nonexistent node `Utilities'
./doc/guix.de.texi:434: @ref reference to nonexistent node `Programming Interface'
./doc/guix.de.texi:437: @ref reference to nonexistent node `Setting Up the Daemon'
./doc/guix.de.texi:439: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:446: @ref reference to nonexistent node `Defining
Packages'
./doc/guix.de.texi:448: @ref reference to nonexistent node `Package Modules'
./doc/guix.de.texi:450: @ref reference to nonexistent node `Package Transformation Options'
./doc/guix.de.texi:456: @ref reference to nonexistent node `Acknowledgments'
./doc/guix.de.texi:473: @ref reference to nonexistent node `The Store'
./doc/guix.de.texi:482: @ref reference to nonexistent node `Features'
./doc/guix.de.texi:493: @ref reference to nonexistent node `System Installation'
./doc/guix.de.texi:504: @ref reference to nonexistent node `Invoking guix package'
./doc/guix.de.texi:544: @ref reference to nonexistent node `System Configuration'
./doc/guix.de.texi:555: @ref reference to nonexistent node `Porting'
./doc/guix.de.texi:558: @ref reference to nonexistent node `Contributing'
./doc/guix.de.texi:576: @ref reference to nonexistent node `System
Installation'
./doc/guix.de.texi:591: @ref reference to nonexistent node `Invoking guix pull'
./doc/guix.de.texi:683: @ref reference to nonexistent node `The Store'
./doc/guix.de.texi:700: @ref reference to nonexistent node `Invoking guix pull'
./doc/guix.de.texi:718: @ref reference to nonexistent node `Build Environment Setup'
./doc/guix.de.texi:785: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:795: @ref reference to nonexistent node `Application Setup'
./doc/guix.de.texi:823: @ref reference to nonexistent node `Invoking guix pack'
./doc/guix.de.texi:867: @pxref reference to nonexistent node `Daemon Offload Setup'
./doc/guix.de.texi:868: @pxref reference to nonexistent node `Invoking guix copy'
./doc/guix.de.texi:901: @ref reference to nonexistent node `The Store'
./doc/guix.de.texi:945: @ref reference to nonexistent node `Requirements'
./doc/guix.de.texi:969: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:989: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:1028: @ref reference to nonexistent node `Introduction'
./doc/guix.de.texi:1049: @ref reference to nonexistent node `Invoking guix-daemon'
./doc/guix.de.texi:1054: @ref reference to nonexistent node `Invoking guix system'
./doc/guix.de.texi:1116: @ref reference to nonexistent node `Derivations'
./doc/guix.de.texi:1117: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:1289: @ref reference to nonexistent node `Invoking guix archive'
./doc/guix.de.texi:1460: @ref reference to nonexistent node `Setting Up the
Daemon'
./doc/guix.de.texi:1472: @ref reference to nonexistent node `Programming Interface'
./doc/guix.de.texi:1478: @ref reference to nonexistent node `Features'
./doc/guix.de.texi:1489: @ref reference to nonexistent node `Invoking guix build'
./doc/guix.de.texi:1497: @ref reference to nonexistent node `Invoking guix processes'
./doc/guix.de.texi:1504: @ref reference to nonexistent node `Setting Up the Daemon'
./doc/guix.de.texi:1510: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:1514: @ref reference to nonexistent node `The Store'
./doc/guix.de.texi:1524: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:1529: @ref reference to nonexistent node `Daemon Offload Setup'
./doc/guix.de.texi:1540: @ref reference to nonexistent node `Invoking guix gc'
./doc/guix.de.texi:1549: @ref reference to nonexistent node `Invoking guix build'
./doc/guix.de.texi:1561: @ref reference to nonexistent node `Daemon Offload Setup'
./doc/guix.de.texi:1572: @ref reference to nonexistent node `Common Build Options'
./doc/guix.de.texi:1582: @ref reference to nonexistent node `Common Build
Options'
./doc/guix.de.texi:1589: @ref reference to nonexistent node `Invoking guix build'
./doc/guix.de.texi:1602: @ref reference to nonexistent node `Invoking guix build'
./doc/guix.de.texi:1652: @ref reference to nonexistent node `Invoking
guix gc'
./doc/guix.de.texi:1721: @ref reference to nonexistent node `The Store'
./doc/guix.de.texi:1871: @ref reference to nonexistent node `Packages with Multiple Outputs'
./doc/guix.de.texi:1913: @ref reference to nonexistent node `X.509 Certificates'
./doc/guix.de.texi:1966: @ref reference to nonexistent node `Invoking guix pull'
./doc/guix.de.texi:1988: @ref reference to nonexistent node `Invoking guix system'
./doc/guix.de.texi:2048: @ref reference to nonexistent node `Services'
./doc/guix.de.texi:2052: @ref reference to nonexistent node `Desktop
Services'
./doc/guix.de.texi:2060: @ref reference to nonexistent node `Contributing'
./doc/guix.de.texi:2084: @ref reference to nonexistent node `operating-system
Reference'
./doc/guix.de.texi:2210: @ref reference to nonexistent node `Installing Guix in a VM'
./doc/guix.de.texi:2219: @ref reference to nonexistent node `Guided Graphical
Installation'
./doc/guix.de.texi:2223: @ref reference to nonexistent node `Manual Installation'
./doc/guix.de.texi:2276: @ref reference to nonexistent node `Using the
Configuration System'
./doc/guix.de.texi:2279: @ref reference to nonexistent node `After System Installation'
./doc/guix.de.texi:2291: @ref reference to nonexistent node `Guided Graphical Installation'
./doc/guix.de.texi:2300: @ref reference to nonexistent node `Invoking guix package'
./doc/guix.de.texi:2498: @ref reference to nonexistent node `Bootloader Configuration'
./doc/guix.de.texi:2516: @ref reference to nonexistent node `File
Systems'
./doc/guix.de.texi:2623: @ref reference to nonexistent node `Using the Configuration System'
./doc/guix.de.texi:2661: @ref reference to nonexistent node `Mapped Devices'
./doc/guix.de.texi:2677: @ref reference to nonexistent node `Invoking guix system'
./doc/guix.de.texi:2687: @ref reference to nonexistent node `After System Installation'
./doc/guix.de.texi:2705: @ref reference to nonexistent node `Invoking guix system'
./doc/guix.de.texi:2707: @ref reference to nonexistent node `Security Updates'
./doc/guix.de.texi:2746: @ref reference to nonexistent node `USB Stick and DVD
Installation'
./doc/guix.de.texi:2773: @ref reference to nonexistent node `Running Guix in a VM'
./doc/guix.de.texi:2778: @ref reference to nonexistent node `Preparing for Installation'
./doc/guix.de.texi:2783: @ref reference to nonexistent node `Running Guix in a VM'
./doc/guix.de.texi:2798: @ref reference to nonexistent node `Invoking guix
system'
./doc/guix.de.texi:2829: @ref reference to nonexistent node `Invoking guix
package'
./doc/guix.de.texi:2877: @ref reference to nonexistent node `Invoking guix package'
./doc/guix.de.texi:2896: @ref reference to nonexistent node `Using the Configuration System'
./doc/guix.de.texi:2901: @ref reference to nonexistent node `Invoking guix
gc'
./doc/guix.de.texi:2909: @ref reference to nonexistent node `Introduction'
./doc/guix.de.texi:2918: @ref reference to nonexistent node `Invoking guix-daemon'
./doc/guix.de.texi:2926: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:2929: @ref reference to nonexistent node `Invoking guix challenge'
./doc/guix.de.texi:2935: @ref reference to nonexistent node `Invoking guix environment'
./doc/guix.de.texi:2941: @ref reference to nonexistent node `Invoking guix
pull'
./doc/guix.de.texi:3027: @ref reference to nonexistent node `Invoking guix gc'
./doc/guix.de.texi:3053: @ref reference to nonexistent node `Packages with Multiple
Outputs'
./doc/guix.de.texi:3055: @ref reference to nonexistent node `Package
Modules'
./doc/guix.de.texi:3096: @ref reference to nonexistent node `Defining Packages'
./doc/guix.de.texi:3105: @ref reference to nonexistent node `Invoking guix
environment'
./doc/guix.de.texi:3128: @ref reference to nonexistent node `Invoking guix pull'
./doc/guix.de.texi:3431: @pxref reference to nonexistent node `GNU Distribution'
./doc/guix.de.texi:3436: @ref reference to nonexistent node `Packages with Multiple Outputs'
./doc/guix.de.texi:3449: @ref reference to nonexistent node `Packages
with Multiple Outputs'
./doc/guix.de.texi:3501: @ref reference to nonexistent node `Common
Build Options'
./doc/guix.de.texi:3503: @ref reference to nonexistent node `Package Transformation
Options'
./doc/guix.de.texi:3509: @ref reference to nonexistent node `Defining Packages'
./doc/guix.de.texi:3524: @ref reference to nonexistent node `Derivations'
./doc/guix.de.texi:3561: @ref reference to nonexistent node `GNU Distribution'
./doc/guix.de.texi:3580: @ref reference to nonexistent node `Invoking guix archive'
./doc/guix.de.texi:3632: @ref reference to nonexistent node `Invoking guix-daemon'
./doc/guix.de.texi:3708: @ref reference to nonexistent node `Invoking
guix weather'
./doc/guix.de.texi:3726: @ref reference to nonexistent node `Invoking guix publish'
./doc/guix.de.texi:3729: @ref reference to nonexistent node `Features'
./doc/guix.de.texi:3736: @ref reference to nonexistent node `Invoking guix challenge'
./doc/guix.de.texi:3792: @ref reference to nonexistent node `Invoking guix size'
./doc/guix.de.texi:3793: @ref reference to nonexistent node `Invoking guix graph'
./doc/guix.de.texi:3799: @ref reference to nonexistent node `Installing Debugging Files'
./doc/guix.de.texi:3801: @ref reference to nonexistent node `Invoking guix package'
./doc/guix.de.texi:3827: @ref reference to nonexistent node `Invoking guix build'
./doc/guix.de.texi:3833: @ref reference to nonexistent node `Invoking guix
package'
./doc/guix.de.texi:3846: @ref reference to nonexistent node `Scheduled Job Execution'
./doc/guix.de.texi:3912: @ref reference to nonexistent node `Invoking guix-daemon'
./doc/guix.de.texi:3959: @ref reference to nonexistent node `Invoking guix size'
./doc/guix.de.texi:3961: @ref reference to nonexistent node `Invoking guix graph'
./doc/guix.de.texi:3967: @ref reference to nonexistent node `Derivations'
./doc/guix.de.texi:4012: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:4016: @ref reference to nonexistent node `Invoking guix build'
./doc/guix.de.texi:4025: @ref reference to nonexistent node `Invoking guix-daemon'
./doc/guix.de.texi:4049: @ref reference to nonexistent node `Channels'
./doc/guix.de.texi:4081: @ref reference to nonexistent node `Documentation'
./doc/guix.de.texi:4119: @ref reference to nonexistent node `Invoking guix describe'
./doc/guix.de.texi:4124: @ref reference to nonexistent node `Invoking guix
package'
./doc/guix.de.texi:4136: @ref reference to nonexistent node `Invoking guix
package'
./doc/guix.de.texi:4167: @ref reference to nonexistent node `Channels'
./doc/guix.de.texi:4175: @ref reference to nonexistent node `Channels'
./doc/guix.de.texi:4188: @ref reference to nonexistent node `Invoking guix package'
./doc/guix.de.texi:4228: @ref reference to nonexistent node `Invoking guix describe'
./doc/guix.de.texi:4259: @ref reference to nonexistent node `Channels'
./doc/guix.de.texi:4262: @ref reference to nonexistent node `Common Build Options'
./doc/guix.de.texi:4273: @ref reference to nonexistent node `Invoking guix
pull'
./doc/guix.de.texi:4315: @ref reference to nonexistent node `Package Modules'
./doc/guix.de.texi:4332: @ref reference to nonexistent node `Contributing'
./doc/guix.de.texi:4562: @ref reference to nonexistent node `Invoking guix describe'
./doc/guix.de.texi:4564: @ref reference to nonexistent node `Invoking guix pull'
./doc/guix.de.texi:4565: @ref reference to nonexistent node `Invoking guix time-machine'
./doc/guix.de.texi:4578: @ref reference to nonexistent node `Inferiors'
./doc/guix.de.texi:4594: @ref reference to nonexistent node `Invoking guix describe'
./doc/guix.de.texi:4605: @pxref reference to nonexistent node `Invoking guix pull'
./doc/guix.de.texi:4619: @ref reference to nonexistent node `Channels'
./doc/guix.de.texi:4635: @ref reference to nonexistent node `Common
Build Options'
./doc/guix.de.texi:4657: @ref reference to nonexistent node `Invoking guix repl'
./doc/guix.de.texi:4664: @ref reference to nonexistent node `Channels'
./doc/guix.de.texi:4672: @ref reference to nonexistent node `Invoking guix package'
./doc/guix.de.texi:4761: @ref reference to nonexistent node `package Reference'
./doc/guix.de.texi:4769: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:4771: @ref reference to nonexistent node `Invoking guix package'
./doc/guix.de.texi:4795: @ref reference to nonexistent node `Channels'
./doc/guix.de.texi:4809: @ref reference to nonexistent node `Invoking guix pull'
./doc/guix.de.texi:4832: @ref reference to nonexistent node `Invoking guix pull'
./doc/guix.de.texi:4853: @ref reference to nonexistent node `Invoking guix pull'
./doc/guix.de.texi:4880: @ref reference to nonexistent node `Invoking guix pack'
./doc/guix.de.texi:4892: @ref reference to nonexistent node `Invoking
guix package'
./doc/guix.de.texi:4904: @ref reference to nonexistent node `Common Build Options'
./doc/guix.de.texi:4930: @ref reference to nonexistent node `Invoking guix copy'
./doc/guix.de.texi:5016: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:5042: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:5217: @ref reference to nonexistent node `Invoking
guix gc'
./doc/guix.de.texi:5256: @ref reference to nonexistent node `Defining Packages'
./doc/guix.de.texi:5292: @ref reference to nonexistent node `Packages with
Multiple Outputs'
./doc/guix.de.texi:5432: @ref reference to nonexistent node `Common Build Options'
./doc/guix.de.texi:5433: @ref reference to nonexistent node `Package Transformation Options'
./doc/guix.de.texi:5446: @ref reference to nonexistent node `Invoking guix copy'
./doc/guix.de.texi:5446: @ref reference to nonexistent node `Invoking guix publish'
./doc/guix.de.texi:5447: @ref reference to nonexistent node `Invoking guix archive'
./doc/guix.de.texi:5478: @ref reference to nonexistent node `Binary Installation'
./doc/guix.de.texi:5682: @ref reference to nonexistent node `Additional Build Options'
./doc/guix.de.texi:5737: @ref reference to nonexistent node `Channels'
./doc/guix.de.texi:5767: @ref reference to nonexistent node `The Store'
./doc/guix.de.texi:5768: @ref reference to nonexistent node `Invoking guix gc'
./doc/guix.de.texi:5775: @ref reference to nonexistent node `Binary Installation'
./doc/guix.de.texi:5787: @ref reference to nonexistent node `Common Build Options'
./doc/guix.de.texi:5788: @ref reference to nonexistent node `Package Transformation Options'
./doc/guix.de.texi:5849: @ref reference to nonexistent node `Defining Packages'
./doc/guix.de.texi:5873: @ref reference to nonexistent node `Common Build Options'
./doc/guix.de.texi:5881: @ref reference to nonexistent node `Channels'
./doc/guix.de.texi:5951: @ref reference to nonexistent node `Invoking guix import'
./doc/guix.de.texi:5957: @ref reference to nonexistent node `Package Modules'
./doc/guix.de.texi:5964: @ref reference to nonexistent node `origin
Reference'
./doc/guix.de.texi:5977: @ref reference to nonexistent node `Invoking guix download'
./doc/guix.de.texi:5977: @ref reference to nonexistent node `Invoking guix
hash'
./doc/guix.de.texi:5989: @ref reference to nonexistent node `Build Systems'
./doc/guix.de.texi:5996: @ref reference to nonexistent node `Build Systems'
./doc/guix.de.texi:6045: @ref reference to nonexistent node `Build Systems'
./doc/guix.de.texi:6053: @ref reference to nonexistent node `package Reference'
./doc/guix.de.texi:6058: @ref reference to nonexistent node `Invoking guix build'
./doc/guix.de.texi:6059: @ref reference to nonexistent node `Debugging Build Failures'
./doc/guix.de.texi:6061: @ref reference to nonexistent node `Invoking guix edit'
./doc/guix.de.texi:6062: @ref reference to nonexistent node `Packaging Guidelines'
./doc/guix.de.texi:6063: @ref reference to nonexistent node `Invoking guix lint'
./doc/guix.de.texi:6067: @ref reference to nonexistent node `Channels'
./doc/guix.de.texi:6073: @ref reference to nonexistent node `Invoking guix refresh'
./doc/guix.de.texi:6079: @ref reference to nonexistent node `The Store'
./doc/guix.de.texi:6083: @ref reference to nonexistent node `Derivations'
./doc/guix.de.texi:6089: @ref reference to nonexistent node `The Store'
./doc/guix.de.texi:6147: @ref reference to nonexistent node `Package Transformation Options'
./doc/guix.de.texi:6197: @ref reference to nonexistent node `Defining Packages'
./doc/guix.de.texi:6212: @ref reference to nonexistent node `origin Reference'
./doc/guix.de.texi:6215: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:6219: @ref reference to nonexistent node `Build Systems'
./doc/guix.de.texi:6235: @ref reference to nonexistent node `Packages with Multiple Outputs'
./doc/guix.de.texi:6256: @ref reference to nonexistent node `Invoking guix lint'
./doc/guix.de.texi:6281: @ref reference to nonexistent node `Packages with Multiple Outputs'
./doc/guix.de.texi:6293: @ref reference to nonexistent node `Security Updates'
./doc/guix.de.texi:6349: @ref reference to nonexistent node `Defining
Packages'
./doc/guix.de.texi:6394: @ref reference to nonexistent node `Invoking guix download'
./doc/guix.de.texi:6394: @ref reference to nonexistent node `Invoking
guix hash'
./doc/guix.de.texi:6407: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:6416: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:6443: @ref reference to nonexistent node `Defining Packages'
./doc/guix.de.texi:6459: @ref reference to nonexistent node `Derivations'
./doc/guix.de.texi:6463: @ref reference to nonexistent node `Defining Packages'
./doc/guix.de.texi:6468: @ref reference to nonexistent node `Derivations'
./doc/guix.de.texi:6527: @ref reference to nonexistent node `Installing Debugging Files'
./doc/guix.de.texi:6641: @ref reference to nonexistent node `Python Modules'
./doc/guix.de.texi:7406: @ref reference to nonexistent node `Derivations'
./doc/guix.de.texi:7430: @ref reference to nonexistent node `Invoking guix-daemon'
./doc/guix.de.texi:7439: @ref reference to nonexistent node `Introduction'
./doc/guix.de.texi:7441: @ref reference to nonexistent node `Invoking guix gc'
./doc/guix.de.texi:7486: @ref reference to nonexistent node `Invoking
guix-daemon'
./doc/guix.de.texi:7492: @pxref reference to nonexistent node `Requirements'
./doc/guix.de.texi:7501: @ref reference to nonexistent node `Invoking guix copy'
./doc/guix.de.texi:7512: @ref reference to nonexistent node `Contributing'
./doc/guix.de.texi:7569: @ref reference to nonexistent node `The
Store Monad'
./doc/guix.de.texi:7615: @ref reference to nonexistent node `The
Store'
./doc/guix.de.texi:7633: @ref reference to nonexistent node `Invoking guix gc'
./doc/guix.de.texi:7681: @ref reference to nonexistent node `Daemon Offload Setup'
./doc/guix.de.texi:7686: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:7718: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:7843: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:8106: @ref reference to nonexistent node `Defining Packages'
./doc/guix.de.texi:8117: @ref reference to nonexistent node `Derivations'
./doc/guix.de.texi:8120: @ref reference to nonexistent node `Invoking guix-daemon'
./doc/guix.de.texi:8326: @ref reference to nonexistent node `Packages with Multiple
Outputs'
./doc/guix.de.texi:8406: @ref reference to nonexistent node `The Store Monad'
./doc/guix.de.texi:8469: @ref reference to nonexistent node `Derivations'
./doc/guix.de.texi:8515: @ref reference to nonexistent node `The Store Monad'
./doc/guix.de.texi:8554: @ref reference to nonexistent node `The Store Monad'
./doc/guix.de.texi:8799: @ref reference to nonexistent node `Package Modules'
./doc/guix.de.texi:8849: @ref reference to nonexistent node `Invoking guix package'
./doc/guix.de.texi:8878: @ref reference to nonexistent node `Package Modules'
./doc/guix.de.texi:8911: @ref reference to nonexistent node `Package Modules'
./doc/guix.de.texi:8922: @ref reference to nonexistent node `Debugging Build Failures'
./doc/guix.de.texi:8928: @ref reference to nonexistent node `The Store'
./doc/guix.de.texi:8947: @ref reference to nonexistent node `Substitution Failure'
./doc/guix.de.texi:8957: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:8965: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:8970: @ref reference to nonexistent node `Security Updates'
./doc/guix.de.texi:8981: @ref reference to nonexistent node `Invoking guix challenge'
./doc/guix.de.texi:8986: @ref reference to nonexistent node `Invoking guix archive'
./doc/guix.de.texi:8991: @ref reference to nonexistent node `Daemon Offload Setup'
./doc/guix.de.texi:9000: @ref reference to nonexistent node `Invoking guix-daemon'
./doc/guix.de.texi:9008: @ref reference to nonexistent node `Invoking guix-daemon'
./doc/guix.de.texi:9030: @ref reference to nonexistent node `Invoking guix-daemon'
./doc/guix.de.texi:9077: @ref reference to nonexistent node `Defining Packages'
./doc/guix.de.texi:9087: @ref reference to nonexistent node `Invoking guix download'
./doc/guix.de.texi:9142: @ref reference to nonexistent node `Defining Packages'
./doc/guix.de.texi:9150: @ref reference to nonexistent node `Security Updates'
./doc/guix.de.texi:9203: @ref reference to nonexistent node `origin Reference'
./doc/guix.de.texi:9243: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:9247: @ref reference to nonexistent node `Defining Packages'
./doc/guix.de.texi:9269: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:9272: @ref reference to nonexistent node `The Store Monad'
./doc/guix.de.texi:9286: @ref reference to nonexistent node `Defining Packages'
./doc/guix.de.texi:9366: @ref reference to nonexistent node `Virtualization Services'
./doc/guix.de.texi:9372: @ref reference to nonexistent node `Daemon Offload Setup'
./doc/guix.de.texi:9391: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:9392: @ref reference to nonexistent node `Invoking
guix challenge'
./doc/guix.de.texi:9425: @ref reference to nonexistent node `Invoking guix gc'
./doc/guix.de.texi:9465: @ref reference to nonexistent node `Defining Packages'
./doc/guix.de.texi:9475: @ref reference to nonexistent node `Invoking guix build'
./doc/guix.de.texi:9501: @ref reference to nonexistent node `Build Environment Setup'
./doc/guix.de.texi:9516: @ref reference to nonexistent node `Invoking guix environment'
./doc/guix.de.texi:9521: @ref reference to nonexistent node `Security Updates'
./doc/guix.de.texi:9564: @ref reference to nonexistent node `Building from Git'
./doc/guix.de.texi:9566: @ref reference to nonexistent node `Package Modules'
./doc/guix.de.texi:9584: @ref reference to nonexistent node `Defining Packages'
./doc/guix.de.texi:9594: @ref reference to nonexistent node `Invoking
guix gc'
./doc/guix.de.texi:9608: @ref reference to nonexistent node `X.509 Certificates'
./doc/guix.de.texi:9618: @ref reference to nonexistent node `Invoking guix hash'
./doc/guix.de.texi:9641: @ref reference to nonexistent node `Defining
Packages'
./doc/guix.de.texi:9679: @ref reference to nonexistent node `Invoking guix archive'
./doc/guix.de.texi:9690: @ref reference to nonexistent node `origin Reference'
./doc/guix.de.texi:9711: @ref reference to nonexistent node `Defining Packages'
./doc/guix.de.texi:9754: @ref reference to nonexistent node `Invoking guix refresh'
./doc/guix.de.texi:9925: @ref reference to nonexistent node `Defining Packages'
./doc/guix.de.texi:10145: @ref reference to nonexistent node `Contributing'
./doc/guix.de.texi:10216: @ref reference to nonexistent node `Defining Packages'
./doc/guix.de.texi:10252: @ref reference to nonexistent node `Running Guix Before It Is
Installed'
./doc/guix.de.texi:10259: @ref reference to nonexistent node `Defining Packages'
./doc/guix.de.texi:10375: @ref reference to nonexistent node `Invoking guix graph'
./doc/guix.de.texi:10479: @ref reference to nonexistent node `Package Modules'
./doc/guix.de.texi:10532: @ref reference to nonexistent node `origin
Reference'
./doc/guix.de.texi:10654: @ref reference to nonexistent node `Package Modules'
./doc/guix.de.texi:10672: @ref reference to nonexistent node `Packages with
Multiple Outputs'
./doc/guix.de.texi:10721: @ref reference to nonexistent node `Security
Updates'
./doc/guix.de.texi:10730: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:10793: @ref reference to nonexistent node `Package Modules'
./doc/guix.de.texi:10864: @ref reference to nonexistent node `Invoking guix refresh'
./doc/guix.de.texi:10882: @ref reference to nonexistent node `Build Systems'
./doc/guix.de.texi:10914: @ref reference to nonexistent node `Derivations'
./doc/guix.de.texi:10926: @ref reference to nonexistent node `Package Modules'
./doc/guix.de.texi:10942: @ref reference to nonexistent node `Invoking guix gc'
./doc/guix.de.texi:10958: @ref reference to nonexistent node `Invoking guix
gc'
./doc/guix.de.texi:11013: @ref reference to nonexistent node `Package Modules'
./doc/guix.de.texi:11020: @ref reference to nonexistent node `Package Transformation
Options'
./doc/guix.de.texi:11039: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:11050: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:11058: @ref reference to nonexistent node `Invoking guix archive'
./doc/guix.de.texi:11073: @ref reference to nonexistent node `Invoking
guix archive'
./doc/guix.de.texi:11088: @ref reference to nonexistent node `Invoking guix weather'
./doc/guix.de.texi:11092: @ref reference to nonexistent node `origin Reference'
./doc/guix.de.texi:11096: @ref reference to nonexistent node `Invoking guix hash'
./doc/guix.de.texi:11115: @ref reference to nonexistent node `Invoking
guix-daemon'
./doc/guix.de.texi:11229: @ref reference to nonexistent node `Invoking guix archive'
./doc/guix.de.texi:11245: @ref reference to nonexistent node `Invoking
guix archive'
./doc/guix.de.texi:11302: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:11313: @ref reference to nonexistent node `Introduction'
./doc/guix.de.texi:11371: @ref reference to nonexistent node `Features'
./doc/guix.de.texi:11389: @ref reference to nonexistent node `Invoking guix archive'
./doc/guix.de.texi:11488: @ref reference to nonexistent node `Requirements'
./doc/guix.de.texi:11516: @ref reference to nonexistent node `Invoking guix archive'
./doc/guix.de.texi:11542: @ref reference to nonexistent node `Common Build Options'
./doc/guix.de.texi:11557: @ref reference to nonexistent node `Invoking guix environment'
./doc/guix.de.texi:11558: @ref reference to nonexistent node `Invoking guix system'
./doc/guix.de.texi:11607: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:11612: @ref reference to nonexistent node `Invoking guix publish'
./doc/guix.de.texi:11695: @ref reference to nonexistent node `Invoking guix package'
./doc/guix.de.texi:11782: @ref reference to nonexistent node `Daemon Offload Setup'
./doc/guix.de.texi:11813: @ref reference to nonexistent node `Features'
./doc/guix.de.texi:11853: @ref reference to nonexistent node `Invoking guix
system'
./doc/guix.de.texi:11869: @ref reference to nonexistent node `operating-system Reference'
./doc/guix.de.texi:11892: @ref reference to nonexistent node `Bootloader Configuration'
./doc/guix.de.texi:11901: @ref reference to nonexistent node `Invoking guix package'
./doc/guix.de.texi:11907: @ref reference to nonexistent node `Package
Modules'
./doc/guix.de.texi:11946: @ref reference to nonexistent node `Services'
./doc/guix.de.texi:11949: @ref reference to nonexistent node `Networking
Services'
./doc/guix.de.texi:11954: @ref reference to nonexistent node `Defining Services'
./doc/guix.de.texi:11960: @ref reference to nonexistent node `Service Reference'
./doc/guix.de.texi:11965: @ref reference to nonexistent node `Base Services'
./doc/guix.de.texi:12020: @ref reference to nonexistent node `Desktop Services'
./doc/guix.de.texi:12021: @ref reference to nonexistent node `X.509
Certificates'
./doc/guix.de.texi:12043: @ref reference to nonexistent node `Invoking
guix system'
./doc/guix.de.texi:12070: @ref reference to nonexistent node `Invoking guix system'
./doc/guix.de.texi:12076: @ref reference to nonexistent node `The Store Monad'
./doc/guix.de.texi:12080: @ref reference to nonexistent node `Derivations'
./doc/guix.de.texi:12088: @ref reference to nonexistent node `Services'
./doc/guix.de.texi:12096: @ref reference to nonexistent node `Using
the Configuration System'
./doc/guix.de.texi:12102: @ref reference to nonexistent node `Using the Configuration System'
./doc/guix.de.texi:12121: @ref reference to nonexistent node `Bootloader Configuration'
./doc/guix.de.texi:12137: @ref reference to nonexistent node `Mapped
Devices'
./doc/guix.de.texi:12143: @ref reference to nonexistent node `Bootloader Configuration'
./doc/guix.de.texi:12153: @ref reference to nonexistent node `Initial RAM Disk'
./doc/guix.de.texi:12159: @ref reference to nonexistent node `Initial RAM Disk'
./doc/guix.de.texi:12168: @ref reference to nonexistent node `Hardware
Considerations'
./doc/guix.de.texi:12176: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:12182: @ref reference to nonexistent node `Mapped
Devices'
./doc/guix.de.texi:12186: @ref reference to nonexistent node `File Systems'
./doc/guix.de.texi:12196: @ref reference to nonexistent node `Mapped Devices'
./doc/guix.de.texi:12196: @ref reference to nonexistent node `File Systems'
./doc/guix.de.texi:12200: @ref reference to nonexistent node `User Accounts'
./doc/guix.de.texi:12208: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:12233: @ref reference to nonexistent node `Invoking guix package'
./doc/guix.de.texi:12265: @ref reference to nonexistent node `Services'
./doc/guix.de.texi:12271: @ref reference to nonexistent node `Service Reference'
./doc/guix.de.texi:12283: @ref reference to nonexistent node `Setuid Programs'
./doc/guix.de.texi:12288: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:12326: @ref reference to nonexistent node `Using the
Configuration System'
./doc/guix.de.texi:12396: @ref reference to nonexistent node `Mapped
Devices'
./doc/guix.de.texi:12453: @ref reference to nonexistent node `Mapped
Devices'
./doc/guix.de.texi:12581: @ref reference to nonexistent node `File Systems'
./doc/guix.de.texi:12613: @ref reference to nonexistent node `Preparing for Installation'
./doc/guix.de.texi:12626: @ref reference to nonexistent node `File Systems'
./doc/guix.de.texi:12699: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:12815: @ref reference to nonexistent node `Bootloader Configuration'
./doc/guix.de.texi:12822: @ref reference to nonexistent node `operating-system Reference'
./doc/guix.de.texi:12954: @ref reference to nonexistent node `operating-system
Reference'
./doc/guix.de.texi:13037: @ref reference to nonexistent node `operating-system Reference'
./doc/guix.de.texi:13090: @ref reference to nonexistent node `Using the
Configuration System'
./doc/guix.de.texi:13097: @ref reference to nonexistent node `Service Composition'
./doc/guix.de.texi:13098: @ref reference to nonexistent node `Shepherd Services'
./doc/guix.de.texi:13181: @ref reference to nonexistent node `Service Types and Services'
./doc/guix.de.texi:13224: @ref reference to nonexistent node `Service Reference'
./doc/guix.de.texi:13713: @ref reference to nonexistent node `Invoking guix-daemon'
./doc/guix.de.texi:13721: @ref reference to nonexistent node `Invoking guix-daemon'
./doc/guix.de.texi:13737: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:13742: @ref reference to nonexistent node `Invoking guix archive'
./doc/guix.de.texi:13744: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:13957: @ref reference to nonexistent node `Invoking guix
publish'
./doc/guix.de.texi:13963: @ref reference to nonexistent node `Invoking guix archive'
./doc/guix.de.texi:14002: @ref reference to nonexistent node `Invoking guix publish'
./doc/guix.de.texi:14009: @ref reference to nonexistent node `Invoking guix publish'
./doc/guix.de.texi:14015: @ref reference to nonexistent node `Invoking guix publish'
./doc/guix.de.texi:14021: @ref reference to nonexistent node `Invoking guix publish'
./doc/guix.de.texi:14083: @ref reference to nonexistent node `Invoking guix gc'
./doc/guix.de.texi:14088: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:14131: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:14187: @ref reference to nonexistent node `Service
Composition'
./doc/guix.de.texi:14200: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:14254: @ref reference to nonexistent node `Scheduled Job
Execution'
./doc/guix.de.texi:14275: @ref reference to nonexistent node `Scheduled Job Execution'
./doc/guix.de.texi:14365: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:14442: @ref reference to nonexistent node `Desktop
Services'
./doc/guix.de.texi:14472: @ref reference to nonexistent node `Desktop
Services'
./doc/guix.de.texi:14506: @ref reference to nonexistent node `Desktop
Services'
./doc/guix.de.texi:14540: @ref reference to nonexistent node `Installing Guix in a VM'
./doc/guix.de.texi:14544: @ref reference to nonexistent node `Web Services'
./doc/guix.de.texi:14545: @ref reference to nonexistent node `Networking Services'
./doc/guix.de.texi:14558: @ref reference to nonexistent node `Running Guix in a VM'
./doc/guix.de.texi:14680: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:14684: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:14713: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:14971: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:15377: @ref reference to nonexistent node `operating-system Reference'
./doc/guix.de.texi:15554: @ref reference to nonexistent node `operating-system Reference'
./doc/guix.de.texi:15887: @ref reference to nonexistent node `Keyboard Layout'
./doc/guix.de.texi:16868: @ref reference to nonexistent node `Networking Services'
./doc/guix.de.texi:16870: @ref reference to nonexistent node `Networking Services'
./doc/guix.de.texi:16875: @ref reference to nonexistent node `Networking Services'
./doc/guix.de.texi:16882: @ref reference to nonexistent node `operating-system Reference'
./doc/guix.de.texi:19565: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:20322: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:22490: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:22512: @ref reference to nonexistent node `Channels'
./doc/guix.de.texi:22550: @ref reference to nonexistent node `X.509 Certificates'
./doc/guix.de.texi:22665: @ref reference to nonexistent node `Web Services'
./doc/guix.de.texi:24040: @ref reference to nonexistent node `Kerberos Services'
./doc/guix.de.texi:24100: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:24196: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:25700: @ref reference to nonexistent node `Invoking guix-daemon'
./doc/guix.de.texi:25833: @ref reference to nonexistent node `Web Services'
./doc/guix.de.texi:25862: @ref reference to nonexistent node `Web
Services'
./doc/guix.de.texi:25897: @ref reference to nonexistent node `Certificate Services'
./doc/guix.de.texi:25900: @ref reference to nonexistent node `Web
Services'
./doc/guix.de.texi:25920: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:26936: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:26940: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:27611: @ref reference to nonexistent node `Setuid Programs'
./doc/guix.de.texi:27678: @ref reference to nonexistent node `The Store'
./doc/guix.de.texi:27685: @ref reference to nonexistent node `Using the Configuration
System'
./doc/guix.de.texi:27688: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:27734: @ref reference to nonexistent node `operating-system Reference'
./doc/guix.de.texi:27794: @ref reference to nonexistent node `operating-system
Reference'
./doc/guix.de.texi:27839: @ref reference to nonexistent node `Networking Services'
./doc/guix.de.texi:27841: @ref reference to nonexistent node `Desktop Services'
./doc/guix.de.texi:27842: @ref reference to nonexistent node `Base Services'
./doc/guix.de.texi:27908: @ref reference to nonexistent node `Base Services'
./doc/guix.de.texi:28049: @ref reference to nonexistent node `Mapped Devices'
./doc/guix.de.texi:28198: @ref reference to nonexistent node `Keyboard Layout'
./doc/guix.de.texi:28291: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:28298: @ref reference to nonexistent node `File Systems'
./doc/guix.de.texi:28423: @ref reference to nonexistent node `Invoking guix pull'
./doc/guix.de.texi:28440: @ref reference to nonexistent node `Invoking guix package'
./doc/guix.de.texi:28452: @ref reference to nonexistent node `Channels'
./doc/guix.de.texi:28470: @ref reference to nonexistent node `Service Reference'
./doc/guix.de.texi:28534: @ref reference to nonexistent node `Invoking guix gc'
./doc/guix.de.texi:28538: @ref reference to nonexistent node `Invoking guix package'
./doc/guix.de.texi:28599: @ref reference to nonexistent node `Build Environment Setup'
./doc/guix.de.texi:28661: @ref reference to nonexistent node `Running Guix in a VM'
./doc/guix.de.texi:28734: @ref reference to nonexistent node `Common Build Options'
./doc/guix.de.texi:28743: @ref reference to nonexistent node `Building the
Installation Image'
./doc/guix.de.texi:28750: @ref reference to nonexistent node `Invoking guix build'
./doc/guix.de.texi:28761: @ref reference to nonexistent node `Service Reference'
./doc/guix.de.texi:28821: @ref reference to nonexistent node `File Systems'
./doc/guix.de.texi:28823: @ref reference to nonexistent node `Initial RAM
Disk'
./doc/guix.de.texi:28870: @ref reference to nonexistent node `Invoking guix package'
./doc/guix.de.texi:28893: @ref reference to nonexistent node `Service Composition'
./doc/guix.de.texi:28909: @ref reference to nonexistent node `Shepherd Services'
./doc/guix.de.texi:28999: @ref reference to nonexistent node `Invoking guix
archive'
./doc/guix.de.texi:29139: @ref reference to nonexistent node `Invoking
guix package'
./doc/guix.de.texi:29142: @ref reference to nonexistent node `Using the Configuration
System'
./doc/guix.de.texi:29147: @ref reference to nonexistent node `Invoking guix system'
./doc/guix.de.texi:29153: @ref reference to nonexistent node `The Store'
./doc/guix.de.texi:29227: @ref reference to nonexistent node `Networking
Services'
./doc/guix.de.texi:29273: @ref reference to nonexistent node `Miscellaneous Services'
./doc/guix.de.texi:29314: @ref reference to nonexistent node `Networking
Services'
./doc/guix.de.texi:29318: @ref reference to nonexistent node `Desktop Services'
./doc/guix.de.texi:29322: @ref reference to nonexistent node `Base Services'
./doc/guix.de.texi:29334: @ref reference to nonexistent node `Service Reference'
./doc/guix.de.texi:29355: @ref reference to nonexistent node `Invoking
guix-daemon'
./doc/guix.de.texi:29399: @ref reference to nonexistent node `Shepherd Services'
./doc/guix.de.texi:29405: @ref reference to nonexistent node `Invoking guix-daemon'
./doc/guix.de.texi:29484: @ref reference to nonexistent node `Invoking guix system'
./doc/guix.de.texi:29498: @ref reference to nonexistent node `Service Types and Services'
./doc/guix.de.texi:29564: @ref reference to nonexistent node `Base Services'
./doc/guix.de.texi:29596: @ref reference to nonexistent node `Using the Configuration System'
./doc/guix.de.texi:29608: @ref reference to nonexistent node `Service Types and
Services'
./doc/guix.de.texi:29642: @ref reference to nonexistent node `Service Types and Services'
./doc/guix.de.texi:29668: @ref reference to nonexistent node `Scheduled Job Execution'
./doc/guix.de.texi:29682: @ref reference to nonexistent node `Invoking guix system'
./doc/guix.de.texi:29726: @ref reference to nonexistent node `Setuid Programs'
./doc/guix.de.texi:29747: @ref reference to nonexistent node `Channels'
./doc/guix.de.texi:29804: @ref reference to nonexistent node `Using the
Configuration System'
./doc/guix.de.texi:29851: @ref reference to nonexistent node `G-Expressions'
./doc/guix.de.texi:29942: @ref reference to nonexistent node `Service Types and Services'
./doc/guix.de.texi:30039: @ref reference to nonexistent node `GNU Distribution'
./doc/guix.de.texi:30075: @ref reference to nonexistent node `Invoking guix build'
./doc/guix.de.texi:30082: @ref reference to nonexistent node `Build Systems'
./doc/guix.de.texi:30087: @ref reference to nonexistent node `Invoking guix package'
./doc/guix.de.texi:30111: @ref reference to nonexistent node `Invoking guix lint'
./doc/guix.de.texi:30114: @ref reference to nonexistent node `Introduction'
./doc/guix.de.texi:30120: @ref reference to nonexistent node `Substitutes'
./doc/guix.de.texi:30138: @ref reference to nonexistent node `Defining Packages'
./doc/guix.de.texi:30152: @ref reference to nonexistent node `Invoking guix gc'
./doc/guix.de.texi:30171: @ref reference to nonexistent node `Common Build Options'
./doc/guix.de.texi:30190: @ref reference to nonexistent node `Invoking guix gc'
./doc/guix.de.texi:30223: @ref reference to nonexistent node `Introduction'
./doc/guix.de.texi:30235: @ref reference to nonexistent node `Derivations'
./doc/guix.de.texi:30245: @ref reference to nonexistent node `Reduced Binary Seed Bootstrap'
./doc/guix.de.texi:30319: @ref reference to nonexistent node `Invoking guix graph'
./doc/guix.de.texi:30340: @ref reference to nonexistent node `The Store'
./doc/guix.de.texi:30362: @ref reference to nonexistent node `Derivations'
./doc/guix.de.texi:30426: @ref reference to nonexistent node `Build Systems'
doc/contributing.de.texi:9: @ref reference to nonexistent node `Packaging Guidelines'
doc/contributing.de.texi:104: @ref reference to nonexistent node `Invoking guix environment'
doc/contributing.de.texi:109: @ref reference to nonexistent node `Requirements'
doc/contributing.de.texi:154: @ref reference to nonexistent node `The
Store'
doc/contributing.de.texi:159: @ref reference to nonexistent node `Running the Test Suite'
doc/contributing.de.texi:175: @ref reference to nonexistent node `Building from Git'
doc/contributing.de.texi:227: @ref reference to nonexistent node `Invoking guix
pull'
doc/contributing.de.texi:347: @ref reference to nonexistent node `Package
Modules'
doc/contributing.de.texi:350: @ref reference to nonexistent node `Defining Packages'
doc/contributing.de.texi:354: @ref reference to nonexistent node `Invoking guix build'
doc/contributing.de.texi:357: @ref reference to nonexistent node `Running Guix Before It Is Installed'
doc/contributing.de.texi:380: @ref reference to nonexistent node `Submitting Patches'
doc/contributing.de.texi:388: @ref reference to nonexistent node `Invoking guix
pull'
doc/contributing.de.texi:391: @ref reference to nonexistent node `Substitutes'
doc/contributing.de.texi:432: @ref reference to nonexistent node `Defining
Packages'
doc/contributing.de.texi:456: @ref reference to nonexistent node `Python Modules'
doc/contributing.de.texi:456: @ref reference to nonexistent node `Perl Modules'
doc/contributing.de.texi:460: @ref reference to nonexistent node `Fonts'
doc/contributing.de.texi:473: @ref reference to nonexistent node `Package Naming'
doc/contributing.de.texi:566: @ref reference to nonexistent node `Defining
Packages'
doc/contributing.de.texi:653: @ref reference to nonexistent node `Version
Numbers'
doc/contributing.de.texi:680: @ref reference to nonexistent node `package Reference'
doc/contributing.de.texi:681: @ref reference to nonexistent node `Invoking guix import'
doc/contributing.de.texi:723: @ref reference to nonexistent node `Submitting Patches'
doc/contributing.de.texi:786: @pxref reference to nonexistent node `Build Systems'
doc/contributing.de.texi:954: @ref reference to nonexistent node `Commit Access'
doc/contributing.de.texi:957: @ref reference to nonexistent node `Tracking Bugs and
Patches'
doc/contributing.de.texi:961: @ref reference to nonexistent node `Sending a Patch Series'
doc/contributing.de.texi:980: @ref reference to nonexistent node `Synopses and Descriptions'
doc/contributing.de.texi:986: @ref reference to nonexistent node `Invoking guix lint'
doc/contributing.de.texi:1037: @ref reference to nonexistent node `Invoking guix size'
doc/contributing.de.texi:1039: @ref reference to nonexistent node `Packages
with Multiple Outputs'
doc/contributing.de.texi:1048: @ref reference to nonexistent node `Invoking guix
refresh'
doc/contributing.de.texi:1096: @ref reference to nonexistent node `Invoking guix
build'
doc/contributing.de.texi:1107: @ref reference to nonexistent node `Invoking
guix challenge'
doc/contributing.de.texi:1137: @ref reference to nonexistent node `Formatting Code'
doc/contributing.de.texi:1141: @ref reference to nonexistent node `Invoking guix download'
doc/contributing.de.texi:1149: @ref reference to nonexistent node `Building from Git'
doc/contributing.de.texi:1164: @ref reference to nonexistent node `Sending a Patch Series'
doc/contributing.de.texi:1203: @ref reference to nonexistent node `Submitting Patches'
doc/contributing.de.texi:1313: @ref reference to nonexistent node `Tracking Bugs and Patches'
doc/contributing.de.texi:1353: @ref reference to nonexistent node `Submitting Patches'
make[2]: *** [Makefile:4043: doc/guix.de.info] Error 1
make[2]: Leaving directory '/home/x/devel/guix'
make[1]: *** [Makefile:4926: all-recursive] Error 1
make[1]: Leaving directory '/home/x/devel/guix'
make: *** [Makefile:3347: all] Error 2

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

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

end of thread, other threads:[~2020-04-13  9:53 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-05 18:20 (unknown), ng0
2016-12-05 18:20 ` [PATCH 1/2] gnu: tlsdate: Use the system provided certificate store ng0
2016-12-07 22:19   ` Ludovic Courtès
2016-12-07 23:40     ` ng0
2016-12-08  9:35       ` Ludovic Courtès
2017-01-18 20:31         ` ng0
2017-01-20 13:31           ` Ludovic Courtès
2016-12-05 18:20 ` [PATCH 2/2] services: Add tlsdate-service ng0
2016-12-05 18:23   ` ng0
2016-12-05 18:30     ` v2 tlsdate-service ng0
2016-12-05 18:31       ` [PATCH 1/2] gnu: tlsdate: Use the system provided certificate store ng0
2016-12-05 18:31       ` [PATCH 2/2] services: Add tlsdate-service ng0
2016-12-07  7:18         ` Chris Marusich
2016-12-07 12:04           ` ng0
2016-12-09  6:29             ` Chris Marusich
  -- strict thread matches above, loose matches on Subject: below --
2020-04-13  9:53 (unknown) elaexuotee
2019-05-02 16:19 (unknown) znavko
2018-04-27 15:05 (unknown), Catonano
2017-01-02 19:22 (unknown), manolis837
2016-12-19 17:50 (unknown), John Darrington
2016-10-06  6:16 (unknown), Leo Famulari
2016-07-21  1:39 (unknown) Unknown, Pjotr Prins
2016-07-20  3:46 (unknown) Pjotr Prins
2016-06-30  0:27 (unknown), ng0
2016-06-08 12:55 (unknown), Ben Woodcroft
2016-05-30 19:24 [PATCH] gnu: Add py3status Tomáš Čech
2016-05-30 20:01 ` (unknown), Tomáš Čech
2015-09-15 14:35 (unknown) Pjotr Prins
2015-07-13 13:01 (unknown) Pjotr Prins
2015-07-08 14:30 [PATCH 2/2] gnu: Update pumpa to 0.9.1 Mathieu Lirzin
2015-07-08 14:39 ` (unknown), Claes Wallin (韋嘉誠)
2015-03-25 22:49 (unknown), Tomáš Čech
2014-12-03 18:02 (unknown) Tomas Cech
2014-02-11 22:17 Gnunet-0.10.0 recipe Sree Harsha Totakura
2014-02-12 15:15 ` (unknown), Sree Harsha Totakura
2014-02-04 15:12 (unknown), John Darrington
2014-01-26  7:38 [PATCH 3/3] gnu: Add octave and dependencies John Darrington
2014-01-26  9:09 ` (unknown), John Darrington
2014-01-25  7:00 [PATCH 2/2] gnu: fltk: New module John Darrington
2014-01-25  8:27 ` (unknown), John Darrington
2014-01-23 13:30 [PATCH] Doc: Introduction: rewrite for style and clarity Ludovic Courtès
2014-01-23 18:00 ` (unknown), Alex Sassmannshausen

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