SOURCE_HASH=sha512:7e28945a96483785840511df23fd8177383a1f9ee3929df863a3e458550b6eb943f8f86f49ede167125ce64daf718b14c40ac09b99e2e8eea474eecf7ee6a530
SOURCE=$SPELL-$VERSION.tar.gz
-SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
+SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
WEB_SITE=http://libdbi.sourceforge.net
SOURCE_URL[0]=$SOURCEFORGE_URL/$SPELL/$SOURCE
- LICENCE=LGPL
- DOCS=""
- ENTERED=20031213
+ LICENCE=LGPL
+ DOC_DIRS="doc/driver-guide doc/programmers-guide"
+ DOCS="AUTHORS COPYING NEWS README TODO"
+ ENTERED=20031213
KEYWORDS="database"
-SHORT="a database-independent abstraction layer in C"
+ SHORT="database-independent abstraction layer in C"
cat << EOF
libdbi implements a database-independent abstraction layer in C, similar to
the
-DBI/DBD layer in Perl. Writing one generic set of code, programmers can
-leverage
-the power of multiple databases and multiple simultaneous database
-connections by
-using this framework.
+DBI/DBD layer in Perl. Writing one generic set of code, programmers can
leverage
+the power of multiple databases and multiple simultaneous database
connections
+by using this framework.
EOF
diff --git a/database/libdbi/HISTORY b/database/libdbi/HISTORY
index bf73b22..be2517e 100644
--- a/database/libdbi/HISTORY
+++ b/database/libdbi/HISTORY
@@ -1,3 +1,7 @@
+2013-01-21 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: cleaned up; fixed doc installation; PATCHLEVEL=1
+ * DEPENDS: added suggest depends on libdbi-drivers
+
2011-10-14 Bor Kraljič <pyrobor AT ver.si>
* DETAILS: fixed long description wrap (scripted)
diff --git a/libs/gflags/DEPENDS b/libs/gflags/DEPENDS
new file mode 100755
index 0000000..f148724
--- /dev/null
+++ b/libs/gflags/DEPENDS
@@ -0,0 +1 @@
+depends -sub CXX gcc
diff --git a/libs/gflags/DETAILS b/libs/gflags/DETAILS
new file mode 100755
index 0000000..31e3ccb
--- /dev/null
+++ b/libs/gflags/DETAILS
@@ -0,0 +1,18 @@
+ SPELL=gflags
+ VERSION=2.0
+ SOURCE="${SPELL}-${VERSION}.tar.gz"
+ SOURCE_URL[0]=http://gflags.googlecode.com/files/${SOURCE}
+
SOURCE_HASH=sha512:ba7061d5d57fcadb53ef70f846caacc44c319552e7dd6b05def38f961d3d89f4023e4eda95845efb399f3e94f24f75bdadfc67b22e29bccc94e46de8db501b83
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
+ WEB_SITE=http://code.google.com/p/gflags/
+ LICENSE[0]=BSD
+ ENTERED=20130120
+ SHORT="commandline flags module for C++"
+cat << EOF
+The gflags package contains a library that implements commandline flags
+processing. As such it's a replacement for getopt().
+
+It has increased flexibility, including built-in support for C++ types like
+string, and the ability to define flags in the source file in which they're
+used.
+EOF
diff --git a/libs/gflags/HISTORY b/libs/gflags/HISTORY
new file mode 100644
index 0000000..543f042
--- /dev/null
+++ b/libs/gflags/HISTORY
@@ -0,0 +1,2 @@
+2013-01-20 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS, DEPENDS: spell created
diff --git a/mail/greylist/BUILD b/mail/greylist/BUILD
new file mode 100755
index 0000000..e013b8d
--- /dev/null
+++ b/mail/greylist/BUILD
@@ -0,0 +1 @@
+cmake_build
diff --git a/mail/greylist/DEPENDS b/mail/greylist/DEPENDS
new file mode 100755
index 0000000..0937b9a
--- /dev/null
+++ b/mail/greylist/DEPENDS
@@ -0,0 +1,6 @@
+depends -sub CXX gcc &&
+depends -sub THREAD boost &&
+depends cmake &&
+depends libdbi &&
+
+suggest_depends SYSTEM-LOGGER "" "" "to use syslog for event reporting"
diff --git a/mail/greylist/DETAILS b/mail/greylist/DETAILS
new file mode 100755
index 0000000..3a317fc
--- /dev/null
+++ b/mail/greylist/DETAILS
@@ -0,0 +1,38 @@
+ SPELL=greylist
+ VERSION=2
+ SOURCE=${SPELL}-release-${VERSION}.tar.gz
+ SOURCE_URL[0]=http://mimo.gn.apc.org/system/files/file/${SOURCE}
+
SOURCE_HASH=sha512:cc31e0918226d5c704e950394667e83106ed9ce80540e8ba424c66d907f6e8fe5bfe36186c9e1869b290919db3cafa96c45ff787780b841b2c7ea7ddcdd5637b
+SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL"
+ WEB_SITE=http://mimo.gn.apc.org/greylist
+ ENTERED=20130121
+ DOCS="README.txt"
+ LICENSE[0]=LGPL
+ LICENSE[0]=GPL
+ KEYWORDS="mail greylist postfix"
+ SHORT="greylist policy service for postfix"
+cat << EOF
+Main features of this new implementation of a greylisting daemon are:
+
+ * unique method of reverse client recognition suitable for ISPs
+ * fast and safe
+ * uses libdbi - MySQL, PostgreSQL, SQLite, SQLite3, Firebird/Interbase, mSQL
+ supported
+ * highly configurable — object oriented configuration
+ * whitelisting by client network addresses, recipient and sender email
address,
+ client name, ...
+ * pattern matching based whitelisting (regular expressions) for complex
+ whitelisting needs
+ * selectively pattern or table match senders/recipients/hosts/..
+ * use as many databases and database types as you like
+ * multithreaded tcp server (shared caches, high performance)
+ * written in C++, STL
+
+The unique and preferred greylisting method reverse is now the default.
Instead
+of using the IP address of the client it uses a significant part of the
verified
+client name (usually supplied by postfix) to find known triplets.
+
+This mainly helps with ISPs using bigger mail relays in which case the
client IP
+address of a sender might vary. This is a unique feature not found in any
other
+greylisting daemons.
+EOF
diff --git a/mail/greylist/HISTORY b/mail/greylist/HISTORY
new file mode 100644
index 0000000..ffb7deb
--- /dev/null
+++ b/mail/greylist/HISTORY
@@ -0,0 +1,4 @@
+2013-01-21 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS, DEPENDS, {PRE_,}BUILD, INSTALL, init.d/greylist{,.conf},
+ files/mysql.schema.sql, boost-{149,detect}.patch, dbi.patch,
+ query.patch: spell created
diff --git a/mail/greylist/INSTALL b/mail/greylist/INSTALL
new file mode 100755
index 0000000..716664e
--- /dev/null
+++ b/mail/greylist/INSTALL
@@ -0,0 +1,13 @@
+default_install &&
+
+install -vm 755 -d "$INSTALL_ROOT/usr/share/greylist" &&
+install -vm 644 "$SPELL_DIRECTORY/files/mysql.schema.sql" \
+ "$INSTALL_ROOT/usr/share/greylist" &&
+
+install_config_file "$SOURCE_DIRECTORY/greylist.cfg" \
+ "$INSTALL_ROOT/etc/greylist.cfg" &&
+
+if [[ $INIT_INSTALLED ]]; then
+ install_config_file "$SPELL_DIRECTORY/init.d/greylist.conf" \
+ "$INSTALL_ROOT/etc/sysconfig/greylist"
+fi
diff --git a/mail/greylist/PRE_BUILD b/mail/greylist/PRE_BUILD
new file mode 100755
index 0000000..aed13af
--- /dev/null
+++ b/mail/greylist/PRE_BUILD
@@ -0,0 +1,15 @@
+default_pre_build &&
+cd "$SOURCE_DIRECTORY" &&
+
+# require minimum 1.49 Boost libraries, drop static version
+patch -p0 < "$SPELL_DIRECTORY/boost-detect.patch" &&
+
+# drop deprecated MySQL headers, since DBI is used now instead
+patch -p0 < "$SPELL_DIRECTORY/dbi.patch" &&
+
+# fix build with new Boost >= 1.49
+patch -p0 < "$SPELL_DIRECTORY/boost-149.patch" &&
+
+# fixed SQL syntax error when doing query on table
+# (missing ` after table name in case with no 'where' clause)
+patch -p0 < "$SPELL_DIRECTORY/query.patch"
diff --git a/mail/greylist/boost-149.patch b/mail/greylist/boost-149.patch
new file mode 100644
index 0000000..abfba8b
--- /dev/null
+++ b/mail/greylist/boost-149.patch
@@ -0,0 +1,66 @@
+--- src/dbiwrapped-0.0.1/Query.cpp.orig 2010-09-07 01:55:57.000000000
+0400
++++ src/dbiwrapped-0.0.1/Query.cpp 2013-01-21 15:58:14.000000000 +0400
+@@ -50,6 +50,8 @@
+ #include <dbi/dbi.h>
+ #endif
+
++#include <boost/shared_ptr.hpp>
++
+ #include "Database.h"
+ #include "Query.h"
+ #include "../dbierror.h"
+--- src/dbiwrapped-0.0.1/StderrLog.cpp.orig 2010-09-07 01:55:57.000000000
+0400
++++ src/dbiwrapped-0.0.1/StderrLog.cpp 2013-01-21 16:04:30.000000000 +0400
+@@ -42,6 +42,8 @@
+ #include <time.h>
+ #endif
+
++#include <boost/shared_ptr.hpp>
++
+ #include "Database.h"
+ #include "Query.h"
+ #include "IError.h"
+--- src/dbiwrapped-0.0.1/SysLog.cpp.orig 2010-09-07 01:55:57.000000000
+0400
++++ src/dbiwrapped-0.0.1/SysLog.cpp 2013-01-21 16:22:06.393442186 +0400
+@@ -35,6 +35,8 @@
+ #include <syslog.h>
+ #include <cstring>
+
++#include <boost/shared_ptr.hpp>
++
+ #include "Database.h"
+ #include "Query.h"
+ #include "IError.h"
+--- src/simplescheduler.h.orig 2010-09-07 01:55:58.000000000 +0400
++++ src/simplescheduler.h 2013-01-21 16:31:11.000000000 +0400
+@@ -21,6 +21,7 @@
+ #include <map>
+ #include <deque>
+ #include <boost/thread.hpp>
++#include <boost/thread/condition.hpp>
+ #include <boost/smart_ptr.hpp>
+ #include <boost/detail/atomic_count.hpp>
+ // #include "osdependant.h"
+--- src/core.cpp.orig 2010-09-07 01:55:58.000000000 +0400
++++ src/core.cpp 2013-01-21 16:35:54.000000000 +0400
+@@ -16,6 +16,9 @@
+ */
+ #include <iostream>
+ #include <vector>
++
++#include <boost/shared_ptr.hpp>
++
+ #include "defensive.h"
+ #include "triplet.h"
+ #include "core.h"
+--- src/greylist.cpp.orig 2010-09-07 01:55:58.000000000 +0400
++++ src/greylist.cpp 2013-01-21 16:39:12.000000000 +0400
+@@ -1,5 +1,8 @@
+ /// $Id: greylist.cpp 21 2009-09-05 23:07:59Z mimo $
+ #include <iostream>
++
++#include <boost/shared_ptr.hpp>
++
+ // #include "greylist.h"
+ #include "dbiwrapped.h"
+
diff --git a/mail/greylist/boost-detect.patch
b/mail/greylist/boost-detect.patch
new file mode 100644
index 0000000..ae539fe
--- /dev/null
+++ b/mail/greylist/boost-detect.patch
@@ -0,0 +1,18 @@
+--- src/CMakeLists.txt.orig 2010-09-07 01:55:58.000000000 +0400
++++ src/CMakeLists.txt 2013-01-21 15:44:34.000000000 +0400
+@@ -1,6 +1,5 @@
+ # $Id: CMakeLists.txt 52 2009-10-11 00:40:04Z mimo $
+ #
+-set(Boost_USE_STATIC_LIBS TRUE)
+
+ set(dbiwrapped_PATH dbiwrapped-0.0.1)
+ set(dbiwrapped_INCLUDE_DIRS ${dbiwrapped_PATH})
+@@ -12,7 +11,7 @@
+
+ find_library(PTHREADS_LIB pthread)
+
+-find_package( Boost 1.35 COMPONENTS thread)
++find_package(Boost 1.49 COMPONENTS thread REQUIRED)
+
+ include_directories(${CMAKE_CURRENT_BINARY_DIR} ${dbiwrapped_INCLUDE_DIRS}
+ ${threadpool_INCLUDE_PATH} )
diff --git a/mail/greylist/dbi.patch b/mail/greylist/dbi.patch
new file mode 100644
index 0000000..1982938
--- /dev/null
+++ b/mail/greylist/dbi.patch
@@ -0,0 +1,21 @@
+--- src/dbiwrapped-0.0.1/StderrLog.cpp.orig 2010-09-07 01:55:57.000000000
+0400
++++ src/dbiwrapped-0.0.1/StderrLog.cpp 2013-01-21 15:50:38.000000000 +0400
+@@ -40,8 +40,6 @@
+ #include <config-win.h>
+ #include <mysql.h>
+ #include <time.h>
+-#else
+-#include <mysql/mysql.h>
+ #endif
+
+ #include "Database.h"
+--- src/dbiwrapped-0.0.1/SysLog.cpp.orig 2010-09-07 01:55:57.000000000
+0400
++++ src/dbiwrapped-0.0.1/SysLog.cpp 2013-01-21 16:11:51.000000000 +0400
+@@ -31,7 +31,6 @@
+ */
+ #ifndef WIN32
+
+-#include <mysql/mysql.h>
+ #include <syslog.h>
+ #include <cstring>
+
diff --git a/mail/greylist/files/mysql.schema.sql
b/mail/greylist/files/mysql.schema.sql
new file mode 100644
index 0000000..2d5fde0
--- /dev/null
+++ b/mail/greylist/files/mysql.schema.sql
@@ -0,0 +1,60 @@
+CREATE TABLE IF NOT EXISTS `triplet` (
+ `id` bigint(20) NOT NULL auto_increment,
+ `client_address` varchar(40) default NULL,
+ `sender` varchar(160) NOT NULL default '',
+ `recipient` varchar(160) NOT NULL default '',
+ `ip64` decimal(4,0) NOT NULL default '0',
+ `ip32` decimal(4,0) NOT NULL default '0',
+ `ip16` decimal(4,0) NOT NULL default '0',
+ `ip8` decimal(4,0) NOT NULL default '0',
+ `count` int(11) NOT NULL default '0',
+ `uts` int(11) NOT NULL default '0',
+ PRIMARY KEY (`id`),
+ KEY `sender` (`sender`,`recipient`,`ip64`,`ip32`,`ip16`,`ip8`)
+) ENGINE=MyISAM ;
+
+--
+-- Table structure for table `network`
+--
+
+CREATE TABLE IF NOT EXISTS `network` (
+ `address` varchar(16) NOT NULL default '',
+ `comment` varchar(30) NOT NULL default '',
+ PRIMARY KEY (`address`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pattern`
+--
+
+CREATE TABLE IF NOT EXISTS `pattern` (
+ `expression` varchar(200) NOT NULL default '',
+ `comment` varchar(30) NOT NULL default '',
+ PRIMARY KEY (`expression`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `recipient`
+--
+
+CREATE TABLE IF NOT EXISTS `recipient` (
+ `address` varchar(200) NOT NULL default '',
+ `comment` varchar(30) NOT NULL default '',
+ PRIMARY KEY (`address`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `sender`
+--
+
+CREATE TABLE IF NOT EXISTS `sender` (
+ `address` varchar(200) NOT NULL default '',
+ `comment` varchar(30) NOT NULL default '',
+ PRIMARY KEY (`address`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
diff --git a/mail/greylist/init.d/greylist b/mail/greylist/init.d/greylist
new file mode 100755
index 0000000..f584eb4
--- /dev/null
+++ b/mail/greylist/init.d/greylist
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+. /etc/sysconfig/greylist
+
+PROGRAM=/usr/bin/greylist
+RUNLEVEL=3
+NEEDS="+network"
+
+start() {
+ echo "Starting $NAME..."
+
+ ulimit -s $ULIMIT
+
+ su $USER -s /bin/sh -c "$PROGRAM &"
+ evaluate_retval
+}
+
+. /etc/init.d/smgl_init
diff --git a/mail/greylist/init.d/greylist.conf
b/mail/greylist/init.d/greylist.conf
new file mode 100644
index 0000000..da72f95
--- /dev/null
+++ b/mail/greylist/init.d/greylist.conf
@@ -0,0 +1,9 @@
+# Default system stack size is set to 8192KB. Running with a stack size this
big
+# will use very much memory and is unnecessary. E.g. with 50 concurrent
+# connections greylist daemon will use 400MB.
+
+# Try changing the size to something more reasonable (65536KB).
+ULIMIT="64"
+
+# Run under non-privileged user
+USER="nobody"
diff --git a/mail/greylist/query.patch b/mail/greylist/query.patch
new file mode 100644
index 0000000..4136098
--- /dev/null
+++ b/mail/greylist/query.patch
@@ -0,0 +1,11 @@
+--- src/dbdatasource.h.orig 2010-09-07 01:55:58.000000000 +0400
++++ src/dbdatasource.h 2013-01-21 16:48:41.722484888 +0400
+@@ -85,7 +85,7 @@
+ // std::cout << _returnFields << std::endl;
+ // std::cout << _whereClause << std::endl;
+ std::string returnFields = (_returnFields.empty() ? "COUNT(*)" :
_returnFields);
+- std::string whereClause = (_whereClause.empty() ? "" : "` WHERE (" +
_whereClause + ")");
++ std::string whereClause = (_whereClause.empty() ? "`" : "` WHERE (" +
_whereClause + ")");
+
+ if (_query.get_resultf("SELECT " + returnFields + " FROM `"
+ + _table + whereClause, _args)) {
diff --git a/php-pear/memcache/DETAILS b/php-pear/memcache/DETAILS
index 4376855..b9ce401 100755
--- a/php-pear/memcache/DETAILS
+++ b/php-pear/memcache/DETAILS
@@ -1,8 +1,8 @@
SPELL=memcache
- VERSION=2.2.6
+ VERSION=3.0.7
SOURCE=$SPELL-$VERSION.tgz
SOURCE_URL[0]=http://pecl.php.net/get/$SOURCE
-
SOURCE_HASH=sha512:db6e9b693e0d33bab2e14a5f5e2810cb2d4e6c42b33ac65b4fec78f38ead34151a2adc98ccbcc4f7d8158cc4dbcfa9171102aec290b388d53a66d29c236068e0
+
SOURCE_HASH=sha512:c40a9d831b347c877d7a56bf21a7f96a715a7e251212963daf7aa01564a27bbc8fbcab55fc4a20976763b32d6498501b031776fc531d094389ea98853282cefe
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
WEB_SITE=http://pecl.php.net/package/memcache/
LICENSE[0]=PHP
diff --git a/php-pear/memcache/HISTORY b/php-pear/memcache/HISTORY
index 63b385a..91078da 100644
--- a/php-pear/memcache/HISTORY
+++ b/php-pear/memcache/HISTORY
@@ -1,3 +1,9 @@
+2012-10-04 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 3.0.7
+
+2012-02-29 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 3.0.6
+
2010-10-11 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: updated spell to 2.2.6
diff --git a/python-pypi/celery/DEPENDS b/python-pypi/celery/DEPENDS
new file mode 100755
index 0000000..e4ea57a
--- /dev/null
+++ b/python-pypi/celery/DEPENDS
@@ -0,0 +1 @@
+depends PYTHON
diff --git a/python-pypi/celery/DETAILS b/python-pypi/celery/DETAILS
new file mode 100755
index 0000000..2bfd8f8
--- /dev/null
+++ b/python-pypi/celery/DETAILS
@@ -0,0 +1,24 @@
+ SPELL=celery
+ VERSION=3.0.13
+ SOURCE=$SPELL-$VERSION.tar.gz
+ SOURCE_URL[0]=http://pypi.python.org/packages/source/c/$SPELL/$SOURCE
+
SOURCE_HASH=sha512:20bfa638893497f1bbb29859fa0b6f488341aa07d0243da7a713642b9723825de7f747dca09d0f5544dddc7b9595775e947ce247d03204f4080be51d5e3a4955
+SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
+ WEB_SITE=http://celeryproject.org/
+ LICENSE[0]=BSD
+ ENTERED=20130120
+ SHORT="Distributed Task Queue"
+cat << EOF
+Task queues are used as a mechanism to distribute work across threads or
+machines.
+
+A task queue's input is a unit of work, called a task, dedicated worker
+processes then constantly monitor the queue for new work to perform.
+
+Celery communicates via messages using a broker to mediate between clients
and
+workers. To initiate a task a client puts a message on the queue, the broker
+then delivers the message to a worker.
+
+A Celery system can consist of multiple workers and brokers, giving way to
high
+availability and horizontal scaling.
+EOF
diff --git a/python-pypi/celery/HISTORY b/python-pypi/celery/HISTORY
new file mode 100644
index 0000000..1eba055
--- /dev/null
+++ b/python-pypi/celery/HISTORY
@@ -0,0 +1,5 @@
+2013-01-20 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 3.0.13
+
+2012-11-30 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS, DEPENDS: spell created
diff --git a/python-pypi/distribute/DETAILS b/python-pypi/distribute/DETAILS
index e68daaa..3882843 100755
--- a/python-pypi/distribute/DETAILS
+++ b/python-pypi/distribute/DETAILS
@@ -1,6 +1,6 @@
SPELL=distribute
- VERSION=0.6.30
-
SOURCE_HASH=sha512:17af11c106064100aa9710d6d129b624727ca20c9f37a77a64b7394768f4006613605382f41d20beed24005189c7a68986208970586ed910a4c7bfff59d10350
+ VERSION=0.6.34
+
SOURCE_HASH=sha512:348d5c77dd1cf24a0f568be68aa19df3e0a1a1971d643850dd6133bbba9b9cb7574cc84195863d824c2d603d408b35bf3518bfb49bae0a90ab8971bf773c5e67
# SOURCE_GPG="gurus.gpg:${SOURCE}.sig"
SOURCE="${SPELL}-${VERSION}.tar.gz"
SOURCE_URL[0]=http://pypi.python.org/packages/source/d/${SPELL}/${SOURCE}
diff --git a/python-pypi/distribute/HISTORY b/python-pypi/distribute/HISTORY
index 3c9e115..4ec20b3 100644
--- a/python-pypi/distribute/HISTORY
+++ b/python-pypi/distribute/HISTORY
@@ -1,3 +1,6 @@
+2013-01-20 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 0.6.34
+
2012-11-01 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 0.6.30
diff --git a/python-pypi/python-gflags/DEPENDS
b/python-pypi/python-gflags/DEPENDS
new file mode 100755
index 0000000..e440941
--- /dev/null
+++ b/python-pypi/python-gflags/DEPENDS
@@ -0,0 +1,2 @@
+depends PYTHON &&
+depends SETUPTOOLS
diff --git a/python-pypi/python-gflags/DETAILS
b/python-pypi/python-gflags/DETAILS
new file mode 100755
index 0000000..a70666d
--- /dev/null
+++ b/python-pypi/python-gflags/DETAILS
@@ -0,0 +1,25 @@
+ SPELL=python-gflags
+ VERSION=2.0
+ SOURCE=$SPELL-$VERSION.tar.gz
+ SOURCE_URL[0]=http://python-gflags.googlecode.com/files/$SOURCE
+ SOURCE_URL[1]=http://pypi.python.org/packages/source/p/$SPELL/$SOURCE
+
SOURCE_HASH=sha512:28566acffd092f09105f3b9ad3be4ada11f024f940914e6efb103907f3779283c63bdfe13edad83aa470c5e887b49ad8b05031fc1895f3bad9b5d9c368bbfe18
+SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
+ WEB_SITE=http://code.google.com/p/python-gflags/
+ LICENSE[0]=BSD
+ ENTERED=20130120
+ KEYWORDS="python getopt optparse"
+ SHORT="commandline flags module for Python"
+cat << EOF
+This project is the python equivalent of gflags, a commandline flag
+implementation for C++ originally written by Google. It is intended to be
used
+in situations where a project wants to mimic the command-line flag handling
of a
+C++ app that uses gflags, or for a Python app that, via swig or some other
means,
+is linked with a C++ app that uses gflags.
+
+The python-gflags package contains a library that implements commandline
flags
+processing. As such it's a replacement for getopt(). It has increased
+flexibility, including built-in support for Python types, and the ability to
+define flags in the source file in which they're used. (This last is its
major
+difference from OptParse.)
+EOF
diff --git a/python-pypi/python-gflags/HISTORY
b/python-pypi/python-gflags/HISTORY
new file mode 100644
index 0000000..543f042
--- /dev/null
+++ b/python-pypi/python-gflags/HISTORY
@@ -0,0 +1,2 @@
+2013-01-20 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS, DEPENDS: spell created
diff --git a/python-pypi/virtualenv/DEPENDS b/python-pypi/virtualenv/DEPENDS
new file mode 100755
index 0000000..503782e
--- /dev/null
+++ b/python-pypi/virtualenv/DEPENDS
@@ -0,0 +1,2 @@
+depends python &&
+depends SETUPTOOLS
diff --git a/python-pypi/virtualenv/DETAILS b/python-pypi/virtualenv/DETAILS
new file mode 100755
index 0000000..ca848a2
--- /dev/null
+++ b/python-pypi/virtualenv/DETAILS
@@ -0,0 +1,18 @@
+ SPELL=virtualenv
+ VERSION=1.8.4
+
SOURCE_HASH=sha512:2c485bc2ade615a1d397174be85f607605f1c97267ce38ec5a7b208a3d5f17b9abc456dc32154f2a5d21ebe1f7d82032b28deb66dd230bad2e69d9c72761e975
+ SOURCE=$SPELL-$VERSION.tar.gz
+ SOURCE_URL=http://pypi.python.org/packages/source/v/$SPELL/$SOURCE
+SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
+ WEB_SITE=http://www.virtualenv.org/
+ LICENSE[0]=MIT
+ ENTERED=20130120
+ KEYWORDS="python"
+ SHORT="Virtual Python Environment builder"
+cat << EOF
+virtualenv is a tool to create isolated Python environments.
+
+It creates an environment that has its own installation directories, that
+doesn't share libraries with other virtualenv environments (and optionally
+doesn't access the globally installed libraries either).
+EOF
diff --git a/python-pypi/virtualenv/HISTORY b/python-pypi/virtualenv/HISTORY
new file mode 100644
index 0000000..c19a140
--- /dev/null
+++ b/python-pypi/virtualenv/HISTORY
@@ -0,0 +1,5 @@
+2013-01-20 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 1.8.4
+
+2012-11-15 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS, DEPENDS: spell created
[SM-Commit] GIT changes to master grimoire by Vlad Glagolev (3404948851221be46dfaed9ece14f3752ad0d1bc),
Vlad Glagolev, 01/21/2013