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

Error: failed getting package to finalize #298

Closed msdobrescu closed 4 months ago

msdobrescu commented 2 years ago

Luet version:

luet version 0.32.0-g2aa4c8a42ed13682b4820f3ca5e6d2388a5e2c24 2022-05-03

CPU architecture, OS, and Version:

Linux USC 5.15.38-mocaccino #5.15.38-Mocaccino SMP Fri May 13 15:51:02 UTC 2022 x86_64 11th Gen Intel(R) Core(TM) i7-11700K @ 3.60GHz GenuineIntel GNU/Linux

Describe the bug

Installing timidity++ from C-R brings the message below.

To Reproduce

luet install apps/timidity -y
 INFO  Luet 0.32.0-g2aa4c8a42ed13682b4820f3ca5e6d2388a5e2c24 2022-05-03
 INFO  Copyright (C) 2019-2022 Ettore Di Giacinto
       This program comes with ABSOLUTELY NO WARRANTY.
       This is free software, and you are welcome to redistribute it under certain conditions.
       For documentation, visit https://luet.io.
 INFO   :::> Install
 INFO   🤔  Checking for available upgrades                                                                                                                                                                                                                 
 INFO   Nothing to upgrade
 INFO   Packages that are going to be installed in the system:

Program Name            | Version   | License | Repository                 
entity/timidity-1       | 1         |         | mocaccino-os-commons-stable
apps/emacs-28.1         | 28.1      |         | mocaccino-community        
apps/timidity-2.15.0-r3 | 2.15.0-r3 |         | mocaccino-community        

Downloading packages [0/3] █                                                                                                                                                                                                                         0% | 0s
 INFO   Downloading image quay.io/mocaccino/os-commons:timidity-entity-1                                                                                                                                                                                    
 INFO   Downloading image quay.io/mocaccino/mocaccino-community:emacs-apps-28.1                                                                                                                                                                             
 INFO   Downloading image quay.io/mocaccino/mocaccino-community:timidity-apps-2.15.0-r3                                                                                                                                                                     
 INFO   Image: quay.io/mocaccino/os-commons:timidity-entity-1. Pulled: sha256:30b996ad75be06faae344c7c3055bb8fab637a8a6489bbc353850e461116ebc7. Size: 110B                                                                                                  
Downloading packages [1/3] ████████████████████████████████████████████████████████████████████████                                                                                                                                                 33% | 2s
 INFO   Image: quay.io/mocaccino/mocaccino-community:emacs-apps-28.1. Pulled: sha256:0e1b59496b273ceeac780af966d1449ec01cf57bbe98c2ef407d9950b8486c26. Size: 152MiB
Downloading packages [2/3] ███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████                                                                         67% | 20s
 INFO   Image: quay.io/mocaccino/mocaccino-community:timidity-apps-2.15.0-r3. Pulled: sha256:ffbc92df5aceebf12966aa01abb419e613c34f9b3049089b09e47b39f38d2e1a. Size: 69.44MiB

Downloading packages [3/3] ██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ 100% | 22s
 INFO   Checking for file conflicts..
 INFO   Done checking for file conflicts..                                                                                                                                                                                                                  
▀   INFO   📦  Package  entity/timidity-1 installed                                                                                                                                                                                                         
 INFO   📦  Package  apps/timidity-2.15.0-r3 installed                                                                                                                                                                                                      
 INFO   📦  Package  apps/emacs-28.1 installed                                                                                                                                                                                                              
  ERROR    Error: failed getting package to finalize: While order a solution for apps/timidity-2.15.0-r3: fail on sorting timidity-apps-2.15.0-r3: Cycle error: timidity-apps-2.15.0-r3 -> timidity-apps-2.15.0-r3
panic: fatal error

goroutine 1 [running]:
github.com/mudler/luet/pkg/api/core/logger.(*Logger).Fatal(...)
        /luetbuild/luet/pkg/api/core/logger/logger.go:255
github.com/mudler/luet/cmd.glob..func10(0x162a8c0?, {0xc0000a0ba0?, 0x1?, 0x2?})
        /luetbuild/luet/cmd/install.go:94 +0x5c5
github.com/spf13/cobra.(*Command).execute(0x162a8c0, {0xc0000a0b80, 0x2, 0x2})
        /luetbuild/luet/vendor/github.com/spf13/cobra/command.go:860 +0x663
github.com/spf13/cobra.(*Command).ExecuteC(0x1628ac0)
        /luetbuild/luet/vendor/github.com/spf13/cobra/command.go:974 +0x3b4
github.com/spf13/cobra.(*Command).Execute(...)
        /luetbuild/luet/vendor/github.com/spf13/cobra/command.go:902
github.com/mudler/luet/cmd.Execute()
        /luetbuild/luet/cmd/root.go:124 +0x25
main.main()
        /luetbuild/luet/main.go:10 +0x17

Reinstalling worked:

 INFO   Checking for file conflicts..                                                                                                                                                                                                                       
▀   INFO   Done checking for file conflicts..                                                                                                                                                                                                               
 INFO   📦  Package  apps/timidity-2.15.0-r3 installed                                                                                                                                                                                                      
 INFO   Executing finalizer for apps/timidity-2.15.0-r3
 INFO   🐚  Executing finalizer on  / sh [-c glib-compile-schemas /usr/share/glib-2.0/schemas > /dev/null 2>&1]
 INFO   
 INFO   🐚  Executing finalizer on  / sh [-c update-mime-database /usr/share/mime/]
 INFO   
 INFO   🐚  Executing finalizer on  / sh [-c ldconfig]
 INFO   

Try uninstall:

 INFO  Luet 0.32.0-g2aa4c8a42ed13682b4820f3ca5e6d2388a5e2c24 2022-05-03
 INFO  Copyright (C) 2019-2022 Ettore Di Giacinto
       This program comes with ABSOLUTELY NO WARRANTY.
       This is free software, and you are welcome to redistribute it under certain conditions.
       For documentation, visit https://luet.io.
 INFO   :::> Uninstall
  ERROR    Error: while computing uninstall: while computing uninstall: Could not solve the uninstall constraints. Tip: try with --solver-type qlearning or with --force, or by removing packages excluding their dependencies with --nodeps: while searching for apps/timidity-2.15.0-r3 conflicts: 
          apps/timidity-2.15.0-r3
panic: fatal error

goroutine 1 [running]:
github.com/mudler/luet/pkg/api/core/logger.(*Logger).Fatal(...)
        /luetbuild/luet/pkg/api/core/logger/logger.go:255
github.com/mudler/luet/cmd.glob..func28(0x1629740?, {0xc000690c00?, 0x1?, 0x2?})
        /luetbuild/luet/cmd/uninstall.go:79 +0x5c5
github.com/spf13/cobra.(*Command).execute(0x1629740, {0xc000690be0, 0x2, 0x2})
        /luetbuild/luet/vendor/github.com/spf13/cobra/command.go:860 +0x663
github.com/spf13/cobra.(*Command).ExecuteC(0x1628ac0)
        /luetbuild/luet/vendor/github.com/spf13/cobra/command.go:974 +0x3b4
github.com/spf13/cobra.(*Command).Execute(...)
        /luetbuild/luet/vendor/github.com/spf13/cobra/command.go:902
github.com/mudler/luet/cmd.Execute()
        /luetbuild/luet/cmd/root.go:124 +0x25
main.main()
        /luetbuild/luet/main.go:10 +0x17

Expected behavior

Finalize successfully.

Logs

Additional context

I am not sure if it's related to a luet bug or an illegal character ("+"?).

msdobrescu commented 4 months ago

This is related to the "+" special character. Also "." at the end of the version would cause package to not install or upgrade due to luet failure. Closing this as having an workaround by respecting specific rules to naming and versioning. It is preferable to validate the naming and versioning better before the build step and provide an error instead of building first(for a long time sometimes), then fail at install or upgrade.