** Changed in: glibmm2.4 (Ubuntu) Importance: Undecided => Medium ** Changed in: glibmm2.4 (Ubuntu Impish) Importance: Undecided => Medium
-- You received this bug notification because you are a member of Desktop Packages, which is subscribed to glibmm2.4 in Ubuntu. https://bugs.launchpad.net/bugs/1955044 Title: [SRU] /usr/include/glibmm-2.4/glibmm/variant.h:956:24: error: expected unqualified-id before ‘)’ token (with GCC 11 in C++20 mode) Status in glibmm2.4 package in Ubuntu: Fix Released Status in glibmm2.4 source package in Impish: Triaged Bug description: Impact ====== It's not possible to build using the <glibmm.h> header under C++20 with the default compiler, GCC 11. This is interfering with being able to build telegram-desktop. This was fixed for Ubuntu 22.04 LTS with 2.66.1 Demonstration of the Issue ========================== $ g++ -x c++ -std=gnu++20 -include glibmm.h - <<< 'int main(){}' `pkg-config --cflags --libs glibmm-2.4` -o /dev/null In file included from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23, from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21, from /usr/include/glibmm-2.4/glibmm.h:92, from <command-line>: /usr/include/glibmm-2.4/glibmm/variant.h:956:24: error: expected unqualified-id before ‘)’ token 956 | Variant<VariantBase>(); | ^ /usr/include/glibmm-2.4/glibmm/variant.h:1017:25: error: expected unqualified-id before ‘)’ token 1017 | Variant< Variant<T> >(); | ^ /usr/include/glibmm-2.4/glibmm/variant.h:1070:26: error: expected unqualified-id before ‘)’ token 1070 | Variant<Glib::ustring>(); | ^ /usr/include/glibmm-2.4/glibmm/variant.h:1240:24: error: expected unqualified-id before ‘)’ token 1240 | Variant<std::string>(); | ^ /usr/include/glibmm-2.4/glibmm/variant.h:1286:30: error: expected unqualified-id before ‘)’ token 1286 | Variant< std::pair<K, V> >() | ^ /usr/include/glibmm-2.4/glibmm/variant.h:1335:29: error: expected unqualified-id before ‘)’ token 1335 | Variant< std::vector<T> >() | ^ /usr/include/glibmm-2.4/glibmm/variant.h:1404:41: error: expected unqualified-id before ‘)’ token 1404 | Variant< std::vector<Glib::ustring> >(); | ^ /usr/include/glibmm-2.4/glibmm/variant.h:1530:39: error: expected unqualified-id before ‘)’ token 1530 | Variant< std::vector<std::string> >(); | ^ /usr/include/glibmm-2.4/glibmm/variant.h:1606:29: error: expected unqualified-id before ‘)’ token 1606 | Variant< std::map<K, V> >() | ^ /usr/include/glibmm-2.4/glibmm/variant.h:1679:33: error: expected unqualified-id before ‘)’ token 1679 | Variant<std::tuple<Types...>>() | ^ In file included from /usr/include/glibmm-2.4/glibmm/variant.h:1742, from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23, from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21, from /usr/include/glibmm-2.4/glibmm.h:92, from <command-line>: /usr/include/glibmm-2.4/glibmm/variant_basictypes.h:23:17: error: expected unqualified-id before ‘)’ token 23 | Variant<bool>() | ^ /usr/include/glibmm-2.4/glibmm/variant_basictypes.h:66:26: error: expected unqualified-id before ‘)’ token 66 | Variant<unsigned char>() | ^ /usr/include/glibmm-2.4/glibmm/variant_basictypes.h:109:19: error: expected unqualified-id before ‘)’ token 109 | Variant<gint16>() | ^ /usr/include/glibmm-2.4/glibmm/variant_basictypes.h:152:20: error: expected unqualified-id before ‘)’ token 152 | Variant<guint16>() | ^ /usr/include/glibmm-2.4/glibmm/variant_basictypes.h:195:19: error: expected unqualified-id before ‘)’ token 195 | Variant<gint32>() | ^ /usr/include/glibmm-2.4/glibmm/variant_basictypes.h:244:20: error: expected unqualified-id before ‘)’ token 244 | Variant<guint32>() | ^ /usr/include/glibmm-2.4/glibmm/variant_basictypes.h:287:19: error: expected unqualified-id before ‘)’ token 287 | Variant<gint64>() | ^ /usr/include/glibmm-2.4/glibmm/variant_basictypes.h:330:20: error: expected unqualified-id before ‘)’ token 330 | Variant<guint64>() | ^ /usr/include/glibmm-2.4/glibmm/variant_basictypes.h:373:19: error: expected unqualified-id before ‘)’ token 373 | Variant<double>() | ^ In file included from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23, from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21, from /usr/include/glibmm-2.4/glibmm.h:92, from <command-line>: /usr/include/glibmm-2.4/glibmm/variant.h:1751:1: error: no declaration matches ‘Glib::Variant<Glib::Variant<T> >::Variant()’ 1751 | Variant< Variant<T> >::Variant() | ^~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23, from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21, from /usr/include/glibmm-2.4/glibmm.h:92, from <command-line>: /usr/include/glibmm-2.4/glibmm/variant.h:1026:12: note: candidate is: ‘Glib::Variant<Glib::Variant<T> >::Variant(GVariant*, bool)’ 1026 | explicit Variant< Variant<T> >(GVariant* castitem, bool take_a_reference = false); | ^~~~~~~~~~~~~~~~~~~~~ /usr/include/glibmm-2.4/glibmm/variant.h:1009:7: note: ‘class Glib::Variant<Glib::Variant<T> >’ defined here 1009 | class Variant< Variant<T> > : public VariantContainerBase | ^~~~~~~~~~~~~~~~~~~~~ Test Plan ========= Run the following two terminal commands in Bash: 1. sudo apt-get satisfy libglibmm-2.4-dev 'build-essential | g++' 2. g++ -x c++ -std=gnu++20 -include glibmm.h - <<< 'int main(){}' `pkg-config --cflags --libs glibmm-2.4` -o /dev/null Make sure the latter command produced no output and ended with zero exit code. Where problems could occur =========================== The proposed patch only modifies C++ headers. It may affect only building other packages from source or developer experience. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/glibmm2.4/+bug/1955044/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp