aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gn/packages/web.scm305
-rw-r--r--gn/services/genenetwork.scm14
2 files changed, 8 insertions, 311 deletions
diff --git a/gn/packages/web.scm b/gn/packages/web.scm
index a9ec973..9290a64 100644
--- a/gn/packages/web.scm
+++ b/gn/packages/web.scm
@@ -1,22 +1,10 @@
(define-module (gn packages web)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
- #:use-module (gnu packages autotools)
- #:use-module (gnu packages compression)
#:use-module (gnu packages fonts)
- #:use-module (past packages python)
- #:use-module (gnu packages python)
- #:use-module (gnu packages readline)
- #:use-module (gnu packages tcl)
- #:use-module (gnu packages tls)
- #:use-module (gnu packages web)
#:use-module (guix packages)
- #:use-module (guix download)
#:use-module (guix git-download)
- #:use-module (guix utils)
- #:use-module (guix build-system gnu)
- #:use-module (guix build-system trivial)
- #:use-module (srfi srfi-1))
+ #:use-module (guix build-system trivial))
; <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
@@ -165,297 +153,6 @@ extensive prebuilt components, and powerful plugins built on jQuery.")
(description "Bootstrap native does not use jquery.")
(license license:expat))))
-(define-public httpd-2.2
- (package
- (inherit httpd)
- (version "2.2.34")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://apache/httpd/httpd-"
- version ".tar.bz2"))
- (sha256
- (base32
- "0q4196krxbyaswl5yzmm0r5ry2dijfhvxjdld3bl0mxcvzaq6cg5"))))
- (inputs
- `(("openssl" ,openssl-1.0)
- ,@(alist-delete "openssl" (package-inputs httpd))))
- (arguments
- (substitute-keyword-arguments (package-arguments httpd)
- ((#:configure-flags flags)
- `(cons "--enable-mods-shared=most" ,flags))))))
-
-(define-public mod-python
- (let ((commit "902bb8700e2c45ffd96b78e2f1146a3c101be7f5")
- (revision "1"))
- (package
- (name "mod-python")
- (version (git-version "3.5.0" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/grisha/mod_python.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0lqlpldw11dml24n05305xzpbjlkay497djjczvgsj5v8djkxcq0"))))
- (build-system gnu-build-system)
- (arguments
- '(#:tests? #f ; tests require a running apache server
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-source
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (substitute* "Makefile.in"
- ;; Don't use httpd's prefix
- (("LIBEXECDIR=.*") (string-append "LIBEXECDIR=" out "/modules\n")))
- (substitute* "scripts/Makefile.in"
- (("BINDIR=.*") (string-append "BINDIR=" out "/bin")))
- (substitute* "dist/setup.py.in"
- ;; we want out modules dir, not httpd's
- ;; If we want SYSCONFDIR to be the same as httpd's :
- ;; (("@SYSCONFDIR@") (string-append (assoc-ref %build-inputs "httpd") "/etc/httpd"))
- (("@LIBEXECDIR@") (string-append out "/modules")))
- (substitute* "dist/Makefile.in"
- (("\\$\\(DESTDIR\\)") "/")
- (("--root") (string-append "--prefix=" out " --root"))))
- #t)))))
- (inputs
- `(("httpd" ,httpd)
- ("readline" ,readline)
- ("python" ,python-2))) ; does not seem to build with python3.7+
- (native-inputs `(("flex" ,(@ (gnu packages flex) flex))))
- (home-page "http://modpython.org/")
- (synopsis "Apache/Python Integration")
- (description "Mod_python is an Apache module that embeds the Python
-interpreter within the server. With mod_python you can write web-based
-applications in Python that will run many times faster than traditional CGI and
-will have access to advanced features such as ability to retain database
-connections and other data between hits and access to Apache internals.")
- (license license:asl2.0))))
-
-;; mod-python, built with python@2.4 and httpd@2.2
-(define-public mod-python-24-httpd22
- (package
- (inherit mod-python)
- (name "mod-python-24-httpd22")
- (version "3.3.1")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://archive.apache.org/dist/httpd/"
- "modpython/mod_python-" version ".tgz"))
- (sha256
- (base32
- "0sss2xi6l1a2z8y6ji0cp8vgyvnhq8zrg0ilkvpj1mygbzyk28xd"))
- (patches
- (list
- (origin
- (method url-fetch)
- (uri "https://sources.debian.org/data/main/liba/libapache2-mod-python/3.3.1-11/debian/patches/04_autoconf_python_multiarch.patch")
- (file-name "mod-python-24-python-discovery.patch")
- (sha256
- (base32
- "0n3zp8j6q0mp0scry7d2hi0baqkim42bqq2c81p4l6mizsy8ry4h")))
- (origin
- (method url-fetch)
- (uri "https://sources.debian.org/data/main/liba/libapache2-mod-python/3.3.1-11/debian/patches/10_bts521965.patch")
- (file-name "mod-python-24-apr13-compat.patch")
- (sha256
- (base32
- "1k2cd2r13938fbm473sn0ivicaylkcqigyqn2wjir9ppch98kybg")))))))
- (arguments
- `(#:imported-modules ((guix build python-build-system)
- ,@%gnu-build-system-modules)
- #:modules ((guix build gnu-build-system)
- (guix build utils)
- ((guix build python-build-system) #:prefix python:))
- #:phases
- (modify-phases %standard-phases
- (replace 'bootstrap
- (lambda* (#:key inputs #:allow-other-keys)
- (let* ((python (assoc-ref inputs "python"))
- (tcl (assoc-ref inputs "tcl"))
- (py-version (python:python-version python))
- (tcl-version ,(version-major+minor (package-version tcl))))
- (substitute* "configure.in"
- (("PY_LIBS=.*")
- (string-append "PY_LIBS=-L" python "/lib/python" py-version "\n"))
- (("PY_LDFLAGS=.*")
- (string-append "PY_LDFLAGS=\"-lpython" py-version
- " -lreadline -lssl -lcrypto"
- " -ltk" tcl-version " -ltcl" tcl-version
- " -lgdbm -ltirpc -lnsl -lz\"\n"))
- (("PY_INCLUDES=.*")
- (string-append "PY_INCLUDES=-I" python "/include/python" py-version "\n")))
- (invoke "autoreconf" "-vfi"))))
- (add-after 'unpack 'patch-sources
- (lambda _
- ;; We can't import cPickle because we don't wrap with Python.
- (substitute* (find-files "." "\\.py$")
- (("import cPickle")
- "try:\n import cPickle\nexcept:\n import pickle as cPickle"))
- #t))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (install-file "src/mod_python.so" (string-append out "/modules"))
- (with-directory-excursion "dist"
- (invoke "python" "setup.py" "install" "--root=/"
- (string-append "--prefix=" out)))
- #t))))))
- (native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("flex" ,(@ (gnu packages flex) flex))))
- (inputs
- `(("httpd" ,httpd-2.2)
- ("python" ,python-2.4)
- ,@(package-inputs python-2.4)))))
-
-(define-public mod-python-24
- (package
- (inherit mod-python-24-httpd22)
- (name "mod-python-24")
- (source
- (origin
- (inherit (package-source mod-python-24-httpd22))
- (patches
- (append
- (origin-patches (package-source mod-python-24-httpd22))
- (list
- (origin
- (method url-fetch)
- (uri "https://sources.debian.org/data/main/liba/libapache2-mod-python/3.3.1-11/debian/patches/20_apache24.patch")
- (file-name "mod-python-24-apache24-compat.patch")
- (sha256
- (base32
- "1bmcx7ki7y486x6490yppssr7dh3a0qyki6gjf2lj83gyh68c0r0"))))))))
- (arguments
- (substitute-keyword-arguments (package-arguments mod-python-24-httpd22)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'patch-sources 'patch-more-sources
- (lambda _
- (substitute* "test/test.py"
- (("2\\.2") "2.4"))
- #t))))))
- (inputs
- `(("httpd" ,httpd)
- ("python" ,python-2.4)
- ,@(package-inputs python-2.4)))))
-
-;; httpd and mod-python, built with python@2.4, in the same prefix
-(define-public httpd-mod-python-24
- (package
- (inherit httpd)
- (name "httpd-mod-python-24")
- (arguments
- `(#:imported-modules ((guix build python-build-system)
- ,@%gnu-build-system-modules)
- #:modules (((guix build gnu-build-system) #:prefix gnu:)
- (guix build utils)
- ,@%gnu-build-system-modules
- ((guix build python-build-system) #:prefix python:))
- ,@(substitute-keyword-arguments (package-arguments httpd)
- ((#:phases phases '%standard-phases)
- `(modify-phases ,phases
- (add-after 'install 'unpack-mod-python
- (lambda* args
- ((assoc-ref gnu:%standard-phases 'unpack)
- #:source (assoc-ref %build-inputs "mod-python"))))
- (add-after 'unpack-mod-python 'change-directory
- (lambda _
- ;; Make sure we're in the correct folder
- (chdir "../mod_python-3.3.1")
- #t))
- (add-after 'change-directory 'bootstrap-mod-python
- (lambda* (#:key inputs #:allow-other-keys)
- (let* ((python (assoc-ref inputs "python"))
- (tcl (assoc-ref inputs "tcl"))
- (py-version (python:python-version python))
- (tcl-version ,(version-major+minor (package-version tcl))))
- (substitute* "configure.in"
- (("PY_LIBS=.*")
- (string-append "PY_LIBS=\"" python
- "/lib/libpython" py-version ".so "
- " -lpthread -ldl -lutil -lm" ; LIB[SMC]
- " -lpython" py-version
- " -lreadline -lssl -lcrypto"
- " -ltk" tcl-version " -ltcl" tcl-version
- " -lgdbm -ltirpc -lnsl -lz\"\n"))
- (("PY_LDFLAGS=.*")
- (string-append "PY_LDFLAGS=\"-Wl,-rpath=" python "/lib -Wl,-rpath=" python "/lib/python" py-version "/lib-dynload\"\n"))
- (("PY_INCLUDES=.*")
- (string-append "PY_INCLUDES=-I" python "/include/python" py-version "\n")))
- (invoke "autoreconf" "-vfi"))))
- (add-after 'bootstrap-mod-python 'patch-bin-file-mod-python
- (assoc-ref gnu:%standard-phases 'patch-usr-bin-file))
- (add-after 'patch-bin-file-mod-python 'patch-source-shebangs-mod-python
- (assoc-ref gnu:%standard-phases 'patch-source-shebangs))
- (add-after 'patch-source-shebangs-mod-python 'configure-mod-python
- (lambda* args
- ((assoc-ref gnu:%standard-phases 'configure)
- #:outputs %outputs
- #:inputs %build-inputs
- #:configure-flags (list (string-append "--with-apxs="
- (assoc-ref %outputs "out")
- "/bin/apxs")))))
- (add-after 'configure-mod-python 'patch-more-shebangs-mod-python
- (assoc-ref gnu:%standard-phases 'patch-generated-file-shebangs))
- (add-after 'patch-more-shebangs-mod-python 'make-mod-python
- (assoc-ref gnu:%standard-phases 'build))
- (add-after 'make-mod-python 'install-mod-python
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (install-file "src/mod_python.so" (string-append out "/modules"))
- (with-directory-excursion "dist"
- (invoke "python" "setup.py" "install" "--root=/"
- (string-append "--prefix=" out)))
- #t)))
- (add-after 'install-mod-python 'wrap-programs
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (python (assoc-ref inputs "python"))
- (py-version (python:python-version python)))
- ;; httpd needs to be able to find mod_python
- (wrap-program (string-append out "/bin/httpd")
- `("PYTHONPATH" ":" prefix
- (,(string-append out "/lib/python" py-version "/site-packages"))))
- #t))))))))
- (native-inputs
- `(,@(package-native-inputs httpd)
- ,@(package-native-inputs mod-python-24)
- ("mod-python" ,(package-source mod-python-24))))
- (inputs
- `(,@(alist-delete "openssl" (package-inputs httpd))
- ,@(package-inputs python-2.4)
- ("python" ,python-2.4)))))
-
-;; httpd@2.2 and mod-python, built with python@2.4, in the same prefix
-(define-public httpd22-mod-python-24
- (package
- (inherit httpd-mod-python-24)
- (name "httpd22-mod-python-24")
- (version (package-version httpd-2.2))
- (source
- (origin
- (inherit (package-source httpd-2.2))))
- (arguments
- (substitute-keyword-arguments (package-arguments httpd-mod-python-24)
- ((#:configure-flags flags)
- `(cons "--enable-mods-shared=most" ,flags))))
- (native-inputs
- `(,@(package-native-inputs httpd-2.2)
- ,@(package-native-inputs mod-python-24-httpd22)
- ("mod-python" ,(package-source mod-python-24-httpd22))))
- (inputs
- `(,@(package-inputs httpd-2.2)
- ,@(package-inputs python-2.4)
- ("python" ,python-2.4)))))
-
(define-public web-font-awesome
(package
(inherit font-awesome)
diff --git a/gn/services/genenetwork.scm b/gn/services/genenetwork.scm
index bf295aa..7de1821 100644
--- a/gn/services/genenetwork.scm
+++ b/gn/services/genenetwork.scm
@@ -3,11 +3,10 @@
(use-modules (gnu)
(ice-9 match)
(past packages python)
+ (past packages web)
(gn packages genenetwork)
- (gn packages python24)
- (gn packages web))
+ (gn packages python24))
(use-service-modules web)
-(use-package-modules python)
(define %default-httpd22-modules
(map (match-lambda
@@ -90,12 +89,13 @@
(services (list (service httpd-service-type
(httpd-configuration
- (package httpd22-mod-python-24) ; Must be httpd-2.2
+ ;; Must be a httpd-2.2 variant.
+ (package httpd22-with-mod-python)
(config
(httpd-config-file
(server-name "www.genenetwork.org")
;; Defaults to httpd, should be same as 'package' above.
- (server-root httpd22-mod-python-24)
+ (server-root httpd22-with-mod-python)
(user "nobody")
(group "root")
;; Only while debugging
@@ -108,10 +108,10 @@
(file "modules/mod_python.so"))
%default-httpd22-modules))
(extra-config (list "\
-TypesConfig " httpd22-mod-python-24 "/etc/httpd/mime.types
+TypesConfig " httpd22-with-mod-python "/etc/httpd/mime.types
DefaultType application/octet-stream
# DocumentRoot MUST NOT be in the PythonPath. Because genenetwork1 must be in PythonPath we leave the document-root keyword above unset.
-PythonPath \"['/run/current-system/profile/lib/python2.4', '/run/current-system/profile/lib/python2.4/site-packages', '" httpd22-mod-python-24 "/lib/python2.4/site-packages', '" genenetwork1 "/web/webqtl']\"
+PythonPath \"['/run/current-system/profile/lib/python2.4', '/run/current-system/profile/lib/python2.4/site-packages', '" httpd22-with-mod-python "/lib/python2.4/site-packages', '" genenetwork1 "/web/webqtl']\"
# same as 'listen' above
NameVirtualHost *:8042
<VirtualHost *:8042>