gnu: libbytesize: Make .mo file builds reproducible.
* gnu/packages/c.scm (libbytesize)[sources](modules, snippet): New fields. [arguments]: Add #:configure-flags and #:phases.
This commit is contained in:
parent
e555bbfc48
commit
bf6859e45a
|
@ -185,8 +185,45 @@ (define-public libbytesize
|
||||||
"download/" version "/libbytesize-" version ".tar.gz"))
|
"download/" version "/libbytesize-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0bbqzln1nhjxl71aydq9k4jg3hvki9lqsb4w10s1i27jgibxqkdv"))))
|
"0bbqzln1nhjxl71aydq9k4jg3hvki9lqsb4w10s1i27jgibxqkdv"))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
(snippet
|
||||||
|
'(begin
|
||||||
|
;; This Makefile hard-codes MSGMERGE et al. instead of
|
||||||
|
;; honoring what 'configure' detected. Fix that.
|
||||||
|
(substitute* "po/Makefile.in"
|
||||||
|
(("^MSGMERGE = msgmerge")
|
||||||
|
"MSGMERGE = @MSGMERGE@\n"))
|
||||||
|
#t))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
;; When running "make", the POT files are built with the build time as
|
||||||
|
;; their "POT-Creation-Date". Later on, "make" notices that .pot
|
||||||
|
;; files were updated and goes on to run "msgmerge"; as a result, the
|
||||||
|
;; non-deterministic POT-Creation-Date finds its way into .po files,
|
||||||
|
;; and then in .gmo files. To avoid that, simply make sure 'msgmerge'
|
||||||
|
;; never runs. See <https://bugs.debian.org/792687>.
|
||||||
|
'(#:configure-flags '("ac_cv_path_MSGMERGE=true")
|
||||||
|
|
||||||
|
#:phases (modify-phases %standard-phases
|
||||||
|
(add-after 'configure 'create-merged-po-files
|
||||||
|
(lambda _
|
||||||
|
;; Create "merged PO" (.mpo) files so that 'msgmerge'
|
||||||
|
;; doesn't need to run.
|
||||||
|
(for-each (lambda (po-file)
|
||||||
|
(let ((merged-po
|
||||||
|
(string-append (dirname po-file) "/"
|
||||||
|
(basename po-file
|
||||||
|
".po")
|
||||||
|
".mpo")))
|
||||||
|
(copy-file po-file merged-po)))
|
||||||
|
(find-files "po" "\\.po$"))
|
||||||
|
#t)))
|
||||||
|
|
||||||
|
;; One test fails because busctl (systemd only?) and python2-pocketlint
|
||||||
|
;; are missing. Should we fix it, we would need the "python-2" ,
|
||||||
|
;; "python2-polib" and "python2-six" native-inputs.
|
||||||
|
#:tests? #f))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("gettext" ,gettext-minimal)
|
`(("gettext" ,gettext-minimal)
|
||||||
("pkg-config" ,pkg-config)
|
("pkg-config" ,pkg-config)
|
||||||
|
@ -194,10 +231,6 @@ (define-public libbytesize
|
||||||
(inputs
|
(inputs
|
||||||
`(("mpfr" ,mpfr)
|
`(("mpfr" ,mpfr)
|
||||||
("pcre" ,pcre)))
|
("pcre" ,pcre)))
|
||||||
;; One test fails because busctl (systemd only?) and python2-pocketlint
|
|
||||||
;; are missing. Should we fix it, we would need the "python-2" ,
|
|
||||||
;; "python2-polib" and "python2-six" native-inputs.
|
|
||||||
(arguments `(#:tests? #f))
|
|
||||||
(home-page "https://github.com/storaged-project/libbytesize")
|
(home-page "https://github.com/storaged-project/libbytesize")
|
||||||
(synopsis "Tiny C library for working with arbitrary big sizes in bytes")
|
(synopsis "Tiny C library for working with arbitrary big sizes in bytes")
|
||||||
(description
|
(description
|
||||||
|
|
Loading…
Reference in a new issue