From b5586c666e13988ce7ec983907ffb06a564f1d4f Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Wed, 24 Feb 2021 16:33:18 +0100 Subject: [PATCH] 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. --- gnu/local.mk | 1 - .../http-parser-fix-assertion-on-armhf.patch | 39 ------------------- gnu/packages/web.scm | 30 ++++++-------- 3 files changed, 11 insertions(+), 59 deletions(-) delete mode 100644 gnu/packages/patches/http-parser-fix-assertion-on-armhf.patch 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 -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 -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 @@ (define-public http-parser "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 @@ (define-public http-parser '("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 @@ (define-public http-parser (string-append "AR=" target "-ar\n"))) #t))) '((delete 'configure)))))) - (native-inputs - `(,@(match (%current-system) - ("armhf-linux" - ;; A fix for 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