me
/
guix
Archived
1
0
Fork 0

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.
master
Mathieu Othacehe 2021-02-24 16:33:18 +01:00
parent 376329526b
commit b5586c666e
No known key found for this signature in database
GPG Key ID: 8354763531769CA6
3 changed files with 11 additions and 59 deletions

View File

@ -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 \

View File

@ -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();

View File

@ -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