]> git.pld-linux.org Git - packages/pootle.git/blob - pootle.spec
fill missing apache deps
[packages/pootle.git] / pootle.spec
1 # TODO
2 # - move %{_datadir}/pootle/mo/* to system localedir as pootle.mo
3 %define         fullname Pootle
4 Summary:        Localization and translation management web application
5 Name:           pootle
6 Version:        2.1.6
7 Release:        2
8 License:        GPL v2
9 Group:          Development/Tools
10 URL:            http://translate.sourceforge.net/wiki/pootle/index
11 Source0:        http://downloads.sourceforge.net/translate/%{fullname}-%{version}.tar.bz2
12 # Source0-md5:  1dc69e42cd93f9174443af350df57491
13 Source1:        apache.conf
14 Patch0:         settings.patch
15 Patch1:         paths.patch
16 Patch2:         homedir.patch
17 Patch3:         iso-codes-message.patch
18 Patch4:         bug-2005.patch
19 BuildRequires:  python-devel
20 BuildRequires:  python-modules
21 BuildRequires:  rpm-pythonprov
22 BuildRequires:  rpmbuild(macros) >= 1.228
23 BuildRequires:  sed >= 4.0
24 BuildRequires:  translate-toolkit >= 1.4.1
25 Requires:       apache-mod_alias
26 Requires:       apache-mod_authz_host
27 Requires:       apache-mod_mime
28 Requires:       apache-mod_wsgi
29 Requires:       group(http)
30 Requires:       iso-codes
31 Requires:       python-Levenshtein
32 Requires:       python-django >= 1.0
33 Requires:       python-django-south
34 Requires:       python-djblets
35 Requires:       python-lxml
36 Requires:       translate-toolkit >= 1.8.0
37 Requires:       zip
38 Suggests:       memcached
39 Suggests:       python(sqlite)
40 Suggests:       python-memcached
41 Suggests:       python-xapian
42 Conflicts:      python-xapian < 1.0.13
43 BuildArch:      noarch
44 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
45
46 %define         _webapps        /etc/webapps
47 %define         _webapp         %{name}
48 %define         _sysconfdir     %{_webapps}/%{_webapp}
49
50 %description
51 Pootle is web application for managing distributed or crowdsourced
52 translation.
53
54 It's features include::
55 - Translation of Gettext PO and XLIFF files.
56 - Submitting to remote version control systems (VCS).
57 - Managing groups of translators
58 - Online webbased or offline translation
59 - Quality checks
60
61 %prep
62 %setup -q -n %{fullname}-%{version}
63 %patch0 -p1
64 %patch1 -p1
65 %patch2 -p1
66 %patch3 -p1
67 %patch4 -p1
68
69 %{__sed} -i -e '1s,#!.*env python,#!%{__python},' wsgi.py
70
71 %build
72 %{__python} setup.py build
73
74 %install
75 rm -rf $RPM_BUILD_ROOT
76 install -d $RPM_BUILD_ROOT{%{_sbindir},%{_datadir}/pootle,%{_sharedstatedir}/pootle/po/.tmp,%{_sysconfdir}}
77
78 %{__python} setup.py install \
79         --skip-build \
80         --optimize=2 \
81         --root=$RPM_BUILD_ROOT
82
83 # install_dirs.py was modified _after_ install completed, so compile again
84 # before py_postclean
85 # TODO. compile only install_dirs.py
86 %py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
87 %py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
88 %py_postclean
89
90 # Create the manpages
91 install -d $RPM_BUILD_ROOT%{_mandir}/man1
92 for program in $RPM_BUILD_ROOT%{_bindir}/*; do
93         case $(basename $program) in
94         PootleServer|import_pootle_prefs)
95                 ;;
96         *)
97                 LC_ALL=C PYTHONPATH=. $program --manpage \
98                 > $RPM_BUILD_ROOT%{_mandir}/man1/$(basename $program).1 \
99                 || rm -f $RPM_BUILD_ROOT%{_mandir}/man1/$(basename $program).1
100                 ;;
101         esac
102 done
103
104 > %{name}.lang
105 # application language
106 for a in $RPM_BUILD_ROOT%{_datadir}/pootle/mo/[a-z]*; do
107         # path file and lang
108         p=${a#$RPM_BUILD_ROOT} l=${a##*/}
109         echo "%lang($l) $p" >> %{name}.lang
110 done
111
112 # such recursive magic is because we need to have different permissions for
113 # directories and files and we want to language tag both of them
114 scan_mo() {
115         for obj in "$@"; do
116                 # skip bad globs (happens when we recurse)
117                 [ -e "$obj" ] || continue
118                 # path file and lang
119                 path=${obj#$RPM_BUILD_ROOT} lang=${MO_LANG:-${obj##*/}}
120
121                 if [ -d $obj ]; then
122                         attr='%dir %attr(770,root,http)'
123                 else
124                         attr='%attr(660,root,http) %config(noreplace) %verify(not md5 mtime size)'
125                 fi
126                 case $lang in
127                 templates)
128                         echo "$attr $path" >> %{name}.lang
129                         ;;
130                 *)
131                         echo "%lang($lang) $attr $path" >> %{name}.lang
132                         ;;
133                 esac
134                 if [ -d $obj ]; then
135                         MO_LANG=$lang scan_mo $obj/*
136                         unset MO_LANG
137                 fi
138         done
139 }
140 scan_mo $RPM_BUILD_ROOT%{_sharedstatedir}/pootle/po/{pootle,terminology,tutorial}/* >> %{name}.lang
141
142 # don't clobber user $PATH
143 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/PootleServer
144 install -p manage.py $RPM_BUILD_ROOT%{_sbindir}/pootle-manage
145 install -p wsgi.py $RPM_BUILD_ROOT%{_datadir}/pootle
146
147 install -d $RPM_BUILD_ROOT%{_sysconfdir}
148 cp -a %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
149
150 # we do doc in rpm
151 rm -rf $RPM_BUILD_ROOT%{_datadir}/doc/pootle
152
153 # external pkg
154 rm -r $RPM_BUILD_ROOT%{py_sitescriptdir}/djblets
155
156 %clean
157 rm -rf $RPM_BUILD_ROOT
158
159 %triggerin -- apache < 2.2.0, apache-base
160 %webapp_register httpd %{_webapp}
161
162 %triggerun -- apache < 2.2.0, apache-base
163 %webapp_unregister httpd %{_webapp}
164
165 %files -f %{name}.lang
166 %defattr(644,root,root,755)
167 %doc ChangeLog CREDITS README
168 %dir %attr(750,root,http) %{_sysconfdir}
169 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
170 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/localsettings.py
171 %attr(755,root,root) %{_bindir}/import_pootle_prefs
172 %attr(755,root,root) %{_bindir}/updatetm
173 %attr(755,root,root) %{_sbindir}/PootleServer
174 %{_mandir}/man1/updatetm.1*
175
176 %dir %{_datadir}/pootle
177 %{_datadir}/pootle/mo/README
178 %attr(755,root,root) %{_datadir}/pootle/wsgi.py
179 %{_datadir}/pootle/html
180 %{_datadir}/pootle/templates
181 %dir %{_datadir}/pootle/mo
182
183 %{py_sitescriptdir}/contact_form_i18n
184 %{py_sitescriptdir}/pootle
185 %{py_sitescriptdir}/pootle_app
186 %{py_sitescriptdir}/pootle_autonotices
187 %{py_sitescriptdir}/pootle_language
188 %{py_sitescriptdir}/pootle_misc
189 %{py_sitescriptdir}/pootle_notifications
190 %{py_sitescriptdir}/pootle_profile
191 %{py_sitescriptdir}/pootle_project
192 %{py_sitescriptdir}/pootle_statistics
193 %{py_sitescriptdir}/pootle_store
194 %{py_sitescriptdir}/pootle_terminology
195 %{py_sitescriptdir}/pootle_translationproject
196 %{py_sitescriptdir}/profiles
197 %{py_sitescriptdir}/registration
198 %if "%{py_ver}" > "2.4"
199 %{py_sitescriptdir}/Pootle-*.egg-info
200 %endif
201
202 %dir %{_sharedstatedir}/pootle
203 %dir %attr(770,root,http) %{_sharedstatedir}/pootle/dbs
204 %dir %attr(770,root,http) %{_sharedstatedir}/pootle/po
205 # setup a tempdir inside the PODIRECTORY heirarchy, this way we have
206 # reasonable guarantee that temp files will be created on the same
207 # filesystem as translation files (required for save operations).
208 %dir %attr(770,root,http) %{_sharedstatedir}/pootle/po/.tmp
209
210 # base translations from pootle itself
211 %dir %attr(770,root,http) %{_sharedstatedir}/pootle/po/pootle
212 %dir %attr(770,root,http) %{_sharedstatedir}/pootle/po/terminology
213 %dir %attr(770,root,http) %{_sharedstatedir}/pootle/po/tutorial
This page took 0.083887 seconds and 3 git commands to generate.