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

Reply via email to