Package: guix-patches;
Reported by: Christopher Baines <mail <at> cbaines.net>
Date: Fri, 1 Jun 2018 13:47:01 UTC
Severity: normal
Tags: patch
Done: Christopher Baines <mail <at> cbaines.net>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 31678 in the body.
You can then email your comments to 31678 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
guix-patches <at> gnu.org
:bug#31678
; Package guix-patches
.
(Fri, 01 Jun 2018 13:47:01 GMT) Full text and rfc822 format available.Christopher Baines <mail <at> cbaines.net>
:guix-patches <at> gnu.org
.
(Fri, 01 Jun 2018 13:47:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Christopher Baines <mail <at> cbaines.net> To: guix-patches <at> gnu.org Subject: [PATCH 0/2] Elixir and Erlang improvements Date: Fri, 01 Jun 2018 14:46:10 +0100
[Message part 1 (text/plain, inline)]
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
[signature.asc (application/pgp-signature, inline)]
guix-patches <at> gnu.org
:bug#31678
; Package guix-patches
.
(Fri, 01 Jun 2018 13:52:02 GMT) Full text and rfc822 format available.Message #8 received at 31678 <at> debbugs.gnu.org (full text, mbox):
From: Christopher Baines <mail <at> cbaines.net> To: 31678 <at> debbugs.gnu.org Subject: [PATCH 1/2] gnu: erlang: Patch occurrences of /bin/sh in the source. Date: Fri, 1 Jun 2018 14:51:05 +0100
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
guix-patches <at> gnu.org
:bug#31678
; Package guix-patches
.
(Fri, 01 Jun 2018 13:52:02 GMT) Full text and rfc822 format available.Message #11 received at 31678 <at> debbugs.gnu.org (full text, mbox):
From: Christopher Baines <mail <at> cbaines.net> To: 31678 <at> debbugs.gnu.org Subject: [PATCH 2/2] gnu: elixir: Enable more tests and remove patch. Date: Fri, 1 Jun 2018 14:51:06 +0100
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
guix-patches <at> gnu.org
:bug#31678
; Package guix-patches
.
(Sun, 10 Jun 2018 04:43:01 GMT) Full text and rfc822 format available.Message #14 received at 31678 <at> debbugs.gnu.org (full text, mbox):
From: iyzsong <at> member.fsf.org (宋文武) To: Christopher Baines <mail <at> cbaines.net> Cc: 31678 <at> debbugs.gnu.org Subject: Re: [bug#31678] [PATCH 1/2] gnu: erlang: Patch occurrences of /bin/sh in the source. Date: Sun, 10 Jun 2018 12:41:20 +0800
Christopher Baines <mail <at> 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!
guix-patches <at> gnu.org
:bug#31678
; Package guix-patches
.
(Sun, 10 Jun 2018 04:52:01 GMT) Full text and rfc822 format available.Message #17 received at 31678 <at> debbugs.gnu.org (full text, mbox):
From: iyzsong <at> member.fsf.org (宋文武) To: Christopher Baines <mail <at> cbaines.net> Cc: 31678 <at> debbugs.gnu.org Subject: Re: [bug#31678] [PATCH 2/2] gnu: elixir: Enable more tests and remove patch. Date: Sun, 10 Jun 2018 12:51:22 +0800
Christopher Baines <mail <at> 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!
guix-patches <at> gnu.org
:bug#31678
; Package guix-patches
.
(Sun, 10 Jun 2018 06:01:02 GMT) Full text and rfc822 format available.Message #20 received at 31678 <at> debbugs.gnu.org (full text, mbox):
From: iyzsong <at> member.fsf.org (宋文武) To: Christopher Baines <mail <at> cbaines.net> Cc: 31678 <at> debbugs.gnu.org Subject: Re: [bug#31678] [PATCH 1/2] gnu: erlang: Patch occurrences of /bin/sh in the source. Date: Sun, 10 Jun 2018 14:00:07 +0800
iyzsong <at> member.fsf.org (宋文武) writes: > Christopher Baines <mail <at> 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 :-)
Christopher Baines <mail <at> cbaines.net>
:Christopher Baines <mail <at> cbaines.net>
:Message #25 received at 31678-done <at> debbugs.gnu.org (full text, mbox):
From: Christopher Baines <mail <at> cbaines.net> To: 宋文武 <iyzsong <at> member.fsf.org> Cc: 31678-done <at> debbugs.gnu.org Subject: Re: [bug#31678] [PATCH 2/2] gnu: elixir: Enable more tests and remove patch. Date: Tue, 12 Jun 2018 07:55:25 +0100
[Message part 1 (text/plain, inline)]
宋文武 <iyzsong <at> member.fsf.org> writes: > Christopher Baines <mail <at> 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!
[signature.asc (application/pgp-signature, inline)]
guix-patches <at> gnu.org
:bug#31678
; Package guix-patches
.
(Tue, 12 Jun 2018 06:57:02 GMT) Full text and rfc822 format available.Message #28 received at 31678 <at> debbugs.gnu.org (full text, mbox):
From: Christopher Baines <mail <at> cbaines.net> To: 宋文武 <iyzsong <at> member.fsf.org> Cc: 31678 <at> debbugs.gnu.org Subject: Re: [bug#31678] [PATCH 1/2] gnu: erlang: Patch occurrences of /bin/sh in the source. Date: Tue, 12 Jun 2018 07:56:43 +0100
[Message part 1 (text/plain, inline)]
宋文武 <iyzsong <at> member.fsf.org> writes: > iyzsong <at> member.fsf.org (宋文武) writes: > >> Christopher Baines <mail <at> 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.
[signature.asc (application/pgp-signature, inline)]
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Tue, 10 Jul 2018 11:24:08 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.