quetz-mod_python-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Josh Kupershmidt (JIRA)" <j...@apache.org>
Subject [jira] Commented: (MODPYTHON-252) mod_python install forces Python libraries into system-wide install directory
Date Mon, 29 Sep 2008 14:12:44 GMT

    [ https://issues.apache.org/jira/browse/MODPYTHON-252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12635386#action_12635386
] 

Josh Kupershmidt commented on MODPYTHON-252:
--------------------------------------------

Graham, thanks for the quick response. I looked into your first suggestion. The note about
separating make install_dso and make install_py_lib was very helpful, however I do have some
troubles to point out that I'm still having to work around:

1.) make install_dso works exactly the way I intended (mod_python.so gets put into /home/user/apache/2.0.63/modules
, like I want)

2.) make install_py_lib is a little trickier: AFAICT, setting DESTDIR to /home/user/libraries/
 causes ./dest/Makefile.in to pick up this environment variable, and pass the argument "--root
$(DESTDIR)" to setup.py install , as in the last line in the snippet of Makefile.in that I
posted. 

It appears that --root and --prefix are slightly different. From the output of running python
setup.py --help install:

Options for 'install' command:
  --prefix            installation prefix
[snip]
  --root              install everything relative to this alternate root
                      directory

When I manually force Makefile.in to use --prefix=/home/user/libraries/ , I get the following
directory structure created:

/home/user/libraries/lib/python2.5/site-packages/mod_python/

which is what I want. However, by doing as you suggest, namely:

DESTDIR=/home/user/libraries/ 
make install_py_lib 

I get the Python libraries installed to a different subdirectory of /home/user/libraries.
The install creates and populates:

/home/user/libraries/directory/to/system-wide/install/of/python/lib/python2.5/site-packages/mod_python/


This install proceeds successfully, but it's not exactly what I want. 

3.) About using --with-apxs instead of --with-apache.. I haven't a clue why, but --with-apxs
doesn't seem to be working for me. When I run ./configure with the following flags:

./configure --prefix=/home/user/apache/2.0.63/modules/ --with-python=/directory/to/system-wide/install/of/python
 --with-apxs=/home/user/apache/2.0.63/bin/

(and other variations on the apxs directory), I get the following bailout at the end of ./configure:

configure: checking whether apxs is available...
checking for apachectl... no
checking for apache2ctl... no
checking for apachectl2... no
configure: error: could not find Apache installation

I modified $PATH like this: 

export PATH="/home/user/apache/2.0.63/bin/:$PATH"

and then ran ./configure with the same arguments, and it went fine -- so it appears the ./configure
script just wasn't picking up the --with-apxs specification properly. Using --with-apache=/home/user/apache/2.0.63/
also works fine, both with and without the --with-apxs argument. 


Thanks again for your help. 
Josh


> mod_python install forces Python libraries into system-wide install directory
> -----------------------------------------------------------------------------
>
>                 Key: MODPYTHON-252
>                 URL: https://issues.apache.org/jira/browse/MODPYTHON-252
>             Project: mod_python
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 3.3.1
>         Environment: Tested on Linux, with mod_python 3.3.1
>            Reporter: Josh Kupershmidt
>            Priority: Minor
>             Fix For: 3.3.1
>
>
> I need to have mod_python installed as an unprivileged user. I have Apache installed
as an unprivileged user, to directory
> /home/user/apache/2.0.63/... 
> And I need mod_python.so installed to 
> /home/user/apache/2.0.63/modules
> The arguments I pass to ./configure are:
> ./configure --with-apache=/home/user/apache/2.0.63/ --prefix=/home/user/apache/2.0.63/modules/
--with-python=/directory/to/system-wide/install/of/python --with-apxs=/home/user/apache/2.0.63/bin
> This all works fine for installing mod_python.so into Apache's modules directory. However,
the Python libraries are being forced into /directory/to/system-wide/install/of/python/lib/python2.5/site-packages.
I really want these Python libraries installed into /home/user/libraries/
> I've tracked the problem, and my somewhat kludgy workaround, down to ./dist/Makefile.in.
The following lines in ./dist/Makefile.in note that root privileges may be required:
> # this may require root priviledges
> install_py_lib: mod_python src
>         @cd src; $(MAKE) psp_parser.c
>         if test -z "$(DESTDIR)" ; then \
>                 export LDFLAGS="-L$(PYTHON_LIBDIR)" ; $(PYTHON_BIN) setup.py install
 --optimize 2 --force ; \
>         else \
>                 export LDFLAGS="-L$(PYTHON_LIBDIR)" ; $(PYTHON_BIN) setup.py install
--optimize 2 --force --root $(DESTDIR) ; \
> To get around the requirement for installing the Python libraries system-wide, I simply
added --prefix=/home/user/libraries/  after "setup.py install" in the above lines as a workaround.

> Note that the $DESTDIR variable in the above lines does not do what I want: I tried manually
setting DESTDIR, but it forced the entire mod_python install (of mod_python.so, as well as
the Python libraries) into subdirectories of /home/user/libraries. It also screwed up any
other installs (e.g. httpd) done at the same time which also depend on the DESTDIR environment
variable, if exported globally. 
> I recommend a ./configure flag be added to allow the user to specify which directory
the mod_python Python libraries should be installed into, and perhaps a note about setting
PYTHONPATH appropriately. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message