[ckan-changes] commit/ckan: thejimmyg: [packaging] Changes for release: updated requirements, new ckan_deb directory, bumped version

Bitbucket commits-noreply at bitbucket.org
Fri Sep 30 09:58:54 UTC 2011


1 new changeset in ckan:

http://bitbucket.org/okfn/ckan/changeset/43d03f65da08/
changeset:   43d03f65da08
branch:      release-v1.4.3.1
user:        thejimmyg
date:        2011-09-30 11:58:40
summary:     [packaging] Changes for release: updated requirements, new ckan_deb directory, bumped version
affected #:  9 files (-1 bytes)

--- a/ckan/__init__.py	Fri Sep 16 10:02:40 2011 +0100
+++ b/ckan/__init__.py	Fri Sep 30 10:58:40 2011 +0100
@@ -1,4 +1,4 @@
-__version__ = '1.4.3.1b'
+__version__ = '1.4.3.1'
 __description__ = 'Comprehensive Knowledge Archive Network (CKAN) Software'
 __long_description__ = \
 '''The CKAN software is used to run the Comprehensive Knowledge Archive
@@ -16,11 +16,4 @@
 __license__ = 'AGPL'
 
 # The packaging system replies on this import, please do not remove it
-try:
-    # Ths automatically modifies sys.path so that the CKAN versions of
-    # key dependencies are used instead of the ones already installed.
-    import ckan_deps
-except ImportError:
-    # This installation of CKAN probably isn't using the ckan_deps
-    pass
-
+import sys; sys.path.insert(0, __path__[0])


--- a/ckan/wsgi.py	Fri Sep 16 10:02:40 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-#!/usr/bin/env python
-
-# The packaging system requires this script at ckan/wsgi.py, please do not
-# move it.
-
-usage = """
-WSGI Script for CKAN
-====================
-
-Set Apache to run this WSGI Script via a symlink that is adjacent to your CKAN
-config file in the file system.
-
-Example:
-  Find this script's installed path::
-      $ python -c 'import ckan; print ckan.__path__'
-      ['/usr/lib/pymodules/python2.6/ckan/']
-  
-  Create symlink::
-      $ ln -s /usr/lib/pymodules/python2.6/ckan/wsgi.py /etc/ckan/dgu.py
-
-  Apache config line::
-      WSGIScriptAlias / /etc/ckan/dgu.py
-
-  dgu.py will load the Pylons config: dgu.ini (looking in the same directory.)
-"""
-
-import os
-import sys
-from apachemiddleware import MaintenanceResponse
-
-symlink_filepath = __file__
-if os.path.basename(symlink_filepath) == 'wsgi.py':
-    print usage
-    sys.exit(1)
-config_filepath = symlink_filepath.replace('.py', '.ini')
-assert os.path.exists(config_filepath), 'Cannot find file %r (from symlink %r)' % (config_filepath, __file__)
-
-# enable logging
-from paste.script.util.logging_config import fileConfig
-fileConfig(config_filepath)
-
-from paste.deploy import loadapp
-application = loadapp('config:%s' % config_filepath)
-application = MaintenanceResponse(application)
-


--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ckan_deb/DEBIAN/control.template	Fri Sep 30 10:58:40 2011 +0100
@@ -0,0 +1,11 @@
+# This get's set by the build script
+# Version: XXX
+Package: ckan
+Architecture: all
+Maintainer: James Gardner <james.gardner at okfn.org>
+Section: main/web
+Priority: extra
+Depends: python-ckan, postgresql-8.4, apache2, libapache2-mod-wsgi, python-apachemiddleware, python-virtualenv, python-pip
+Homepage: http://ckan.org
+Description: ckan
+ Common files useful for managing CKAN installations


--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ckan_deb/usr/bin/ckan-create-instance	Fri Sep 30 10:58:40 2011 +0100
@@ -0,0 +1,131 @@
+#!/bin/bash
+. /usr/lib/ckan/common.sh
+
+INSTANCE=$1
+
+# Check we are root
+if [[ $EUID -ne 0 ]]; then
+   echo "This script must be run as root"
+   exit 1
+fi
+
+# Create an install settings file if it doesn't exist
+if ! [ -f /etc/ckan/${INSTANCE}/install_settings.sh ] ; then
+    mkdir -p /etc/ckan/${INSTANCE}/
+    cat <<EOF > /etc/ckan/${INSTANCE}/install_settings.sh
+#!/bin/bash
+EOF
+    chmod +x /etc/ckan/${INSTANCE}/install_settings.sh
+fi
+
+# Parse the settings
+. /etc/ckan/${INSTANCE}/install_settings.sh
+
+# See which settings are set, and create any we need that aren't
+if [ "X${CKAN_DB_PASSWORD}" = "X" ] ; then
+    # Create a password
+    CKAN_DB_PASSWORD=`< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c10`
+    cat <<EOF >> /etc/ckan/${INSTANCE}/install_settings.sh
+CKAN_DB_PASSWORD=${CKAN_DB_PASSWORD}
+EOF
+fi
+
+error() { 
+    echo -e "${@}" 1>&2
+    exit 1
+}
+
+echo "Installing or upgrading CKAN ${INSTANCE} ..."
+
+echo "Making sure PostgreSQL is running ..."
+/etc/init.d/postgresql-8.4 start
+
+echo "Ensuring users and groups are set up correctly ..."
+ckan_ensure_users_and_groups ${INSTANCE}
+
+echo "Ensuring directories exist for ${INSTANCE} CKAN INSTANCE ..."
+ckan_make_ckan_directories ${INSTANCE}
+
+# Disable any existing crontabs during the upgrade, we don't want
+# scripts running when things are still changing
+echo "Disabling the crontab for the ckan${INSTANCE} user ..."
+PACKAGED_CRONJOB="/tmp/${INSTANCE}-cronjob"
+cat <<EOF > ${PACKAGED_CRONJOB}
+# m  h dom mon dow  command
+EOF
+crontab -u ckan${INSTANCE} ${PACKAGED_CRONJOB}
+
+# Try to put CKAN into maintenance mode, if it is installed
+if [ -f /etc/apache2/sites-available/${INSTANCE}.maint ] ; then
+    # We have a maintence mode available
+    echo "Putting CKAN into maintenance mode ..."
+    ckan_maintenance_on ${INSTANCE}
+fi
+
+echo "Setting log file permissions so that both Apache and cron jobs can log to the same place ..."
+ckan_set_log_file_permissions ${INSTANCE}
+
+echo "Ensuring who.ini file exists ..."
+ckan_create_who_ini ${INSTANCE}
+
+echo "Ensuring wsgi.py file exists ..."
+ckan_create_wsgi_handler ${INSTANCE}
+
+# Replace any existing user with a new one with this password
+echo "Setting the password of the ${INSTANCE} user in PostgreSQL"
+ckan_add_or_replace_database_user ${INSTANCE} ${CKAN_DB_PASSWORD}
+
+# Create the config file
+echo "Creating/overwriting the config for CKAN ... "
+# We use the actual password in PostgreSQL in case any non-sense has gone on
+ckan_create_config_file ${INSTANCE} ${CKAN_DB_PASSWORD}
+# Now that the file exists, make some customisations
+sed \
+    -e "s,^\(ckan.dump_dir\)[ =].*,\1 = /var/lib/ckan/${INSTANCE}/static/dump," \
+    -i /etc/ckan/${INSTANCE}/${INSTANCE}.ini
+
+echo "Ensuring the ${INSTANCE} database exists ..."
+ckan_ensure_db_exists ${INSTANCE}
+
+#echo "Ensuring the latest plugins are configured ..."
+#sed -e "s/^\(ckan.plugins\)[ =].*/\1 = ${INSTANCE}/" \
+#    -i /etc/ckan/${INSTANCE}/${INSTANCE}.ini
+
+# Overwrite the existing Apache config
+if [ -f /etc/apache2/sites-enabled/000-default ] ; then
+    echo "Disabling the default Apache site ..."
+    a2dissite 000-default
+fi
+
+echo "Overwriting the existing Apache config ..."
+ckan_overwrite_apache_config ${INSTANCE} ${INSTANCE}.ckan.localhost 
+
+# Make sure mod_rewrite is enabled
+if ! [ -f /etc/apache2/mods-enabled/rewrite.load ] ; then
+    echo "Enabling Apache mod_rewite ..."
+    a2enmod rewrite
+fi
+
+# Standard paster db upgrade
+echo "Performing any database upgrades ..."
+paster --plugin=ckan db upgrade --config=/etc/ckan/${INSTANCE}/${INSTANCE}.ini
+
+# Make sure our INSTANCE is enabled
+echo "Bringing the ${INSTANCE} INSTANCE out of maintenance mode ..."
+ckan_maintenance_off ${INSTANCE}
+
+# Restart Apache so it is aware of any changes
+echo "Restarting apache ..."
+/etc/init.d/apache2 restart 
+
+# Install the new crontab
+echo "Enabling crontab for the ckan${INSTANCE} user ..."
+PACKAGED_CRONJOB="/tmp/${INSTANCE}-cronjob"
+cat <<EOF > ${PACKAGED_CRONJOB}
+# WARNING:  Do not edit these cron tabs, they will be overwritten any time 
+#           the ckan INSTANCE package is upgraded
+# QUESTION: Should email reports be sent to root?
+EOF
+crontab -u ckan${INSTANCE} ${PACKAGED_CRONJOB}
+
+exit 0


--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ckan_deb/usr/bin/ckan-instance-maintenance	Fri Sep 30 10:58:40 2011 +0100
@@ -0,0 +1,48 @@
+#!/bin/bash
+. /usr/lib/ckan/common.sh
+
+set -e
+
+# Un-comment for debugging
+
+# Check we are root
+if [[ $EUID -ne 0 ]]; then
+   echo "This script must be run as root"
+   exit 1
+fi
+
+error() { 
+    echo -e "${@}" 1>&2
+    exit 1
+}
+
+usage() {
+    error "ERROR: call this script with instance name and \"on\" or \"off\", e.g.\n       $0  dgu   on"
+}
+
+[ "X$1" = "X" ] || [ "X$2" = "X" ] && usage
+instance=$1
+command=$2
+
+for conf in /etc/apache2/sites-available/${instance}{,.maint} ; do
+    [ -f ${conf} ] || error "ERROR: ${conf} not found"
+done
+
+case $command in
+    on)
+        echo "Putting CKAN site \"${instance}\" into maintenance mode ..."
+        maintenance_on $instance
+        echo "done."
+        ;;
+    
+    off)
+        echo "Disabling maintenance mode for CKAN site \"${instance}\" ..."
+        maintenance_off $instance
+        echo "done."
+        ;;
+    *)
+        usage
+        ;;
+esac
+
+exit 0


--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ckan_deb/usr/lib/ckan/common.sh	Fri Sep 30 10:58:40 2011 +0100
@@ -0,0 +1,269 @@
+#!/bin/bash
+
+ckan_log () {
+    echo "ckan: " $1
+}
+
+#_echo="echo"
+ckan_maintenance_on () {
+    local INSTANCE
+    INSTANCE=$1
+    $_echo a2dissite ${INSTANCE}
+    $_echo a2ensite  ${INSTANCE}.maint
+    $_echo service apache2 reload
+}
+
+ckan_maintenance_off () {
+    local INSTANCE
+    INSTANCE=$1
+    $_echo a2dissite ${INSTANCE}.maint
+    $_echo a2ensite  ${INSTANCE}
+    $_echo service apache2 reload
+}
+
+ckan_set_log_file_permissions () {
+    local INSTANCE
+    INSTANCE=$1
+    sudo chown www-data:ckan${INSTANCE} /var/log/ckan/${INSTANCE}
+    sudo chmod g+w /var/log/ckan/${INSTANCE}
+    sudo touch /var/log/ckan/${INSTANCE}/${INSTANCE}.log
+    sudo touch /var/log/ckan/${INSTANCE}/${INSTANCE}1.log
+    sudo touch /var/log/ckan/${INSTANCE}/${INSTANCE}2.log
+    sudo touch /var/log/ckan/${INSTANCE}/${INSTANCE}3.log
+    sudo touch /var/log/ckan/${INSTANCE}/${INSTANCE}4.log
+    sudo touch /var/log/ckan/${INSTANCE}/${INSTANCE}5.log
+    sudo touch /var/log/ckan/${INSTANCE}/${INSTANCE}6.log
+    sudo touch /var/log/ckan/${INSTANCE}/${INSTANCE}7.log
+    sudo touch /var/log/ckan/${INSTANCE}/${INSTANCE}8.log
+    sudo touch /var/log/ckan/${INSTANCE}/${INSTANCE}9.log
+    sudo chmod g+w /var/log/ckan/${INSTANCE}/${INSTANCE}*.log
+    sudo chown www-data:ckan${INSTANCE} /var/log/ckan/${INSTANCE}/${INSTANCE}*.log
+}
+
+ckan_ensure_users_and_groups () {
+    local INSTANCE
+    INSTANCE=$1
+    COMMAND_OUTPUT=`cat /etc/group | grep "ckan${INSTANCE}:"`
+    if ! [[ "$COMMAND_OUTPUT" =~ "ckan${INSTANCE}:" ]] ; then
+        echo "Crating the 'ckan${INSTANCE}' group ..." 
+        sudo groupadd --system "ckan${INSTANCE}"
+    fi
+    COMMAND_OUTPUT=`cat /etc/passwd | grep "ckan${INSTANCE}:"`
+    if ! [[ "$COMMAND_OUTPUT" =~ "ckan${INSTANCE}:" ]] ; then
+        echo "Crating the 'ckan${INSTANCE}' user ..." 
+        sudo useradd  --system  --gid "ckan${INSTANCE}" --home /var/lib/ckan/${INSTANCE} -M  --shell /usr/sbin/nologin ckan${INSTANCE}
+    fi
+}
+
+ckan_make_ckan_directories () {
+    local INSTANCE
+    if [ "X$1" = "X" ] ; then
+        echo "ERROR: call the function make_ckan_directories with an INSTANCE name, e.g." 
+        echo "       dgu"
+        exit 1
+    else
+        INSTANCE=$1
+        mkdir -p -m 0755 /etc/ckan/${INSTANCE}
+        mkdir -p -m 0750 /var/lib/ckan/${INSTANCE}{,/static}
+        mkdir -p -m 0770 /var/{backup,log}/ckan/${INSTANCE} /var/lib/ckan/${INSTANCE}/{data,sstore,static/dump}
+        sudo chown ckan${INSTANCE}:ckan${INSTANCE} /etc/ckan/${INSTANCE}
+        sudo chown www-data:ckan${INSTANCE} /var/{backup,log}/ckan/${INSTANCE} /var/lib/ckan/${INSTANCE} /var/lib/ckan/${INSTANCE}/{data,sstore,static/dump}
+        sudo chmod g+w /var/log/ckan/${INSTANCE} /var/lib/ckan/${INSTANCE}/{data,sstore,static/dump}
+    fi
+}
+
+ckan_create_who_ini () {
+    local INSTANCE
+    if [ "X$1" = "X" ] ; then
+        echo "ERROR: call the function create_who_ini function with an INSTANCE name, e.g." 
+        echo "       dgu"
+        exit 1
+    else
+        INSTANCE=$1
+        if ! [ -f /etc/ckan/$0/who.ini ] ; then
+            cp -n /usr/share/pyshared/ckan/config/who.ini /etc/ckan/${INSTANCE}/who.ini
+            sed -e "s,%(here)s,/var/lib/ckan/${INSTANCE}," \
+                -i /etc/ckan/${INSTANCE}/who.ini
+        fi
+    fi
+}
+
+ckan_create_config_file () {
+    local INSTANCE password
+    if [ "X$1" = "X" ] || [ "X$2" = "X" ] ; then
+        echo "ERROR: call the function create_config_file function with an INSTANCE name, and a password for postgresql e.g."
+        echo " dgu 1U923hjkh8"
+        exit 1
+    else
+        INSTANCE=$1
+        password=$2
+        # Create an install settings file if it doesn't exist
+        if [ -f /etc/ckan/${INSTANCE}/${INSTANCE}.ini ] ; then
+            mv /etc/ckan/${INSTANCE}/${INSTANCE}.ini "/etc/ckan/${INSTANCE}/${INSTANCE}.ini.`date +%F_%T`.bak"
+        fi
+        paster make-config ckan /etc/ckan/${INSTANCE}/${INSTANCE}.ini
+        sed -e "s,^\(email_to\)[ =].*,\1 = root," \
+            -e "s,^\(error_email_from\)[ =].*,\1 = ckan-${INSTANCE}@`hostname`," \
+            -e "s,^\(cache_dir\)[ =].*,\1 = /var/lib/ckan/${INSTANCE}/data," \
+            -e "s,^\(who\.config_file\)[ =].*,\1 = /etc/ckan/${INSTANCE}/who.ini," \
+            -e "s,^\(sqlalchemy.url\)[ =].*,\1 = postgresql://${INSTANCE}:${password}@localhost/${INSTANCE}," \
+            -e "s,ckan\.site_logo,\#ckan.site_logo," \
+            -e "s,ckan\.log,/var/log/ckan/${INSTANCE}/${INSTANCE}.log," \
+            -i /etc/ckan/${INSTANCE}/${INSTANCE}.ini
+    fi
+}
+
+ckan_add_or_replace_database_user () {
+    local INSTANCE password
+    if [ "X$1" = "X" ] || [ "X$2" = "X" ] ; then
+        echo "ERROR: call the function ckan_add_or_replace_database_user function with an INSTANCE name, and a password for postgresql e.g." 
+        echo "       dgu 1U923hjkh8"
+        echo "       You can generate a password like this: "
+        echo "           < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c10"
+        exit 1
+    else
+        INSTANCE=$1
+        password=$2
+        COMMAND_OUTPUT=`sudo -u postgres psql -c "SELECT 'True' FROM pg_user WHERE usename='${INSTANCE}'"`
+        if ! [[ "$COMMAND_OUTPUT" =~ True ]] ; then
+            echo "Creating the ${INSTANCE} user ..."
+            sudo -u postgres psql -c "CREATE USER \"${INSTANCE}\" WITH PASSWORD '${password}'"
+        else
+            echo "Setting the ${INSTANCE} user password ..."
+            sudo -u postgres psql -c "ALTER USER \"${INSTANCE}\" WITH PASSWORD '${password}'"
+        fi
+    fi
+}
+
+ckan_ensure_db_exists () {
+    local INSTANCE
+    if [ "X$1" = "X" ] ; then
+        echo "ERROR: call the function ensure_db_exists function with an INSTANCE name, e.g." 
+        echo "       dgu"
+        exit 1
+    else
+        INSTANCE=$1
+        COMMAND_OUTPUT=`sudo -u postgres psql -l`
+        if ! [[ "$COMMAND_OUTPUT" =~ ${INSTANCE} ]] ; then
+            echo "Creating the database ..."
+            sudo -u postgres createdb -O ${INSTANCE} ${INSTANCE}
+        fi
+    fi
+}
+
+ckan_create_wsgi_handler () {
+    local INSTANCE
+    if [ "X$1" = "X" ] ; then
+        echo "ERROR: call the function create_wsgi_handler function with an INSTANCE name, e.g." 
+        echo "       dgu"
+        exit 1
+    else
+        INSTANCE=$1
+        if [ ! -f "/var/lib/ckan/${INSTANCE}/wsgi.py" ]
+        then
+            sudo virtualenv --setuptools /var/lib/ckan/${INSTANCE}/pyenv
+            cat <<- EOF > /var/lib/ckan/${INSTANCE}/wsgi.py
+	import os
+	instance_dir = '/var/lib/ckan/${INSTANCE}'
+	config_dir = '/etc/ckan/${INSTANCE}'
+	config_file = '${INSTANCE}.ini'
+	pyenv_bin_dir = os.path.join(instance_dir, 'pyenv', 'bin')
+	activate_this = os.path.join(pyenv_bin_dir, 'activate_this.py')
+	execfile(activate_this, dict(__file__=activate_this))
+	# this is werid but without importing ckanext first import of paste.deploy will fail
+	#import ckanext
+	config_filepath = os.path.join(config_dir, config_file)
+	if not os.path.exists(config_filepath):
+	    raise Exception('No such file %r'%config_filepath)
+	from paste.deploy import loadapp
+	from paste.script.util.logging_config import fileConfig
+	fileConfig(config_filepath)
+	application = loadapp('config:%s' % config_filepath)
+	from apachemiddleware import MaintenanceResponse
+	application = MaintenanceResponse(application)
+	EOF
+        sudo chmod +x /var/lib/ckan/${INSTANCE}/wsgi.py
+        fi
+   fi
+}
+
+ckan_overwrite_apache_config () {
+    local INSTANCE ServerName
+    if [ "X$1" = "X" ] ; then
+        echo "ERROR: call the function overwrite_apache_config function with an INSTANCE name, the server name and a server aliase e.g." 
+        echo "       dgu catalogue.data.gov.uk dgu-live.okfn.org"
+        exit 1
+    else
+        INSTANCE=$1
+        ServerName=$2
+        #rm /etc/apache2/sites-available/${INSTANCE}.common
+        cat <<EOF > /etc/apache2/sites-available/${INSTANCE}.common
+
+    # WARNING: Do not manually edit this file, it is desgined to be 
+    #          overwritten at any time by the postinst script of 
+    #          dependent packages
+
+    # These are common settings used for both the normal and maintence modes
+
+    DocumentRoot /var/lib/ckan/${INSTANCE}/static
+    ServerName ${ServerName}
+
+    <Directory />
+        # XXX Should this be deny? We get a "Client denied by server configuration" without it
+        allow from all
+    </Directory>
+
+    <Directory /etc/ckan/${INSTANCE}/>
+        allow from all
+    </Directory>
+
+    <Directory /var/lib/ckan/${INSTANCE}/static>
+        allow from all
+    </Directory>
+
+    Alias /dump /var/lib/ckan/${INSTANCE}/static/dump
+
+    # Disable the mod_python handler for static files
+    <Location /dump>
+        SetHandler None
+        Options +Indexes
+    </Location>
+
+    # this is our app
+    WSGIScriptAlias / /var/lib/ckan/${INSTANCE}/wsgi.py
+
+    # pass authorization info on (needed for rest api)
+    WSGIPassAuthorization On
+
+    ErrorLog /var/log/apache2/${INSTANCE}.error.log
+    CustomLog /var/log/apache2/${INSTANCE}.custom.log combined
+EOF
+        #rm /etc/apache2/sites-available/${INSTANCE}
+        cat <<EOF > /etc/apache2/sites-available/${INSTANCE} 
+<VirtualHost *:80>
+    # WARNING: Do not manually edit this file, it is desgined to be 
+    #          overwritten at any time by the postinst script of 
+    #          dependent packages
+    Include /etc/apache2/sites-available/${INSTANCE}.common
+</VirtualHost>
+EOF
+        #rm /etc/apache2/sites-available/${INSTANCE}.maint
+        cat <<EOF > /etc/apache2/sites-available/${INSTANCE}.maint
+<VirtualHost *:80>
+    # WARNING: Do not manually edit this file, it is desgined to be 
+    #          overwritten at any time by the postinst script of 
+    #          dependent packages
+    Include /etc/apache2/sites-available/${INSTANCE}.common
+
+    # Maintenance mode
+    RewriteEngine On
+    RewriteRule ^(.*)/new /return_503 [PT,L]
+    RewriteRule ^(.*)/create /return_503 [PT,L]      
+    RewriteRule ^(.*)/authz /return_503 [PT,L]
+    RewriteRule ^(.*)/edit /return_503 [PT,L]
+    RewriteCond %{REQUEST_METHOD} !^GET$ [NC]
+    RewriteRule (.*) /return_503 [PT,L]
+</VirtualHost>
+EOF
+    fi
+}


--- a/requires/lucid_conflict.txt	Fri Sep 16 10:02:40 2011 +0100
+++ b/requires/lucid_conflict.txt	Fri Sep 30 10:58:40 2011 +0100
@@ -4,7 +4,7 @@
 # a single location which CKAN imports from in preference to the Lucid 
 # equivalent.
 
-Genshi>=0.6,<0.6.99
+Genshi==0.6
 sqlalchemy-migrate==0.6
 sqlalchemy==0.6.6
 webhelpers==1.2


--- a/requires/lucid_missing.txt	Fri Sep 16 10:02:40 2011 +0100
+++ b/requires/lucid_missing.txt	Fri Sep 30 10:58:40 2011 +0100
@@ -8,15 +8,16 @@
 # vdm>=0.9,<0.9.99
 -e hg+https://bitbucket.org/okfn/vdm@vdm-0.9#egg=vdm
 # markupsafe==0.9.2 required by webhelpers==1.2 required by formalchemy with SQLAlchemy 0.6
--e git+https://github.com/mitsuhiko/markupsafe.git@0.9.2#egg=markupsafe
+markupsafe==0.9.2
 # autoneg>=0.5
 -e git+https://github.com/wwaites/autoneg.git@b4c727b164f411cc9d60#egg=autoneg
 # flup>=0.5
 -e hg+http://hg.saddi.com/flup@301a58656bfb#egg=flup
 # All the conflicting dependencies from the lucid_conflict.txt file
--e hg+https://bitbucket.org/okfn/ckan-deps@6287665a1965#egg=ckan-deps
+#-e hg+https://bitbucket.org/okfn/ckan-deps@6287665a1965#egg=ckan-deps
 # FormAlchemy
--e git+https://github.com/FormAlchemy/formalchemy.git@1.3.9#egg=formalchemy
+formalchemy==1.3.9
+-e hg+https://hg.3aims.com/public/ApacheMiddleware@tip#egg=apachemiddleware
 
 # NOTE: Developers, our build script for the Debian packages relies on the 
 #       requirements above being specified as editable resources with their


--- a/requires/lucid_present.txt	Fri Sep 16 10:02:40 2011 +0100
+++ b/requires/lucid_present.txt	Fri Sep 30 10:58:40 2011 +0100
@@ -14,11 +14,11 @@
 # with pylons 0.9.7 (change to imports of Multidict)
 webob==1.0.8
 Pylons==0.9.7
-repoze.who==1.0.18
+repoze.who==1.0.19
 tempita==0.4
 zope.interface==3.5.3
 # These are both combined into the python-repoze.who-plugins package
-repoze.who.plugins.openid
+repoze.who.plugins.openid==0.5.4
 # Actually from python-repoze.who-plugins but the openid plugin in the same
 # package is too old
 repoze.who-friendlyform==1.0.8

Repository URL: https://bitbucket.org/okfn/ckan/

--

This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.




More information about the ckan-changes mailing list