GNU bug report logs - #73137
[PATCH] gnu: ddd: Update to 3.4.1.

Previous Next

Package: guix-patches;

Reported by: Andy Tai <atai <at> atai.org>

Date: Mon, 9 Sep 2024 06:38:02 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 73137 in the body.
You can then email your comments to 73137 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#73137; Package guix-patches. (Mon, 09 Sep 2024 06:38:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Andy Tai <atai <at> atai.org>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Mon, 09 Sep 2024 06:38:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Andy Tai <atai <at> atai.org>
To: guix-patches <at> gnu.org
Cc: Andy Tai <atai <at> atai.org>
Subject: [PATCH] gnu: ddd: Update to 3.4.1.
Date: Sun,  8 Sep 2024 23:37:40 -0700
* gnu/packages/debug.scm (ddd): Update to 3.4.1.
[source](origin): Add new patch to fix build.
[arguments]<#:configure-flags>: Add explicit flag fir freetype
include path.
[native-inputs]: Add bison, flex and perl.
[inputs]: Add freetype, libxaw, and libxft.
* gnu/packages/patches/ddd-build.patch: New file.
* gnu/local.mk: Register new file.

Change-Id: Ic305cc0c7e15d0f0565f2adde514a43497e11f98
---
 gnu/local.mk                         |  1 +
 gnu/packages/debug.scm               | 18 ++++++++++--------
 gnu/packages/patches/ddd-build.patch | 24 ++++++++++++++++++++++++
 3 files changed, 35 insertions(+), 8 deletions(-)
 create mode 100644 gnu/packages/patches/ddd-build.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index ed630041ff..dbf8902cd1 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1127,6 +1127,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/dbus-c++-gcc-compat.patch		\
   %D%/packages/patches/dbus-c++-threading-mutex.patch		\
   %D%/packages/patches/dbxfs-remove-sentry-sdk.patch		\
+  %D%/packages/patches/ddd-build.patch				\
   %D%/packages/patches/debops-constants-for-external-program-names.patch \
   %D%/packages/patches/debops-debops-defaults-fall-back-to-less.patch \
   %D%/packages/patches/dee-vapi.patch			\
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index cc8e05746a..dd559c3faf 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -52,6 +52,7 @@ (define-module (gnu packages debug)
   #:use-module (gnu packages code)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gdb)
   #:use-module (gnu packages glib)
@@ -1006,23 +1007,24 @@ (define-public seer-gdb
 (define-public ddd
   (package
     (name "ddd")
-    (version "3.4.0")
+    (version "3.4.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/ddd/ddd-" version ".tar.gz"))
+              (patches (search-patches "ddd-build.patch"))
               (sha256
                (base32
-                "03sqsfiri5p130cmmzh2wikg0gisql496rvdhr1qaidh1f5bqk2x"))))
+                "12gfyh139rim49m56lxm36ckdyiiz4n3la3y6ik1aqgrqfk1fxdq"))))
     (build-system gnu-build-system)
     (arguments
-     (list #:tests? #f                  ;tests require manual intervention
-           ;; Avoid "friend declaration specifies default arguments and isn’t
-           ;; a definition" errors.
-           #:configure-flags #~(list "CXXFLAGS=-fpermissive")))
+     (list #:tests? #f                 ;tests require manual intervention
+           #:configure-flags
+           #~(list (string-append "--with-freetype-includes="
+                   #$(this-package-input "freetype") "/include/freetype2"))))
     (native-inputs
-     (list pkg-config))
+     (list pkg-config bison flex perl))
     (inputs
-     (list motif ncurses gdb))
+     (list libxaw libxft freetype motif ncurses gdb))
     (synopsis "Graphical front-end for GDB and other debuggers")
     (description "GNU DDD, the Data Display Debugger, is a graphical front-end
 for command-line debuggers.  Many back-end debuggers are supported, notably
diff --git a/gnu/packages/patches/ddd-build.patch b/gnu/packages/patches/ddd-build.patch
new file mode 100644
index 0000000000..d172e47168
--- /dev/null
+++ b/gnu/packages/patches/ddd-build.patch
@@ -0,0 +1,24 @@
+Index: ddd/Makefile.am
+===================================================================
+--- old/ddd/Makefile.am	(revision 7508)
++++ new/ddd/Makefile.am	(working copy)
+@@ -655,7 +655,7 @@
+ LIBXFT = @XFT_LIBS@ -lfontconfig
+
+ # Freetype2 headers
+-XFTINCLUDE = @XFT_INCLUDE@
++XFTINCLUDE = -I <at> XFT_INCLUDE@
+
+ # X Miscellaneous  Utilities needed for Athena and Motif >= 2.0 (lXmu)
+ LIBXMU = @XMU_LIBS@
+--- old/ddd/Makefile.in	(revision 7508)
++++ new/ddd/Makefile.in	(working copy)
+@@ -1307,7 +1307,7 @@
+ LIBXFT = @XFT_LIBS@ -lfontconfig
+
+ # Freetype2 headers
+-XFTINCLUDE = @XFT_INCLUDE@
++XFTINCLUDE = -I <at> XFT_INCLUDE@
+
+ # X Miscellaneous  Utilities needed for Athena and Motif >= 2.0 (lXmu)
+ LIBXMU = @XMU_LIBS@

base-commit: 056910ec864cb7cf3225a0c27679d94405db7dcd
-- 
2.34.1





Information forwarded to guix-patches <at> gnu.org:
bug#73137; Package guix-patches. (Mon, 09 Sep 2024 18:29:02 GMT) Full text and rfc822 format available.

Message #8 received at 73137 <at> debbugs.gnu.org (full text, mbox):

From: Andy Tai <atai <at> atai.org>
To: help-guix <at> gnu.org, 73137 <at> debbugs.gnu.org
Subject: this-package-input vs. propagated-inputs in package definition
Date: Mon, 9 Sep 2024 11:27:07 -0700
A question on package definition (likely scope of guix-devel, but
anyway posted here first):

I have updated the definition of package ddd which has libxft as
input. Libxft in turn has freefont as propagated-input.   In the
definition of ddd I tried to do

(this-package-input "freefont")

which returns #f.

I had to add freefont as input to ddd to make this work.

As propagated-input should be propagated, shall the addition of
freefont as input to ddd be unneeded?




Information forwarded to guix-patches <at> gnu.org:
bug#73137; Package guix-patches. (Tue, 10 Sep 2024 08:37:02 GMT) Full text and rfc822 format available.

Message #11 received at 73137 <at> debbugs.gnu.org (full text, mbox):

From: Simon Tournier <zimon.toutoune <at> gmail.com>
To: Andy Tai <atai <at> atai.org>, help-guix <at> gnu.org, 73137 <at> debbugs.gnu.org
Subject: Re: this-package-input vs. propagated-inputs in package definition
Date: Mon, 09 Sep 2024 21:24:56 +0200
Hi,

On Mon, 09 Sep 2024 at 11:27, Andy Tai <atai <at> atai.org> wrote:

> I have updated the definition of package ddd which has libxft as
> input. Libxft in turn has freefont as propagated-input.

What do you mean by ’freefont’?  libxft reads:

    (propagated-inputs
     ;; xft.pc refers to all these.
     (list libxrender
           freetype
           fontconfig))


Cheers,
simon




Information forwarded to guix-patches <at> gnu.org:
bug#73137; Package guix-patches. (Tue, 10 Sep 2024 16:11:01 GMT) Full text and rfc822 format available.

Message #14 received at 73137 <at> debbugs.gnu.org (full text, mbox):

From: Andy Tai <atai <at> atai.org>
To: Simon Tournier <zimon.toutoune <at> gmail.com>
Cc: help-guix <at> gnu.org, 73137 <at> debbugs.gnu.org
Subject: Re: this-package-input vs. propagated-inputs in package definition
Date: Tue, 10 Sep 2024 09:08:39 -0700
Sorry I meant freetype

On Tue, Sep 10, 2024 at 1:34 AM Simon Tournier <zimon.toutoune <at> gmail.com> wrote:
>
> Hi,
>
> On Mon, 09 Sep 2024 at 11:27, Andy Tai <atai <at> atai.org> wrote:
>
> > I have updated the definition of package ddd which has libxft as
> > input. Libxft in turn has freefont as propagated-input.
>
> What do you mean by ’freefont’?  libxft reads:
>
>     (propagated-inputs
>      ;; xft.pc refers to all these.
>      (list libxrender
>            freetype
>            fontconfig))
>
>
> Cheers,
> simon




Information forwarded to guix-patches <at> gnu.org:
bug#73137; Package guix-patches. (Fri, 13 Sep 2024 14:26:01 GMT) Full text and rfc822 format available.

Message #17 received at 73137 <at> debbugs.gnu.org (full text, mbox):

From: Simon Tournier <zimon.toutoune <at> gmail.com>
To: Andy Tai <atai <at> atai.org>, help-guix <at> gnu.org, 73137 <at> debbugs.gnu.org
Subject: Re: this-package-input vs. propagated-inputs in package definition
Date: Tue, 10 Sep 2024 19:14:44 +0200
Hi,

On Mon, 09 Sep 2024 at 11:27, Andy Tai <atai <at> atai.org> wrote:
> A question on package definition (likely scope of guix-devel, but
> anyway posted here first):
>
> I have updated the definition of package ddd which has libxft as
> input. Libxft in turn has freefont as propagated-input.   In the
> definition of ddd I tried to do
>
> (this-package-input "freefont")
>
> which returns #f.

I think that’s expected.  ’this-package-input’ searches only in the list
of ’inputs’ and ’propagated-inputs’ of the package itself and not of the
inputs.  Somehow, it’s not recursive and “freetype” is not an “inputs”
of the package ddd.

BTW, I am not sure to understand what mean a propagated-inputs in the
context of a build.  I mean, it sounds at run-time, not build-time.  No?
Do I miss something?

> I had to add freefont as input to ddd to make this work.

BTW, for the package ddd, is freetype an input or also a
propagated-input ?


> As propagated-input should be propagated, shall the addition of
> freefont as input to ddd be unneeded?

Well, for sure, considering the current implementation, you cannot reach
the propagated-inputs of the inputs using this-package-inputs.


Cheers,
simon




Information forwarded to guix-patches <at> gnu.org:
bug#73137; Package guix-patches. (Mon, 16 Sep 2024 20:54:02 GMT) Full text and rfc822 format available.

Message #20 received at 73137 <at> debbugs.gnu.org (full text, mbox):

From: Andy Tai <atai <at> atai.org>
To: Simon Tournier <zimon.toutoune <at> gmail.com>
Cc: help-guix <at> gnu.org, 73137 <at> debbugs.gnu.org
Subject: Re: this-package-input vs. propagated-inputs in package definition
Date: Mon, 16 Sep 2024 13:51:13 -0700
OK I don't know if this is "implementation detail" or a bug, or is as
intended, that

>considering the current implementation, you cannot reach the propagated-inputs of the inputs using this-package-inputs.

(seems like a bug to me)

Also, would the same package be in the input list and the
propagated-input list be a problem?

On Fri, Sep 13, 2024 at 7:24 AM Simon Tournier <zimon.toutoune <at> gmail.com> wrote:
> > I had to add freefont as input to ddd to make this work.
>
> BTW, for the package ddd, is freetype an input or also a
> propagated-input ?




Information forwarded to guix-patches <at> gnu.org:
bug#73137; Package guix-patches. (Fri, 20 Sep 2024 16:12:03 GMT) Full text and rfc822 format available.

Message #23 received at 73137 <at> debbugs.gnu.org (full text, mbox):

From: Simon Tournier <zimon.toutoune <at> gmail.com>
To: Andy Tai <atai <at> atai.org>
Cc: help-guix <at> gnu.org, 73137 <at> debbugs.gnu.org
Subject: Re: this-package-input vs. propagated-inputs in package definition
Date: Fri, 20 Sep 2024 16:52:22 +0200
Hi,

On lun., 16 sept. 2024 at 13:51, Andy Tai <atai <at> atai.org> wrote:
> OK I don't know if this is "implementation detail" or a bug, or is as
> intended, that
>
>>considering the current implementation, you cannot reach the propagated-inputs of the inputs using this-package-inputs.
>
> (seems like a bug to me)

I do not the see the bug. :-) Somehow ’propagated-inputs’ is a run-time
concept, when ’this-package-input’ is a build-time concept.

Roughly, building a package, seen as a functional view, you have to
explicitly list all the inputs of the function.  And there is no hidden
input implicitly attached to one of these inputs.

Somehow, from the point of the package, we list its dependencies and the
package “sees” these dependencies.


> Also, would the same package be in the input list and the
> propagated-input list be a problem?

Reading the entry for ’propagated inputs’ in the Manual:

     Sometimes packages have “propagated inputs”: these are dependencies
     that automatically get installed along with the required package
     (*note ‘propagated-inputs’ in ‘package’ objects:
     package-propagated-inputs, for information about propagated inputs
     in package definitions).

     An example is the GNU MPC library: its C header files refer to
     those of the GNU MPFR library, which in turn refer to those of the
     GMP library.  Thus, when installing MPC, the MPFR and GMP libraries
     also get installed in the profile; removing MPC also removes MPFR
     and GMP—unless they had also been explicitly installed by the user.

     https://guix.gnu.org/manual/devel/en/guix.html#Invoking-guix-package

and following the suggested link:

          Lastly, ‘propagated-inputs’ is similar to ‘inputs’, but the
          specified packages will be automatically installed to profiles
          (*note the role of profiles in Guix: Features.) alongside the
          package they belong to (*note ‘guix package’:
          package-cmd-propagated-inputs, for information on how ‘guix
          package’ deals with propagated inputs).

          For example this is necessary when packaging a C/C++ library
          that needs headers of another library to compile, or when a
          pkg-config file refers to another one via its ‘Requires’
          field.

          Another example where ‘propagated-inputs’ is useful is for
          languages that lack a facility to record the run-time search
          path akin to the ‘RUNPATH’ of ELF files; this includes Guile,
          Python, Perl, and more.  When packaging libraries written in
          those languages, ensure they can find library code they depend
          on at run time by listing run-time dependencies in
          ‘propagated-inputs’ rather than ‘inputs’.

          https://guix.gnu.org/manual/devel/en/guix.html#package-Reference


In other words, you put the package dependency under ’inputs’ and if the
internal machinery is unable to correctly set the search path, then you
have to manually move the dependency from ’inputs’ to
’propagated-inputs’.  If freefont is required run-time by the package
’ddd’ and if the machinery is unable to record search patch, then yes
freefont should be listed under propagated-inputs of ’ddd’. 

Maybe I am missing something.

HTH,
simon




Information forwarded to guix-patches <at> gnu.org:
bug#73137; Package guix-patches. (Wed, 25 Sep 2024 02:36:02 GMT) Full text and rfc822 format available.

Message #26 received at 73137 <at> debbugs.gnu.org (full text, mbox):

From: Andy Tai <atai <at> atai.org>
To: 73137 <at> debbugs.gnu.org
Cc: Andy Tai <atai <at> atai.org>
Subject: [PATCH v2] gnu: ddd: Update to 3.4.1.
Date: Tue, 24 Sep 2024 19:26:25 -0700
* gnu/packages/debug.scm (ddd): Update to 3.4.1.
[source](origin): Add new patch to fix build.
[arguments]<#:configure-flags>: Add explicit flag fir freetype
include path.
[native-inputs]: Add bison, flex and perl.
[inputs]: Add freetype, libxaw, and libxft.
* gnu/packages/patches/ddd-build.patch: New file.
* gnu/local.mk: Register new file.

Change-Id: Ic305cc0c7e15d0f0565f2adde514a43497e11f98
---
 gnu/local.mk                         |  1 +
 gnu/packages/debug.scm               | 18 ++++++++++--------
 gnu/packages/patches/ddd-build.patch | 24 ++++++++++++++++++++++++
 3 files changed, 35 insertions(+), 8 deletions(-)
 create mode 100644 gnu/packages/patches/ddd-build.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 795ff822a4..29631b0a41 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1129,6 +1129,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/dbus-c++-gcc-compat.patch		\
   %D%/packages/patches/dbus-c++-threading-mutex.patch		\
   %D%/packages/patches/dbxfs-remove-sentry-sdk.patch		\
+  %D%/packages/patches/ddd-build.patch				\
   %D%/packages/patches/debops-constants-for-external-program-names.patch \
   %D%/packages/patches/debops-debops-defaults-fall-back-to-less.patch \
   %D%/packages/patches/dee-vapi.patch			\
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index b8ddafaba6..526d5d408a 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -52,6 +52,7 @@ (define-module (gnu packages debug)
   #:use-module (gnu packages code)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gdb)
   #:use-module (gnu packages glib)
@@ -1006,23 +1007,24 @@ (define-public seer-gdb
 (define-public ddd
   (package
     (name "ddd")
-    (version "3.4.0")
+    (version "3.4.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/ddd/ddd-" version ".tar.gz"))
+              (patches (search-patches "ddd-build.patch"))
               (sha256
                (base32
-                "03sqsfiri5p130cmmzh2wikg0gisql496rvdhr1qaidh1f5bqk2x"))))
+                "12gfyh139rim49m56lxm36ckdyiiz4n3la3y6ik1aqgrqfk1fxdq"))))
     (build-system gnu-build-system)
     (arguments
-     (list #:tests? #f                  ;tests require manual intervention
-           ;; Avoid "friend declaration specifies default arguments and isn’t
-           ;; a definition" errors.
-           #:configure-flags #~(list "CXXFLAGS=-fpermissive")))
+     (list #:tests? #f                 ;tests require manual intervention
+           #:configure-flags
+           #~(list (string-append "--with-freetype-includes="
+                   #$(this-package-input "freetype") "/include/freetype2"))))
     (native-inputs
-     (list pkg-config))
+     (list pkg-config bison flex perl))
     (inputs
-     (list motif ncurses gdb))
+     (list libxaw libxft freetype motif ncurses gdb))
     (synopsis "Graphical front-end for GDB and other debuggers")
     (description "GNU DDD, the Data Display Debugger, is a graphical front-end
 for command-line debuggers.  Many back-end debuggers are supported, notably
diff --git a/gnu/packages/patches/ddd-build.patch b/gnu/packages/patches/ddd-build.patch
new file mode 100644
index 0000000000..d172e47168
--- /dev/null
+++ b/gnu/packages/patches/ddd-build.patch
@@ -0,0 +1,24 @@
+Index: ddd/Makefile.am
+===================================================================
+--- old/ddd/Makefile.am	(revision 7508)
++++ new/ddd/Makefile.am	(working copy)
+@@ -655,7 +655,7 @@
+ LIBXFT = @XFT_LIBS@ -lfontconfig
+
+ # Freetype2 headers
+-XFTINCLUDE = @XFT_INCLUDE@
++XFTINCLUDE = -I <at> XFT_INCLUDE@
+
+ # X Miscellaneous  Utilities needed for Athena and Motif >= 2.0 (lXmu)
+ LIBXMU = @XMU_LIBS@
+--- old/ddd/Makefile.in	(revision 7508)
++++ new/ddd/Makefile.in	(working copy)
+@@ -1307,7 +1307,7 @@
+ LIBXFT = @XFT_LIBS@ -lfontconfig
+
+ # Freetype2 headers
+-XFTINCLUDE = @XFT_INCLUDE@
++XFTINCLUDE = -I <at> XFT_INCLUDE@
+
+ # X Miscellaneous  Utilities needed for Athena and Motif >= 2.0 (lXmu)
+ LIBXMU = @XMU_LIBS@

base-commit: 3ac69c1a757430d6dfdd37eb948ba1d6967967cc
-- 
2.34.1





Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Fri, 04 Oct 2024 15:29:02 GMT) Full text and rfc822 format available.

Notification sent to Andy Tai <atai <at> atai.org>:
bug acknowledged by developer. (Fri, 04 Oct 2024 15:29:02 GMT) Full text and rfc822 format available.

Message #31 received at 73137-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Andy Tai <atai <at> atai.org>
Cc: 73137-done <at> debbugs.gnu.org
Subject: Re: [bug#73137] [PATCH v2] gnu: ddd: Update to 3.4.1.
Date: Fri, 04 Oct 2024 17:28:38 +0200
[Message part 1 (text/plain, inline)]
Hi,

Andy Tai <atai <at> atai.org> skribis:

> * gnu/packages/debug.scm (ddd): Update to 3.4.1.
> [source](origin): Add new patch to fix build.
> [arguments]<#:configure-flags>: Add explicit flag fir freetype
> include path.
> [native-inputs]: Add bison, flex and perl.
> [inputs]: Add freetype, libxaw, and libxft.
> * gnu/packages/patches/ddd-build.patch: New file.
> * gnu/local.mk: Register new file.
>
> Change-Id: Ic305cc0c7e15d0f0565f2adde514a43497e11f98

Applied after adding a comment at the top of the patch (see below), as
suggested by ‘guix lint’.

Thanks,
Ludo’.

[Message part 2 (text/x-patch, inline)]
diff --git a/gnu/packages/patches/ddd-build.patch b/gnu/packages/patches/ddd-build.patch
index d172e47168..5db2833504 100644
--- a/gnu/packages/patches/ddd-build.patch
+++ b/gnu/packages/patches/ddd-build.patch
@@ -1,5 +1,5 @@
-Index: ddd/Makefile.am
-===================================================================
+Add missing '-I' flag.
+
 --- old/ddd/Makefile.am	(revision 7508)
 +++ new/ddd/Makefile.am	(working copy)
 @@ -655,7 +655,7 @@

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 02 Nov 2024 11:24:10 GMT) Full text and rfc822 format available.

This bug report was last modified 230 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.