diff --git a/pkgs/development/libraries/waffle/default.nix b/pkgs/development/libraries/waffle/default.nix new file mode 100644 index 000000000000..66a1b7ab1450 --- /dev/null +++ b/pkgs/development/libraries/waffle/default.nix @@ -0,0 +1,54 @@ +{ stdenv +, fetchFromGitLab +, lib +, cmake +, libGL +, libglvnd +, makeWrapper +, pkg-config +, wayland +, libxcb +, libX11 +}: + +stdenv.mkDerivation rec { + pname = "waffle"; + version = "1.6.1"; + + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "mesa"; + repo = "waffle"; + rev = "v${version}"; + sha256 = "0s8gislmhccfa04zsj1yqk97lscbbnmxirr2zm4q3p8ybmpfhpqr"; + }; + + buildInputs = [ + libGL + libglvnd + libX11 + libxcb + wayland + ]; + + nativeBuildInputs = [ + cmake + makeWrapper + pkg-config + ]; + + cmakeFlags = [ "-Dplatforms=x11,wayland" ]; + + postInstall = '' + wrapProgram $out/bin/wflinfo \ + --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ libGL libglvnd ]} + ''; + + meta = with lib; { + description = "A cross-platform C library that allows one to defer selection of an OpenGL API and window system until runtime"; + homepage = "http://www.waffle-gl.org/"; + license = licenses.bsd2; + platforms = platforms.mesaPlatforms; + maintainers = with maintainers; [ Flakebi ]; + }; +} diff --git a/pkgs/tools/graphics/piglit/default.nix b/pkgs/tools/graphics/piglit/default.nix new file mode 100644 index 000000000000..e2c2b6e6e972 --- /dev/null +++ b/pkgs/tools/graphics/piglit/default.nix @@ -0,0 +1,77 @@ +{ stdenv +, fetchFromGitLab +, lib +, cmake +, freeglut +, libGL +, libGLU +, libglvnd +, makeWrapper +, ninja +, pkg-config +, python3 +, waffle +, wayland +, libX11 +, libXrender +, libxcb +, libxkbcommon +}: + +stdenv.mkDerivation rec { + pname = "piglit"; + version = "unstable-2020-10-23"; + + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "mesa"; + repo = "piglit"; + rev = "59e695c16fdcdd4ea4f16365f0e397a93cef7b80"; + sha256 = "kx0+2Sdvdc3SbpAIl2OuGCWCpaLJC/7cXG+ZLvf92g8="; + }; + + buildInputs = [ + freeglut + libGL + libGLU + libglvnd + libX11 + libXrender + libxcb + libxkbcommon + (python3.withPackages (ps: with ps; [ + Mako + numpy + ])) + waffle + wayland + ]; + + nativeBuildInputs = [ + cmake + makeWrapper + ninja + pkg-config + ]; + + # Find data dir: piglit searches for the data directory in some places, however as it is wrapped, + # it search in ../lib/.piglit-wrapped, we just replace the script name with "piglit" again. + prePatch = '' + substituteInPlace piglit \ + --replace 'script_basename_noext = os.path.splitext(os.path.basename(__file__))[0]' 'script_basename_noext = "piglit"' + ''; + + postInstall = '' + wrapProgram $out/bin/piglit \ + --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ libGL libglvnd ]} \ + --prefix PATH : "${waffle}/bin" + ''; + + meta = with lib; { + description = "An OpenGL test suite, and test-suite runner"; + homepage = "https://gitlab.freedesktop.org/mesa/piglit"; + license = licenses.free; # custom license. See COPYING in the source repo. + platforms = platforms.mesaPlatforms; + maintainers = with maintainers; [ Flakebi ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3d15b75f2ed7..e229b8b8e6d4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2471,6 +2471,8 @@ in photon = callPackage ../tools/networking/photon { }; + piglit = callPackage ../tools/graphics/piglit { }; + playerctl = callPackage ../tools/audio/playerctl { }; ps_mem = callPackage ../tools/system/ps_mem { }; @@ -16072,6 +16074,8 @@ in stdenv = gcc6Stdenv; # upstream code incompatible with gcc7 }; + waffle = callPackage ../development/libraries/waffle { }; + wally-cli = callPackage ../development/tools/wally-cli { }; wavpack = callPackage ../development/libraries/wavpack { };