unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#31678] [PATCH 0/2] Elixir and Erlang improvements
@ 2018-06-01 13:46 Christopher Baines
  2018-06-01 13:51 ` [bug#31678] [PATCH 1/2] gnu: erlang: Patch occurrences of /bin/sh in the source Christopher Baines
  0 siblings, 1 reply; 8+ messages in thread
From: Christopher Baines @ 2018-06-01 13:46 UTC (permalink / raw)
  To: 31678

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

Fix the erlang package to use sh from the store, and not hardcode
/bin/sh.

This means that the elixir package no longer nondeterministically fails
to build, and allows for getting all the tests to pass as well.

These are the related bug reports:
 - https://debbugs.gnu.org/cgi/bugreport.cgi?bug=28034
 - https://debbugs.gnu.org/cgi/bugreport.cgi?bug=29655


Christopher Baines (2):
  gnu: erlang: Patch occurrences of /bin/sh in the source.
  gnu: elixir: Enable more tests and remove patch.

 gnu/local.mk                                  |   1 -
 gnu/packages/elixir.scm                       |  36 +--
 gnu/packages/erlang.scm                       |  21 ++
 .../elixir-disable-failing-tests.patch        | 284 ------------------
 4 files changed, 27 insertions(+), 315 deletions(-)
 delete mode 100644 gnu/packages/patches/elixir-disable-failing-tests.patch

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

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

* [bug#31678] [PATCH 1/2] gnu: erlang: Patch occurrences of /bin/sh in the source.
  2018-06-01 13:46 [bug#31678] [PATCH 0/2] Elixir and Erlang improvements Christopher Baines
@ 2018-06-01 13:51 ` Christopher Baines
  2018-06-01 13:51   ` [bug#31678] [PATCH 2/2] gnu: elixir: Enable more tests and remove patch Christopher Baines
  2018-06-10  4:41   ` [bug#31678] [PATCH 1/2] gnu: erlang: Patch occurrences of /bin/sh in the source 宋文武
  0 siblings, 2 replies; 8+ messages in thread
From: Christopher Baines @ 2018-06-01 13:51 UTC (permalink / raw)
  To: 31678

Previously, the elixir package would often fail to build, as running :os:cmd
would fail, as /bin/sh doesn't exist when building the elixir package. These
changes fix that issue.

* gnu/packages/erlang.scm (erlang)[arguments]: Add new patch-/bin/sh phase to
replace hardcoded references to /bin/sh with a file in the store.
---
 gnu/packages/erlang.scm | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index 0e2b7b5bc..1fce57388 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -127,6 +127,27 @@
                   (date->string source-date-epoch
                                 "{H,Mi,S} = {~H,~M,~S},")))
                #t)))
+         (add-after 'unpack 'patch-/bin/sh
+           (lambda _
+             (substitute* "erts/etc/unix/run_erl.c"
+               (("sh = \"/bin/sh\";")
+                (string-append "sh = \""
+                               (which "sh")
+                               "\";")))
+
+             (substitute* "erts/emulator/sys/unix/sys_drivers.c"
+               (("SHELL \"/bin/sh\"")
+                (string-append "SHELL \""
+                               (which "sh")
+                               "\"")))
+             (substitute* "erts/emulator/sys/unix/erl_child_setup.c"
+               (("SHELL \"/bin/sh\"")
+                (string-append "SHELL \""
+                               (which "sh")
+                               "\"")))
+
+             (substitute* "lib/kernel/src/os.erl"
+               (("/bin/sh") (which "sh")))))
          (add-after 'patch-source-shebangs 'patch-source-env
            (lambda _
              (let ((escripts
-- 
2.17.1

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

* [bug#31678] [PATCH 2/2] gnu: elixir: Enable more tests and remove patch.
  2018-06-01 13:51 ` [bug#31678] [PATCH 1/2] gnu: erlang: Patch occurrences of /bin/sh in the source Christopher Baines
@ 2018-06-01 13:51   ` Christopher Baines
  2018-06-10  4:51     ` 宋文武
  2018-06-10  4:41   ` [bug#31678] [PATCH 1/2] gnu: erlang: Patch occurrences of /bin/sh in the source 宋文武
  1 sibling, 1 reply; 8+ messages in thread
From: Christopher Baines @ 2018-06-01 13:51 UTC (permalink / raw)
  To: 31678

Previously, due to issues in the erlang package, many tests would fail, and
the package would also nondeterministically fail to build. This is now
fixed (by patching occurances of /bin/sh in the erlang package), so all the
tests can be run.

* gnu/packages/elixir.scm (elixir)[source]: Remove patches. The patch is no
longer necessary, as all the tests now pass.
[arguments]: Remove the fix-or-disable-tests phase, all the tests now
pass. Add a new set-home phase to set the HOME environment variable prior to
running the tests, as that was previously done at the start of the
fix-or-disable-tests phase.
* gnu/packages/patches/elixir-disable-failing-tests.patch: Delete this file,
as it is now unused.
* gnu/local.mk: Remove now deleted patch.
---
 gnu/local.mk                                  |   1 -
 gnu/packages/elixir.scm                       |  36 +--
 .../elixir-disable-failing-tests.patch        | 284 ------------------
 3 files changed, 6 insertions(+), 315 deletions(-)
 delete mode 100644 gnu/packages/patches/elixir-disable-failing-tests.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index db04ee0cd..1a6ffecc0 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -637,7 +637,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/dvd+rw-tools-add-include.patch 		\
   %D%/packages/patches/eigen-arm-neon-fixes.patch		\
   %D%/packages/patches/elfutils-tests-ptrace.patch		\
-  %D%/packages/patches/elixir-disable-failing-tests.patch	\
   %D%/packages/patches/einstein-build.patch			\
   %D%/packages/patches/emacs-browse-at-remote-cgit-gnu.patch	\
   %D%/packages/patches/emacs-exec-path.patch			\
diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm
index ceabc2a6c..ed6bd0023 100644
--- a/gnu/packages/elixir.scm
+++ b/gnu/packages/elixir.scm
@@ -40,15 +40,7 @@
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0acnxfwvkx1m1d0h5z051mz95n35zm468hcvc3wpmn17c15h5ihg"))
-              ;; FIXME: 27 tests (out of 4K) had to be disabled as
-              ;; they fail in the build environment.  Common failures
-              ;; are:
-              ;; - Mix.Shell.cmd() fails with error 130
-              ;; - The git_repo fixture cannot be found
-              ;; - Communication with spawned processes fails with EPIPE
-              ;; - Failure to copy files
-              (patches (search-patches "elixir-disable-failing-tests.patch"))))
+                "0acnxfwvkx1m1d0h5z051mz95n35zm468hcvc3wpmn17c15h5ihg"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -70,27 +62,6 @@
                  (("#!/usr/bin/env elixir")
                   (string-append "#!" out "/bin/elixir"))))
              #t))
-         (add-after 'unpack 'fix-or-disable-tests
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; Some tests require access to a home directory.
-             (setenv "HOME" "/tmp")
-
-             ;; FIXME: These tests fail because the "git_repo" fixture does
-             ;; not exist or cannot be found.
-             (delete-file "lib/mix/test/mix/tasks/deps.git_test.exs")
-
-             ;; FIXME: Mix.Shell.cmd() always fails with error code 130.
-             (delete-file "lib/mix/test/mix/shell_test.exs")
-
-             ;; FIXME:
-             ;; disabled failing impure tests to make it build again.
-             ;; related discussion: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=28034#14
-             (delete-file "lib/elixir/test/elixir/kernel/cli_test.exs")
-             (delete-file "lib/elixir/test/elixir/kernel/dialyzer_test.exs")
-             (delete-file "lib/iex/test/iex/helpers_test.exs")
-             (delete-file "lib/ex_unit/test/ex_unit/capture_io_test.exs")
-
-             #t))
          (add-before 'build 'make-current
            ;; The Elixir compiler checks whether or not to compile files by
            ;; inspecting their timestamps.  When the timestamp is equal to the
@@ -102,6 +73,11 @@
                            (utime file recent recent 0 0)))
                        (find-files "." ".*"))
              #t))
+         (add-before 'check 'set-home
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Some tests require access to a home directory.
+             (setenv "HOME" "/tmp")
+             #t))
          (delete 'configure))))
     (inputs
      `(("erlang" ,erlang)
diff --git a/gnu/packages/patches/elixir-disable-failing-tests.patch b/gnu/packages/patches/elixir-disable-failing-tests.patch
deleted file mode 100644
index 547598b29..000000000
--- a/gnu/packages/patches/elixir-disable-failing-tests.patch
+++ /dev/null
@@ -1,284 +0,0 @@
-Most of these tests fail for unknown reasons when run in the chroot
-environment of a Guix build process.
-
-Common failures are:
-
- * Mix.Shell.cmd() fails with error 130
- * The git_repo fixture cannot be found
- * Communication with spawned processes fails with EPIPE
- * Failure to copy files
-
-
-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/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/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/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
-@@ -96,6 +96,7 @@
-     end
-   end
-
-+  @tag :skip
-   test "prints list of dependencies and their lock status" do
-     Mix.Project.push DepsApp
-
-@@ -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 _ ->
-
-diff --git a/lib/elixir/test/elixir/kernel/dialyzer_test.exs b/lib/elixir/test/elixir/kernel/dialyzer_test.exs
-index 792222c..e90beb9 100644
---- a/lib/elixir/test/elixir/kernel/dialyzer_test.exs
-+++ b/lib/elixir/test/elixir/kernel/dialyzer_test.exs
-@@ -54,6 +54,7 @@ defmodule Kernel.DialyzerTest do
-     {:ok, [outdir: dir, dialyzer: dialyzer]}
-   end
-
-+  @tag :skip
-   test "no warnings on valid remote calls", context do
-     copy_beam! context, Dialyzer.RemoteCall
-     assert_dialyze_no_warnings! context
-@@ -78,11 +79,13 @@ defmodule Kernel.DialyzerTest do
-     assert_dialyze_no_warnings! context
-   end
-
-+  @tag :skip
-   test "no warnings on struct update", context do
-     copy_beam! context, Dialyzer.StructUpdate
-     assert_dialyze_no_warnings! context
-   end
-
-+  @tag :skip
-   test "no warnings on protocol calls with opaque types", context do
-     copy_beam! context, Dialyzer.ProtocolOpaque
-     copy_beam! context, Dialyzer.ProtocolOpaque.Entity
-@@ -90,6 +93,7 @@ defmodule Kernel.DialyzerTest do
-     assert_dialyze_no_warnings! context
-   end
-
-+  @tag :skip
-   test "no warnings on and/2 and or/2", context do
-     copy_beam! context, Dialyzer.BooleanCheck
-     assert_dialyze_no_warnings! context
-
-diff --git a/Makefile b/Makefile
-index 2fc4f9a..aef8366 100644
---- a/Makefile
-+++ b/Makefile
-@@ -201,7 +201,7 @@ $(TEST_EBIN)/%.beam: $(TEST_ERL)/%.erl
-        $(Q) mkdir -p $(TEST_EBIN)
-        $(Q) $(ERLC) -o $(TEST_EBIN) $<
-
--test_elixir: test_stdlib test_ex_unit test_logger test_mix test_eex test_iex
-+test_elixir: test_stdlib test_ex_unit test_logger test_eex test_iex
-
- test_stdlib: compile
-        @ echo "==> elixir (exunit)"
-
-- 
2.17.1

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

* [bug#31678] [PATCH 1/2] gnu: erlang: Patch occurrences of /bin/sh in the source.
  2018-06-01 13:51 ` [bug#31678] [PATCH 1/2] gnu: erlang: Patch occurrences of /bin/sh in the source Christopher Baines
  2018-06-01 13:51   ` [bug#31678] [PATCH 2/2] gnu: elixir: Enable more tests and remove patch Christopher Baines
@ 2018-06-10  4:41   ` 宋文武
  2018-06-10  6:00     ` 宋文武
  1 sibling, 1 reply; 8+ messages in thread
From: 宋文武 @ 2018-06-10  4:41 UTC (permalink / raw)
  To: Christopher Baines; +Cc: 31678

Christopher Baines <mail@cbaines.net> writes:

> Previously, the elixir package would often fail to build, as running :os:cmd
> would fail, as /bin/sh doesn't exist when building the elixir package. These
> changes fix that issue.
>
> * gnu/packages/erlang.scm (erlang)[arguments]: Add new patch-/bin/sh phase to
> replace hardcoded references to /bin/sh with a file in the store.
> ---
>  gnu/packages/erlang.scm | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
>
> diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
> index 0e2b7b5bc..1fce57388 100644
> --- a/gnu/packages/erlang.scm
> +++ b/gnu/packages/erlang.scm
> @@ -127,6 +127,27 @@
>                    (date->string source-date-epoch
>                                  "{H,Mi,S} = {~H,~M,~S},")))
>                 #t)))
> +         (add-after 'unpack 'patch-/bin/sh
> +           (lambda _
> +             (substitute* "erts/etc/unix/run_erl.c"
> +               (("sh = \"/bin/sh\";")
> +                (string-append "sh = \""
> +                               (which "sh")
> +                               "\";")))
> +
> +             (substitute* "erts/emulator/sys/unix/sys_drivers.c"
> +               (("SHELL \"/bin/sh\"")
> +                (string-append "SHELL \""
> +                               (which "sh")
> +                               "\"")))
> +             (substitute* "erts/emulator/sys/unix/erl_child_setup.c"
> +               (("SHELL \"/bin/sh\"")
> +                (string-append "SHELL \""
> +                               (which "sh")
> +                               "\"")))
> +
> +             (substitute* "lib/kernel/src/os.erl"
> +               (("/bin/sh") (which "sh")))))

It should return ‘#t’, otherwise look good to me!

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

* [bug#31678] [PATCH 2/2] gnu: elixir: Enable more tests and remove patch.
  2018-06-01 13:51   ` [bug#31678] [PATCH 2/2] gnu: elixir: Enable more tests and remove patch Christopher Baines
@ 2018-06-10  4:51     ` 宋文武
  2018-06-12  6:55       ` bug#31678: " Christopher Baines
  0 siblings, 1 reply; 8+ messages in thread
From: 宋文武 @ 2018-06-10  4:51 UTC (permalink / raw)
  To: Christopher Baines; +Cc: 31678

Christopher Baines <mail@cbaines.net> writes:

> Previously, due to issues in the erlang package, many tests would fail, and
> the package would also nondeterministically fail to build. This is now
> fixed (by patching occurances of /bin/sh in the erlang package), so all the
> tests can be run.
>
> * gnu/packages/elixir.scm (elixir)[source]: Remove patches. The patch is no
> longer necessary, as all the tests now pass.
> [arguments]: Remove the fix-or-disable-tests phase, all the tests now
> pass. Add a new set-home phase to set the HOME environment variable prior to
> running the tests, as that was previously done at the start of the
> fix-or-disable-tests phase.
> * gnu/packages/patches/elixir-disable-failing-tests.patch: Delete this file,
> as it is now unused.

I think generally we only need to mention the ‘what’ parts, not the
‘why’ parts (“as …”) in the per-file details, but I guess it’s nothing
wrong to do it :-)

> * gnu/local.mk: Remove now deleted patch.
* gnu/local.mk (GNU_SYSTEM_MODULES): ...

> ---
>  gnu/local.mk                                  |   1 -
>  gnu/packages/elixir.scm                       |  36 +--
>  .../elixir-disable-failing-tests.patch        | 284 ------------------
>  3 files changed, 6 insertions(+), 315 deletions(-)

Cool, thank you!

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

* [bug#31678] [PATCH 1/2] gnu: erlang: Patch occurrences of /bin/sh in the source.
  2018-06-10  4:41   ` [bug#31678] [PATCH 1/2] gnu: erlang: Patch occurrences of /bin/sh in the source 宋文武
@ 2018-06-10  6:00     ` 宋文武
  2018-06-12  6:56       ` Christopher Baines
  0 siblings, 1 reply; 8+ messages in thread
From: 宋文武 @ 2018-06-10  6:00 UTC (permalink / raw)
  To: Christopher Baines; +Cc: 31678

iyzsong@member.fsf.org (宋文武) writes:

> Christopher Baines <mail@cbaines.net> writes:
>
>> Previously, the elixir package would often fail to build, as running :os:cmd
>> would fail, as /bin/sh doesn't exist when building the elixir package. These
>> changes fix that issue.
>>
>> * gnu/packages/erlang.scm (erlang)[arguments]: Add new patch-/bin/sh phase to
>> replace hardcoded references to /bin/sh with a file in the store.
>> ---
>>  gnu/packages/erlang.scm | 21 +++++++++++++++++++++
>>  1 file changed, 21 insertions(+)
>>
>> diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
>> index 0e2b7b5bc..1fce57388 100644
>> --- a/gnu/packages/erlang.scm
>> +++ b/gnu/packages/erlang.scm
>> @@ -127,6 +127,27 @@
>>                    (date->string source-date-epoch
>>                                  "{H,Mi,S} = {~H,~M,~S},")))
>>                 #t)))
>> +         (add-after 'unpack 'patch-/bin/sh
>> +           (lambda _
>> +             (substitute* "erts/etc/unix/run_erl.c"
>> +               (("sh = \"/bin/sh\";")
>> +                (string-append "sh = \""
>> +                               (which "sh")
>> +                               "\";")))
>> +
>> +             (substitute* "erts/emulator/sys/unix/sys_drivers.c"
>> +               (("SHELL \"/bin/sh\"")
>> +                (string-append "SHELL \""
>> +                               (which "sh")
>> +                               "\"")))
>> +             (substitute* "erts/emulator/sys/unix/erl_child_setup.c"
>> +               (("SHELL \"/bin/sh\"")
>> +                (string-append "SHELL \""
>> +                               (which "sh")
>> +                               "\"")))
>> +
>> +             (substitute* "lib/kernel/src/os.erl"
>> +               (("/bin/sh") (which "sh")))))
>
> It should return ‘#t’, otherwise look good to me!

Oh, ‘substitute*’ does return ‘#t’ itself, never mind :-)

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

* bug#31678: [PATCH 2/2] gnu: elixir: Enable more tests and remove patch.
  2018-06-10  4:51     ` 宋文武
@ 2018-06-12  6:55       ` Christopher Baines
  0 siblings, 0 replies; 8+ messages in thread
From: Christopher Baines @ 2018-06-12  6:55 UTC (permalink / raw)
  To: 宋文武; +Cc: 31678-done

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


宋文武 <iyzsong@member.fsf.org> writes:

> Christopher Baines <mail@cbaines.net> writes:
>
>> Previously, due to issues in the erlang package, many tests would fail, and
>> the package would also nondeterministically fail to build. This is now
>> fixed (by patching occurances of /bin/sh in the erlang package), so all the
>> tests can be run.
>>
>> * gnu/packages/elixir.scm (elixir)[source]: Remove patches. The patch is no
>> longer necessary, as all the tests now pass.
>> [arguments]: Remove the fix-or-disable-tests phase, all the tests now
>> pass. Add a new set-home phase to set the HOME environment variable prior to
>> running the tests, as that was previously done at the start of the
>> fix-or-disable-tests phase.
>> * gnu/packages/patches/elixir-disable-failing-tests.patch: Delete this file,
>> as it is now unused.
>
> I think generally we only need to mention the ‘what’ parts, not the
> ‘why’ parts (“as …”) in the per-file details, but I guess it’s nothing
> wrong to do it :-)

I've pushed this now, thanks for taking a look :) I tweaked the
changelog to not repeat the why parts.

>> * gnu/local.mk: Remove now deleted patch.
> * gnu/local.mk (GNU_SYSTEM_MODULES): ...

Missed this bit, only just spotted what you were suggesting, sorry about
that.

>> ---
>>  gnu/local.mk                                  |   1 -
>>  gnu/packages/elixir.scm                       |  36 +--
>>  .../elixir-disable-failing-tests.patch        | 284 ------------------
>>  3 files changed, 6 insertions(+), 315 deletions(-)
>
> Cool, thank you!

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

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

* [bug#31678] [PATCH 1/2] gnu: erlang: Patch occurrences of /bin/sh in the source.
  2018-06-10  6:00     ` 宋文武
@ 2018-06-12  6:56       ` Christopher Baines
  0 siblings, 0 replies; 8+ messages in thread
From: Christopher Baines @ 2018-06-12  6:56 UTC (permalink / raw)
  To: 宋文武; +Cc: 31678

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


宋文武 <iyzsong@member.fsf.org> writes:

> iyzsong@member.fsf.org (宋文武) writes:
>
>> Christopher Baines <mail@cbaines.net> writes:
>>
>>> Previously, the elixir package would often fail to build, as running :os:cmd
>>> would fail, as /bin/sh doesn't exist when building the elixir package. These
>>> changes fix that issue.
>>>
>>> * gnu/packages/erlang.scm (erlang)[arguments]: Add new patch-/bin/sh phase to
>>> replace hardcoded references to /bin/sh with a file in the store.
>>> ---
>>>  gnu/packages/erlang.scm | 21 +++++++++++++++++++++
>>>  1 file changed, 21 insertions(+)
>>>
>>> diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
>>> index 0e2b7b5bc..1fce57388 100644
>>> --- a/gnu/packages/erlang.scm
>>> +++ b/gnu/packages/erlang.scm
>>> @@ -127,6 +127,27 @@
>>>                    (date->string source-date-epoch
>>>                                  "{H,Mi,S} = {~H,~M,~S},")))
>>>                 #t)))
>>> +         (add-after 'unpack 'patch-/bin/sh
>>> +           (lambda _
>>> +             (substitute* "erts/etc/unix/run_erl.c"
>>> +               (("sh = \"/bin/sh\";")
>>> +                (string-append "sh = \""
>>> +                               (which "sh")
>>> +                               "\";")))
>>> +
>>> +             (substitute* "erts/emulator/sys/unix/sys_drivers.c"
>>> +               (("SHELL \"/bin/sh\"")
>>> +                (string-append "SHELL \""
>>> +                               (which "sh")
>>> +                               "\"")))
>>> +             (substitute* "erts/emulator/sys/unix/erl_child_setup.c"
>>> +               (("SHELL \"/bin/sh\"")
>>> +                (string-append "SHELL \""
>>> +                               (which "sh")
>>> +                               "\"")))
>>> +
>>> +             (substitute* "lib/kernel/src/os.erl"
>>> +               (("/bin/sh") (which "sh")))))
>>
>> It should return ‘#t’, otherwise look good to me!
>
> Oh, ‘substitute*’ does return ‘#t’ itself, never mind :-)

I've added an explicit #t in there anyway, as I couldn't quite work out
under what circumstances substitute* returned #t. The other phase in the
erlang package using substitute* also explicitly returns #t.

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

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

end of thread, other threads:[~2018-06-12  6:57 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-01 13:46 [bug#31678] [PATCH 0/2] Elixir and Erlang improvements Christopher Baines
2018-06-01 13:51 ` [bug#31678] [PATCH 1/2] gnu: erlang: Patch occurrences of /bin/sh in the source Christopher Baines
2018-06-01 13:51   ` [bug#31678] [PATCH 2/2] gnu: elixir: Enable more tests and remove patch Christopher Baines
2018-06-10  4:51     ` 宋文武
2018-06-12  6:55       ` bug#31678: " Christopher Baines
2018-06-10  4:41   ` [bug#31678] [PATCH 1/2] gnu: erlang: Patch occurrences of /bin/sh in the source 宋文武
2018-06-10  6:00     ` 宋文武
2018-06-12  6:56       ` Christopher Baines

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