chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Re: Eggs not installing on msys-mingw32


From: Matt Welland
Subject: Re: [PATCH] Re: Eggs not installing on msys-mingw32
Date: Mon, 30 Oct 2023 09:21:48 -0400

I think I was premature in concluding that removing the empty files was sufficient to fix this. I can remove the empty file but the moment I hit an egg that depends on check-errors it seems to get stuck.

I turned off the continuous virus feature and I tried using CHICKEN_EGG_CACHE to put the cache in /tmp and each time it seems to go further but fails on check-errors.egg-info. Note that check-errors appears to be properly installed as it imports fine. I think something is attempting to remove or rewrite the check-errors.egg-info file and that causes the problem, at least that is currently my best guess.

Unfortunately I don't think that stopping and reporting the empty file will be sufficient but I will try the patch. Any suggestions as to what to try next?

On Mon, Oct 30, 2023 at 9:14 AM Mario Domenech Goulart <mario@parenteses.org> wrote:
On Mon, 30 Oct 2023 14:01:44 +0100 felix.winkelmann@bevuta.com wrote:

>> That was it. Thanks. I do have to keep running:
>>
>> find /software/ -name \*.egg-info -empty -delete -print
>>
>> as check-errors.egg-info seems to be a pervasive problem. Maybe it would be
>> worth it to add a defence against this?
>
> Sorry - wrong patch, this is the right one.
>
>
> felix
>
>
> From 8a2a82a8171744546badacaa297bcf754bff3eba Mon Sep 17 00:00:00 2001
> From: felix <felix@call-with-current-continuation.org>
> Date: Mon, 30 Oct 2023 14:00:41 +0100
> Subject: [PATCH] handle case when egg-info file is empty
>
> ---
>  egg-information.scm | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/egg-information.scm b/egg-information.scm
> index 6f5f7cb9..1e7f8aec 100644
> --- a/egg-information.scm
> +++ b/egg-information.scm
> @@ -34,8 +34,11 @@
>      (if (file-exists? fname*) fname* fname)))

>  (define (load-egg-info fname)
> -  (let ((fname (locate-egg-file fname)))
> -    (with-input-from-file fname read)))
> +  (let* ((fname (locate-egg-file fname))
> +         (info (with-input-from-file fname read)))
> +    (if (eof-object? info)
> +        (error "empty egg-info file, possibly due to an aborted egg-install - please remove the file and retry" fname)
> +        info)))

How about
"empty egg-info file, possibly due to an aborted egg-install - please remove the file and reinstall the corresponding egg"?

Rationale: Matt's case.  check-errors.egg-info was empty, but the
installation of base64 was failing.  If Matt had removed
check-errors.egg-info and retried installing base64, the installation of
base64 would work, but check-errors would still be broken
(chicken-status and chicken-uninstall would ignore it, for example).

All the best.
Mario
--
http://parenteses.org/mario


--
--
Complexity is your enemy. Any fool can make something complicated.
It is hard to keep things simple. - Richard Branson.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]