Files
darylm503 4710c53dca AppPkg/Applications/Python: Add Python 2.7.2 sources since the release of Python 2.7.3 made them unavailable from the python.org web site.
These files are a subset of the python-2.7.2.tgz distribution from python.org.  Changed files from PyMod-2.7.2 have been copied into the corresponding directories of this tree, replacing the original files in the distribution.

Signed-off-by: daryl.mcdaniel@intel.com


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13197 6f19259b-4bc3-4df7-8a09-765794883524
2012-04-16 22:12:42 +00:00
..

FAQ Wizard

----------



Author: Guido van Rossum <guido@python.org>

Version: 1.0

Date:  6 April 1998





This is a CGI program that maintains a user-editable FAQ.  It uses RCS

to keep track of changes to individual FAQ entries.  It is fully

configurable; everything you might want to change when using this

program to maintain some other FAQ than the Python FAQ is contained in

the configuration module, faqconf.py.



Note that the bulk of the code is not an executable script; it's an

importable module.  The actual script in cgi-bin is minimal.



Files:



faqw.py		executable script to be edited and installed in cgi-bin

faqwiz.py	main module, lives in same directory as FAQ entry files

faqconf.py	main configuration module

faqcust.py	additional local customization module (optional)

move-faqwiz.sh  Script to move faqwiz entries.





What's New?

-----------



Version 1.0 corrects some minor bugs and uses tab-agnostic

indentation; it is otherwise unchanged from version 0.9.0.



Version 0.9.0 uses the re module (Perl style regular expressions) for

all its regular expression needs, instead of the regex and regsub

modules (Emacs style).  This affects the syntax for regular

expressions entered by the user as search strings (with "regular

expression" checked), hence the version number jump.





Setup Information

-----------------



This assumes you are familiar with Python, with your http server, and

with running CGI scripts under your http server.  You need Python 1.5

or better.



Select a place where the Python modules that constitute the FAQ wizard

will live (the directory where you unpacked it is an obvious choice).

This will be called the SRCDIR.  This directory should not be writable

by other users of your system (since they would be able to execute

arbitrary code by invoking the FAQ wizard's CGI script).



Create a dedicated working directory, preferably one that's not

directly reachable from your http server.  This will be called the

FAQDIR.  Create a subdirectory named RCS.  Make both the working

directory and the RCS subdirectory wrld-writable.  (This is essential,

since the FAQ wizard runs as use nobody, and needs to create

additional files here!)



Edit faqconf.py to reflect your setup.  You only need to edit the top

part, up till the line of all dashes.  The comments should guide you

in your edits.  (Actually, you can also choose to add your changes to

faqcust.py and leave faqconf.py alone.  This is essential if you are

maintaining multiple FAQs; see below.)



Don't forget to edit the SECTION_TITLES variables to reflect the set

of section titles for your FAQ!



Next, edit faqw.py to reflect the pathname of your Python interpreter

and the values for SRCDIR and FAQDIR that you just chose.  Then

install faqw.py in your cgi-bin directory.  Make sure that it is

world-executable.  You should now be able to connect to the FAQ wizard

by entering the following URL in your web client (subsituting the

appropriate host and port for "your.web.server", and perhaps

specifying a different directory for "cgi-bin" if local conventions so

dictate):



	http://your.web.server/cgi-bin/faqw.py



If you are unable to get this working, check your server's error_log

file.  The documentation for Python's cgi module in the Python Library

Reference Manual gives plentyu additional information about installing

and debugging CGI scripts, including setup debugging.  This

documentation is repeated in the doc string in the cgi module; try

``import cgi; print cgi.__doc__''.



Assuming this works, you should now be able to add the first entry to

your FAQ using the FAQ wizard interface.  This creates a file

faq01.001.htp in your working directory and an RCS revision history

file faq01.001.htp,v in the RCS subdirectory.  You can now exercise

the other FAQ wizard features (search, index, whole FAQ, what's new,

roulette, and so on).





Maintaining Multiple FAQs

-------------------------



If you have multiple FAQs, you need a separate FAQDIR per FAQ, and a

different customization file per FAQ.  The easiest thing to do would

be to have the faqcust.py for each FAQ live in the FAQDIR for that

FAQ, but that creates some security concerns, since the FAQDIR must be

world writable: *if* someone who breaks into your system (or a

legitimate user) manages to edit the faqcust.py file they can get

arbitrary code to execute through the FAQ wizard.  Therefore, you will

need a more complex setup.



The best way is probably to have a directory that is only writable by

you for each FAQ, where you place the copy of faqcust.py for that FAQ,

and have a world-writable subdirectory DATA for the data.  You then

set FAQDIR to point to the DATA directory and change the faqw.py

bootstrap script to add FAQDIR/.. to sys.path (in front of SRCDIR, so

the dummy faqcust.py from SRCDIR is ignored).



--Guido van Rossum (home page: http://www.python.org/~guido/)