unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH 0/2] Add datefudge to gnutls inputs.
@ 2013-08-15 21:58 Cyril Roelandt
  2013-08-15 21:58 ` [PATCH 1/2] gnu: Add datefudge Cyril Roelandt
  2013-08-15 21:58 ` [PATCH 2/2] gnutls: add datefudge to the inputs Cyril Roelandt
  0 siblings, 2 replies; 7+ messages in thread
From: Cyril Roelandt @ 2013-08-15 21:58 UTC (permalink / raw)
  To: guix-devel

Hello!

Gnutls needs datefudge to run some of the tests. They are currently skipped.
This patch series fixes that.

Regards,
Cyril.

---
Cyril Roelandt (2):
  gnu: Add datefudge.
  gnutls: add datefudge to the inputs.

 gnu-system.am              |    1 +
 gnu/packages/datefudge.scm |   73 ++++++++++++++++++++++++++++++++++++++++++++
 gnu/packages/gnutls.scm    |    4 ++-
 3 files changed, 77 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/datefudge.scm

-- 
1.7.10.4

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

* [PATCH 1/2] gnu: Add datefudge.
  2013-08-15 21:58 [PATCH 0/2] Add datefudge to gnutls inputs Cyril Roelandt
@ 2013-08-15 21:58 ` Cyril Roelandt
  2013-08-16 17:45   ` Ludovic Courtès
  2013-08-15 21:58 ` [PATCH 2/2] gnutls: add datefudge to the inputs Cyril Roelandt
  1 sibling, 1 reply; 7+ messages in thread
From: Cyril Roelandt @ 2013-08-15 21:58 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/datefudge.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
---
 gnu-system.am              |    1 +
 gnu/packages/datefudge.scm |   73 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 74 insertions(+)
 create mode 100644 gnu/packages/datefudge.scm

diff --git a/gnu-system.am b/gnu-system.am
index bfead6e..fde1c8c 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -45,6 +45,7 @@ GNU_SYSTEM_MODULES =				\
   gnu/packages/cryptsetup.scm			\
   gnu/packages/curl.scm				\
   gnu/packages/cyrus-sasl.scm			\
+  gnu/packages/datefudge.scm 			\
   gnu/packages/dejagnu.scm			\
   gnu/packages/ddrescue.scm			\
   gnu/packages/dwm.scm				\
diff --git a/gnu/packages/datefudge.scm b/gnu/packages/datefudge.scm
new file mode 100644
index 0000000..418e0ff
--- /dev/null
+++ b/gnu/packages/datefudge.scm
@@ -0,0 +1,73 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages datefudge)
+  #:use-module (guix licenses)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages perl))
+
+(define-public datefudge
+  (package
+    (name "datefudge")
+    (version "1.18")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "http://ftp.de.debian.org/debian/pool/main/d/"
+                   "datefudge/datefudge_" version ".tar.gz"))
+             (sha256
+              (base32
+               "0g26mk6nxfpzlgfj08ig0na9zk03fgghqr86xp5mja2gyfh58s00"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:test-target "test"
+       #:phases
+        (alist-replace
+         'configure
+         (lambda* (#:key version outputs #:allow-other-keys #:rest args)
+          (pk version outputs)
+          (let* ((out (assoc-ref outputs "out"))
+                 (version (substring out (+ 1 (string-index-right out #\-)))))
+           ;; The version is retrieved using dpkg-parsechangelog, which is
+           ;; not available in Guix.
+           (substitute* "Makefile"
+             (("^VERSION.*$") (string-append "VERSION=" version)))
+           ;; We do not need to pass these flags to "install".
+           (substitute* "Makefile"
+             (("-o root -g root") "")) 
+           ;; The prefix is hard-coded in the Makefile, we do not want that.
+           (substitute* "Makefile"
+             (("^prefix.*$") (string-append "prefix=" out "\n")))))
+         %standard-phases)))
+    (inputs `(("perl" ,perl))) ; Needed for the tests.
+    (home-page "http://packages.qa.debian.org/d/datefudge.html")
+    (synopsis "Fake the system date")
+    (description
+     "This program (and preload library) fakes the system date so that
+ programs think the wall clock is ... different.
+
+ The faking is not complete; timestamp on files are not affected in any
+ way.
+
+ This package is useful if you want to test the date handling of your
+ programs without changing the system clock. Examples: Does it handle
+ expired certificates correctly? Does it work on a leap day?")
+    (license gpl2)))
-- 
1.7.10.4

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

* [PATCH 2/2] gnutls: add datefudge to the inputs.
  2013-08-15 21:58 [PATCH 0/2] Add datefudge to gnutls inputs Cyril Roelandt
  2013-08-15 21:58 ` [PATCH 1/2] gnu: Add datefudge Cyril Roelandt
@ 2013-08-15 21:58 ` Cyril Roelandt
  2013-08-16 17:46   ` Ludovic Courtès
  1 sibling, 1 reply; 7+ messages in thread
From: Cyril Roelandt @ 2013-08-15 21:58 UTC (permalink / raw)
  To: guix-devel

---
 gnu/packages/gnutls.scm |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gnutls.scm b/gnu/packages/gnutls.scm
index d636a9c..d3e3b1c 100644
--- a/gnu/packages/gnutls.scm
+++ b/gnu/packages/gnutls.scm
@@ -24,6 +24,7 @@
   #:use-module ((gnu packages compression)
                 #:renamer (symbol-prefix-proc 'guix:))
   #:use-module (gnu packages)
+  #:use-module (gnu packages datefudge)
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages perl)
@@ -73,7 +74,8 @@ portable, and only require an ANSI C89 platform.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
-     `(("guile" ,guile-2.0)
+     `(("datefudge" ,datefudge)
+       ("guile" ,guile-2.0)
        ("zlib" ,guix:zlib)
        ("perl" ,perl)
        ("patch/fix-tests"
-- 
1.7.10.4

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

* Re: [PATCH 1/2] gnu: Add datefudge.
  2013-08-15 21:58 ` [PATCH 1/2] gnu: Add datefudge Cyril Roelandt
@ 2013-08-16 17:45   ` Ludovic Courtès
  2013-08-17 14:28     ` Cyril Roelandt
  0 siblings, 1 reply; 7+ messages in thread
From: Ludovic Courtès @ 2013-08-16 17:45 UTC (permalink / raw)
  To: Cyril Roelandt; +Cc: guix-devel

Cyril Roelandt <tipecaml@gmail.com> skribis:

> * gnu/packages/datefudge.scm: New file.
> * gnu-system.am (GNU_SYSTEM_MODULES): Add it.

Fine, modulo minor stylistic issues:

> +             (uri (string-append
> +                   "http://ftp.de.debian.org/debian/pool/main/d/"
> +                   "datefudge/datefudge_" version ".tar.gz"))

(Eventually we should add ‘debian’ to %mirrors in guix/download.scm.)

> +        (alist-replace
> +         'configure
> +         (lambda* (#:key version outputs #:allow-other-keys #:rest args)
> +          (pk version outputs)

Leftover debugging statements, and ‘version’ doesn’t exist.

What you can do is use:

  (arguments
    `( ...
       ,version
       ...
      ))

to paste the ‘version’ field of the package being defined in the
quasiquote expression.

> +           (substitute* "Makefile"
> +             (("^VERSION.*$") (string-append "VERSION=" version)))
> +           ;; We do not need to pass these flags to "install".
> +           (substitute* "Makefile"

No need to repeat ‘substitute*’: there can be several substitutations in
a substitute* form.

> +           (substitute* "Makefile"
> +             (("^prefix.*$") (string-append "prefix=" out "\n")))))

Ditto.

> +    (inputs `(("perl" ,perl))) ; Needed for the tests.

‘native-inputs’, probably (if it were being cross-compiled, you’d want
to run the native Perl, right?).

Thanks!

Ludo’.

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

* Re: [PATCH 2/2] gnutls: add datefudge to the inputs.
  2013-08-15 21:58 ` [PATCH 2/2] gnutls: add datefudge to the inputs Cyril Roelandt
@ 2013-08-16 17:46   ` Ludovic Courtès
  0 siblings, 0 replies; 7+ messages in thread
From: Ludovic Courtès @ 2013-08-16 17:46 UTC (permalink / raw)
  To: Cyril Roelandt; +Cc: guix-devel

Cyril Roelandt <tipecaml@gmail.com> skribis:

> ---
>  gnu/packages/gnutls.scm |    4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)

Fine with a commit log.  :-)

Ludo’.

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

* Re: [PATCH 1/2] gnu: Add datefudge.
  2013-08-16 17:45   ` Ludovic Courtès
@ 2013-08-17 14:28     ` Cyril Roelandt
  2013-08-17 21:36       ` Ludovic Courtès
  0 siblings, 1 reply; 7+ messages in thread
From: Cyril Roelandt @ 2013-08-17 14:28 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

On 08/16/2013 07:45 PM, Ludovic Courtès wrote:
> Cyril Roelandt <tipecaml@gmail.com> skribis:
>
>> +        (alist-replace
>> +         'configure
>> +         (lambda* (#:key version outputs #:allow-other-keys #:rest args)
>> +          (pk version outputs)
>
> Leftover debugging statements, and ‘version’ doesn’t exist.
>
> What you can do is use:
>
>    (arguments
>      `( ...
>         ,version
>         ...
>        ))
>
> to paste the ‘version’ field of the package being defined in the
> quasiquote expression.
>

What kind of whitchcraft is this ? This works but I have no idea why. I 
don't think that Duckduckgoing "GNU Guile ," will give me any 
interesting results, so would you care to explain how this works, or 
redirect me to the appropriate documentation ?


>> +           (substitute* "Makefile"
>> +             (("^VERSION.*$") (string-append "VERSION=" version)))
>> +           ;; We do not need to pass these flags to "install".
>> +           (substitute* "Makefile"
>
> No need to repeat ‘substitute*’: there can be several substitutations in
> a substitute* form.
>
>> +           (substitute* "Makefile"
>> +             (("^prefix.*$") (string-append "prefix=" out "\n")))))
>
> Ditto.
>

OK.

>> +    (inputs `(("perl" ,perl))) ; Needed for the tests.
>
> ‘native-inputs’, probably (if it were being cross-compiled, you’d want
> to run the native Perl, right?).
>

Not sure about the difference between inputs and native-inputs. I think 
we may want to improve the documentation:

$ git grep native-inputs doc/
$


Cyril.

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

* Re: [PATCH 1/2] gnu: Add datefudge.
  2013-08-17 14:28     ` Cyril Roelandt
@ 2013-08-17 21:36       ` Ludovic Courtès
  0 siblings, 0 replies; 7+ messages in thread
From: Ludovic Courtès @ 2013-08-17 21:36 UTC (permalink / raw)
  To: Cyril Roelandt; +Cc: guix-devel

Cyril Roelandt <tipecaml@gmail.com> skribis:

> On 08/16/2013 07:45 PM, Ludovic Courtès wrote:
>> Cyril Roelandt <tipecaml@gmail.com> skribis:
>>
>>> +        (alist-replace
>>> +         'configure
>>> +         (lambda* (#:key version outputs #:allow-other-keys #:rest args)
>>> +          (pk version outputs)
>>
>> Leftover debugging statements, and ‘version’ doesn’t exist.
>>
>> What you can do is use:
>>
>>    (arguments
>>      `( ...
>>         ,version
>>         ...
>>        ))
>>
>> to paste the ‘version’ field of the package being defined in the
>> quasiquote expression.
>>
>
> What kind of whitchcraft is this ? This works but I have no idea
> why. I don't think that Duckduckgoing "GNU Guile ," will give me any
> interesting results, so would you care to explain how this works, or
> redirect me to the appropriate documentation ?

It’s not witchcraft, it’s Scheme!  :-)

Basically ` is “quasiquote”, and , (coma) is “unquote”.  Think of

  echo "ls $foo"

See the manual for details (info "(guile) Expression Syntax"), or see
the occurrences of ,name and ,version in ttf-freefont in xorg.scm for an
example.

>>> +    (inputs `(("perl" ,perl))) ; Needed for the tests.
>>
>> ‘native-inputs’, probably (if it were being cross-compiled, you’d want
>> to run the native Perl, right?).
>>
>
> Not sure about the difference between inputs and native-inputs. I
> think we may want to improve the documentation:
>
> $ git grep native-inputs doc/

Agreed.

To illustrate the difference, here’s an example.  Suppose you have a C
program with a Bison-generated C file.  When cross-compiling that
program, you want the native Bison, so that the ‘bison’ program can run
at compile-time; conversely, the resulting executable must be linked
against the target libc–the libc that will actually be used at run time
on the target architecture.

In that case, Bison should be listed in ‘native-inputs’, whereas ‘libc’
should be listed in ‘inputs’ (which it is, implicitly.)

HTH,
Ludo’.

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

end of thread, other threads:[~2013-08-17 21:41 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-15 21:58 [PATCH 0/2] Add datefudge to gnutls inputs Cyril Roelandt
2013-08-15 21:58 ` [PATCH 1/2] gnu: Add datefudge Cyril Roelandt
2013-08-16 17:45   ` Ludovic Courtès
2013-08-17 14:28     ` Cyril Roelandt
2013-08-17 21:36       ` Ludovic Courtès
2013-08-15 21:58 ` [PATCH 2/2] gnutls: add datefudge to the inputs Cyril Roelandt
2013-08-16 17:46   ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).