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