diff options
Diffstat (limited to 'gn')
-rw-r--r-- | gn/packages/web.scm | 305 | ||||
-rw-r--r-- | gn/services/genenetwork.scm | 14 |
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> |