aboutsummaryrefslogtreecommitdiff
path: root/gn
diff options
context:
space:
mode:
Diffstat (limited to 'gn')
-rw-r--r--gn/packages/bnw.scm2
-rw-r--r--gn/packages/crates-io.scm2
-rw-r--r--gn/packages/cwl.scm150
-rw-r--r--gn/packages/edash.scm23
-rw-r--r--gn/packages/genenetwork.scm29
-rw-r--r--gn/packages/graphviz.scm42
-rw-r--r--gn/packages/jupyterhub.scm150
-rw-r--r--gn/packages/mailman.scm1735
-rw-r--r--gn/packages/python.scm11
-rw-r--r--gn/packages/python24.scm112
-rw-r--r--gn/packages/twint.scm65
-rw-r--r--gn/packages/web.scm277
-rw-r--r--gn/services/genenetwork.scm68
13 files changed, 216 insertions, 2450 deletions
diff --git a/gn/packages/bnw.scm b/gn/packages/bnw.scm
index 043077d..bdcaeb0 100644
--- a/gn/packages/bnw.scm
+++ b/gn/packages/bnw.scm
@@ -6,7 +6,7 @@
#:use-module (gnu packages gcc)
#:use-module (gnu packages python)
#:use-module (gnu packages statistics)
- #:use-module (gn packages graphviz)
+ #:use-module (past packages graphviz)
#:use-module (gn packages javascript)
#:use-module (gn packages maths)
#:use-module (gn packages python)
diff --git a/gn/packages/crates-io.scm b/gn/packages/crates-io.scm
index f8c2cba..775a5e9 100644
--- a/gn/packages/crates-io.scm
+++ b/gn/packages/crates-io.scm
@@ -31,7 +31,7 @@
;("rust-blas-src" ,rust-blas-src-0.2)
("rust-cblas-sys" ,rust-cblas-sys-0.1)
("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
- ("rust-serde" ,rust-serde-1.0))
+ ("rust-serde" ,rust-serde-1))
#:cargo-development-inputs
(("rust-defmac" ,rust-defmac-0.1)
("rust-quickcheck" ,rust-quickcheck-0.7)
diff --git a/gn/packages/cwl.scm b/gn/packages/cwl.scm
index be531f6..3e0576c 100644
--- a/gn/packages/cwl.scm
+++ b/gn/packages/cwl.scm
@@ -1,91 +1,109 @@
-;; Experimental packaging for the Common Workflow Language (started by Bruno)
-
(define-module (gn packages cwl)
#:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gn packages python)
+ #:use-module (guix download)
+ #:use-module (guix packages)
+ #:use-module (guix build-system python)
#:use-module (gnu packages)
#:use-module (gnu packages check)
- #:use-module (gnu packages databases)
- #:use-module (gnu packages python)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages node)
#:use-module (gnu packages rdf)
#:use-module (gnu packages serialization)
#:use-module (gnu packages time)
- #:use-module (gnu packages version-control)
- #:use-module (gnu packages xml)
- #:use-module (gn packages python)
- #:use-module (guix download)
- #:use-module (guix packages)
- #:use-module (guix git-download)
- #:use-module (guix utils)
- ; #:use-module (guix build-system gnu)
- #:use-module (guix build-system python)
- ; #:use-module (guix build-system trivial)
- #:use-module (srfi srfi-1))
+ #:use-module (gnu packages xml))
-(define-public cwltool ; guix: needs work
- (let ((commit "15539fba76993f951af9eba913bea6d677c74005"))
+(define-public cwltool
(package
(name "cwltool")
- (version "1.0.20181012180214")
+ (version "3.0.20200710214758")
(source
(origin
- ; (method url-fetch)
- ; (uri (string-append
- ; "https://pypi.python.org/packages/source/c/cwltool/cwltool-"
- ; version
- ; ".tar.gz"))
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/genenetwork/cwltool.git") ;; my repo for Python 3.7
- (commit commit)))
- (file-name (git-file-name name (string-append version "-" (string-take commit 7))))
+ (method url-fetch)
+ (uri (pypi-uri "cwltool" version))
(sha256
- (base32
- "1qwfa82car7477sy0cb5bj4964w7zq7dcw2bdcls6c2i9qdp0586"))))
+ (base32
+ "1qbqkhinkhzg98jf24d5gnafsw23kng76rbi2hfvzl18bdsp1zz5"))))
(build-system python-build-system)
- (propagated-inputs ; a lot of these are used for testing
- `(("git" ,git)
- ("node" ,node)
- ("python-bagit" ,python-bagit)
- ("python-arcp" ,python-arcp)
- ("python-setuptools" ,python-setuptools)
- ("python-dateutil" ,python-dateutil)
- ("python-pytest-cov" ,python-pytest-cov)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'loosen-version-restrictions
+ (lambda _
+ (substitute* "setup.py"
+ (("== 1.5.1") ">=1.5.1"))
+ #t))
+ (add-after 'unpack 'modify-tests
+ (lambda _
+ ;; Tries to connect to the internet.
+ (delete-file "tests/test_udocker.py")
+ (substitute* "tests/test_http_input.py"
+ (("https://raw.githubusercontent.com/common-workflow-language/cwltool/main")
+ "."))
+ (substitute* "tests/test_load_tool.py"
+ (("def test_load_graph_fragment_from_packed")
+ "@pytest.mark.skip(reason=\"Disabled by Guix\")\ndef test_load_graph_fragment_from_packed"))
+ (substitute* "tests/test_examples.py"
+ (("def test_env_filtering")
+ "@pytest.mark.skip(reason=\"Disabled by Guix\")\ndef test_env_filtering"))
+ ;; Tries to use cwl-runners.
+ (substitute* "tests/test_examples.py"
+ (("def test_v1_0_arg_empty_prefix_separate_false")
+ "@pytest.mark.skip(reason=\"Disabled by Guix\")\ndef test_v1_0_arg_empty_prefix_separate_false"))
+ #t)))))
+ (propagated-inputs
+ `(("python-bagit" ,python-bagit)
+ ("python-coloredlogs" ,python-coloredlogs)
+ ("python-mypy-extensions" ,python-mypy-extensions)
("python-prov" ,python-prov)
- ("python-pytest-runner" ,python-pytest-runner)
+ ("python-psutil" ,python-psutil)
("python-rdflib" ,python-rdflib)
- ("python-pyparsing" ,python-pyparsing)
- ("python-pytest-mock" ,python-pytest-mock)
- ("python-mock" ,python-mock)
- ("python-subprocess32" ,python-subprocess32)
+ ("python-requests" ,python-requests)
("python-ruamel.yaml" ,python-ruamel.yaml)
+ ("python-schema-salad" ,python-schema-salad)
+ ("python-setuptools" ,python-setuptools)
+ ("python-shellescape" ,python-shellescape)
+ ("python-typing-extensions" ,python-typing-extensions)
+ ;; Not listed as needed but seems to be necessary:
+ ("node" ,node)
("python-cachecontrol" ,python-cachecontrol-0.11)
+ ("python-dateutil" ,python-dateutil)
("python-lxml" ,python-lxml)
- ("python-mypy-extensions" ,python-mypy-extensions)
- ("python-mistune" ,python-mistune)
- ("python-networkx" ,python-networkx)
- ("python-schema-salad" ,python-schema-salad)
- ("python-html5lib" ,python-html5lib)
- ("python-rdflib-jsonld" ,python-rdflib-jsonld)
- ("python-scandir" ,python-scandir)
- ("python-psutil" ,python-psutil)
- ))
- ; (arguments `(#:tests? #f)) ;; CWL includes no tests.
- (arguments
- `(;#:phases
- ; (modify-phases %standard-phases
- ; (replace 'check
- ; (lambda* (#:key inputs outputs #:allow-other-keys)
- ; (invoke "python" "-m" "pytest")
- ; )))
- #:tests? #f)) ; Disable for now
+ ("python-networkx" ,python-networkx)))
+ (native-inputs
+ `(("python-arcp" ,python-arcp)
+ ("python-humanfriendly" ,python-humanfriendly)
+ ("python-mock" ,python-mock)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-pytest-mock" ,python-pytest-mock)
+ ("python-pytest-runner" ,python-pytest-runner)
+ ("python-rdflib-jsonld" ,python-rdflib-jsonld)))
+ (home-page
+ "https://github.com/common-workflow-language/common-workflow-language")
+ (synopsis "Common workflow language reference implementation")
+ (description
+ "Common workflow language reference implementation.")
+ (license license:asl2.0)))
+(define-public cwl-runner
+ (package
+ (name "cwl-runner")
+ (version "1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "cwl_runner" version))
+ (sha256
+ (base32
+ "0011am2xqwchysdznayrmwhg4bfjl4wlq6m4k20z1m7gccyzjgw0"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("cwltool" ,cwltool)))
(home-page
- "https://github.com/common-workflow-language/common-workflow-language")
- (synopsis
- "Common workflow language reference implementation")
+ "https://github.com/common-workflow-language/common-workflow-language")
+ (synopsis "Common workflow language reference implementation")
(description
- "Common workflow language reference implementation")
- (license license:asl2.0))))
+ "Common workflow language reference implementation.")
+ (license license:asl2.0)))
diff --git a/gn/packages/edash.scm b/gn/packages/edash.scm
index 53071b1..7f52393 100644
--- a/gn/packages/edash.scm
+++ b/gn/packages/edash.scm
@@ -7,6 +7,7 @@
#:use-module (gnu packages web)
#:use-module (gnu packages base)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-check)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages python-crypto)
@@ -226,28 +227,6 @@ necessary.")
"A collection of helpers and mock objects for unit tests and doc tests.")
(license license:expat)))
-(define-public python-pytest-aiohttp
- (package
- (name "python-pytest-aiohttp")
- (version "0.3.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "pytest-aiohttp" version))
- (sha256
- (base32
- "0kx4mbs9bflycd8x9af0idcjhdgnzri3nw1qb0vpfyb3751qaaf9"))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-pytest" ,python-pytest)
- ("python-aiohttp" ,python-aiohttp)
- ("python-pytest-timeout" ,python-pytest-timeout)))
- (home-page
- "https://github.com/aio-libs/pytest-aiohttp/")
- (synopsis "pytest plugin for aiohttp support")
- (description "pytest plugin for aiohttp support")
- (license license:asl2.0)))
-
(define-public python-aiohttp-jinja2
(package
(name "python-aiohttp-jinja2")
diff --git a/gn/packages/genenetwork.scm b/gn/packages/genenetwork.scm
index 671d5e9..8a76327 100644
--- a/gn/packages/genenetwork.scm
+++ b/gn/packages/genenetwork.scm
@@ -31,13 +31,13 @@
#:use-module (gnu packages web)
#:use-module (gnu packages wget)
#:use-module (gnu packages xml)
+ #:use-module (past packages graphviz)
#:use-module (past packages python)
#:use-module (gn packages bioinformatics)
#:use-module (gn packages twint)
#:use-module (gn packages crates-io)
#:use-module (gn packages elixir)
#:use-module (gn packages gemma)
- #:use-module (gn packages graphviz)
#:use-module (gn packages javascript)
#:use-module (gn packages phewas)
#:use-module (gn packages python)
@@ -259,8 +259,8 @@ implemented, light on server resource usage, and fairly speedy.")
(("rust-rand" ,rust-rand-0.6)
("rust-structopt" ,rust-structopt-0.2)
("rust-rayon" ,rust-rayon-1)
- ("rust-serde" ,rust-serde-1.0)
- ("rust-serde-json" ,rust-serde-json-1.0)
+ ("rust-serde" ,rust-serde-1)
+ ("rust-serde-json" ,rust-serde-json-1)
("rust-ndarray" ,rust-ndarray-0.12))
#:phases
(modify-phases %standard-phases
@@ -318,6 +318,7 @@ implemented, light on server resource usage, and fairly speedy.")
("rust-qtlreaper" ,rust-qtlreaper)
("nginx" ,nginx)
("python-twint" ,python-twint)
+ ("python2-coverage" ,python2-coverage)
("python2-flask" ,python2-flask)
("python2-gunicorn-gn" ,python2-gunicorn-gn)
; ("python2-pillow" ,python2-pillow) - for later!
@@ -334,7 +335,9 @@ implemented, light on server resource usage, and fairly speedy.")
("python2-scipy" ,python2-scipy)
("python2-lxml" ,python2-lxml)
("python2-mechanize" ,python2-mechanize)
+ ("python2-mock" ,python2-mock)
("python2-mysqlclient" ,python2-mysqlclient)
+ ("python2-nose" ,python-nose2)
("python2-numarray" ,python2-numarray)
("python2-numpy" ,python2-numpy)
("python2-pandas" ,python2-pandas)
@@ -823,8 +826,8 @@ written in C")
(license license:agpl3+))))
(define-public genenetwork1
- (let ((commit "19791ce6b3c38be8cbf9bc9cd3e95dbee14116c2") ; Aug 23, 2018
- (revision "1"))
+ (let ((commit "acf65ac9ae4be395c07c1629758f7408bf4eab5f") ; June 3, 2020
+ (revision "2"))
(package
(name "genenetwork1")
(version (git-version "0.0.0" revision commit))
@@ -836,12 +839,11 @@ written in C")
(file-name (git-file-name name version))
(sha256
(base32
- "1s735dj8kf98gf5w58p10zzyc5766gn27j4j5yh07ksadg7h1kdi"))))
+ "0xmmmjyvh80yd8b0cjrwpdmxl8k9zj5ly65r2g9aygx74njsp4fi"))))
(build-system gnu-build-system)
- (propagated-inputs
+ (native-inputs
`(("ghostscript" ,ghostscript)
("graphviz" ,graphviz-2.26)
- ("httpd" ,httpd22-mod-python-24)
("python24" ,python-2.4)
("python-piddle" ,python24-piddle)
("wget" ,wget)))
@@ -879,6 +881,17 @@ written in C")
(("PIDDLE_FONT_PATH.*/lib")
(string-append "PIDDLE_FONT_PATH = '" piddle "/lib"))))
#t))
+ (add-after 'patch-generated-file-shebangs 'changes-for-deployed-service
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "web/webqtl/base/webqtlConfigLocal.py"
+ ;; Where GN1 is located:
+ (("/gnshare/gn") out)
+ ;; Where the database is located:
+ (("tux01") "localhost"))
+ ;; This directory is expected to be writable
+ (symlink "/tmp" "web/tmp")
+ #t)))
(add-before 'install 'replace-htaccess-file
(lambda _
(delete-file "web/webqtl/.htaccess")
diff --git a/gn/packages/graphviz.scm b/gn/packages/graphviz.scm
deleted file mode 100644
index 22a8959..0000000
--- a/gn/packages/graphviz.scm
+++ /dev/null
@@ -1,42 +0,0 @@
-(define-module (gn packages graphviz)
- #:use-module ((guix licenses) #:prefix license:)
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module (guix utils)
- #:use-module (gnu packages gl)
- #:use-module (gnu packages graphviz)
- #:use-module (gnu packages gtk)
- #:use-module (srfi srfi-1))
-
-(define-public graphviz-2.26
- (package
- (inherit graphviz)
- (name "graphviz")
- (version "2.26.3")
- (outputs '("out"))
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- ;; TODO: Replace with official release
- "mirror://debian/pool/main/g/graphviz/"
- "graphviz_" version ".orig.tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "18bzyg17ni0lpcd2g5dhan8fjv3vzkjym38jq8vm42did5p9j47l"))))
- ;; TODO: unbundle libraries?
- (arguments
- `(#:configure-flags '("--enable-swig=no")
- ,@(substitute-keyword-arguments (package-arguments graphviz)
- ((#:phases phases)
- `(modify-phases ,phases
- (delete 'move-docs) ; one output
- (delete 'move-guile-bindings))))))
- (inputs
- ;; TODO(?): Add perl, guile@1.8, gtk@2, lua5.1, tcl8.[3-6], rsvg, python-2.4
- `(("gdk-pixbuf" ,gdk-pixbuf)
- ("freeglut" ,freeglut)
- ,@(fold alist-delete (package-inputs graphviz)
- '("libjpeg-turbo" "guile" "swig"))))
- (license license:cpl1.0)))
diff --git a/gn/packages/jupyterhub.scm b/gn/packages/jupyterhub.scm
index 43da8ec..f3afa65 100644
--- a/gn/packages/jupyterhub.scm
+++ b/gn/packages/jupyterhub.scm
@@ -266,36 +266,6 @@ balancing and can configure itself automatically and dynamically.")
"Simple, generic API for escaping strings.")
(license license:expat)))
-(define-public python-tenacity
- (package
- (name "python-tenacity")
- (version "6.0.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "tenacity" version))
- (sha256
- (base32
- "0w9miqmmi63yqp9lw7p6nf6gh5pa57vg60v6f94f11qqpg19gwvj"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "pytest"))))))
- (propagated-inputs
- `(("python-six" ,python-six)))
- (native-inputs
- `(("python-pytest" ,python-pytest)
- ("python-setuptools-scm" ,python-setuptools-scm)
- ("python-tornado" ,python-tornado)))
- (home-page "https://github.com/jd/tenacity")
- (synopsis "Retry code until it succeeeds")
- (description "Tenacity is a general-purpose retrying library to simplify the
-task of adding retry behavior to just about anything.")
- (license license:asl2.0)))
-
(define-public python-certipy
(package
(name "python-certipy")
@@ -362,126 +332,6 @@ task of adding retry behavior to just about anything.")
(description "PAM interface using ctypes")
(license license:expat)))
-(define-public python-pifpaf
- (package
- (name "python-pifpaf")
- (version "2.2.2")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "pifpaf" version))
- (sha256
- (base32
- "09xixb4ddjp15spbm2788yq6rjr5fzy1p8dzcqyzp6pbkv7vwxvg"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "python" "setup.py" "testr" "--slowest"
- "--testr-args=until-failure"))))))
- (propagated-inputs
- `(("python-click" ,python-click)
- ("python-daiquiri" ,python-daiquiri)
- ("python-fixtures" ,python-fixtures)
- ("python-jinja2" ,python-jinja2)
- ("python-pbr" ,python-pbr)
- ("python-psutil" ,python-psutil)
- ("python-six" ,python-six)
- ("python-xattr" ,python-xattr)))
- (native-inputs
- `(("python-mock" ,python-mock)
- ("python-os-testr" ,python-os-testr)
- ("python-requests" ,python-requests)
- ("python-testrepository" ,python-testrepository)
- ("python-testtools" ,python-testtools)))
- (home-page "https://github.com/jd/pifpaf")
- (synopsis
- "Suite of tools and fixtures to manage daemons for testing")
- (description
- "Suite of tools and fixtures to manage daemons for testing")
- (license license:asl2.0)))
-
-(define-public python-daiquiri
- (package
- (name "python-daiquiri")
- (version "1.6.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "daiquiri" version))
- (sha256
- (base32
- "1hclvhfm3ix40g3m7g14w0nz2qawb7gp3fjba7d6xzxhh9mj6fn1"))))
- (build-system python-build-system)
- (native-inputs
- `(("python-json-logger" ,python-json-logger)
- ("python-pbr" ,python-pbr)
- ("python-pytest" ,python-pytest)
- ("python-six" ,python-six)))
- (home-page "https://github.com/jd/daiquiri")
- (synopsis "Library to configure Python logging easily")
- (description
- "Library to configure Python logging easily")
- (license license:asl2.0)))
-
-(define-public python-xattr
- (package
- (name "python-xattr")
- (version "0.9.6")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "xattr" version))
- (sha256
- (base32
- "0n3llkk488bjywzifgyhyxcfdz22851k3s2h8g69kzmlxa7b5cbw"))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-cffi" ,python-cffi)))
- (home-page "https://github.com/xattr/xattr")
- (synopsis "Python wrapper for extended filesystem attributes")
- (description
- "Python wrapper for extended filesystem attributes")
- (license license:expat)))
-
-(define-public python-json-logger
- (package
- (name "python-json-logger")
- (version "0.1.11")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "python-json-logger" version))
- (sha256
- (base32
- "10g2ya6nsvn5vxzvq2wb8q4d43i3d7756i5rxyjna6d0y9i138xp"))))
- (build-system python-build-system)
- (home-page "https://github.com/madzak/python-json-logger")
- (synopsis "Python library adding a json log formatter")
- (description
- "A python library adding a json log formatter")
- (license license:bsd-3)))
-
-(define-public python-websockets
- (package
- (name "python-websockets")
- (version "8.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "websockets" version))
- (sha256
- (base32
- "03s3ml6sbki24aajllf8aily0xzrn929zxi84p50zkkbikdd4raw"))))
- (build-system python-build-system)
- (home-page "https://github.com/aaugustin/websockets")
- (synopsis "Implementation of the WebSocket Protocol")
- (description
- "An implementation of the WebSocket Protocol (RFC 6455 & 7692).")
- (license license:bsd-3)))
-
(define-public python-pytoml
(package
(name "python-pytoml")
diff --git a/gn/packages/mailman.scm b/gn/packages/mailman.scm
deleted file mode 100644
index db2b92d..0000000
--- a/gn/packages/mailman.scm
+++ /dev/null
@@ -1,1735 +0,0 @@
-(define-module (gn packages mailman)
- #:use-module ((guix licenses) #:prefix license:)
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module (guix build-system python)
- #:use-module (gnu packages check)
- #:use-module (gnu packages compression)
- #:use-module (gnu packages databases)
- #:use-module (gnu packages django)
- #:use-module (gnu packages geo)
- #:use-module (gnu packages libffi)
- #:use-module (gnu packages mail)
- #:use-module (gnu packages ncurses)
- #:use-module (gnu packages python-check)
- #:use-module (gnu packages python-crypto)
- #:use-module (gnu packages python-xyz)
- #:use-module (gnu packages python-web)
- #:use-module (gnu packages time)
- #:use-module (gnu packages tls))
-
-(define-public mailman
- (package
- (name "mailman")
- (version "3.3.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "mailman" version))
- (sha256
- (base32
- "1qph9i93ndahfxi3bb2sd0kjm2c0pkh844ai6zacfmvihl1k3pvy"))))
- (build-system python-build-system)
- (propagated-inputs
- `(("gunicorn" ,gunicorn)
- ("python-aiosmtpd" ,python-aiosmtpd)
- ("python-alembic" ,python-alembic)
- ("python-atpublic" ,python-atpublic)
- ("python-authheaders" ,python-authheaders)
- ("python-authres" ,python-authres)
- ("python-click" ,python-click)
- ("python-dateutil" ,python-dateutil)
- ("python-dnspython" ,python-dnspython)
- ("python-falcon" ,python-falcon)
- ("python-flufl-bounce" ,python-flufl-bounce)
- ("python-flufl-i18n" ,python-flufl-i18n)
- ("python-flufl-lock" ,python-flufl-lock)
- ("python-importlib-resources" ,python-importlib-resources) ; built into python-3.7
- ("python-lazr-config" ,python-lazr-config)
- ("python-passlib" ,python-passlib)
- ("python-requests" ,python-requests)
- ("python-sqlalchemy" ,python-sqlalchemy)
- ("python-zope-component" ,python-zope-component)
- ("python-zope-configuration" ,python-zope-configuration)
- ("python-zope-event" ,python-zope-event)
- ("python-zope-interface" ,python-zope-interface)))
- (home-page "https://www.list.org")
- (synopsis "Mailing list manager")
- (description
- "GNU Mailman is software for managing email discussion and mailing
-lists. Both users and administrators generally perform their actions in a
-web interface, although email and command-line interfaces are also provided.
-The system features built-in archiving, automatic bounce processing, content
-filtering, digest delivery, and more.")
- (license license:gpl3+)))
-
-(define-public python-aiosmtpd
- (package
- (name "python-aiosmtpd")
- (version "1.2")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "aiosmtpd" version))
- (sha256
- (base32
- "1xdfk741pjmz1cm8dsi4n5vq4517i175rm94696m3f7kcgk7xsmp"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'delete-failing-test
- (lambda _
- (delete-file "aiosmtpd/tests/test_smtps.py")
- #t))
- (replace 'check
- (lambda _
- (invoke "python" "-m" "nose2" "-v"))))))
- (native-inputs
- `(("python-flufl-testing" ,python-flufl-testing)
- ("python-nose2" ,python-nose2)))
- (propagated-inputs
- `(("python-atpublic" ,python-atpublic)))
- (home-page "https://aiosmtpd.readthedocs.io/")
- (synopsis "Asyncio based SMTP server")
- (description
- "This project is a reimplementation of the Python stdlib @code{smtpd.py}
-based on asyncio.")
- (license (list license:asl2.0
- license:lgpl3)))) ; only for setup_helpers.py
-
-(define-public python-flufl-testing
- (package
- (name "python-flufl-testing")
- (version "0.8")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "flufl.testing" version))
- (sha256
- (base32
- "1nkm95mhcfhl4x5jgs6y97ikszaxsfh07nyawsih6cxxm6l62641"))))
- (build-system python-build-system)
- (native-inputs
- `(("python-nose2" ,python-nose2)))
- (home-page "https://gitlab.com/warsaw/flufl.testing")
- (synopsis "Collection of test tool plugins")
- (description
- "A small collection of test tool plugins for nose2 and flake8.")
- (license license:asl2.0)))
-
-(define-public python-atpublic
- (package
- (name "python-atpublic")
- (version "1.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "atpublic" version))
- (sha256
- (base32
- "0i3sbxkdlbb4560rrlmwwd5y4ps7k73lp4d8wnmd7ag9k426gjkx"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-before 'build 'enable-c-implementation
- (lambda _
- (setenv "ATPUBLIC_BUILD_EXTENSION" "yes")
- #t))
- (replace 'check
- (lambda _
- (invoke "python" "-m" "nose2" "-v"))))))
- (native-inputs
- `(("python-nose2" ,python-nose2)))
- (home-page "https://public.readthedocs.io/")
- (synopsis "@code{@@public} decorator for populating @code{__all__}")
- (description
- "This Python module adds a @code{@@public} decorator and function which
-populates a module's @code{__all__} and optionally the module globals. With
-it, the declaration of a name's public export semantics are not separated from
-the implementation of that name.")
- (license (list license:asl2.0
- license:lgpl3)))) ; only for setup_helpers.py
-
-(define-public python-authheaders
- (package
- (name "python-authheaders")
- (version "0.12.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "authheaders" version))
- (sha256
- (base32
- "1ljcp8vk2n4xwk8p758b6q5sgdicyj4gxxpkmh33mx21jscn6q4i"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; Remove bundled public suffix list and its license.
- (delete-file "authheaders/public_suffix_list.txt")
- (delete-file "MPL-2.0")
- #t))))
- (build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-before 'build 'configure-public-suffix-list
- ;; Use public suffix list from Guix package.
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((publicsuffix (assoc-ref inputs "python-publicsuffix")))
- (invoke "python" "setup.py" "psllocal"
- (string-append "--path=" publicsuffix "/lib/python"
- (python-version (assoc-ref inputs "python"))
- "/site-packages/publicsuffix"
- "/public_suffix_list.dat"))
- #t)))
- (replace 'check
- (lambda _
- ;; Make it find the only test file.
- (invoke "python" "-m" "unittest" "-v" "test"
- "authheaders/test/test_authentication.py")
- #t)))))
- (propagated-inputs
- `(("python-authres" ,python-authres)
- ("python-dkimpy" ,python-dkimpy)
- ("python-dnspython" ,python-dnspython)
- ("python-publicsuffix" ,python-publicsuffix)))
- (home-page "https://github.com/ValiMail/authentication-headers")
- (synopsis "Library wrapping email authentication header verification and generation")
- (description
- "This is a Python library for the generation of email authentication
-headers. The library can perform DKIM, SPF, and DMARC validation, and the
-results are packaged into the Authentication-Results header. The library can
-DKIM and ARC sign messages and output the corresponding signature headers.")
- ;; The package's metadata claims it were MIT licensed, but the source file
- ;; headers disagree.¬
- (license (list license:zpl2.1 license:zlib))))
-
-(define-public python-authres
- (package
- (name "python-authres")
- (version "1.2.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "authres" version))
- (sha256
- (base32
- "1dr5zpqnb54h4f5ax8334l1dcp8j9083d7v4vdi1xqkwmnavklck"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- ;; Run doctests as described in the README.
- (lambda _
- (invoke "python" "-m" "authres" "-v"))))))
- (home-page "https://launchpad.net/authentication-results-python")
- (synopsis "Email Authentication Results Header Module")
- (description
- "This module can be used to generate and parse RFC 5451/7001/7601
-Authentication-Results headers. It also supports Authentication Results
-extensions:
-@itemize
-@item RFC 5617 DKIM/ADSP
-@item RFC 6008 DKIM signature identification (header.b)
-@item RFC 6212 Vouch By Reference (VBR)
-@item RFC 6577 Sender Policy Framework (SPF)
-@item RFC 7281 Authentication-Results Registration for S/MIME
-@item RFC 7293 The Require-Recipient-Valid-Since Header Field
-@item RFC 7489 Domain-based Message Authentication, Reporting, and Conformance (DMARC)
-@item Authenticated Recieved Chain (ARC) (draft-ietf-dmarc-arc-protocol-08)
-@end itemize
-Note: RFC 7601 obsoletes RFC 5451, 6577, 7001, and 7410. Authres supports the
-current standard. No backward compatibility issues have been noted.")
- (license license:asl2.0)))
-
-(define-public python-flufl-bounce
- (package
- (name "python-flufl-bounce")
- (version "3.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "flufl.bounce" version))
- (sha256
- (base32
- "0k5kjqa3x6gvwwxyzb2vwi1g1i6asm1zw5fivylxz3d583y4kid2"))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-atpublic" ,python-atpublic)
- ("python-zope-interface" ,python-zope-interface)))
- (native-inputs
- `(("python-nose2" ,python-nose2)))
- (home-page "https://fluflbounce.readthedocs.io/en/latest/")
- (synopsis "Email bounce detectors")
- (description "The @code{flufl.bounce} library provides a set of heuristics
-and an API for detecting the original bouncing email addresses from a bounce
-message. Many formats found in the wild are supported, as are VERP and
-RFC 3464.")
- (license (list license:asl2.0
- license:lgpl3)))) ; only for setup_headers.py
-
-(define-public python-flufl-i18n
- (package
- (name "python-flufl-i18n")
- (version "2.0.2")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "flufl.i18n" version))
- (sha256
- (base32
- "1csgds59nx0ann9v2alqr69lakp1cnc1ikmbgn96l6n23js7c2ah"))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-atpublic" ,python-atpublic)))
- (home-page "https://flufli18n.readthedocs.io")
- (synopsis "API for Python internationalization")
- (description
- "This package provides a high level, convenient API for managing
-internationalization translation contexts in Python application. There is a
-simple API for single-context applications, such as command line scripts which
-only need to translate into one language during the entire course of thei
-execution. There is a more flexible, but still convenient API for multi-context
-applications, such as servers, which may need to switch language contexts for
-different tasks.")
- (license license:asl2.0)))
-
-(define-public python-flufl-lock
- (package
- (name "python-flufl-lock")
- (version "3.2")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "flufl.lock" version))
- (sha256
- (base32
- "0nzzd6l30ff6cwsrlrb94xzfja4wkyrqv3ydc6cz0hdbr766mmm8"))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-atpublic" ,python-atpublic)))
- (home-page "https://flufllock.readthedocs.io")
- (synopsis "NFS-safe file locking with timeouts for POSIX systems")
- (description
- "The @dfn{flufl.lock} package provides NFS-safe file locking with
-timeouts for POSIX systems. It is similar to the @code{O_EXCL} option of the
-@code{open} system call but uses a lockfile. Lock objects support lock-breaking
-and have a maximum lifetime built-in.")
- (license (list license:asl2.0
- license:lgpl3)))) ; only for setup_helpers.py
-
-(define-public python-importlib-resources
- (package
- (name "python-importlib-resources")
- (version "1.0.2")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "importlib_resources" version))
- (sha256
- (base32
- "0y3hg12iby1qyaspnbisz4s4vxax7syikk3skznwqizqyv89y9yk"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "python" "-m" "unittest" "discover"))))))
- (propagated-inputs
- `(("python-pathlib2" ,python-pathlib2)))
- (native-inputs
- `(("python-wheel" ,python-wheel)))
- (home-page "https://importlib-resources.readthedocs.io/")
- (synopsis "Read resources from Python packages")
- (description
- "@code{importlib_resources} is a backport of Python 3.7's standard library
-@code{importlib.resources} module for Python 2.7, and 3.4 through 3.6.")
- (license license:asl2.0)))
-
-(define-public python-lazr-config
- (package
- (name "python-lazr-config")
- (version "2.2.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "lazr.config" version))
- (sha256
- (base32
- "1s7pyvlq06qjrkaw9r6nc290lb095n25ybzgavvy51ygpxkgqxwn"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "python" "-s" "-m" "nose" "-P" "lazr"))))))
- (propagated-inputs
- `(("python-lazr-delegates" ,python-lazr-delegates)
- ("python-zope-interface" ,python-zope-interface)))
- (home-page "https://launchpad.net/lazr.config")
- (synopsis "Create configuration schemas and process and validate configurations")
- (description
- "The LAZR config system is typically used to manage process configuration.
-Process configuration is for saying how things change when we run systems on
-different machines, or under different circumstances. This system uses ini-like
-file format of section, keys, and values. The config file supports inheritance
-to minimize duplication of information across files. The format supports schema
-validation.")
- (license license:lgpl3)))
-
-(define-public python-zope-component
- (package
- (name "python-zope-component")
- (version "4.5")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "zope.component" version))
- (sha256
- (base32
- "0mafp41aqcffbfl9dsac34clc7zlpxwwzkx8jllbg4xmqckddpvf"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (add-installed-pythonpath inputs outputs)
- (invoke "python" "setup.py" "test"))))))
- (propagated-inputs
- `(("python-zope-deferredimport" ,python-zope-deferredimport)
- ("python-zope-deprecation" ,python-zope-deprecation)
- ("python-zope-event" ,python-zope-event)
- ("python-zope-hookable" ,python-zope-hookable)
- ("python-zope-interface" ,python-zope-interface)))
- (native-inputs
- `(("python-persistent" ,python-persistent)
- ("python-zope-configuration" ,python-zope-configuration-bootstrap)
- ("python-zope-i18nmessageid" ,python-zope-i18nmessageid)
- ("python-zope-location" ,python-zope-location-bootstrap)
- ("python-zope-proxy" ,python-zope-proxy-bootstrap)
- ("python-zope-security" ,python-zope-security-bootstrap)
- ("python-zope-testing" ,python-zope-testing)
- ("python-zope-testrunner" ,python-zope-testrunner)))
- (home-page "https://github.com/zopefoundation/zope.component")
- (synopsis "Zope Component Architecture")
- (description "Zope Component Architecture")
- (license license:zpl2.1)))
-
-(define-public python-zope-component-bootstrap
- (package
- (inherit python-zope-component)
- (arguments `(#:tests? #f))
- (native-inputs `())
- (properties `((hidden? . #t)))))
-
-(define-public python-zope-configuration
- (package
- (name "python-zope-configuration")
- (version "4.3.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "zope.configuration" version))
- (sha256
- (base32
- "1qb88764fd7nkkmqv7fl9bxd1jirynkg5vbqkpqdiffnkxzp85kf"))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid)
- ("python-zope-interface" ,python-zope-interface)
- ("python-zope-schema" ,python-zope-schema)))
- (native-inputs
- `(("python-manuel" ,python-manuel)
- ("python-zope-schema" ,python-zope-schema)
- ("python-zope-testing" ,python-zope-testing)
- ("python-zope-testrunner" ,python-zope-testrunner)))
- (home-page "https://github.com/zopefoundation/zope.configuration")
- (synopsis "Zope Configuration Markup Language (ZCML)")
- (description
- "Zope Configuration Markup Language (ZCML)")
- (license license:zpl2.1)))
-
-(define-public python-zope-configuration-bootstrap
- (package
- (inherit python-zope-configuration)
- (arguments `(#:tests? #f))
- (native-inputs `())
- (properties `((hidden? . #t)))))
-
-(define-public python-zope-interface
- (package
- (name "python-zope-interface")
- (version "4.6.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "zope.interface" version))
- (sha256
- (base32
- "1rgh2x3rcl9r0v0499kf78xy86rnmanajf4ywmqb943wpk50sg8v"))))
- (build-system python-build-system)
- (native-inputs
- `(("python-coverage" ,python-coverage)
- ("python-nose" ,python-nose)
- ("python-zope-event" ,python-zope-event)))
- (home-page "https://github.com/zopefoundation/zope.interface")
- (synopsis "Interfaces for Python")
- (description "Interfaces for Python")
- (license license:zpl2.1)))
-
-(define-public python-dkimpy
- (package
- (name "python-dkimpy")
- (version "0.9.5")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "dkimpy" version))
- (sha256
- (base32
- "1wlzahsy4dz3w7dzbr6ayd2vqps1zcbj6101lbbgarn43fkpmx3b"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-after 'patch-source-shebangs 'patch-more-source
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((openssl (assoc-ref inputs "openssl")))
- (substitute* "dkim/dknewkey.py"
- (("/usr/bin/openssl") (string-append openssl "/bin/openssl"))))
- #t))
- (replace 'check
- (lambda _
- (invoke "python" "test.py"))))))
- (propagated-inputs
- `(("python-dnspython" ,python-dnspython)))
- (native-inputs
- `(("python-authres" ,python-authres)
- ("python-pynacl" ,python-pynacl)))
- (inputs
- `(("openssl" ,openssl)))
- (home-page "https://launchpad.net/dkimpy")
- (synopsis "DKIM (DomainKeys Identified Mail)")
- (description "Python module that implements @dfn{DKIM} (DomainKeys
-Identified Mail) email signing and verification (RFC6376). It also provides
-helper scripts for command line signing and verification. It supports DKIM
-signing/verifying of ed25519-sha256 signatures (RFC 8463). It also supports
-the RFC 8617 Authenticated Received Chain (ARC) protocol.")
- (license license:bsd-3)))
-
-(define-public python-lazr-delegates
- (package
- (name "python-lazr-delegates")
- (version "2.0.4")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "lazr.delegates" version))
- (sha256
- (base32
- "1rdnl85j9ayp8n85l0ciip621j9dcziz5qnmv2m7krgwgcn31vfx"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "python" "setup.py" "nosetests"))))))
- (propagated-inputs
- `(("python-nose" ,python-nose)
- ("python-zope-interface" ,python-zope-interface)))
- (home-page "https://launchpad.net/lazr.delegates")
- (synopsis "Easily write objects that delegate behavior")
- (description
- "The @code{lazr.delegates} package makes it easy to write objects that
-delegate behavior to another object. The new object adds some property or
-behavior on to the other object, while still providing the underlying interface,
-and delegating behavior.")
- (license license:lgpl3)))
-
-(define-public python-zope-deferredimport
- (package
- (name "python-zope-deferredimport")
- (version "4.3.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "zope.deferredimport" version))
- (sha256
- (base32
- "1q89v54dwniiqypjbwywwdfjdr4kdkqlyqsgrpplgvsygdg39cjp"))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-zope-proxy" ,python-zope-proxy)))
- (native-inputs
- `(("python-zope-testrunner" ,python-zope-testrunner)))
- (home-page "https://github.com/zopefoundation/zope.deferredimport")
- (synopsis "Defer imports until used by code")
- (description
- "Often, especially for package modules, you want to import names for
-convenience, but not actually perform the imports until necessary. The
-@code{zope.deferredimport} package provided facilities for defining names in
-modules that will be imported from somewhere else when used. You can also cause
-deprecation warnings to be issued when a variable is used.")
- (license license:zpl2.1)))
-
-(define-public python-zope-hookable
- (package
- (name "python-zope-hookable")
- (version "4.2.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "zope.hookable" version))
- (sha256
- (base32
- "05fy9lynyglzyiy1nbzdyv3rgvznwv0s0q0dr2hcavv6lclkkpy1"))))
- (build-system python-build-system)
- (native-inputs
- `(("python-coverage" ,python-coverage)
- ("python-zope-testing" ,python-zope-testing)))
- (home-page "https://github.com/zopefoundation/zope.hookable")
- (synopsis "Zope hookable")
- (description "This package supports the efficient creation of hookable
-objects, which are callable objects that are meant to be optionally replaced.
-The idea is that you create a function that does some default thing and make i
-hookable. Later, someone can modify what it does by calling its sethook method
-and changing its implementation. All users of the function, including those
-that imported it, will see the change.")
- (license license:zpl2.1)))
-
-(define-public python-zope-i18nmessageid
- (package
- (name "python-zope-i18nmessageid")
- (version "4.3.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "zope.i18nmessageid" version))
- (sha256
- (base32
- "1qw1f2p4ycqrm5ja4blwv2lllnn8d3jf2ml29pwadlvmivzys4g5"))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-six" ,python-six)))
- (native-inputs
- `(("python-coverage" ,python-coverage)
- ("python-nose" ,python-nose)))
- (home-page "https://github.com/zopefoundation/zope.i18nmessageid")
- (synopsis "Message Identifiers for internationalization")
- (description
- "This package provides facilities for declaring messages within program
-source text; translation of the messages is the responsiblitiy of the
-@code{zope.i18n} package.")
- (license license:zpl2.1)))
-
-(define-public python-zope-schema
- (package
- (name "python-zope-schema")
- (version "4.9.3")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "zope.schema" version))
- (sha256
- (base32
- "178631dks473rfsfd46pmqipz7fdkn9bjd35j6qlgavwf2l1v5rd"))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-zope-event" ,python-zope-event)
- ("python-zope-interface" ,python-zope-interface)))
- (native-inputs
- `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid)
- ("python-zope-testing" ,python-zope-testing)
- ("python-zope-testrunner" ,python-zope-testrunner)))
- (home-page "https://github.com/zopefoundation/zope.schema")
- (synopsis "Zope.interface extension for defining data schemas")
- (description
- "Schemas extend the notion of interfaces to detailed descriptions of
-Attributes (but not methods). Every schema is an interface and specifies the
-public fields of an object. A field roughly corresponds to an attribute of a
-Python object. But a Field provides space for at least a title and a
-description. It can also constrain its value and provide a validation method.
-Besides you can optionally specify characteristics such as its value being
-read-only or not required.")
- (license license:zpl2.1)))
-
-(define-public python-py3dns
- (package
- (name "python-py3dns")
- (version "3.2.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "py3dns" version))
- (sha256
- (base32
- "1r25f0ys5p37bhld7m7n4gb0lrysaym3w318w2f8bncq7r3d81qz"))))
- (build-system python-build-system)
- ;; This package wants to read /etc/resolv.conf. We can't patch it without
- ;; removing functionality so we copy from Nix and "just don't build it".
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-source
- (lambda _
- (substitute* "setup.py"
- (("import DNS") "")
- (("DNS.__version__") (string-append "\"" ,version "\"")))
- #t)))
- #:tests? #f)) ; Also skip the tests.
- (home-page "https://launchpad.net/py3dns")
- (synopsis "Python 3 DNS library")
- (description "This Python 3 module provides a DNS API for looking up DNS
-entries from within Python 3 modules and applications. This module is a
-simple, lightweight implementation.")
- (license license:psfl)))
-
-(define-public python-zope-proxy
- (package
- (name "python-zope-proxy")
- (version "4.3.2")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "zope.proxy" version))
- (sha256
- (base32
- "05svkbri0jsavjy5jk36n1iba7z2ilb07zr8r3516765v5snjvdb"))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-zope-interface" ,python-zope-interface)))
- (native-inputs
- `(("python-zope-security" ,python-zope-security-bootstrap)
- ("python-zope-testrunner" ,python-zope-testrunner)))
- (home-page "https://github.com/zopefoundation/zope.proxy")
- (synopsis "Generic Transparent Proxies")
- (description "@code{zope.proxy} is implemented via a C extension module,
-which lets it do things like lie about its own __class__ that are difficult in
-pure Python (and were completely impossible before metaclasses).")
- (license license:zpl2.1)))
-
-(define-public python-zope-proxy-bootstrap
- (package
- (inherit python-zope-proxy)
- (arguments `(#:tests? #f))
- (native-inputs `())
- (properties `((hidden? . #t)))))
-
-(define-public python-zope-testrunner
- (package
- (name "python-zope-testrunner")
- (version "5.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "zope.testrunner" version))
- (sha256
- (base32
- "0w3q66cy4crpj7c0hw0vvvvwf3g931rnvw7wwa20av7yqvv6ajim"))))
- (build-system python-build-system)
- (arguments
- '(#:tests? #f)) ; Tests can't find zope.exceptions.
- (propagated-inputs
- `(("python-six" ,python-six)
- ("python-zope-exceptions" ,python-zope-exceptions)
- ("python-zope-interface" ,python-zope-interface)))
- (native-inputs
- `(("python-zope-testing" ,python-zope-testing)))
- (home-page "https://github.com/zopefoundation/zope.testrunner")
- (synopsis "Zope testrunner script")
- (description "This package provides a flexible test runner with layer
-support for the Zope framework.")
- (license license:zpl2.1)))
-
-(define-public python-zope-testrunner-bootstrap
- (package
- (inherit python-zope-testrunner)
- (arguments `(#:tests? #f))
- (propagated-inputs
- `(("python-six" ,python-six)
- ("python-zope-exceptions" ,python-zope-exceptions-bootstrap)))
- (properties `((hidden? . #t)))))
-
-(define-public python-zope-exceptions
- (package
- (name "python-zope-exceptions")
- (version "4.3")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "zope.exceptions" version))
- (sha256
- (base32
- "04bjskwas17yscl8bs3l44maxspw1gdji0zcmr499fs420y9r9az"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "zope-testrunner" "--test-path=src" "\\[]"))))))
- (propagated-inputs
- `(("python-zope-interface" ,python-zope-interface)))
- (native-inputs
- `(("python-zope-testrunner" ,python-zope-testrunner-bootstrap)))
- (home-page "https://github.com/zopefoundation/zope.exceptions")
- (synopsis "Zope Exceptions")
- (description "This package contains exception exceptions and
- implementations which are so general purpose that they don't belong in Zope
- application-specific packages.")
- (license license:zpl2.1)))
-
-(define-public python-zope-exceptions-bootstrap
- (package
- (inherit python-zope-exceptions)
- (arguments `(#:tests? #f))
- (propagated-inputs `())
- (native-inputs `())
- (properties `((hidden? . #t)))))
-
-(define-public python-zope-testing
- (package
- (name "python-zope-testing")
- (version "4.7")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "zope.testing" version))
- (sha256
- (base32
- "1sh3c3i0m8n8fnhqiry0bk3rr356i56ry7calmn57s1pvv8yhsyn"))))
- (build-system python-build-system)
- (home-page "https://github.com/zopefoundation/zope.testing")
- (synopsis "Zope testing helpers")
- (description "This package provides a number of Zope testing helpers")
- (license license:zpl2.1)))
-
-(define-public python-persistent
- (package
- (name "python-persistent")
- (version "4.5.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "persistent" version))
- (sha256
- (base32
- "0slbvq1m3rilgyhj6i522rsyv592xv9pmvm61mrmgkgf40kfnz69"))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-cffi" ,python-cffi)
- ("python-zope-interface" ,python-zope-interface)))
- (native-inputs
- `(("python-manuel" ,python-manuel)
- ("python-zope-testrunner" ,python-zope-testrunner)))
- (home-page "https://github.com/zopefoundation/persistent/")
- (synopsis "Translucent persistent objects")
- (description "This package contains a generic persistence implementation for
-Python. It forms the core protocol for making objects interact
-\"transparently\" with a database such as the ZODB.")
- (license license:zpl2.1)))
-
-(define-public python-zope-location
- (package
- (name "python-zope-location")
- (version "4.2")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "zope.location" version))
- (sha256
- (base32
- "1b40pzl8v00d583d3gsxv1qjdw2dhghlgkbgxl3m07d5r3izj857"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "zope-testrunner" "--test-path=src" "\\[]"))))))
- (propagated-inputs
- `(("python-zope-interface" ,python-zope-interface)
- ("python-zope-proxy" ,python-zope-proxy)
- ("python-zope-schema" ,python-zope-schema)))
- (native-inputs
- `(("python-zope-component" ,python-zope-component-bootstrap)
- ("python-zope-configuration" ,python-zope-configuration-bootstrap)
- ("python-zope-copy" ,python-zope-copy-bootstrap)
- ("python-zope-testrunner" ,python-zope-testrunner)))
- (home-page "https://github.com/zopefoundation/zope.location/")
- (synopsis "Zope Location")
- (description "In Zope3, \"locations\" are special objects that have a
-structural location.")
- (license license:zpl2.1)))
-
-(define-public python-zope-location-bootstrap
- (package
- (inherit python-zope-location)
- (arguments `(#:tests? #f))
- (native-inputs `())
- (properties `((hidden? . #t)))))
-
-(define-public python-zope-security
- (package
- (name "python-zope-security")
- (version "4.3.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "zope.security" version))
- (sha256
- (base32
- "1zzaggsq4d9pslzh1h1i9qizsrykrm91iyqzi1dz0vw5rixyaj4l"))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-zope-component" ,python-zope-component)
- ("python-zope-i18nmessageid" ,python-zope-i18nmessageid)
- ("python-zope-interface" ,python-zope-interface)
- ("python-zope-location" ,python-zope-location)
- ("python-zope-proxy" ,python-zope-proxy)
- ("python-zope-schema" ,python-zope-schema)))
- (native-inputs
- `(("python-btrees" ,python-btrees)
- ("python-zope-component" ,python-zope-component-bootstrap)
- ("python-zope-configuration" ,python-zope-configuration-bootstrap)
- ("python-zope-location" ,python-zope-location-bootstrap)
- ("python-zope-testing" ,python-zope-testing)
- ("python-zope-testrunner" ,python-zope-testrunner)))
- (home-page "https://github.com/zopefoundation/zope.security")
- (synopsis "Zope Security Framework")
- (description "The security framework provides a generic mechanism to
-implement security policies on Python objects.")
- (license license:zpl2.1)))
-
-(define-public python-zope-security-bootstrap
- (package
- (inherit python-zope-security)
- (arguments `(#:tests? #f))
- (propagated-inputs
- `(;("python-zope-component" ,python-zope-component-bootstrap)
- ("python-zope-i18nmessageid" ,python-zope-i18nmessageid)
- ("python-zope-interface" ,python-zope-interface)
- ;("python-zope-location" ,python-zope-location)
- ("python-zope-proxy" ,python-zope-proxy-bootstrap)
- ("python-zope-schema" ,python-zope-schema)))
- (native-inputs `())
- (properties `((hidden? . #t)))))
-
-(define-public python-manuel
- (package
- (name "python-manuel")
- (version "1.10.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "manuel" version))
- (sha256
- (base32
- "1bdzay7j70fly5fy6wbdi8fbrxjrrlxnxnw226rwry1c8a351rpy"))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-six" ,python-six)))
- (native-inputs
- `(("python-zope-testing" ,python-zope-testing)))
- (home-page "https://pypi.org/project/manuel/")
- (synopsis "Build tested documentation")
- (description
- "Manuel lets you mix and match traditional doctests with custom test syntax.")
- (license license:asl2.0)))
-
-(define-public python-zope-copy
- (package
- (name "python-zope-copy")
- (version "4.2")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "zope.copy" version))
- (sha256
- (base32
- "06m75434krl57n6p73c2qj55k5i3fixg887j8ss01ih6zw4rvfs7"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "zope-testrunner" "--test-path=src" "\\[]"))))))
- (propagated-inputs
- `(("python-zope-interface" ,python-zope-interface)))
- (native-inputs
- `(("python-zope-component" ,python-zope-component-bootstrap)
- ("python-zope-location" ,python-zope-location-bootstrap)
- ("python-zope-testing" ,python-zope-testing)
- ("python-zope-testrunner" ,python-zope-testrunner)))
- (home-page "https://github.com/zopefoundation/zope.copy")
- (synopsis "Pluggable object copying mechanism")
- (description
- "This package provides a pluggable mechanism for copying persistent objects.")
- (license license:zpl2.1)))
-
-(define-public python-zope-copy-bootstrap
- (package
- (inherit python-zope-copy)
- (arguments `(#:tests? #f))
- (native-inputs `())
- (properties `((hidden? . #t)))))
-
-(define-public python-btrees
- (package
- (name "python-btrees")
- (version "4.6.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "BTrees" version))
- (sha256
- (base32
- "0bmkpg6z5z47p21340nyrfbdv2jkfp80yv085ndgbwaas1zi7ac9"))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-persistent" ,python-persistent)
- ("python-zope-interface" ,python-zope-interface)))
- (native-inputs
- `(("python-persistent" ,python-persistent)
- ("python-transaction" ,python-transaction)
- ("python-zope-testrunner" ,python-zope-testrunner)))
- (home-page "https://github.com/zopefoundation/BTrees")
- (synopsis "Scalable persistent object containers")
- (description
- "This package contains a set of persistent object containers built around a
-modified BTree data structure. The trees are optimized for use inside ZODB's
-\"optimistic concurrency\" paradigm, and include explicit resolution of
-conflicts detected by that mechanism.")
- (license license:zpl2.1)))
-
-(define-public python-transaction
- (package
- (name "python-transaction")
- (version "2.4.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "transaction" version))
- (sha256
- (base32
- "17wz1y524ca07vr03yddy8dv0gbscs06dbdywmllxv5rc725jq3j"))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-zope-interface" ,python-zope-interface)))
- (native-inputs
- `(("python-coverage" ,python-coverage)
- ("python-mock" ,python-mock)
- ("python-nose" ,python-nose)))
- (home-page "https://github.com/zopefoundation/transaction")
- (synopsis "Transaction management for Python")
- (description "This package contains a generic transaction implementation
-for Python. It is mainly used by the ZODB.")
- (license license:zpl2.1)))
-
-(define-public python-mailmanclient-3.3
- (package
- (inherit python-mailmanclient)
- (name "python-mailmanclient")
- (version "3.3.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "mailmanclient" version))
- (sha256
- (base32
- "1s8sbhg1vyc9v9zjwxrh6m8h3qx1nspvrkvcnicbvq9a2nz6qwy8"))))
- (propagated-inputs
- `(("python-requests" ,python-requests)))
- (native-inputs
- `(("python-falcon" ,python-falcon)
- ("python-mailman" ,mailman)
- ("python-pytest" ,python-pytest)
- ("python-pytest-services" ,python-pytest-services)
- ("python-pytest-vcr" ,python-pytest-vcr)))))
-
-(define-public python-pytest-services
- (package
- (name "python-pytest-services")
- (version "1.3.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "pytest-services" version))
- (sha256
- (base32
- "0b2zfv04w6m3gp2v44ifdhx22vcji069qnn95ry3zcyxib7cjnq3"))))
- (build-system python-build-system)
- (arguments '(#:tests? #f)) ; Tests not included in release tarball.
- (propagated-inputs
- `(("python-psutil" ,python-psutil)
- ("python-pytest" ,python-pytest)
- ("python-requests" ,python-requests)
- ("python-setuptools" ,python-setuptools))) ; enumerated in setup.py
- (home-page "https://github.com/pytest-dev/pytest-services")
- (synopsis "Services plugin for pytest testing framework")
- (description
- "This plugin provides a set of fixtures and utility functions to start
-service processes for your tests with pytest.")
- (license license:expat)))
-
-(define-public python-pytest-vcr
- (package
- (name "python-pytest-vcr")
- (version "1.0.2")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "pytest-vcr" version))
- (sha256
- (base32
- "15hq5vwiixhb5n2mdvbmxfn977zkwjm769r74vcl7k5vbavm3vi3"))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-pytest" ,python-pytest)
- ("python-vcrpy" ,python-vcrpy)))
- (home-page "https://github.com/ktosiek/pytest-vcr")
- (synopsis "Plugin for managing VCR.py cassettes")
- (description
- "Plugin for managing VCR.py cassettes")
- (license license:expat)))
-
-(define-public python-mailman-hyperkitty
- (package
- (name "python-mailman-hyperkitty")
- (version "1.1.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "mailman-hyperkitty" version))
- (sha256
- (base32
- "1lfqa9admhvdv71f528jmz2wl0i5cv77v6l64px2pm4zqr9ckkjx"))
- (patches (list (origin
- ;; see: https://gitlab.com/mailman/mailman-hyperkitty/issues/17
- (method url-fetch)
- (uri "https://salsa.debian.org/mailman-team/mailman-hyperkitty/raw/debian/1.1.0-9/debian/patches/0002-Skip-the-test_archive_message_unserializable.patch")
- (sha256
- (base32
- "0p1fwm46c4bl81lvsg3kjhn2r1lwgkpgxamb3xyqn7h9qdrw10hw")))))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-mailman" ,mailman)
- ("python-requests" ,python-requests)
- ("python-setuptools" ,python-setuptools) ; enumerated in setup.py
- ("python-zope-interface" ,python-zope-interface)))
- (native-inputs
- `(("python-mock" ,python-mock)
- ("python-nose2" ,python-nose2)))
- (home-page "https://gitlab.com/mailman/mailman-hyperkitty/")
- (synopsis "Mailman archiver plugin for HyperKitty")
- (description
- "Mailman archiver plugin for HyperKitty")
- (license license:gpl3+)))
-
-(define-public python-hyperkitty
- (package
- (name "python-hyperkitty")
- (version "1.3.2")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "HyperKitty" version))
- (sha256
- (base32
- "092fkv0xyf5vgj33xwq0mh9h5c5d56ifwimaqbfpx5cwc6yivb88"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (setenv "PYTHONPATH" (string-append ".:" (getenv "PYTHONPATH")))
- (invoke "example_project/manage.py" "test"
- "--settings=hyperkitty.tests.settings_test"))))))
- (propagated-inputs
- `(("python-dateutil" ,python-dateutil)
- ("python-django" ,python-django)
- ("python-django-compressor" ,python-django-compressor)
- ("python-django-extensions" ,python-django-extensions)
- ("python-django-gravatar2" ,python-django-gravatar2)
- ("python-django-haystack" ,python-django-haystack)
- ("python-django-mailman3" ,python-django-mailman3)
- ("python-django-q" ,python-django-q)
- ("python-djangorestframework" ,python-djangorestframework)
- ("python-flufl-lock" ,python-flufl-lock)
- ("python-mailmanclient" ,python-mailmanclient-3.3)
- ("python-networkx" ,python-networkx)
- ("python-pytz" ,python-pytz)
- ("python-robot-detection" ,python-robot-detection)))
- (native-inputs
- `(("python-beautifulsoup4" ,python-beautifulsoup4)
- ("python-elasticsearch" ,python-elasticsearch)
- ("python-isort" ,python-isort)
- ("python-mock" ,python-mock)
- ("python-whoosh" ,python-whoosh)))
- (home-page "https://gitlab.com/mailman/hyperkitty")
- (synopsis "Web interface to access GNU Mailman v3 archives")
- (description
- "A web interface to access GNU Mailman v3 archives")
- (license license:gpl3))) ; Some files are gpl2+
-
-(define-public python-django-compressor
- (package
- (name "python-django-compressor")
- (version "2.3")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "django_compressor" version))
- (sha256
- (base32
- "1pbygd00l0k5p1r959131khij1km1a1grfxg0r59ar2wyx3n7j27"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (setenv "DJANGO_SETTINGS_MODULE" "compressor.test_settings")
- (invoke "django-admin" "test"
- "--pythonpath=."))))))
- (propagated-inputs
- `(("python-django-appconf" ,python-django-appconf)
- ("python-rcssmin" ,python-rcssmin)
- ("python-rjsmin" ,python-rjsmin)))
- (native-inputs
- `(("python-beautifulsoup4" ,python-beautifulsoup4)
- ("python-brotli" ,python-brotli)
- ("python-csscompressor" ,python-csscompressor)
- ("python-django-sekizai" ,python-django-sekizai)
- ("python-mock" ,python-mock)))
- (home-page "https://django-compressor.readthedocs.io/en/latest/")
- (synopsis
- "Compresses linked and inline JavaScript or CSS into single cached files")
- (description
- "Compresses linked and inline JavaScript or CSS into single cached files.")
- (license license:expat)))
-
-(define-public python-csscompressor
- (package
- (name "python-csscompressor")
- (version "0.9.5")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "csscompressor" version))
- (sha256
- (base32
- "018ssffvlpnc1salmnpyl52c11glzzwj4k9f757hl4pkpjnjp8mg"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "py.test"))))))
- (native-inputs
- `(("python-pytest" ,python-pytest)))
- (home-page "https://github.com/sprymix/csscompressor")
- (synopsis "Python port of YUI CSS Compressor")
- (description
- "This package provides a python port of YUI CSS Compressor.")
- (license license:bsd-3)))
-
-(define-public python-brotli
- (package
- (name "python-brotli")
- (version "1.0.7")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "Brotli" version ".zip"))
- (sha256
- (base32
- "19x5dqxckb62n37mpnczp21rfxqvgpm0ki5ds8ac65zx8hbxqf05"))))
- (build-system python-build-system)
- (native-inputs
- `(("unzip" ,unzip)))
- (home-page "https://github.com/google/brotli")
- (synopsis "Python bindings for the Brotli compression library")
- (description
- "This package provides python bindings for the Brotli compression library.")
- (license license:asl2.0)))
-
-(define-public python-django-sekizai
- (package
- (name "python-django-sekizai")
- (version "1.0.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "django-sekizai" version))
- (sha256
- (base32
- "052y7cgrmbbdlbl17cgvnarzqb6x9sv21wwprif9pzljzrb36ak4"))))
- (build-system python-build-system)
- (arguments '(#:tests? #f)) ; Test script not included with release.
- (propagated-inputs
- `(("python-django" ,python-django)
- ("python-django-classy-tags" ,python-django-classy-tags)))
- (home-page "https://github.com/divio/django-sekizai")
- (synopsis "Template blocks for Django projects")
- (description "Sekizai means blocks in Japanese, and thats what this app
-provides. A fresh look at blocks. With @code{django-sekizai} you can define
-placeholders where your blocks get rendered and at different places in your
-templates append to those blocks. This is especially useful for css and
-javascript. Your subtemplates can now define css and javscript files to be
-included, and the css will be nicely put at the top and the javascript to the
-bottom, just like you should. Also sekizai will ignore any duplicate content in
-a single block.")
- (license license:bsd-3)))
-
-(define-public python-django-classy-tags
- (package
- (name "python-django-classy-tags")
- (version "0.9.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "django-classy-tags" version))
- (sha256
- (base32
- "0axzsigvmb17ha5mnr3xf6c851kwinjpkxksxwprwjakh1m59d1q"))))
- (build-system python-build-system)
- (arguments '(#:tests? #f)) ; Test script not distributed with release.
- (propagated-inputs
- `(("python-django" ,python-django)))
- (home-page "https://github.com/divio/django-classy-tags")
- (synopsis "Class based template tags for Django")
- (description
- "Class based template tags for Django")
- (license license:bsd-3)))
-
-(define-public python-django-haystack
- (package
- (name "python-django-haystack")
- (version "2.8.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "django-haystack" version))
- (sha256
- (base32
- "1302fqsrx8w474xk5cmnmg3hjqfprlxnjg9qlg86arsr4v4vqm4b"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'loosen-verion-restrictions
- (lambda _
- (substitute* "setup.py"
- (("geopy.*") "geopy',\n"))
- #t))
- (add-before 'check 'set-gdal-lib-path
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "GDAL_LIBRARY_PATH"
- (string-append (assoc-ref inputs "gdal")
- "/lib"))
- #t)))
- #:tests? #f)) ; OSError: libgdal.so.20: cannot open shared object file
- (propagated-inputs
- `(("python-django" ,python-django)))
- (native-inputs
- `(("gdal" ,gdal)
- ("python-coverage" ,python-coverage)
- ("python-dateutil" ,python-dateutil)
- ("python-geopy" ,python-geopy)
- ("python-mock" ,python-mock)
- ("python-nose" ,python-nose)
- ("python-requests" ,python-requests)
- ("python-setuptools-scm" ,python-setuptools-scm)
- ("python-pysolr" ,python-pysolr)
- ("python-whoosh" ,python-whoosh)))
- (home-page "http://haystacksearch.org/")
- (synopsis "Pluggable search for Django")
- (description "Haystack provides modular search for Django. It features a
-unified, familiar API that allows you to plug in different search backends
-(such as Solr, Elasticsearch, Whoosh, Xapian, etc.) without having to modify
-your code.")
- (license license:bsd-3)))
-
-(define-public python-pysolr
- (package
- (name "python-pysolr")
- (version "3.8.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "pysolr" version))
- (sha256
- (base32
- "06x8q23llzcmkbcadcp4ifv3qdm0pxq3ajmrmvwvrdkxc9vb3v48"))))
- (build-system python-build-system)
- (arguments
- '(#:tests? #f)) ; Tests require network access.
- (propagated-inputs
- `(("python-requests" ,python-requests)))
- (native-inputs
- `(("python-setuptools-scm" ,python-setuptools-scm)))
- (home-page "https://github.com/django-haystack/pysolr/")
- (synopsis "Lightweight python wrapper for Apache Solr")
- (description
- "Lightweight python wrapper for Apache Solr.")
- (license license:bsd-3)))
-
-(define-public python-geopy
- (package
- (name "python-geopy")
- (version "1.20.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "geopy" version))
- (sha256
- (base32
- "1qih13l4csa3l6kafbcl6q3vvvvc2b7z3b779865jcb2xs8bq6cl"))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-geographiclib" ,python-geographiclib)))
- (native-inputs
- `(("python-contextlib2" ,python-contextlib2)
- ("python-coverage" ,python-coverage)
- ("python-flake8" ,python-flake8)
- ("python-isort" ,python-isort)
- ("python-mock" ,python-mock)
- ("python-pytest" ,python-pytest)
- ("python-readme-renderer" ,python-readme-renderer)
- ("python-six" ,python-six)))
- (home-page "https://github.com/geopy/geopy")
- (synopsis "Python Geocoding Toolbox")
- (description "Python Geocoding Toolbox")
- (license license:expat)))
-
-(define-public python-geographiclib
- (package
- (name "python-geographiclib")
- (version "1.50")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "geographiclib" version))
- (sha256
- (base32
- "0cn6ap5fkh3mkfa57l5b44z3gvz7j6lpmc9rl4g2jny2gvp4dg8j"))))
- (build-system python-build-system)
- (home-page "https://geographiclib.sourceforge.io/1.50/python/")
- (synopsis "Python geodesic routines from GeographicLib")
- (description
- "This is a python implementation of the geodesic routines in GeographicLib.")
- (license license:expat)))
-
-(define-public python-readme-renderer
- (package
- (name "python-readme-renderer")
- (version "24.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "readme_renderer" version))
- (sha256
- (base32
- "0br0562lnvj339f1nwz4nfl4ay49rw05xkqacigzf9wz4mdza5mv"))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-bleach" ,python-bleach)
- ("python-docutils" ,python-docutils)
- ("python-pygments" ,python-pygments)
- ("python-six" ,python-six)))
- (native-inputs
- `(("python-mock" ,python-mock)
- ("python-pytest" ,python-pytest)))
- (home-page "https://github.com/pypa/readme_renderer")
- (synopsis "Render README files in Warehouse")
- (description
- "Readme Renderer is a library that will safely render arbitrary README
-files into HTML. It is designed to be used in Warehouse to render the
-@code{long_description} for packages. It can handle Markdown, reStructuredText,
-and plain text.")
- (license license:asl2.0)))
-
-(define-public python-django-mailman3
- (package
- (name "python-django-mailman3")
- (version "1.3.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "django-mailman3" version))
- (sha256
- (base32
- "0wppv1q3jkkg2d66qsygc4dfpvhfcj5i2as2xpqnzf3l3w7dgja1"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (setenv "DJANGO_SETTINGS_MODULE" "django_mailman3.tests.settings_test")
- (invoke "django-admin" "test"
- "--pythonpath=."))))))
- (propagated-inputs
- `(("python-django" ,python-django)
- ("python-django-allauth" ,python-django-allauth-gn)
- ("python-django-gravatar2" ,python-django-gravatar2)
- ("python-mailmanclient" ,python-mailmanclient-3.3)
- ("python-pytz" ,python-pytz)))
- (native-inputs
- `(("python-mock" ,python-mock)))
- (home-page "https://gitlab.com/mailman/django-mailman3")
- (synopsis "Django library to help interaction with Mailman")
- (description
- "This package contains libraries and templates for Django-based interfaces
-interacting with Mailman.")
- (license license:gpl3+)))
-
-(define-public python-django-allauth-gn
- (package
- (inherit python-django-allauth)
- (name "python-django-allauth")
- (version "0.40.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "django-allauth" version))
- (sha256
- (base32
- "12f5gjidcpb7a0d1f601k0c5dcdmb6fg9sfn7xn5j8zfsg29y63a"))))
- (arguments
- '(#:tests? #f)) ; skip tests for now
- (propagated-inputs
- `(("python-django" ,python-django)
- ("python-openid" ,python-openid)
- ("python-requests" ,python-requests)
- ("python-requests-oauthlib" ,python-requests-oauthlib)))))
-
-(define-public python-django-q
- (package
- (name "python-django-q")
- (version "1.0.2")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "django-q" version))
- (sha256
- (base32
- "17q7q7xgrdpix4qkv3gkdp1qf5k4zclg1jsacvc4i1ypqrc1y23h"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (setenv "DJANGO_SETTINGS_MODULE" "django_q.tests.settings")
- (invoke "django-admin" "test" "django_q.tests"
- "--pythonpath=."))))))
- (propagated-inputs
- `(("python-arrow" ,python-arrow)
- ("python-blessed" ,python-blessed)
- ("python-django" ,python-django)
- ("python-django-picklefield" ,python-django-picklefield)))
- (native-inputs
- `(("python-django-redis" ,python-django-redis)
- ("python-pytest-django" ,python-pytest-django)))
- (home-page "https://django-q.readthedocs.io/")
- (synopsis "Multiprocessing distributed task queue for Django")
- (description
- "Django Q is a native Django task queue, scheduler and worker application
-using Python multiprocessing.")
- (license license:expat)))
-
-(define-public python-robot-detection
- (package
- (name "python-robot-detection")
- (version "0.4")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "robot-detection" version))
- (sha256
- (base32
- "1xd2jm3yn31bnk1kqzggils2rxj26ylxsfz3ap7bhr3ilhnbg3rx"))))
- (build-system python-build-system)
- (arguments '(#:tests? #f)) ; Tests not shipped in pypi release.
- (propagated-inputs `(("python-six" ,python-six)))
- (home-page "https://github.com/rory/robot-detection")
- (synopsis "Detect web crawlers")
- (description
- "@code{robot_detection} is a python module to detect if a given HTTP User
-Agent is a web crawler. It uses the list of registered robots from
-@url{http://www.robotstxt.org}.")
- (license license:gpl3+)))
-
-(define-public python-rcssmin
- (package
- (name "python-rcssmin")
- (version "1.0.6")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "rcssmin" version))
- (sha256
- (base32
- "0w42l4dhxghcz7pj3q7hkxp015mvb8z2cq9sfxbl31npsfavd1ya"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "python" "run_tests.py" "tests"))))))
- (home-page "http://opensource.perlig.de/rcssmin/")
- (synopsis "CSS Minifier")
- (description "CSS Minifier")
- (license license:asl2.0)))
-
-(define-public python-rjsmin
- (package
- (name "python-rjsmin")
- (version "1.1.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "rjsmin" version))
- (sha256
- (base32
- "0cmc72rlkvzz8fl89bc83czkx0pcvhzj7yn7m29r8pgnf5fcfpdi"))))
- (build-system python-build-system)
- (native-inputs
- `(("python-pytest" ,python-pytest)))
- (home-page "http://opensource.perlig.de/rjsmin/")
- (synopsis "Javascript Minifier")
- (description "Javascript Minifier")
- (license license:asl2.0)))
-
-(define-public python-blessed
- (package
- (name "python-blessed")
- (version "1.16.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "blessed" version))
- (sha256
- (base32
- "1yhxgibvjyzccyy2rzmygkq515p7kpyls7x0ymvcyrpj14xph8m2"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; Don't get hung up on Windows test failures.
- (delete-file "blessed/win_terminal.py") #t))))
- (build-system python-build-system)
- (propagated-inputs
- `(("python-six" ,python-six)
- ("python-wcwidth" ,python-wcwidth)))
- (native-inputs
- `(("python-mock" ,python-mock)
- ("python-pytest" ,python-pytest)))
- (home-page "https://github.com/jquast/blessed")
- (synopsis "Wrapper around terminal capabilities")
- (description
- "Blessed is a thin, practical wrapper around terminal styling, screen
-positioning, and keyboard input.")
- (license license:expat)))
-
-(define-public python-django-picklefield
- (package
- (name "python-django-picklefield")
- (version "2.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "django-picklefield" version))
- (sha256
- (base32
- "097aljd37ab36jci3phmh8ckrakmk1gpi3kkgl6nq15nn66klwzi"))))
- (build-system python-build-system)
- (propagated-inputs `(("python-django" ,python-django)))
- (native-inputs `(("python-tox" ,python-tox)))
- (home-page "https://github.com/gintas/django-picklefield")
- (synopsis "Pickled object field for Django")
- (description "Pickled object field for Django")
- (license license:expat)))
-
-(define-public python-jinxed
- (package
- (name "python-jinxed")
- (version "1.0.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "jinxed" version))
- (sha256
- (base32
- "1n7vl03rhjd0xhjgbjlh8x9f8yfbhamcwkgvs4jg7g5qj8f0wk89"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-before 'check 'set-environment-variables
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((ncurses (assoc-ref inputs "ncurses")))
- (setenv "TERM" "LINUX")
- (setenv "TERMINFO" (string-append ncurses "/share/terminfo"))
- #t))))
- #:tests? #f)) ; _curses.error: setupterm: could not find terminal
- (native-inputs
- `(("ncurses" ,ncurses)))
- (home-page
- "https://github.com/Rockhopper-Technologies/jinxed")
- (synopsis "Jinxed Terminal Library")
- (description
- "Jinxed is an implementation of a subset of the Python curses library.")
- (license license:mpl2.0)))
-
-(define-public postorius-1.3
- (package
- (name "postorius")
- (version "1.3.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "postorius" version))
- (sha256
- (base32
- "12aghg862js5sxm61xy7ijjb5ixdlv86vhp3nr8l94yiiq92k8sl"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key inputs outputs tests? #:allow-other-keys)
- (add-installed-pythonpath inputs outputs)
- (if tests?
- (invoke "python" "example_project/manage.py" "test"
- "--settings=test_settings" "postorius")
- #t))))
- #:tests? #f)) ; Tests try to run a mailman instance to test against.
- (propagated-inputs
- `(("python-django" ,python-django)
- ("python-django-mailman3" ,python-django-mailman3)
- ("python-mailmanclient" ,python-mailmanclient-3.3)
- ("python-readme-renderer" ,python-readme-renderer)))
- (native-inputs
- `(("python-beautifulsoup4" ,python-beautifulsoup4)
- ("python-isort" ,python-isort)
- ("python-mock" ,python-mock)
- ("python-vcrpy" ,python-vcrpy)))
- (home-page "https://gitlab.com/mailman/postorius")
- (synopsis "Web user interface for GNU Mailman")
- (description
- "Postorius is a Django app which provides a web user interface
-to access GNU Mailman.")
- (license (list license:gpl3+ license:lgpl3+))))
diff --git a/gn/packages/python.scm b/gn/packages/python.scm
index 7be6b4f..2940e40 100644
--- a/gn/packages/python.scm
+++ b/gn/packages/python.scm
@@ -1139,14 +1139,14 @@ server.")
(define-public python-schema-salad
(package
(name "python-schema-salad")
- (version "5.0.20200416112825")
+ (version "7.0.20200612160654")
(source
(origin
(method url-fetch)
(uri (pypi-uri "schema-salad" version))
(sha256
(base32
- "1pm6q266qrw4r0w0vnzhsvqgk5j8b3q61hxg99awhgpjsmcvkmsz"))))
+ "15ma3lb6fkfc6sj75hnmmg0jj8q3pc5yrlyx15lpdd4dcp2jc39s"))))
(build-system python-build-system)
(propagated-inputs
`(("python-cachecontrol" ,python-cachecontrol-0.11)
@@ -1155,15 +1155,12 @@ server.")
("python-rdflib" ,python-rdflib)
("python-rdflib-jsonld" ,python-rdflib-jsonld)
("python-requests" ,python-requests)
- ("python-ruaml.yaml" ,python38-ruaml.yaml-0.15.76)
+ ("python-ruamel.yaml" ,python-ruamel.yaml)
("python-setuptools" ,python-setuptools)
("python-typing-extensions" ,python-typing-extensions)))
(native-inputs
- `(("python-pytest" ,python-pytest)
+ `(("python-pytest" ,python-pytest-4)
("python-pytest-runner" ,python-pytest-runner)))
- (arguments
- `(
- #:tests? #f)) ; no tests
(home-page "https://github.com/common-workflow-language/schema_salad")
(synopsis "Schema Annotations for Linked Avro Data (SALAD)")
(description
diff --git a/gn/packages/python24.scm b/gn/packages/python24.scm
index bae5304..8dc237f 100644
--- a/gn/packages/python24.scm
+++ b/gn/packages/python24.scm
@@ -3,10 +3,12 @@
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix build-system python)
#:use-module (gn packages python)
#:use-module (past packages python)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages databases)
#:use-module (gnu packages maths)
#:use-module (gnu packages python-xyz)
#:use-module (srfi srfi-1))
@@ -126,55 +128,6 @@ pre-defined variants."
(description "Stand-alone Assertions for Python")
(license license:expat)))
-(define-public python24-pyx
- (package
- (name "python24-pyx")
- (version "0.12.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "pyx" version))
- (sha256
- (base32
- "13kyhqx19rw7dlv2xapdb68j8l9laq6nrpgkyd6549qwidmb4dz8"))))
- (build-system python-build-system)
- (arguments
- `(#:python ,python-2.4
- #:use-setuptools? #f
- #:tests? #f)) ; tests not included
- (properties '((release-date "2012-10-26")))
- (home-page "https://pyx-project.org/")
- (synopsis "Python package for the generation of PostScript, PDF, and SVG files")
- (description "Python package for the generation of PostScript, PDF, and SVG files.")
- (license license:gpl2+)))
-
-(define-public python24-pyxlwriter
- (package
- (name "python24-pyxlwriter")
- (version "0.4a3")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "mirror://sourceforge/pyxlwriter/pyxlwriter/"
- version "/pyXLWriter-" version ".zip"))
- (sha256
- (base32
- "1kfsi6la9y53rwayszgayfmkjfknpp650v69a0hwd1fcfk1df735"))))
- (build-system python-build-system)
- (arguments
- `(#:python ,python-2.4
- #:use-setuptools? #f
- #:tests? #f)) ; no tests
- (native-inputs
- `(("unzip" ,unzip)))
- (home-page "https://sourceforge.net/projects/pyxlwriter/")
- (synopsis "Python library for generating Excel compatible spreadsheets")
- (description "PyXLWriter is a Python library for generating Excel compatible
-spreadsheets. It's a port of John McNamara's Perl @code{Spreadsheet::WriteExcel}
-module version 1.01 to Python. It allows writing of Excel compatible
-spreadsheets without the need for COM objects.")
- (license license:lgpl2.1+)))
-
(define-public python24-pil
(package
(inherit python2-pil1)
@@ -219,7 +172,7 @@ spreadsheets without the need for COM objects.")
(origin
(method url-fetch)
(uri (string-append
- "http://www.parallelpython.com/downloads/pp/pp-" version ".zip"))
+ "https://www.parallelpython.com/downloads/pp/pp-" version ".zip"))
(sha256
(base32
"0qkxcyclz3vgwpl6xvsrg76q59dj0wwy8qx15567bafv659ypyb1"))))
@@ -230,7 +183,7 @@ spreadsheets without the need for COM objects.")
#:tests? #f)) ; no tests
(native-inputs
`(("unzip" ,unzip)))
- (home-page "http://www.parallelpython.com")
+ (home-page "https://www.parallelpython.com/")
(synopsis "Parallel and distributed programming for Python")
(description "PP is a python module which provides mechanism for parallel
execution of python code on SMP (systems with multiple processors or cores) and
@@ -435,3 +388,60 @@ clusters (computers connected via network).")
(synopsis "")
(description "")
(license license:bsd-3)))
+
+(define-public python24-mysqlclient
+ (package
+ (name "python24-mysqlclient")
+ (version "1.2.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/PyMySQL/mysqlclient-python")
+ (commit "MySQLdb-1.2.5")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "193h09afkmz9nw2jlwfdikx1xj9sybswd2705k8jy48h1ks6fnbj"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:python ,python-2.4
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'dont-create-release-file
+ (lambda _
+ (substitute* "setup_common.py"
+ (("MySQLdb/release.py")
+ (string-append (getcwd) "/release.py")))
+ #t))
+ (add-before 'check 'pre-check
+ (lambda _
+ (call-with-output-file "/tmp/my.cnf"
+ (lambda (p)
+ (format p
+ "[mysqld]~@
+ datadir=/tmp~@
+ socket=/tmp/mysql.sock~%")))
+ (system* "mysqld" "--defaults-file=/tmp/my.cnf" "--bootstrap")
+ ;(invoke "mysql" "-S" "/tmp/mysql.sock"
+ ; "-e" "'create database mysqldb_test charset utf8;'")
+ #t)))
+ #:tests? #f)) ; TODO: Run the test suite
+ (native-inputs
+ `(("mariadb" ,mariadb "dev")
+ ("mariadb:bin" ,mariadb)
+ ("python-nose" ,python24-nose)
+ ("python-setuptools" ,python24-setuptools)))
+ (inputs
+ `(("zlib" ,zlib)))
+ (home-page "http://mysql-python.sourceforge.net/")
+ (synopsis "Python interface to MySQL")
+ (description "MySQLdb is an interface to the popular MySQL database server
+for Python. The design goals are:
+@itemize
+@item with Python database API version 2.0
+@item Thread-safety
+@item Thread-friendliness (threads will not block each other)
+@item Compatibility with MySQL-3.23 and later
+@end itemize")
+ (license license:gpl2+)))
diff --git a/gn/packages/twint.scm b/gn/packages/twint.scm
index 14f04c4..cc538dd 100644
--- a/gn/packages/twint.scm
+++ b/gn/packages/twint.scm
@@ -4,14 +4,14 @@
#:use-module (guix build-system python)
#:use-module (guix packages)
#:use-module (guix download)
- #:use-module (gn packages mailman)
#:use-module (gnu packages check)
- #:use-module (gnu packages sphinx)
- #:use-module (gnu packages time)
+ #:use-module (gnu packages geo)
#:use-module (gnu packages python)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-science)
- #:use-module (gnu packages python-xyz))
+ #:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages sphinx)
+ #:use-module (gnu packages time))
(define-public python-googletransx
(package
@@ -60,41 +60,6 @@
"A Python 2.* port of 3.4 Statistics Module")
(license #f)))
-(define-public python-geopy
- (package
- (name "python-geopy")
- (version "1.22.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "geopy" version))
- (sha256
- (base32
- "0jypkaqlbyr8icqypwm23lzsvq7flakp3a3nqr8ib5fmd0fzsq7q"))))
- (build-system python-build-system)
- (arguments
- `(#:tests? #f))
- (propagated-inputs
- `(("python-geographiclib" ,python-geographiclib)))
- (native-inputs
- `(("python-contextlib2" ,python-contextlib2)
- ("python-coverage" ,python-coverage)
- ("python-flake8" ,python-flake8)
- ("python-isort" ,python-isort)
- ("python-mock" ,python-mock)
- ("python-pytest" ,python-pytest)
- ("python-readme-renderer"
- ,python-readme-renderer)
- ("python-six" ,python-six)
- ("python-sphinx" ,python-sphinx)
- ("python-sphinx-rtd-theme"
- ,python-sphinx-rtd-theme)
- ("python-statistics" ,python-statistics)))
- (home-page "https://github.com/geopy/geopy")
- (synopsis "Python Geocoding Toolbox")
- (description "Python Geocoding Toolbox")
- (license license:expat)))
-
(define-public python-fake-useragent
(package
(name "python-fake-useragent")
@@ -138,28 +103,6 @@
"cChardet is high speed universal character encoding detector.")
(license #f)))
-(define-public python-geographiclib
- (package
- (name "python-geographiclib")
- (version "1.50")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "geographiclib" version))
- (sha256
- (base32
- "0cn6ap5fkh3mkfa57l5b44z3gvz7j6lpmc9rl4g2jny2gvp4dg8j"))))
- (build-system python-build-system)
- (arguments
- `(#:tests? #f))
- (home-page
- "https://geographiclib.sourceforge.io/1.50/python")
- (synopsis
- "The geodesic routines from GeographicLib")
- (description
- "The geodesic routines from GeographicLib")
- (license license:expat)))
-
(define-public python-twint
(package
(name "python-twint")
diff --git a/gn/packages/web.scm b/gn/packages/web.scm
index 9589586..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,269 +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))))
-
-(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 _
- (substitute* "test/test.py"
- (("2\\.2") "2.4"))
- #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"))))))))
- (inputs
- `(("httpd" ,httpd)
- ("python" ,python-2.4)
- ,@(package-inputs python-2.4)))))
-
-(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=-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 '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))))))))
- (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)))))
-
-(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 0137e94..7de1821 100644
--- a/gn/services/genenetwork.scm
+++ b/gn/services/genenetwork.scm
@@ -3,17 +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 %python-path
- "/lib/python2.4/site-packages")
-
-(define %mod-python-path
- (file-append httpd22-mod-python-24 %python-path))
(define %default-httpd22-modules
(map (match-lambda
@@ -82,28 +75,32 @@
(firmware '())
(packages (cons* python-2.4
- ;httpd-mod-python-24
- ;python24-qtlreaper
- ;python24-htmlgen-GN1
- ;python24-json-GN1
- ;python24-piddle
- ;python24-pyx-GN1
- ;python24-pyxlwriter
- ;python24-svg-GN1
+ python24-htmlgen-GN1
+ python24-json-GN1
+ python24-mysqlclient ; MySQLdb
+ python24-numarray
+ python24-piddle
+ python24-pp
+ python24-pyx
+ python24-pyxlwriter
+ python24-qtlreaper
+ python24-svg-GN1
%base-packages))
(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")
- (server-root httpd22-mod-python-24) ; Defaults to httpd, must be combo package.
+ ;; Defaults to httpd, should be same as 'package' above.
+ (server-root httpd22-with-mod-python)
(user "nobody")
(group "root")
+ ;; Only while debugging
(pid-file "/tmp/httpd-genenetwork1")
(error-log "/tmp/httpd-genenetwork1-error-log")
- (document-root (file-append genenetwork1 "/web"))
(listen '("8042"))
(modules (cons*
(httpd-module
@@ -111,21 +108,32 @@
(file "modules/mod_python.so"))
%default-httpd22-modules))
(extra-config (list "\
-TypesConfig etc/httpd/mime.types
-#for apache-2.2, ignored by apache-2.4
+TypesConfig " httpd22-with-mod-python "/etc/httpd/mime.types
DefaultType application/octet-stream
-# Should PythonPath just be genenetwork1/web/webqtl?
-PythonPath \"sys.path+['" (file-append python-2.4 "/lib/python2.4") "', '" %mod-python-path "', '" (file-append genenetwork1 "/web/webqtl") "']\"
-<Directory " (file-append genenetwork1 "/web/webqtl") ">
- AddHandler mod_python .py
- PythonHandler mod_python.publisher
- PythonAutoReload Off
+# 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-with-mod-python "/lib/python2.4/site-packages', '" genenetwork1 "/web/webqtl']\"
+# same as 'listen' above
+NameVirtualHost *:8042
+<VirtualHost *:8042>
+ DocumentRoot "genenetwork1 "/web
+</VirtualHost>
+<Directory " genenetwork1 "/web/webqtl>
+ PythonOption session FileSession
+ #what is the difference between these two?
+ #AddHandler mod_python .py
+ SetHandler python-program
+ #publisher has more debug information
+ PythonHandler " genenetwork1 "/web/webqtl/main.py
+ #PythonHandler mod_python.publisher
+ #PythonHandler mod_python.cgihandler
+ # only while debugging:
PythonDebug On
</Directory>
+# only while debugging:
<Location /mpinfo>
SetHandler python-program
PythonHandler mod_python.testhandler
</Location>")))))))))
-;PythonPath \"sys.path+['" (file-append python-2.4 "/lib/python2.4") "', '" %mod-python-path "', '" (file-append python24-qtlreaper %python-path) "', '" (file-append python24-json-GN1 %python-path) "', '" (file-append python24-piddle %python-path) "', '" (file-append python24-pyx-GN1 %python-path) "', '" (file-append python24-pyxlwriter-GN1 %python-path) "', '" (file-append python24-svg-GN1 %python-path) "', '" (file-append python24-htmlgen-GN1) "', '" (file-append genenetwork1 "/web/webqtl") "']\"
-;PythonPath \"sys.path+['" (file-append python-2.4 "/lib/python2.4") "', '" %mod-python-path "', '" (file-append genenetwork1 "/web/webqtl") "']\"
+;; guix system container -L /path/to/guix-past/modules/ -L /path/to/guix-bioinformatics/ /path/to/guix-bioinformatics/gn/services/genenetwork.scm --network
+;; xdg-open http://localhost:8042