php: 7.4.21-fpm-alpine3.14 missing linux/ppc64le and linux/s390x

Using 7.4.21-fpm-alpine3.14 linux/ppc64le and linux/s390x are missing.

7.4.20-fpm-alpine3.13

7420A

7.4.21-fpm-alpine3.14

7421B

Can we expect them to get build or won’t this happen anymore for these architectures? 🧐

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 18 (11 by maintainers)

Most upvoted comments

@nirmannarang @anujajakhade FYI; perhaps one of you has ideas what’s different here for s390x? FWIW, the faccessat2 has been on the “allow” list in docker’s seccomp profile since docker 20.10.0 (see moby/moby#41353), so seccomp shouldn’t be blocking it.

Will take a look.

Confirmed, all is well – builds are in progress, but there are quite a few, so it’s going to be a bit. 😅

😕

$ date
Fri 13 Aug 2021 09:51:49 AM PDT

$ dpkg -l | grep libseccomp
ii  libseccomp2:s390x              2.4.1-2~bpo10+1              s390x        high level interface to Linux seccomp filter

$ cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

$ docker version
Client:
 Version:           20.10.7
 API version:       1.41
 Go version:        go1.13.6
 Git commit:        20.10.7-1~deb10u0
 Built:             Tue Jul 20 03:36:24 2021
 OS/Arch:           linux/s390x
 Context:           default
 Experimental:      true

Server:
 Engine:
  Version:          20.10.7
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.6
  Git commit:       20.10.7-2~deb10u0
  Built:            Mon Jul 19 20:13:31 2021
  OS/Arch:          linux/s390x
  Experimental:     false
 containerd:
  Version:          1.5.4-1~deb10u0
  GitCommit:        
 runc:
  Version:          1.0.1
  GitCommit:        
 docker-init:
  Version:          0.19.0
  GitCommit:        

$ docker pull alpine:3.14
3.14: Pulling from library/alpine
Digest: sha256:eb3e4e175ba6d212ba1d6e04fc0782916c08e1c9d7b45892e9796141b1d379ae
Status: Image is up to date for alpine:3.14
docker.io/library/alpine:3.14

$ docker run -it --rm -w /tmp alpine:3.14
/tmp # apk add --no-cache make strace
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/s390x/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/s390x/APKINDEX.tar.gz
(1/2) Installing make (4.3-r0)
(2/2) Installing strace (5.12-r0)
Executing busybox-1.33.1-r3.trigger
OK: 7 MiB in 16 packages
/tmp # echo -e 'all:\n\techo yay' > Makefile
/tmp # make
echo yay
make: echo: Operation not permitted
make: *** [Makefile:2: all] Error 127
/tmp # strace make
execve("/usr/bin/make", ["make"], 0x3ffdecff280 /* 6 vars */) = 0
...
munmap(0x3ffbd9ce000, 28672)            = 0
rt_sigprocmask(SIG_BLOCK, [HUP INT QUIT TERM XCPU XFSZ], NULL, 8) = 0
faccessat2(AT_FDCWD, "/usr/local/sbin/echo", X_OK, AT_EACCESS) = -1 EPERM (Operation not permitted)
faccessat2(AT_FDCWD, "/usr/local/bin/echo", X_OK, AT_EACCESS) = -1 EPERM (Operation not permitted)
faccessat2(AT_FDCWD, "/usr/sbin/echo", X_OK, AT_EACCESS) = -1 EPERM (Operation not permitted)
faccessat2(AT_FDCWD, "/usr/bin/echo", X_OK, AT_EACCESS) = -1 EPERM (Operation not permitted)
faccessat2(AT_FDCWD, "/sbin/echo", X_OK, AT_EACCESS) = -1 EPERM (Operation not permitted)
faccessat2(AT_FDCWD, "/bin/echo", X_OK, AT_EACCESS) = -1 EPERM (Operation not permitted)
writev(2, [{iov_base="", iov_len=0}, {iov_base="make: echo: Operation not permit"..., iov_len=36}], 2make: echo: Operation not permitted
) = 36
rt_sigprocmask(SIG_UNBLOCK, [HUP INT QUIT TERM XCPU XFSZ], NULL, 8) = 0
writev(2, [{iov_base="", iov_len=0}, {iov_base="make: *** [Makefile:2: all] Erro"..., iov_len=38}], 2make: *** [Makefile:2: all] Error 127
) = 38
rt_sigprocmask(SIG_BLOCK, [HUP INT QUIT TERM XCPU XFSZ], NULL, 8) = 0
munmap(0x3ffbd9cd000, 4096)             = 0
rt_sigprocmask(SIG_UNBLOCK, [HUP INT QUIT TERM XCPU XFSZ], NULL, 8) = 0
chdir("/tmp")                           = 0
close(1)                                = 0
exit_group(2)                           = ?
+++ exited with 2 +++

$ date
Fri Aug 13 16:54:05 UTC 2021

$ dpkg -l | grep libseccomp
ii  libseccomp2:s390x             2.5.1-1                      s390x        high level interface to Linux seccomp filter

$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

$ docker version
Client:
 Version:           20.10.7
 API version:       1.41
 Go version:        go1.15.9
 Git commit:        20.10.7-1~deb11u0
 Built:             Tue Jul 20 03:45:31 2021
 OS/Arch:           linux/s390x
 Context:           default
 Experimental:      true

Server:
 Engine:
  Version:          20.10.7
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.15.9
  Git commit:       20.10.7-2~deb11u0
  Built:            Mon Jul 19 20:13:31 2021
  OS/Arch:          linux/s390x
  Experimental:     false
 containerd:
  Version:          1.5.4-1~deb11u0
  GitCommit:        
 runc:
  Version:          1.0.1
  GitCommit:        
 docker-init:
  Version:          0.19.0
  GitCommit:        

$ docker pull alpine:3.14
3.14: Pulling from library/alpine
Digest: sha256:eb3e4e175ba6d212ba1d6e04fc0782916c08e1c9d7b45892e9796141b1d379ae
Status: Image is up to date for alpine:3.14
docker.io/library/alpine:3.14

$ docker run -it --rm -w /tmp alpine:3.14
/tmp # apk add --no-cache make strace
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/s390x/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/s390x/APKINDEX.tar.gz
(1/2) Installing make (4.3-r0)
(2/2) Installing strace (5.12-r0)
Executing busybox-1.33.1-r3.trigger
OK: 7 MiB in 16 packages
/tmp # echo -e 'all:\n\techo yay' > Makefile
/tmp # make
echo yay
make: echo: Operation not permitted
make: *** [Makefile:2: all] Error 127
/tmp # strace make
execve("/usr/bin/make", ["make"], 0x3ffd947f930 /* 6 vars */) = 0
...
munmap(0x3ffbae4e000, 28672)            = 0
rt_sigprocmask(SIG_BLOCK, [HUP INT QUIT TERM XCPU XFSZ], NULL, 8) = 0
faccessat2(AT_FDCWD, "/usr/local/sbin/echo", X_OK, AT_EACCESS) = -1 EPERM (Operation not permitted)
faccessat2(AT_FDCWD, "/usr/local/bin/echo", X_OK, AT_EACCESS) = -1 EPERM (Operation not permitted)
faccessat2(AT_FDCWD, "/usr/sbin/echo", X_OK, AT_EACCESS) = -1 EPERM (Operation not permitted)
faccessat2(AT_FDCWD, "/usr/bin/echo", X_OK, AT_EACCESS) = -1 EPERM (Operation not permitted)
faccessat2(AT_FDCWD, "/sbin/echo", X_OK, AT_EACCESS) = -1 EPERM (Operation not permitted)
faccessat2(AT_FDCWD, "/bin/echo", X_OK, AT_EACCESS) = -1 EPERM (Operation not permitted)
writev(2, [{iov_base="", iov_len=0}, {iov_base="make: echo: Operation not permit"..., iov_len=36}], 2make: echo: Operation not permitted
) = 36
rt_sigprocmask(SIG_UNBLOCK, [HUP INT QUIT TERM XCPU XFSZ], NULL, 8) = 0
writev(2, [{iov_base="", iov_len=0}, {iov_base="make: *** [Makefile:2: all] Erro"..., iov_len=38}], 2make: *** [Makefile:2: all] Error 127
) = 38
rt_sigprocmask(SIG_BLOCK, [HUP INT QUIT TERM XCPU XFSZ], NULL, 8) = 0
munmap(0x3ffbae4d000, 4096)             = 0
rt_sigprocmask(SIG_UNBLOCK, [HUP INT QUIT TERM XCPU XFSZ], NULL, 8) = 0
chdir("/tmp")                           = 0
close(1)                                = 0
exit_group(2)                           = ?
+++ exited with 2 +++

Both of these were on:

$ uname -a
Linux lxdeb05 4.19.0-9-s390x #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) s390x GNU/Linux

I wasn’t able to fit an s390x server in my closet, so not sure if it adds anything to the table, but I can confirm it works on Docker Desktop for Mac (using QEMU emulation), or at least, it prints yay;

docker run -it --rm --platform=linux/s390x -w /tmp alpine:3.14
Unable to find image 'alpine:3.14' locally
3.14: Pulling from library/alpine
625f57562315: Pull complete
Digest: sha256:eb3e4e175ba6d212ba1d6e04fc0782916c08e1c9d7b45892e9796141b1d379ae
Status: Downloaded newer image for alpine:3.14
/tmp # cat /etc/os-release
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.14.1
PRETTY_NAME="Alpine Linux v3.14"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://bugs.alpinelinux.org/"
/tmp # uname -a
Linux f4b3c3366135 5.10.25-linuxkit #1 SMP Tue Mar 23 09:27:39 UTC 2021 s390x Linux
/tmp # apk add --no-cache make strace
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/s390x/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/s390x/APKINDEX.tar.gz
(1/2) Installing make (4.3-r0)
(2/2) Installing strace (5.12-r0)
Executing busybox-1.33.1-r3.trigger
OK: 7 MiB in 16 packages
/tmp # echo -e 'all:\n\techo yay' > Makefile
/tmp # make
echo yay
yay
/tmp # strace make
/usr/bin/strace: test_ptrace_get_syscall_info: PTRACE_TRACEME: Function not implemented
/usr/bin/strace: ptrace(PTRACE_TRACEME, ...): Function not implemented
/usr/bin/strace: PTRACE_SETOPTIONS: Function not implemented
/usr/bin/strace: detach: waitpid(37): No child process
/usr/bin/strace: Process 37 detached

Confirmed, apparently ppc64le has been fixed since this issue was filed! All those tags are built/pushed successfully. 😄

@nirmannarang @anujajakhade FYI; perhaps one of you has ideas what’s different here for s390x? FWIW, the faccessat2 has been on the “allow” list in docker’s seccomp profile since docker 20.10.0 (see https://github.com/moby/moby/pull/41353), so seccomp shouldn’t be blocking it.

Good news all around. I would really love to know what fixed it where, if anyone has more info!

@anujajakhade sorry I can’t test this, I only use the Docker image to build multi-arch Docker images 😃