Commit 9b7faea1db2d4e50b224d266887e988ce6fc8f09
Committed by
Daniela Feitosa
1 parent
444059a1
Exists in
master
and in
28 other branches
Initial Debian packaging
Showing
50 changed files
with
699 additions
and
52 deletions
Show diff stats
app/models/image.rb
@@ -7,6 +7,7 @@ class Image < ActiveRecord::Base | @@ -7,6 +7,7 @@ class Image < ActiveRecord::Base | ||
7 | 7 | ||
8 | has_attachment :content_type => :image, | 8 | has_attachment :content_type => :image, |
9 | :storage => :file_system, | 9 | :storage => :file_system, |
10 | + :path_prefix => 'public/image_uploads', | ||
10 | :resize_to => '320x200>', | 11 | :resize_to => '320x200>', |
11 | :thumbnails => { :big => '150x150', | 12 | :thumbnails => { :big => '150x150', |
12 | :thumb => '100x100', | 13 | :thumb => '100x100', |
config/environment.rb
@@ -19,7 +19,7 @@ extra_controller_dirs = %w[ | @@ -19,7 +19,7 @@ extra_controller_dirs = %w[ | ||
19 | ].map {|item| File.join(RAILS_ROOT, item) } | 19 | ].map {|item| File.join(RAILS_ROOT, item) } |
20 | 20 | ||
21 | def noosfero_session_secret | 21 | def noosfero_session_secret |
22 | - file = File.join(File.dirname(__FILE__), 'session.secret') | 22 | + file = File.join(File.dirname(__FILE__), '/../tmp/session.secret') |
23 | if !File.exists?(file) | 23 | if !File.exists?(file) |
24 | secret = (1..128).map { %w[0 1 2 3 4 5 6 7 8 9 a b c d e f][rand(16)] }.join('') | 24 | secret = (1..128).map { %w[0 1 2 3 4 5 6 7 8 9 a b c d e f][rand(16)] }.join('') |
25 | File.open(file, 'w') do |f| | 25 | File.open(file, 'w') do |f| |
@@ -56,7 +56,14 @@ Rails::Initializer.run do |config| | @@ -56,7 +56,14 @@ Rails::Initializer.run do |config| | ||
56 | # config.active_record.observers = :cacher, :garbage_collector | 56 | # config.active_record.observers = :cacher, :garbage_collector |
57 | 57 | ||
58 | # don't load the sweepers while loading the database | 58 | # don't load the sweepers while loading the database |
59 | - unless $PROGRAM_NAME =~ /rake$/ && (ARGV.first == 'db:schema:load' || ARGV.first == 'gems:install') | 59 | + ignore_rake_commands = %w[ |
60 | + db:schema:load | ||
61 | + gems:install | ||
62 | + clobber | ||
63 | + noosfero:translations:compile | ||
64 | + makemo | ||
65 | + ] | ||
66 | + unless $PROGRAM_NAME =~ /rake$/ && (ignore_rake_commands.include?(ARGV.first)) | ||
60 | config.active_record.observers = :article_sweeper, :role_assignment_sweeper, :friendship_sweeper, :category_sweeper | 67 | config.active_record.observers = :article_sweeper, :role_assignment_sweeper, :friendship_sweeper, :category_sweeper |
61 | end | 68 | end |
62 | # Make Active Record use UTC-base instead of local time | 69 | # Make Active Record use UTC-base instead of local time |
config/initializers/default_icon_theme.rb
1 | -# create the symlink to the default theme if it does not exist | ||
2 | -default = File.join(RAILS_ROOT, 'public', 'designs', 'icons', 'default') | ||
3 | -if !File.exists?(default) | ||
4 | - File.symlink('tango', default) | ||
5 | -end | 1 | +if File.writable?(Rails.root) |
2 | + # create the symlink to the default theme if it does not exist | ||
3 | + default = File.join(RAILS_ROOT, 'public', 'designs', 'icons', 'default') | ||
4 | + if !File.exists?(default) | ||
5 | + File.symlink('tango', default) | ||
6 | + end | ||
6 | 7 | ||
7 | -# create a symlink to system-wide Tango icon set if it does not exist | ||
8 | -tango_symlink = File.join(RAILS_ROOT, 'public', 'designs', 'icons', 'tango', 'Tango') | ||
9 | -if !File.exist?(tango_symlink) | ||
10 | - File.symlink('/usr/share/icons/Tango', tango_symlink) | 8 | + # create a symlink to system-wide Tango icon set if it does not exist |
9 | + tango_symlink = File.join(RAILS_ROOT, 'public', 'designs', 'icons', 'tango', 'Tango') | ||
10 | + if !File.exist?(tango_symlink) | ||
11 | + File.symlink('/usr/share/icons/Tango', tango_symlink) | ||
12 | + end | ||
11 | end | 13 | end |
config/initializers/default_theme.rb
1 | -# create the symlink to the default theme if it does not exist | ||
2 | -default = File.join(RAILS_ROOT, 'public', 'designs', 'themes', 'default') | ||
3 | -if !File.exists?(default) | ||
4 | - File.symlink('noosfero', default) | 1 | +if File.writable?(Rails.root) |
2 | + # create the symlink to the default theme if it does not exist | ||
3 | + default = File.join(RAILS_ROOT, 'public', 'designs', 'themes', 'default') | ||
4 | + if !File.exists?(default) | ||
5 | + File.symlink('noosfero', default) | ||
6 | + end | ||
5 | end | 7 | end |
@@ -0,0 +1,12 @@ | @@ -0,0 +1,12 @@ | ||
1 | +if File.writable?(Rails.root) | ||
2 | + misplaced_directories = Dir.glob(Rails.root + '/public/images/[0-9]*') | ||
3 | + unless misplaced_directories.empty? | ||
4 | + new_location = Rails.root + '/public/image_uploads' | ||
5 | + if !File.exists?(new_location) | ||
6 | + FileUtils.mkdir(new_location) | ||
7 | + end | ||
8 | + misplaced_directories.each do |path| | ||
9 | + FileUtils.mv(path, new_location) | ||
10 | + end | ||
11 | + end | ||
12 | +end |
@@ -0,0 +1,13 @@ | @@ -0,0 +1,13 @@ | ||
1 | +Noosfero for Debian | ||
2 | +------------------- | ||
3 | + | ||
4 | +In order to function properly, Noosfero needs a working e-mail setup. You need | ||
5 | +to make sure that your local MTA is able to deliver messages to the internet. | ||
6 | + | ||
7 | +Alternatively, you can also configure Noosfero to use an external SMTP server | ||
8 | +by means of the file /etc/noosfero/local.rb. To do that, follow the | ||
9 | +instructions at the following URL: | ||
10 | + | ||
11 | +http://noosfero.org/Development/SMTPMailSending | ||
12 | + | ||
13 | + -- Antonio Terceiro <terceiro@softwarelivre.org> Thu, 27 Jan 2011 19:48:03 -0300 |
@@ -0,0 +1,25 @@ | @@ -0,0 +1,25 @@ | ||
1 | +================================================================================= | ||
2 | + | ||
3 | +install config/noosfero.yml | ||
4 | + | ||
5 | +how to handle local themes? | ||
6 | + | ||
7 | +create admin user during installation using debconf to prompt for password | ||
8 | + | ||
9 | +the `noosfero` postgres user must have permission to drop and create schemas. | ||
10 | + | ||
11 | +e-mail setup? | ||
12 | +noosfero setup | ||
13 | + | ||
14 | +install varnish conf - create package noosfero-varnish? | ||
15 | + | ||
16 | +remove /etc/noosfero/database.yml in postrm/purge! | ||
17 | + | ||
18 | +remove /etc/noosfero in postrm/purge! in special: | ||
19 | + /etc/noosfero/apache/mongrel.conf | ||
20 | + | ||
21 | +fix problems reported by lintian (start by removing the overrides) | ||
22 | + | ||
23 | +try to get rid of dependencies that should be needed only in development (such | ||
24 | +as rcov) | ||
25 | + |
@@ -0,0 +1,38 @@ | @@ -0,0 +1,38 @@ | ||
1 | +DocumentRoot "/usr/share/noosfero/public" | ||
2 | +<Directory "/var/lib/noosfero/current/public"> | ||
3 | + Options FollowSymLinks -Indexes | ||
4 | + AllowOverride None | ||
5 | + Order Allow,Deny | ||
6 | + Allow from all | ||
7 | +</Directory> | ||
8 | + | ||
9 | +RewriteEngine On | ||
10 | + | ||
11 | +# Rewrite index to check for static index.html | ||
12 | +RewriteRule ^/$ /index.html [QSA] | ||
13 | + | ||
14 | +# Rewrite to check for Rails cached page | ||
15 | +RewriteRule ^([^.]+)$ $1.html [QSA] | ||
16 | + | ||
17 | +RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f | ||
18 | +RewriteRule ^.*$ balancer://noosfero%{REQUEST_URI} [P,QSA,L] | ||
19 | + | ||
20 | +ErrorDocument 503 /503.html | ||
21 | + | ||
22 | +ErrorLog /var/log/apache2/noosfero.log | ||
23 | +LogLevel warn | ||
24 | +CustomLog /var/log/apache2/noosfero.access.log vhost_combined | ||
25 | + | ||
26 | +# Compress outgoing text content | ||
27 | +AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript | ||
28 | + | ||
29 | +# Add Expires: header | ||
30 | +ExpiresActive On | ||
31 | +ExpiresByType text/css "access plus 1 month" | ||
32 | +ExpiresByType application/javascript "access plus 1 month" | ||
33 | +ExpiresByType image/png "access plus 1 month" | ||
34 | +ExpiresByType image/gif "access plus 1 month" | ||
35 | +ExpiresByType image/jpeg "access plus 1 month" | ||
36 | +ExpiresByType image/x-icon "access plus 1 month" | ||
37 | + | ||
38 | +# vim: ft=apache |
@@ -0,0 +1 @@ | @@ -0,0 +1 @@ | ||
1 | +7 |
@@ -0,0 +1,33 @@ | @@ -0,0 +1,33 @@ | ||
1 | +Source: noosfero | ||
2 | +Section: web | ||
3 | +Priority: extra | ||
4 | +Maintainer: Noosfero developers <noosfero-dev@listas.softwarelivre.org> | ||
5 | +Uploaders: Antonio Terceiro <terceiro@colivre.coop.br> | ||
6 | +Build-Depends: debhelper (>= 7.0.50~), po4a, libgettext-ruby-util, libgettext-ruby1.8, libsqlite3-ruby1.8, | ||
7 | +Standards-Version: 3.8.4 | ||
8 | +Homepage: http://noosfero.org/ | ||
9 | +Vcs-Git: git://git.colivre.coop.br/noosfero.git | ||
10 | +Vcs-Browser: http://git.colivre.coop.br/?p=noosfero.git | ||
11 | + | ||
12 | +Package: noosfero | ||
13 | +Architecture: all | ||
14 | +Depends: rails, ruby1.8, ruby, rake, libgettext-ruby-data, libsqlite3-ruby, libpgsql-ruby, libmysql-ruby, librmagick-ruby, libredcloth-ruby, libwill-paginate-ruby, iso-codes, libfeedparser-ruby, libferret-ruby, libdaemons-ruby, rcov, mongrel, mongrel-cluster, tango-icon-theme, libhpricot-ruby, iso-codes, memcached, debconf, dbconfig-common, postgresql, adduser, ${misc:Depends} | ||
15 | +Recommends: postgresql-client | ||
16 | +Description: free web-based platform for social networks | ||
17 | + Noosfero is a web platform for social and solidarity economy networks with | ||
18 | + blog, e-Porfolios, CMS, RSS, thematic discussion, events agenda and collective | ||
19 | + inteligence for solidarity economy in the same system. | ||
20 | + . | ||
21 | + This package contains the Noosfero application server. | ||
22 | + | ||
23 | +Package: noosfero-apache | ||
24 | +Architecture: all | ||
25 | +Depends: apache2, debconf | ||
26 | +Suggests: noosfero | ||
27 | +Description: free web-based platform for social networks (apache frontend) | ||
28 | + Noosfero is a web platform for social and solidarity economy networks with | ||
29 | + blog, e-Porfolios, CMS, RSS, thematic discussion, events agenda and collective | ||
30 | + inteligence for solidarity economy in the same system. | ||
31 | + . | ||
32 | + This package contains the configuration files needed to run Noosfero with the | ||
33 | + Apache HTTPD server as frontend. |
@@ -0,0 +1,35 @@ | @@ -0,0 +1,35 @@ | ||
1 | +This work was packaged for Debian by: | ||
2 | + | ||
3 | + Antonio Terceiro <terceiro@colivre.coop.br> on Thu, 25 Nov 2010 16:42:48 -0300 | ||
4 | + | ||
5 | +It was downloaded from: | ||
6 | + | ||
7 | + <http://noosfero.org> | ||
8 | + | ||
9 | +Upstream Authors: | ||
10 | + | ||
11 | + Too many to list here. See /usr/share/doc/noosfero/AUTHORS | ||
12 | + | ||
13 | +Copyright: | ||
14 | + | ||
15 | + Copyright (c) 2007-2009, Cáritas Brasileira <http://www.caritasbrasileira.org/> | ||
16 | + Copyright (c) 2007-2009, Ynternet.org Foundation <http://www.ynternet.org/> | ||
17 | + Copyright (c) 2008-2011, Colivre <http://www.colivre.coop.br/> | ||
18 | + | ||
19 | +License: | ||
20 | + | ||
21 | + This program is free software: you can redistribute it and/or modify it | ||
22 | + under the terms of the GNU Affero General Public License as published by | ||
23 | + the Free Software Foundation, either version 3 of the License, or (at your | ||
24 | + option) any later version. | ||
25 | + | ||
26 | + This program is distributed in the hope that it will be useful, but WITHOUT | ||
27 | + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
28 | + FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public | ||
29 | + License for more details. | ||
30 | + | ||
31 | + You should have received a copy of the GNU Affero General Public License | ||
32 | + along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
33 | + | ||
34 | +The Debian packaging files are part of Noosfero source code, and are covered by | ||
35 | +the same copyrights and licensing as the rest of the project. |
@@ -0,0 +1,11 @@ | @@ -0,0 +1,11 @@ | ||
1 | +#!/bin/sh | ||
2 | + | ||
3 | +set -e | ||
4 | + | ||
5 | +# dbconfig-common uses "pgsql", but we want "postgresql" | ||
6 | +sed -i -e 's/adapter: pgsql/adapter: postgresql/' /etc/noosfero/database.yml | ||
7 | + | ||
8 | +/etc/init.d/noosfero setup | ||
9 | + | ||
10 | +cd /usr/share/noosfero && su noosfero -c "rake db:schema:load RAILS_ENV=production" | ||
11 | +cd /usr/share/noosfero && su noosfero -c "rake db:data:minimal RAILS_ENV=production" |
@@ -0,0 +1 @@ | @@ -0,0 +1 @@ | ||
1 | +AUTHORS |
@@ -0,0 +1 @@ | @@ -0,0 +1 @@ | ||
1 | +etc/noosfero/apache |
@@ -0,0 +1,25 @@ | @@ -0,0 +1,25 @@ | ||
1 | +#!/bin/sh | ||
2 | + | ||
3 | +set -e | ||
4 | + | ||
5 | +. /usr/share/debconf/confmodule | ||
6 | + | ||
7 | +db_get noosfero-apache/enable_apache_site | ||
8 | +enable_apache_site="$RET" | ||
9 | + | ||
10 | +if test -x /usr/sbin/a2enmod; then | ||
11 | + a2enmod deflate expires proxy proxy_balancer proxy_http rewrite | ||
12 | +fi | ||
13 | + | ||
14 | +if which update-noosfero-apache >/dev/null; then | ||
15 | + | ||
16 | + | ||
17 | + update-noosfero-apache | ||
18 | + | ||
19 | + if [ "$enable_apache_site" = 'true' ]; then | ||
20 | + a2ensite noosfero | ||
21 | + invoke-rc.d apache2 reload | ||
22 | + fi | ||
23 | +fi | ||
24 | + | ||
25 | +#DEBHELPER# |
@@ -0,0 +1,13 @@ | @@ -0,0 +1,13 @@ | ||
1 | +Template: noosfero-apache/enable_apache_site | ||
2 | +Type: boolean | ||
3 | +Default: true | ||
4 | +Description: Enable Noosfero in Apache? | ||
5 | + If you choose "Yes" here, them Noosfero's apache site will be automatically | ||
6 | + enabled and Noosfero will be immediately available through Apache using the | ||
7 | + domain name you choose before. | ||
8 | + . | ||
9 | + This option will not interfere with anything besides the domain name you chose | ||
10 | + for your Noosfero site, so if this is a new server installation, you should | ||
11 | + probably answer "Yes". If, for any reason, you do not want to enable Noosfero | ||
12 | + in Apache right now, then you should answer "No". You can enable Noosfero | ||
13 | + later by running `a2ensite nooosfero`. |
@@ -0,0 +1,21 @@ | @@ -0,0 +1,21 @@ | ||
1 | +#!/bin/sh | ||
2 | + | ||
3 | +set -e | ||
4 | + | ||
5 | +. /usr/share/debconf/confmodule | ||
6 | +if [ -f /usr/share/dbconfig-common/dpkg/config ]; then | ||
7 | + # comma-separated, e.g. "mysql, pgsql, sqlite3" | ||
8 | + dbc_dbtypes="pgsql" | ||
9 | + | ||
10 | + . /usr/share/dbconfig-common/dpkg/config | ||
11 | + dbc_go noosfero $@ | ||
12 | + | ||
13 | + if [ "$dbc_install" = 'true' ]; then | ||
14 | + db_input high noosfero/initial_domain || true | ||
15 | + db_go | ||
16 | + fi | ||
17 | + | ||
18 | + db_input high noosfero/email_setup_warning | true | ||
19 | + db_go | ||
20 | + | ||
21 | +fi |
@@ -0,0 +1,35 @@ | @@ -0,0 +1,35 @@ | ||
1 | +app usr/share/noosfero | ||
2 | +db usr/share/noosfero | ||
3 | +doc usr/share/noosfero | ||
4 | +lib usr/share/noosfero | ||
5 | +script usr/share/noosfero | ||
6 | +util usr/share/noosfero | ||
7 | +Rakefile usr/share/noosfero | ||
8 | +vendor/cardmagic-contacts-f66219e6589ccaf3ab9e3574fdd41225d0dd5073 usr/share/noosfero/vendor | ||
9 | +vendor/gdata-1.1.1 usr/share/noosfero/vendor | ||
10 | +vendor/plugins usr/share/noosfero/vendor | ||
11 | +vendor/terceiro-fast_gettext-fe7bb09e30f7b1b5876a3b7a18fe8a254c6f59cb usr/share/noosfero/vendor | ||
12 | +vendor/ezcrypto-0.7.2 usr/share/noosfero/vendor | ||
13 | + | ||
14 | +config/boot.rb usr/share/noosfero/config | ||
15 | +config/environment.rb usr/share/noosfero/config | ||
16 | +config/environments usr/share/noosfero/config | ||
17 | +config/initializers usr/share/noosfero/config | ||
18 | +config/routes.rb usr/share/noosfero/config | ||
19 | + | ||
20 | +plugins usr/share/noosfero | ||
21 | + | ||
22 | +debian/dbinstall usr/lib/noosfero | ||
23 | +debian/dbupgrade usr/lib/noosfero | ||
24 | +debian/database.yml.template usr/share/noosfero/config | ||
25 | + | ||
26 | +public usr/share/noosfero | ||
27 | + | ||
28 | +debian/default/noosfero etc/default | ||
29 | +etc/init.d/noosfero etc/init.d | ||
30 | +debian/mongrel_cluster.yml etc/noosfero | ||
31 | +debian/ferret_server.yml etc/noosfero | ||
32 | +etc/logrotate.d/noosfero etc/logrotate.d | ||
33 | + | ||
34 | +locale usr/share/noosfero | ||
35 | +doc/noosfero usr/share/noosfero/doc |
@@ -0,0 +1,19 @@ | @@ -0,0 +1,19 @@ | ||
1 | +usr/share/rails usr/share/noosfero/vendor/rails | ||
2 | +var/tmp/noosfero usr/share/noosfero/tmp | ||
3 | +var/log/noosfero usr/share/noosfero/log | ||
4 | +etc/noosfero/database.yml usr/share/noosfero/config/database.yml | ||
5 | +etc/noosfero/mongrel_cluster.yml usr/share/noosfero/config/mongrel_cluster.yml | ||
6 | +etc/noosfero/ferret_server.yml usr/share/noosfero/config/ferret_server.yml | ||
7 | +etc/noosfero/plugins usr/share/noosfero/config/plugins | ||
8 | +etc/noosfero/noosfero.yml usr/share/noosfero/config/noosfero.yml | ||
9 | +etc/noosfero/local.rb usr/share/noosfero/config/local.rb | ||
10 | +var/lib/noosfero-data/index usr/share/noosfero/index | ||
11 | +var/lib/noosfero-data/cache/cache-general.js usr/share/noosfero/public/javascripts/cache-general.js | ||
12 | +var/lib/noosfero-data/cache/cache-chat.js usr/share/noosfero/public/javascripts/cache-chat.js | ||
13 | +var/lib/noosfero-data/cache/cache-slideshow.js usr/share/noosfero/public/javascripts/cache-slideshow.js | ||
14 | +var/lib/noosfero-data/cache/cache.css usr/share/noosfero/public/stylesheets/cache.css | ||
15 | +var/lib/noosfero-data/public/articles usr/share/noosfero/public/articles | ||
16 | +var/lib/noosfero-data/public/image_uploads usr/share/noosfero/public/image_uploads | ||
17 | +var/lib/noosfero-data/public/thumbnails usr/share/noosfero/public/thumbnails | ||
18 | +usr/share/noosfero/public/designs/themes/noosfero usr/share/noosfero/public/designs/themes/default | ||
19 | +usr/share/noosfero/public/designs/icons/tango usr/share/noosfero/public/designs/icons/icons/default |
@@ -0,0 +1,6 @@ | @@ -0,0 +1,6 @@ | ||
1 | +noosfero binary: python-script-but-no-python-dep | ||
2 | +noosfero binary: script-not-executable | ||
3 | +noosfero binary: executable-not-elf-or-script | ||
4 | +noosfero binary: extra-license-file | ||
5 | +noosfero binary: embedded-javascript-library | ||
6 | +noosfero binary: package-contains-vcs-control-file |
@@ -0,0 +1,59 @@ | @@ -0,0 +1,59 @@ | ||
1 | +#!/bin/sh | ||
2 | + | ||
3 | +set -e | ||
4 | + | ||
5 | +makedir() { | ||
6 | + if [ ! -d $1 ]; then | ||
7 | + mkdir $1 | ||
8 | + fi | ||
9 | + chown noosfero:noosfero $1 | ||
10 | +} | ||
11 | + | ||
12 | +# create user noosfero in a portable way, while creating the log directory. | ||
13 | +# (idea taken from the postfix package) | ||
14 | +############################################################################## | ||
15 | +if [ ! -d /var/log/noosfero ]; then | ||
16 | + mkdir /var/log/noosfero | ||
17 | +fi | ||
18 | +chgrp noosfero /var/log/noosfero 2>/dev/null || | ||
19 | + addgroup --system noosfero | ||
20 | +chown noosfero /var/log/noosfero 2>/dev/null || | ||
21 | + adduser --system --home /usr/share/noosfero --shell /bin/sh --no-create-home --disabled-password --ingroup noosfero noosfero | ||
22 | + | ||
23 | +# create noosfero dynamic data directories | ||
24 | +############################################################################## | ||
25 | +noosfero_data_dir='/var/lib/noosfero-data' | ||
26 | +makedir $noosfero_data_dir | ||
27 | +makedir $noosfero_data_dir/index | ||
28 | +makedir $noosfero_data_dir/cache | ||
29 | +makedir $noosfero_data_dir/public | ||
30 | +makedir $noosfero_data_dir/public/articles | ||
31 | +makedir $noosfero_data_dir/public/image_uploads | ||
32 | +makedir $noosfero_data_dir/public/thumbnails | ||
33 | + | ||
34 | +# Instruct dbconfig-common to generate database configuration file | ||
35 | +############################################################################## | ||
36 | +noosfero_database_yml="/etc/noosfero/database.yml" | ||
37 | +dbc_generate_include="template:$noosfero_database_yml" | ||
38 | +dbc_generate_include_args="-o template_infile=/usr/share/noosfero/config/database.yml.template" | ||
39 | +dbc_generate_include_owner="root:noosfero" | ||
40 | +dbc_generate_include_perms="640" | ||
41 | + | ||
42 | +. /usr/share/debconf/confmodule | ||
43 | + | ||
44 | +db_get noosfero/initial_domain | ||
45 | +if [ ! -z "$RET" ]; then | ||
46 | + # this is going to be used by the db:data:minimal rake task, called by | ||
47 | + # /usr/lib/noosfero/dbinstall | ||
48 | + export NOOSFERO_DOMAIN="$RET" | ||
49 | +fi | ||
50 | + | ||
51 | +# dbconfig-common magic | ||
52 | +. /usr/share/dbconfig-common/dpkg/postinst | ||
53 | +dbc_go noosfero $@ | ||
54 | + | ||
55 | +# stop debconf to avoid the problem with infinite hanging, cfe | ||
56 | +# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=295477 | ||
57 | +db_stop | ||
58 | + | ||
59 | +#DEBHELPER# |
@@ -0,0 +1,22 @@ | @@ -0,0 +1,22 @@ | ||
1 | +#!/bin/sh | ||
2 | + | ||
3 | +set -e | ||
4 | + | ||
5 | +. /usr/share/debconf/confmodule | ||
6 | +. /usr/share/dbconfig-common/dpkg/prerm | ||
7 | +dbc_go noosfero $@ | ||
8 | + | ||
9 | +#DEBHELPER# | ||
10 | + | ||
11 | +# some dirty work is needed after Noosfero is stopped | ||
12 | +if [ "$1" = "upgrade" ]; then | ||
13 | + # delete cached files | ||
14 | + rm -f /var/lib/noosfero-data/cache/* | ||
15 | + | ||
16 | + # restart memcache | ||
17 | + invoke-rc.d memcached restart | ||
18 | + | ||
19 | + # stop debconf to avoid the problem with infinite hanging, cfe | ||
20 | + # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=295477 | ||
21 | + db_stop | ||
22 | +fi |
@@ -0,0 +1,20 @@ | @@ -0,0 +1,20 @@ | ||
1 | +Template: noosfero/initial_domain | ||
2 | +Type: string | ||
3 | +Description: Domain name for your noosfero site: | ||
4 | + Enter the domain name that will be used for your Noosfero site. This domain | ||
5 | + name will be automatically added to Noosfero's database. The Noosfero frontend | ||
6 | + packages (such as noosfero-apache) will also automatically configure proper | ||
7 | + virtual hosts to respond for this domain name. | ||
8 | + . | ||
9 | + If you do not enter a domain name here, you will have to make some further | ||
10 | + manual configuration to have your frontend server properly configured. | ||
11 | + | ||
12 | +Template: noosfero/email_setup_warning | ||
13 | +Type: note | ||
14 | +Description: Noosfero needs a working e-mail setup | ||
15 | + To function properly, Noosfero needs a working e-mail setup. This is used to | ||
16 | + send friendship request e-mails, recovering passwords, and other things. | ||
17 | + . | ||
18 | + Basically, your local MTA needs to deliver e-mail to the internet. Please | ||
19 | + check /usr/share/doc/noosfero/README.Debian for detailed instructions on | ||
20 | + settings this up. |
@@ -0,0 +1,32 @@ | @@ -0,0 +1,32 @@ | ||
1 | +#!/usr/bin/make -f | ||
2 | + | ||
3 | +# Uncomment this to turn on verbose mode. | ||
4 | +#export DH_VERBOSE=1 | ||
5 | + | ||
6 | +# This has to be exported to make some magic below work. | ||
7 | +export DH_OPTIONS | ||
8 | + | ||
9 | +VERSION = $(shell dpkg-parsechangelog | grep '^Version:' | cut -d ' ' -f 2) | ||
10 | +# to support new databases, change debian/noosfero.config! | ||
11 | +SUPPORTED_DATABASES = $(shell sed -e '/dbc_dbtypes=/!d; s/.*"\(.*\)".*/\1/; s/,//g' debian/noosfero.config) | ||
12 | + | ||
13 | +%: | ||
14 | + dh --without=python-support $@ | ||
15 | + | ||
16 | +override_dh_link: | ||
17 | + dh_link | ||
18 | + for db in $(SUPPORTED_DATABASES); do \ | ||
19 | + dh_link usr/lib/noosfero/dbupgrade usr/share/dbconfig-common/scripts/noosfero/upgrade/$$db/$(VERSION); \ | ||
20 | + dh_link usr/lib/noosfero/dbinstall usr/share/dbconfig-common/scripts/noosfero/install/$$db; \ | ||
21 | + done | ||
22 | + | ||
23 | +override_dh_installinit: | ||
24 | + dh_installinit -pnoosfero --onlyscripts | ||
25 | + | ||
26 | +override_dh_clean: | ||
27 | + dh_clean | ||
28 | + rake clobber | ||
29 | + | ||
30 | +override_dh_auto_build: | ||
31 | + dh_auto_build | ||
32 | + rake noosfero:translations:compile |
@@ -0,0 +1 @@ | @@ -0,0 +1 @@ | ||
1 | +3.0 (native) |
@@ -0,0 +1 @@ | @@ -0,0 +1 @@ | ||
1 | +noosfero source: python-script-but-no-python-dep |
@@ -0,0 +1,22 @@ | @@ -0,0 +1,22 @@ | ||
1 | +#!/bin/sh | ||
2 | + | ||
3 | +set -e | ||
4 | + | ||
5 | +# automatically update configuration, but if package noosfero is also installed | ||
6 | +if test -x /usr/share/noosfero/script/apacheconf; then | ||
7 | + datadir="/etc/noosfero/apache" | ||
8 | + mongrel_file="$datadir/mongrel.conf" | ||
9 | + if test -e "$mongrel_file"; then | ||
10 | + echo "Overwriting $mongrel_file ..." | ||
11 | + fi | ||
12 | + /usr/share/noosfero/script/apacheconf mongrel > "$mongrel_file" | ||
13 | + | ||
14 | + apache_site='/etc/apache2/sites-available/noosfero' | ||
15 | + if ! test -e "$apache_site"; then | ||
16 | + echo "Generating apache virtual host ..." | ||
17 | + cd /usr/share/noosfero && su noosfero -c "RAILS_ENV=production ./script/apacheconf virtualhosts" > "$apache_site" | ||
18 | + fi | ||
19 | + | ||
20 | + echo 'Noosfero Apache configuration updated.' | ||
21 | + echo "Run '/etc/init.d/apache2 reload' to activate new configuration!" | ||
22 | +fi |
etc/init.d/noosfero
1 | #! /bin/sh | 1 | #! /bin/sh |
2 | ### BEGIN INIT INFO | 2 | ### BEGIN INIT INFO |
3 | -# Provides: skeleton | 3 | +# Provides: noosfero |
4 | # Required-Start: $remote_fs | 4 | # Required-Start: $remote_fs |
5 | # Required-Stop: $remote_fs | 5 | # Required-Stop: $remote_fs |
6 | # Default-Start: 2 3 4 5 | 6 | # Default-Start: 2 3 4 5 |
@@ -122,8 +122,11 @@ case "$1" in | @@ -122,8 +122,11 @@ case "$1" in | ||
122 | start|stop|restart|setup) | 122 | start|stop|restart|setup) |
123 | do_$1 | 123 | do_$1 |
124 | ;; | 124 | ;; |
125 | + force-reload) | ||
126 | + do_restart | ||
127 | + ;; | ||
125 | *) | 128 | *) |
126 | - echo "Usage: $SCRIPTNAME {start|stop|restart|setup}" >&2 | 129 | + echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|setup}" >&2 |
127 | exit 3 | 130 | exit 3 |
128 | ;; | 131 | ;; |
129 | esac | 132 | esac |
gitignore.example
@@ -12,7 +12,7 @@ index | @@ -12,7 +12,7 @@ index | ||
12 | locale | 12 | locale |
13 | log | 13 | log |
14 | public/articles | 14 | public/articles |
15 | -public/images/0000 | 15 | +public/image_uploads |
16 | public/thumbnails | 16 | public/thumbnails |
17 | public/user_themes | 17 | public/user_themes |
18 | public/designs/themes/default | 18 | public/designs/themes/default |
lib/noosfero/i18n.rb
@@ -153,31 +153,14 @@ module ActionController::Caching::Fragments | @@ -153,31 +153,14 @@ module ActionController::Caching::Fragments | ||
153 | alias_method_chain :expire_fragment, :fast_gettext | 153 | alias_method_chain :expire_fragment, :fast_gettext |
154 | end | 154 | end |
155 | 155 | ||
156 | -FileUtils.mkdir_p(Rails.root + '/locale') | ||
157 | -Dir.glob(Rails.root + '/locale/*').each do |dir| | ||
158 | - lang = File.basename(dir) | ||
159 | - FileUtils.mkdir_p("#{Rails.root}/locale/#{lang}/LC_MESSAGES") | ||
160 | - ['iso_3166', 'rails'].each do |domain| | ||
161 | - target = "#{Rails.root}/locale/#{lang}/LC_MESSAGES/#{domain}.mo" | ||
162 | - if !File.exists?(target) | ||
163 | - orig = "/usr/share/locale/#{lang}/LC_MESSAGES/#{domain}.mo" | ||
164 | - if File.exists?(orig) | ||
165 | - File.symlink(orig, target) | ||
166 | - else | ||
167 | - alternatives = Dir.glob("/usr/share/locale/#{lang}_*/LC_MESSAGES/#{domain}.mo") | ||
168 | - unless alternatives.empty? | ||
169 | - File.symlink(alternatives.first, target) | ||
170 | - end | ||
171 | - end | ||
172 | - end | ||
173 | - end | 156 | +# translations in place? |
157 | +if File.exists?(Rails.root + '/locale') | ||
158 | + repos = [ | ||
159 | + FastGettext::TranslationRepository.build('noosfero', :type => 'mo', :path => Rails.root + '/locale'), | ||
160 | + FastGettext::TranslationRepository.build('iso_3166', :type => 'mo', :path => Rails.root + '/locale'), | ||
161 | + FastGettext::TranslationRepository.build('rails', :type => 'mo', :path => Rails.root + '/locale'), | ||
162 | + ] | ||
163 | + | ||
164 | + FastGettext.add_text_domain 'noosferofull', :type => :chain, :chain => repos | ||
165 | + FastGettext.default_text_domain = 'noosferofull' | ||
174 | end | 166 | end |
175 | - | ||
176 | -repos = [ | ||
177 | - FastGettext::TranslationRepository.build('noosfero', :type => 'mo', :path => Rails.root + '/locale'), | ||
178 | - FastGettext::TranslationRepository.build('iso_3166', :type => 'mo', :path => Rails.root + '/locale'), | ||
179 | - FastGettext::TranslationRepository.build('rails', :type => 'mo', :path => Rails.root + '/locale'), | ||
180 | -] | ||
181 | - | ||
182 | -FastGettext.add_text_domain 'noosferofull', :type => :chain, :chain => repos | ||
183 | -FastGettext.default_text_domain = 'noosferofull' |
@@ -0,0 +1,28 @@ | @@ -0,0 +1,28 @@ | ||
1 | +task :clean => 'noosfero:clean' | ||
2 | + | ||
3 | +namespace :noosfero do | ||
4 | + task :clean do | ||
5 | + | ||
6 | + if Rails.env == 'production' | ||
7 | + raise 'You should NOT run this in production mode!' | ||
8 | + end | ||
9 | + | ||
10 | + clean_patterns = %w[ | ||
11 | + db/*.db | ||
12 | + public/javascripts/cache*.js | ||
13 | + public/stylesheets/cache*.css | ||
14 | + public/designs/themes/default | ||
15 | + public/designs/icons/default | ||
16 | + public/articles/ | ||
17 | + public/image_uploads/ | ||
18 | + public/thumbnails/ | ||
19 | + locale/ | ||
20 | + ] | ||
21 | + clean_patterns << Dir.glob('public/designs/themes/*').select { |f| File.symlink?(f) } | ||
22 | + | ||
23 | + clean_patterns.each do |pattern| | ||
24 | + list = Dir.glob(pattern) | ||
25 | + rm_rf list unless list.empty? | ||
26 | + end | ||
27 | + end | ||
28 | +end |
@@ -0,0 +1,10 @@ | @@ -0,0 +1,10 @@ | ||
1 | +namespace :db do | ||
2 | + namespace :data do | ||
3 | + task :minimal do | ||
4 | + environment = Environment.create!(:name => 'Noosfero', :is_default => true) | ||
5 | + unless ENV['NOOSFERO_DOMAIN'].blank? | ||
6 | + environment.domains << Domain.new(:name => ENV['NOOSFERO_DOMAIN']) | ||
7 | + end | ||
8 | + end | ||
9 | + end | ||
10 | +end |
lib/tasks/doc.rake
lib/tasks/gettext.rake
@@ -9,9 +9,34 @@ desc "Create mo-files for L10n" | @@ -9,9 +9,34 @@ desc "Create mo-files for L10n" | ||
9 | task :makemo => makemo_stamp | 9 | task :makemo => makemo_stamp |
10 | file makemo_stamp => Dir.glob('po/*/noosfero.po') do | 10 | file makemo_stamp => Dir.glob('po/*/noosfero.po') do |
11 | ruby '-rconfig/boot -rgettext -rgettext/utils -e \'GetText.create_mofiles(true, "po", "locale")\' 2>/dev/null' | 11 | ruby '-rconfig/boot -rgettext -rgettext/utils -e \'GetText.create_mofiles(true, "po", "locale")\' 2>/dev/null' |
12 | + Rake::Task['symlinkmo'].invoke | ||
12 | FileUtils.touch makemo_stamp | 13 | FileUtils.touch makemo_stamp |
13 | end | 14 | end |
14 | 15 | ||
16 | +task :cleanmo do | ||
17 | + rm_f makemo_stamp | ||
18 | +end | ||
19 | +task :clean => 'cleanmo' | ||
20 | + | ||
21 | +task :symlinkmo do | ||
22 | + langmap = { | ||
23 | + 'pt' => 'pt_BR', | ||
24 | + } | ||
25 | + FileUtils.mkdir_p(Rails.root + '/locale') | ||
26 | + Dir.glob(Rails.root + '/locale/*').each do |dir| | ||
27 | + lang = File.basename(dir) | ||
28 | + orig_lang = langmap[lang] || lang | ||
29 | + FileUtils.mkdir_p("#{Rails.root}/locale/#{lang}/LC_MESSAGES") | ||
30 | + ['iso_3166', 'rails'].each do |domain| | ||
31 | + origin = "/usr/share/locale/#{orig_lang}/LC_MESSAGES/#{domain}.mo" | ||
32 | + target = "#{Rails.root}/locale/#{lang}/LC_MESSAGES/#{domain}.mo" | ||
33 | + if !File.symlink?(target) | ||
34 | + ln_s origin, target | ||
35 | + end | ||
36 | + end | ||
37 | + end | ||
38 | +end | ||
39 | + | ||
15 | desc "Update pot/po files to match new version." | 40 | desc "Update pot/po files to match new version." |
16 | task :updatepo do | 41 | task :updatepo do |
17 | require 'gettext' | 42 | require 'gettext' |
lib/tasks/release.rake
@@ -20,6 +20,17 @@ namespace :noosfero do | @@ -20,6 +20,17 @@ namespace :noosfero do | ||
20 | puts "Not found tag for version #{version}, we can go on." | 20 | puts "Not found tag for version #{version}, we can go on." |
21 | end | 21 | end |
22 | 22 | ||
23 | + desc 'checks the version of the Debian package' | ||
24 | + task :check_debian_package do | ||
25 | + debian_version = `dpkg-parsechangelog | grep Version: | cut -d ' ' -f 2`.strip | ||
26 | + unless debian_version =~ /^#{Noosfero::VERSION}/ | ||
27 | + puts "Version mismatch: Debian version = #{debian_version}, Noosfero upstream version = #{Noosfero::VERSION}" | ||
28 | + puts "Run `dch -v #{Noosfero::VERSION}` to add a new changelog entry that upgrades the Debian version" | ||
29 | + raise "Version mismatch between noosfero version and debian package version" | ||
30 | + end | ||
31 | + end | ||
32 | + | ||
33 | + | ||
23 | AUTHORS_HEADER = <<EOF | 34 | AUTHORS_HEADER = <<EOF |
24 | If you are not listed here, but should be, please write to the noosfero mailing | 35 | If you are not listed here, but should be, please write to the noosfero mailing |
25 | list: http://listas.softwarelivre.org/cgi-bin/mailman/listinfo/noosfero-dev | 36 | list: http://listas.softwarelivre.org/cgi-bin/mailman/listinfo/noosfero-dev |
@@ -57,10 +68,28 @@ EOF | @@ -57,10 +68,28 @@ EOF | ||
57 | end | 68 | end |
58 | 69 | ||
59 | desc 'prepares a release tarball' | 70 | desc 'prepares a release tarball' |
60 | - task :release => [ :check_tag, 'noosfero:error-pages:translate', :authors, :check_repo, :package ] do | 71 | + task :release => [ :check_tag, :check_debian_package, 'noosfero:error-pages:translate', :authors, :check_repo, :package, :debian_packages ] do |
61 | sh "git tag #{version}" | 72 | sh "git tag #{version}" |
62 | - puts "I: please upload the tarball to the website!" | 73 | + puts "I: please upload the tarball and Debian packages to the website!" |
63 | puts "I: please push the tag for version #{version} that was just created!" | 74 | puts "I: please push the tag for version #{version} that was just created!" |
64 | end | 75 | end |
76 | + | ||
77 | + desc 'Build Debian packages' | ||
78 | + task :debian_packages => :package do | ||
79 | + target = "pkg/noosfero-#{Noosfero::VERSION}" | ||
80 | + mkdir "#{target}/tmp" | ||
81 | + ln_s '../../../vendor/rails', "#{target}/vendor/rails" | ||
82 | + cp "#{target}/config/database.yml.sqlite3", "#{target}/config/database.yml" | ||
83 | + sh "cd #{target} && dpkg-buildpackage -us -uc -b" | ||
84 | + end | ||
85 | + | ||
86 | + desc 'Test Debian package' | ||
87 | + task 'debian:test' => :debian_packages do | ||
88 | + Dir.chdir 'pkg' do | ||
89 | + rm_rf "noosfero-#{Noosfero::VERSION}" | ||
90 | + sh 'apt-ftparchive packages . > Packages' | ||
91 | + sh 'apt-ftparchive release . > Release' | ||
92 | + end | ||
93 | + end | ||
65 | 94 | ||
66 | end | 95 | end |
public/designs/icons/default
@@ -0,0 +1,35 @@ | @@ -0,0 +1,35 @@ | ||
1 | +#!/usr/bin/env ruby | ||
2 | + | ||
3 | +case ARGV.first | ||
4 | +when 'mongrel' | ||
5 | + require 'yaml' | ||
6 | + mongrel_config = YAML.load_file(File.dirname(__FILE__) + "/../config/mongrel_cluster.yml") | ||
7 | + ip = mongrel_config['address'] || '127.0.0.1' | ||
8 | + ports = port_range = mongrel_config['port']..(mongrel_config['port']+mongrel_config['servers']-1) | ||
9 | + ports.each do |port| | ||
10 | + puts "BalancerMember http://#{ip}:#{port}" | ||
11 | + end | ||
12 | +when 'virtualhosts' | ||
13 | + require File.dirname(__FILE__) + '/../config/environment' | ||
14 | + Environment.all.each do |environment| | ||
15 | + domains = environment.domains.sort do |domain| | ||
16 | + domain.is_default ? 0 : 1 | ||
17 | + end | ||
18 | + if domains.empty? | ||
19 | + domains << Domain.new(:name => 'localhost') | ||
20 | + end | ||
21 | + puts "# #{environment.name}" | ||
22 | + puts "<VirtualHost *:80>" | ||
23 | + server_directive = 'ServerName' | ||
24 | + domains.each do |domain| | ||
25 | + puts " #{server_directive} #{domain.name}" | ||
26 | + server_directive = 'ServerAlias' | ||
27 | + end | ||
28 | + puts " Include /etc/noosfero/apache/virtualhost.conf" | ||
29 | + puts "</VirtualHost>" | ||
30 | + end | ||
31 | + puts "# vim: ft=apache" | ||
32 | +else | ||
33 | + puts "usage: %s mongrel|virtualhosts" % $PROGRAM_NAME | ||
34 | + exit 1 | ||
35 | +end |
script/production
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 2 | ||
3 | +set -e | ||
4 | + | ||
3 | export RAILS_ENV=production | 5 | export RAILS_ENV=production |
4 | 6 | ||
5 | ACTION=$1 | 7 | ACTION=$1 |
6 | shift | 8 | shift |
7 | 9 | ||
8 | clear_cache() { | 10 | clear_cache() { |
9 | - rm -f ./public/javascripts/cache-*.js | ||
10 | - rm -f ./public/stylesheets/cache.css | 11 | + if test -w ./public; then |
12 | + rm -f ./public/javascripts/cache-*.js | ||
13 | + rm -f ./public/stylesheets/cache.css | ||
14 | + fi | ||
11 | } | 15 | } |
12 | 16 | ||
13 | do_start() { | 17 | do_start() { |
@@ -40,7 +44,7 @@ case "$ACTION" in | @@ -40,7 +44,7 @@ case "$ACTION" in | ||
40 | do_start | 44 | do_start |
41 | echo "=> Running in production mode. Hit ctrl-C to stop." | 45 | echo "=> Running in production mode. Hit ctrl-C to stop." |
42 | trap do_stop INT TERM | 46 | trap do_stop INT TERM |
43 | - tail -n 0 -f log/production.log | 47 | + tail -n 0 -f log/production.log || true |
44 | ;; | 48 | ;; |
45 | 49 | ||
46 | restart) | 50 | restart) |
vendor/plugins/attachment_fu/Rakefile
@@ -16,7 +16,6 @@ desc 'Generate documentation for the attachment_fu plugin.' | @@ -16,7 +16,6 @@ desc 'Generate documentation for the attachment_fu plugin.' | ||
16 | Rake::RDocTask.new(:rdoc) do |rdoc| | 16 | Rake::RDocTask.new(:rdoc) do |rdoc| |
17 | rdoc.rdoc_dir = 'rdoc' | 17 | rdoc.rdoc_dir = 'rdoc' |
18 | rdoc.title = 'ActsAsAttachment' | 18 | rdoc.title = 'ActsAsAttachment' |
19 | - rdoc.options << '--line-numbers --inline-source' | ||
20 | rdoc.rdoc_files.include('README') | 19 | rdoc.rdoc_files.include('README') |
21 | rdoc.rdoc_files.include('lib/**/*.rb') | 20 | rdoc.rdoc_files.include('lib/**/*.rb') |
22 | end | 21 | end |