summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaghav Gururajan <rg@raghavgururajan.name>2021-02-25 19:45:04 -0500
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2021-03-20 17:48:56 +0100
commit7f7ad800b08a89bcfe451085d8a93179d684b03c (patch)
treedbbec97d49d7c7ba1c1059ef49f2279781723b04
parentf5e69549ba5d6efcd03f4f50f771a8a76ed73c5b (diff)
gnu: Add qhttp.
* gnu/packages/web.scm (qhttp): New variable. Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
-rw-r--r--gnu/packages/web.scm74
1 files changed, 74 insertions, 0 deletions
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 643de6ad6a..b3be3b734e 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -77,6 +77,7 @@
#:use-module (guix build-system ant)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
@@ -170,6 +171,79 @@
#:use-module (gnu packages xml)
#:use-module ((srfi srfi-1) #:select (delete-duplicates)))
+(define-public qhttp
+ (package
+ (name "qhttp")
+ (version "3.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/azadkuh/qhttp")
+ (commit (string-append "version-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0cx23g4y4k4v9p5ph6h7gfhp8sfy1gcdv1g6bl44hppar1y0zfdq"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; no target
+ #:imported-modules
+ ((guix build copy-build-system)
+ ,@%gnu-build-system-modules)
+ #:modules
+ (((guix build copy-build-system) #:prefix copy:)
+ (guix build gnu-build-system)
+ (guix build utils))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-source
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "commondir.pri"
+ (("\\$\\$PRJDIR/xbin")
+ (string-append (assoc-ref outputs "out") "/lib"))
+ (("-L")
+ "-lhttp_parser -L")
+ (("\\$\\$PRJDIR/3rdparty")
+ ""))
+ (substitute* "src/src.pro"
+ (("SOURCES \\+= \\$\\$PRJDIR/3rdparty/http-parser/http_parser.c")
+ "")
+ (("HEADERS \\+= \\$\\$PRJDIR/3rdparty/http-parser/http_parser.h")
+ ""))
+ (substitute* '("src/private/qhttpbase.hpp" "src/qhttpabstracts.cpp")
+ (("http-parser/http_parser.h")
+ "http_parser.h"))
+ #t))
+ (replace 'configure
+ (lambda _ (invoke "qmake")))
+ (replace 'install
+ (lambda args
+ (apply (assoc-ref copy:%standard-phases 'install)
+ #:install-plan
+ '(("src" "include"
+ #:include-regexp ("\\.hpp$")))
+ args)))
+ (add-after 'install 'remove-examples
+ (lambda* (#:key outputs #:allow-other-keys)
+ (with-directory-excursion
+ (string-append (assoc-ref outputs "out") "/lib")
+ (for-each delete-file
+ (list
+ "basic-server"
+ "helloworld"
+ "postcollector")))
+ #t)))))
+ (inputs
+ `(("http-parser" ,http-parser)
+ ("qtbase" ,qtbase)))
+ (home-page "https://github.com/azadkuh/qhttp/")
+ (synopsis "Qt-based HTTP Library")
+ (description
+ "Qhttp is a light-weight and asynchronous HTTP library
+(both server & client) in Qt5 and C++14.")
+ (license license:expat)))
+
(define-public httpd
(package
(name "httpd")