From f6a44bea9e5cfb07dc283f2c7c222f9e0dbadf18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Batlle=20i=20Rossell?= <viric@viric.name> Date: Tue, 29 Mar 2016 12:23:12 +0200 Subject: [PATCH] Updating wings and dependencies to match erlang I updated the erlang esdl lib, added the erlang cl lib, added opencl-headers and ocl-icd to make wings build and run. I have not tested its opencl part; I only added dependencies so it builds. --- pkgs/applications/graphics/wings/default.nix | 19 +++++++---- pkgs/development/libraries/cl/default.nix | 33 +++++++++++++++++++ pkgs/development/libraries/esdl/default.nix | 22 +++++++++---- .../development/libraries/ocl-icd/default.nix | 18 ++++++++++ .../libraries/opencl-headers/default.nix | 23 +++++++++++++ pkgs/top-level/all-packages.nix | 11 ++++--- 6 files changed, 108 insertions(+), 18 deletions(-) create mode 100644 pkgs/development/libraries/cl/default.nix create mode 100644 pkgs/development/libraries/ocl-icd/default.nix create mode 100644 pkgs/development/libraries/opencl-headers/default.nix diff --git a/pkgs/applications/graphics/wings/default.nix b/pkgs/applications/graphics/wings/default.nix index 9e6d6fe492a3..9ecf94e21c01 100644 --- a/pkgs/applications/graphics/wings/default.nix +++ b/pkgs/applications/graphics/wings/default.nix @@ -1,29 +1,34 @@ -{ fetchurl, stdenv, erlang, esdl }: +{ fetchurl, stdenv, erlang, esdl, cl }: stdenv.mkDerivation rec { - name = "wings-1.4.1"; + name = "wings-1.5.4"; src = fetchurl { url = "mirror://sourceforge/wings/${name}.tar.bz2"; - sha256 = "16kqy92rapmbvkc58mc50cidp1pm8nlwlwx69riyadc9w4qs9bji"; + sha256 = "0qz6rmmkqgk3p0d3v2ikkf22n511bq0m7xp3kkradwrp28fcl15x"; }; - ERL_LIBS = "${esdl}/lib/erlang/addons"; + ERL_LIBS = "${esdl}/lib/erlang/lib:${cl}/lib/erlang/lib"; patchPhase = '' sed -i 's,include("sdl_keyboard.hrl"),include_lib("esdl/include/sdl_keyboard.hrl"),' \ src/wings_body.erl plugins_src/commands/wpc_constraints.erl + + # Fix reference + sed -i 's,wings/e3d/,,' plugins_src/import_export/wpc_lwo.erl ''; - buildInputs = [ erlang esdl ]; + buildInputs = [ erlang esdl cl ]; + # I did not test the *cl* part. I added the -pa just by imitation. installPhase = '' mkdir -p $out/bin $out/lib/${name}/ebin cp ebin/* $out/lib/${name}/ebin cp -R fonts textures shaders plugins $out/lib/$name cat << EOF > $out/bin/wings #!/bin/sh - export ROOTDIR=$out/lib/erlang/addons/${name} - ${erlang}/bin/erl -smp disable -pa ${esdl}/lib/erlang/addons/${esdl.name}/ebin \ + ${erlang}/bin/erl -smp disable \ + -pa ${esdl}/lib/erlang/lib/${cl.name}/ebin \ + -pa ${esdl}/lib/erlang/lib/${esdl.name}/ebin \ -pa $out/lib/${name}/ebin -run wings_start start_halt "$@" EOF chmod +x $out/bin/wings diff --git a/pkgs/development/libraries/cl/default.nix b/pkgs/development/libraries/cl/default.nix new file mode 100644 index 000000000000..dfb54893b6ca --- /dev/null +++ b/pkgs/development/libraries/cl/default.nix @@ -0,0 +1,33 @@ +{stdenv, fetchurl, SDL, mesa, rebar, erlang, opencl-headers, ocl-icd }: + +stdenv.mkDerivation rec { + version = "1.2.1"; + name = "cl-${version}"; + + src = fetchurl { + url = "https://github.com/tonyrog/cl/archive/${name}.tar.gz"; + sha256 = "03jv280h9gqqqkm0mmkjr53srd2mzhvyy1biss77wpjrzq2z12c8"; + }; + + buildInputs = [ erlang rebar opencl-headers ocl-icd ]; + #propagatedBuildInputs = [ SDL mesa ]; + + buildPhase = '' + sed 's/git/"${version}"/' -i src/cl.app.src + rebar compile + ''; + + # 'cp' line taken from Arch recipe + # https://projects.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/erlang-sdl + installPhase = '' + DIR=$out/lib/erlang/lib/${name} + mkdir -p $DIR + cp -ruv c_src doc ebin include priv src $DIR + ''; + + meta = { + homepage = https://github.com/tonyrog/cl; + description = "OpenCL binding for Erlang"; + license = stdenv.lib.licences.mit; + }; +} diff --git a/pkgs/development/libraries/esdl/default.nix b/pkgs/development/libraries/esdl/default.nix index ccc3318ff6b9..63fc169355c6 100644 --- a/pkgs/development/libraries/esdl/default.nix +++ b/pkgs/development/libraries/esdl/default.nix @@ -1,18 +1,26 @@ -{stdenv, fetchurl, SDL, mesa, erlang}: +{stdenv, fetchurl, SDL, mesa, rebar, erlang}: stdenv.mkDerivation rec { - name = "esdl-1.0.1"; + name = "esdl-1.3.1"; src = fetchurl { - url = "mirror://sourceforge/esdl/${name}.src.tar.gz"; - sha256 = "0zc7cmr44v10sb593dismdm5qc2v7sm3z9yh22g4r9g6asbg5z0n"; + url = "mirror://sourceforge/esdl/${name}.src.tgz"; + sha256 = "0f5ad519600qarsa2anmnaxh6b7djzx1dnwxzi4l36pxsq896y01"; }; - buildInputs = [ erlang ]; + buildInputs = [ erlang rebar ]; propagatedBuildInputs = [ SDL mesa ]; - preBuild = '' - export makeFlags="INSTALLDIR=$out/lib/erlang/addons/${name}"; + buildPhase = '' + rebar compile + ''; + + # 'cp' line taken from Arch recipe + # https://projects.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/erlang-sdl + installPhase = '' + DIR=$out/lib/erlang/lib/${name} + mkdir -p $DIR + cp -ruv c_src doc ebin include priv src $DIR ''; meta = { diff --git a/pkgs/development/libraries/ocl-icd/default.nix b/pkgs/development/libraries/ocl-icd/default.nix new file mode 100644 index 000000000000..ac26ac7126fd --- /dev/null +++ b/pkgs/development/libraries/ocl-icd/default.nix @@ -0,0 +1,18 @@ +{stdenv, fetchurl, ruby }: + +stdenv.mkDerivation rec { + name = "ocl-icd-2.2.9"; + + src = fetchurl { + url = "https://forge.imag.fr/frs/download.php/716/${name}.tar.gz"; + sha256 = "1rgaixwnxmrq2aq4kcdvs0yx7i6krakarya9vqs7qwsv5hzc32hc"; + }; + + buildInputs = [ ruby ]; + + meta = with stdenv.lib; { + description = "OpenCL ICD Loader"; + homepage = https://forge.imag.fr/projects/ocl-icd/; + license = licenses.bsd2; + }; +} diff --git a/pkgs/development/libraries/opencl-headers/default.nix b/pkgs/development/libraries/opencl-headers/default.nix new file mode 100644 index 000000000000..9b931894f66f --- /dev/null +++ b/pkgs/development/libraries/opencl-headers/default.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchFromGitHub, cmake }: + +stdenv.mkDerivation rec { + name = "opencl-headers-2.1.0"; + + src = fetchFromGitHub { + owner = "KhronosGroup"; + repo = "OpenCL-Headers"; + rev = "c1770dcc6cf1daadec1905e7393f3691c1dde200"; + sha256 = "0m9fkblqja0686i2jjqiszvq3df95gp01a2674xknlmkd6525rck"; + }; + + installPhase = '' + mkdir -p $out/include/CL + cp * $out/include/CL + ''; + + meta = with stdenv.lib; { + description = "Khronos OpenCL headers"; + homepage = https://www.khronos.org/registry/cl/; + license = licenses.mit; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 752f23079954..8d15f689b0f6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6432,6 +6432,8 @@ in stdenv = overrideInStdenv stdenv [gnumake380]; }; + cl = callPackage ../development/libraries/cl { }; + clanlib = callPackage ../development/libraries/clanlib { }; classads = callPackage ../development/libraries/classads { }; @@ -8217,6 +8219,8 @@ in nvidia-texture-tools = callPackage ../development/libraries/nvidia-texture-tools { }; + ocl-icd = callPackage ../development/libraries/ocl-icd { }; + ode = callPackage ../development/libraries/ode { }; ogre = callPackage ../development/libraries/ogre {}; @@ -8244,6 +8248,8 @@ in opencascade_oce = callPackage ../development/libraries/opencascade/oce.nix { }; + opencl-headers = callPackage ../development/libraries/opencl-headers { }; + opencollada = callPackage ../development/libraries/opencollada { }; opencsg = callPackage ../development/libraries/opencsg { }; @@ -14133,10 +14139,7 @@ in winswitch = callPackage ../tools/X11/winswitch { }; - wings = callPackage ../applications/graphics/wings { - erlang = erlangR14; - esdl = esdl.override { erlang = erlangR14; }; - }; + wings = callPackage ../applications/graphics/wings { }; wmname = callPackage ../applications/misc/wmname { };