;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017, 2019 Christopher Baines <mail@cbaines.net>
-;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2018, 2019 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
;;; Copyright © 2018 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org>
+;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages guile)
#:use-module (gnu packages guile-xyz)
#:use-module (gnu packages java)
+ #:use-module (gnu packages javascript)
#:use-module (gnu packages jemalloc)
#:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages libidn)
#:use-module (gnu packages libunistring)
#:use-module (gnu packages linux)
- #:use-module (gnu packages lisp)
#:use-module (gnu packages lua)
#:use-module (gnu packages markup)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages version-control)
#:use-module (gnu packages vim)
- #:use-module (gnu packages xml))
+ #:use-module (gnu packages xml)
+ #:use-module ((srfi srfi-1) #:select (delete-duplicates)))
(define-public httpd
(package
;; ’stable’ and recommends that “in general you deploy the NGINX mainline
;; branch at all times” (https://www.nginx.com/blog/nginx-1-6-1-7-released/)
;; Consider updating the nginx-documentation package together with this one.
- (version "1.17.5")
+ (version "1.17.6")
(source (origin
(method url-fetch)
(uri (string-append "https://nginx.org/download/nginx-"
version ".tar.gz"))
(sha256
(base32
- "1hqhziic4csci8xs4q8vbzpmj2qjkhmmx68zza7h5bvmbbhkbvk3"))))
+ "1dipq90h3n1xdslwbijwlhbk84r7q0bswlbvi970may09lqsbd1w"))))
(build-system gnu-build-system)
(inputs `(("openssl" ,openssl)
("pcre" ,pcre)
"This package provides HTML documentation for the nginx web server.")
(license license:bsd-2))))
+(define-public nginx-accept-language-module
+ ;; Upstream has never made a release; use current commit instead.
+ (let ((commit "2f69842f83dac77f7d98b41a2b31b13b87aeaba7")
+ (revision "1"))
+ (package
+ (name "nginx-accept-language-module")
+ (version (git-version "0.0.0" ;upstream has no version number
+ revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/giom/nginx_accept_language_module.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1hjysrl15kh5233w7apq298cc2bp4q1z5mvaqcka9pdl90m0vhbw"))))
+ (build-system gnu-build-system)
+ (inputs `(("openssl" ,openssl)
+ ("pcre" ,pcre)
+ ("nginx-sources" ,(package-source nginx))
+ ("zlib" ,zlib)))
+ (arguments
+ `(#:tests? #f ; no test target
+ #:make-flags (list "modules")
+ #:modules ((guix build utils)
+ (guix build gnu-build-system)
+ (ice-9 popen)
+ (ice-9 regex)
+ (ice-9 textual-ports))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'unpack-nginx-sources
+ (lambda* (#:key inputs native-inputs #:allow-other-keys)
+ (begin
+ ;; The nginx source code is part of the module’s source.
+ (format #t "decompressing nginx source code~%")
+ (call-with-output-file "nginx.tar"
+ (lambda (out)
+ (let* ((gzip (assoc-ref inputs "gzip"))
+ (nginx-srcs (assoc-ref inputs "nginx-sources"))
+ (pipe (open-pipe* OPEN_READ
+ (string-append gzip "/bin/gzip")
+ "-cd"
+ nginx-srcs)))
+ (dump-port pipe out)
+ (unless (= (status:exit-val (close-pipe pipe)) 0)
+ (error "gzip decompress failed")))))
+ (invoke (string-append (assoc-ref inputs "tar") "/bin/tar")
+ "xvf" "nginx.tar" "--strip-components=1")
+ (delete-file "nginx.tar")
+ #t)))
+ (add-after 'unpack 'convert-to-dynamic-module
+ (lambda _
+ (begin
+ (with-atomic-file-replacement "config"
+ (lambda (in out)
+ ;; cf. https://www.nginx.com/resources/wiki/extending/new_config/
+ (format out "ngx_module_type=HTTP~%")
+ (format out "ngx_module_name=\
+ngx_http_accept_language_module~%")
+ (let* ((str (get-string-all in))
+ (rx (make-regexp
+ "NGX_ADDON_SRCS=\"\\$NGX_ADDON_SRCS (.*)\""))
+ (m (regexp-exec rx str))
+ (srcs (match:substring m 1)))
+ (format out (string-append "ngx_module_srcs=\""
+ srcs "\"~%")))
+ (format out ". auto/module~%")
+ (format out "ngx_addon_name=$ngx_module_name~%"))))))
+ (add-before 'configure 'patch-/bin/sh
+ (lambda _
+ (substitute* "auto/feature"
+ (("/bin/sh") (which "sh")))
+ #t))
+ (replace 'configure
+ ;; This phase is largely copied from the nginx package.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((flags
+ (list ;; A copy of nginx’ flags follows, otherwise we
+ ;; get a binary compatibility error. FIXME: Code
+ ;; duplication is bad.
+ (string-append "--prefix=" (assoc-ref outputs "out"))
+ "--with-http_ssl_module"
+ "--with-http_v2_module"
+ "--with-pcre-jit"
+ "--with-debug"
+ ;; Even when not cross-building, we pass the
+ ;; --crossbuild option to avoid customizing for the
+ ;; kernel version on the build machine.
+ ,(let ((system "Linux") ; uname -s
+ (release "3.2.0") ; uname -r
+ ;; uname -m
+ (machine (match (or (%current-target-system)
+ (%current-system))
+ ("x86_64-linux" "x86_64")
+ ("i686-linux" "i686")
+ ("mips64el-linux" "mips64")
+ ;; Prevent errors when querying
+ ;; this package on unsupported
+ ;; platforms, e.g. when running
+ ;; "guix package --search="
+ (_ "UNSUPPORTED"))))
+ (string-append "--crossbuild="
+ system ":" release ":" machine))
+ ;; The following are the args decribed on
+ ;; <https://www.nginx.com/blog/compiling-dynamic-modules-nginx-plus>.
+ ;; Enabling --with-compat here and in the nginx package
+ ;; would ensure binary compatibility even when using
+ ;; different configure options from the main nginx
+ ;; package. This is not needed for Guix.
+ ;; "--with-compat"
+ "--add-dynamic-module=.")))
+ (setenv "CC" "gcc")
+ (format #t "environment variable `CC' set to `gcc'~%")
+ (format #t "configure flags: ~s~%" flags)
+ (apply invoke "./configure" flags)
+ #t)))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (modules-dir (string-append out "/etc/nginx/modules"))
+ (doc-dir (string-append
+ out "/share/doc/nginx-accept-language-module")))
+ (mkdir-p modules-dir)
+ (copy-file "objs/ngx_http_accept_language_module.so"
+ (string-append
+ modules-dir "/ngx_http_accept_language_module.so"))
+ (mkdir-p doc-dir)
+ (copy-file "README.textile"
+ (string-append doc-dir "/README.textile"))
+ #t))))))
+ (home-page
+ "https://www.nginx.com/resources/wiki/modules/accept_language/")
+ (synopsis "Nginx module for parsing the Accept-Language HTTP header")
+ (description
+ "This nginx module parses the Accept-Language field in HTTP headers and
+chooses the most suitable locale for the user from the list of locales
+supported at your website.")
+ (license (delete-duplicates
+ (cons license:bsd-2 ;license of nginx-accept-language-module
+ ;; The module’s code is linked statically with nginx,
+ ;; therefore nginx’ other licenses may also apply to its
+ ;; binary:
+ (package-license nginx)))))))
+
(define-public fcgi
(package
(name "fcgi")
- (version "2.4.0")
+ (version "2.4.2")
(source
(origin
- (method url-fetch)
+ (method git-fetch)
;; Upstream has disappeared.
- (uri (string-append "https://sources.archlinux.org/other/packages/fcgi/"
- "fcgi-" version ".tar.gz"))
+ (uri (git-reference
+ (url "https://github.com/FastCGI-Archives/fcgi2")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "1f857wnl1d6jfrgfgfpz3zdaj8fch3vr13mnpcpvy8bang34bz36"))
- (patches (search-patches "fcgi-2.4.0-poll.patch"
- "fcgi-2.4.0-gcc44-fixes.patch"))))
+ (base32 "1jhz6jfwv5kawa8kajvg18nfwc1b30f38zc0lggszd1vcmrwqkz1"))))
(build-system gnu-build-system)
;; Parallel building is not supported.
(arguments `(#:parallel-build? #f))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
;; This is an archived fork of the original home page, www.fastcgi.com.
(home-page "https://fastcgi-archives.github.io/")
(synopsis "Language-independent, high-performant extension to CGI")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "12ffczcrryh74c1xssww35ic6yiy2l2xgdd30lshiq9wnzl2brgy"))))
+ (base32 "12ffczcrryh74c1xssww35ic6yiy2l2xgdd30lshiq9wnzl2brgy"))
+ (patches (search-patches "websocketpp-fix-for-boost-1.70.patch"))))
(build-system cmake-build-system)
(inputs `(("boost" ,boost)
("openssl" ,openssl)))
"LibYAML is a YAML 1.1 parser and emitter written in C.")
(license license:expat)))
+(define-public libyaml-2.1
+ (package
+ (inherit libyaml)
+ (version "0.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://pyyaml.org/download/libyaml/yaml-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1karpcfgacgppa82wm2drcfn2kb6q2wqfykf5nrhy20sci2i2a3q"))))))
+
(define-public libquvi-scripts
(package
(name "libquvi-scripts")
(define-public perl-apache-logformat-compiler
(package
(name "perl-apache-logformat-compiler")
- (version "0.35")
+ (version "0.36")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/K/KA/KAZEBURO/"
"Apache-LogFormat-Compiler-" version ".tar.gz"))
(sha256
- (base32 "06i70ydxk2wa2rcqn16842kra2qz3jwk0vk1abq8lah4180c0m0n"))))
+ (base32 "05xcl7j65vakx7x79jqjikyw0nzf60bc2w6hhc0q5sklxq1ral4l"))))
(build-system perl-build-system)
(native-inputs
`(("perl-http-message" ,perl-http-message)
(define-public perl-http-cookies
(package
(name "perl-http-cookies")
- (version "6.05")
+ (version "6.06")
(source (origin
(method url-fetch)
(uri (string-append
version ".tar.gz"))
(sha256
(base32
- "0pbgns2gwgvgg9rglah7ryw0jj13aykyf38lnhm3rwzw3c2cvqaq"))))
+ "13rnz3233vbsfariya4njiyfaj6k94j6bvlyh3dmfmh24hpqgx77"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-http-message" ,perl-http-message)))
(package-with-python2 python-feedparser))
(define-public guix-data-service
- (let ((commit "5e2bc7c6e920e1542ab8fde39dbddca443a7cbc8")
- (revision "4"))
+ (let ((commit "af1324855e1ecaf9b1dd7afcc714d09aaa38f081")
+ (revision "6"))
(package
(name "guix-data-service")
(version (string-append "0.0.1-" revision "." (string-take commit 7)))
(file-name (git-file-name name version))
(sha256
(base32
- "0awfvps7k9bpg3gpgc93y401g7pjabx7mr9960vigad8vddhixqi"))))
+ "1qxs1sbyx894njw4f898wzc5shjj85h9kgz95p8mq1acmazhlhkv"))))
(build-system gnu-build-system)
(arguments
'(#:modules ((guix build utils)
#:test-target "check-with-tmp-database"
#:phases
(modify-phases %standard-phases
- (add-after 'set-paths 'set-GUIX_ENVIRONMENT
- (lambda* (#:key inputs #:allow-other-keys)
- ;; This means guix.el finds the Emacs modules
- (setenv "GUIX_ENVIRONMENT"
- (assoc-ref inputs "emacs-with-modules"))
- #t))
(add-before 'build 'set-GUILE_AUTO_COMPILE
(lambda _
;; To avoid errors relating to guild
("autoconf" ,autoconf)
("automake" ,automake)
("ephemeralpg" ,ephemeralpg)
- ("emacs-with-modules" ,(directory-union
- "emacs-union"
- (list emacs-no-x
- emacs-htmlize)))
+ ("emacs-minimal" ,emacs-minimal)
+ ("emacs-htmlize" ,emacs-htmlize)
("pkg-config" ,pkg-config)))
(synopsis "Store and provide data about GNU Guix")
(description
(define-public xinetd
(package
(name "xinetd")
- (version "2.3.15")
+ ;; This is the maintenance fork currently used by openSUSE and Debian.
+ (version "2.3.15.4")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/xinetd-org/xinetd.git")
- (commit (string-append "xinetd-"
- (string-join (string-split version #\.)
- "-")))))
+ (url "https://github.com/openSUSE/xinetd.git")
+ (commit version)))
(file-name (git-file-name name version))
- (patches (search-patches "xinetd-CVE-2013-4342.patch"
- "xinetd-fix-fd-leak.patch"))
(sha256
- (base32 "0wjai6qagcgxpa1khh639ih7kswgkryc7ll1i4hxhs29sc7irdcn"))))
+ (base32 "0lrp3lcj6azhjplwxws2rx40bkyp6i6bp7n77ndcisb7ninad30q"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--with-loadavg")
#:tests? #f)) ; no tests
- (home-page "https://github.com/xinetd-org/xinetd")
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://github.com/openSUSE/xinetd")
(synopsis "Internet services daemon")
(description "@code{xinetd}, a more secure replacement for @code{inetd},
listens for incoming requests over a network and launches the appropriate
(define-public jo
(package
(name "jo")
- (version "1.2")
+ (version "1.3")
(source
(origin
(method url-fetch)
version "/jo-" version ".tar.gz"))
(sha256
(base32
- "1bmdck53jslrl3anqqpm6iyjdxrz445qzcc4fr37hr3wjg22zv1n"))))
+ "0r6yb8pjsbcqfyac4240a0sj93pb91fv385bpk395cx3f5bcj9fy"))))
(build-system gnu-build-system)
(home-page "https://github.com/jpmens/jo")
(synopsis "Output JSON from a shell")
(define-public java-tomcat
(package
(name "java-tomcat")
- (version "8.5.38")
+ (version "8.5.46")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/tomcat/tomcat-8/v"
version "/src/apache-tomcat-" version "-src.tar.gz"))
(sha256
(base32
- "13pbsyk39g1qph82nngp54mqycmg60rxlxwy4yszsssahrqnggb2"))
+ "0fb49gsqa3r6jrwc54yynvsakq9qbzr2pbxr7a29c2zvja2v65iq"))
(modules '((guix build utils)))
;; Delete bundled jars.
(snippet
'(begin
(for-each delete-file (find-files "." "\\.jar$"))
+ (for-each delete-file (find-files "." "\\.bat$"))
#t))))
(build-system ant-build-system)
(inputs
- `(("java-eclipse-jdt-core" ,java-eclipse-jdt-core)))
- (native-inputs
- `(("java-junit" ,java-junit)))
+ `(("java-commons-daemon" ,java-commons-daemon)
+ ("java-ecj" ,java-ecj)))
(arguments
- `(#:build-target "package"
+ `(#:build-target "deploy"
#:tests? #f; requires downloading some files.
#:phases
(modify-phases %standard-phases
(("<filter token=\"VERSION_BUILT\" value=.*")
"<filter token=\"VERSION_BUILT\" value=\"Jan 1 1970 00:00:00 UTC\"/>"))
#t))
+ (add-after 'unpack 'modify-deploy
+ (lambda _
+ ;; The Tomcat build downloads and copies these files to the
+ ;; bin and lib directory.
+ ;; We instead symlink to the input (see below).
+ (substitute* "build.xml"
+ (("<copy tofile=\"\\$\\{tomcat.build\\}/bin/commons-daemon.jar.*") "")
+ (("<copy file=\"\\$\\{jdt.jar\\}\" todir=\"\\$\\{tomcat.build\\}/lib\"/>")
+ ""))
+ #t))
+ (add-after 'install 'symlink-commons-daemon
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((commons-daemon (assoc-ref inputs "java-commons-daemon"))
+ (files (find-files commons-daemon "commons-daemon-.*\\.jar"))
+ (daemon-jar (car files))
+ (out-bin (string-append (assoc-ref outputs "out") "/bin"))
+ (target (string-append out-bin "/commons-daemon.jar")))
+ (symlink daemon-jar target)
+ #t)))
+ (add-after 'install 'symlink-java-ecj
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((java-ecj (assoc-ref inputs "java-ecj"))
+ (files (find-files java-ecj "ecj.*\\.jar"))
+ (java-ecj-jar (car files))
+ (out-lib (string-append (assoc-ref outputs "out") "/lib"))
+ (target (string-append out-lib "/java-ecj.jar")))
+ (symlink java-ecj-jar target)
+ #t)))
(add-after 'unpack 'generate-properties
(lambda _
;; This could have been passed to make-flags, but getcwd returns
(string-append "base.path=" (getcwd) "/downloads\n"))))
#t))
(replace 'install
- (install-jars "output/build/lib")))))
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (copy-recursively "output/build" out))
+ #t)))))
(home-page "https://tomcat.apache.org")
(synopsis "Java Servlet, JavaServer Pages, Java Expression Language and Java
WebSocket")
#t)))))
(inputs
`(("slf4j" ,java-slf4j-api)
- ("servlet" ,java-tomcat)))
+ ("servlet" ,java-javaee-servletapi)))
(native-inputs
`(("junit" ,java-junit)
("hamcrest" ,java-hamcrest-all)
#t)))))
(inputs
`(("slf4j" ,java-slf4j-api)
- ("servlet" ,java-tomcat)
+ ("java-javaee-servletapi" ,java-javaee-servletapi)
("http" ,java-eclipse-jetty-http)
("io" ,java-eclipse-jetty-io)
("util" ,java-eclipse-jetty-util)))))
#t)))))
(inputs
`(("slf4j" ,java-slf4j-api)
- ("servlet" ,java-tomcat)
+ ("servlet" ,java-javaee-servletapi)
("http" ,java-eclipse-jetty-http)
("server" ,java-eclipse-jetty-server)
("util" ,java-eclipse-jetty-util)))
#t)))))
(inputs
`(("slf4j" ,java-slf4j-api)
- ("servlet" ,java-tomcat)
+ ("java-javaee-servletapi" ,java-javaee-servletapi)
("http" ,java-eclipse-jetty-http)
("http-test" ,java-eclipse-jetty-http-test-classes)
("io" ,java-eclipse-jetty-io)
("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
("java-eclipse-jetty-xml-9.2" ,java-eclipse-jetty-xml-9.2)
- ("java-tomcat" ,java-tomcat)
+ ("java-javaee-servletapi" ,java-javaee-servletapi)
,@(package-inputs java-eclipse-jetty-util-9.2)))
(native-inputs
`(("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
best of DOM, CSS, and jQuery-like methods.")
(license license:expat)))
+(define-public java-signpost-core
+ (package
+ (name "java-signpost-core")
+ (version "1.2.1.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mttkay/signpost")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1l04yj2znch3hpyw90c4g4jan453w7d88l84bgl0c72i2kbb8z7h"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "signpost-core.jar"
+ #:source-dir "signpost-core/src/main/java"
+ #:test-dir "signpost-core/src/test"
+ ;; Tests all fail with InstantiationException from mockito
+ #:tests? #f))
+ (propagated-inputs
+ `(("java-commons-codec" ,java-commons-codec)))
+ (home-page "https://github.com/mttkay/signpost")
+ (synopsis "Lightweight client-side OAuth library for Java")
+ (description "Signpost is the easy and intuitive solution for signing
+HTTP messages on the Java platform in conformance with the OAuth Core 1.0a
+standard. Signpost follows a modular and flexible design, allowing you to
+combine it with different HTTP messaging layers.")
+ (license license:asl2.0)))
+
(define-public tidyp
(package
(name "tidyp")
(build-system go-build-system)
(propagated-inputs
`(("go-github-com-robfig-cron" ,go-github-com-robfig-cron)
- ("go-golang-org-x-time-rate" ,go-golang-org-x-time-rate)))
+ ("go-golang-org-x-time" ,go-golang-org-x-time)))
(arguments
`(#:import-path "github.com/tsileo/poussetaches"))
(home-page "https://github.com/tsileo/poussetaches")