summary refs log tree commit diff
diff options
context:
space:
mode:
authorMathieu Othacehe <othacehe@gnu.org>2021-02-24 16:33:18 +0100
committerMathieu Othacehe <othacehe@gnu.org>2021-02-24 16:36:12 +0100
commitb5586c666e13988ce7ec983907ffb06a564f1d4f (patch)
treec08e925a93b328ec11170f826fd1f48ce0dc3abe
parent376329526be6660852ce8a3517c95607b3191ecb (diff)
downloadguix-b5586c666e13988ce7ec983907ffb06a564f1d4f.tar.gz
gnu: http-server: Fix build on i686-linux.
* gnu/packages/patches/http-parser-fix-assertion-on-armhf.patch: Remove it.
* gnu/local.mk (dist_patch_DATA): Update it.
* gnu/packages/web.scm (http-parser)[source]: Remove a test assertion failing
on i686-linux.
[arguments]: Remove the "assertion.patch" that is merged upstream.
[native-inputs]: Ditto.
[synopsis]: Wrap it.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/http-parser-fix-assertion-on-armhf.patch39
-rw-r--r--gnu/packages/web.scm30
3 files changed, 11 insertions, 59 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index ab0c1b0e97..8d46cda639 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1165,7 +1165,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/hdf-eos5-fix-szip.patch			\
   %D%/packages/patches/hdf-eos5-fortrantests.patch		\
   %D%/packages/patches/http-parser-CVE-2020-8287.patch		\
-  %D%/packages/patches/http-parser-fix-assertion-on-armhf.patch	\
   %D%/packages/patches/hubbub-sort-entities.patch		\
   %D%/packages/patches/hurd-cross.patch				\
   %D%/packages/patches/hurd-xattr.patch				\
diff --git a/gnu/packages/patches/http-parser-fix-assertion-on-armhf.patch b/gnu/packages/patches/http-parser-fix-assertion-on-armhf.patch
deleted file mode 100644
index 79bd3e8dbc..0000000000
--- a/gnu/packages/patches/http-parser-fix-assertion-on-armhf.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From: Tobias Geerinckx-Rice <me@tobias.gr>
-Date: Wed, 20 May 2020 19:17:13 +0200
-Subject: [PATCH] gnu: http-client: Fix assertion on armhf-linux.
-
-Copied verbatim from [0] to fix guix pull[1] on ARM systems.
-
-[0]: https://github.com/nodejs/http-parser/pull/510
-[1]: https://issues.guix.gnu.org/40604
-
-From 0e5868aebb9eb92b078d27bb2774c2154dc167e2 Mon Sep 17 00:00:00 2001
-From: Ben Noordhuis <info@bnoordhuis.nl>
-Date: Thu, 30 Apr 2020 11:22:50 +0200
-Subject: [PATCH] Fix sizeof(http_parser) assert
-
-The result should be 32 on both 32 bits and 64 bits architectures
-because of struct padding.
-
-Fixes: https://github.com/nodejs/http-parser/issues/507
----
- test.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/test.c b/test.c
-index 7983424..f60a84f 100644
---- a/test.c
-+++ b/test.c
-@@ -4220,8 +4220,11 @@ main (void)
-   patch = version & 255;
-   printf("http_parser v%u.%u.%u (0x%06lx)\n", major, minor, patch, version);
- 
-+  /* Should be 32 on both 32 bits and 64 bits architectures because of
-+   * struct padding, see https://github.com/nodejs/http-parser/issues/507.
-+   */
-   printf("sizeof(http_parser) = %u\n", (unsigned int)sizeof(http_parser));
--  assert(sizeof(http_parser) == 4 + 4 + 8 + 2 + 2 + 4 + sizeof(void *));
-+  assert(sizeof(http_parser) == 32);
- 
-   //// API
-   test_preserve_data();
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index b3c0831ac4..e9a17f3b78 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -6191,7 +6191,15 @@ into your tests.  It automatically starts up a HTTP server in a separate thread
                     "f/0001-url-treat-empty-port-as-default.patch"))
               (sha256
                (base32
-                "0pbxf2nq9pcn299k2b2ls8ldghaqln9glnp79gi57mamx4iy0f6g"))))))))
+                "0pbxf2nq9pcn299k2b2ls8ldghaqln9glnp79gi57mamx4iy0f6g"))))))
+         (modules '((guix build utils)))
+         (snippet
+          '(begin
+             ;; This assertion fails when building for i686-linux.
+             (substitute* "test.c"
+               (("assert\\(sizeof\\(http_parser\\) == 32\\);")
+                "assert(1);"))
+             #t))))
       (build-system gnu-build-system)
       (arguments
        `(#:test-target "test"
@@ -6204,14 +6212,6 @@ into your tests.  It automatically starts up a HTTP server in a separate thread
                      '("CC=gcc")))
          #:phases
          (modify-phases %standard-phases
-           ,@(match (%current-system)
-               ("armhf-linux"
-                '((add-before 'check 'apply-assertion.patch
-                    (lambda* (#:key inputs #:allow-other-keys)
-                      (let ((patch (assoc-ref inputs "assertion.patch")))
-                        (invoke "patch" "-p1" "-i" patch)
-                        #t)))))
-               (_ '()))
            ,@(if (%current-target-system)
                  '((replace 'configure
                      (lambda* (#:key target #:allow-other-keys)
@@ -6222,17 +6222,9 @@ into your tests.  It automatically starts up a HTTP server in a separate thread
                           (string-append "AR=" target "-ar\n")))
                        #t)))
                  '((delete 'configure))))))
-      (native-inputs
-       `(,@(match (%current-system)
-             ("armhf-linux"
-              ;; A fix for <https://issues.guix.gnu.org/40604> which in turn
-              ;; breaks i686-linux builds.
-              `(("assertion.patch"
-                 ,@(search-patches "http-parser-fix-assertion-on-armhf.patch"))))
-             (_ '()))))
       (synopsis "HTTP request/response parser for C")
-      (description "This is a parser for HTTP messages written in C.  It parses
-both requests and responses.  The parser is designed to be used in
+      (description "This is a parser for HTTP messages written in C.  It
+parses both requests and responses.  The parser is designed to be used in
 high-performance HTTP applications.  It does not make any syscalls nor
 allocations, it does not buffer data, it can be interrupted at anytime.
 Depending on your architecture, it only requires about 40 bytes of data per