Package: xserver-xorg-video-vesa Version: 1:2.6.0-1 Severity: serious Tags: ftbfs Justification: fails to build from source (but built successfully in the past)
Hi, xserver-xorg-video-vesa fails to *cross* build from source for e.g. riscv64 with the following failure: | make[3]: Entering directory '/<<PKGBUILDDIR>>/build/src' | /bin/bash ../libtool --tag=CC --mode=compile riscv64-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../../src -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/xorg -fvisibility=hidden -I/usr/include/pixman-1 -I/usr/include/X11/dri -I/usr/include/libdrm -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -c -o vesa.lo ../../src/vesa.c | libtool: compile: riscv64-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../../src -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/xorg -fvisibility=hidden -I/usr/include/pixman-1 -I/usr/include/X11/dri -I/usr/include/libdrm -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -c ../../src/vesa.c -fPIC -DPIC -o .libs/vesa.o | ../../src/vesa.c: In function 'VESAValidMode': | ../../src/vesa.c:415:18: warning: passing argument 1 of 'free' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] | 415 | free(mode->name); | | ~~~~^~~~~~ | In file included from /usr/include/xorg/os.h:54, | from /usr/include/xorg/misc.h:119, | from /usr/include/xorg/xf86str.h:37, | from /usr/include/xorg/xf86.h:44, | from ../../src/vesa.h:34, | from ../../src/vesa.c:48: | /usr/riscv64-linux-gnu/include/stdlib.h:687:25: note: expected 'void *' but argument is of type 'const char *' | 687 | extern void free (void *__ptr) __THROW; | | ~~~~~~^~~~~ | ../../src/vesa.c: In function 'VESALoadPalette': | ../../src/vesa.c:1437:12: error: implicit declaration of function 'outb' [-Wimplicit-function-declaration] | 1437 | outb(pVesa->ioBase + VGA_DAC_WRITE_ADDR, idx); | | ^~~~ | ../../src/vesa.c:1431:18: error: implicit declaration of function 'inb' [-Wimplicit-function-declaration] | 1431 | (void)inb(pVesa->ioBase + VGA_IOBASE_COLOR + VGA_IN_STAT_1_OFFSET); \ | | ^~~ | ../../src/vesa.c:1438:12: note: in expansion of macro 'VESADACDelay' | 1438 | VESADACDelay(); | | ^~~~~~~~~~~~ | make[3]: *** [Makefile:490: vesa.lo] Error 1 | make[3]: Leaving directory '/<<PKGBUILDDIR>>/build/src' | make[2]: *** [Makefile:445: all-recursive] Error 1 | make[2]: Leaving directory '/<<PKGBUILDDIR>>/build' | make[1]: *** [Makefile:377: all] Error 2 | make[1]: Leaving directory '/<<PKGBUILDDIR>>/build' | dh_auto_build: error: cd build && make -j1 returned exit code 2 | make: *** [debian/rules:25: build-arch] Error 25 | dpkg-buildpackage: error: debian/rules build-arch subprocess returned exit status 2 Now a cross build failure is not a FTBFS, but if you look at old build logs for e.g. riscv64 and arm64 on buildd.d.o, you can see: https://buildd.debian.org/status/fetch.php?pkg=xserver-xorg-video-vesa&arch=arm64&ver=1%3A2.6.0-1&stamp=1699449242&raw=0 | ../../src/vesa.c: In function ‘VESALoadPalette’: | ../../src/vesa.c:1437:12: warning: implicit declaration of function ‘outb’ [-Wimplicit-function-declaration] | 1437 | outb(pVesa->ioBase + VGA_DAC_WRITE_ADDR, idx); | | ^~~~ | ../../src/vesa.c:1431:18: warning: implicit declaration of function ‘inb’ [-Wimplicit-function-declaration] | 1431 | (void)inb(pVesa->ioBase + VGA_IOBASE_COLOR + VGA_IN_STAT_1_OFFSET); \ | | ^~~ So, this implicit declaration already happened earlier and what changed now is that it became an error. Indeed, reproducible builds are seeing this for native builds on arm64: https://tests.reproducible-builds.org/debian/rbuild/unstable/arm64/xserver-xorg-video-vesa_2.6.0-1.rbuild.log.gz So this is a native !x86 FTBFS and thus rc. Helmut