guix-patches
[Top][All Lists]
Advanced

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

[bug#63044] [PATCH] gnu: python-setuptools: Disable date checking in bdi


From: Brian Cully
Subject: [bug#63044] [PATCH] gnu: python-setuptools: Disable date checking in bdist_egg.py
Date: Wed, 03 May 2023 20:37:14 -0400
User-agent: mu4e 1.10.2; emacs 28.2


Brian Cully <bjc@spork.org> writes:

Ludovic Courtès <ludo@gnu.org> writes:

The way to do that is to add (guix build python-build-system) to #:imported-modules and #:modules in those packages, and then to use ‘modify-phases’ to add that ‘ensure-no-mtimes-pre-1980’ phase to
those
of ‘gnu-build-system’.

How does that sound, Brian?

That sounds reasonable to me. I'll update the ticket in a bit with
these changes.

This turns out to be trickier than it first appears:

For one thing, ‘ensure-no-mtimes-pre-1980’ isn't exported from (guix build python-build-system). I can use ‘@@’ to reference it, but that seems less-than-ideal.

A larger problem is that ‘ensure-no-mtimes-pre-1980’ has a bug: it blindly tries to change the utime of files even if they're symlinks, which raises an “operation not permitted” exception. It's easy enough to fix this, but since it changes ‘python-build-system’, it causes a tremendous amount of rebuilding.

I'm not sure how to proceed. The bug with the build system should certainly be fixed, but it'll be disruptive. Until then, at least ‘criu’ will remain broken — though ‘sssd’ is now building correctly with the new phase.

This is the patch:

--8<---------------cut here---------------start------------->8---
diff --git a/guix/build/python-build-system.scm b/guix/build/python-build-system.scm
index aa04664b25..1236ea62cd 100644
--- a/guix/build/python-build-system.scm
+++ b/guix/build/python-build-system.scm
@@ -270,7 +270,8 @@ (define* (ensure-no-mtimes-pre-1980 #:rest _)
  ;; timestamps before 1980.
  (let ((early-1980 315619200))  ; 1980-01-02 UTC
    (ftw "." (lambda (file stat flag)
-               (unless (<= early-1980 (stat:mtime stat))
+               (unless (or (<= early-1980 (stat:mtime stat))
+                           (eq? (stat:type stat) 'symlink))
                 (utime file early-1980 early-1980))
               #t))))

--8<---------------cut here---------------end--------------->8---


-bjc





reply via email to

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