unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* bug#26294: [PATCH] gnu: rocksdb: Disable tests on 32-bit systems.
@ 2017-03-29  9:42 Marius Bakke
  2017-03-31 19:00 ` Kei Kebreau
  2017-04-17 21:29 ` Ludovic Courtès
  0 siblings, 2 replies; 5+ messages in thread
From: Marius Bakke @ 2017-03-29  9:42 UTC (permalink / raw)
  To: 26294

* gnu/packages/databases.scm (rocksdb)[arguments]: Make #:tests? conditional.
Delete unnecessary 'build' phase.
---
 gnu/packages/databases.scm | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index b87e8a210..e73635910 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -533,12 +533,20 @@ types are supported, as is encryption.")
                   #t))))
     (build-system gnu-build-system)
     (arguments
-     '(#:make-flags (list "CC=gcc"
+     `(#:make-flags (list "CC=gcc"
                           ;; Make the resulting library position-independent so the
                           ;; static version can be included in shared objects.
                           "EXTRA_CXXFLAGS=-fPIC"
                           (string-append "INSTALL_PATH="
                                          (assoc-ref %outputs "out")))
+       ;; Many tests fail on 32-bit platforms. There are multiple reports about
+       ;; this upstream, but it's not going to be supported any time soon.
+       #:tests? (let ((system ,(or (%current-target-system)
+                                   (%current-system)))
+                      (supported-systems '("x86_64-linux" "aarch64-linux")))
+                  (if (member system supported-systems)
+                      #t
+                      #f))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-Makefile
@@ -548,6 +556,8 @@ types are supported, as is encryption.")
                (("#!/bin/sh") (string-append "#!" (which "sh"))))
              #t))
          (delete 'configure)
+         ;; The default target is only needed for tests and built on demand.
+         (delete 'build)
          (add-before 'check 'disable-failing-tests
            (lambda _
              (substitute* "Makefile"
-- 
2.12.2

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

* bug#26294: [PATCH] gnu: rocksdb: Disable tests on 32-bit systems.
  2017-03-29  9:42 bug#26294: [PATCH] gnu: rocksdb: Disable tests on 32-bit systems Marius Bakke
@ 2017-03-31 19:00 ` Kei Kebreau
  2017-04-17 21:29 ` Ludovic Courtès
  1 sibling, 0 replies; 5+ messages in thread
From: Kei Kebreau @ 2017-03-31 19:00 UTC (permalink / raw)
  To: Marius Bakke; +Cc: 26294

[-- Attachment #1: Type: text/plain, Size: 2208 bytes --]

Marius Bakke <mbakke@fastmail.com> writes:

> * gnu/packages/databases.scm (rocksdb)[arguments]: Make #:tests? conditional.
> Delete unnecessary 'build' phase.
> ---
>  gnu/packages/databases.scm | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
> index b87e8a210..e73635910 100644
> --- a/gnu/packages/databases.scm
> +++ b/gnu/packages/databases.scm
> @@ -533,12 +533,20 @@ types are supported, as is encryption.")
>                    #t))))
>      (build-system gnu-build-system)
>      (arguments
> -     '(#:make-flags (list "CC=gcc"
> +     `(#:make-flags (list "CC=gcc"
>                            ;; Make the resulting library position-independent so the
>                            ;; static version can be included in shared objects.
>                            "EXTRA_CXXFLAGS=-fPIC"
>                            (string-append "INSTALL_PATH="
>                                           (assoc-ref %outputs "out")))
> +       ;; Many tests fail on 32-bit platforms. There are multiple reports about
> +       ;; this upstream, but it's not going to be supported any time soon.
> +       #:tests? (let ((system ,(or (%current-target-system)
> +                                   (%current-system)))
> +                      (supported-systems '("x86_64-linux" "aarch64-linux")))
> +                  (if (member system supported-systems)
> +                      #t
> +                      #f))
>         #:phases
>         (modify-phases %standard-phases
>           (add-after 'unpack 'patch-Makefile
> @@ -548,6 +556,8 @@ types are supported, as is encryption.")
>                 (("#!/bin/sh") (string-append "#!" (which "sh"))))
>               #t))
>           (delete 'configure)
> +         ;; The default target is only needed for tests and built on demand.
> +         (delete 'build)
>           (add-before 'check 'disable-failing-tests
>             (lambda _
>               (substitute* "Makefile"

I'm unable to test your claim about 32-bit tests (I'm getting HTTP error code
504 when attempt to access info on hydra.gnu.org), but the package
builds and lints fine for me on x86_64.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

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

* bug#26294: [PATCH] gnu: rocksdb: Disable tests on 32-bit systems.
  2017-03-29  9:42 bug#26294: [PATCH] gnu: rocksdb: Disable tests on 32-bit systems Marius Bakke
  2017-03-31 19:00 ` Kei Kebreau
@ 2017-04-17 21:29 ` Ludovic Courtès
  2017-04-17 21:34   ` Marius Bakke
  1 sibling, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2017-04-17 21:29 UTC (permalink / raw)
  To: Marius Bakke; +Cc: 26294

Hello,

Marius Bakke <mbakke@fastmail.com> skribis:

> * gnu/packages/databases.scm (rocksdb)[arguments]: Make #:tests? conditional.
> Delete unnecessary 'build' phase.
> ---
>  gnu/packages/databases.scm | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
> index b87e8a210..e73635910 100644
> --- a/gnu/packages/databases.scm
> +++ b/gnu/packages/databases.scm
> @@ -533,12 +533,20 @@ types are supported, as is encryption.")
>                    #t))))
>      (build-system gnu-build-system)
>      (arguments
> -     '(#:make-flags (list "CC=gcc"
> +     `(#:make-flags (list "CC=gcc"
>                            ;; Make the resulting library position-independent so the
>                            ;; static version can be included in shared objects.
>                            "EXTRA_CXXFLAGS=-fPIC"
>                            (string-append "INSTALL_PATH="
>                                           (assoc-ref %outputs "out")))
> +       ;; Many tests fail on 32-bit platforms. There are multiple reports about
> +       ;; this upstream, but it's not going to be supported any time soon.
> +       #:tests? (let ((system ,(or (%current-target-system)
> +                                   (%current-system)))
> +                      (supported-systems '("x86_64-linux" "aarch64-linux")))
> +                  (if (member system supported-systems)
> +                      #t
> +                      #f))

This doesn’t work because (%current-target-system) is a GNU triplet,
like “arm-linux-gnueabihf”, whereas (%current-system) is a “system
type”, like “armhf-linux”.

Instead you should use ‘string-prefix?’ or similar.

Other than that, I think it should go in!

Thanks,
Ludo’.

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

* bug#26294: [PATCH] gnu: rocksdb: Disable tests on 32-bit systems.
  2017-04-17 21:29 ` Ludovic Courtès
@ 2017-04-17 21:34   ` Marius Bakke
  2017-05-12 13:27     ` Marius Bakke
  0 siblings, 1 reply; 5+ messages in thread
From: Marius Bakke @ 2017-04-17 21:34 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 26294

[-- Attachment #1: Type: text/plain, Size: 2499 bytes --]

Ludovic Courtès <ludo@gnu.org> writes:

> Hello,
>
> Marius Bakke <mbakke@fastmail.com> skribis:
>
>> * gnu/packages/databases.scm (rocksdb)[arguments]: Make #:tests? conditional.
>> Delete unnecessary 'build' phase.
>> ---
>>  gnu/packages/databases.scm | 12 +++++++++++-
>>  1 file changed, 11 insertions(+), 1 deletion(-)
>>
>> diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
>> index b87e8a210..e73635910 100644
>> --- a/gnu/packages/databases.scm
>> +++ b/gnu/packages/databases.scm
>> @@ -533,12 +533,20 @@ types are supported, as is encryption.")
>>                    #t))))
>>      (build-system gnu-build-system)
>>      (arguments
>> -     '(#:make-flags (list "CC=gcc"
>> +     `(#:make-flags (list "CC=gcc"
>>                            ;; Make the resulting library position-independent so the
>>                            ;; static version can be included in shared objects.
>>                            "EXTRA_CXXFLAGS=-fPIC"
>>                            (string-append "INSTALL_PATH="
>>                                           (assoc-ref %outputs "out")))
>> +       ;; Many tests fail on 32-bit platforms. There are multiple reports about
>> +       ;; this upstream, but it's not going to be supported any time soon.
>> +       #:tests? (let ((system ,(or (%current-target-system)
>> +                                   (%current-system)))
>> +                      (supported-systems '("x86_64-linux" "aarch64-linux")))
>> +                  (if (member system supported-systems)
>> +                      #t
>> +                      #f))
>
> This doesn’t work because (%current-target-system) is a GNU triplet,
> like “arm-linux-gnueabihf”, whereas (%current-system) is a “system
> type”, like “armhf-linux”.
>
> Instead you should use ‘string-prefix?’ or similar.
>
> Other than that, I think it should go in!

Well, I actually tried this recently (also disabling the individual
tests, which was a rabbit hole that ultimately gave an inexplicable
error).

Anyway, when building for i686-linux on x86_64, the compiler appears to
hit a never-ending loop at the linking stage! I'm pretty sure this was
not the case before the core-updates merge (when I tested this), so I
wonder if it's a case of
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26497 .

To be continued, but now it would just cause the build to take up a CPU
core until it times out, rather than failing early..

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

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

* bug#26294: [PATCH] gnu: rocksdb: Disable tests on 32-bit systems.
  2017-04-17 21:34   ` Marius Bakke
@ 2017-05-12 13:27     ` Marius Bakke
  0 siblings, 0 replies; 5+ messages in thread
From: Marius Bakke @ 2017-05-12 13:27 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 26294-done

[-- Attachment #1: Type: text/plain, Size: 2927 bytes --]

Marius Bakke <mbakke@fastmail.com> writes:

> Ludovic Courtès <ludo@gnu.org> writes:
>
>> Hello,
>>
>> Marius Bakke <mbakke@fastmail.com> skribis:
>>
>>> * gnu/packages/databases.scm (rocksdb)[arguments]: Make #:tests? conditional.
>>> Delete unnecessary 'build' phase.
>>> ---
>>>  gnu/packages/databases.scm | 12 +++++++++++-
>>>  1 file changed, 11 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
>>> index b87e8a210..e73635910 100644
>>> --- a/gnu/packages/databases.scm
>>> +++ b/gnu/packages/databases.scm
>>> @@ -533,12 +533,20 @@ types are supported, as is encryption.")
>>>                    #t))))
>>>      (build-system gnu-build-system)
>>>      (arguments
>>> -     '(#:make-flags (list "CC=gcc"
>>> +     `(#:make-flags (list "CC=gcc"
>>>                            ;; Make the resulting library position-independent so the
>>>                            ;; static version can be included in shared objects.
>>>                            "EXTRA_CXXFLAGS=-fPIC"
>>>                            (string-append "INSTALL_PATH="
>>>                                           (assoc-ref %outputs "out")))
>>> +       ;; Many tests fail on 32-bit platforms. There are multiple reports about
>>> +       ;; this upstream, but it's not going to be supported any time soon.
>>> +       #:tests? (let ((system ,(or (%current-target-system)
>>> +                                   (%current-system)))
>>> +                      (supported-systems '("x86_64-linux" "aarch64-linux")))
>>> +                  (if (member system supported-systems)
>>> +                      #t
>>> +                      #f))
>>
>> This doesn’t work because (%current-target-system) is a GNU triplet,
>> like “arm-linux-gnueabihf”, whereas (%current-system) is a “system
>> type”, like “armhf-linux”.
>>
>> Instead you should use ‘string-prefix?’ or similar.
>>
>> Other than that, I think it should go in!
>
> Well, I actually tried this recently (also disabling the individual
> tests, which was a rabbit hole that ultimately gave an inexplicable
> error).
>
> Anyway, when building for i686-linux on x86_64, the compiler appears to
> hit a never-ending loop at the linking stage! I'm pretty sure this was
> not the case before the core-updates merge (when I tested this), so I
> wonder if it's a case of
> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26497 .
>
> To be continued, but now it would just cause the build to take up a CPU
> core until it times out, rather than failing early..

I'm still hitting some loop when building for i686-linux, but decided to
push this patch regardless to see if it works better on native platforms
(especially ARM, now that jemalloc is fixed).

Closing this bug, but will keep an eye on Hydra and open a new bug if
the build farm encounters the same problem.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

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

end of thread, other threads:[~2017-05-12 13:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-29  9:42 bug#26294: [PATCH] gnu: rocksdb: Disable tests on 32-bit systems Marius Bakke
2017-03-31 19:00 ` Kei Kebreau
2017-04-17 21:29 ` Ludovic Courtès
2017-04-17 21:34   ` Marius Bakke
2017-05-12 13:27     ` Marius Bakke

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).