about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEfraim Flashner2020-08-03 14:18:51 +0300
committerEfraim Flashner2020-08-03 14:36:45 +0300
commit351e983a623162d353427fc8018e9fd372b5b901 (patch)
tree4adeccc98bcabb6407d2bf1dbb2270c65dd0068d
parent63a01f4629e7fce0695e54cadc66075071d6c7a8 (diff)
downloadguix-bioinformatics-351e983a623162d353427fc8018e9fd372b5b901.tar.gz
gn: Upstream httpd22-mod-python-24 to guix-past.
-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>