]> git.pld-linux.org Git - packages/thunderbird.git/blame_incremental - icedove.spec
- up to 45.8.0
[packages/thunderbird.git] / icedove.spec
... / ...
CommitLineData
1# TODO:
2# - build with system mozldap
3#
4# Conditional builds
5%bcond_with gtk3 # GTK+ 3.x instead of 2.x
6%bcond_without ldap # disable e-mail address lookups in LDAP directories
7%bcond_without lightning # disable Sunbird/Lightning calendar
8%bcond_with xulrunner # system xulrunner
9%bcond_with crashreporter # report crashes to crash-stats.mozilla.com
10# - disabled shared_js - https://bugzilla.mozilla.org/show_bug.cgi?id=1039964
11%bcond_with shared_js # shared libmozjs library [broken]
12
13%if 0%{?_enable_debug_packages} != 1
14%undefine crashreporter
15%endif
16
17%define nspr_ver 4.10.6
18%define nss_ver 3.19.2.1
19
20%define xulrunner_ver 2:31.3.0
21
22%if %{without xulrunner}
23# The actual sqlite version (see RHBZ#480989):
24%define sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo ERROR)
25%endif
26
27Summary: Icedove - email client
28Summary(pl.UTF-8): Icedove - klient poczty
29Name: icedove
30Version: 45.8.0
31Release: 0.1
32License: MPL v2.0
33Group: X11/Applications/Mail
34Source0: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/source/thunderbird-%{version}.source.tar.xz
35# Source0-md5: 4e04b1618273f946f00f8ea547578895
36Source2: %{name}-branding.tar.xz
37# Source2-md5: 66753bc5c924d7492b6b5c9bdc3e4b5b
38Source4: %{name}.desktop
39Source5: %{name}.sh
40Patch0: %{name}-branding.patch
41Patch2: %{name}-prefs.patch
42Patch5: %{name}-extensiondir.patch
43Patch6: no-subshell.patch
44Patch8: enable-addons.patch
45Patch9: mozilla-1269171-badalloc.patch
46URL: http://www.pld-linux.org/Packages/Icedove
47BuildRequires: GConf2-devel >= 1.2.1
48BuildRequires: alsa-lib-devel
49BuildRequires: automake
50BuildRequires: bzip2-devel
51BuildRequires: cairo-devel >= 1.10
52BuildRequires: dbus-glib-devel >= 0.60
53BuildRequires: freetype-devel >= 1:2.1.8
54BuildRequires: glib2-devel >= 1:2.20
55BuildRequires: gstreamer0.10-devel
56BuildRequires: gstreamer0.10-plugins-base-devel
57%{!?with_gtk3:BuildRequires: gtk+2-devel >= 2:2.14}
58%{?with_gtk3:BuildRequires: gtk+3-devel >= 3.0.0}
59BuildRequires: hunspell-devel
60BuildRequires: libIDL-devel >= 0.8.0
61BuildRequires: libevent-devel
62BuildRequires: libicu-devel >= 50.1
63BuildRequires: libiw-devel
64# requires libjpeg-turbo implementing at least libjpeg 6b API
65BuildRequires: libjpeg-devel >= 6b
66BuildRequires: libjpeg-turbo-devel
67BuildRequires: libpng-devel >= 1.4.1
68BuildRequires: libstdc++-devel
69BuildRequires: mozldap-devel
70BuildRequires: nspr-devel >= 1:%{nspr_ver}
71BuildRequires: nss-devel >= 1:%{nss_ver}
72BuildRequires: pango-devel >= 1:1.22.0
73BuildRequires: perl-base >= 1:5.6
74BuildRequires: python-virtualenv
75BuildRequires: pkgconfig
76BuildRequires: python >= 1:2.5
77BuildRequires: sed >= 4.0
78BuildRequires: sqlite3-devel >= 3.8.4.2
79BuildRequires: startup-notification-devel >= 0.8
80BuildRequires: libvpx-devel >= 1.3.0
81BuildRequires: virtualenv
82BuildRequires: xorg-lib-libXext-devel
83BuildRequires: xorg-lib-libXinerama-devel
84BuildRequires: xorg-lib-libXt-devel
85BuildRequires: yasm
86BuildRequires: zip
87%if %{with xulrunner}
88BuildRequires: xulrunner-devel >= %{xulrunner_ver}
89BuildRequires: xulrunner-devel < 2:32
90%else
91Requires: glib2 >= 1:2.20
92%{!?with_gtk3:Requires: gtk+2 >= 2:2.14}
93%{?with_gtk3:Requires: gtk+3 >= 3.0.0}
94Requires: libvpx >= 1.3.0
95Requires: myspell-common
96Requires: nspr >= 1:%{nspr_ver}
97Requires: nss >= 1:%{nss_ver}
98Requires: pango >= 1:1.22.0
99Requires: sqlite3 >= %{sqlite_build_version}
100%endif
101Requires(post): mktemp >= 1.5-18
102%if %{with xulrunner}
103%requires_eq_to xulrunner xulrunner-devel
104%endif
105Requires: libjpeg-turbo
106Obsoletes: mozilla-thunderbird
107Obsoletes: mozilla-thunderbird-dictionary-en-US
108Conflicts: icedove-lang-resources < %{version}
109BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
110
111%define filterout_cpp -D_FORTIFY_SOURCE=[0-9]+
112
113# iceweasel/icedove/iceape provide their own versions
114%define _noautoprovfiles %{_libdir}/%{name}/components
115%if %{without xulrunner}
116# we don't want these to satisfy packages depending on xulrunner
117%define _noautoprov libmozalloc.so libmozjs.so libxul.so
118# and as we don't provide them, don't require either
119%define _noautoreq libmozalloc.so libmozjs.so libxul.so
120%endif
121
122%define topdir %{_builddir}/thunderbird-%{version}
123%define objdir %{topdir}/obj-%{_target_cpu}
124
125%description
126Icedove is an open-source, fast and portable email client.
127
128%description -l pl.UTF-8
129Icedove jest mającym otwarte źródła, szybkim i przenośnym klientem
130poczty.
131
132%package addon-lightning
133Summary: An integrated calendar for Icedove
134Summary(pl.UTF-8): Zintegrowany kalendarz dla Icedove
135License: MPL 1.1 or GPL v2+ or LGPL v2.1+
136Group: Applications/Networking
137Requires: %{name} = %{version}-%{release}
138
139%description addon-lightning
140Lightning is an calendar extension to Icedove email client.
141
142%description addon-lightning -l pl.UTF-8
143Lightning to rozszerzenie do klienta poczty Icedove dodające
144funkcjonalność kalendarza.
145
146%prep
147%setup -q -n thunderbird-%{version} -a2
148%patch0 -p1
149%patch2 -p1
150%patch5 -p2
151%patch6 -p1
152%patch8 -p1
153%patch9 -p1
154
155%build
156cat << EOF > .mozconfig
157mk_add_options MOZ_OBJDIR=%{objdir}
158
159export CFLAGS="%{rpmcflags}"
160export CXXFLAGS="%{rpmcflags}"
161
162%if %{with crashreporter}
163export MOZ_DEBUG_SYMBOLS=1
164%endif
165
166# Options for 'configure' (same as command-line options).
167ac_add_options --prefix=%{_prefix}
168ac_add_options --exec-prefix=%{_exec_prefix}
169ac_add_options --bindir=%{_bindir}
170ac_add_options --sbindir=%{_sbindir}
171ac_add_options --sysconfdir=%{_sysconfdir}
172ac_add_options --datadir=%{_datadir}
173ac_add_options --includedir=%{_includedir}
174ac_add_options --libdir=%{_libdir}
175ac_add_options --libexecdir=%{_libexecdir}
176ac_add_options --localstatedir=%{_localstatedir}
177ac_add_options --sharedstatedir=%{_sharedstatedir}
178ac_add_options --mandir=%{_mandir}
179ac_add_options --infodir=%{_infodir}
180%if %{?debug:1}0
181ac_add_options --disable-optimize
182ac_add_options --enable-debug
183ac_add_options --enable-debug-modules
184ac_add_options --enable-debugger-info-modules
185ac_add_options --enable-crash-on-assert
186%else
187ac_add_options --disable-debug
188ac_add_options --disable-debug-modules
189ac_add_options --disable-logging
190ac_add_options --enable-optimize="%{rpmcflags} -Os"
191%endif
192ac_add_options --disable-strip
193ac_add_options --disable-strip-libs
194%if %{with tests}
195ac_add_options --enable-tests
196%else
197ac_add_options --disable-tests
198%endif
199%if %{with lightning}
200ac_add_options --enable-calendar
201%else
202ac_add_options --disable-calendar
203%endif
204%if %{with crashreporter}
205ac_add_options --enable-crashreporter
206%else
207ac_add_options --disable-crashreporter
208%endif
209ac_add_options --disable-elf-dynstr-gc
210ac_add_options --disable-elf-hack
211ac_add_options --disable-gnomeui
212ac_add_options --disable-gnomevfs
213ac_add_options --disable-installer
214ac_add_options --disable-javaxpcom
215ac_add_options --disable-profilesharing
216ac_add_options --disable-updater
217ac_add_options --disable-xterm-updates
218ac_add_options --enable-application=mail
219ac_add_options --enable-crypto
220ac_add_options --enable-default-toolkit=%{?with_gtk3:cairo-gtk3}%{!?with_gtk3:cairo-gtk2}
221ac_add_options --enable-gio
222%if %{with ldap}
223ac_add_options --enable-ldap
224ac_add_options --with-system-ldap
225%else
226ac_add_options --disable-ldap
227%endif
228ac_add_options --enable-libxul
229ac_add_options --enable-pango
230ac_add_options --enable-postscript
231%{?with_shared_js:ac_add_options --enable-shared-js}
232ac_add_options --enable-single-profile
233ac_add_options --enable-startup-notification
234ac_add_options --enable-system-cairo
235ac_add_options --enable-system-hunspell
236ac_add_options --enable-system-sqlite
237ac_add_options --with-branding=icedove/branding
238ac_add_options --with-default-mozilla-five-home=%{_libdir}/%{name}
239ac_add_options --with-distribution-id=org.pld-linux
240%if %{with xulrunner}
241ac_add_options --with-libxul-sdk=$(pkg-config --variable=sdkdir libxul)
242ac_add_options --with-system-libxul
243%endif
244ac_add_options --with-pthreads
245ac_add_options --with-system-bz2
246ac_add_options --with-system-ffi
247ac_add_options --with-system-icu
248ac_add_options --with-system-jpeg
249ac_add_options --with-system-libevent
250ac_add_options --with-system-libvpx
251ac_add_options --with-system-nspr
252ac_add_options --with-system-nss
253ac_add_options --with-system-png
254ac_add_options --with-system-zlib
255EOF
256
257mkdir -p %{objdir}/config
258ln -sf %{topdir}/mozilla/config/*.mk %{objdir}/config
259
260%{__make} -j1 -f client.mk build \
261 STRIP="/bin/true" \
262 MOZ_MAKE_FLAGS="%{?_smp_mflags}" \
263 installdir=%{_libdir}/%{name} \
264 XLIBS="-lX11 -lXt" \
265 CC="%{__cc}" \
266 CXX="%{__cxx}"
267
268%if %{with crashreporter}
269# create debuginfo for crash-stats.mozilla.com
270%{__make} -j1 -C obj-%{_target_cpu} buildsymbols
271%endif
272
273%install
274rm -rf $RPM_BUILD_ROOT
275install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir}/%{name},%{_datadir}/%{name},%{_pixmapsdir},%{_desktopdir}}
276
277cd %{objdir}
278%{__make} -C mail/installer stage-package \
279 DESTDIR=$RPM_BUILD_ROOT \
280 installdir=%{_libdir}/%{name} \
281 PKG_SKIP_STRIP=1
282
283%{__make} -C icedove/branding install \
284 DESTDIR=$RPM_BUILD_ROOT
285
286cp -a dist/icedove/* $RPM_BUILD_ROOT%{_libdir}/%{name}/
287
288%if %{with xulrunner}
289# needed to find mozilla runtime
290ln -s ../xulrunner $RPM_BUILD_ROOT%{_libdir}/%{name}/xulrunner
291%endif
292
293# Enable crash reporter for Thunderbird application
294%if %{with crashreporter}
295%{__sed} -i -e 's/\[Crash Reporter\]/[Crash Reporter]\nEnabled=1/' $RPM_BUILD_ROOT%{_libdir}/%{name}/application.ini
296
297# Add debuginfo for crash-stats.mozilla.com
298install -d $RPM_BUILD_ROOT%{_exec_prefix}/lib/debug%{_libdir}/%{name}
299cp -a dist/%{name}-%{version}.en-US.linux-*.crashreporter-symbols.zip $RPM_BUILD_ROOT%{_prefix}/lib/debug%{_libdir}/%{name}
300%endif
301
302# move arch independant ones to datadir
303mv $RPM_BUILD_ROOT%{_libdir}/%{name}/searchplugins $RPM_BUILD_ROOT%{_datadir}/%{name}/searchplugins
304ln -s ../../share/%{name}/searchplugins $RPM_BUILD_ROOT%{_libdir}/%{name}/searchplugins
305
306# dir for arch independant extensions besides arch dependant extensions
307# see mozilla/xpcom/build/nsXULAppAPI.h
308# XRE_SYS_LOCAL_EXTENSION_PARENT_DIR and XRE_SYS_SHARE_EXTENSION_PARENT_DIR
309install -d $RPM_BUILD_ROOT%{_datadir}/%{name}/extensions
310
311%if %{without xulrunner}
312%{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{name}/dictionaries
313ln -s %{_datadir}/myspell $RPM_BUILD_ROOT%{_libdir}/%{name}/dictionaries
314%endif
315
316%{__sed} -e "s|%MOZAPPDIR%|%{_libdir}/%{name}|" \
317 -e "s|%MOZ_APP_DISPLAYNAME%|Icedove|" \
318 %{topdir}/mozilla/mozilla/build/unix/mozilla.in > $RPM_BUILD_ROOT%{_libdir}/%{name}/icedove
319
320%{__sed} -e 's,@LIBDIR@,%{_libdir},' %{SOURCE5} > $RPM_BUILD_ROOT%{_bindir}/icedove
321ln -s %{name} $RPM_BUILD_ROOT%{_bindir}/thunderbird
322ln -s %{name} $RPM_BUILD_ROOT%{_bindir}/mozilla-thunderbird
323
324# install icons and desktop file
325cp -p %{topdir}/mozilla/icedove/branding/content/icon64.png $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
326for i in 16 32 48 64 128 256; do
327 install -d $RPM_BUILD_ROOT%{_iconsdir}/hicolor/${i}x${i}/apps
328 cp -a %{topdir}/mozilla/icedove/branding/icedove${i}.png \
329 $RPM_BUILD_ROOT%{_iconsdir}/hicolor/${i}x${i}/apps/icedove.png
330done
331install -d $RPM_BUILD_ROOT%{_iconsdir}/hicolor/scalable/apps
332cp -a %{topdir}/mozilla/icedove/branding/icedove.svg $RPM_BUILD_ROOT%{_iconsdir}/hicolor/scalable/apps/icedove.svg
333
334cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
335
336# files created by regxpcom -register in post
337touch $RPM_BUILD_ROOT%{_libdir}/%{name}/components/compreg.dat
338touch $RPM_BUILD_ROOT%{_libdir}/%{name}/components/xpti.dat
339cat << 'EOF' > $RPM_BUILD_ROOT%{_libdir}/%{name}/register
340#!/bin/sh
341umask 022
342# make temporary HOME, as it attempts to touch files in $HOME/.mozilla
343# dangerous if you run this with sudo with keep_env += HOME
344# also TMPDIR could be pointing to sudo user's homedir so we reset that too.
345t=$(mktemp -d)
346%{__rm} -f %{_libdir}/%{name}/components/{compreg,xpti}.dat
347TMPDIR= TMP= HOME=$t %{_libdir}/%{name}/icedove -register
348rm -rf $t
349EOF
350chmod a+rx $RPM_BUILD_ROOT%{_libdir}/%{name}/register
351
352# mozldap
353%{__sed} -i '/lib\(ldap\|ldif\|prldap\)60.so/d' $RPM_BUILD_ROOT%{_libdir}/%{name}/dependentlibs.list
354%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/lib{ldap,ldif,prldap}60.so
355
356%clean
357rm -rf $RPM_BUILD_ROOT
358
359%pretrans
360if [ -d %{_libdir}/%{name}/dictionaries ] && [ ! -L %{_libdir}/%{name}/dictionaries ]; then
361 mv -v %{_libdir}/%{name}/dictionaries{,.rpmsave}
362fi
363for d in chrome defaults icons isp modules res searchplugins; do
364 if [ -d %{_libdir}/%{name}/$d ] && [ ! -L %{_libdir}/%{name}/$d ]; then
365 install -d %{_datadir}/%{name}
366 mv %{_libdir}/%{name}/$d %{_datadir}/%{name}/$d
367 fi
368done
369exit 0
370
371%post
372%{_libdir}/%{name}/register || :
373
374%files
375%defattr(644,root,root,755)
376%attr(755,root,root) %{_bindir}/icedove
377%attr(755,root,root) %{_bindir}/mozilla-thunderbird
378%attr(755,root,root) %{_bindir}/thunderbird
379%dir %{_libdir}/%{name}
380%{_libdir}/%{name}/application.ini
381%{_libdir}/%{name}/blocklist.xml
382%{_libdir}/%{name}/chrome.manifest
383%dir %{_libdir}/%{name}/components
384%{_libdir}/%{name}/components/components.manifest
385%attr(755,root,root) %{_libdir}/%{name}/*.sh
386%attr(755,root,root) %{_libdir}/%{name}/*-bin
387%attr(755,root,root) %{_libdir}/%{name}/icedove
388%attr(755,root,root) %{_libdir}/%{name}/register
389%{_libdir}/%{name}/omni.ja
390%if %{without xulrunner}
391%{_libdir}/%{name}/dependentlibs.list
392%{_libdir}/%{name}/platform.ini
393%attr(755,root,root) %{_libdir}/%{name}/components/*.so
394%attr(755,root,root) %{_libdir}/%{name}/libmozalloc.so
395%{?with_shared_js:%attr(755,root,root) %{_libdir}/%{name}/libmozjs.so}
396%attr(755,root,root) %{_libdir}/%{name}/libxul.so
397%attr(755,root,root) %{_libdir}/%{name}/plugin-container
398%endif
399
400# symlinks
401%{_libdir}/%{name}/chrome
402%{_libdir}/%{name}/defaults
403%{_libdir}/%{name}/isp
404%{_libdir}/%{name}/searchplugins
405%if %{with xulrunner}
406%{_libdir}/%{name}/xulrunner
407%else
408%{_libdir}/%{name}/dictionaries
409%endif
410
411%{_pixmapsdir}/icedove.png
412%{_desktopdir}/icedove.desktop
413
414%dir %{_datadir}/%{name}
415%dir %{_libdir}/%{name}/distribution
416%dir %{_libdir}/%{name}/distribution/extensions
417%{_datadir}/%{name}/extensions
418%{_datadir}/%{name}/searchplugins
419
420%if %{with crashreporter}
421%attr(755,root,root) %{_libdir}/%{name}/crashreporter
422%{_libdir}/%{name}/crashreporter.ini
423%{_libdir}/%{name}/Throbber-small.gif
424%endif
425
426%dir %{_libdir}/%{name}/extensions
427%{_libdir}/%{name}/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}
428
429# files created by regxpcom -register
430%ghost %{_libdir}/%{name}/components/compreg.dat
431%ghost %{_libdir}/%{name}/components/xpti.dat
432
433%{_iconsdir}/hicolor/*/apps/icedove.*
434
435%if %{with lightning}
436%files addon-lightning
437%defattr(644,root,root,755)
438%dir %{_libdir}/%{name}/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}
439%{_libdir}/%{name}/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini
440%{_libdir}/%{name}/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar
441%{_libdir}/%{name}/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest
442%{_libdir}/%{name}/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults
443%{_libdir}/%{name}/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf
444%dir %{_libdir}/%{name}/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components
445%attr(755,root,root) %{_libdir}/%{name}/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/*.so
446%{_libdir}/%{name}/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/*.js
447%{_libdir}/%{name}/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/*manifest
448%{_libdir}/%{name}/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/*.xpt
449%{_libdir}/%{name}/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules
450%{_libdir}/%{name}/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js
451%dir %{_libdir}/%{name}/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones
452%{_libdir}/%{name}/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json
453%endif
This page took 0.038572 seconds and 4 git commands to generate.