source: ProjectBuilder/projects/fossology/pbconf/trunk/fossology/rpm/fossology.spec@ 765

Last change on this file since 765 was 765, checked in by Bruno Cornec, 15 years ago

Adds support for ubuntu 9.04 i386 and x86_64

File size: 7.5 KB
Line 
1#
2# $Id$
3#
4
5Name: PBREALPKG
6Version: PBVER
7Release: PBTAGPBSUF
8License: PBLIC
9Group: PBGRP
10Url: PBURL
11Source: PBREPO/PBSRC
12#PBPATCHSRC
13BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(id -u -n)
14Requires: postgresql php php-pear php-pgsql libxml2 binutils bzip2 cpio mkisofs poppler-utils rpm tar unzip gzip httpd which PBDEP
15BuildRequires: postgresql-devel libxml2 gcc make perl PBBUILDDEP
16Summary: FOSSology is a licenses exploration tool
17Summary(fr): FOSSology est un outil d'exploration de licenses
18
19%package devel
20Summary: Devel part of FOSSology (a licenses exploration tool)
21Summary(fr): Partie dedévelopment de FOSSology, outil d'exploration de licenses
22Group: PBGRP
23
24%description
25PBDESC
26
27%description -l fr
28FOSSology est un outil d'exploration de licenses
29
30%description devel
31Devel part.
32PBDESC
33
34%description -l fr devel
35Partie développement de FOSSology, outil d'exploration de licenses
36
37%prep
38%setup -q
39#PBPATCHCMD
40
41%build
42make SYSCONFDIR=%{_sysconfdir} PREFIX=%{_usr} LOCALSTATEDIR=%{_var}
43#make %{?_smp_mflags} SYSCONFDIR=%{_sysconfdir}
44
45%install
46%{__rm} -rf $RPM_BUILD_ROOT
47make DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_usr} SYSCONFDIR=%{_sysconfdir} LOCALSTATEDIR=%{_var} LIBDIR=%{_libdir} install
48mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/httpd/conf.d
49cat > $RPM_BUILD_ROOT/%{_sysconfdir}/httpd/conf.d/PBPROJ.conf << EOF
50Alias /repo/ /usr/share/PBPROJ/www/
51<Directory "/usr/share/PBPROJ/www">
52 AllowOverride None
53 Options FollowSymLinks MultiViews
54 Order allow,deny
55 Allow from all
56 # uncomment to turn on php error reporting
57 #php_flag display_errors on
58 #php_value error_reporting 2039
59</Directory>
60EOF
61cp utils/fo-cleanold $RPM_BUILD_ROOT/%{_usr}/lib/PBPROJ/
62
63#rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/default/PBPROJ
64
65%clean
66%{__rm} -rf $RPM_BUILD_ROOT
67
68%files
69%defattr(-,root,root)
70%doc ChangeLog
71%doc COPYING COPYING.LGPL HACKING README INSTALL INSTALL.multi LICENSE
72#AUTHORS NEWS
73%config(noreplace) %{_sysconfdir}/httpd/conf.d/*.conf
74%config(noreplace) %{_sysconfdir}/cron.d/*
75%config(noreplace) %{_sysconfdir}/PBPROJ/*
76%dir %{_sysconfdir}/PBPROJ
77%dir %{_usr}/lib/PBPROJ
78%dir %{_datadir}/PBPROJ
79%{_sysconfdir}/init.d/*
80%{_usr}/lib/PBPROJ/*
81%{_datadir}/PBPROJ/*
82%{_bindir}/*
83%{_mandir}/man1/*
84
85%files devel
86%{_includedir}/*
87%{_libdir}/*.a
88
89%post
90# Adjust the kernel shmmax (described in detail in section 2.1.3)
91echo 512000000 > /proc/sys/kernel/shmmax
92grep -q kernel.shmmax /etc/sysctl.conf
93if [ $? -eq 0 ]; then
94 perl -pi -e "s/^[#\s]*kernel.shmmax\s*=.*/kernel.shmmax=512000000/" /etc/sysctl.conf
95else
96 echo "kernel.shmmax=512000000" >> /etc/sysctl.conf
97fi
98
99# Adjust postgresql config (described in detail in section 2.1.4) for Fossology
100PGCONF=/var/lib/pgsql/data/postgresql.conf
101if [ ! -f $PGCONF ]; then
102 cp /usr/share/pgsql/postgresql.conf.sample $PGCONF
103fi
104grep -qw listen_addresses $PGCONF
105if [ $? -eq 0 ]; then
106 perl -pi -e "s/^[#\s]*listen_addresses.*=.*/listen_addresses = '*'/" $PGCONF
107else
108 echo "listen_addresses = '*'" >> $PGCONF
109fi
110grep -qw max_connections $PGCONF
111if [ $? -eq 0 ]; then
112 perl -pi -e "s/^[#\s]*max_connections.*=.*/max_connections = 50/" $PGCONF
113else
114 echo "max_connections = 50" >> $PGCONF
115fi
116grep -qw shared_buffers $PGCONF
117if [ $? -eq 0 ]; then
118 perl -pi -e "s/^[#\s]*shared_buffers.*=.*/shared_buffers = 32768/" $PGCONF
119else
120 echo "shared_buffers = 32768" >> $PGCONF
121fi
122grep -qw work_mem $PGCONF
123if [ $? -eq 0 ]; then
124 perl -pi -e "s/^[#\s]*work_mem.*=.*/work_mem = 10240/" $PGCONF
125else
126 echo "work_mem = 10240" >> $PGCONF
127fi
128# min max_fsm_relations*16, 6 bytes each
129grep -qw max_fsm_pages $PGCONF
130if [ $? -eq 0 ]; then
131 perl -pi -e "s/^[#\s]*max_fsm_pages.*=.*/max_fsm_pages = 100000/" $PGCONF
132else
133 echo "max_fsm_pages = 100000" >> $PGCONF
134fi
135grep -qw fsync $PGCONF
136if [ $? -eq 0 ]; then
137 perl -pi -e "s/^[#\s]*fsync.*=.*/fsync = off/" $PGCONF
138else
139 echo "fsync = off" >> $PGCONF
140fi
141# recover from partial page writes
142grep -qw full_page_writes $PGCONF
143if [ $? -eq 0 ]; then
144 perl -pi -e "s/^[#\s]*full_page_writes.*=.*/full_page_writes = off/" $PGCONF
145else
146 echo "full_page_writes = off" >> $PGCONF
147fi
148grep -qw commit_delay $PGCONF
149if [ $? -eq 0 ]; then
150 perl -pi -e "s/^[#\s]*commit_delay.*=.*/commit_delay = 1000/" $PGCONF
151else
152 echo "commit_delay = 1000" >> $PGCONF
153fi
154grep -qw effective_cache_size $PGCONF
155if [ $? -eq 0 ]; then
156 perl -pi -e "s/^[#\s]*effective_cache_size.*=.*/effective_cache_size = 25000/" $PGCONF
157else
158 echo "effective_cache_size = 25000" >> $PGCONF
159fi
160# -1 is disabled, 0 logs all statements
161grep -qw log_min_duration_statement $PGCONF
162if [ $? -eq 0 ]; then
163 perl -pi -e "s/^[#\s]*log_min_duration_statement.*=.*/log_min_duration_statement = -1/" $PGCONF
164else
165 echo "log_min_duration_statement = -1" >> $PGCONF
166fi
167# prepend a time stamp to all log entries
168grep -qw log_line_prefix $PGCONF
169if [ $? -eq 0 ]; then
170 perl -pi -e "s/^[#\s]*log_line_prefix.*=.*/log_line_prefix = '%t %h %c'/" $PGCONF
171else
172 echo "log_line_prefix = '%t %h %c'" >> $PGCONF
173fi
174
175cat >> /var/lib/pgsql/data/pg_hba.conf << EOF
176# Added for FOSSology connection
177# Local connections
178local all all md5
179# IPv4 local connections:
180host all all 127.0.0.1/32 md5
181host all all 127.0.0.1/32 md5
182# IPv6 local connections:
183host all all ::1/128 ident sameuser
184
185EOF
186perl -pi -e 's|(host\s+all\s+all\s+127.0.0.1/32\s+ident\s+sameuser)|#$1|' /var/lib/pgsql/data/pg_hba.conf
187
188# Check postgresql is running
189LANGUAGE=C /etc/init.d/postgresql status 2>&1 | grep -q stop
190if [ $? -eq 0 ]; then
191 /etc/init.d/postgresql start
192else
193 # Reload doesn't seem to work here
194 /etc/init.d/postgresql restart
195fi
196chkconfig --add postgresql
197
198# To avoid fossology setup to fail, leave it time to start
199sleep 2
200
201# Adjust PHP config (described in detail in section 2.1.5)
202grep -qw memory_limit PBPHPINI
203if [ $? -eq 0 ]; then
204 perl -pi -e "s/^[#\s]*memory_limit.*=.*/memory_limit = 702M/" PBPHPINI
205else
206 echo "memory_limit = 702M" >> PBPHPINI
207fi
208grep -qw post_max_size PBPHPINI
209if [ $? -eq 0 ]; then
210 perl -pi -e "s/^[#\s]*post_max_size.*=.*/post_max_size = 702M/" PBPHPINI
211else
212 echo "post_max_size = 702M" >> PBPHPINI
213fi
214grep -qw upload_max_filesize PBPHPINI
215if [ $? -eq 0 ]; then
216 perl -pi -e "s/^[#\s]*upload_max_filesize.*=.*/upload_max_filesize = 702M/" PBPHPINI
217else
218 echo "upload_max_filesize = 702M" >> PBPHPINI
219fi
220grep -qw allow_call_time_pass_reference PBPHPINI
221if [ $? -eq 0 ]; then
222 perl -pi -e "s/^[#\s]*allow_call_time_pass_reference.*=.*/allow_call_time_pass_reference = On/" PBPHPINI
223else
224 echo "allow_call_time_pass_reference = On" >> PBPHPINI
225fi
226
227# Add apache config for fossology (described in detail in section 2.1.6) - done in install
228# Run the postinstall script
229/usr/lib/PBPROJ/fo-postinstall
230
231# Adds user httpd to fossy group
232perl -pi -e 's/^fossy:x:([0-9]+):/fossy:x:$1:httpd/' /etc/group
233
234# httpd
235LANGUAGE=C /etc/init.d/httpd status 2>&1 | grep -q stop
236if [ $? -eq 0 ]; then
237 /etc/init.d/httpd start
238else
239 /etc/init.d/httpd reload
240fi
241chkconfig --add httpd
242
243# Create logfile to avoid issues later on
244touch %{_var}/log/PBPROJ
245# Handle logfile owner correctly
246chown fossy:fossy %{_var}/log/PBPROJ
247
248# Test that things are installed correctly
249/usr/lib/PBPROJ/fossology-scheduler -t
250if [ $? -ne 0 ]; then
251 exit -1
252fi
253
254chkconfig --add PBPROJ
255/etc/init.d/PBPROJ start
256
257%preun
258# If FOSSology is running, stop it before removing.
259/etc/init.d/PBPROJ stop
260chkconfig --del PBPROJ 2>&1 > /dev/null
261
262# We should do some cleanup here (fossy account ...)
263/usr/lib/PBPROJ/fo-cleanold
264
265%changelog
266PBLOG
Note: See TracBrowser for help on using the repository browser.