ports/105503: [new port] www/py-qp: A python web framework to use qpy and durus together
Dryice Liu
dryice at dryice.name
Tue Nov 14 04:50:03 UTC 2006
>Number: 105503
>Category: ports
>Synopsis: [new port] www/py-qp: A python web framework to use qpy and durus together
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Tue Nov 14 04:50:01 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator: Dryice Liu
>Release: FreeBSD 6.0-STABLE i386
>Organization:
>Environment:
System: FreeBSD dryice.3322.org 6.0-STABLE FreeBSD 6.0-STABLE #0: Thu Dec 1 15:59:44 CST 2005
>Description:
Attached is the shar file for www/py-qp. It's a python web
framework to use qpy and durus together. It is like
www/quixote, but
- is Unicode friendly
- comes with built in application management
- comes with built in user and session management
- SCGI integrated
It could be looked as "the next generation of quixote"
Please note this port depends on port/105470 and port/105471
>How-To-Repeat:
>Fix:
--- attached file begins here ---
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# /usr/ports/www/py-qp/
# /usr/ports/www/py-qp/distinfo
# /usr/ports/www/py-qp/Makefile
# /usr/ports/www/py-qp/pkg-descr
# /usr/ports/www/py-qp/pkg-plist
# /usr/ports/www/py-qp/files
# /usr/ports/www/py-qp/files/pkg-message.in
#
echo c - /usr/ports/www/py-qp/
mkdir -p /usr/ports/www/py-qp/ > /dev/null 2>&1
echo x - /usr/ports/www/py-qp/distinfo
sed 's/^X//' >/usr/ports/www/py-qp/distinfo << 'END-of-/usr/ports/www/py-qp/distinfo'
XMD5 (qp-1.8.tar.gz) = 6181c2335068ac5ae3801c9c30715c84
XSHA256 (qp-1.8.tar.gz) = 8b72e14d905e96442bcba4f60b36195dd404d5d1db70cf1671efb32ad25df766
XSIZE (qp-1.8.tar.gz) = 84397
END-of-/usr/ports/www/py-qp/distinfo
echo x - /usr/ports/www/py-qp/Makefile
sed 's/^X//' >/usr/ports/www/py-qp/Makefile << 'END-of-/usr/ports/www/py-qp/Makefile'
X# New ports collection makefile for: py-qp
X# Date created: 14 Nov 2006
X# Whom: Dryice Liu <dryice at dryice.name>
X#
X# $FreeBSD$
X#
X
XPORTNAME= qp
XPORTVERSION= 1.8
XCATEGORIES= devel python
XMASTER_SITES= http://www.mems-exchange.org/software/qp/ \
X http://dryice.name/computer/FreeBSD/distfiles/
X
XMAINTAINER= dryice at dryice.name
XCOMMENT= A python web framework to use qpy and durus together
X
XBUILD_DEPENDS+= qpcheck.py:${PORTSDIR}/devel/py-qpy
XBUILD_DEPENDS+= durus:${PORTSDIR}/devel/py-durus
XBUILD_DEPENDS+= pythoni:${PORTSDIR}/devel/py-repl
XRUN_DEPENDS+= ${BUILD_DEPENDS}
X
XUSE_PYTHON= 2.4+
XUSE_PYDISTUTILS= yes
XSUB_FILES+= pkg-message
XSUB_LIST+= PYTHON_VERSION=${PYTHON_VERSION}
X
X.include <bsd.port.pre.mk>
X
Xpost-install:
X @ PYTHONPATH=${PREFIX}/lib/${PYTHON_VERSION}/site-packages \
X ${PYTHON_CMD} -c "import qp.fill"; \
X cd ${WRKSRC}; \
X ${PYTHON_CMD} setup.py install_demo_sites ${EXAMPLESDIR}
X
X.if !defined(NOPORTDOCS)
X @ ${MKDIR} ${DOCSDIR}
X.for docfile in CHANGES.txt LICENSE.txt README.txt
X @ ${INSTALL_DATA} ${WRKSRC}/${docfile} ${DOCSDIR}
X.endfor
X.endif
X
X @${CAT} ${PKGMESSAGE}
X
X.include <bsd.port.post.mk>
END-of-/usr/ports/www/py-qp/Makefile
echo x - /usr/ports/www/py-qp/pkg-descr
sed 's/^X//' >/usr/ports/www/py-qp/pkg-descr << 'END-of-/usr/ports/www/py-qp/pkg-descr'
XThis is QP, a package for defining and running multiple web
Xapplications based on Durus for persistence, standard persistent
XSession and User classes, easy interactive database sessions, qpy for
Xassembling html, and Quixote2-style forms and path traversal. QP makes
Xit easier than ever to use these tools together.
X
XWWW: http://www.mems-exchange.org/software/qp/
END-of-/usr/ports/www/py-qp/pkg-descr
echo x - /usr/ports/www/py-qp/pkg-plist
sed 's/^X//' >/usr/ports/www/py-qp/pkg-plist << 'END-of-/usr/ports/www/py-qp/pkg-plist'
Xbin/qp
Xbin/qpcensus.py
X%%PYTHON_SITELIBDIR%%/qp/__init__.py
X%%PYTHON_SITELIBDIR%%/qp/__init__.pyc
X%%PYTHON_SITELIBDIR%%/qp/__init__.pyo
X%%PYTHON_SITELIBDIR%%/qp/fill/__init__.py
X%%PYTHON_SITELIBDIR%%/qp/fill/__init__.pyc
X%%PYTHON_SITELIBDIR%%/qp/fill/__init__.pyo
X%%PYTHON_SITELIBDIR%%/qp/fill/css.py
X%%PYTHON_SITELIBDIR%%/qp/fill/css.pyc
X%%PYTHON_SITELIBDIR%%/qp/fill/css.pyo
X%%PYTHON_SITELIBDIR%%/qp/fill/directory.py
X%%PYTHON_SITELIBDIR%%/qp/fill/directory.pyc
X%%PYTHON_SITELIBDIR%%/qp/fill/directory.pyo
X%%PYTHON_SITELIBDIR%%/qp/fill/durus_directory.pyc
X%%PYTHON_SITELIBDIR%%/qp/fill/durus_directory.qpy
X%%PYTHON_SITELIBDIR%%/qp/fill/form.pyc
X%%PYTHON_SITELIBDIR%%/qp/fill/form.qpy
X%%PYTHON_SITELIBDIR%%/qp/fill/html.pyc
X%%PYTHON_SITELIBDIR%%/qp/fill/html.qpy
X%%PYTHON_SITELIBDIR%%/qp/fill/static.pyc
X%%PYTHON_SITELIBDIR%%/qp/fill/static.qpy
X%%PYTHON_SITELIBDIR%%/qp/fill/widget.pyc
X%%PYTHON_SITELIBDIR%%/qp/fill/widget.qpy
X%%PYTHON_SITELIBDIR%%/qp/http/__init__.py
X%%PYTHON_SITELIBDIR%%/qp/http/__init__.pyc
X%%PYTHON_SITELIBDIR%%/qp/http/__init__.pyo
X%%PYTHON_SITELIBDIR%%/qp/http/request.py
X%%PYTHON_SITELIBDIR%%/qp/http/request.pyc
X%%PYTHON_SITELIBDIR%%/qp/http/request.pyo
X%%PYTHON_SITELIBDIR%%/qp/http/response.py
X%%PYTHON_SITELIBDIR%%/qp/http/response.pyc
X%%PYTHON_SITELIBDIR%%/qp/http/response.pyo
X%%PYTHON_SITELIBDIR%%/qp/hub/__init__.py
X%%PYTHON_SITELIBDIR%%/qp/hub/__init__.pyc
X%%PYTHON_SITELIBDIR%%/qp/hub/__init__.pyo
X%%PYTHON_SITELIBDIR%%/qp/hub/dispatcher.py
X%%PYTHON_SITELIBDIR%%/qp/hub/dispatcher.pyc
X%%PYTHON_SITELIBDIR%%/qp/hub/dispatcher.pyo
X%%PYTHON_SITELIBDIR%%/qp/hub/passfd.so
X%%PYTHON_SITELIBDIR%%/qp/hub/scgi_util.py
X%%PYTHON_SITELIBDIR%%/qp/hub/scgi_util.pyc
X%%PYTHON_SITELIBDIR%%/qp/hub/scgi_util.pyo
X%%PYTHON_SITELIBDIR%%/qp/hub/test_passfd.py
X%%PYTHON_SITELIBDIR%%/qp/hub/test_passfd.pyc
X%%PYTHON_SITELIBDIR%%/qp/hub/test_passfd.pyo
X%%PYTHON_SITELIBDIR%%/qp/hub/web.py
X%%PYTHON_SITELIBDIR%%/qp/hub/web.pyc
X%%PYTHON_SITELIBDIR%%/qp/hub/web.pyo
X%%PYTHON_SITELIBDIR%%/qp/lib/__init__.py
X%%PYTHON_SITELIBDIR%%/qp/lib/__init__.pyc
X%%PYTHON_SITELIBDIR%%/qp/lib/__init__.pyo
X%%PYTHON_SITELIBDIR%%/qp/lib/delegation.py
X%%PYTHON_SITELIBDIR%%/qp/lib/delegation.pyc
X%%PYTHON_SITELIBDIR%%/qp/lib/delegation.pyo
X%%PYTHON_SITELIBDIR%%/qp/lib/keep.py
X%%PYTHON_SITELIBDIR%%/qp/lib/keep.pyc
X%%PYTHON_SITELIBDIR%%/qp/lib/keep.pyo
X%%PYTHON_SITELIBDIR%%/qp/lib/profiler.py
X%%PYTHON_SITELIBDIR%%/qp/lib/profiler.pyc
X%%PYTHON_SITELIBDIR%%/qp/lib/profiler.pyo
X%%PYTHON_SITELIBDIR%%/qp/lib/site.py
X%%PYTHON_SITELIBDIR%%/qp/lib/site.pyc
X%%PYTHON_SITELIBDIR%%/qp/lib/site.pyo
X%%PYTHON_SITELIBDIR%%/qp/lib/spec.py
X%%PYTHON_SITELIBDIR%%/qp/lib/spec.pyc
X%%PYTHON_SITELIBDIR%%/qp/lib/spec.pyo
X%%PYTHON_SITELIBDIR%%/qp/lib/util.py
X%%PYTHON_SITELIBDIR%%/qp/lib/util.pyc
X%%PYTHON_SITELIBDIR%%/qp/lib/util.pyo
X%%PYTHON_SITELIBDIR%%/qp/mail/__init__.py
X%%PYTHON_SITELIBDIR%%/qp/mail/__init__.pyc
X%%PYTHON_SITELIBDIR%%/qp/mail/__init__.pyo
X%%PYTHON_SITELIBDIR%%/qp/mail/rfc822_mailbox.py
X%%PYTHON_SITELIBDIR%%/qp/mail/rfc822_mailbox.pyc
X%%PYTHON_SITELIBDIR%%/qp/mail/rfc822_mailbox.pyo
X%%PYTHON_SITELIBDIR%%/qp/mail/send.py
X%%PYTHON_SITELIBDIR%%/qp/mail/send.pyc
X%%PYTHON_SITELIBDIR%%/qp/mail/send.pyo
X%%PYTHON_SITELIBDIR%%/qp/pub/__init__.py
X%%PYTHON_SITELIBDIR%%/qp/pub/__init__.pyc
X%%PYTHON_SITELIBDIR%%/qp/pub/__init__.pyo
X%%PYTHON_SITELIBDIR%%/qp/pub/common.py
X%%PYTHON_SITELIBDIR%%/qp/pub/common.pyc
X%%PYTHON_SITELIBDIR%%/qp/pub/common.pyo
X%%PYTHON_SITELIBDIR%%/qp/pub/hit.py
X%%PYTHON_SITELIBDIR%%/qp/pub/hit.pyc
X%%PYTHON_SITELIBDIR%%/qp/pub/hit.pyo
X%%PYTHON_SITELIBDIR%%/qp/pub/publish.py
X%%PYTHON_SITELIBDIR%%/qp/pub/publish.pyc
X%%PYTHON_SITELIBDIR%%/qp/pub/publish.pyo
X%%PYTHON_SITELIBDIR%%/qp/pub/session.py
X%%PYTHON_SITELIBDIR%%/qp/pub/session.pyc
X%%PYTHON_SITELIBDIR%%/qp/pub/session.pyo
X%%PYTHON_SITELIBDIR%%/qp/pub/user.py
X%%PYTHON_SITELIBDIR%%/qp/pub/user.pyc
X%%PYTHON_SITELIBDIR%%/qp/pub/user.pyo
X%%PYTHON_SITELIBDIR%%/qp/setup.py
X%%PYTHON_SITELIBDIR%%/qp/setup.pyc
X%%PYTHON_SITELIBDIR%%/qp/setup.pyo
X%%EXAMPLESDIR%%/__init__.py
X%%EXAMPLESDIR%%/echo/slash.qpy
X%%EXAMPLESDIR%%/echo/__init__.py
X%%EXAMPLESDIR%%/echo/var/here.txt
X%%EXAMPLESDIR%%/hello/slash.py
X%%EXAMPLESDIR%%/hello/__init__.py
X%%EXAMPLESDIR%%/hello/var/here.txt
X%%EXAMPLESDIR%%/proto/forms.qpy
X%%EXAMPLESDIR%%/proto/qwiki.qpy
X%%EXAMPLESDIR%%/proto/slash.qpy
X%%EXAMPLESDIR%%/proto/__init__.py
X%%EXAMPLESDIR%%/proto/static/all.css
X%%EXAMPLESDIR%%/proto/static/favicon.png
X%%EXAMPLESDIR%%/proto/static/proto.js
X%%EXAMPLESDIR%%/proto/var/here.txt
X at dirrm %%EXAMPLESDIR%%/echo/var
X at dirrm %%EXAMPLESDIR%%/echo
X at dirrm %%EXAMPLESDIR%%/hello/var
X at dirrm %%EXAMPLESDIR%%/hello
X at dirrm %%EXAMPLESDIR%%/proto/static
X at dirrm %%EXAMPLESDIR%%/proto/var
X at dirrm %%EXAMPLESDIR%%/proto
X at dirrm %%EXAMPLESDIR%%
X at dirrm %%PYTHON_SITELIBDIR%%/qp/pub
X at dirrm %%PYTHON_SITELIBDIR%%/qp/mail
X at dirrm %%PYTHON_SITELIBDIR%%/qp/lib
X at dirrm %%PYTHON_SITELIBDIR%%/qp/hub
X at dirrm %%PYTHON_SITELIBDIR%%/qp/http
X at dirrm %%PYTHON_SITELIBDIR%%/qp/fill
X at dirrm %%PYTHON_SITELIBDIR%%/qp
X%%PORTDOCS%%%%DOCSDIR%%/CHANGES.txt
X%%PORTDOCS%%%%DOCSDIR%%/LICENSE.txt
X%%PORTDOCS%%%%DOCSDIR%%/README.txt
X%%PORTDOCS%%@dirrm %%DOCSDIR%%
END-of-/usr/ports/www/py-qp/pkg-plist
echo c - /usr/ports/www/py-qp/files
mkdir -p /usr/ports/www/py-qp/files > /dev/null 2>&1
echo x - /usr/ports/www/py-qp/files/pkg-message.in
sed 's/^X//' >/usr/ports/www/py-qp/files/pkg-message.in << 'END-of-/usr/ports/www/py-qp/files/pkg-message.in'
X******************************************************************
XTo run the demo:
X
X1. copy %%EXAMPLESDIR%% to ~/qp_sites
X2. link %%PREFIX%%/lib/%%PYTHON_VERSION%%/site-packages/qp/sites to
X ~/qp_sites
X3. run "qp start"
X4. point you browser to
X http://localhost:8000
X http://localhost:8001
X http://localhost:8002
X
XRead %%DOCSDIR%%/README.txt for more info.
X******************************************************************
END-of-/usr/ports/www/py-qp/files/pkg-message.in
exit
--- attached file ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list