<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to bugs</title><link>https://sourceforge.net/p/skunkweb/bugs/</link><description>Recent changes to bugs</description><atom:link href="https://sourceforge.net/p/skunkweb/bugs/feed.rss" rel="self"/><language>en</language><lastBuildDate>Sat, 17 Sep 2005 01:50:35 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/skunkweb/bugs/feed.rss" rel="self" type="application/rss+xml"/><item><title>SkunkWeb 3.4.0 failed in building on Federa core 4</title><link>https://sourceforge.net/p/skunkweb/bugs/14/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Firstly, it can not build mod_skunkweb on apache 2.0.54.&lt;br /&gt;
Secondly, it has following error while make.&lt;br /&gt;
gcc -g -O2    swpython.c   -o swpython&lt;br /&gt;
swpython.c: In function main:&lt;br /&gt;
swpython.c:17: warning: incompatible implicit&lt;br /&gt;
declaration of built-in function alloca&lt;br /&gt;
This probably coz by configure it with&lt;br /&gt;
--without-mod_skunkweb option to lose some files.&lt;br /&gt;
ps: the build script is:&lt;br /&gt;
./configure --with-apxs=/usr/local/apache2/bin/&lt;br /&gt;
--without-mod_skunkweb;make;make install&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anonymous</dc:creator><pubDate>Sat, 17 Sep 2005 01:50:35 -0000</pubDate><guid>https://sourceforge.net1c8a4d82467ef83430c8517d0a7a02c7c984e190</guid></item><item><title>PyDO: MySQL commit/rollback methods are no-ops?!</title><link>https://sourceforge.net/p/skunkweb/bugs/13/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;The following is cut from PyDO/mysqlconn.py:&lt;/p&gt;
&lt;p&gt;#methods not needed for mysql&lt;br /&gt;
...&lt;br /&gt;
def commit(self): pass&lt;br /&gt;
def rollback(self): pass&lt;/p&gt;
&lt;p&gt;Huh? MySQL's InnoDB tables support transactions and MySQL &lt;br /&gt;
silently accepts and ignores BEGIN, COMMIT and ROLLBACK &lt;br /&gt;
statements for other table implementations. MySQLdb's connection &lt;br /&gt;
objects even have mthods for begin(), commit() and rollback().&lt;/p&gt;
&lt;p&gt;PyDO should probably be aware and make use of these:&lt;/p&gt;
&lt;p&gt;# I'm guessing here...&lt;br /&gt;
def commit(self):&lt;br /&gt;
self.conn.commit()&lt;br /&gt;
def rollback(self):&lt;br /&gt;
self.conn.rollback()&lt;/p&gt;
&lt;p&gt;See my other bug about BEGIN statements for starting transactions.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matthew Bogosian</dc:creator><pubDate>Tue, 09 Aug 2005 18:31:20 -0000</pubDate><guid>https://sourceforge.netd74aab946c61d1fccaa0ca58434f6f577e232fc6</guid></item><item><title>PyDO: interface is inconsistent</title><link>https://sourceforge.net/p/skunkweb/bugs/12/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;PyDO's subclassing requirements seem to be riddled with &lt;br /&gt;
inconsistencies. For example, the auto_increment attribute is &lt;br /&gt;
lowercase_with_underscores, whereas most attributes (e.g., &lt;br /&gt;
connectionAlias) are camelCase. Another example is that the unique &lt;br /&gt;
attribute requires a list whereas the fields attribute must be a tuple of &lt;br /&gt;
tuples.&lt;/p&gt;
&lt;p&gt;This of course is not serious, but it is annoying for OCD sufferers &lt;br /&gt;
like myself.... ;-)&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matthew Bogosian</dc:creator><pubDate>Tue, 09 Aug 2005 18:19:30 -0000</pubDate><guid>https://sourceforge.net3c18fd6de6657b49f980f581375b3ad48886d703</guid></item><item><title>PyDO: MySQL's commit/rollback implementation lacks BEGIN</title><link>https://sourceforge.net/p/skunkweb/bugs/11/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Since PyDO subclasses do not have begin() methods to correspond &lt;br /&gt;
to their commit() and rollback() methods, it seems as if &lt;br /&gt;
transactionality would be unavailable without additional voodoo &lt;br /&gt;
magic depending on the database implementation. For example, &lt;br /&gt;
most MySQL installations turn on auto-committing by default, so &lt;br /&gt;
that if a transaction is not explicitly started with a BEGIN statement, &lt;br /&gt;
everything is committed immediately upon execution.&lt;/p&gt;
&lt;p&gt;Since (in many hosting environments) many users do not have &lt;br /&gt;
control of the database's global configuration, they must (wherever &lt;br /&gt;
possible) perform the same configuration on a per-connection basis. &lt;br /&gt;
For example, with MySQL, one can turn off the above behavior and &lt;br /&gt;
use implied transactions (without the BEGIN statement) by first &lt;br /&gt;
issuing a SET AUTOCOMMIT = 0 statement. Doing so using PyDO &lt;br /&gt;
is kind of clunky:&lt;/p&gt;
&lt;p&gt;db = DBIGetConnection('db_name')&lt;br /&gt;
db.execute('SET AUTOCOMMIT = 0')&lt;/p&gt;
&lt;p&gt;This of course would only work if 'db_name' represented a MySQL &lt;br /&gt;
database (which in my case, it doesn't necessarily).&lt;/p&gt;
&lt;p&gt;I see (potentially) two (real) fixes to this problem. The first is to &lt;br /&gt;
include the above clunky behavior (by default) in the creation of &lt;br /&gt;
MySQL connections (this only addresses the MySQL issue, and I &lt;br /&gt;
do not know the behaviors of other DBs).&lt;/p&gt;
&lt;p&gt;The second is to incude a begin() method in PyDO classes, which &lt;br /&gt;
for some DBs could be a no-op, and for others (e.g., MySQL) could &lt;br /&gt;
issue whatever statement was appropriate for starting a transaction.&lt;/p&gt;
&lt;p&gt;I admit I am unfamiliar with the implementation of PyDO and I do not &lt;br /&gt;
know if either is even possible given the current architecture. I just &lt;br /&gt;
thought I would bring this up since it has been an issue for me in the &lt;br /&gt;
past.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matthew Bogosian</dc:creator><pubDate>Tue, 09 Aug 2005 18:08:31 -0000</pubDate><guid>https://sourceforge.netb7d64409d8a633c79de85f185580a93042f3a998</guid></item><item><title>PyDO: abstraction is not complete</title><link>https://sourceforge.net/p/skunkweb/bugs/10/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I don't know if there's a way around this, but it seems to me that &lt;br /&gt;
PyDO's abstraction, although good, is not complete since class &lt;br /&gt;
definitions are still often dependent on the underlying database &lt;br /&gt;
implementation(s).&lt;/p&gt;
&lt;p&gt;For example, let's say I have an application where I want to let my &lt;br /&gt;
users choose the supporting DB application (e.g., MySQL, Oracle, &lt;br /&gt;
PostreSQL, etc.). Depending on the DB choice, my PyDO classes &lt;br /&gt;
may be quite different:&lt;/p&gt;
&lt;p&gt;} - - - - - - - - - - - - - - - - %&amp;lt; - - - - - - - - - - - - - - - - {&lt;/p&gt;
&lt;p&gt;from PyDO import *&lt;/p&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;p&gt;if db == 'MySQL':&lt;br /&gt;
class Foo(PyDO):&lt;br /&gt;
connectionAlias = 'some_db'&lt;br /&gt;
table = 'some_table'&lt;br /&gt;
fields = \
(&lt;br /&gt;
('id', 'bigint(20) unsigned'),&lt;br /&gt;
('data', 'varchar(255)'),&lt;br /&gt;
)&lt;br /&gt;
auto_increment = { 'id': 'id' }&lt;br /&gt;
unique = [ 'id' ]&lt;br /&gt;
elif db == 'Oracle':&lt;br /&gt;
class Foo(PyDO):&lt;br /&gt;
connectionAlias = 'some_db'&lt;br /&gt;
table = 'SOME_TABLE'&lt;br /&gt;
fields = \
(&lt;br /&gt;
('ID', 'NUMBER'),&lt;br /&gt;
('DATA', 'VARCHAR2(255)'),&lt;br /&gt;
)&lt;br /&gt;
sequence = { 'ID': 'SOME_TABLE_ID_SEQ' }&lt;br /&gt;
unique = [ 'ID' ]&lt;br /&gt;
elif db == ...:&lt;br /&gt;
class Foo(PyDo):&lt;br /&gt;
...&lt;/p&gt;
&lt;p&gt;} - - - - - - - - - - - - - - - - &amp;gt;% - - - - - - - - - - - - - - - - {&lt;/p&gt;
&lt;p&gt;Perhaps PyDO could provide some mechanism for wrapping or &lt;br /&gt;
insulating developers from doing the if ... elif ... in this case? I don't &lt;br /&gt;
have any specific ideas, other than perhaps registering &lt;br /&gt;
implementations with DB aliases? The way I do it right now is kind &lt;br /&gt;
of clunky:&lt;/p&gt;
&lt;p&gt;} - - - - - - - - - - - - - - - - %&amp;lt; - - - - - - - - - - - - - - - - {&lt;/p&gt;
&lt;p&gt;# File: my_modules/data/storage.py&lt;/p&gt;
&lt;p&gt;_DB_NAME = 'some_db'&lt;/p&gt;
&lt;p&gt;_DB_CLASS_NAMES = \
(&lt;br /&gt;
'SomeClass1',&lt;br /&gt;
'SomeClass2',&lt;br /&gt;
)&lt;/p&gt;
&lt;p&gt;# Figure out the lowercase db type (e.g., 'mysql', 'oracle', etc.)&lt;br /&gt;
_db_type = &lt;br /&gt;
PyDO.PyDBI._aliasToConnArgs[_DB_NAME].split(':')[1].lower()&lt;/p&gt;
&lt;p&gt;# Try to import my_modules/data/DB_TYPE.py&lt;br /&gt;
_db_mod = __import__('my_modules.data.%s' % _db_type, &lt;br /&gt;
globals(), locals(), ( ' ', ))&lt;/p&gt;
&lt;p&gt;# Import all the relevant classes into this module's namespace                                                                                              &lt;br /&gt;
for _db_class_name in _DB_CLASS_NAMES:                                                        &lt;br /&gt;
exec '%(db_mod)s = _db_mod.%(db_mod)s' % { 'db_mod': &lt;br /&gt;
_db_class_name }&lt;/p&gt;
&lt;p&gt;} - - - - - - - - - - - - - - - - &amp;gt;% - - - - - - - - - - - - - - - - {&lt;/p&gt;
&lt;p&gt;In the above, my_modules/data/mysql.py would have definitions for &lt;br /&gt;
the MySQL versions of the classes, my_modules/data/oracle.py &lt;br /&gt;
would have the Oracle definitions, etc., but modules using these &lt;br /&gt;
classes would only import my_modules.data.storage after defining &lt;br /&gt;
the 'some_db' connection alias without worrying about which &lt;br /&gt;
implementation was being used.&lt;/p&gt;
&lt;p&gt;Clearly some thought would be needed for a more elegant/generic/&lt;br /&gt;
scalable solution (if one exists). Some tricks may have to be used &lt;br /&gt;
for differences between different driver layers for the same &lt;br /&gt;
underlying database implementation (e.g., psychopg vs. pypgsql).&lt;/p&gt;
&lt;p&gt;I don't know, this is just a thought as it is something with which I've &lt;br /&gt;
wrestled a couple of times now with no clear idea on the Right Way &lt;br /&gt;
to do it.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matthew Bogosian</dc:creator><pubDate>Tue, 09 Aug 2005 17:54:04 -0000</pubDate><guid>https://sourceforge.net4248c308aae0212cd9b8fbc88bbe650dc7c1d75f</guid></item><item><title>SkunkWeb doesn't work with Cygwin</title><link>https://sourceforge.net/p/skunkweb/bugs/9/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I am afraid  SkunkWeb 3.4b5 does NOT work with Cygwin &lt;br /&gt;
:(.&lt;/p&gt;
&lt;p&gt;C:\opt\cygwin\bin\python2.3.exe (480): *** unable to &lt;br /&gt;
remap C:\opt\cygwin\bin\cygssl-0.9.7.dl&lt;br /&gt;
0x800000) != 0x810000&lt;br /&gt;
3 [main] python 3324 sync_with_child: child &lt;br /&gt;
480(0x678) died before initialization with&lt;br /&gt;
131 [main] python 3324 sync_with_child: *** child &lt;br /&gt;
state child loading dlls&lt;br /&gt;
SkunkWeb exited abnormally! -- check the error log file&lt;br /&gt;
for details&lt;/p&gt;
&lt;p&gt;logs:&lt;/p&gt;
&lt;p&gt;[Sat, 24 Jul 2004 15:15:47 GMT] [4016]  ERROR: File &lt;br /&gt;
"skunkweb", line 97, in ?&lt;br /&gt;
[Sat, 24 Jul 2004 15:15:47 GMT] [4016]  ERROR:   &lt;br /&gt;
SkunkWeb.Server.start()&lt;br /&gt;
[Sat, 24 Jul 2004 15:15:47 GMT] [4016]  ERROR:   File &lt;br /&gt;
"/usr/local/skunk/lib/SkunkWeb/Server.py", line 159, in &lt;br /&gt;
start&lt;br /&gt;
[Sat, 24 Jul 2004 15:15:47 GMT] [4016]  ERROR:     svr.&lt;br /&gt;
mainloop()&lt;br /&gt;
[Sat, 24 Jul 2004 15:15:47 GMT] [4016]  ERROR:   File &lt;br /&gt;
"/usr/local/skunk/lib/pylibs/ProcessMgr/ProcessMgr.py", &lt;br /&gt;
line 126, in mainloop&lt;br /&gt;
[Sat, 24 Jul 2004 15:15:47 GMT] [4016]  ERROR:     if os.&lt;br /&gt;
fork():&lt;br /&gt;
[Sat, 24 Jul 2004 15:15:47 GMT] [4016]  ERROR: &lt;br /&gt;
[Sat, 24 Jul 2004 15:15:47 GMT] [4016]  ERROR: &lt;br /&gt;
exceptions.OSError: [Errno 11] Resource temporarily &lt;br /&gt;
unavailable&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jarosław Zabiełło</dc:creator><pubDate>Sat, 24 Jul 2004 15:25:24 -0000</pubDate><guid>https://sourceforge.net4cb4b5cc40cb2b7edcc30539ead9e68292d42587</guid></item><item><title>pydo mysql getAutoIncrement</title><link>https://sourceforge.net/p/skunkweb/bugs/8/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;tells::&lt;/p&gt;
&lt;p&gt;File "PyDO/mysqlconn.py", line 76, in getAutoIncrement&lt;br /&gt;
return self.conn._db.insert_id()&lt;/p&gt;
&lt;p&gt;proably because _db is no longer defined::&lt;/p&gt;
&lt;p&gt;return self.conn.insert_id()&lt;/p&gt;
&lt;p&gt;works&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">engelbert gruber</dc:creator><pubDate>Mon, 28 Jun 2004 13:57:03 -0000</pubDate><guid>https://sourceforge.netcd5c4bae9a05e374d461e91c56a6b2f42867edc9</guid></item><item><title>.inc and .pyinc files accessible from URL (3.4b5)</title><link>https://sourceforge.net/p/skunkweb/bugs/7/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I can download my .inc and .pyinc files from a URL!&lt;/p&gt;
&lt;p&gt;If I create:&lt;/p&gt;
&lt;p&gt;DOCROOT/foo.inc&lt;br /&gt;
DOCROOT/foo.pyinc&lt;/p&gt;
&lt;p&gt;And then go to:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://localhost/foo.inc" rel="nofollow"&gt;http://localhost/foo.inc&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://localhost/foo.pyinc" rel="nofollow"&gt;http://localhost/foo.pyinc&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I can download the files (they are of types&lt;br /&gt;
"text/x-stml-include" and "text/x-stml-python-include"&lt;br /&gt;
respectively).&lt;/p&gt;
&lt;p&gt;According to the docs (and several articles), these&lt;br /&gt;
files should generate 404s if attempts are made to&lt;br /&gt;
access them through a URL (which seems like a pretty&lt;br /&gt;
good idea to me).&lt;/p&gt;
&lt;p&gt;I don't know if it makes a difference, but I'm&lt;br /&gt;
accessing my SkunkWeb server through Apache 1.39 +&lt;br /&gt;
mod_skunkweb (I turned off SkunkWeb's own HTTP handler).&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matthew Bogosian</dc:creator><pubDate>Tue, 06 Jan 2004 23:51:41 -0000</pubDate><guid>https://sourceforge.netc04abb35803f3904eb389057dc8fe9286f811480</guid></item><item><title>usertracking cookie not properly refreshed</title><link>https://sourceforge.net/p/skunkweb/bugs/6/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;If the expiring time of the cookie for the usertracking&lt;br /&gt;
module is set to something short (e.g. 2 hours), and&lt;br /&gt;
the lifetime of your browser session extends the&lt;br /&gt;
lifetime of the cookie, a new cookie is not given out,&lt;br /&gt;
but an error occurs instead.&lt;/p&gt;
&lt;p&gt;Granted, short-living tracking cookies are not very&lt;br /&gt;
usefull outside a development environment, but a la ... &lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeroen van Dongen</dc:creator><pubDate>Thu, 04 Dec 2003 22:15:11 -0000</pubDate><guid>https://sourceforge.net4824f290eaf83fbb4098fa0d364f5d0e33ac9283</guid></item><item><title>Authenticator.py problems</title><link>https://sourceforge.net/p/skunkweb/bugs/5/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;When using Authenticator.py with the swpasswd utility,&lt;br /&gt;
it overwrites any present data in the authentication file. &lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brian Olsen</dc:creator><pubDate>Tue, 02 Dec 2003 20:40:14 -0000</pubDate><guid>https://sourceforge.net39330aae2991d1efa015138a25ad69ff8bf5f044</guid></item></channel></rss>