Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build error on Fedora 40 #697

Open
4 tasks done
ycollet opened this issue Apr 20, 2024 · 2 comments
Open
4 tasks done

Build error on Fedora 40 #697

ycollet opened this issue Apr 20, 2024 · 2 comments
Labels
bug Something isn't working

Comments

@ycollet
Copy link

ycollet commented Apr 20, 2024

✍️ Bug Description

I am building soundux for Fedora 40 and met a build error with gcc 14.0.1:

[ 70%] Building CXX object CMakeFiles/soundux.dir/src/helper/audio/linux/pipewire/pipewire.cpp.o
/usr/bin/g++ -DBACKWARD_HAS_BACKTRACE=0 -DBACKWARD_HAS_BACKTRACE_SYMBOL=0 -DBACKWARD_HAS_BFD=0 -DBACKWARD_HAS_DW=1 -DBACKWARD_HAS_DWARF=0 -DBACKWARD_HAS_LIBUNWIND=0 -DBACKWARD_HAS_UNWIND=1 -DCPPHTTPLIB_BROTLI_SUPPORT -DCPPHTTPLIB_OPENSSL_SUPPORT -DCPPHTTPLIB_ZLIB_SUPPORT -DIS_EMBEDDED=1 -DSOUNDUX_VERSION=\"0.2.7\" -DWNCK_I_KNOW_THIS_IS_UNSTABLE=1 -I/builddir/build/BUILD/Soundux/lib/backward-cpp -I/builddir/build/BUILD/Soundux/ON -I/builddir/build/BUILD/Soundux/lib/nativefiledialog-extended/src/include -I/builddir/build/BUILD/Soundux/lib/tiny-process-library -I/builddir/build/BUILD/Soundux/lib/guardpp/guard/include -I/builddir/build/BUILD/Soundux/lib/lockpp/lock/include -isystem /builddir/build/BUILD/Soundux/src -isystem /builddir/build/BUILD/Soundux/lib/miniaudio -isystem /builddir/build/BUILD/Soundux/lib/semver/include -isystem /builddir/build/BUILD/Soundux/lib/fancypp/include -isystem /builddir/build/BUILD/Soundux/lib/json/single_include -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /builddir/build/BUILD/Soundux/lib/cpp-httplib -isystem /usr/include/gtk-3.0 -isystem /usr/include/pango-1.0 -isystem /usr/include/cairo -isystem /usr/include/gdk-pixbuf-2.0 -isystem /usr/include/atk-1.0 -isystem /usr/include/freetype2 -isystem /usr/include/harfbuzz -isystem /usr/include/glib-2.0 -isystem /usr/lib64/glib-2.0/include -isystem /usr/include/cloudproviders -isystem /usr/include/webp -isystem /usr/include/at-spi2-atk/2.0 -isystem /usr/include/at-spi-2.0 -isystem /usr/include/dbus-1.0 -isystem /usr/lib64/dbus-1.0/include -isystem /usr/include/fribidi -isystem /usr/include/libxml2 -isystem /usr/include/pixman-1 -isystem /usr/include/libpng16 -isystem /usr/include/gio-unix-2.0 -isystem /usr/include/libmount -isystem /usr/include/blkid -isystem /usr/include/sysprof-6 -isystem /usr/include/webkitgtk-4.0 -isystem /usr/include/libsoup-2.4 -isystem /builddir/build/BUILD/Soundux/src/ui/impl/webview/lib/webviewpp -isystem /builddir/build/BUILD/Soundux/src/ui/impl/webview/lib/webviewpp/webview/include -isystem /builddir/build/BUILD/Soundux/src/ui/impl/webview/lib/webviewpp/lib/json/single_include/nlohmann -isystem /usr/include/libappindicator3-0.1 -isystem /usr/include/libdbusmenu-glib-0.4 -isystem /builddir/build/BUILD/Soundux/lib/traypp -isystem /builddir/build/BUILD/Soundux/lib/traypp/tray/include -include cstdint -Wno-error=deprecated-declarations -fPIC -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -std=c++17 -Wall -Wextra -pedantic -Wno-unused-lambda-capture -Wno-gnu -MD -MT CMakeFiles/soundux.dir/src/helper/audio/linux/pipewire/pipewire.cpp.o -MF CMakeFiles/soundux.dir/src/helper/audio/linux/pipewire/pipewire.cpp.o.d -o CMakeFiles/soundux.dir/src/helper/audio/linux/pipewire/pipewire.cpp.o -c /builddir/build/BUILD/Soundux/src/helper/audio/linux/pipewire/pipewire.cpp
/builddir/build/BUILD/Soundux/src/helper/audio/linux/pipewire/pipewire.cpp: In member function ‘void Soundux::Objects::PipeWire::onCoreInfo(const pw_core_info*)’:
/builddir/build/BUILD/Soundux/src/helper/audio/linux/pipewire/pipewire.cpp:126:70: error: cannot convert ‘std::__cxx11::basic_string<char>::iterator’ to ‘const char*’
  126 |             formattedVersion.erase(std::remove(formattedVersion.begin(), formattedVersion.end(), '.'),
      |                                                ~~~~~~~~~~~~~~~~~~~~~~^~
      |                                                                      |
      |                                                                      std::__cxx11::basic_string<char>::iterator
In file included from /usr/include/c++/14/cstdio:42,
                 from /usr/include/c++/14/ext/string_conversions.h:45,
                 from /usr/include/c++/14/bits/basic_string.h:4154,
                 from /usr/include/c++/14/string:54,
                 from /builddir/build/BUILD/Soundux/src/helper/audio/linux/pipewire/../backend.hpp:6,
                 from /builddir/build/BUILD/Soundux/src/helper/audio/linux/pipewire/pipewire.hpp:2,
                 from /builddir/build/BUILD/Soundux/src/helper/audio/linux/pipewire/pipewire.cpp:2:
/usr/include/stdio.h:158:32: note:   initializing argument 1 of ‘int remove(const char*)’
  158 | extern int remove (const char *__filename) __THROW;
      |                    ~~~~~~~~~~~~^~~~~~~~~~
At global scope:

🔁 Steps to reproduce

Build on Fedora 40 beta.

🖥️ Console Output

[ 70%] Building CXX object CMakeFiles/soundux.dir/src/helper/audio/linux/pipewire/pipewire.cpp.o
/usr/bin/g++ -DBACKWARD_HAS_BACKTRACE=0 -DBACKWARD_HAS_BACKTRACE_SYMBOL=0 -DBACKWARD_HAS_BFD=0 -DBACKWARD_HAS_DW=1 -DBACKWARD_HAS_DWARF=0 -DBACKWARD_HAS_LIBUNWIND=0 -DBACKWARD_HAS_UNWIND=1 -DCPPHTTPLIB_BROTLI_SUPPORT -DCPPHTTPLIB_OPENSSL_SUPPORT -DCPPHTTPLIB_ZLIB_SUPPORT -DIS_EMBEDDED=1 -DSOUNDUX_VERSION="0.2.7" -DWNCK_I_KNOW_THIS_IS_UNSTABLE=1 -I/builddir/build/BUILD/Soundux/lib/backward-cpp -I/builddir/build/BUILD/Soundux/ON -I/builddir/build/BUILD/Soundux/lib/nativefiledialog-extended/src/include -I/builddir/build/BUILD/Soundux/lib/tiny-process-library -I/builddir/build/BUILD/Soundux/lib/guardpp/guard/include -I/builddir/build/BUILD/Soundux/lib/lockpp/lock/include -isystem /builddir/build/BUILD/Soundux/src -isystem /builddir/build/BUILD/Soundux/lib/miniaudio -isystem /builddir/build/BUILD/Soundux/lib/semver/include -isystem /builddir/build/BUILD/Soundux/lib/fancypp/include -isystem /builddir/build/BUILD/Soundux/lib/json/single_include -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /builddir/build/BUILD/Soundux/lib/cpp-httplib -isystem /usr/include/gtk-3.0 -isystem /usr/include/pango-1.0 -isystem /usr/include/cairo -isystem /usr/include/gdk-pixbuf-2.0 -isystem /usr/include/atk-1.0 -isystem /usr/include/freetype2 -isystem /usr/include/harfbuzz -isystem /usr/include/glib-2.0 -isystem /usr/lib64/glib-2.0/include -isystem /usr/include/cloudproviders -isystem /usr/include/webp -isystem /usr/include/at-spi2-atk/2.0 -isystem /usr/include/at-spi-2.0 -isystem /usr/include/dbus-1.0 -isystem /usr/lib64/dbus-1.0/include -isystem /usr/include/fribidi -isystem /usr/include/libxml2 -isystem /usr/include/pixman-1 -isystem /usr/include/libpng16 -isystem /usr/include/gio-unix-2.0 -isystem /usr/include/libmount -isystem /usr/include/blkid -isystem /usr/include/sysprof-6 -isystem /usr/include/webkitgtk-4.0 -isystem /usr/include/libsoup-2.4 -isystem /builddir/build/BUILD/Soundux/src/ui/impl/webview/lib/webviewpp -isystem /builddir/build/BUILD/Soundux/src/ui/impl/webview/lib/webviewpp/webview/include -isystem /builddir/build/BUILD/Soundux/src/ui/impl/webview/lib/webviewpp/lib/json/single_include/nlohmann -isystem /usr/include/libappindicator3-0.1 -isystem /usr/include/libdbusmenu-glib-0.4 -isystem /builddir/build/BUILD/Soundux/lib/traypp -isystem /builddir/build/BUILD/Soundux/lib/traypp/tray/include -include cstdint -Wno-error=deprecated-declarations -fPIC -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -std=c++17 -Wall -Wextra -pedantic -Wno-unused-lambda-capture -Wno-gnu -MD -MT CMakeFiles/soundux.dir/src/helper/audio/linux/pipewire/pipewire.cpp.o -MF CMakeFiles/soundux.dir/src/helper/audio/linux/pipewire/pipewire.cpp.o.d -o CMakeFiles/soundux.dir/src/helper/audio/linux/pipewire/pipewire.cpp.o -c /builddir/build/BUILD/Soundux/src/helper/audio/linux/pipewire/pipewire.cpp
/builddir/build/BUILD/Soundux/src/helper/audio/linux/pipewire/pipewire.cpp: In member function ‘void Soundux::Objects::PipeWire::onCoreInfo(const pw_core_info*)’:
/builddir/build/BUILD/Soundux/src/helper/audio/linux/pipewire/pipewire.cpp:126:70: error: cannot convert ‘std::__cxx11::basic_string::iterator’ to ‘const char’
126 | formattedVersion.erase(std::remove(formattedVersion.begin(), formattedVersion.end(), '.'),
| ~~~~~~~~~~~~~~~~~~~~~~^~
| |
| std::__cxx11::basic_string::iterator
In file included from /usr/include/c++/14/cstdio:42,
from /usr/include/c++/14/ext/string_conversions.h:45,
from /usr/include/c++/14/bits/basic_string.h:4154,
from /usr/include/c++/14/string:54,
from /builddir/build/BUILD/Soundux/src/helper/audio/linux/pipewire/../backend.hpp:6,
from /builddir/build/BUILD/Soundux/src/helper/audio/linux/pipewire/pipewire.hpp:2,
from /builddir/build/BUILD/Soundux/src/helper/audio/linux/pipewire/pipewire.cpp:2:
/usr/include/stdio.h:158:32: note: initializing argument 1 of ‘int remove(const char
)’
158 | extern int remove (const char *__filename) __THROW;
| ~~~~~~~~~~~~^~~~~~~~~~
At global scope:

❔ Expected behaviour

No response

👀 Screenshots

No response

🖥️ Operating System

Linux

🖥️ Distribution

Fedora 40

✅ I confirm that...

  • I have collected all the required information and read all the comments in this document
  • I searched for an existing bug report for this issue
  • the problem does occur with the reproduction steps I provided
  • what I described is indeed a problem
@ycollet ycollet added the bug Something isn't working label Apr 20, 2024
@ProjectSynchro
Copy link

Take a peek at the flatpak manifest repo for some help: https://github.com/flathub/io.github.Soundux

What I think is going on is that you're hitting a bug that is in one of the libraries that handles regex and version checking.
Updating this library: https://github.com/yhirose/cpp-httplib should help (stick it in ./lib/cpp-httplib).

Additionally you'll have to patch a few source files to fix other build issues you'll run into after this fix, see:

https://github.com/flathub/io.github.Soundux/blob/master/webviewpp-build-fix.patch and https://github.com/flathub/io.github.Soundux/blob/master/guardpp-build-fix.patch

Additionally pass -DCMAKE_CXX_FLAGS=-Wno-error=deprecated-declarations into CMake to allow building with the deprecated API for gtkwebview.

If your goal is to use the software, I'd stick with the Flatpak. Otherwise if building it from source is how you want to go, I think the above steps should get things working for you.

@D3SOX
Copy link
Member

D3SOX commented Jun 1, 2024

If you still experience this issue you might wanna check out the recent changes made to our COPR repo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants