From ef7a25fcc0063390a108049e69148fdb36430668 Mon Sep 17 00:00:00 2001 From: James Kay Date: Wed, 14 Feb 2018 17:42:48 +0000 Subject: [PATCH 01/13] godot: 2.1.4 -> 3.0 --- pkgs/development/tools/godot/default.nix | 30 ++++++++++++------- .../tools/godot/pkg_config_additions.patch | 7 +++-- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/pkgs/development/tools/godot/default.nix b/pkgs/development/tools/godot/default.nix index 1ea4d160b4c..067ac4aa694 100644 --- a/pkgs/development/tools/godot/default.nix +++ b/pkgs/development/tools/godot/default.nix @@ -1,22 +1,29 @@ -{ stdenv, fetchFromGitHub, gcc5, scons, pkgconfig, libX11, libXcursor -, libXinerama, libXrandr, libXrender, freetype, openssl, alsaLib -, libpulseaudio, libGLU, zlib }: +{ stdenv, lib, fetchFromGitHub, gcc5, scons, pkgconfig, libX11, libXcursor +, libXinerama, libXrandr, libXrender, libpulseaudio ? null +, libXi ? null, libXext, libXfixes, freetype, openssl +, alsaLib, libGLU, zlib, yasm ? null }: -stdenv.mkDerivation rec { +let + options = { + touch = libXi != null; + pulseaudio = false; + }; +in stdenv.mkDerivation rec { name = "godot-${version}"; - version = "2.1.4"; + version = "3.0"; src = fetchFromGitHub { owner = "godotengine"; repo = "godot"; rev = "${version}-stable"; - sha256 = "0d2zczn5k7296sky5gllq55cxd586nx134y2iwjpkqqjr62g0h48"; + sha256 = "1pgs2hghjhs3vkgxsi50i5myr7yac3jhpk4vi4bcra1cvdmkgr39"; }; nativeBuildInputs = [ pkgconfig ]; buildInputs = [ gcc5 scons libX11 libXcursor libXinerama libXrandr libXrender - freetype openssl alsaLib libpulseaudio libGLU zlib + libXi libXext libXfixes freetype openssl alsaLib libpulseaudio + libGLU zlib ]; patches = [ ./pkg_config_additions.patch ]; @@ -24,12 +31,14 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; buildPhase = '' - scons platform=x11 prefix=$out -j $NIX_BUILD_CORES + scons platform=x11 prefix=$out -j $NIX_BUILD_CORES \ + ${lib.concatStringsSep " " + (lib.mapAttrsToList (k: v: "${k}=${builtins.toJSON v}") options)} ''; installPhase = '' - mkdir $out/bin -p - cp bin/godot.* $out/bin/ + mkdir $out + cp -r bin $out ''; meta = { @@ -37,5 +46,6 @@ stdenv.mkDerivation rec { description = "Free and Open Source 2D and 3D game engine"; license = stdenv.lib.licenses.mit; platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.twey ]; }; } diff --git a/pkgs/development/tools/godot/pkg_config_additions.patch b/pkgs/development/tools/godot/pkg_config_additions.patch index 2302710ac7e..4870ec3cd70 100644 --- a/pkgs/development/tools/godot/pkg_config_additions.patch +++ b/pkgs/development/tools/godot/pkg_config_additions.patch @@ -1,9 +1,12 @@ +++ build/platform/x11/detect.py -@@ -139,6 +139,10 @@ - env.ParseConfig('pkg-config xinerama --cflags --libs') +@@ -142,3 +142,10 @@ env.ParseConfig('pkg-config xcursor --cflags --libs') + env.ParseConfig('pkg-config xinerama --cflags --libs') env.ParseConfig('pkg-config xrandr --cflags --libs') + env.ParseConfig('pkg-config xrender --cflags --libs') ++ env.ParseConfig('pkg-config xi --cflags --libs') ++ env.ParseConfig('pkg-config xext --cflags --libs') ++ env.ParseConfig('pkg-config xfixes --cflags --libs') + env.ParseConfig('pkg-config oslibGLU_combined --cflags') + env.ParseConfig('pkg-config glu --cflags --libs') + env.ParseConfig('pkg-config zlib --cflags --libs') From 494a4ef3ce33d7edc1661273e18cee2a2f10b9d2 Mon Sep 17 00:00:00 2001 From: James Kay Date: Wed, 14 Feb 2018 17:43:33 +0000 Subject: [PATCH 02/13] godot_headers: init at 51bca3bf5d917341f3e15076c5a9191f8a5118ae --- .../libraries/godot_headers/default.nix | 20 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 21 insertions(+) create mode 100644 pkgs/development/libraries/godot_headers/default.nix diff --git a/pkgs/development/libraries/godot_headers/default.nix b/pkgs/development/libraries/godot_headers/default.nix new file mode 100644 index 00000000000..07f901bf9ac --- /dev/null +++ b/pkgs/development/libraries/godot_headers/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchFromGitHub }: +stdenv.mkDerivation rec { + name = "godot_headers"; + version = "51bca3bf5d917341f3e15076c5a9191f8a5118ae"; + src = fetchFromGitHub { + owner = "GodotNativeTools"; + repo = "godot_headers"; + rev = version; + sha256 = "0z562pqm8y8wldmfiya72cvwwpvcfznpl0wypagw50v0f41ilywh"; + }; + buildPhase = "true"; + installPhase = "cp -r . $out"; + meta = { + homepage = "https://github.com/GodotNativeTools/godot_headers/"; + description = "Headers for the Godot API supplied by the GDNative module"; + license = stdenv.lib.licenses.mit; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.twey ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e8e6b900829..e7119965b02 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2560,6 +2560,7 @@ with pkgs; gocryptfs = callPackage ../tools/filesystems/gocrypfs { }; godot = callPackage ../development/tools/godot {}; + godot_headers = callPackage ../development/libraries/godot_headers {}; goklp = callPackage ../tools/networking/goklp {}; From 62ab6170523962c2a2b0bb743b5f02715fdeb680 Mon Sep 17 00:00:00 2001 From: James Kay Date: Fri, 16 Feb 2018 11:41:13 +0000 Subject: [PATCH 03/13] godot_headers: clean up output path --- pkgs/development/libraries/godot_headers/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/godot_headers/default.nix b/pkgs/development/libraries/godot_headers/default.nix index 07f901bf9ac..aa29d2788fe 100644 --- a/pkgs/development/libraries/godot_headers/default.nix +++ b/pkgs/development/libraries/godot_headers/default.nix @@ -9,7 +9,10 @@ stdenv.mkDerivation rec { sha256 = "0z562pqm8y8wldmfiya72cvwwpvcfznpl0wypagw50v0f41ilywh"; }; buildPhase = "true"; - installPhase = "cp -r . $out"; + installPhase = '' + mkdir $out + cp -r . $out/include + ''; meta = { homepage = "https://github.com/GodotNativeTools/godot_headers/"; description = "Headers for the Godot API supplied by the GDNative module"; From ef5fd1cf27e0b2cd62c7bcb78defd83dd355ff86 Mon Sep 17 00:00:00 2001 From: James Kay Date: Fri, 16 Feb 2018 11:41:26 +0000 Subject: [PATCH 04/13] godot: clean up output path --- pkgs/development/tools/godot/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/godot/default.nix b/pkgs/development/tools/godot/default.nix index 067ac4aa694..395080c3da5 100644 --- a/pkgs/development/tools/godot/default.nix +++ b/pkgs/development/tools/godot/default.nix @@ -37,8 +37,8 @@ in stdenv.mkDerivation rec { ''; installPhase = '' - mkdir $out - cp -r bin $out + mkdir -p $out/bin + cp -r bin/godot.x11.tools.64 $out/bin/godot ''; meta = { From 2b96b03333e8d1c78c9ecd96df3182bd9c0b991d Mon Sep 17 00:00:00 2001 From: James Kay Date: Tue, 20 Feb 2018 11:58:59 +0000 Subject: [PATCH 05/13] godot_headers: provide a better version string --- pkgs/development/libraries/godot_headers/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/godot_headers/default.nix b/pkgs/development/libraries/godot_headers/default.nix index aa29d2788fe..c60fbdd3acc 100644 --- a/pkgs/development/libraries/godot_headers/default.nix +++ b/pkgs/development/libraries/godot_headers/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchFromGitHub }: stdenv.mkDerivation rec { name = "godot_headers"; - version = "51bca3bf5d917341f3e15076c5a9191f8a5118ae"; + version = "2018-02-09"; src = fetchFromGitHub { owner = "GodotNativeTools"; repo = "godot_headers"; - rev = version; + rev = "51bca3bf5d917341f3e15076c5a9191f8a5118ae"; sha256 = "0z562pqm8y8wldmfiya72cvwwpvcfznpl0wypagw50v0f41ilywh"; }; buildPhase = "true"; From 7ba969f87e68cad7c813210e758cff0b2cdd4047 Mon Sep 17 00:00:00 2001 From: James Kay Date: Wed, 21 Feb 2018 12:23:11 +0000 Subject: [PATCH 06/13] godot: stop build process from looking in global directories --- pkgs/development/tools/godot/default.nix | 7 +++++-- .../tools/godot/dont_clobber_environment.patch | 16 ++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 pkgs/development/tools/godot/dont_clobber_environment.patch diff --git a/pkgs/development/tools/godot/default.nix b/pkgs/development/tools/godot/default.nix index 395080c3da5..9b515511953 100644 --- a/pkgs/development/tools/godot/default.nix +++ b/pkgs/development/tools/godot/default.nix @@ -23,10 +23,13 @@ in stdenv.mkDerivation rec { buildInputs = [ gcc5 scons libX11 libXcursor libXinerama libXrandr libXrender libXi libXext libXfixes freetype openssl alsaLib libpulseaudio - libGLU zlib + libGLU zlib yasm ]; - patches = [ ./pkg_config_additions.patch ]; + patches = [ + ./pkg_config_additions.patch + ./dont_clobber_environment.patch + ]; enableParallelBuilding = true; diff --git a/pkgs/development/tools/godot/dont_clobber_environment.patch b/pkgs/development/tools/godot/dont_clobber_environment.patch new file mode 100644 index 00000000000..c57c85588a0 --- /dev/null +++ b/pkgs/development/tools/godot/dont_clobber_environment.patch @@ -0,0 +1,16 @@ ++++ build/SConstruct +@@ -69,10 +69,10 @@ + custom_tools = ['mingw'] + + env_base = Environment(tools=custom_tools) +-if 'TERM' in os.environ: +- env_base['ENV']['TERM'] = os.environ['TERM'] +-env_base.AppendENVPath('PATH', os.getenv('PATH')) +-env_base.AppendENVPath('PKG_CONFIG_PATH', os.getenv('PKG_CONFIG_PATH')) ++for k in ("TERM", "PATH", "PKG_CONFIG_PATH"): ++ if (k in os.environ): ++ env_base["ENV"][k] = os.environ[k] ++ + env_base.global_defaults = global_defaults + env_base.android_maven_repos = [] + env_base.android_flat_dirs = [] From 998f42aa4898f05bc7b25d3180f5402d20b7064b Mon Sep 17 00:00:00 2001 From: James Kay Date: Fri, 16 Mar 2018 17:44:44 +0000 Subject: [PATCH 07/13] godot: restrict build platforms to [ "i686-linux" "x86_64-linux" ] --- pkgs/development/tools/godot/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/tools/godot/default.nix b/pkgs/development/tools/godot/default.nix index 9b515511953..375638a8220 100644 --- a/pkgs/development/tools/godot/default.nix +++ b/pkgs/development/tools/godot/default.nix @@ -48,7 +48,7 @@ in stdenv.mkDerivation rec { homepage = "https://godotengine.org"; description = "Free and Open Source 2D and 3D game engine"; license = stdenv.lib.licenses.mit; - platforms = stdenv.lib.platforms.linux; + platforms = [ "i646-linux" "x86_64-linux" ]; maintainers = [ stdenv.lib.maintainers.twey ]; }; } From 5fbbd5e02bf73e3edb589e99b4f95658cf7109cd Mon Sep 17 00:00:00 2001 From: James Kay Date: Fri, 16 Mar 2018 19:54:32 +0000 Subject: [PATCH 08/13] godot: 3.0 -> 3.0.2 --- pkgs/development/tools/godot/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/godot/default.nix b/pkgs/development/tools/godot/default.nix index 375638a8220..b2a4684ffeb 100644 --- a/pkgs/development/tools/godot/default.nix +++ b/pkgs/development/tools/godot/default.nix @@ -10,13 +10,13 @@ let }; in stdenv.mkDerivation rec { name = "godot-${version}"; - version = "3.0"; + version = "3.0.2"; src = fetchFromGitHub { owner = "godotengine"; repo = "godot"; rev = "${version}-stable"; - sha256 = "1pgs2hghjhs3vkgxsi50i5myr7yac3jhpk4vi4bcra1cvdmkgr39"; + sha256 = "1ca1zznb7qqn4vf2nfwb8nww5x0k8fc4lwjvgydr6nr2mn70xka4"; }; nativeBuildInputs = [ pkgconfig ]; From 4708b4e03b9bfa18435dbd2eb368c7726e1cb82a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?James=20=E2=80=98Twey=E2=80=99=20Kay?= Date: Sun, 18 Mar 2018 15:57:57 +0000 Subject: [PATCH 09/13] godot: fix stupid typo --- pkgs/development/tools/godot/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/godot/default.nix b/pkgs/development/tools/godot/default.nix index b2a4684ffeb..3c4914cd7cd 100644 --- a/pkgs/development/tools/godot/default.nix +++ b/pkgs/development/tools/godot/default.nix @@ -41,14 +41,14 @@ in stdenv.mkDerivation rec { installPhase = '' mkdir -p $out/bin - cp -r bin/godot.x11.tools.64 $out/bin/godot + cp bin/godot.x11.tools.* $out/bin/godot ''; meta = { homepage = "https://godotengine.org"; description = "Free and Open Source 2D and 3D game engine"; license = stdenv.lib.licenses.mit; - platforms = [ "i646-linux" "x86_64-linux" ]; + platforms = [ "i686-linux" "x86_64-linux" ]; maintainers = [ stdenv.lib.maintainers.twey ]; }; } From d1d320f4935408b4535e8d4feaffc69cec2038a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?James=20=E2=80=98Twey=E2=80=99=20Kay?= Date: Sun, 18 Mar 2018 16:18:03 +0000 Subject: [PATCH 10/13] godot_headers: set platforms = all --- pkgs/development/libraries/godot_headers/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/godot_headers/default.nix b/pkgs/development/libraries/godot_headers/default.nix index c60fbdd3acc..940882b1742 100644 --- a/pkgs/development/libraries/godot_headers/default.nix +++ b/pkgs/development/libraries/godot_headers/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { homepage = "https://github.com/GodotNativeTools/godot_headers/"; description = "Headers for the Godot API supplied by the GDNative module"; license = stdenv.lib.licenses.mit; - platforms = stdenv.lib.platforms.linux; + platforms = stdenv.lib.platforms.all; maintainers = [ stdenv.lib.maintainers.twey ]; }; } From 2220b5fe99acf5f31f825ee659f23c9b729c228f Mon Sep 17 00:00:00 2001 From: James Kay Date: Mon, 19 Mar 2018 11:59:55 +0000 Subject: [PATCH 11/13] godot: update patches for 3.0.2 --- .../tools/godot/pkg_config_additions.patch | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pkgs/development/tools/godot/pkg_config_additions.patch b/pkgs/development/tools/godot/pkg_config_additions.patch index 4870ec3cd70..f20226c5819 100644 --- a/pkgs/development/tools/godot/pkg_config_additions.patch +++ b/pkgs/development/tools/godot/pkg_config_additions.patch @@ -1,15 +1,17 @@ +++ build/platform/x11/detect.py -@@ -142,3 +142,10 @@ +@@ -142,8 +142,13 @@ env.ParseConfig('pkg-config xcursor --cflags --libs') env.ParseConfig('pkg-config xinerama --cflags --libs') env.ParseConfig('pkg-config xrandr --cflags --libs') +- +- if (env['touch']): + env.ParseConfig('pkg-config xrender --cflags --libs') -+ env.ParseConfig('pkg-config xi --cflags --libs') + env.ParseConfig('pkg-config xext --cflags --libs') + env.ParseConfig('pkg-config xfixes --cflags --libs') -+ env.ParseConfig('pkg-config oslibGLU_combined --cflags') + env.ParseConfig('pkg-config glu --cflags --libs') + env.ParseConfig('pkg-config zlib --cflags --libs') - - if (env['builtin_openssl'] == 'no'): - # Currently not compatible with OpenSSL 1.1.0+ ++ ++ if (env['touch']): + x11_error = os.system("pkg-config xi --modversion > /dev/null ") + if (x11_error): + print("xi not found.. cannot build with touch. Aborting.") From 368ed89aa08e1e27c8bd210c160ec301c38832d1 Mon Sep 17 00:00:00 2001 From: James Kay Date: Mon, 19 Mar 2018 14:51:18 +0000 Subject: [PATCH 12/13] godot: simplify pkg_config_additions.patch --- .../tools/godot/pkg_config_additions.patch | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/pkgs/development/tools/godot/pkg_config_additions.patch b/pkgs/development/tools/godot/pkg_config_additions.patch index f20226c5819..286372f060a 100644 --- a/pkgs/development/tools/godot/pkg_config_additions.patch +++ b/pkgs/development/tools/godot/pkg_config_additions.patch @@ -1,17 +1,13 @@ -+++ build/platform/x11/detect.py -@@ -142,8 +142,13 @@ ++++ b/platform/x11/detect.py +@@ -142,6 +142,11 @@ env.ParseConfig('pkg-config xcursor --cflags --libs') env.ParseConfig('pkg-config xinerama --cflags --libs') env.ParseConfig('pkg-config xrandr --cflags --libs') -- -- if (env['touch']): + env.ParseConfig('pkg-config xrender --cflags --libs') + env.ParseConfig('pkg-config xext --cflags --libs') + env.ParseConfig('pkg-config xfixes --cflags --libs') + env.ParseConfig('pkg-config glu --cflags --libs') + env.ParseConfig('pkg-config zlib --cflags --libs') -+ -+ if (env['touch']): + + if (env['touch']): x11_error = os.system("pkg-config xi --modversion > /dev/null ") - if (x11_error): - print("xi not found.. cannot build with touch. Aborting.") From 9508150198c2d02b4b674eecd06834fd049639e0 Mon Sep 17 00:00:00 2001 From: James Kay Date: Mon, 19 Mar 2018 14:51:36 +0000 Subject: [PATCH 13/13] godot: don't require gcc5 --- pkgs/development/tools/godot/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/godot/default.nix b/pkgs/development/tools/godot/default.nix index 3c4914cd7cd..e89b2f62b15 100644 --- a/pkgs/development/tools/godot/default.nix +++ b/pkgs/development/tools/godot/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchFromGitHub, gcc5, scons, pkgconfig, libX11, libXcursor +{ stdenv, lib, fetchFromGitHub, scons, pkgconfig, libX11, libXcursor , libXinerama, libXrandr, libXrender, libpulseaudio ? null , libXi ? null, libXext, libXfixes, freetype, openssl , alsaLib, libGLU, zlib, yasm ? null }: @@ -21,7 +21,7 @@ in stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - gcc5 scons libX11 libXcursor libXinerama libXrandr libXrender + scons libX11 libXcursor libXinerama libXrandr libXrender libXi libXext libXfixes freetype openssl alsaLib libpulseaudio libGLU zlib yasm ];