Commit f2480d48be5bc3ec29dc0aae19b5919285d39420

Authored by Antonio Terceiro
1 parent 7d4e7bf3

noosfero: several adjustments to the package

There are still some pending items, check for TODO/FIXME
Showing 1 changed file with 74 additions and 41 deletions   Show diff stats
specs/noosfero/noosfero.spec
  1 +%define writable_dirs javascripts/cache stylesheets/cache articles image_uploads thumbnails
  2 +
1 3 Name: noosfero
2   -Version: 1.0
  4 +Version: 1.1~rc1
3 5 Release: 1%{?dist}
4   -Summary: Software Development Platform
5   -Group: Development/Tools
6   -License: GNU GPLv3
  6 +Summary: Social Networking Platform
  7 +Group: Applications/Publishing
  8 +License: AGPLv3
7 9 URL: http://noosfero.org
8 10 Source0: %{name}-%{version}.tar.gz
9   -Patch0: %{name}p0.patch
10   -Patch1: %{name}p1.patch
11 11 BuildArch: noarch
12 12 BuildRequires: noosfero-deps
13 13 Requires: noosfero-deps, po4a, tango-icon-theme
... ... @@ -20,22 +20,72 @@ participate and contribute to this free software project!
20 20  
21 21 %prep
22 22 %setup -q
23   -grep -rl '/usr/bin/ruby1.8' . | xargs --no-run-if-empty sed -i -e '1 s|.*|#!/usr/bin/ruby|'
24   -%patch0 -p1
25   -%patch1 -p1
26 23  
27 24 %build
28 25  
  26 +# FIXME build .mo
  27 +# FIXME docs
  28 +
29 29 %install
30   -mkdir -p %{buildroot}/var/lib/noosfero/plugins
31   -mkdir -p %{buildroot}/var/lib/noosfero/public
32 30 mkdir -p %{buildroot}/usr/lib/noosfero
33   -mv plugins %{buildroot}/var/lib/noosfero/
34   -mv doc %{buildroot}/var/lib/noosfero/
35   -mv public %{buildroot}/var/lib/noosfero/
36   -rm Gemfile Vagrantfile *.md gitignore.example
  31 +
  32 +# install noosfero tree
37 33 cp -r . %{buildroot}/usr/lib/noosfero/
  34 +rm %{buildroot}/usr/lib/noosfero/{Gemfile,Vagrantfile,*.md,gitignore.example,public/dispatch.fcgi,public/dispatch.cgi,public/dispatch.rb}
  35 +
  36 +# install config files
  37 +mkdir -p %{buildroot}/etc/init.d
  38 +cp etc/init.d/noosfero %{buildroot}/etc/init.d/
  39 +
  40 +mkdir -p %{buildroot}/etc/noosfero/plugins
  41 +ln -sf /etc/noosfero/database.yml %{buildroot}/usr/lib/noosfero/config/database.yml
  42 +ln -sf /etc/noosfero/thin.yml %{buildroot}/usr/lib/noosfero/config/thin.yml
  43 +ln -sf /etc/noosfero/plugins %{buildroot}/usr/lib/noosfero/config/plugins
  44 +
  45 +# symlink needed bits in public/
  46 +for dir in %{writable_dirs}; do
  47 + ln -s /var/lib/noosfero/public/$dir %{buildroot}/usr/lib/noosfero/public/$dir
  48 +done
  49 +ln -s /var/tmp/noosfero %{buildroot}/usr/lib/noosfero/tmp
  50 +ln -s /var/log/noosfero %{buildroot}/usr/lib/noosfero/log
  51 +
  52 +# default themes
  53 +ln -s noosfero %{buildroot}/usr/lib/noosfero/public/designs/themes/default
  54 +ln -s tango %{buildroot}/usr/lib/noosfero/public/designs/icons/default
  55 +
  56 +
  57 +cat > %{buildroot}/etc/noosfero/thin.yml <<EOF
  58 +---
  59 +chdir: /usr/lib/noosfero
  60 +environment: production
  61 +address: 0.0.0.0
  62 +port: 3000
  63 +timeout: 30
  64 +log: log/thin.log
  65 +pid: tmp/pids/thin.pid
  66 +max_conns: 1024
  67 +max_persistent_conns: 512
  68 +require: []
  69 +wait: 30
  70 +daemonize: true
  71 +EOF
  72 +
  73 +cat > %{buildroot}/etc/noosfero/database.yml <<EOF
  74 +production:
  75 + adapter: postgresql
  76 + encoding: unicode
  77 + database: noosfero_production
  78 + username: noosfero
  79 + host: localhost
  80 + port: 5432
  81 +EOF
38 82  
  83 +mkdir -p %{buildroot}/etc/default
  84 +cat > %{buildroot}/etc/default/noosfero <<EOF
  85 +NOOSFERO_DIR="/usr/lib/noosfero"
  86 +NOOSFERO_USER="noosfero"
  87 +NOOSFERO_DATA_DIR="/var/lib/noosfero"
  88 +EOF
39 89  
40 90 %post
41 91 groupadd noosfero || true
... ... @@ -43,39 +93,19 @@ if ! id noosfero; then
43 93 adduser noosfero --system -g noosfero --shell /bin/sh --home-dir /usr/lib/noosfero
44 94 fi
45 95  
46   -cp /usr/lib/noosfero/etc/init.d/noosfero /etc/init.d/
47   -/etc/init.d/noosfero setup
48   -
49   -mkdir -p /var/lib/noosfero/locale
50   -mkdir -p /etc/noosfero
51   -
  96 +for dir in %{writable_dirs}; do
  97 + mkdir -p /var/lib/noosfero/public/$dir
  98 +done
52 99 chown -R noosfero:noosfero /var/lib/noosfero
53 100  
54   -ln -s /var/lib/noosfero/locale /usr/lib/noosfero/locale
55   -ln -s /var/lib/noosfero/plugins /usr/lib/noosfero/plugins
56   -ln -s /var/lib/noosfero/doc /usr/lib/noosfero/doc
57   -ln -s /var/lib/noosfero/public /usr/lib/noosfero/public
58   -
59   -ln -s /etc/noosfero/database.yml /usr/lib/noosfero/config/
60   -ln -s /etc/noosfero/thin.yml /usr/lib/noosfero/config/
  101 +/etc/init.d/noosfero setup
61 102  
62 103 cd /usr/lib/noosfero/
63   -bundle exec thin -C /etc/noosfero/thin.yml -e production config
64   -
65   -cat > /etc/noosfero/database.yml <<EOF
66   -production:
67   - adapter: postgresql
68   - encoding: unicode
69   - database: noosfero_production
70   - username: noosfero
71   - host: localhost
72   - port: 5432
73   -EOF
74 104  
75 105 if [ -x /usr/bin/postgres ]; then
76 106 if [ `systemctl is-active postgresql`!="active" ]; then
77 107 postgresql-setup initdb || true
78   - systemctl start postgresql
  108 + systemctl start postgresql
79 109 fi
80 110  
81 111 su postgres -c "createuser noosfero -S -d -R"
... ... @@ -93,5 +123,8 @@ chkconfig --del noosfero
93 123  
94 124 %files
95 125 /usr/lib/noosfero
96   -/var/lib/noosfero
  126 +/etc/init.d/noosfero
  127 +%config(noreplace) /etc/default/noosfero
  128 +%config(noreplace) /etc/noosfero/database.yml
  129 +%config(noreplace) /etc/noosfero/thin.yml
97 130 %doc
... ...