Package: clisp Version: 1:2.49.20180218+really2.49.92-3+b4 Severity: serious Tags: upstream ftbfs Justification: fails to build from source (but built successfully in the past)
Dear Maintainer, Building clisp package in an OBS instance FTBFS because of the following test failure: https://salsa.debian.org/common-lisp-team/clisp/-/blob/0a8137b7caa777e1c08e06fa7161784f947fa5af/tests/streams.tst#L1290 (let ((*reopen-open-file* nil)) ; stdout can be a file, it will be detected! (with-open-file (copy s :direction :output) (streamp copy))) T Build error log shows the following output for that test: $ cat usr/src/packages/BUILD/debian/build/tests/*.erg Form: (LET ((*REOPEN-OPEN-FILE* NIL)) (WITH-OPEN-FILE (COPY S :DIRECTION :OUTPUT) (STREAMP COPY))) CORRECT: T CLISP : ERROR OS-FILE-ERROR(13): Permission denied OUT: "[OS-FILE-ERROR]: OS-FILE-ERROR(13): Permission denied " That Lisp form tries to open the stdout file descriptor, but in this case it's failing with EACCES (Permission denied). AFAICS, running `strace` on the test shows that on the OBS instance, `stdout` is piped, causing the access issue: [ 148s] lstat("/proc/2867342/fd/2", {st_mode=S_IFLNK|0300, st_size=64, ...}) = 0 [ 148s] readlink("/proc/2867342/fd/2", "pipe:[4065697]", 64) = 14 [ 148s] stat("/proc/2867342/fd/2", {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 [ 148s] openat(AT_FDCWD, "/proc/2867342/fd/2", O_WRONLY|O_CREAT|O_TRUNC, 0644) = -1 EACCES (Permission denied) However, on a "local" build, `stdout` going directly to the pseudo terminal doesn't raise any issue: lstat("/proc/2901662/fd/2", {st_mode=S_IFLNK|0700, st_size=64, ...}) = 0 readlink("/proc/2901662/fd/2", "/dev/pts/1", 64) = 10 readlink("/dev", 0x7fff7e9fbd30, 4095) = -1 EINVAL (Invalid argument) readlink("/dev/pts", 0x7fff7e9fbd30, 4095) = -1 EINVAL (Invalid argument) lstat("/dev/pts/1", {st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0x1), ...}) = 0 stat("/dev/pts/1", {st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0x1), ...}) = 0 openat(AT_FDCWD, "/dev/pts/1", O_WRONLY|O_CREAT|O_TRUNC, 0644) = 10 This seems to be related to how output fds are handled. AFAICS there's a difference between these two cases, see: https://salsa.debian.org/common-lisp-team/clisp/-/blob/0a8137b7caa777e1c08e06fa7161784f947fa5af/src/pathname.d#L5426 Is this an issue and should be checked? What's the expected behaviour on these cases? Thanks in advance. Regards, Ariel D'Alessandro -- System Information: Debian Release: 11.0 APT prefers testing-security APT policy: (500, 'testing-security'), (500, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 5.10.0-7-amd64 (SMP w/8 CPU threads) Kernel taint flags: TAINT_FIRMWARE_WORKAROUND, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages clisp depends on: ii libc6 2.31-12 ii libcrypt1 1:4.4.18-4 ii libffcall1b 2.2-1 ii libreadline8 8.1-1 ii libsigsegv2 2.13-1 ii libtinfo6 6.2+20201114-2 ii libunistring2 0.9.10-4 clisp recommends no packages. Versions of packages clisp suggests: pn clisp-doc <none> pn clisp-module-berkeley-db <none> pn clisp-module-clx <none> pn clisp-module-dbus <none> pn clisp-module-gdbm <none> pn clisp-module-pcre <none> pn clisp-module-postgresql <none> pn clisp-module-zlib <none> ii gdb 10.1-1.7 pn slime <none> -- no debconf information