tags 984224 +patch
thanks

I started off by removing -Werror, IMO -Werror combined with -Wall
is only appropriate for use during development as it is likely to cause
failures wen new compilers are released.

I then ran into a bunch of errors like.

In file included from /usr/include/glib-2.0/glib/glib-typeof.h:39,
                 from /usr/include/glib-2.0/glib/gatomic.h:28,
                 from /usr/include/glib-2.0/glib/gthread.h:32,
                 from /usr/include/glib-2.0/glib/gasyncqueue.h:32,
                 from /usr/include/glib-2.0/glib.h:32,
                 from 
/lomiri-app-launch-0.0.90/liblomiri-app-launch/lomiri-app-launch.h:20,
                 from 
/lomiri-app-launch-0.0.90/liblomiri-app-launch/application.cpp:21:
/usr/include/c++/10/type_traits:2930:3: error: template with C linkage
 2930 |   template<typename _Fn, typename... _Args>
      |   ^~~~~~~~
/lomiri-app-launch-0.0.90/liblomiri-app-launch/application.cpp:20:1: note: âextern 
"C"â linkage started here
   20 | extern "C" {
      |

Which i fixed by changing the header includes to ensure glib.h was included outside of 
any extern "C" block.

At this point I realised I was in-fact testing with gcc 10, so I moved from 
testing in a raspbian
bookworm-staging environment to a Debian bookworm arm64 environment.

The build then failed with a symbols file error.

- (arch=!alpha !amd64 !hppa !i386 !m68k !mips64el !mipsel !powerpc !ppc64 
!ppc64el !riscv64 !s390x !sh4 !x32)_ZN6lomiri10app_launch5AppIDC1ERKS1_@Base 
0.0.90
+#MISSING: 0.0.90-8+rpi1# (arch=!alpha !amd64 !hppa !i386 !m68k !mips64el 
!mipsel !powerpc !ppc64 !ppc64el !riscv64 !s390x !sh4 
!x32)_ZN6lomiri10app_launch5AppIDC1ERKS1_@Base 0.0.90
- (arch=!alpha !amd64 !hppa !i386 !m68k !mips64el !mipsel !powerpc !ppc64 
!ppc64el !riscv64 !s390x !sh4 !x32)_ZN6lomiri10app_launch5AppIDC2ERKS1_@Base 
0.0.90
+#MISSING: 0.0.90-8+rpi1# (arch=!alpha !amd64 !hppa !i386 !m68k !mips64el 
!mipsel !powerpc !ppc64 !ppc64el !riscv64 !s390x !sh4 
!x32)_ZN6lomiri10app_launch5AppIDC2ERKS1_@Base 0.0.90

I fed these symbols (with the @Base removed) through a demangler and curiously 
they both demangled to the same thing.

lomiri::app_launch::AppID::AppID(lomiri::app_launch::AppID const&)

I can't find any reference to this constructor in the definition of AppID. 
Therefore
I think this is an auto-generated copy constructor that may be inlined and 
hence not
show up in the symbols depending on compiler optimization. The fact it has 
negated
architecture specifiers for a whole load of architectures reinforces this idea. 
As
such I marked the symbols as "optional=inline".

A debdiff has been attatched and an upload has been made to raspbian, no intent 
to NMU
in Debian.
diff -Nru lomiri-app-launch-0.0.90/debian/changelog 
lomiri-app-launch-0.0.90/debian/changelog
--- lomiri-app-launch-0.0.90/debian/changelog   2021-05-23 22:41:04.000000000 
+0000
+++ lomiri-app-launch-0.0.90/debian/changelog   2021-11-08 00:26:53.000000000 
+0000
@@ -1,3 +1,13 @@
+lomiri-app-launch (0.0.90-8+rpi1) bookworm-staging; urgency=medium
+
+  * Remove -Werror, it breaks the build with gcc-11 (Closes: 984224).
+  * Adjust includes to avoid including glib.h inside extern "C" as
+    this causes build failures.
+  * Mark a couple of symbols that disappeard with gcc-11 as
+    optional=inline
+
+ -- Peter Michael Green <plugw...@raspbian.org>  Mon, 08 Nov 2021 00:26:53 
+0000
+
 lomiri-app-launch (0.0.90-8) unstable; urgency=medium
 
   * debian/control:
diff -Nru lomiri-app-launch-0.0.90/debian/liblomiri-app-launch0.symbols 
lomiri-app-launch-0.0.90/debian/liblomiri-app-launch0.symbols
--- lomiri-app-launch-0.0.90/debian/liblomiri-app-launch0.symbols       
2021-05-23 22:38:47.000000000 +0000
+++ lomiri-app-launch-0.0.90/debian/liblomiri-app-launch0.symbols       
2021-11-08 00:26:53.000000000 +0000
@@ -17,10 +17,10 @@
  
_ZN6lomiri10app_launch5AppID8discoverERKSt10shared_ptrINS0_8RegistryEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESE_NS1_15VersionWildcardE@Base
 0.0.90
  
_ZN6lomiri10app_launch5AppID8discoverERKSt10shared_ptrINS0_8RegistryEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESE_SE_@Base
 0.0.90
  
_ZN6lomiri10app_launch5AppIDC1ENS0_10TypeTaggerINS1_10PackageTagENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS2_INS1_10AppNameTagES9_EENS2_INS1_10VersionTagES9_EE@Base
 0.0.90
- (arch=!alpha !amd64 !hppa !i386 !m68k !mips64el !mipsel !powerpc !ppc64 
!ppc64el !riscv64 !s390x !sh4 !x32)_ZN6lomiri10app_launch5AppIDC1ERKS1_@Base 
0.0.90
+ (optional=inline|arch=!alpha !amd64 !hppa !i386 !m68k !mips64el !mipsel 
!powerpc !ppc64 !ppc64el !riscv64 !s390x !sh4 
!x32)_ZN6lomiri10app_launch5AppIDC1ERKS1_@Base 0.0.90
  _ZN6lomiri10app_launch5AppIDC1Ev@Base 0.0.90
  
_ZN6lomiri10app_launch5AppIDC2ENS0_10TypeTaggerINS1_10PackageTagENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS2_INS1_10AppNameTagES9_EENS2_INS1_10VersionTagES9_EE@Base
 0.0.90
- (arch=!alpha !amd64 !hppa !i386 !m68k !mips64el !mipsel !powerpc !ppc64 
!ppc64el !riscv64 !s390x !sh4 !x32)_ZN6lomiri10app_launch5AppIDC2ERKS1_@Base 
0.0.90
+ (optional=inline|arch=!alpha !amd64 !hppa !i386 !m68k !mips64el !mipsel 
!powerpc !ppc64 !ppc64el !riscv64 !s390x !sh4 
!x32)_ZN6lomiri10app_launch5AppIDC2ERKS1_@Base 0.0.90
  _ZN6lomiri10app_launch5AppIDC2Ev@Base 0.0.90
  _ZN6lomiri10app_launch5AppIDD1Ev@Base 0.0.90
  _ZN6lomiri10app_launch5AppIDD2Ev@Base 0.0.90
diff -Nru 
lomiri-app-launch-0.0.90/debian/patches/1004-move-system-headers-outside-extern-c.patch
 
lomiri-app-launch-0.0.90/debian/patches/1004-move-system-headers-outside-extern-c.patch
--- 
lomiri-app-launch-0.0.90/debian/patches/1004-move-system-headers-outside-extern-c.patch
     1970-01-01 00:00:00.000000000 +0000
+++ 
lomiri-app-launch-0.0.90/debian/patches/1004-move-system-headers-outside-extern-c.patch
     2021-11-08 00:26:53.000000000 +0000
@@ -0,0 +1,36 @@
+Description: Move system headers outside extern C.
+ Including some system headers (notablly glib.h) inside extern "C" causes
+ build failure. Since lomiri-app-launch includes glib.h it must be
+ included from outside extern "C" (it already has internal extern "C"
+ for it's own functions).
+Author: Peter Michael Green <plugw...@raspbian.org>
+
+--- lomiri-app-launch-0.0.90.orig/liblomiri-app-launch/application.cpp
++++ lomiri-app-launch-0.0.90/liblomiri-app-launch/application.cpp
+@@ -17,9 +17,7 @@
+  *     Ted Gould <ted.go...@canonical.com>
+  */
+ 
+-extern "C" {
+ #include "lomiri-app-launch.h"
+-}
+ 
+ #include "application.h"
+ #include "info-watcher.h"
+--- lomiri-app-launch-0.0.90.orig/liblomiri-app-launch/lomiri-app-launch.cpp
++++ lomiri-app-launch-0.0.90/liblomiri-app-launch/lomiri-app-launch.cpp
+@@ -17,13 +17,13 @@
+  *     Ted Gould <ted.go...@canonical.com>
+  */
+ 
+-extern "C" {
+ #include "lomiri-app-launch.h"
+ #include <gio/gio.h>
+ #include <gio/gunixfdlist.h>
+ #include <string.h>
+ #include <fcntl.h>
+ #include <errno.h>
++extern "C" {
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+ #include <zeitgeist.h>
diff -Nru lomiri-app-launch-0.0.90/debian/patches/2003-remove-werror.patch 
lomiri-app-launch-0.0.90/debian/patches/2003-remove-werror.patch
--- lomiri-app-launch-0.0.90/debian/patches/2003-remove-werror.patch    
1970-01-01 00:00:00.000000000 +0000
+++ lomiri-app-launch-0.0.90/debian/patches/2003-remove-werror.patch    
2021-11-08 00:26:53.000000000 +0000
@@ -0,0 +1,15 @@
+Description:  Remove -Werror, it breaks the build with gcc-11
+Author: Peter Michael Green <plugw...@raspbian.org>
+Bug-Debian: https://bugs.debian.org/984224
+
+--- lomiri-app-launch-0.0.90.orig/CMakeLists.txt
++++ lomiri-app-launch-0.0.90/CMakeLists.txt
+@@ -51,7 +51,7 @@ set(lomiri_app_launch_arch "${LOMIRI_APP
+ 
+ add_compile_options(
+ # Because we believe in quality
+-      -Wall -Werror
++      -Wall
+       -g
+       -pthread
+ )
diff -Nru lomiri-app-launch-0.0.90/debian/patches/series 
lomiri-app-launch-0.0.90/debian/patches/series
--- lomiri-app-launch-0.0.90/debian/patches/series      2020-11-17 
11:02:46.000000000 +0000
+++ lomiri-app-launch-0.0.90/debian/patches/series      2021-11-08 
00:26:53.000000000 +0000
@@ -3,3 +3,5 @@
 1001_fix-gir-api-version.patch
 1002_typo-fixes.patch
 1003_add-missing-keywords-key.patch
+2003-remove-werror.patch
+1004-move-system-headers-outside-extern-c.patch

Reply via email to