]> git.pld-linux.org Git - SPECS.git/blob - reviewboard.spec
SPECS updated Wed 28 Jul 14:48:01 CEST 2021
[SPECS.git] / reviewboard.spec
1 # TODO
2 # - webservers integration
3 # - system js packages, jquery, jquery-ui, etc
4 # - do we need to package .less and not minified .js? nose.cfg?
5 # - handle upgrades on version change:
6 #   $ rb-site upgrade /path/to/rb/install
7 Summary:        Web-based code review tool
8 Name:           reviewboard
9 Version:        1.7.4
10 Release:        0.13
11 License:        MIT
12 Group:          Applications/Networking
13 URL:            http://www.review-board.org/
14 Source0:        http://downloads.reviewboard.org/releases/ReviewBoard/1.7/ReviewBoard-%{version}.tar.gz
15 # Source0-md5:  6576730e935964a9780feffa52114460
16 Source1:        apache.conf
17 Patch0:         default-cache-file-path.patch
18 BuildRequires:  fslint
19 BuildRequires:  python-django >= 1.4.3
20 BuildRequires:  python-django-evolution >= 0.6.7
21 BuildRequires:  python-djblets >= 0.7.8
22 BuildRequires:  python-jsmin
23 BuildRequires:  python-modules
24 BuildRequires:  python-setuptools
25 BuildRequires:  python-sqlite
26 BuildRequires:  rpm-pythonprov
27 BuildRequires:  rpmbuild(macros) >= 1.219
28 BuildRequires:  sed >= 4.0
29 Requires:       patch
30 Requires:       patchutils
31 Requires:       python-PIL
32 Requires:       python-dateutil
33 Requires:       python-django >= 1.4.3
34 Requires:       python-django-evolution >= 0.6.7
35 Requires:       python-django-pipeline >= 1.2.22
36 Requires:       python-djblets >= 0.7.1
37 Requires:       python-docutils
38 Requires:       python-flup
39 Requires:       python-markdown >= 2.2.1
40 Requires:       python-memcached
41 Requires:       python-mimeparse
42 Requires:       python-nose
43 Requires:       python-paramiko >= 1.7.6
44 Requires:       python-pygments >= 1.5
45 Requires:       python-pysvn
46 Requires:       python-pytz
47 Requires:       python-recaptcha
48 Requires:       python-slimit
49 # Pull one of webserver modes
50 Suggests:       apache-mod_python
51 Suggests:       apache-mod_wsgi
52 # Pull in the client libraries for all of the supported databases
53 Requires:       python-MySQLdb
54 Requires:       python-psycopg2
55 Requires:       python-sqlite
56 # Pull in the tools for working with common repositories
57 Requires:       git-core
58 Requires:       mercurial
59 Requires:       subversion
60 # optional things
61 Suggests:       python-ldap
62 Suggests:       python-rbtools
63 Obsoletes:      ReviewBoard < 1.7.0
64 BuildArch:      noarch
65 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
66
67 %define         _webapps        /etc/webapps
68 %define         _webapp         %{name}
69 %define         _sysconfdir     %{_webapps}/%{_webapp}
70 %define         _appdir         %{_datadir}/%{_webapp}
71
72 %description
73 Review Board is a powerful web-based code review tool that offers
74 developers an easy way to handle code reviews. It scales well from
75 small projects to large companies and offers a variety of tools to
76 take much of the stress and time out of the code review process.
77
78 %prep
79 %setup -q -n ReviewBoard-%{version}
80 %patch0 -p1
81
82 %{__sed} -i -e '1s,^#!.*python,#!%{__python},' reviewboard/manage.py
83
84 # Remove packaged egg-info so it's regenerated by setup.py
85 %{__rm} -r ReviewBoard*.egg-info
86
87 %build
88 %{__python} setup.py build
89
90 %install
91 rm -rf $RPM_BUILD_ROOT
92 install -d $RPM_BUILD_ROOT/var/cache/%{name}
93 %{__python} setup.py install \
94         --skip-build \
95         --optimize=2 \
96         --root $RPM_BUILD_ROOT
97
98 install -d $RPM_BUILD_ROOT%{_sysconfdir}
99 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
100 cp -p $RPM_BUILD_ROOT%{_sysconfdir}/{apache,httpd}.conf
101
102 # create htdocs structure that rb-site install would create
103 # TODO: maybe move rb htdocs instead of symlinking here?
104 D=$RPM_BUILD_ROOT%{_appdir}/htdocs
105 install -d $D/{media/{ext,uploaded/images},static}
106 ln -s %{py_sitescriptdir}/%{name}/htdocs/errordocs $D
107 S=$D/static
108 ln -s %{py_sitescriptdir}/%{name}/htdocs/static/admin $S/admin
109 ln -s %{py_sitescriptdir}/djblets/static $S/djblets
110 ln -s %{py_sitescriptdir}/%{name}/htdocs/static/lib $S/lib
111 ln -s %{py_sitescriptdir}/%{name}/htdocs/static/rb $S/rb
112
113 # The rb-site executable has a PyGTK GUI, so would normally
114 # require us to ship a .desktop file. However it can only be run when supplied
115 # a directory as a command-line argument, hence it wouldn't be meaningful to
116 # create a .desktop file for it.
117
118 %py_postclean
119
120 # hardlink files with fingerprinted variants
121 findup -m $RPM_BUILD_ROOT
122
123 # scripts that have a shebang and are meaningful to run; make executable:
124 # need to reinstall as py_postclean has removed .py
125 install -p reviewboard/manage.py $RPM_BUILD_ROOT%{py_sitescriptdir}/%{name}/manage.py
126
127 # Remove test data from the installed packages
128 #%{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/%{name}/nose.cfg
129 %{__rm} -r $RPM_BUILD_ROOT%{py_sitescriptdir}/%{name}/diffviewer/testdata \
130        $RPM_BUILD_ROOT%{py_sitescriptdir}/%{name}/scmtools/testdata \
131        $RPM_BUILD_ROOT%{py_sitescriptdir}/webtests
132
133 %clean
134 rm -rf $RPM_BUILD_ROOT
135
136 %triggerin -- apache1 < 1.3.37-3, apache1-base
137 %webapp_register apache %{_webapp}
138
139 %triggerun -- apache1 < 1.3.37-3, apache1-base
140 %webapp_unregister apache %{_webapp}
141
142 %triggerin -- apache < 2.2.0, apache-base
143 %webapp_register httpd %{_webapp}
144
145 %triggerun -- apache < 2.2.0, apache-base
146 %webapp_unregister httpd %{_webapp}
147
148 %files
149 %defattr(644,root,root,755)
150 %doc AUTHORS COPYING INSTALL NEWS README
151 %dir %attr(750,root,http) %{_sysconfdir}
152 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
153 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
154 %attr(755,root,root) %{_bindir}/rb-site
155 %attr(755,root,root) %{_bindir}/rbssh
156 %dir %attr(770,root,http) /var/cache/%{name}
157 %dir %{py_sitescriptdir}/%{name}
158 %{py_sitescriptdir}/%{name}/*.py[co]
159 %{py_sitescriptdir}/%{name}/nose.cfg
160 %attr(755,root,root) %{py_sitescriptdir}/%{name}/manage.py
161
162 %{py_sitescriptdir}/%{name}/accounts
163 %{py_sitescriptdir}/%{name}/admin
164 %{py_sitescriptdir}/%{name}/attachments
165 %{py_sitescriptdir}/%{name}/changedescs
166 %{py_sitescriptdir}/%{name}/cmdline
167 %{py_sitescriptdir}/%{name}/diffviewer
168 %{py_sitescriptdir}/%{name}/extensions
169 %{py_sitescriptdir}/%{name}/hostingsvcs
170 %{py_sitescriptdir}/%{name}/htdocs
171 %{py_sitescriptdir}/%{name}/notifications
172 %{py_sitescriptdir}/%{name}/reviews
173 %{py_sitescriptdir}/%{name}/scmtools
174 %{py_sitescriptdir}/%{name}/site
175 %{py_sitescriptdir}/%{name}/ssh
176 %{py_sitescriptdir}/%{name}/templates
177 %{py_sitescriptdir}/%{name}/webapi
178 %{py_sitescriptdir}/ReviewBoard-%{version}-*.egg-info
179
180 %dir %{_appdir}
181 %dir %{_appdir}/htdocs
182 %{_appdir}/htdocs/static
183 %{_appdir}/htdocs/errordocs
184 # FIXME: media remap to /var
185 %{_appdir}/htdocs/media
186
187 %dir %{py_sitescriptdir}/%{name}/static
188 %dir %{py_sitescriptdir}/%{name}/static/lib
189 %dir %{py_sitescriptdir}/%{name}/static/lib/js
190 %{py_sitescriptdir}/%{name}/static/lib/js/backbone-0.9.2.min.js
191 %{py_sitescriptdir}/%{name}/static/lib/js/csshover2.htc
192 %dir %{py_sitescriptdir}/%{name}/static/lib/js/flot
193 %{py_sitescriptdir}/%{name}/static/lib/js/flot/excanvas.min.js
194 %{py_sitescriptdir}/%{name}/static/lib/js/flot/jquery.flot.min.js
195 %{py_sitescriptdir}/%{name}/static/lib/js/flot/jquery.flot.pie.js
196 %{py_sitescriptdir}/%{name}/static/lib/js/flot/jquery.flot.pie.min.js
197 %{py_sitescriptdir}/%{name}/static/lib/js/flot/jquery.flot.selection.js
198 %{py_sitescriptdir}/%{name}/static/lib/js/flot/jquery.flot.selection.min.js
199 %{py_sitescriptdir}/%{name}/static/lib/js/jasmine-1.3.1.js
200 %{py_sitescriptdir}/%{name}/static/lib/js/jasmine-html-1.3.1.js
201 %{py_sitescriptdir}/%{name}/static/lib/js/jquery-1.8.2.min.js
202 %{py_sitescriptdir}/%{name}/static/lib/js/jquery-ui-1.8.24.custom.min.js
203 %{py_sitescriptdir}/%{name}/static/lib/js/jquery.form.js
204 %{py_sitescriptdir}/%{name}/static/lib/js/jquery.masonry.js
205 %{py_sitescriptdir}/%{name}/static/lib/js/jquery.timesince.js
206 %{py_sitescriptdir}/%{name}/static/lib/js/less-1.3.1.min.js
207 %{py_sitescriptdir}/%{name}/static/lib/js/pngfix.htc
208 %{py_sitescriptdir}/%{name}/static/lib/js/ui.autocomplete.js
209 %{py_sitescriptdir}/%{name}/static/lib/js/ui.autocomplete.min.js
210 %{py_sitescriptdir}/%{name}/static/lib/js/underscore-1.3.3.min.js
211 %dir %{py_sitescriptdir}/%{name}/static/rb
212 %dir %{py_sitescriptdir}/%{name}/static/rb/css
213 %{py_sitescriptdir}/%{name}/static/rb/css/*.css
214 %{py_sitescriptdir}/%{name}/static/rb/css/*.less
215 %{py_sitescriptdir}/%{name}/static/rb/images
216 %dir %{py_sitescriptdir}/%{name}/static/rb/js
217 %{py_sitescriptdir}/%{name}/static/rb/js/*.js
218 %{py_sitescriptdir}/%{name}/static/rb/js/models
219 %{py_sitescriptdir}/%{name}/static/rb/js/utils
220 %{py_sitescriptdir}/%{name}/static/rb/js/views
This page took 0.70601 seconds and 3 git commands to generate.