RfidResearchGroup / proxmark3

Iceman Fork - Proxmark3
http://www.icedev.se
GNU General Public License v3.0
4.07k stars 1.07k forks source link

Build error: C++20 -Werror=template-id-cdtor in proxguiqt.cpp #2382

Open AstreaeLuna opened 6 months ago

AstreaeLuna commented 6 months ago

Describe the bug Build failure caused by C++20 compiler change: template-id not allowed for constructor in C++20

To Reproduce Steps to reproduce the behavior:

  1. Download git repo on Fedora 40
  2. Install all required dependancies
  3. Run make -j all
  4. Build fails due to
    /usr/include/qt5/QtCore/qfutureinterface.h:284:37: error: template-id not allowed for constructor in C++20 [-Werror=template-id-cdtor]
    284 |     explicit QFutureInterface<void>(State initialState = NoState)
      |                                     ^~~~~
    /usr/include/qt5/QtCore/qfutureinterface.h:284:37: note: remove the ‘< >’

    Expected behavior The build should succeed.

Desktop (please complete the following information):

Additional context The error is resolved and the build can successfully complete if the change suggested by the compiler is made and <void> is removed from Line 284 of /usr/include/qt5/QtCore/qfutureinterface.h

This leads me to believe this isn't a problem strictly with Proxmark3 but with the QT development library. But I'm posting here to be sure.

Full build log is as follows:

Build Log ``` =================================================================== Version info: Iceman/master/v4.18341-152-g2bc7c5030 Platform name: Proxmark3 generic target PLATFORM: PM3GENERIC PLATFORM_FPGA: xc2s30 PLATFORM_SIZE: 512 Platform extras: No extra selected Included options: LF HITAG EM4x50 EM4x70 ZX8211 GENERAL_HF ISO15693 LEGICRF ISO14443b ISO14443a ICLASS FELICA NFCBARCODE HFSNIFF HFPLOT Standalone mode: LF_SAMYRUN =================================================================== [*] MAKE client/all [*] MAKE bootrom/all [*] MAKE fpga_compress/all [*] MAKE mfkey/all [*] MAKE nonce2key/all [*] MAKE mf_nonce_brute/all [*] MAKE mfd_aes_brute/all [*] MAKE cryptorf/all [-] CC fpga_compress.c [-] CC ../../common/lz4/lz4hc.c [-] CC ../../common/lz4/lz4.c [-] CC mf_nonce_brute.c [-] CC nonce2key.c [-] CC mfkey32.c [-] CC ../../common/crapto1/crypto1.c [-] CC ../../common/crapto1/crapto1.c [-] CC ../../common/crapto1/crypto1.c [-] CC ../../common/crapto1/crapto1.c [-] CC ../../common/bucketsort.c [-] CC ../../common/bucketsort.c [-] CC brute_key.c [-] CC cm.c [-] CC ../../common/crapto1/crypto1.c [-] CC ../../common/crapto1/crapto1.c [-] CC nested_util.c [-] CC ../../common/cryptorf/cryptolib.c [-] CC util.c [-] CC util_posix.c [-] CC iso14443crc.c [-] CC ../../common/bucketsort.c [-] CC sleep.c [-] CC sm.c [-] CC randoms.c [-] CC util_posix.c [-] CC mfkey32v2.c compiler version: arm-none-eabi-gcc (Fedora 13.2.0-5.fc40) 13.2.0 [=] CHECK version_pm3.c [-] CC mfd_aes_brute.c [-] CC ram-reset.s [-] CC mf_trace_brute.c [-] CXX sma.cpp [-] CC mfkey64.c [-] CC flash-reset.s [-] CXX sma_multi.cpp [-] CC mfd_multi_brute.c [-] CC staticnested.c [-] CC ../common_arm/usb_cdc.c [-] CC ../common_arm/clocks.c [-] CC bootrom.c [-] CC version_pm3.c [=] CXX brute_key =================================================================== Version info: Iceman/master/v4.18341-152-g2bc7c5030 Client platform: Linux GUI support: QT5 found, enabled (Qt version 5.15.13 in /usr/lib64) native BT support: Bluez found, enabled Jansson library: system library not found, using local library Lua library: system library not found, using local library [=] LD obj/bootrom.elf Python3 library: Python3 v3.12 found, enabled [=] GEN obj/bootrom.s19 GD library: GD v2.3.3 found, enabled Readline library: enabled Whereami library: system library not found, using local library Lua SWIG: wrapper found Python SWIG: wrapper found compiler version: cc (GCC) 14.0.1 20240411 (Red Hat 14.0.1-0) =================================================================== [=] CXX mfd_multi_brute [=] CXX mfd_aes_brute [-] CC src/mifare/aiddesfire.c [-] CC src/aidsearch.c [-] CC src/atrs.c [-] CC src/cmdanalyse.c [=] CXX cm [=] CXX sm [-] CC src/cmdcrc.c [-] CC src/cmddata.c [-] CC src/cmdflashmem.c [-] CC src/cmdflashmemspiffs.c [-] CC src/cmdhf.c [-] CC src/cmdhf14a.c [-] CC src/cmdhf14b.c [-] CC src/cmdhf15.c [-] CC src/cmdhfcryptorf.c [=] CXX mf_nonce_brute [=] CXX mf_trace_brute [-] CC src/cmdhfepa.c [=] CXX nonce2key [-] CC src/cmdhfemrtd.c [-] CC src/cmdhffelica.c [-] CC src/cmdhffido.c [-] CC src/cmdhffudan.c [-] CC src/cmdhfgallagher.c [-] CC src/cmdhfksx6924.c [-] CC src/cmdhfcipurse.c [-] CC src/cmdhficlass.c [=] CXX mfkey32 [=] CXX mfkey32v2 [=] CXX mfkey64 [-] CC src/cmdhfict.c [=] CXX staticnested [=] CXX sma [-] CC src/cmdhflegic.c [-] CC src/cmdhfjooki.c [-] CC src/cmdhflist.c [-] CC src/cmdhflto.c [-] CC src/cmdhfmf.c [-] CC src/cmdhfmfdes.c [-] CC src/cmdhfmfhard.c [-] CC src/cmdhfmfu.c [=] CXX sma_multi [-] CC src/cmdhfmfp.c [-] CC src/cmdhfntag424.c [-] CC src/cmdhfseos.c [-] CC src/cmdhfst.c [-] CC src/cmdhfst25ta.c [-] CC src/cmdhftesla.c [-] CC src/cmdhfthinfilm.c [-] CC src/cmdhftopaz.c [-] CC src/cmdhftexkom.c [-] CC src/cmdhfvas.c [-] CC src/cmdhfxerox.c [-] CC src/cmdhw.c [-] CC src/cmdlf.c [-] CC src/cmdlfawid.c [-] CC src/cmdlfcotag.c [-] CC src/cmdlfdestron.c [-] CC src/cmdlfem.c [-] CC src/cmdlfem410x.c [-] CC src/cmdlfem4x05.c [-] CC src/cmdlfem4x50.c [-] CC src/cmdlfem4x70.c [-] CC src/cmdlffdxb.c [-] CC src/cmdlfguard.c [-] CC src/cmdlfgallagher.c [-] CC src/cmdlfhid.c [-] CC src/cmdlfhitag.c [-] CC src/cmdlfidteck.c [-] CC src/cmdlfindala.c [-] CC src/cmdlfio.c [-] CC src/cmdlfjablotron.c [-] CC src/cmdlfkeri.c [-] CC src/cmdlfmotorola.c [-] CC src/cmdlfnedap.c [-] CC src/cmdlfnexwatch.c [-] CC src/cmdlfnoralsy.c [-] CC src/cmdlfpac.c [-] CC src/cmdlfparadox.c [-] CC src/cmdlfpcf7931.c [-] CC src/cmdlfpresco.c [-] CC src/cmdlfpyramid.c [-] CC src/cmdlfsecurakey.c [-] CC src/cmdlft55xx.c [-] CC src/cmdlfti.c [-] CC src/cmdlfviking.c [-] CC src/cmdlfvisa2000.c [-] CC src/cmdlfzx8211.c [-] CC src/cmdmain.c [-] CC src/cmdnfc.c [-] CC src/cmdparser.c [-] CC src/cmdpiv.c [-] CC src/cmdscript.c [-] CC src/cmdsmartcard.c [-] CC src/cmdtrace.c [-] CC src/cmdusart.c [-] CC src/cmdwiegand.c [-] CC src/comms.c [-] CC src/crypto/asn1dump.c [-] CC src/crypto/asn1utils.c [-] CC src/crypto/libpcrypto.c [-] CC src/emv/cmdemv.c [-] CC src/emv/crypto.c [-] CC src/emv/crypto_polarssl.c [-] CC src/emv/dol.c [=] CXX fpga_compress [-] CC src/emv/emv_pk.c [-] CC src/emv/emv_pki.c [-] CC src/emv/emv_pki_priv.c [*] MAKE armsrc/all [-] CC src/emv/emv_roca.c compiler version: arm-none-eabi-gcc (Fedora 13.2.0-5.fc40) 13.2.0 [-] GEN fpga_version_info.c [-] GEN obj/fpga_all.bit.z [-] CC start.c [-] CC iso15693.c [-] CC ../common/iso15693tools.c [-] CC thinfilm.c [-] CC lfops.c [-] CC lfsampling.c [-] CC pcf7931.c [-] CC ../common/lfdemod.c [-] CC lfadc.c [-] CC ../common/lz4/lz4.c [-] CC legicrf.c [-] CC legicrfsim.c [-] CC ../common/legic_prng.c [-] CC src/emv/emv_tags.c [-] CC ../common/hitag2/hitag2_crypto.c [-] CC hitag2.c [-] CC hitagS.c [-] CC hitag2_crack.c [-] CC em4x50.c [-] CC ../common/bruteforce.c [-] CC em4x70.c [-] CC hfops.c [-] CC iso14443a.c [-] CC mifareutil.c [-] CC mifarecmd.c [-] CC epa.c [-] CC mifaresim.c [-] CC sam_mfc.c [-] CC sam_seos.c [-] CC iso14443b.c [-] CC ../common/crapto1/crypto1.c [-] CC ../common/mbedtls/des.c [-] CC desfire_crypto.c [-] CC mifaredesfire.c [-] CC ../common/mbedtls/aes.c [-] CC ../common/mbedtls/platform_util.c [-] CC iclass.c [-] CC optimized_cipherutils.c [-] CC optimized_ikeys.c [-] CC optimized_elite.c [-] CC optimized_cipher.c [-] CC sam_picopass.c [-] CC ../common/crc.c [-] CC ../common/crc16.c [-] CC src/emv/emvcore.c [-] CC ../common/crc32.c [-] CC felica.c [-] CC ../armsrc/Standalone/lf_samyrun.c [-] CC lfzx.c [-] CC appmain.c [-] CC printf.c [-] CC dbprint.c [-] CC ../common/commonutil.c [-] CC util.c [-] CC string.c [-] CC BigBuf.c [-] CC ../common_arm/ticks.c [-] CC ../common_arm/clocks.c [-] CC hfsnoop.c [-] CC ../common/generator.c [-] CC fpgaloader.c [-] CC ../common_arm/usb_cdc.c [-] CC cmd.c [-] CC fpga_version_info.c [-] GEN obj/fpga_all.o [-] CC src/emv/emvjson.c [-] CC src/emv/tlv.c [-] CC src/emv/test/crypto_test.c [-] CC src/emv/test/cryptotest.c [-] CC src/emv/test/cda_test.c [-] CC src/emv/test/dda_test.c [-] CC src/emv/test/sda_test.c [-] CC src/fido/additional_ca.c [-] CC src/fido/cose.c [-] CC src/fido/cbortools.c [-] CC src/fido/fidocore.c [-] CC src/ksx6924/ksx6924core.c [-] CC src/cipurse/cipursecore.c [-] CC src/cipurse/cipursecrypto.c [-] CC src/cipurse/cipursetest.c [-] CC src/fileutils.c [-] CC src/flash.c [-] CC ../common/generator.c [-] CC src/graph.c [-] CC src/jansson_path.c [-] CC src/iso4217.c [-] CC src/iso7816/apduinfo.c [-] CC src/iso7816/iso7816core.c [-] CC src/loclass/cipher.c [-] CC src/loclass/cipherutils.c [-] CC src/loclass/elite_crack.c [-] CC src/loclass/ikeys.c [-] CC src/mifare/lrpcrypto.c [-] CC src/mifare/desfirecrypto.c [-] CC src/mifare/desfirecore.c [-] CC src/mifare/desfiresecurechan.c [-] CC src/mifare/desfiretest.c [-] CC src/mifare/gallaghercore.c [-] CC src/mifare/mad.c [-] CC src/mifare/mfkey.c [-] CC src/mifare/mifare4.c [-] CC src/mifare/mifaredefault.c [-] CC src/mifare/mifarehost.c [-] CC src/mifare/gen4.c [-] CC src/nfc/ndef.c [-] CC src/pm3.c [-] CC src/pm3_binlib.c [-] CC src/pm3_bitlib.c [-] CC src/preferences.c [-] CHECK version_pm3.c [-] CC version_pm3.c [-] CC src/pm3line.c [=] LD obj/fullimage.stage1.elf [-] GEN obj/fullimage.data.bin [-] GEN obj/fullimage.data.bin.z [=] LD obj/fullimage.elf [=] GEN obj/fullimage.s19 [*] MAKE recovery/all [-] CC src/proxmark3.c [=] GEN bootrom.bin [=] GEN fullimage.bin [=] GEN proxmark3_recovery.bin [-] CC src/scandir.c [-] CC src/uart/ringbuffer.c [-] CC src/uart/uart_common.c [-] CC src/uart/uart_posix.c [-] CC src/uart/uart_win32.c [-] CC src/scripting.c [-] CC src/ui.c [-] CC src/util.c [=] CHECK src/version_pm3.c [-] CC src/wiegand_formats.c [-] CC src/wiegand_formatutils.c [-] CC ../common/bucketsort.c [-] CC ../common/bruteforce.c [-] CC ../common/cardhelper.c [-] CC ../common/crapto1/crapto1.c [-] CC ../common/crapto1/crypto1.c [-] CC ../common/crc.c [-] CC ../common/crc16.c [-] CC ../common/crc32.c [-] CC ../common/crc64.c [-] CC ../common/commonutil.c [-] CC ../common/hitag2/hitag2_crypto.c [-] CC ../common/iso15693tools.c [-] CC ../common/legic_prng.c [-] CC ../common/lfdemod.c [-] CC ../common/util_posix.c [-] CC src/imgutils.c [-] CC src/cmdhfwaveshare.c [-] CC src/pm3_luawrap.c [-] CC src/pm3_pywrap.c [-] UIC src/ui/ui_overlays.h [-] UIC src/ui/ui_image.h [*] MAKE deps/amiitool/libamiibo.a [*] MAKE deps/cliparser/libcliparser.a [*] MAKE deps/hardnested/libhardnested.a [*] MAKE deps/id48/libid48.a [*] MAKE deps/liblua/liblua.a for linux [*] MAKE deps/jansson/libjansson.a [*] MAKE obj/libmbedtls.a [*] MAKE deps/reveng/libreveng.a [*] MAKE deps/tinycbor/tinycbor.a [*] MAKE deps/whereami/libwhereami.a [=] GEN lualibs/pm3_cmd.lua [=] GEN lualibs/mfc_default_keys.lua [-] CC src/version_pm3.c PLATFORM Linux [-] CC id48_data.c [-] CC amiibo.c [-] CC id48_generator.c [-] CC dump.c [-] CC drbg.c [-] CC id48_recover.c [-] CC argtable3.c [-] CC cliparser.c [-] CC keygen.c [-] CC error.c [-] CC bmpbit.c [=] TEST bmptst [-] CC hashtable.c [-] CC hashtable_seed.c [-] CC bmpbit.c [-] CC load.c [-] CC cli.c [-] CC memory.c [-] CC aes.c [-] CC model.c [-] CC pack_unpack.c [-] CC poly.c [-] CC strbuffer.c [-] CC preset.c [-] CC strconv.c [-] CC asn1parse.c [-] CC utf.c [-] CC whereami.c [-] CC value.c [-] CC reveng.c [-] CC asn1write.c [-] CC cborencoder.c [-] CC base64.c [-] CC bignum.c [-] CC ctr_drbg.c [-] CC cborencoder_close_container_checked.c [-] CC lapi.c [-] CC(NOSIMD) hardnested_bf_core.c [-] CC entropy_poll.c [-] CC(NOSIMD) hardnested_bitarray_core.c [-] CC(MMX) hardnested_bf_core.c [-] CC entropy.c [-] CC cborerrorstrings.c [-] CC error.c [-] CC cborparser.c [-] CC ecp.c [-] CC cborparser_dup_string.c [-] CC lcode.c [-] CC cborpretty.c [-] CC ecp_curves.c [-] CC lctype.c [-] CC certs.c [-] CC cbortojson.c [-] CC(MMX) hardnested_bitarray_core.c [-] CC(SSE2) hardnested_bf_core.c [-] CC camellia.c [-] CC cborvalidation.c [-] CC ldebug.c [-] CC blowfish.c [-] CC(SSE2) hardnested_bitarray_core.c [-] CC(AVX) hardnested_bf_core.c [-] CC ldo.c [-] CC cipher_wrap.c [-] CC(AVX) hardnested_bitarray_core.c [-] CC(AVX2) hardnested_bf_core.c [-] CC cipher.c [-] CC ldump.c [-] CC lfunc.c [-] CC cmac.c [-] CC lgc.c [-] CC des.c [-] CC(AVX2) hardnested_bitarray_core.c [-] CC llex.c [-] CC(AVX512) hardnested_bf_core.c [-] CC ecc_point_compression.c [-] CC lmem.c [-] CC ecdh.c [-] CC lobject.c [-] CC lopcodes.c [-] CC ecdsa.c [-] CC gcm.c [-] CC lparser.c [-] CC(AVX512) hardnested_bitarray_core.c [-] CC lstate.c [-] CC md.c [-] CC md5.c [-] CC lstring.c [-] CC hardnested_bruteforce.c [-] CC ltable.c [-] CC oid.c [-] CC ltm.c [-] CC pem.c [-] CC arc4.c [-] CC pk.c [-] CC lundump.c [-] CC pk_wrap.c [=] AR libwhereami.a [-] CC lvm.c [-] CC pkwrite.c [-] CC lzio.c [-] CC lauxlib.c [-] CXX src/proxgui.cpp [-] CC lbaselib.c [-] CC pkcs5.c [-] CC pkcs12.c [-] CC lbitlib.c [-] CC pkparse.c [-] CC lcorolib.c [-] CC ldblib.c [-] CC platform.c [-] CC liolib.c [-] CC lmathlib.c [-] CC platform_util.c [-] CC loslib.c [-] CC lstrlib.c [-] CC ltablib.c [-] CC loadlib.c [-] CC rsa.c [-] CC linit.c [-] CC rsa_internal.c [-] CC sha1.c [-] CC sha256.c [-] CC sha512.c [-] CC threading.c [=] AR libamiibo.a [-] CC x509.c [-] CC x509_crl.c [-] CC x509_crt.c [-] CC net_sockets.c [-] CXX src/proxguiqt.cpp [-] MOC src/proxguiqt.moc.cpp [-] CXX src/proxguiqt.moc.cpp [=] AR libid48.a [=] AR libhardnested.a In file included from /usr/include/qt5/QtCore/qfuture.h:45, from /usr/include/qt5/QtCore/QtCore:97, from /usr/include/qt5/QtGui/QtGuiDepends:3, from /usr/include/qt5/QtGui/QtGui:3, from src/proxguiqt.h:30, from src/proxguiqt.cpp:19: /usr/include/qt5/QtCore/qfutureinterface.h:284:37: error: template-id not allowed for constructor in C++20 [-Werror=template-id-cdtor] 284 | explicit QFutureInterface(State initialState = NoState) | ^~~~~ /usr/include/qt5/QtCore/qfutureinterface.h:284:37: note: remove the ‘< >’ [=] AR libjansson.a [=] AR tinycbor.a [=] AR liblua.a [=] AR libreveng.a [=] AR libcliparser.a In file included from /usr/include/qt5/QtCore/qfuture.h:45, from /usr/include/qt5/QtCore/QtCore:97, from /usr/include/qt5/QtGui/QtGuiDepends:3, from /usr/include/qt5/QtGui/QtGui:3, from src/proxguiqt.h:30, from src/proxgui.cpp:22: /usr/include/qt5/QtCore/qfutureinterface.h:284:37: error: template-id not allowed for constructor in C++20 [-Werror=template-id-cdtor] 284 | explicit QFutureInterface(State initialState = NoState) | ^~~~~ /usr/include/qt5/QtCore/qfutureinterface.h:284:37: note: remove the ‘< >’ In file included from /usr/include/qt5/QtCore/qfuture.h:45, from /usr/include/qt5/QtCore/QtCore:97, from /usr/include/qt5/QtGui/QtGuiDepends:3, from /usr/include/qt5/QtGui/QtGui:3, from src/proxguiqt.h:30, from src/proxguiqt.moc.cpp:10: /usr/include/qt5/QtCore/qfutureinterface.h:284:37: error: template-id not allowed for constructor in C++20 [-Werror=template-id-cdtor] 284 | explicit QFutureInterface(State initialState = NoState) | ^~~~~ /usr/include/qt5/QtCore/qfutureinterface.h:284:37: note: remove the ‘< >’ [=] AR libmbedtls.a cc1plus: all warnings being treated as errors make[1]: *** [Makefile:1004: obj/proxguiqt.o] Error 1 make[1]: *** Waiting for unfinished jobs.... cc1plus: all warnings being treated as errors make[1]: *** [Makefile:1004: obj/proxgui.o] Error 1 cc1plus: all warnings being treated as errors make[1]: *** [Makefile:1004: obj/proxguiqt.moc.o] Error 1 make: *** [Makefile:177: client/all] Error 2 ```
wh00hw commented 6 months ago

same error on Arch, try to checkout the latest release tag then compile as usual. git checkout tags/v4.18341

iceman1001 commented 6 months ago

This sounds more of a QT5 change than anything that we do

ikarus23 commented 6 months ago

Bumped into this issue as well.

On v4.18341 the warning is:

In file included from /usr/include/qt/QtCore/qfuture.h:45,
                 from /usr/include/qt/QtCore/QtCore:97,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from src/proxguiqt.h:30,
                 from src/proxguiqt.cpp:19:
/usr/include/qt/QtCore/qfutureinterface.h:284:37: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
  284 |     explicit QFutureInterface<void>(State initialState = NoState)
      |                                     ^~~~~
/usr/include/qt/QtCore/qfutureinterface.h:284:37: note: remove the ‘< >’

On main the error is:

In file included from /usr/include/qt/QtCore/qfuture.h:45,
                 from /usr/include/qt/QtCore/QtCore:97,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from src/proxguiqt.h:30,
                 from src/proxguiqt.moc.cpp:10:
/usr/include/qt/QtCore/qfutureinterface.h:284:37: error: template-id not allowed for constructor in C++20 [-Werror=template-id-cdtor]
  284 |     explicit QFutureInterface<void>(State initialState = NoState)
      |                                     ^~~~~
/usr/include/qt/QtCore/qfutureinterface.h:284:37: note: remove the ‘< >’

So there is a difference in wording (error vs. warning). Not sure were it is coming from. Arch recently updated its gcc13 package. Maybe this changed something. Or like @iceman1001 said, something with Qt.

iceman1001 commented 6 months ago

funny thing, the .moc.cpp is created by QT... So its nothing we have control over more than it might be needed to regenerate on your systems?

AstreaeLuna commented 6 months ago

@iceman1001 I'll look into reporting this bug to the QT devs instead. Out of curiosity, is there a way to retarget the build to use QT6?

iceman1001 commented 6 months ago

you will need to modify the Makefiles / Cmakefile to use QT6 instead.

AstreaeLuna commented 6 months ago

Should I close this issue since it's a Qt problem or leave it open?

iceman1001 commented 6 months ago

keep it open until you got some more answers.

sh7d commented 6 months ago

For now you can use the following patch in order to just make build working and suppress the error:

diff --git a/client/Makefile b/client/Makefile
index 1b7090f68..22bd772b4 100644
--- a/client/Makefile
+++ b/client/Makefile
@@ -446,7 +446,7 @@ endif

 PM3CFLAGS += -DHAVE_SNPRINTF

-CXXFLAGS ?= -Wall -Werror
+CXXFLAGS ?= -Wall -Werror -Wno-error=template-id-cdtor
 CXXFLAGS += $(MYDEFS) $(MYCXXFLAGS) $(MYINCLUDES)

 PM3CXXFLAGS = $(CXXFLAGS)
AstreaeLuna commented 6 months ago

I sent a bug report to the QT5 devs, who confirmed that the bug had been patched and the latest update to the upstream repositories should now resolve the issue.

https://bugzilla.redhat.com/show_bug.cgi?id=2280366

doegox commented 6 months ago

If someone needs to patch their own Qt5 install, the line to change is https://src.fedoraproject.org/rpms/qt5-qtbase/blob/664f24855f26ccaee2501b26a50108b054bf19e2/f/qtbase-qfutureinterface-fix-build-with-gcc14.patch

 class QFutureInterface<void> : public QFutureInterfaceBase
 {
 public:
-    explicit QFutureInterface<void>(State initialState = NoState)
+    explicit QFutureInterface(State initialState = NoState)
         : QFutureInterfaceBase(initialState)
     { }

E.g. on Debian : /usr/include/x86_64-linux-gnu/qt5/QtCore/qfutureinterface.h

GladiatorX2016 commented 4 months ago

I simply replaced "CONFIG += c++17" with "CONFIG += c++20" in the project file. And also added this: "DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000"

iceman1001 commented 4 months ago

I simply replaced "CONFIG += c++17" with "CONFIG += c++20" in the project file. And also added this: "DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000"

Interesting find, You added the c++20 in the Client Makefile right? and where did you add the QT define?

virtadpt commented 2 months ago

You might also want to see this: https://aur.archlinux.org/packages/proxmark3-iceman-git

Some hand-hacking was involved insofar as compilation by an AUR helper was involved.

iceman1001 commented 2 months ago

Reminder, SKIPQT means you will not get the data plot window

You also mentioned:

Deleting the substrings mfkey and 'nonce2key' from line 139 fixed that.

Where did you run into this?

virtadpt commented 2 months ago

I know. I sat and thought about it, and for what I'm using proxmark3 for right now that's fine.

I ran into that with the PKGBUILD file in the AUR. It doesn't apply here, I think.

I had the same questions you did about the projectfile and QT definition, which is why I went off in a different direction (hopefully not a rabbithole).

iceman1001 commented 2 months ago

We have the following solutions:

virtadpt commented 2 months ago

I'll give them a try tonight, and if they work on my end I'll let the AUR package maintainer know.

doegox commented 4 days ago

If someone needs to patch their own Qt5 install, the line to change is https://src.fedoraproject.org/rpms/qt5-qtbase/blob/664f24855f26ccaee2501b26a50108b054bf19e2/f/qtbase-qfutureinterface-fix-build-with-gcc14.patch

FTR on Debian, the bug has been fixed in qtbase5-dev version 5.15.13+dfsg-4. Current testing (Trixie) and unstable (Sid) are at 5.15.15.