Skip to content

Transmission 包太老,miniupnpc 编译不了 #14050

@rex5652

Description

@rex5652

详细叙述

旧版的 Transmission:当前编译流拉取的是非常老旧的 transmission v2.94
新版的 miniupnpc:当前 OpenWrt 源码里的 miniupnpc更新到了较新的版本(v2.2.8 或更高)
新版的 miniupnpc 修改了 UPNP_GetValidIGD 函数的定义(增加了参数数量以区分私有网络连接)。而旧版的 Transmission 还在按老方法调用它,导致编译器直接抛出 error: too few arguments to function 'UPNP_GetValidIGD'(函数调用参数太少)

建议使用Transmission 4.0.6

重复 issue

  • 没有类似的 issue

具体型号

x86_64

详细日志

make[5]: Entering directory '/home/runner/work/OpenWrt/OpenWrt/openwrt/build_dir/target-x86_64_musl/transmission-openssl/transmission-2.94/libtransmission'
x86_64-openwrt-linux-musl-gcc -DPACKAGE_NAME="transmission" -DPACKAGE_TARNAME="transmission" -DPACKAGE_VERSION="2.94" -DPACKAGE_STRING="transmission\ 2.94" -DPACKAGE_BUGREPORT="[https://github.com/transmission/transmission](https://github.com/transmission/transmission/)" -DPACKAGE_URL="" -DPACKAGE="transmission" -DVERSION="2.94" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=".libs/" -DSTDC_HEADERS=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_STDBOOL_H=1 -DHAVE_ICONV=1 -DHAVE_PREAD=1 -DHAVE_PWRITE=1 -DHAVE_LRINTF=1 -DHAVE_STRLCPY=1 -DHAVE_DAEMON=1 -DHAVE_DIRNAME=1 -DHAVE_BASENAME=1 -DHAVE_STRCASECMP=1 -DHAVE_LOCALTIME_R=1 -DHAVE_POSIX_FALLOCATE=1 -DHAVE_MEMMEM=1 -DHAVE_STRSEP=1 -DHAVE_STRTOLD=1 -DHAVE_SYSLOG=1 -DHAVE_VALLOC=1 -DHAVE_GETPAGESIZE=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_STATVFS=1 -DHAVE_MKDTEMP=1 -DHAVE_USELOCALE=1 -DHAVE_PTHREAD=1 -DHAVE_GETMNTENT=1 -DHAVE_DECL_POSIX_FADVISE=1 -DHAVE_POSIX_FADVISE=1 -DHAVE_SYS_STATVFS_H=1 -DWITH_UTP=1 -DSYSTEM_MINIUPNP=1 -DTR_LIGHTWEIGHT=1 -I. -I.. -D__TRANSMISSION__ -DPACKAGE_DATA_DIR=""/usr/share"" -DWITH_INOTIFY -I/home/runner/work/OpenWrt/OpenWrt/openwrt/staging_dir/toolchain-x86_64_gcc-13.3.0_musl/usr/include -I/home/runner/work/OpenWrt/OpenWrt/openwrt/staging_dir/toolchain-x86_64_gcc-13.3.0_musl/include -I/home/runner/work/OpenWrt/OpenWrt/openwrt/staging_dir/toolchain-x86_64_gcc-13.3.0_musl/include/fortify -DNDEBUG -I../third-party/dht -I../third-party/libb64 -I../third-party/ -I/home/runner/work/OpenWrt/OpenWrt/openwrt/staging_dir/target-x86_64_musl/usr/include -I/home/runner/work/OpenWrt/OpenWrt/openwrt/staging_dir/target-x86_64_musl/usr/include -I/home/runner/work/OpenWrt/OpenWrt/openwrt/staging_dir/target-x86_64_musl/usr/include -I/home/runner/work/OpenWrt/OpenWrt/openwrt/staging_dir/target-x86_64_musl/usr/include -Os -pipe -fno-caller-saves -fno-plt -fhonour-copts -fmacro-prefix-map=/home/runner/work/OpenWrt/OpenWrt/openwrt/build_dir/target-x86_64_musl/transmission-openssl/transmission-2.94=transmission-2.94 -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -ffunction-sections -fdata-sections -flto -std=gnu99 -ggdb3 -Wall -W -Wpointer-arith -Wformat-security -Wundef -Wcast-align -Wstrict-prototypes -Wmissing-declarations -Wmissing-format-attribute -Wredundant-decls -Wnested-externs -Wunused-parameter -Wwrite-strings -Winline -Wfloat-equal -Wextra -Winit-self -Wvariadic-macros -MT upnp.o -MD -MP -MF .deps/upnp.Tpo -c -o upnp.o upnp.c
In file included from upnp.c:15:
/home/runner/work/OpenWrt/OpenWrt/openwrt/staging_dir/target-x86_64_musl/usr/include/miniupnpc/upnpcommands.h:397:37: error: unknown type name 'size_t'
397 | size_t desclen,
| ^~~~~~
/home/runner/work/OpenWrt/OpenWrt/openwrt/staging_dir/target-x86_64_musl/usr/include/miniupnpc/upnpcommands.h:26:1: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
25 | #include "miniupnpctypes.h"
+++ |+#include <stddef.h>
26 |
/home/runner/work/OpenWrt/OpenWrt/openwrt/staging_dir/target-x86_64_musl/usr/include/miniupnpc/upnpcommands.h:469:36: error: unknown type name 'size_t'
469 | size_t desclen,
| ^~~~~~
/home/runner/work/OpenWrt/OpenWrt/openwrt/staging_dir/target-x86_64_musl/usr/include/miniupnpc/upnpcommands.h:469:36: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
/home/runner/work/OpenWrt/OpenWrt/openwrt/staging_dir/target-x86_64_musl/usr/include/miniupnpc/upnpcommands.h:472:36: error: unknown type name 'size_t'
472 | size_t rHostlen,
| ^~~~~~
/home/runner/work/OpenWrt/OpenWrt/openwrt/staging_dir/target-x86_64_musl/usr/include/miniupnpc/upnpcommands.h:472:36: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
upnp.c: In function 'tr_upnpPulse':
upnp.c:222:13: error: too few arguments to function 'UPNP_GetValidIGD'
222 | if (UPNP_GetValidIGD (devlist, &handle->urls, &handle->data,
| ^~~~~~~~~~~~~~~~
In file included from upnp.c:14:
/home/runner/work/OpenWrt/OpenWrt/openwrt/staging_dir/target-x86_64_musl/usr/include/miniupnpc/miniupnpc.h:243:1: note: declared here
243 | UPNP_GetValidIGD(struct UPNPDev * devlist,
| ^~~~~~~~~~~~~~~~
make[5]: *** [Makefile:1253: upnp.o] Error 1
make[5]: Leaving directory '/home/runner/work/OpenWrt/OpenWrt/openwrt/build_dir/target-x86_64_musl/transmission-openssl/transmission-2.94/libtransmission'
make[4]: *** [Makefile:510: all-recursive] Error 1
make[4]: Leaving directory '/home/runner/work/OpenWrt/OpenWrt/openwrt/build_dir/target-x86_64_musl/transmission-openssl/transmission-2.94'
make[3]: *** [Makefile:180: /home/runner/work/OpenWrt/OpenWrt/openwrt/build_dir/target-x86_64_musl/transmission-openssl/transmission-2.94/.built] Error 2
make[3]: Leaving directory '/home/runner/work/OpenWrt/OpenWrt/openwrt/feeds/packages/net/transmission'
time: package/feeds/packages/transmission/openssl/compile#0.13#0.17#0.29
ERROR: package/feeds/packages/transmission failed to build (build variant: openssl).
make[2]: *** [package/Makefile:171: package/feeds/packages/transmission/compile] Error 1
make[2]: Leaving directory '/home/runner/work/OpenWrt/OpenWrt/openwrt'
make[1]: *** [package/Makefile:165: /home/runner/work/OpenWrt/OpenWrt/openwrt/staging_dir/target-x86_64_musl/stamp/.package_compile] Error 2
make[1]: Leaving directory '/home/runner/work/OpenWrt/OpenWrt/openwrt'
make: *** [/home/runner/work/OpenWrt/OpenWrt/openwrt/include/toplevel.mk:231: world] Error 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions