Bug#1037765: maildir-utils: ftbfs with GCC-13

2023-07-15 Thread Jeremy Sowden
On 2023-07-15, at 12:19:47 +0100, Jeremy Sowden wrote:
> On 2023-07-15, at 07:29:54 -0300, David Bremner wrote:
> > Matthias Klose writes:
> > > Package: src:maildir-utils
> > > Version: 1.8.14-1
> > > Severity: normal
> > > Tags: sid trixie
> > > User: debian-...@lists.debian.org
> > > Usertags: ftbfs-gcc-13
> > >
> > > [This bug is targeted to the upcoming trixie release]
> > >
> > > Please keep this issue open in the bug tracker for the package it
> > > was filed for.  If a fix in another package is required, please
> > > file a bug for the other package (or clone), and add a block in
> > > this package. Please keep the issue open until the package can be
> > > built in a follow-up test rebuild.
> > 
> > I suspect we should probably move to a new upstream version rather
> > than adding yet another patch.
> 
> I did start looking at what would be involved and the new upstream
> version 1.10 has removed the deprecated autootools-based
> [build-system] which is used in the 1.8 package, so I decided to leave
> alone. :)
> 
> > However, if for some reason we want to stay with 1.8.14, it looks
> > like this specific issue is fixed by upstream commit
> > 
> >ce9446465260bd108bcf554cf503f72304f4276b
> 
> The diff in that commit is:
> 
>   diff --git a/lib/utils/mu-error.hh b/lib/utils/mu-error.hh
>   index 55a8002c71e2..6472ce83b4d4 100644
>   --- a/lib/utils/mu-error.hh
>   +++ b/lib/utils/mu-error.hh
>   @@ -22,6 +22,7 @@
>
>#include 
>#include 
>   +#include 
>
>#include "mu-utils-format.hh"
>#include 
>   
> which is all that is needed to fix the FTBFS.
> 
> > I attach a version with conflicts resolved (although I don't know the
> > codebase well enough to say if my resolution is correct). With that
> > patch the code builds, but the build still fails with mu4e.info and
> > mu4e-guile.info not being installed.
> > 
> > dh_missing: warning: usr/share/info/mu-guile.info exists in debian/tmp 
> > but is not installed to anywhere 
> > dh_missing: warning: usr/share/info/mu4e.info exists in debian/tmp but 
> > is not installed to anywhere 
> > dh_missing: error: missing files, aborting
> > The following debhelper tools have reported what they installed 
> > (with files per package)
> >  * dh_elpa: maildir-utils (0), mu4e (25)
> >  * dh_install: maildir-utils (6), mu4e (0)
> >  * dh_installdocs: maildir-utils (3), mu4e (0)
> >  * dh_installman: maildir-utils (0), mu4e (0)
> 
> The source package in the archive contains a couple of files which are
> missing from the Salsa repo:
> 
>   [azazel@ulthar:/space/azazel/tmp/maildir-utils-1.8.14] $ cat 
> debian/maildir-utils.info 
>   usr/share/info/mu-*
>   [azazel@ulthar:/space/azazel/tmp/maildir-utils-1.8.14] $ cat 
> debian/mu4e.info 
>   usr/share/info/mu4e*
> 
> I'll create a PR to add a patch and the missing .info files.

https://salsa.debian.org/emacsen-team/maildir-utils/-/merge_requests/2

J.


signature.asc
Description: PGP signature


Bug#1037765: maildir-utils: ftbfs with GCC-13

2023-07-15 Thread Jeremy Sowden
On 2023-07-15, at 07:29:54 -0300, David Bremner wrote:
> Matthias Klose  writes:
> 
> > Package: src:maildir-utils
> > Version: 1.8.14-1
> > Severity: normal
> > Tags: sid trixie
> > User: debian-...@lists.debian.org
> > Usertags: ftbfs-gcc-13
> >
> > [This bug is targeted to the upcoming trixie release]
> >
> > Please keep this issue open in the bug tracker for the package it
> > was filed for.  If a fix in another package is required, please
> > file a bug for the other package (or clone), and add a block in this
> > package. Please keep the issue open until the package can be built in
> > a follow-up test rebuild.
> 
> I suspect we should probably move to a new upstream version rather than
> adding yet another patch.

I did start looking at what would be involved and the new upstream
version 1.10 has removed the deprecated autootools-based which is used
in the 1.8 package, so I decided to leave alone. :)

> However, if for some reason we want to stay with 1.8.14, it looks like
> this specific issue is fixed by upstream commit
> 
>ce9446465260bd108bcf554cf503f72304f4276b

The diff in that commit is:

  diff --git a/lib/utils/mu-error.hh b/lib/utils/mu-error.hh
  index 55a8002c71e2..6472ce83b4d4 100644
  --- a/lib/utils/mu-error.hh
  +++ b/lib/utils/mu-error.hh
  @@ -22,6 +22,7 @@
   
   #include 
   #include 
  +#include 
   
   #include "mu-utils-format.hh"
   #include 
  
which is all that is needed to fix the FTBFS.

> I attach a version with conflicts resolved (although I don't know the
> codebase well enough to say if my resolution is correct). With that
> patch the code builds, but the build still fails with mu4e.info and
> mu4e-guile.info not being installed.
> 
> dh_missing: warning: usr/share/info/mu-guile.info exists in debian/tmp 
> but is not installed to anywhere 
> dh_missing: warning: usr/share/info/mu4e.info exists in debian/tmp but is 
> not installed to anywhere 
> dh_missing: error: missing files, aborting
> The following debhelper tools have reported what they installed 
> (with files per package)
>  * dh_elpa: maildir-utils (0), mu4e (25)
>  * dh_install: maildir-utils (6), mu4e (0)
>  * dh_installdocs: maildir-utils (3), mu4e (0)
>  * dh_installman: maildir-utils (0), mu4e (0)
> 
> 

The source package in the archive contains a couple of files which are
missing from the Salsa repo:

  [azazel@ulthar:/space/azazel/tmp/maildir-utils-1.8.14] $ cat 
debian/maildir-utils.info 
  usr/share/info/mu-*
  [azazel@ulthar:/space/azazel/tmp/maildir-utils-1.8.14] $ cat debian/mu4e.info 
  usr/share/info/mu4e*

I'll create a PR to add a patch and the missing .info files.

J.

> From: =?utf-8?q?Arsen_Arsenovi=C4=87?= 
> Date: Sat, 21 Jan 2023 19:39:09 +0100
> Subject: mu-error: Add missing  include
> MIME-Version: 1.0
> Content-Type: text/plain; charset="utf-8"
> Content-Transfer-Encoding: 8bit
> 
> GCC 13s libstdc++ reduced its dependency on some headers like , so 
> it's
> no longer transitively included through various headers.  Include it 
> explicitly.
> 
> See also: https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes
> 
>   ../lib/utils/mu-error.hh:36:26: error: ‘uint32_t’ does not name a type
>  36 | static constexpr uint32_t SoftError = 1 << 23;
> |  ^~~~
> ---
>  lib/utils/mu-error.hh | 13 +++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/utils/mu-error.hh b/lib/utils/mu-error.hh
> index c67fc5a..d3e2fc4 100644
> --- a/lib/utils/mu-error.hh
> +++ b/lib/utils/mu-error.hh
> @@ -21,8 +21,10 @@
>  #define MU_ERROR_HH__
>  
>  #include 
> +#include 
> +#include 
> +
>  #include "mu-utils-format.hh"
> -#include "mu-util.h"
>  #include 
>  
>  namespace Mu {
> @@ -160,11 +162,18 @@ struct Error final : public std::exception {
>* @param err GError** (or NULL)
>*/
>   void fill_g_error(GError **err) const noexcept{
> - g_set_error(err, MU_ERROR_DOMAIN, static_cast(code_),
> + g_set_error(err, error_quark(), static_cast(code_),
>   "%s", what_.c_str());
>   }
>  
>  private:
> + static inline GQuark error_quark (void) {
> + static GQuark error_domain = 0;
> + if (G_UNLIKELY(error_domain == 0))
> + error_domain = g_quark_from_static_string("mu-error-quark");
> + return error_domain;
> + }
> +
>   const Code  code_;
>   std::string what_;
>  };



signature.asc
Description: PGP signature


Bug#1037765: maildir-utils: ftbfs with GCC-13

2023-07-15 Thread David Bremner
Matthias Klose  writes:

> Package: src:maildir-utils
> Version: 1.8.14-1
> Severity: normal
> Tags: sid trixie
> User: debian-...@lists.debian.org
> Usertags: ftbfs-gcc-13
>
> [This bug is targeted to the upcoming trixie release]
>
> Please keep this issue open in the bug tracker for the package it
> was filed for.  If a fix in another package is required, please
> file a bug for the other package (or clone), and add a block in this
> package. Please keep the issue open until the package can be built in
> a follow-up test rebuild.

I suspect we should probably move to a new upstream version rather than
adding yet another patch. However, if for some reason we want to stay
with 1.8.14, it looks like this specific issue is fixed by upstream
commit

   ce9446465260bd108bcf554cf503f72304f4276b

I attach a version with conflicts resolved (although I don't know the
codebase well enough to say if my resolution is correct). With that
patch the code builds, but the build still fails with mu4e.info and
mu4e-guile.info not being installed.

dh_missing: warning: usr/share/info/mu-guile.info exists in debian/tmp but 
is not installed to anywhere 
dh_missing: warning: usr/share/info/mu4e.info exists in debian/tmp but is 
not installed to anywhere 
dh_missing: error: missing files, aborting
The following debhelper tools have reported what they installed 
(with files per package)
 * dh_elpa: maildir-utils (0), mu4e (25)
 * dh_install: maildir-utils (6), mu4e (0)
 * dh_installdocs: maildir-utils (3), mu4e (0)
 * dh_installman: maildir-utils (0), mu4e (0)


From: =?utf-8?q?Arsen_Arsenovi=C4=87?= 
Date: Sat, 21 Jan 2023 19:39:09 +0100
Subject: mu-error: Add missing  include
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit

GCC 13s libstdc++ reduced its dependency on some headers like , so it's
no longer transitively included through various headers.  Include it explicitly.

See also: https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes

  ../lib/utils/mu-error.hh:36:26: error: ‘uint32_t’ does not name a type
 36 | static constexpr uint32_t SoftError = 1 << 23;
|  ^~~~
---
 lib/utils/mu-error.hh | 13 +++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/lib/utils/mu-error.hh b/lib/utils/mu-error.hh
index c67fc5a..d3e2fc4 100644
--- a/lib/utils/mu-error.hh
+++ b/lib/utils/mu-error.hh
@@ -21,8 +21,10 @@
 #define MU_ERROR_HH__
 
 #include 
+#include 
+#include 
+
 #include "mu-utils-format.hh"
-#include "mu-util.h"
 #include 
 
 namespace Mu {
@@ -160,11 +162,18 @@ struct Error final : public std::exception {
 	 * @param err GError** (or NULL)
 	 */
 	void fill_g_error(GError **err) const noexcept{
-		g_set_error(err, MU_ERROR_DOMAIN, static_cast(code_),
+		g_set_error(err, error_quark(), static_cast(code_),
 			"%s", what_.c_str());
 	}
 
 private:
+	static inline GQuark error_quark (void) {
+	static GQuark error_domain = 0;
+	if (G_UNLIKELY(error_domain == 0))
+		error_domain = g_quark_from_static_string("mu-error-quark");
+	return error_domain;
+	}
+
 	const Code  code_;
 	std::string what_;
 };