all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / Atom feed
* [bug#48205] [PATCH] gnu: emacs-org: Make build reproducible
@ 2021-05-03 20:54 Morgan.J.Smith
  2021-05-11 10:28 ` Ludovic Courtès
  2021-06-09 15:32 ` [bug#48205] [PATCH v2] " Morgan.J.Smith
  0 siblings, 2 replies; 4+ messages in thread
From: Morgan.J.Smith @ 2021-05-03 20:54 UTC (permalink / raw)
  To: 48205; +Cc: Morgan Smith

From: Morgan Smith <Morgan.J.Smith@outlook.com>

* gnu/packages/emacs-xyz.scm (emacs-org)[phases]: Remove loaddefs and use
autoloads instead
---
 gnu/packages/emacs-xyz.scm | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index c950f116f9..a73b7959ef 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -11243,6 +11243,12 @@ (define-public emacs-org
                (("org-release \"\"")
                 (string-append "org-release \"" ,version "\"")))
              #t))
+         (add-after 'fix-org-version 'use-autoloads
+           (lambda _
+             (delete-file "org-loaddefs.el")
+             (substitute* (find-files "." ".*.el")
+                 (("org-loaddefs.el") "org-autoloads.el"))
+             #t))
          (add-after 'install 'install-documentation
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((share (string-append (assoc-ref outputs "out") "/share"))
-- 
2.31.1





^ permalink raw reply	[flat|nested] 4+ messages in thread

* [bug#48205] [PATCH] gnu: emacs-org: Make build reproducible
  2021-05-03 20:54 [bug#48205] [PATCH] gnu: emacs-org: Make build reproducible Morgan.J.Smith
@ 2021-05-11 10:28 ` Ludovic Courtès
  2021-06-09 15:32 ` [bug#48205] [PATCH v2] " Morgan.J.Smith
  1 sibling, 0 replies; 4+ messages in thread
From: Ludovic Courtès @ 2021-05-11 10:28 UTC (permalink / raw)
  To: Morgan.J.Smith; +Cc: 48205

Hi,

Morgan.J.Smith@outlook.com skribis:

> From: Morgan Smith <Morgan.J.Smith@outlook.com>
>
> * gnu/packages/emacs-xyz.scm (emacs-org)[phases]: Remove loaddefs and use
> autoloads instead

[...]

> +         (add-after 'fix-org-version 'use-autoloads
> +           (lambda _
> +             (delete-file "org-loaddefs.el")
> +             (substitute* (find-files "." ".*.el")
> +                 (("org-loaddefs.el") "org-autoloads.el"))
> +             #t))

You can drop the trailing #t.

Could you explain in a comment in the phase what it does?  It’s not
clear to me how this relates to making the build bit-reproducible.

Remember that ‘find-files’ takes a regexp as its second argument; thus,
to match .el files, you need to write "\\.el$".

Could you send an updated patch?

Thanks,
Ludo’.




^ permalink raw reply	[flat|nested] 4+ messages in thread

* [bug#48205] [PATCH v2] gnu: emacs-org: Make build reproducible
  2021-05-03 20:54 [bug#48205] [PATCH] gnu: emacs-org: Make build reproducible Morgan.J.Smith
  2021-05-11 10:28 ` Ludovic Courtès
@ 2021-06-09 15:32 ` Morgan.J.Smith
  2021-06-11 22:54   ` Ludovic Courtès
  1 sibling, 1 reply; 4+ messages in thread
From: Morgan.J.Smith @ 2021-06-09 15:32 UTC (permalink / raw)
  To: ludo; +Cc: Morgan Smith, 48205

From: Morgan Smith <Morgan.J.Smith@outlook.com>

* gnu/packages/emacs-xyz.scm (emacs-org)[phases]: Remove loaddefs and use
autoloads instead. Copy autoloads into build directory.
---

Thanks for the suggestions! Sorry about the delay. Also sorry about the
comment. It's probably a little too long :/. I need to work on my english and
my ability to be concise.

 gnu/packages/emacs-xyz.scm | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 1d954ec5bd..180b2709fe 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -11761,6 +11761,27 @@ (define-public emacs-org
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         ;; Org ships with the file org-loaddefs.el that functions like our
+         ;; autoloads. Something about the interaction between the loaddefs
+         ;; and autoloads makes the build non-deterministic. We should opt for
+         ;; our autoloads system over the loaddefs since the loaddefs are
+         ;; autogenerated for the release tarball. org-loaddefs.el is
+         ;; mentioned by name in the source files so we have to do a blanket
+         ;; regex search and replace.
+         (add-after 'unpack 'use-autoloads
+           (lambda _
+             (delete-file "org-loaddefs.el")
+             (substitute* (find-files "." "\\.el$")
+               (("org-loaddefs.el") "org-autoloads.el"))))
+         ;; We create the autoloads directly in the install folder. During
+         ;; compilation org checks for the autoloads file so we need to copy
+         ;; it to the build directory.
+         (add-after 'make-autoloads 'copy-autoload-to-build-dir
+           (lambda* (#:key outputs #:allow-other-keys)
+             (copy-file (string-append
+                         (elpa-directory (assoc-ref outputs "out"))
+                         "/org-autoloads.el")
+                        "org-autoloads.el")))
          (add-after 'install 'install-documentation
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((share (string-append (assoc-ref outputs "out") "/share"))
-- 
2.32.0





^ permalink raw reply	[flat|nested] 4+ messages in thread

* [bug#48205] [PATCH v2] gnu: emacs-org: Make build reproducible
  2021-06-09 15:32 ` [bug#48205] [PATCH v2] " Morgan.J.Smith
@ 2021-06-11 22:54   ` Ludovic Courtès
  0 siblings, 0 replies; 4+ messages in thread
From: Ludovic Courtès @ 2021-06-11 22:54 UTC (permalink / raw)
  To: Morgan.J.Smith; +Cc: 48205

Hi,

Morgan.J.Smith@outlook.com skribis:

> From: Morgan Smith <Morgan.J.Smith@outlook.com>
>
> * gnu/packages/emacs-xyz.scm (emacs-org)[phases]: Remove loaddefs and use
> autoloads instead. Copy autoloads into build directory.

[...]

>         (modify-phases %standard-phases
> +         ;; Org ships with the file org-loaddefs.el that functions like our
> +         ;; autoloads. Something about the interaction between the loaddefs
> +         ;; and autoloads makes the build non-deterministic. We should opt for
> +         ;; our autoloads system over the loaddefs since the loaddefs are
> +         ;; autogenerated for the release tarball. org-loaddefs.el is
> +         ;; mentioned by name in the source files so we have to do a blanket
> +         ;; regex search and replace.

I wonder about the interaction.

Are you sure using org-autoloads.el everywhere is enough to fix the
problem?  With current master, I see:

--8<---------------cut here---------------start------------->8---
$ guix challenge emacs-org --substitute-urls='https://ci.guix.gnu.org https://bayfront.guix.gnu.org'
/gnu/store/2pny4z6mbi2aybgzzxz0yrzkds7hbpmq-emacs-org-9.4.6 contents differ:
  no local build for '/gnu/store/2pny4z6mbi2aybgzzxz0yrzkds7hbpmq-emacs-org-9.4.6'
  https://ci.guix.gnu.org/nar/lzip/2pny4z6mbi2aybgzzxz0yrzkds7hbpmq-emacs-org-9.4.6: 098vc0wpc0rp9qrmh8l75n77j0bd4xjya3q8vd317rxdsfs9dd4n
  https://bayfront.guix.gnu.org/nar/lzip/2pny4z6mbi2aybgzzxz0yrzkds7hbpmq-emacs-org-9.4.6: 0zfzlf28rs7rjvvlq1d3b7cngcvz5grvrkjvsc5j9vp0ikn0zg9p
  differing files:
    /share/emacs/site-lisp/org-9.4.6/org-loaddefs.el
    /share/emacs/site-lisp/org-9.4.6/org-autoloads.elc
    /share/emacs/site-lisp/org-9.4.6/org-autoloads.el
--8<---------------cut here---------------end--------------->8---

And with diffoscope:

--8<---------------cut here---------------start------------->8---
$ guix challenge emacs-org --substitute-urls='https://ci.guix.gnu.org https://bayfront.guix.gnu.org' --diff=diffoscope
/gnu/store/2pny4z6mbi2aybgzzxz0yrzkds7hbpmq-emacs-org-9.4.6 contents differ:
  no local build for '/gnu/store/2pny4z6mbi2aybgzzxz0yrzkds7hbpmq-emacs-org-9.4.6'
  https://ci.guix.gnu.org/nar/lzip/2pny4z6mbi2aybgzzxz0yrzkds7hbpmq-emacs-org-9.4.6: 098vc0wpc0rp9qrmh8l75n77j0bd4xjya3q8vd317rxdsfs9dd4n
  https://bayfront.guix.gnu.org/nar/lzip/2pny4z6mbi2aybgzzxz0yrzkds7hbpmq-emacs-org-9.4.6: 0zfzlf28rs7rjvvlq1d3b7cngcvz5grvrkjvsc5j9vp0ikn0zg9p
 bayfront.guix.gnu.org  1.7MiB                          7.9MiB/s 00:00 [##################] 100.0%--- /tmp/guix-directory.vqBGkT
+++ /tmp/guix-directory.H4HEMX
│   --- /tmp/guix-directory.vqBGkT/share
├── +++ /tmp/guix-directory.H4HEMX/share
│ │   --- /tmp/guix-directory.vqBGkT/share/emacs
│ ├── +++ /tmp/guix-directory.H4HEMX/share/emacs
│ │ │   --- /tmp/guix-directory.vqBGkT/share/emacs/site-lisp
│ │ ├── +++ /tmp/guix-directory.H4HEMX/share/emacs/site-lisp
│ │ │ │   --- /tmp/guix-directory.vqBGkT/share/emacs/site-lisp/org-9.4.6
│ │ │ ├── +++ /tmp/guix-directory.H4HEMX/share/emacs/site-lisp/org-9.4.6
│ │ │ │ │   --- /tmp/guix-directory.vqBGkT/share/emacs/site-lisp/org-9.4.6/org-autoloads.el
│ │ │ │ ├── +++ /tmp/guix-directory.H4HEMX/share/emacs/site-lisp/org-9.4.6/org-autoloads.el
│ │ │ │ │ @@ -1071,28 +1071,52 @@
│ │ │ │ │  ;;;### (autoloads nil "org-mouse" "org-mouse.el" (0 1 0 0))
│ │ │ │ │  ;;; Generated autoloads from org-mouse.el
│ │ │ │ │  
│ │ │ │ │  (if (fboundp 'register-definition-prefixes) (register-definition-prefixes "org-mouse" '("org-mouse-")))
│ │ │ │ │  
│ │ │ │ │  ;;;***
│ │ │ │ │  
│ │ │ │ │ +;;;### (autoloads "actual autoloads are elsewhere" "org-num" "org-num.el"
│ │ │ │ │ +;;;;;;  (0 1 0 0))
│ │ │ │ │ +;;; Generated autoloads from org-num.el
│ │ │ │ │ +
│ │ │ │ │ +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "org-num" '("org-num-")))
│ │ │ │ │ +
│ │ │ │ │ +;;;***
│ │ │ │ │ +
│ │ │ │ │  ;;;### (autoloads nil "org-pcomplete" "org-pcomplete.el" (0 1 0 0))
│ │ │ │ │  ;;; Generated autoloads from org-pcomplete.el
│ │ │ │ │  
│ │ │ │ │  (if (fboundp 'register-definition-prefixes) (register-definition-prefixes "org-pcomplete" '("org-" "pcomplete/org-mode/")))
│ │ │ │ │  
│ │ │ │ │  ;;;***
│ │ │ │ │  
│ │ │ │ │ +;;;### (autoloads "actual autoloads are elsewhere" "org-plot" "org-plot.el"
│ │ │ │ │ +;;;;;;  (0 1 0 0))
│ │ │ │ │ +;;; Generated autoloads from org-plot.el
│ │ │ │ │ +
│ │ │ │ │ +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "org-plot" '("org-plot")))
│ │ │ │ │ +
│ │ │ │ │ +;;;***
│ │ │ │ │ +

│ │ │ │ │  ;;;### (autoloads nil "org-protocol" "org-protocol.el" (0 1 0 0))
│ │ │ │ │  ;;; Generated autoloads from org-protocol.el
│ │ │ │ │  
│ │ │ │ │  (if (fboundp 'register-definition-prefixes) (register-definition-prefixes "org-protocol" '("org-protocol-")))
│ │ │ │ │  
│ │ │ │ │  ;;;***
--8<---------------cut here---------------end--------------->8---

Thanks,
Ludo’.




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-06-11 22:55 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-03 20:54 [bug#48205] [PATCH] gnu: emacs-org: Make build reproducible Morgan.J.Smith
2021-05-11 10:28 ` Ludovic Courtès
2021-06-09 15:32 ` [bug#48205] [PATCH v2] " Morgan.J.Smith
2021-06-11 22:54   ` Ludovic Courtès

all messages for Guix-related lists mirrored at yhetil.org

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://yhetil.org/guix

Example config snippet for mirrors.


AGPL code for this site: git clone http://ou63pmih66umazou.onion/public-inbox.git