From d171a77b551f4409a3f7a2cbb8443272de05e56d Mon Sep 17 00:00:00 2001 From: liberodark Date: Mon, 17 Feb 2025 11:58:57 +0100 Subject: [PATCH 1/2] wings: format --- pkgs/by-name/wi/wings/package.nix | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/wi/wings/package.nix b/pkgs/by-name/wi/wings/package.nix index ee8df8dea284..572a72405535 100644 --- a/pkgs/by-name/wi/wings/package.nix +++ b/pkgs/by-name/wi/wings/package.nix @@ -1,4 +1,14 @@ -{ lib, stdenv, fetchurl, fetchpatch, erlang, cl, libGL, libGLU, runtimeShell }: +{ + lib, + stdenv, + fetchurl, + fetchpatch, + erlang, + cl, + libGL, + libGLU, + runtimeShell, +}: stdenv.mkDerivation rec { pname = "wings"; @@ -27,7 +37,12 @@ stdenv.mkDerivation rec { find . -type f -name "*.[eh]rl" -exec sed -i 's,wings/intl_tools/,../intl_tools/,' {} \; ''; - buildInputs = [ erlang cl libGL libGLU ]; + buildInputs = [ + erlang + cl + libGL + libGLU + ]; ERL_LIBS = "${cl}/lib/erlang/lib"; From a79257e14087f1bb2811643283683fe305b554c9 Mon Sep 17 00:00:00 2001 From: liberodark Date: Mon, 17 Feb 2025 11:59:47 +0100 Subject: [PATCH 2/2] wings: 2.2.4 -> 2.4.1 --- pkgs/by-name/wi/wings/package.nix | 90 +++++++++++++++++++++++-------- 1 file changed, 68 insertions(+), 22 deletions(-) diff --git a/pkgs/by-name/wi/wings/package.nix b/pkgs/by-name/wi/wings/package.nix index 572a72405535..c6c9fb52fa5f 100644 --- a/pkgs/by-name/wi/wings/package.nix +++ b/pkgs/by-name/wi/wings/package.nix @@ -1,31 +1,48 @@ { lib, stdenv, - fetchurl, - fetchpatch, + fetchFromGitHub, erlang, cl, libGL, libGLU, runtimeShell, + git, + eigen, + libigl, + nix-update-script, }: stdenv.mkDerivation rec { pname = "wings"; - version = "2.2.4"; + version = "2.4.1"; - src = fetchurl { - url = "mirror://sourceforge/wings/wings-${version}.tar.bz2"; - sha256 = "1xcmifs4vq2810pqqvsjsm8z3lz24ys4c05xkh82nyppip2s89a3"; + src = fetchFromGitHub { + owner = "dgud"; + repo = "wings"; + tag = "v${version}"; + hash = "sha256-3ulWbAOtYujaymN50u7buvnBdtYMEAe8Ji3arvPUH/s="; }; - patches = [ - (fetchpatch { - url = "https://github.com/dgud/wings/commit/94b3a3c6a0cfdcdbd98edce055d5c83ecb361f37.patch"; - hash = "sha256-DHT1TiYoowloIWrdutBu70mL+557cTFr1dRcNgwbkpE="; - }) + nativeBuildInputs = [ git ]; + buildInputs = [ + erlang + cl + libGL + libGLU + eigen + libigl + cl ]; + preBuildPhases = [ "setupDepsPhase" ]; + setupDepsPhase = '' + mkdir -p _deps/eigen _deps/libigl + ln -s ${eigen}/include/eigen3/* _deps/eigen/ + ln -s ${libigl}/include/* _deps/libigl/ + ln -s ${cl}/lib/erlang/lib/cl* _deps/cl + ''; + postPatch = '' find . -type f -name "Makefile" -exec sed -i 's,-Werror ,,' {} \; sed -i 's,../../wings/,../,' icons/Makefile @@ -35,36 +52,65 @@ stdenv.mkDerivation rec { find . -type f -name "*.[eh]rl" -exec sed -i 's,wings/src/,../src/,' {} \; find . -type f -name "*.[eh]rl" -exec sed -i 's,wings/e3d/,../e3d/,' {} \; find . -type f -name "*.[eh]rl" -exec sed -i 's,wings/intl_tools/,../intl_tools/,' {} \; + echo "${version}" > version ''; - buildInputs = [ - erlang - cl - libGL - libGLU + makeFlags = [ + "TYPE=opt" + "WINGS_VSN=${version}" ]; - ERL_LIBS = "${cl}/lib/erlang/lib"; + preBuild = '' + mkdir -p priv + ''; + + buildPhase = '' + runHook preBuild + + make TYPE=opt WINGS_VSN=${version} + cd c_src + make + cd .. + + runHook postBuild + ''; + + postBuild = '' + test -d ebin || exit 1 + test -d priv || exit 1 + ''; # I did not test the *cl* part. I added the -pa just by imitation. installPhase = '' - mkdir -p $out/bin $out/lib/wings-${version}/ebin - cp ebin/* $out/lib/wings-${version}/ebin - cp -R textures shaders plugins $out/lib/wings-${version} + runHook preInstall + + mkdir -p $out/bin $out/lib/wings-${version}/ebin $out/lib/wings-${version}/priv + cp -R ebin/* $out/lib/wings-${version}/ebin/ + cp -R textures shaders plugins $out/lib/wings-${version}/ + cp -R priv/* $out/lib/wings-${version}/priv/ || true + if [ -d c_src ]; then + find c_src -name "*.so" -exec cp {} $out/lib/wings-${version}/priv/ \; + fi cat << EOF > $out/bin/wings #!${runtimeShell} ${erlang}/bin/erl \ -pa $out/lib/wings-${version}/ebin -run wings_start start_halt "$@" EOF chmod +x $out/bin/wings + + runHook postInstall ''; + passthru = { + updateScript = nix-update-script { }; + }; + meta = { homepage = "https://www.wings3d.com/"; description = "Subdivision modeler inspired by Nendo and Mirai from Izware"; license = lib.licenses.tcltk; - maintainers = [ ]; - platforms = with lib.platforms; linux; + maintainers = with lib.maintainers; [ ]; + platforms = lib.platforms.linux; mainProgram = "wings"; }; }