From 4e87ea7f73b12015be642a19dae1e3de577621b8 Mon Sep 17 00:00:00 2001 From: Alex Ivanov Date: Mon, 10 Oct 2016 20:04:05 +0300 Subject: [PATCH 1/4] unixODBC: enable build for darwin --- pkgs/development/libraries/unixODBC/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/unixODBC/default.nix b/pkgs/development/libraries/unixODBC/default.nix index e40f362a3b1..99ab8a05616 100644 --- a/pkgs/development/libraries/unixODBC/default.nix +++ b/pkgs/development/libraries/unixODBC/default.nix @@ -15,6 +15,6 @@ stdenv.mkDerivation rec { description = "ODBC driver manager for Unix"; homepage = http://www.unixodbc.org/; license = licenses.lgpl2; - platforms = platforms.linux; + platforms = platforms.unix; }; } From 82986b7369630ccc5d9bad3b95ea29fc23715881 Mon Sep 17 00:00:00 2001 From: Alex Ivanov Date: Thu, 13 Oct 2016 09:23:45 +0300 Subject: [PATCH 2/4] erlangR16_odbc: fixed for darwin --- pkgs/top-level/all-packages.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cbca06d2595..ba6c99456ea 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5287,7 +5287,10 @@ in erlangR16 = callPackage ../development/interpreters/erlang/R16.nix { inherit (darwin.apple_sdk.frameworks) Carbon Cocoa; }; - erlangR16_odbc = callPackage ../development/interpreters/erlang/R16.nix { odbcSupport = true; }; + erlangR16_odbc = callPackage ../development/interpreters/erlang/R16.nix { + inherit (darwin.apple_sdk.frameworks) Carbon Cocoa; + odbcSupport = true; + }; erlangR17 = callPackage ../development/interpreters/erlang/R17.nix { inherit (darwin.apple_sdk.frameworks) Carbon Cocoa; }; From e9e69993b209e6a93a5605378c403c09b9264279 Mon Sep 17 00:00:00 2001 From: Alex Ivanov Date: Thu, 13 Oct 2016 09:36:49 +0300 Subject: [PATCH 3/4] swiProlog: fixed for darwin --- .../compilers/swi-prolog/default.nix | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/swi-prolog/default.nix b/pkgs/development/compilers/swi-prolog/default.nix index b6d6388c74b..79f7e5256b2 100644 --- a/pkgs/development/compilers/swi-prolog/default.nix +++ b/pkgs/development/compilers/swi-prolog/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, gmp, readline, openssl, libjpeg, unixODBC, zlib , libXinerama, libXft, libXpm, libSM, libXt, freetype, pkgconfig -, fontconfig +, fontconfig, makeWrapper ? stdenv.isDarwin }: let @@ -15,7 +15,8 @@ stdenv.mkDerivation { }; buildInputs = [ gmp readline openssl libjpeg unixODBC libXinerama - libXft libXpm libSM libXt zlib freetype pkgconfig fontconfig ]; + libXft libXpm libSM libXt zlib freetype pkgconfig fontconfig ] + ++ stdenv.lib.optional stdenv.isDarwin makeWrapper; hardeningDisable = [ "format" ]; @@ -23,12 +24,24 @@ stdenv.mkDerivation { buildFlags = "world"; + # For macOS: still not fixed in upstream: "abort trap 6" when called + # through symlink, so wrap binary. + # We reinvent wrapProgram here but omit argv0 pass in order to not + # break PAKCS package build. This is also safe for SWI-Prolog, since + # there is no wrapping environment and hence no need to spoof $0 + postInstall = stdenv.lib.optionalString stdenv.isDarwin '' + local prog="$out/bin/swipl" + local hidden="$(dirname "$prog")/.$(basename "$prog")"-wrapped + mv $prog $hidden + makeWrapper $hidden $prog + ''; + meta = { homepage = http://www.swi-prolog.org/; description = "A Prolog compiler and interpreter"; license = "LGPL"; - platforms = stdenv.lib.platforms.linux; + platforms = stdenv.lib.platforms.unix; maintainers = [ stdenv.lib.maintainers.peti ]; }; } From 1fa5aceda8f5ffa4b9cb6217ded9f40dbe876189 Mon Sep 17 00:00:00 2001 From: Alex Ivanov Date: Mon, 10 Oct 2016 21:50:05 +0300 Subject: [PATCH 4/4] pakcs: fixed for darwin --- .../compilers/pakcs/case-insensitive.patch | 19 +++++++++++++++++++ pkgs/development/compilers/pakcs/default.nix | 7 +++++-- 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 pkgs/development/compilers/pakcs/case-insensitive.patch diff --git a/pkgs/development/compilers/pakcs/case-insensitive.patch b/pkgs/development/compilers/pakcs/case-insensitive.patch new file mode 100644 index 00000000000..e46558c2520 --- /dev/null +++ b/pkgs/development/compilers/pakcs/case-insensitive.patch @@ -0,0 +1,19 @@ +--- www/Makefile.orig 2016-10-10 21:04:36.000000000 +0300 ++++ pakcs-1.14.0/www/Makefile 2016-10-10 21:07:56.000000000 +0300 +@@ -6,7 +6,7 @@ all: submitform Registry + submitform: SubmitForm.curry $(LIBDIR)/HtmlCgi.curry \ + $(LIBDIR)/NamedSocket.curry $(LIBDIR)/CPNS.curry + $(REPL) $(REPL_OPTS) :load SubmitForm :save :q +- mv SubmitForm submitform ++ mv SubmitForm submitform.orig && mv submitform.orig submitform + + Registry: Registry.curry $(LIBDIR)/HtmlCgi.curry + $(REPL) $(REPL_OPTS) :load Registry :save :q +--- currytools/erd2curry/Makefile.orig 2016-10-10 21:13:49.000000000 +0300 ++++ pakcs-1.14.0/currytools/erd2curry/Makefile 2016-10-10 21:21:14.000000000 +0300 +@@ -32,4 +32,4 @@ uninstall: clean + erd2curry: $(DEPS) + # create saved state for top-level function "main": + $(REPL) $(REPL_OPTS) :load ERD2Curry :save "main \"$(CURDIR)\"" :q +- mv ERD2Curry $@ ++ mv ERD2Curry $@.orig && mv $@.orig $@ diff --git a/pkgs/development/compilers/pakcs/default.nix b/pkgs/development/compilers/pakcs/default.nix index 92b916ccb8e..ca790d027e0 100644 --- a/pkgs/development/compilers/pakcs/default.nix +++ b/pkgs/development/compilers/pakcs/default.nix @@ -82,7 +82,10 @@ stdenv.mkDerivation rec { buildInputs = [ swiPrologLocked makeWrapper glibcLocales rlwrap tk which ]; - patches = [ ./adjust-buildsystem.patch ]; + patches = [ + ./adjust-buildsystem.patch + ./case-insensitive.patch + ]; configurePhase = '' # Phony HOME. @@ -151,6 +154,6 @@ stdenv.mkDerivation rec { ''; maintainers = [ stdenv.lib.maintainers.gnidorah ]; - platforms = stdenv.lib.platforms.linux; + platforms = stdenv.lib.platforms.unix; }; }