summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraham Dumpleton <Graham.Dumpleton@gmail.com>2019-12-20 17:09:09 +1100
committerGraham Dumpleton <Graham.Dumpleton@gmail.com>2019-12-20 17:09:09 +1100
commit4b89893ca3832adae3c464716634932cb5db47ab (patch)
tree5b7e955e4ff424ecd34b9260cc6af1253fca4e7b
parent2ec84a1edfbe5735112606bc58e3b34b872c2e93 (diff)
downloadmod_wsgi-4b89893ca3832adae3c464716634932cb5db47ab.tar.gz
Add way of installing parallel mod_wsgi-standalone package.
-rw-r--r--MANIFEST.in1
-rw-r--r--README.rst15
-rw-r--r--docs/release-notes.rst2
-rw-r--r--docs/release-notes/version-4.7.0.rst29
-rwxr-xr-xpackage.sh15
-rw-r--r--pyproject.toml.in3
-rw-r--r--setup.py5
7 files changed, 69 insertions, 1 deletions
diff --git a/MANIFEST.in b/MANIFEST.in
index 0604f20..2952dd0 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -15,3 +15,4 @@ include docs/_build/html/_static/css/*
include docs/_build/html/_static/font/*
include docs/_build/html/_static/js/*
include docs/_build/html/_sources/*
+include pyproject.toml
diff --git a/README.rst b/README.rst
index 00454c4..7602bdd 100644
--- a/README.rst
+++ b/README.rst
@@ -108,6 +108,11 @@ distributions for Windows aren't always complete and are missing the files
needed to compile additional Apache modules. By default, it is expected
that Apache is installed in the directory ``C:/Apache24`` on Windows.
+If you are on Linux, macOS or other UNIX type operating system and can't
+or don't want to use the system package for Apache, you can use ``pip``
+to install mod_wsgi, but you should use use the ``mod_wsgi-standalone``
+package on PyPi instead of the ``mod_wsgi`` package.
+
Installation into Apache
------------------------
@@ -146,6 +151,16 @@ standard location, you can set and export the ``APXS`` environment variable
to the location of the Apache ``apxs`` script for your Apache installation
before performing the installation.
+If you are using Linux, macOS or other UNIX type operating system, and you
+don't have Apache available, you can instead install mod_wsgi using::
+
+ pip install mod_wsgi-standalone
+
+When installing ``mod_wsgi-standalone``, it will also install a version
+of Apache into your Python distribution. You can only use ``mod_wsgi-express``
+when using this variant of the package. The ``mod_wsgi-standalone`` package
+follows the same version numbering as the ``mod_wsgi`` package on PyPi.
+
If you are on Windows and your Apache distribution is not installed into
the directory ``C:/Apache24``, first set the environment variable
``MOD_WSGI_APACHE_ROOTDIR`` to the directory containing the Apache
diff --git a/docs/release-notes.rst b/docs/release-notes.rst
index 22cf506..964571b 100644
--- a/docs/release-notes.rst
+++ b/docs/release-notes.rst
@@ -5,6 +5,8 @@ Release Notes
.. toctree::
:maxdepth: 2
+ release-notes/version-4.7.0
+
release-notes/version-4.6.8
release-notes/version-4.6.7
release-notes/version-4.6.6
diff --git a/docs/release-notes/version-4.7.0.rst b/docs/release-notes/version-4.7.0.rst
new file mode 100644
index 0000000..36930e5
--- /dev/null
+++ b/docs/release-notes/version-4.7.0.rst
@@ -0,0 +1,29 @@
+=============
+Version 4.7.0
+=============
+
+Version 4.7.0 of mod_wsgi can be obtained from:
+
+ https://codeload.github.com/GrahamDumpleton/mod_wsgi/tar.gz/4.7.0
+
+New Features
+------------
+
+* Now releasing parallel ``mod_wsgi-standalone`` package to PyPi. This is
+ the same as the ``mod_wsgi`` package, except that by installing the
+ ``mod_wsgi-standalone`` package, it will automatically trigger the
+ ``mod_wsgi-httpd`` package to install the Apache HTTPD server as part
+ of your Python installation. When you run ``mod_wsgi-express`` it will
+ use that Apache HTTPD server installation.
+
+ The ``mod_wsgi-standalone`` package is required where you need to install
+ ``mod_wsgi-express`` using its own Apache HTTPD installation due to no
+ system Apache HTTPD server package being available, and the installation
+ needs to be done using a ``requirements.txt`` file for ``pip`` or other
+ package install manager. Using ``mod_wsgi-standalone`` will ensure
+ that the ``mod_wsgi-httpd`` package is installed first before attempting
+ to build and install mod_wsgi. This guarantee is not provided by ``pip``
+ if you list ``mod_wsgi-httpd`` and ``mod_wsgi`` packages as two entries.
+
+ The version numbering of the ``mod_wsgi-standalone`` package will follow
+ the ``mod_wsgi`` versioning.
diff --git a/package.sh b/package.sh
new file mode 100755
index 0000000..a9d9768
--- /dev/null
+++ b/package.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+set -eo pipefail
+
+rm -rf dist
+
+rm -f pyproject.toml
+
+python setup.py sdist
+
+ln -s pyproject.toml.in pyproject.toml
+
+python setup.py sdist
+
+rm -f pyproject.toml
diff --git a/pyproject.toml.in b/pyproject.toml.in
new file mode 100644
index 0000000..17c19e3
--- /dev/null
+++ b/pyproject.toml.in
@@ -0,0 +1,3 @@
+[build-system]
+requires = ["setuptools>=40.8.0", "wheel", "mod_wsgi-httpd==2.4.41.1"]
+build-backend = "setuptools.build_meta:__legacy__"
diff --git a/setup.py b/setup.py
index 8451545..548bff8 100644
--- a/setup.py
+++ b/setup.py
@@ -544,7 +544,9 @@ if os.name != 'nt':
long_description = open('README.rst').read()
-setup(name = 'mod_wsgi',
+standalone = os.path.exists('pyproject.toml')
+
+setup(name = standalone and 'mod_wsgi-standalone' or 'mod_wsgi',
version = _version(),
description = 'Installer for Apache/mod_wsgi.',
long_description = long_description,
@@ -590,4 +592,5 @@ setup(name = 'mod_wsgi',
entry_points = { 'console_scripts':
['mod_wsgi-express = mod_wsgi.server:main'],},
zip_safe = False,
+ install_requires = standalone and ['mod_wsgi-httpd==2.4.41.1'] or [],
)