Closed
Labels
bugConfirmed bugs or reports that are very likely to be bugs.Confirmed bugs or reports that are very likely to be bugs.
Description
Prerequisites
- Put an X between the brackets on this line if you have checked that your issue isn't already filed: https://github.com/search?l=&q=repo%3Aetr%2Flibhttpserver&type=Issues
Description
Build is broken with libmicrohttpd => 0.9.71 due to upstream change:
https://lists.gnu.org/archive/html/libmicrohttpd/2020-06/msg00013.html
Furthermore, the release introduces an 'enum MHD_Result' instead of
#defines for MHD_YES/MHD_NO. This is intended to make it easier to check
for certain API misuse bugs by providing better types (not everything is
an 'int'). While this does NOT change the binary API, this change
_will_ cause compiler warnings for all legacy code -- until 'int' is
replaced with 'enum MHD_Result'.
Steps to Reproduce
- Build with libmicrohttpd => 0.9.71
Expected behavior: Build finishes without errors.
Actual behavior: Build is broken
Reproduces how often: 100%
Versions
- OS version (linux - cross-compiled using buildroot)
- libhttpserver version 0.18.1
- libmicrohttpd version 0.9.71 - self-compiled
If you have problems during build:
- Compiler version
gcc version 8.3.0 (Buildroot 2020.02) - autotools version
2.69
Additional Information
http_request.cpp: In member function 'const std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, httpserver::http::header_comparator> httpserver::http_request::get_headerlike_values(MHD_ValueKind) const':
http_request.cpp:110:9: error: invalid conversion from 'int (*)(void*, MHD_ValueKind, const char*, const char*)' to 'MHD_KeyValueIterator' {aka 'MHD_Result (*)(void*, MHD_ValueKind, const char*, const char*)'} [-fpermissive]
Metadata
Metadata
Assignees
Labels
bugConfirmed bugs or reports that are very likely to be bugs.Confirmed bugs or reports that are very likely to be bugs.
Activity
etr commentedon Jul 6, 2020
Thanks for the PR.
I'll keep this open to add an additional test on travis with the new version of libmicrohttpd.
philipp-classen commentedon Nov 13, 2020
I was hitting the problem on Arch Linux with the 0.9.71 (libmicrohttpd) and 0.18.1 (libhttpserver) releases now. It is good news that a patch for it has been merged. Just wanted to ask if you plan any release soon? If so, I would prefer to wait for it, skip the 0.18.1 release and stay on 0.18.0 till then.
Otherwise, it is possible to locally applying the changes as a patch (in the AUR package), but I would prefer to stick with unmodified releases if possible. If you think, the next release could take a few months, locally patching would make sense though.
etr commentedon Nov 14, 2020
I've created a release (0.18.2) - hope that helps.
philipp-classen commentedon Nov 16, 2020
Thanks the fast help, now it builds.
johntaves commentedon Dec 30, 2020
I get a compile error with .18.2.
../../src/httpserver/http_response.hpp:58:9: error: function 'httpserver::http_response::http_response(httpserver::http_response&&)' defaulted on its first declaration with an exception-specification that differs from the implicit declaration 'httpserver::http_response::http_response(httpserver::http_response&&)'
etr commentedon Jan 1, 2021
Hey, which OS (distro), compiler and version are you using?
johntaves commentedon Jan 2, 2021
gcc -v -> gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
redhat 7, I think.
/proc/version ->
Linux version 3.10.0-1127.19.1.el7.x86_64 (mockbuild@x86-vm-28.build.eng.bos.r
edhat.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) )
beneschtech commentedon Jan 2, 2021
etr commentedon Jan 3, 2021
@beneschtech that would help a lot (especially given you seem to have direct experience with the issue). I'd welcome the change as I see many folks coming from CentOS/RHEL with the issue.
beneschtech commentedon Jan 3, 2021
etr commentedon Mar 15, 2021
Closing, given this should be now fixed by PR #227