uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
73
pkgs/applications/graphics/apitrace/default.nix
Normal file
73
pkgs/applications/graphics/apitrace/default.nix
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
{ lib, stdenv, fetchFromGitHub, cmake, libX11, procps, python2, libdwarf, qtbase, qtwebkit, wrapQtAppsHook, libglvnd }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "apitrace";
|
||||
version = "7.1-572-g${builtins.substring 0 8 src.rev}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
sha256 = "11bwb0l8cr1bf9bj1s6cbmi77d5fy4qrphj9cgmcd8jpa862anp5";
|
||||
rev = "26966134f15d28f6b4a9a0a560017b3ba36d60bf";
|
||||
repo = "apitrace";
|
||||
owner = "apitrace";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# glibc 2.34 compat
|
||||
# derived from https://github.com/apitrace/apitrace/commit/d28a980802ad48568c87da02d630c8babfe163bb
|
||||
./glibc-2.34-compat.patch
|
||||
];
|
||||
|
||||
# LD_PRELOAD wrappers need to be statically linked to work against all kinds
|
||||
# of games -- so it's fine to use e.g. bundled snappy.
|
||||
buildInputs = [ libX11 procps python2 libdwarf qtbase qtwebkit ];
|
||||
|
||||
nativeBuildInputs = [ cmake wrapQtAppsHook ];
|
||||
|
||||
# Don't automatically wrap all binaries, I prefer to explicitly only wrap
|
||||
# `qapitrace`.
|
||||
dontWrapQtApps = true;
|
||||
|
||||
postFixup = ''
|
||||
|
||||
# Since https://github.com/NixOS/nixpkgs/pull/60985, we add `/run-opengl-driver[-32]`
|
||||
# to the `RUNPATH` of dispatcher libraries `dlopen()` ing OpenGL drivers.
|
||||
# `RUNPATH` doesn't propagate throughout the whole application, but only
|
||||
# from the module performing the `dlopen()`.
|
||||
#
|
||||
# Apitrace wraps programs by running them with `LD_PRELOAD` pointing to `.so`
|
||||
# files in $out/lib/apitrace/wrappers.
|
||||
#
|
||||
# Theses wrappers effectively wrap the `dlopen()` calls from `libglvnd`
|
||||
# and other dispatcher libraries, and run `dlopen()` by themselves.
|
||||
#
|
||||
# As `RUNPATH` doesn't propagate through the whole library, and they're now the
|
||||
# library doing the real `dlopen()`, they also need to have
|
||||
# `/run-opengl-driver[-32]` added to their `RUNPATH`.
|
||||
#
|
||||
# To stay simple, we add paths for 32 and 64 bits unconditionally.
|
||||
# This doesn't have an impact on closure size, and if the 32 bit drivers
|
||||
# are not available, that folder is ignored.
|
||||
for i in $out/lib/apitrace/wrappers/*.so
|
||||
do
|
||||
echo "Patching OpenGL driver path for $i"
|
||||
patchelf --set-rpath "/run/opengl-driver/lib:/run/opengl-driver-32/lib:$(patchelf --print-rpath $i)" $i
|
||||
done
|
||||
|
||||
# Theses open the OpenGL driver at runtime, but it is not listed as NEEDED libraries. They need
|
||||
# a reference to libglvnd.
|
||||
for i in $out/bin/eglretrace $out/bin/glretrace
|
||||
do
|
||||
echo "Patching RPath for $i"
|
||||
patchelf --set-rpath "${lib.makeLibraryPath [libglvnd]}:$(patchelf --print-rpath $i)" $i
|
||||
done
|
||||
|
||||
wrapQtApp $out/bin/qapitrace
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://apitrace.github.io";
|
||||
description = "Tools to trace OpenGL, OpenGL ES, Direct3D, and DirectDraw APIs";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue