[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] gnu: bind-utils: Build and install “nsupdate”.
From: |
Ricardo Wurmus |
Subject: |
Re: [PATCH] gnu: bind-utils: Build and install “nsupdate”. |
Date: |
Thu, 14 Jan 2016 12:53:20 +0100 |
Alex Kost <address@hidden> writes:
> Mathieu Lirzin (2016-01-14 03:46 +0300) wrote:
>
>> Hi,
>>
>> Ricardo Wurmus <address@hidden> writes:
>>
>>>>From ba328617777728c3534be6796b6b32a9a90954b6 Mon Sep 17 00:00:00 2001
>>> From: Ricardo Wurmus <address@hidden>
>>> Date: Wed, 13 Jan 2016 16:06:36 +0100
>>> Subject: [PATCH] gnu: bind-utils: Build and install "nsupdate".
>>>
>>> * gnu/packages/dns.scm (bind-utils)[arguments]: Generalize "build" and
>>> "install" phases.
>>> ---
>>> gnu/packages/dns.scm | 105
>>> ++++++++++++++++++++++++++++-----------------------
>>> 1 file changed, 58 insertions(+), 47 deletions(-)
>>>
>>> diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
>>> index 8357dad..0a42722 100644
>>> --- a/gnu/packages/dns.scm
>>> +++ b/gnu/packages/dns.scm
>> [...]
>>> + (arguments
>>> + `(#:tests? #f ; no test phase implemented
>>> + #:configure-flags
>>> + (list (string-append "--with-openssl="
>>> + (assoc-ref %build-inputs "openssl"))
>>> + (string-append "--with-dlz-mysql="
>>> + (assoc-ref %build-inputs "mysql"))
>>> + (string-append "--with-pkcs11="
>>> + (assoc-ref %build-inputs "p11-kit")))
>>
>> What about:
>>
>> #:configure-flags
>> (map (lambda (opt val)
>> (string-append opt (assoc-ref %build-inputs val)))
>> '("--with-openssl=" "--with-dlz-mysql=" "--with-pkcs11=")
>> '("openssl" "mysql" "p11-kit"))
>
> As for me, I prefer the original variant as it looks more clear for me.
> When I look at this (map ...), I need some time to understand what it
> does.
I didn’t change this. I only adjusted the indentation. I have a slight
preference for keeping it the way it is.
>>> + #:modules ((srfi srfi-1)
>>> + (srfi srfi-26)
>>> + ,@%gnu-build-system-modules)
>>> + #:phases
>>> + (modify-phases %standard-phases
>>> + (replace 'build
>>> + (lambda _
>>> + (fold (lambda (dir pass)
>>> + (and pass (zero? (system* "make" "-C" dir))))
>>> + #t
>>> + (append
>>> + (map (cut string-append "lib/" <>)
>>> + (list ,@libs))
>>> + (map (cut string-append "bin/" <>)
>>> + (list ,@bins))))))
>>> + (replace 'install
>>> + (lambda _
>>> + (fold (lambda (dir pass)
>>> + (and pass (zero? (system* "make" "-C" dir
>>> "install"))))
>>> + #t
>>> + (map (cut string-append "bin/" <>)
>>> + (list ,@bins))))))))
>>
>> and this:
>>
>> (let ((libs '("dns" "isc" "bind9" "isccfg" "lwres"))
>> (bins '("dig" "nsupdate")))
>> (modify-phases %standard-phases
>> (replace 'build
>> (lambda _
>> (every (lambda (dir)
>> (zero? (system* "make" "-C" dir)))
>> (append (map (cut string-append "lib/" <>) libs)
>> (map (cut string-append "bin/" <>) bins)))))
>> (replace 'install
>> (lambda _
>> (every (lambda (dir)
>> (zero? (system* "make" "-C" dir "install")))
>> (map (cut string-append "bin/" <>) bins))))))))
>>
>
> I also think 'every' is more suitable here.
I agree, this looks nicer. Would you like to push this change? There
isn’t much left of my original patch ;)
~~ Ricardo