Ludovic Courtès (2016-05-17 12:12 +0300) wrote:

> Alex Kost <[email protected]> skribis:
>
>> Ludovic Courtès (2016-05-16 15:45 +0300) wrote:
[...]
>>> $ git describe
>>> v0.10.0-798-g8a7680a
>>> $ tar tvf $(./pre-inst-env guix build -S emacs) |grep 'autoload\.el'
>>> -rw-r--r-- root/root     37292 1970-01-01 01:00 
>>> emacs-24.5/lisp/emacs-lisp/autoload.el
>>> -rw-r--r-- root/root     37127 1970-01-01 01:00 
>>> emacs-24.5/lisp/emacs-lisp/autoload.el.orig
>>> -rw-r--r-- root/root     22624 1970-01-01 01:00 
>>> emacs-24.5/lisp/emacs-lisp/autoload.elc
>>>
>>> Upstream’s tarball already includes those three files.
>>
>> IIUC this source is after applying our patches (including
>> "emacs-source-date-epoch.patch"):
>>
>> - “autoload.el.orig” is the original file from the upstream;
>
> Indeed, this one isn’t present in upstream’s tarball:
>
> $ wget -q -O - ftp://ftp.gnu.org/gnu/emacs/emacs-24.5.tar.xz | tar tJvf - | 
> grep 'autoload\.'
> -rw-rw-r-- nico/nico     37127 2015-04-02 09:23 
> emacs-24.5/lisp/emacs-lisp/autoload.el
> -rw-r--r-- nico/nico     22624 2015-04-08 19:16 
> emacs-24.5/lisp/emacs-lisp/autoload.elc
>
> How come we’re introducing this one?  I thought ‘patch’ did not produce
> .orig files unless the patch failed to apply, but here the patch
> correctly applies, only with a small offset (can be seen by running
> ‘guix build -S emacs --check’):
>
> patching file lisp/loadup.el
> patching file lisp/emacs-lisp/autoload.el
> Hunk #1 succeeded at 361 (offset -17 lines).

Indeed, I also didn't know that "patch" produces such .orig files when a
patch applies with offset.

> Apparently we have to use ‘--no-backup-if-mismatch’ to avoid that.

You even found the flag, thanks!  So is it OK to apply the attached
patch to core-updates?

>From bcd636eff01f39583e8742b123d51550f9500795 Mon Sep 17 00:00:00 2001
From: Alex Kost <[email protected]>
Date: Thu, 19 May 2016 19:11:58 +0300
Subject: [PATCH] packages: Use '--no-backup-if-mismatch' for patching.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Suggested-by: Ludovic Courtès <[email protected]>

* guix/packages.scm (patch-and-repack)[build]: Use
  '--no-backup-if-mismatch' patch flag to avoid making *.orig files.
---
 guix/packages.scm | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/guix/packages.scm b/guix/packages.scm
index d62d1f3..a7b502c 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -464,9 +464,11 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET."
             (format (current-error-port) "applying '~a'...~%" patch)
 
             ;; Use '--force' so that patches that do not apply perfectly are
-            ;; rejected.
+            ;; rejected.  Use '--no-backup-if-mismatch' to prevent making
+            ;; "*.orig" file if a patch is applied with offset.
             (zero? (system* (string-append #+patch "/bin/patch")
-                            "--force" #+@flags "--input" patch)))
+                            "--force" "--no-backup-if-mismatch"
+                            #+@flags "--input" patch)))
 
           (define (first-file directory)
             ;; Return the name of the first file in DIRECTORY.
-- 
2.7.3

Reply via email to