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
