From c2b65f7f91a5bf2eb25e0d63b14a425213f628ad Mon Sep 17 00:00:00 2001 From: Alwin Berger Date: Wed, 24 Feb 2021 10:14:11 +0100 Subject: [PATCH 1/4] io: remove deprecated sysctl.h glibc 2.32 removed But since it is only required with __CYGWIN__ it can be removed safely See related Issues upstream: https://github.com/IoLanguage/io/issues/433 https://github.com/IoLanguage/io/pull/446 --- pkgs/development/interpreters/io/default.nix | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkgs/development/interpreters/io/default.nix b/pkgs/development/interpreters/io/default.nix index d0a3b20e503..3b2cb9a57ac 100644 --- a/pkgs/development/interpreters/io/default.nix +++ b/pkgs/development/interpreters/io/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub, cmake, zlib, sqlite, gmp, libffi, cairo, +{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, zlib, sqlite, gmp, libffi, cairo, ncurses, freetype, libGLU, libGL, libpng, libtiff, libjpeg, readline, libsndfile, libxml2, freeglut, libsamplerate, pcre, libevent, libedit, yajl, python3, openssl, glfw, pkg-config, libpthreadstubs, libXdmcp, libmemcached @@ -13,6 +13,14 @@ stdenv.mkDerivation { sha256 = "0ll2kd72zy8vf29sy0nnx3awk7nywpwpv21rvninjjaqkygrc0qw"; }; + patches = [ + (fetchpatch { + name = "check-for-sysctl-h.patch"; + url = "https://github.com/IoLanguage/io/pull/446/commits/9f3e4d87b6d4c1bf583134d55d1cf92d3464c49f.patch"; + sha256 = "9f06073ac17f26c2ef6298143bdd1babe7783c228f9667622aa6c91bb7ec7fa0"; + }) + ]; + nativeBuildInputs = [ cmake ]; From b01f6c43aff4a675ab408fe3a7a2a84fc306e593 Mon Sep 17 00:00:00 2001 From: Alwin Berger Date: Tue, 23 Feb 2021 19:32:29 +0100 Subject: [PATCH 2/4] io: add static linking When executing the programm the libraries were relinking to libm.so and segfaulting Since the libs in question are all <1MB when staticly linked this seemed like an easy workaround To find future regression the interpreter will be called in installCheckPhase io: add install check --- pkgs/development/interpreters/io/default.nix | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pkgs/development/interpreters/io/default.nix b/pkgs/development/interpreters/io/default.nix index 3b2cb9a57ac..d1f4ac02fc8 100644 --- a/pkgs/development/interpreters/io/default.nix +++ b/pkgs/development/interpreters/io/default.nix @@ -40,6 +40,17 @@ stdenv.mkDerivation { sed -ie \ "s/add_subdirectory(addons)/#add_subdirectory(addons)/g" \ CMakeLists.txt + # Bind Libs STATIC to avoid a segfault when relinking + sed -i 's/basekit SHARED/basekit STATIC/' libs/basekit/CMakeLists.txt + sed -i 's/garbagecollector SHARED/garbagecollector STATIC/' libs/garbagecollector/CMakeLists.txt + sed -i 's/coroutine SHARED/coroutine STATIC/' libs/coroutine/CMakeLists.txt + ''; + + doInstallCheck = true; + + installCheckPhase = '' + $out/bin/io + $out/bin/io_static ''; # for gcc5; c11 inline semantics breaks the build From 56201edbce7d0f6ca1f29512fa0ccd97037fe3a1 Mon Sep 17 00:00:00 2001 From: Alwin Berger Date: Tue, 23 Feb 2021 17:15:12 +0100 Subject: [PATCH 3/4] io: 2015.11.11 -> 2017.09.06 --- pkgs/development/interpreters/io/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/interpreters/io/default.nix b/pkgs/development/interpreters/io/default.nix index d1f4ac02fc8..8f837746017 100644 --- a/pkgs/development/interpreters/io/default.nix +++ b/pkgs/development/interpreters/io/default.nix @@ -5,12 +5,12 @@ }: stdenv.mkDerivation { - name = "io-2015.11.11"; + name = "io-2017.09.06"; src = fetchFromGitHub { owner = "stevedekorte"; repo = "io"; - rev = "1fc725e0a8635e2679cbb20521f4334c25273caa"; - sha256 = "0ll2kd72zy8vf29sy0nnx3awk7nywpwpv21rvninjjaqkygrc0qw"; + rev = "b8a18fc199758ed09cd2f199a9bc821f6821072a"; + sha256 = "07rg1zrz6i6ghp11cm14w7bbaaa1s8sb0y5i7gr2sds0ijlpq223"; }; patches = [ From 96876f1e9abe7967b99e0c5c571b15497be76492 Mon Sep 17 00:00:00 2001 From: Alwin Berger <50980804+alwinber@users.noreply.github.com> Date: Tue, 23 Feb 2021 23:58:19 +0100 Subject: [PATCH 4/4] io: switch to pname Co-authored-by: Sandro --- pkgs/development/interpreters/io/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/development/interpreters/io/default.nix b/pkgs/development/interpreters/io/default.nix index 8f837746017..48462a333bc 100644 --- a/pkgs/development/interpreters/io/default.nix +++ b/pkgs/development/interpreters/io/default.nix @@ -5,7 +5,8 @@ }: stdenv.mkDerivation { - name = "io-2017.09.06"; + pname = "io"; + version = "2017.09.06"; src = fetchFromGitHub { owner = "stevedekorte"; repo = "io";