mudler / luet

:package: :whale: 0-dependency Container-based Package Manager using SAT solver and QLearning
https://luet.io
GNU General Public License v3.0
254 stars 24 forks source link

Local build with luet fails #288

Closed msdobrescu closed 2 years ago

msdobrescu commented 2 years ago

Luet version:

luet version 0.22.7-gbff45b9bd953b46dda8498495d5d6e1b4575fe8c 2022-01-09

CPU architecture, OS, and Version:

Linux USC 5.10.82-mocaccino #5.10.82-Mocaccino SMP Mon Nov 29 15:58:59 UTC 2021 x86_64 11th Gen Intel(R) Core(TM) i7-11700K @ 3.60GHz GenuineIntel GNU/Linux

Describe the bug

Local build of a package fails.

To Reproduce

Tried to test a build of a package in the community repository:

luet build --only-target-package --pull-repository quay.io/mocaccinocache/desktop-stable --pull --image-repository quay.io/mocaccino/mocaccino-community --from-repositories --no-spinner --live-output --tree $PWD/packages apps/some-package

Or

luet build --only-target-package --pull-repository quay.io/mocaccino/desktop-stable --pull --image-repository quay.io/mocaccino/mocaccino-community --from-repositories --no-spinner --live-output --tree $PWD/packages apps/some-package```

Those fail with:

 WARNING   errors while loading trees from repositories while syncronizing repository: While processing repository.meta.yaml: open /tmp/tmpluet/metafs56417149/repository.meta.yaml: no such file or directory; Error on walk path /tmp/tmpluet/mocaccino-desktop-stable3202136784/tree: lstat /tmp/tmpluet/mocaccino-desktop-stable3202136784/tree: no such file or directory; failed while getting: compilertree; Error on walk path /tmp/tmpluet/mocaccino-desktop-stable1667633112/tree: lstat /tmp/tmpluet/mocaccino-desktop-stable1667633112/tree: no such file or directory
 INFO   Building in /run/media/msdobrescu/development/github.com/mocaccinoOS/community-repository/build
 INFO   ๐Ÿ“ฆ  Compiling apps/cdrtools-3.02_alpha09-r3 .... โ˜• 
  ERROR    Error: failed querying hashtree: while computing hash buildspecs: Candidate not found: No versions found for: layers/system-x->=0
  ERROR    Bailing out

Expected behavior

Logs

luet.log

Additional context

/etc/luet/luet.yaml

general:
  debug: false
  spinner_charset: 11
  color: true
  enable_emoji: true
  concurrency: 3
system:
  database_path: "/var/luet/db"
  database_engine: "boltdb"
  tmpdir_base: "/var/tmp/luet"
repos_confdir:
  - /etc/luet/repos.conf.d
mudler commented 2 years ago

that's quite weird, as the CI does little or no big difference while building, are you running the command from the repository root? Can you try in an environment without a /etc/luet/luet.yaml file and see if you can reproduce?

msdobrescu commented 2 years ago

I do run it from the community-repository root. What do you mean by an environment without a /etc/luet/luet.yaml file?

msdobrescu commented 2 years ago

luet.log A debug log.

msdobrescu commented 2 years ago

Tried installing from scratch on KDE Neon, it works. What is wrong on mOS or on my system? How could I tell?

msdobrescu commented 2 years ago

Weirdly, seems to work better after restarting the system.

But, still fails:

 INFO   Downloaded mocaccino-kernel-repository-20211120.metadata.yaml of 0.00 MB ( 0.01 MiB/s )
 WARNING   errors while loading trees from repositories while syncronizing repository: While processing repository.meta.yaml: open /tmp/tmpluet/metafs3845102497/repository.meta.yaml: no such file or directory; Error on walk path /tmp/tmpluet/mocaccino-desktop-stable4042445891/tree: lstat /tmp/tmpluet/mocaccino-desktop-stable4042445891/tree: no such file or directory
 INFO   Building in /run/media/admius/LIBRARY/development/github.com/mocaccinoOS/community-repository/build
 INFO   ๐Ÿ“ฆ  Compiling apps/cdrtools-3.02_alpha09-r3 .... โ˜• 
 INFO   ๐ŸŒณ  Build dependencies for apps/cdrtools-3.02_alpha09-r3
 INFO    โ†ช  layers/gentoo-portage-0.20220105 ๐Ÿƒ 
 INFO    โ†ช  layers/system-x-0.20220113 ๐Ÿƒ 
 INFO   ๐Ÿ“ฆ  1/2 apps/cdrtools-3.02_alpha09-r3 โค‘ ๐Ÿ”จ  build layers/gentoo-portage-0.20220105  starts
 INFO   >โžฟ  final images< Generating a parent image from final packages
 INFO   >โžฟ  final images< Searching existing image with hash 1daebffcbae7b9ff448bc9985a710b83
 INFO   >โžฟ  final images< Image not found. Generating image join with hash  1daebffcbae7b9ff448bc9985a710b83
 INFO   >โžฟ  final images< โ†ช  gentoo/stage3->=0.1 ๐Ÿƒ 
 INFO   >โžฟ  final images< 1/1 โค‘ ๐Ÿ”จ  build gentoo/stage3->=0.1 compilation starts
 INFO   ๐Ÿ“ฆ  Compiling gentoo/stage3-0.20211219 .... โ˜• 
 INFO   ๐Ÿ“ฆ  gentoo/stage3-0.20211219 ๐Ÿ‹  Generating 'builder' image from quay.io/mocaccino/extra:latest as luet/cache:builder-501e602d0e2c2d2c554efa1727bc376f with prelude steps
 INFO   ๐Ÿ‹  Building image luet/cache:builder-501e602d0e2c2d2c554efa1727bc376f
 INFO   Sending build context to Docker daemon  6.144kB
 INFO   Step 1/10 : FROM quay.io/mocaccino/extra:latest
 INFO    ---> c4ae8270d228
       Step 2/10 : COPY . /luetbuild
 INFO   
 INFO    ---> Using cache
        ---> dd329622372a
 INFO   Step 3/10 : WORKDIR /luetbuild
 INFO    ---> Using cache
        ---> da424618f25f
 INFO   Step 4/10 : ENV PACKAGE_NAME=stage3
 INFO    ---> Using cache
        ---> 3fa19739ca8b
 INFO   Step 5/10 : ENV PACKAGE_VERSION=0.20211219
 INFO    ---> Using cache
        ---> 58cd60fd1bcd
 INFO   Step 6/10 : ENV PACKAGE_CATEGORY=gentoo
 INFO    ---> Using cache
        ---> 8851af40c32c
 INFO   Step 7/10 : ENV LUET_YES=true
 INFO    ---> Using cache
        ---> a31e2cd581c8
 INFO   Step 8/10 : ENV STAGE_VERSION=20211219T170551Z
 INFO    ---> Using cache
        ---> 0b75503b4805
 INFO   Step 9/10 : RUN luet upgrade && luet install -y --force utils/tar utils/curl utils/xz
 INFO    ---> Using cache
 INFO    ---> d3527a3ad481
       Step 10/10 : RUN mkdir /gentoo
 INFO    ---> Using cache
        ---> ea176eae4a00
 INFO   Successfully built ea176eae4a00
 INFO   Successfully tagged luet/cache:builder-501e602d0e2c2d2c554efa1727bc376f
 INFO   SUCCESS ๐Ÿ‹  Building image luet/cache:builder-501e602d0e2c2d2c554efa1727bc376f done
 INFO   ๐Ÿ“ฆ  gentoo/stage3-0.20211219 ๐Ÿ‹  Generating 'package' image from luet/cache:builder-501e602d0e2c2d2c554efa1727bc376f as luet/cache:5501cdb98a8045787a66b65b54dceed71ff8a92f9854f34b8475639649112ce4 with build steps
 INFO   ๐Ÿ‹  Building image luet/cache:5501cdb98a8045787a66b65b54dceed71ff8a92f9854f34b8475639649112ce4
 INFO   Sending build context to Docker daemon  6.144kB
 INFO   Step 1/9 : FROM luet/cache:builder-501e602d0e2c2d2c554efa1727bc376f
 INFO    ---> ea176eae4a00
 INFO   Step 2/9 : COPY . /luetbuild
 INFO    ---> Using cache
        ---> 884a31de0a63
 INFO   Step 3/9 : WORKDIR /luetbuild
 INFO    ---> Using cache
        ---> 81e62d84b602
 INFO   Step 4/9 : ENV PACKAGE_NAME=stage3
 INFO    ---> Using cache
        ---> 7cbd9533e946
 INFO   Step 5/9 : ENV PACKAGE_VERSION=0.20211219
 INFO    ---> Using cache
        ---> 3bf65f190bfa
 INFO   Step 6/9 : ENV PACKAGE_CATEGORY=gentoo
 INFO    ---> Using cache
        ---> 126d014ca38c
 INFO   Step 7/9 : ENV LUET_YES=true
 INFO    ---> Using cache
        ---> 08b36e48acec
 INFO   Step 8/9 : ENV STAGE_VERSION=20211219T170551Z
 INFO    ---> Using cache
        ---> bc8eec09f4bc
 INFO   Step 9/9 : RUN curl -L http://distfiles.gentoo.org/releases/amd64/autobuilds/current-stage3-amd64-systemd/stage3-amd64-systemd-${STAGE_VERSION}.tar.xz | tar Jxp --xattrs --numeric-owner -C /gentoo
 INFO    ---> Running in 7651463bbfe6
 INFO     % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

 INFO              Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   365  100   365    0     0    257      0  0:00:01  0:00:01 --:--:--   257

 INFO   xz: (stdin): File format not recognized

 INFO   tar: Child returned status 1
       tar: Error is not recoverable: exiting now

 INFO   The command '/bin/sh -c curl -L http://distfiles.gentoo.org/releases/amd64/autobuilds/current-stage3-amd64-systemd/stage3-amd64-systemd-${STAGE_VERSION}.tar.xz | tar Jxp --xattrs --numeric-owner -C /gentoo' returned a non-zero code: 2
  ERROR    Error: while resolving join images: failed building join image: building direct image: failed building package image: Could not push image: quay.io/mocaccino/extra:latest stage3-gentoo-0.20211219.dockerfile: Could not build image: quay.io/mocaccino/extra:latest stage3-gentoo-0.20211219.dockerfile: Failed running command: : exit status 2
  ERROR    Bailing out

oscheck claims everything is fine.

As a note, if I cd to the community repository directory, luet repo update && luet upgrade fails with the same error.

msdobrescu commented 2 years ago

Can't pass this. Advice, please?

msdobrescu commented 2 years ago

Tested in a mOS VM, same behavior, fails. Seemingly fails on mOS only.

msdobrescu commented 2 years ago

New layers versions, now brings:

ERROR Error: while rendering package template: rendering file /tmp/tmpluet/mocaccino-community4216410842/tree/packages/apps/build.yaml: while rendering template: parse error at (templates:59): multiple definition of template "portage_excludes"

msdobrescu commented 2 years ago

New repo version, error: while rendering template: template: templates:21:16: executing "templates" at <include "cr.packages" .Values>: error calling include: template: no template "cr.packages" associated with template "gotpl"

The template function file is in /templates, but that works fine on GH. It is used with include and parses the references to include relevant flags and options from them when built with the current package.

mudler commented 2 years ago

this should be fixed by now, no?

msdobrescu commented 2 years ago

Yes, thank you!

msdobrescu commented 9 months ago

Well, I've just got it again.

ERROR: Error: while rendering package template: rendering file packages/apps/build.yaml: template: :782: template: multiple definition of template "build"

Can you provide me a hint, please?