unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#65106] [PATCH] gnu: Add tracy.
@ 2023-08-06  5:40 dan
  2023-09-05 13:46 ` Maxim Cournoyer
  2023-09-24 17:13 ` [bug#65106] [PATCH v2 0/2] gnu: Add tracy and tracy-wayland dan
  0 siblings, 2 replies; 6+ messages in thread
From: dan @ 2023-08-06  5:40 UTC (permalink / raw)
  To: 65106

---
 gnu/packages/profiling.scm | 48 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 47 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index 8a1c609669..799b333162 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2017 Dave Love <fx@gnu.org>
 ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2023 dan <i@dan.games>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21,6 +22,7 @@
 (define-module (gnu packages profiling)
   #:use-module (guix packages)
   #:use-module (guix gexp)
+  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:) ; avoid zlib, expat clashes
   #:use-module (guix download)
   #:use-module (guix utils)
@@ -31,17 +33,20 @@ (define-module (gnu packages profiling)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages engineering)
   #:use-module (gnu packages fabric-management)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gawk)
   #:use-module (gnu packages gcc)
+  #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages libunwind)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
-  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages qt))
 
@@ -389,3 +394,44 @@ (define (make-scorep mpi)
     (license license:cpl1.0)))
 
 (define-public scorep-openmpi (make-scorep openmpi))
+
+(define-public tracy
+  (package
+    (name "tracy")
+    (version "0.9.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/wolfpld/tracy.git")
+                    (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "1znw1r1c4vrb9vrsr08gcwynpjda8xxmb3923yykpymw2hsm0n9b"))
+              (file-name (git-file-name "tracy" version))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:tests? #f ;no test for the profiler
+           #:make-flags #~(list "LEGACY=1"
+                                (string-append "CC="
+                                               #$(cc-for-target)))
+           #:phases #~(modify-phases %standard-phases
+                        (replace 'configure
+                          (lambda _
+                            (chdir "profiler/build/unix")))
+                        (replace 'install
+                          (lambda _
+                            (let ((out (string-append #$output "/bin/tracy"))
+                                  (bin (string-append #$output "/bin")))
+                              (mkdir-p bin)
+                              (copy-file "Tracy-release" out)
+                              (wrap-program out
+                                `("LD_LIBRARY_PATH" ":" =
+                                  (,(string-append #$mesa "/lib"))))))))))
+    (inputs (list capstone dbus freetype glfw))
+    (native-inputs (list pkg-config))
+    (home-page "https://github.com/wolfpld/tracy")
+    (synopsis "Frame profiler")
+    (description
+     "A real time, nanosecond resolution, remote telemetry, hybrid frame and
+sampling profiler for games and other applications.")
+    (license license:bsd-3)))

base-commit: c4b9f726e3a1889b92a4b14a2af1c25f10798469
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [bug#65106] [PATCH] gnu: Add tracy.
  2023-08-06  5:40 [bug#65106] [PATCH] gnu: Add tracy dan
@ 2023-09-05 13:46 ` Maxim Cournoyer
  2023-09-24 17:13 ` [bug#65106] [PATCH v2 0/2] gnu: Add tracy and tracy-wayland dan
  1 sibling, 0 replies; 6+ messages in thread
From: Maxim Cournoyer @ 2023-09-05 13:46 UTC (permalink / raw)
  To: dan; +Cc: 65106

Hello!

dan <i@dan.games> writes:

> ---
>  gnu/packages/profiling.scm | 48 +++++++++++++++++++++++++++++++++++++-
>  1 file changed, 47 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
> index 8a1c609669..799b333162 100644
> --- a/gnu/packages/profiling.scm
> +++ b/gnu/packages/profiling.scm
> @@ -2,6 +2,7 @@
>  ;;; Copyright © 2017 Dave Love <fx@gnu.org>
>  ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
>  ;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org>
> +;;; Copyright © 2023 dan <i@dan.games>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -21,6 +22,7 @@
>  (define-module (gnu packages profiling)
>    #:use-module (guix packages)
>    #:use-module (guix gexp)
> +  #:use-module (guix git-download)
>    #:use-module ((guix licenses) #:prefix license:) ; avoid zlib, expat clashes
>    #:use-module (guix download)
>    #:use-module (guix utils)
> @@ -31,17 +33,20 @@ (define-module (gnu packages profiling)
>    #:use-module (gnu packages bison)
>    #:use-module (gnu packages compression)
>    #:use-module (gnu packages documentation)
> +  #:use-module (gnu packages engineering)
>    #:use-module (gnu packages fabric-management)
>    #:use-module (gnu packages flex)
> +  #:use-module (gnu packages fontutils)
>    #:use-module (gnu packages gawk)
>    #:use-module (gnu packages gcc)
> +  #:use-module (gnu packages gl)
>    #:use-module (gnu packages glib)
>    #:use-module (gnu packages libunwind)
>    #:use-module (gnu packages linux)
>    #:use-module (gnu packages mpi)
>    #:use-module (gnu packages ncurses)
>    #:use-module (gnu packages perl)
> -  #:use-module (gnu packages perl)
> +  #:use-module (gnu packages pkg-config)
>    #:use-module (gnu packages python)
>    #:use-module (gnu packages qt))
>  
> @@ -389,3 +394,44 @@ (define (make-scorep mpi)
>      (license license:cpl1.0)))
>  
>  (define-public scorep-openmpi (make-scorep openmpi))
> +
> +(define-public tracy
> +  (package
> +    (name "tracy")
> +    (version "0.9.1")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://github.com/wolfpld/tracy.git")
> +                    (commit (string-append "v" version))))
> +              (sha256
> +               (base32
> +                "1znw1r1c4vrb9vrsr08gcwynpjda8xxmb3923yykpymw2hsm0n9b"))
> +              (file-name (git-file-name "tracy" version))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     (list #:tests? #f ;no test for the profiler
> +           #:make-flags #~(list "LEGACY=1"

Why is LEGACY needed?  A comment should say so.

> +                                (string-append "CC="
> +                                               #$(cc-for-target)))
> +           #:phases #~(modify-phases %standard-phases
> +                        (replace 'configure
> +                          (lambda _
> +                            (chdir "profiler/build/unix")))
> +                        (replace 'install
> +                          (lambda _
> +                            (let ((out (string-append #$output "/bin/tracy"))
> +                                  (bin (string-append #$output "/bin")))
> +                              (mkdir-p bin)
> +                              (copy-file "Tracy-release" out)

You can simplify this by using the 'install-file' procedure, which is in
scope here (it comes from (guix build utils)).  'Tracy-release' is a
weird name for a binary; is this how it's packaged on other system?  I'd
have expected 'tracy' or similar.

> +                              (wrap-program out
> +                                `("LD_LIBRARY_PATH" ":" =
> +                                  (,(string-append #$mesa "/lib")))

Since this is also unusual in Guix (usually RUNPATH is baked in the Elf
by the ld-wrapper script and it just works), it deserves an explanatory
comment too.

-- 
Thanks,
Maxim




^ permalink raw reply	[flat|nested] 6+ messages in thread

* [bug#65106] [PATCH v2 0/2] gnu: Add tracy and tracy-wayland.
  2023-08-06  5:40 [bug#65106] [PATCH] gnu: Add tracy dan
  2023-09-05 13:46 ` Maxim Cournoyer
@ 2023-09-24 17:13 ` dan
  2023-09-24 17:13   ` [bug#65106] [PATCH v2 1/2] gnu: Add tracy-wayland dan
  2023-09-24 17:14   ` [bug#65106] [PATCH v2 2/2] gnu: Add tracy dan
  1 sibling, 2 replies; 6+ messages in thread
From: dan @ 2023-09-24 17:13 UTC (permalink / raw)
  To: 65106; +Cc: maxim.cournoyer

This patch series add two versions of tracy, one for x11 and the other for
wayland.  Note that the output binary name is "Tracy-release" by default, and
changing the name in the makefile breaks the build process.  Seems like other
things rely on the name.

dan (2):
  gnu: Add tracy-wayland.
  gnu: Add tracy.

 gnu/packages/profiling.scm | 81 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 79 insertions(+), 2 deletions(-)


base-commit: e134686cead6db62ea8b941b2ed7c0bd660804da
-- 
2.41.0





^ permalink raw reply	[flat|nested] 6+ messages in thread

* [bug#65106] [PATCH v2 1/2] gnu: Add tracy-wayland.
  2023-09-24 17:13 ` [bug#65106] [PATCH v2 0/2] gnu: Add tracy and tracy-wayland dan
@ 2023-09-24 17:13   ` dan
  2023-09-26 15:22     ` bug#65106: " Maxim Cournoyer
  2023-09-24 17:14   ` [bug#65106] [PATCH v2 2/2] gnu: Add tracy dan
  1 sibling, 1 reply; 6+ messages in thread
From: dan @ 2023-09-24 17:13 UTC (permalink / raw)
  To: 65106; +Cc: maxim.cournoyer

* gnu/packages/profiling.scm (tracy-wayland): New variable.
---
 gnu/packages/profiling.scm | 53 ++++++++++++++++++++++++++++++++++++--
 1 file changed, 51 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index 8a1c609669..af79488c30 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2017 Dave Love <fx@gnu.org>
 ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2023 dan <i@dan.games>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21,6 +22,7 @@
 (define-module (gnu packages profiling)
   #:use-module (guix packages)
   #:use-module (guix gexp)
+  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:) ; avoid zlib, expat clashes
   #:use-module (guix download)
   #:use-module (guix utils)
@@ -31,19 +33,24 @@ (define-module (gnu packages profiling)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages engineering)
   #:use-module (gnu packages fabric-management)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gawk)
   #:use-module (gnu packages gcc)
+  #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages libunwind)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
-  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages qt))
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages xdisorg))
 
 ;; Fixme: Separate out lib and fix resulting cycle errors; separate libpfm
 ;; output(?); build libmsr and add that component.
@@ -389,3 +396,45 @@ (define (make-scorep mpi)
     (license license:cpl1.0)))
 
 (define-public scorep-openmpi (make-scorep openmpi))
+
+(define-public tracy-wayland
+  (package
+    (name "tracy-wayland")
+    (version "0.9.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/wolfpld/tracy.git")
+                    (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "1znw1r1c4vrb9vrsr08gcwynpjda8xxmb3923yykpymw2hsm0n9b"))
+              (file-name (git-file-name "tracy" version))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:tests? #f ;no test for the profiler
+           #:make-flags #~(list (string-append "CC="
+                                               #$(cc-for-target)))
+           #:phases #~(modify-phases %standard-phases
+                        (replace 'configure
+                          (lambda _
+                            (chdir "profiler/build/unix")))
+                        (replace 'install
+                          (lambda _
+                            (let ((bin (string-append #$output "/bin"))
+                                  (tracy (string-append #$output "/bin/tracy")))
+                              (mkdir-p bin)
+                              (copy-file "Tracy-release" tracy)))))))
+    (inputs (list capstone
+                  dbus
+                  freetype
+                  libxkbcommon
+                  mesa
+                  wayland))
+    (native-inputs (list pkg-config))
+    (home-page "https://github.com/wolfpld/tracy")
+    (synopsis "Frame profiler")
+    (description
+     "A real time, nanosecond resolution, remote telemetry, hybrid frame and
+sampling profiler for games and other applications.")
+    (license license:bsd-3)))
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [bug#65106] [PATCH v2 2/2] gnu: Add tracy.
  2023-09-24 17:13 ` [bug#65106] [PATCH v2 0/2] gnu: Add tracy and tracy-wayland dan
  2023-09-24 17:13   ` [bug#65106] [PATCH v2 1/2] gnu: Add tracy-wayland dan
@ 2023-09-24 17:14   ` dan
  1 sibling, 0 replies; 6+ messages in thread
From: dan @ 2023-09-24 17:14 UTC (permalink / raw)
  To: 65106; +Cc: maxim.cournoyer

* gnu/packages/profiling.scm (tracy): New variable.
---
 gnu/packages/profiling.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index af79488c30..5f5b4b07d0 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -438,3 +438,31 @@ (define-public tracy-wayland
      "A real time, nanosecond resolution, remote telemetry, hybrid frame and
 sampling profiler for games and other applications.")
     (license license:bsd-3)))
+
+(define-public tracy
+  (package
+    (inherit tracy-wayland)
+    (name "tracy")
+    (inputs (modify-inputs (package-inputs tracy-wayland)
+              (delete "libxkbcommon" "wayland")
+              (prepend glfw)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments tracy-wayland)
+       ((#:make-flags flags
+         #~'())
+        #~(append #$flags
+                  ;; The LEGACY flag indicate we want to build tracy with glfw
+                  (list "LEGACY=1")))
+       ((#:phases phases)
+        #~(modify-phases #$phases
+            ;; Tracy depends on glfw to load libGL.so, but glfw doesn't have
+            ;; mesa in its rpath.  Thus, we need to manually modify tracy's
+            ;; LD_LIBRARY_PATH.
+            (add-after 'install 'wrap-program
+              (lambda _
+                (let ((out (string-append #$output "/bin/tracy"))
+                      (mesa (string-append #$(this-package-input "mesa")
+                                           "/lib")))
+                  (wrap-program out
+                    `("LD_LIBRARY_PATH" ":" =
+                      (,mesa))))))))))))
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 6+ messages in thread

* bug#65106: [PATCH v2 1/2] gnu: Add tracy-wayland.
  2023-09-24 17:13   ` [bug#65106] [PATCH v2 1/2] gnu: Add tracy-wayland dan
@ 2023-09-26 15:22     ` Maxim Cournoyer
  0 siblings, 0 replies; 6+ messages in thread
From: Maxim Cournoyer @ 2023-09-26 15:22 UTC (permalink / raw)
  To: dan; +Cc: 65106-done

Hello!

dan <i@dan.games> writes:

> * gnu/packages/profiling.scm (tracy-wayland): New variable.
> ---
>  gnu/packages/profiling.scm | 53 ++++++++++++++++++++++++++++++++++++--
>  1 file changed, 51 insertions(+), 2 deletions(-)
>
> diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
> index 8a1c609669..af79488c30 100644
> --- a/gnu/packages/profiling.scm
> +++ b/gnu/packages/profiling.scm
> @@ -2,6 +2,7 @@
>  ;;; Copyright © 2017 Dave Love <fx@gnu.org>
>  ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
>  ;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org>
> +;;; Copyright © 2023 dan <i@dan.games>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -21,6 +22,7 @@
>  (define-module (gnu packages profiling)
>    #:use-module (guix packages)
>    #:use-module (guix gexp)
> +  #:use-module (guix git-download)
>    #:use-module ((guix licenses) #:prefix license:) ; avoid zlib, expat clashes
>    #:use-module (guix download)
>    #:use-module (guix utils)
> @@ -31,19 +33,24 @@ (define-module (gnu packages profiling)
>    #:use-module (gnu packages bison)
>    #:use-module (gnu packages compression)
>    #:use-module (gnu packages documentation)
> +  #:use-module (gnu packages engineering)
>    #:use-module (gnu packages fabric-management)
>    #:use-module (gnu packages flex)
> +  #:use-module (gnu packages fontutils)
> +  #:use-module (gnu packages freedesktop)
>    #:use-module (gnu packages gawk)
>    #:use-module (gnu packages gcc)
> +  #:use-module (gnu packages gl)
>    #:use-module (gnu packages glib)
>    #:use-module (gnu packages libunwind)
>    #:use-module (gnu packages linux)
>    #:use-module (gnu packages mpi)
>    #:use-module (gnu packages ncurses)
>    #:use-module (gnu packages perl)
> -  #:use-module (gnu packages perl)
> +  #:use-module (gnu packages pkg-config)
>    #:use-module (gnu packages python)
> -  #:use-module (gnu packages qt))
> +  #:use-module (gnu packages qt)
> +  #:use-module (gnu packages xdisorg))
>  
>  ;; Fixme: Separate out lib and fix resulting cycle errors; separate libpfm
>  ;; output(?); build libmsr and add that component.
> @@ -389,3 +396,45 @@ (define (make-scorep mpi)
>      (license license:cpl1.0)))
>  
>  (define-public scorep-openmpi (make-scorep openmpi))
> +
> +(define-public tracy-wayland
> +  (package
> +    (name "tracy-wayland")
> +    (version "0.9.1")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://github.com/wolfpld/tracy.git")
> +                    (commit (string-append "v" version))))
> +              (sha256
> +               (base32
> +                "1znw1r1c4vrb9vrsr08gcwynpjda8xxmb3923yykpymw2hsm0n9b"))
> +              (file-name (git-file-name "tracy" version))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     (list #:tests? #f ;no test for the profiler
> +           #:make-flags #~(list (string-append "CC="
> +                                               #$(cc-for-target)))
> +           #:phases #~(modify-phases %standard-phases
> +                        (replace 'configure
> +                          (lambda _
> +                            (chdir "profiler/build/unix")))
> +                        (replace 'install
> +                          (lambda _
> +                            (let ((bin (string-append #$output "/bin"))
> +                                  (tracy (string-append #$output "/bin/tracy")))
> +                              (mkdir-p bin)
> +                              (copy-file "Tracy-release" tracy)))))))
> +    (inputs (list capstone
> +                  dbus
> +                  freetype
> +                  libxkbcommon
> +                  mesa
> +                  wayland))
> +    (native-inputs (list pkg-config))
> +    (home-page "https://github.com/wolfpld/tracy")
> +    (synopsis "Frame profiler")
> +    (description
> +     "A real time, nanosecond resolution, remote telemetry, hybrid frame and
> +sampling profiler for games and other applications.")
> +    (license license:bsd-3)))

Looking at this package more closely, I found it was bundling imgui and
zstd, so I tried unbundling both, and was successful for zstd:

--8<---------------cut here---------------start------------->8---
modified   gnu/packages/profiling.scm
@@ -402,35 +402,61 @@ (define-public tracy-wayland
   (package
     (name "tracy-wayland")
     (version "0.9.1")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/wolfpld/tracy")
-                    (commit (string-append "v" version))))
-              (sha256
-               (base32
-                "1znw1r1c4vrb9vrsr08gcwynpjda8xxmb3923yykpymw2hsm0n9b"))
-              (file-name (git-file-name "tracy" version))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/wolfpld/tracy")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32
+         "1znw1r1c4vrb9vrsr08gcwynpjda8xxmb3923yykpymw2hsm0n9b"))
+       (file-name (git-file-name "tracy" version))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; XXX: Sadly, the ImGui loaders appear to have been customized by
+           ;; the project and the build fails when using the 'imgui' Guix
+           ;; package due to a missing GL_TEXTURE_WRAP_S definition, so keep
+           ;; the bundled copy.
+
+           ;; Unbundle Zstd.
+           (delete-file-recursively "zstd")
+           ;; Adjust the include directives.
+           (substitute* (find-files "server" "\\.(c|h)pp$")
+             (("#include \".*zstd/(zstd|zdict).h\"" _ header)
+              (format #f "#include \"~a.h\"" header)))
+           ;; De-register source files from Visual Code project.
+           (substitute* "profiler/build/win32/Tracy.vcxproj"
+             ((".*Include=\"..\\\\..\\\\..\\\\zstd\\\\.*") ""))))))
+    ;; Note: There is also CMake and Meson support, but only to build the
+    ;; tracy library, not the profiler command.
     (build-system gnu-build-system)
     (arguments
-     (list #:tests? #f ;no test for the profiler
-           #:make-flags #~(list (string-append "CC=" #$(cc-for-target)))
-           #:phases #~(modify-phases %standard-phases
-                        (replace 'configure
-                          (lambda _
-                            (chdir "profiler/build/unix")))
-                        (replace 'install
-                          (lambda _
-                            (let ((bin (string-append #$output "/bin"))
-                                  (tracy (string-append #$output "/bin/tracy")))
-                              (mkdir-p bin)
-                              (copy-file "Tracy-release" tracy)))))))
+     (list
+      #:tests? #f                       ;no test for the profiler
+      #:make-flags
+      #~(list (string-append "CC=" #$(cc-for-target))
+              (string-append "CFLAGS=-lzstd"))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'build 'chdir
+            (lambda _
+              (chdir "profiler/build/unix")))
+          (delete 'configure)           ;the profiler has no configure script
+          (replace 'install
+            (lambda _
+              (let ((bin (string-append #$output "/bin"))
+                    (tracy (string-append #$output "/bin/tracy")))
+                (mkdir-p bin)
+                (copy-file "Tracy-release" tracy)))))))
     (inputs (list capstone
                   dbus
                   freetype
                   libxkbcommon
                   mesa
-                  wayland))
+                  wayland
+                  `(,zstd "lib")))
     (native-inputs (list pkg-config))
     (home-page "https://github.com/wolfpld/tracy")
     (synopsis "Frame profiler")
--8<---------------cut here---------------end--------------->8---

For the X11 variant working around packaging problems in glfw (dlopen)
with LD_LIBRARY_PATH, I've fixed these in glfw (by patching the so names
in its source with their absolute paths) and removed the workaround:

--8<---------------cut here---------------start------------->8---
@@ -443,29 +469,13 @@ (define-public tracy
   (package
     (inherit tracy-wayland)
     (name "tracy")
-    (inputs (modify-inputs (package-inputs tracy-wayland)
-              (delete "libxkbcommon" "wayland")
-              (prepend glfw)))
     (arguments
      (substitute-keyword-arguments (package-arguments tracy-wayland)
-       ((#:make-flags flags
-         #~'())
+       ((#:make-flags flags #~'())
         #~(append #$flags
-                  ;; The LEGACY flag indicate we want to build tracy with glfw
-                  (list "LEGACY=1")))
-       ((#:phases phases)
-        #~(modify-phases #$phases
-            ;; Tracy depends on glfw to load libGL.so, but glfw doesn't have
-            ;; mesa in its rpath.  Thus, we need to manually modify tracy's
-            ;; LD_LIBRARY_PATH.
-            (add-after 'install 'wrap-program
-              (lambda _
-                (let ((out (string-append #$output "/bin/tracy"))
-                      (mesa (string-append #$(this-package-input "mesa")
-                                           "/lib")))
-                  (wrap-program out
-                    `("LD_LIBRARY_PATH" ":" =
-                      (,mesa))))))))))
+                  ;; The LEGACY flag indicate we want to build tracy with glfw.
+                  (list "LEGACY=1")))))
     (inputs (modify-inputs (package-inputs tracy-wayland)
-              (append bash-minimal)))
+              (delete "libxkbcommon" "wayland")
+              (prepend glfw)))
     (synopsis "Frame profiler (X11 version)")))
--8<---------------cut here---------------end--------------->8---

It at least still runs for me, though I'm not sure how to use it (it
seems to require the target application to be built with libtracy and
act as a server?).

Closing, thank you for contributing to Guix!

--
Thanks,
Maxim




^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-09-26 15:24 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-06  5:40 [bug#65106] [PATCH] gnu: Add tracy dan
2023-09-05 13:46 ` Maxim Cournoyer
2023-09-24 17:13 ` [bug#65106] [PATCH v2 0/2] gnu: Add tracy and tracy-wayland dan
2023-09-24 17:13   ` [bug#65106] [PATCH v2 1/2] gnu: Add tracy-wayland dan
2023-09-26 15:22     ` bug#65106: " Maxim Cournoyer
2023-09-24 17:14   ` [bug#65106] [PATCH v2 2/2] gnu: Add tracy dan

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).