[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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



On 2023-07-15, at 07:29:54 -0300, David Bremner wrote:
> Matthias Klose <doko@debian.org> writes:
> 
> > Package: src:maildir-utils
> > Version: 1.8.14-1
> > Severity: normal
> > Tags: sid trixie
> > User: debian-gcc@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 <stdexcept>
   #include <string>
  +#include <cstdint>
   
   #include "mu-utils-format.hh"
   #include <glib.h>
  
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?= <arsen@aarsen.me>
> Date: Sat, 21 Jan 2023 19:39:09 +0100
> Subject: mu-error: Add missing <cstdint> 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 <cstdint>, 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 <stdexcept>
> +#include <string>
> +#include <cstdint>
> +
>  #include "mu-utils-format.hh"
> -#include "mu-util.h"
>  #include <glib.h>
>  
>  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<int>(code_),
> +		g_set_error(err, error_quark(), static_cast<int>(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_;
>  };

Attachment: signature.asc
Description: PGP signature


Reply to: