mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-26 06:18:07 -05:00
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
1 changed files with 38 additions and 5 deletions
|
@ -185,8 +185,45 @@ (define-public libbytesize
|
|||
"download/" version "/libbytesize-" version ".tar.gz"))
|
||||
(sha256
|
||||
(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)
|
||||
(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
|
||||
`(("gettext" ,gettext-minimal)
|
||||
("pkg-config" ,pkg-config)
|
||||
|
@ -194,10 +231,6 @@ (define-public libbytesize
|
|||
(inputs
|
||||
`(("mpfr" ,mpfr)
|
||||
("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")
|
||||
(synopsis "Tiny C library for working with arbitrary big sizes in bytes")
|
||||
(description
|
||||
|
|
Loading…
Reference in a new issue