edannenberg / kubler

A generic, extendable build orchestrator.
BSD 2-Clause "Simplified" License
155 stars 40 forks source link

cannot build builders #252

Open xdbgjhjreedwef opened 5 months ago

xdbgjhjreedwef commented 5 months ago

While running kubler build -C larry -v i get the following error (After kubler clean, kubler update): kubler build -C larry -v

»»»»»[init]» generate build graph
»»» required engines:    docker
»»» required stage3:     stage3-amd64-hardened-nomultilib-openrc
»»» required builders:   kubler/bob
»»» build sequence:      larry/figlet larry/openldap
»[✔]»[init]» done.
»»»»»[portage]» download portage snapshot
gpg: Signature made Fri Feb 16 07:56:40 2024 +07
gpg:                using RSA key E1D6ABB63BFCFB4BA02FDF1CEC590EEAC9189250
gpg: Good signature from "Gentoo ebuild repository signing key (Automated Signing Key) <infrastructure@gentoo.org>" [unknown]
gpg:                 aka "Gentoo Portage Snapshot Signing Key (Automated Signing Key)" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: DCD0 5B71 EAB9 4199 527F  44AC DB6B 8C1F 96D8 BF6D
     Subkey fingerprint: E1D6 ABB6 3BFC FB4B A02F  DF1C EC59 0EEA C918 9250
»»»»»[portage]» bootstrap kubler-gentoo/portage image
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
            Install the buildx component to build images with BuildKit:
            https://docs.docker.com/go/buildx/

Sending build context to Docker daemon  45.69MB
Step 1/9 : FROM busybox:latest AS builder
 ---> 3f57d9401f8d
Step 2/9 : COPY portage-20240216.tar.xz /
 ---> Using cache
 ---> addad5b62cb2
Step 3/9 : COPY patches/ /patches
 ---> Using cache
 ---> 15c2eebd8020
Step 4/9 : RUN set -x &&     mkdir -p /var/db/repos/ &&     xzcat /portage-20240216.tar.xz | tar -xf - -C /var/db/repos &&     mv /var/db/repos/portage /var/db/repos/gentoo &&     mkdir -p /var/db/repos/gentoo/metadata &&     rm /portage-20240216.tar.xz &&     cd /var/db/repos/gentoo &&     patch -p1 -i /patches/0002* &&     patch -p1 -i /patches/0003* &&     patch -p1 -i /patches/0004*
 ---> Running in 80f5e7c0706f
+ mkdir -p /var/db/repos/
+ xzcat /portage-20240216.tar.xz
+ tar -xf - -C /var/db/repos

+ mv /var/db/repos/portage /var/db/repos/gentoo
+ mkdir -p /var/db/repos/gentoo/metadata
+ rm /portage-20240216.tar.xz
+ cd /var/db/repos/gentoo
+ patch -p1 -i /patches/0002-Revert-user-info.eclass-Fixing-user-group-creation-w.patch
patching file eclass/user-info.eclass
Hunk 2 FAILED 44/43.
                # lookup by uid/gid
                local opts
                if [[ ${key} == [[:digit:]]* ]] ; then
-                       [[ ${db} == "user" ]] && opts=( -u ) || opts=( -g )
+                       [[ ${db} == "user" ]] && opts="-u" || opts="-g"
                fi

-               # Handle different ROOT
-               [[ -n ${ROOT} ]] && opts+=( -R "${ROOT}" )
-
                pw show ${db} ${opts} "${key}" -q
                ;;
        *-openbsd*)
-               grep "${key}:\*:" "${EROOT}/etc/${db}"
+               grep "${key}:\*:" /etc/${db}
                ;;
        *)
-               # getent does not support -R option, if we are working on a different
-               # ROOT than /, fallback to grep technique.
-               if [[ -z ${ROOT} ]]; then
-                       # ignore nscd output if we're not running as root
-                       type -p nscd >/dev/null && nscd -i "${db}" 2>/dev/null
-                       getent "${db}" "${key}"
-               else
-                       if [[ ${key} =~ ^[[:digit:]]+$ ]]; then
-                               grep -E "^([^:]*:){2}${key}" "${ROOT}/etc/${db}"
-                       else
-                               grep "^${key}:" "${ROOT}/etc/${db}"
-                       fi
-               fi
+               # ignore nscd output if we're not running as root
+               type -p nscd >/dev/null && nscd -i "${db}" 2>/dev/null
+               getent "${db}" "${key}"
                ;;
        esac
 }
The command '/bin/sh -c set -x &&     mkdir -p /var/db/repos/ &&     xzcat /portage-20240216.tar.xz | tar -xf - -C /var/db/repos &&     mv /var/db/repos/portage /var/db/repos/gentoo &&     mkdir -p /var/db/repos/gentoo/metadata &&     rm /portage-20240216.tar.xz &&     cd /var/db/repos/gentoo &&     patch -p1 -i /patches/0002* &&     patch -p1 -i /patches/0003* &&     patch -p1 -i /patches/0004*' returned a non-zero code: 1
»[✘]»[portage]» fatal: Failed to build kubler-gentoo/portage:20240214
»[✘]»[portage]» fatal: /home/user/.kubler/tmp is not a directory

Might be related to https://github.com/edannenberg/kubler/issues/216

ctr49 commented 5 months ago

You may need to use the master version of kubler (or -9999 when running in Gentoo) as the required versions of the patches are not in the latest release.

xdbgjhjreedwef commented 5 months ago

Thanks, master version works.