Commit 133f0c6dd58f6ea2c0c329c6fb3c59728be713e6
1 parent
679b4f93
Exists in
master
and in
39 other branches
Updating installation process
Showing
7 changed files
with
14 additions
and
282 deletions
Show diff stats
MANIFEST.in
README.md
requirements.txt
1 | 1 | https://www.djangoproject.com/download/1.6b1/tarball/ |
2 | 2 | South==0.8.1 |
3 | +psycopg2==2.5.1 | |
3 | 4 | django-piston==0.2.3 |
4 | 5 | pytz==2011n |
5 | 6 | chardet==1.0.1 |
6 | 7 | python-dateutil==1.5 |
7 | 8 | django-cliauth==0.9 |
9 | + | |
10 | +# Feedzilla (planet) and deps | |
8 | 11 | https://bitbucket.org/seocam/feedzilla/get/tip.tar.gz # Temporarily work around |
9 | 12 | django-common |
10 | 13 | django-tagging | ... | ... |
setup.py
... | ... | @@ -1,51 +0,0 @@ |
1 | -#!/usr/bin/env python | |
2 | - | |
3 | -from setuptools import setup, find_packages | |
4 | -from setupext import Data_Files, install_Data_Files | |
5 | - | |
6 | -setup(name='colab', | |
7 | - version='3.0', | |
8 | - description = 'Colab, a Software for Communities', | |
9 | - author='Sergio Oliveira', | |
10 | - author_email='seocam@seocam.com', | |
11 | - url='https://bitbucket.org/seocam/atu-colab', | |
12 | - license = "GPL 2", | |
13 | - packages=find_packages(), | |
14 | - package_data={'colab': ['templates/*.html', | |
15 | - 'super_archives/templates/*.html', | |
16 | - 'super_archives/fixtures/initial_data.json']}, | |
17 | - data_files=[ | |
18 | - Data_Files(base_dir='install_data', | |
19 | - copy_to='static', | |
20 | - template=['recursive-include colab/static *'], | |
21 | - preserve_path=1, | |
22 | - strip_dirs=2), | |
23 | - Data_Files(base_dir='install_data', | |
24 | - copy_to='wsgi', | |
25 | - template=['include etc/apache2/wsgi/colab.wsgi'], | |
26 | - preserve_path=0), | |
27 | - Data_Files(base_dir='install_data', | |
28 | - copy_to='apache-site', | |
29 | - template=['include etc/apache2/sites-available/colab'], | |
30 | - preserve_path=0), | |
31 | - Data_Files(base_dir='install_data', | |
32 | - copy_to='autofs', | |
33 | - template=['include etc/autofs/listas'], | |
34 | - preserve_path=0), | |
35 | - Data_Files(base_dir='install_data', | |
36 | - copy_to='cron.d', | |
37 | - template=['include etc/cron.d/*'], | |
38 | - preserve_path=0), | |
39 | - ], | |
40 | - install_requires=( | |
41 | - 'distribute', | |
42 | - 'Django==1.3.1', | |
43 | - 'South==0.7.3', | |
44 | - 'django-piston==0.2.3', | |
45 | - 'django-cliauth==0.9', | |
46 | - 'pytz==2011n', | |
47 | - 'chardet==1.0.1', | |
48 | - 'python-dateutil==1.5', | |
49 | - 'psycopg2==2.4.4'), | |
50 | - cmdclass = {"install_data": install_Data_Files}, | |
51 | -) |
setupext/__init__.py
... | ... | @@ -1,15 +0,0 @@ |
1 | -"Package providing extensions to the standard distutils" | |
2 | - | |
3 | -from install_data import Data_Files, install_Data_Files | |
4 | - | |
5 | -from distutils.command.bdist_wininst import bdist_wininst | |
6 | - | |
7 | -# When building a windows installer, put some more text into | |
8 | -# the long description | |
9 | -class wininst_request_delete(bdist_wininst): | |
10 | - add_text = "\nIf you have installed earlier versions of this package, please remove them through 'Add/Remove Programs' before installing this release." | |
11 | - | |
12 | - def get_inidata(self): | |
13 | - m = self.distribution.metadata | |
14 | - m.long_description = m.long_description + self.add_text | |
15 | - return bdist_wininst.get_inidata(self) |
setupext/install_data.py
... | ... | @@ -1,197 +0,0 @@ |
1 | -# -*- coding: utf-8 -*- | |
2 | -"""install_data.py | |
3 | - | |
4 | -Provides a more sophisticated facility to install data files | |
5 | -than distutils' install_data does. | |
6 | -You can specify your files as a template like in MANIFEST.in | |
7 | -and you have more control over the copy process. | |
8 | - | |
9 | -Copyright 2000 by Rene Liebscher, Germany. | |
10 | - | |
11 | -Permission is hereby granted, free of charge, to any person obtaining | |
12 | -a copy of this software and associated documentation files (the | |
13 | -"Software"), to deal in the Software without restriction, including | |
14 | -without limitation the rights to use, copy, modify, merge, publish, | |
15 | -distribute, sublicense, and/or sell copies of the Software, and to | |
16 | -permit persons to whom the Software is furnished to do so, subject to | |
17 | -the following conditions: | |
18 | - | |
19 | -The above copyright notice and this permission notice shall be included | |
20 | -in all copies or substantial portions of the Software. | |
21 | - | |
22 | -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
23 | -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
24 | -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | |
25 | -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY | |
26 | -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | |
27 | -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | |
28 | -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
29 | - | |
30 | -""" | |
31 | - | |
32 | -# created 2000/08/01, Rene Liebscher <R.Liebscher@gmx.de> | |
33 | -# modified 2000/12/18, Martin v. Löwis <loewis@informatik.hu-berlin.de> | |
34 | - | |
35 | -########################################################################### | |
36 | -# import some modules we need | |
37 | - | |
38 | -import os,sys,string | |
39 | -from types import StringType,TupleType,ListType | |
40 | -from distutils.util import change_root | |
41 | -from distutils.filelist import FileList | |
42 | -from distutils.command.install_data import install_data | |
43 | - | |
44 | -########################################################################### | |
45 | -# a container class for our more sophisticated install mechanism | |
46 | - | |
47 | -class Data_Files: | |
48 | - """ container for list of data files. | |
49 | - supports alternate base_dirs e.g. 'install_lib','install_header',... | |
50 | - supports a directory where to copy files | |
51 | - supports templates as in MANIFEST.in | |
52 | - supports preserving of paths in filenames | |
53 | - eg. foo/xyz is copied to base_dir/foo/xyz | |
54 | - supports stripping of leading dirs of source paths | |
55 | - eg. foo/bar1/xyz, foo/bar2/abc can be copied to bar1/xyz, bar2/abc | |
56 | - """ | |
57 | - | |
58 | - def __init__(self,base_dir=None,files=None,copy_to=None,template=None,preserve_path=0,strip_dirs=0): | |
59 | - self.base_dir = base_dir | |
60 | - self.files = files | |
61 | - self.copy_to = copy_to | |
62 | - if template is not None: | |
63 | - t = [] | |
64 | - for item in template: | |
65 | - item = string.strip(item) | |
66 | - if not item:continue | |
67 | - t.append(item) | |
68 | - template = t | |
69 | - self.template = template | |
70 | - self.preserve_path = preserve_path | |
71 | - self.strip_dirs = strip_dirs | |
72 | - self.finalized = 0 | |
73 | - | |
74 | - def warn (self, msg): | |
75 | - sys.stderr.write ("warning: %s: %s\n" % | |
76 | - ("install_data", msg)) | |
77 | - | |
78 | - def debug_print (self, msg): | |
79 | - """Print 'msg' to stdout if the global DEBUG (taken from the | |
80 | - DISTUTILS_DEBUG environment variable) flag is true. | |
81 | - """ | |
82 | - from distutils.core import DEBUG | |
83 | - if DEBUG: | |
84 | - print msg | |
85 | - | |
86 | - | |
87 | - def finalize(self): | |
88 | - """ complete the files list by processing the given template """ | |
89 | - if self.finalized: | |
90 | - return | |
91 | - if self.files == None: | |
92 | - self.files = [] | |
93 | - if self.template != None: | |
94 | - if type(self.template) == StringType: | |
95 | - self.template = string.split(self.template,";") | |
96 | - filelist = FileList(self.warn,self.debug_print) | |
97 | - for line in self.template: | |
98 | - filelist.process_template_line(string.strip(line)) | |
99 | - filelist.sort() | |
100 | - filelist.remove_duplicates() | |
101 | - self.files.extend(filelist.files) | |
102 | - self.finalized = 1 | |
103 | - | |
104 | -# end class Data_Files | |
105 | - | |
106 | -########################################################################### | |
107 | -# a more sophisticated install routine than distutils install_data | |
108 | - | |
109 | -class install_Data_Files (install_data): | |
110 | - | |
111 | - def check_data(self,d): | |
112 | - """ check if data are in new format, if not create a suitable object. | |
113 | - returns finalized data object | |
114 | - """ | |
115 | - if not isinstance(d, Data_Files): | |
116 | - self.warn(("old-style data files list found " | |
117 | - "-- please convert to Data_Files instance")) | |
118 | - if type(d) is TupleType: | |
119 | - if len(d) != 2 or not (type(d[1]) is ListType): | |
120 | - raise DistutilsSetupError, \ | |
121 | - ("each element of 'data_files' option must be an " | |
122 | - "Data File instance, a string or 2-tuple (string,[strings])") | |
123 | - d = Data_Files(copy_to=d[0],files=d[1]) | |
124 | - else: | |
125 | - if not (type(d) is StringType): | |
126 | - raise DistutilsSetupError, \ | |
127 | - ("each element of 'data_files' option must be an " | |
128 | - "Data File instance, a string or 2-tuple (string,[strings])") | |
129 | - d = Data_Files(files=[d]) | |
130 | - d.finalize() | |
131 | - return d | |
132 | - | |
133 | - def run(self): | |
134 | - self.outfiles = [] | |
135 | - install_cmd = self.get_finalized_command('install') | |
136 | - | |
137 | - for d in self.data_files: | |
138 | - d = self.check_data(d) | |
139 | - | |
140 | - install_dir = self.install_dir | |
141 | - # alternative base dir given => overwrite install_dir | |
142 | - if d.base_dir != None: | |
143 | - install_dir = getattr(install_cmd,d.base_dir) | |
144 | - | |
145 | - # copy to an other directory | |
146 | - if d.copy_to != None: | |
147 | - if not os.path.isabs(d.copy_to): | |
148 | - # relatiev path to install_dir | |
149 | - dir = os.path.join(install_dir, d.copy_to) | |
150 | - elif install_cmd.root: | |
151 | - # absolute path and alternative root set | |
152 | - dir = change_root(self.root,d.copy_to) | |
153 | - else: | |
154 | - # absolute path | |
155 | - dir = d.copy_to | |
156 | - else: | |
157 | - # simply copy to install_dir | |
158 | - dir = install_dir | |
159 | - # warn if necceassary | |
160 | - self.warn("setup script did not provide a directory to copy files to " | |
161 | - " -- installing right in '%s'" % install_dir) | |
162 | - | |
163 | - dir=os.path.normpath(dir) | |
164 | - # create path | |
165 | - self.mkpath(dir) | |
166 | - | |
167 | - # copy all files | |
168 | - for src in d.files: | |
169 | - if d.strip_dirs > 0: | |
170 | - dst = string.join(string.split(os.path.normcase(src),os.sep)[d.strip_dirs:],os.sep) | |
171 | - else: | |
172 | - dst = src | |
173 | - if d.preserve_path: | |
174 | - # preserve path in filename | |
175 | - self.mkpath(os.path.dirname(os.path.join(dir,dst))) | |
176 | - out = self.copy_file(src, os.path.join(dir,dst)) | |
177 | - else: | |
178 | - out = self.copy_file(src, dir) | |
179 | - if type(out) is TupleType: | |
180 | - out = out[0] | |
181 | - self.outfiles.append(out) | |
182 | - | |
183 | - return self.outfiles | |
184 | - | |
185 | - def get_inputs (self): | |
186 | - inputs = [] | |
187 | - for d in self.data_files: | |
188 | - d = self.check_data(d) | |
189 | - inputs.append(d.files) | |
190 | - return inputs | |
191 | - | |
192 | - def get_outputs (self): | |
193 | - return self.outfiles | |
194 | - | |
195 | - | |
196 | -########################################################################### | |
197 | - |
update-deploy.sh
1 | 1 | #!/bin/bash |
2 | 2 | |
3 | -cd /usr/local/src/colab/ | |
4 | -hg pull | |
5 | -hg up | |
6 | -rm -fR dist/ | |
7 | -python setup.py sdist | |
3 | +apt-get install apache2 libapache2-mod-wsgi | |
4 | +apt-get install libxml2-dev libxslt1-dev # lxml | |
5 | +apt-get install libpq-dev # psycopg2 | |
6 | + | |
7 | +cd /usr/local/src/colab2/ | |
8 | +git pull | |
8 | 9 | |
9 | 10 | if [[ $1 == 'deps' ]] ; then |
10 | 11 | # com dependencias |
11 | - /usr/local/django/colab/bin/pip install dist/*.gz -U | |
12 | -else | |
13 | - # sem dependencias | |
14 | - /usr/local/django/colab/bin/pip install dist/*.gz -U --no-deps | |
12 | + | |
13 | + /usr/local/django/colab2/bin/pip install -r /usr/local/src/colab2/requirements.txt -U | |
15 | 14 | fi |
16 | 15 | |
17 | -/usr/local/django/colab/bin/python colab/manage.py syncdb | |
18 | -/usr/local/django/colab/bin/python colab/manage.py migrate | |
19 | -touch /usr/local/django/colab/wsgi/colab.wsgi | |
16 | +/usr/local/django/colab2/bin/python src/manage.py syncdb | |
17 | +/usr/local/django/colab2/bin/python src/manage.py migrate | |
18 | +touch src/colab/wsgi.py | ... | ... |