Summary

md5 egg refers to nonexisting header file in source-dependencies list causing it to fail on rebuild

Metadata

Description

If you try to install `md5` twice in a row, it fails with an error:

 $ ~/chickens/5.3.0rc4/bin/chicken-install -test md5
 building md5
 /home/sjamaan/.cache/chicken-install/md5/md5.h: No such file or directory
 
 Error: shell command terminated with nonzero exit code
 256
 "sh /home/sjamaan/.cache/chicken-install/md5/md5.build.sh"

This also happens with 5.2.0, and also if you just build but not install (i.e., `chicken-install -n md5`).

Any idea why this happens? Is this a bug in chicken-install or in the egg?

Changes and comments

[2021-10-06 15:43:01 UTC] sjamaan changed summary

[2021-10-06 15:43:01 UTC] sjamaan wrote:

Ahh, it doesn't actually remove the file: it's not there to begin with! So because it's in `source-dependencies`, `chicken-do` will try to `stat(2)` it and that's when it fails.

[2021-10-06 15:43:17 UTC] sjamaan changed milestone from 5.3 to someday

[2021-10-06 17:49:35 UTC] kon changed status from assigned to closed

[2021-10-06 17:49:35 UTC] kon set resolution to fixed

[2021-10-06 17:49:35 UTC] kon wrote:

egg version 4.4.1 removes the, non-existent, dependency

[2021-10-06 17:50:26 UTC] felix wrote:

The reason is likely to be a (mis)feature of `chicken-do`: if the target does not exist, then the dependencies are not even checked. On a second run, the target exists but is outdated and now the dependencies are checked.

[2021-10-07 00:11:21 UTC] felix wrote:

I suggest to change `chicken-do` to just issue a warning if a dependency does not exist but otherwise ignore it.