Source: litecoin
Version:  0.21.3-1
Severity: serious
Tags: FTBFS, patch
User: debian-ri...@lists.debian.org
Usertags: riscv64
X-Debbugs-Cc: debian-ri...@lists.debian.org

Dear litecoin Maintainer,
The package litecoin build failed on all arch.The crucial buildd log below:
```

g++ -std=c++14 -DHAVE_CONFIG_H -I. -I../src/config    -I.
-I./secp256k1-zkp/include  -DBOOST_SP_USE_STD_ATOMIC
-DBOOST_AC_USE_STD_ATOMIC -pthread -I/usr/include   -I./libmw/include
-I./libmw/deps/caches/include -I./libmw/deps/ghc/include
-I./libmw/deps/mio/include -I./univalue/include    -I.
-I./libmw/include -I./libmw/deps/crypto/include -Wdate-time
-D_FORTIFY_SOURCE=2 -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS
-fstack-reuse=none       -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=.
-fstack-protector-strong -fstack-clash-protection -Wformat
-Werror=format-security -fcf-protection -fPIC
-fno-extended-identifiers -c -o libbitcoin_server_a-net_processing.o
`test -f 'net_processing.cpp' || echo './'`net_processing.cpp
net.cpp: In function ‘void ThreadMapPort()’:
net.cpp:1640:25: error: too few arguments to function ‘int
UPNP_GetValidIGD(UPNPDev*, UPNPUrls*, IGDdatas*, char*, int, char*,
int)’
 1640 |     r = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr,
sizeof(lanaddr));
      |
~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from net.cpp:40:
/usr/include/miniupnpc/miniupnpc.h:122:1: note: declared here
  122 | UPNP_GetValidIGD(struct UPNPDev * devlist,
      | ^~~~~~~~~~~~~~~~
g++ -std=c++14 -DHAVE_CONFIG_H -I. -I../src/config    -I.
-I./secp256k1-zkp/include  -DBOOST_SP_USE_STD_ATOMIC
-DBOOST_AC_USE_STD_ATOMIC -pthread -I/usr/include   -I./libmw/include
-I./libmw/deps/caches/include -I./libmw/deps/ghc/include
-I./libmw/deps/mio/include -I./univalue/include    -I.
-I./libmw/include -I./libmw/deps/crypto/include -Wdate-time
-D_FORTIFY_SOURCE=2 -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS
-fstack-reuse=none       -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=.
-fstack-protector-strong -fstack-clash-protection -Wformat
-Werror=format-security -fcf-protection -fPIC
-fno-extended-identifiers -c -o libbitcoin_server_a-noui.o `test -f
'noui.cpp' || echo './'`noui.cpp
make[4]: *** [Makefile:12078: libbitcoin_server_a-net.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[4]: Leaving directory '/<<PKGBUILDDIR>>/src'
make[3]: *** [Makefile:20568: all-recursive] Error 1
make[3]: Leaving directory '/<<PKGBUILDDIR>>/src'
make[2]: *** [Makefile:815: all-recursive] Error 1
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
dh_auto_build: error: make -j6 returned exit code 2
make[1]: *** [debian/rules:32: override_dh_auto_build] Error 25
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:12: build-arch] Error 2
dpkg-buildpackage: error: debian/rules build-arch subprocess returned
exit status 2

```
The full buildd log is here:
https://buildd.debian.org/status/fetch.php?pkg=litecoin&arch=amd64&ver=0.21.3-1%2Bb2&stamp=1730765178&raw=0

My solution to this issue:
According to the error message, the issue lies in the call to the
UPNP_GetValidIGD function, indicating an insufficient number of arguments.
In newer versions, the function signature of UPNP_GetValidIGD has been
updated with additional parameters, such as char *errorMsg and int
errorMsgLen. I resolved the issue by adding the required parameters for the
new version, while also incorporating conditional checks to ensure
compatibility with older versions of miniupnpc.I have tested this solution
locally,and it works well.The debpatch is in the attachment.Please let me
know whether this solution can be accepted.

Gui-Yue
Best regards

Attachment: fix_litecoin_build_failed.patch
Description: Binary data

Reply via email to