/[packages]/cauldron/firefox/current/SPECS/firefox.spec
ViewVC logotype

Contents of /cauldron/firefox/current/SPECS/firefox.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 256939 - (show annotations) (download)
Thu Jun 7 11:03:20 2012 UTC (11 years, 9 months ago) by dmorgan
File size: 13685 byte(s)
Go back to FF 13.0 and add KDE integration support back
1 #
2 # WARNING, READ FIRST:
3 #
4 # PLEASE svn cp SOURCES FROM xulrunner SOURCES INSTEAD
5 # OF COMMITING AGAIN THE TARBALL
6 #
7 # This is a special package that needs special treatment. Due to the amount of
8 # security updates it needs, it's common to ship new upstream versions instead of patching.
9 # That means this package MUST be BUILDABLE for stable official releases.
10 # This also means only STABLE upstream releases, NO betas.
11 # This is a discussed topic. Please, do not flame it again.
12
13 # Stay on ESR for stable releases and for cauldron before mageia2 .
14 %define major 13.0
15 %define ff_epoch 0
16 # (tpg) set version HERE !!!
17 %define realver %{major}
18 %define firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
19
20 # (tpg) MOZILLA_FIVE_HOME
21 %define mozillalibdir %{_libdir}/%{name}-%{major}
22 %define pluginsdir %{_libdir}/mozilla/plugins
23
24 # libxul.so is provided by libxulrunnner2.0.
25 %define _requires_exceptions libxul.so
26
27 # this seems fragile, so require the exact version or later (#58754)
28 %define sqlite3_version %(pkg-config --modversion sqlite3 &>/dev/null && pkg-config --modversion sqlite3 2>/dev/null || echo 0)
29 %define nss_version %(pkg-config --modversion nss &>/dev/null && pkg-config --modversion nss 2>/dev/null || echo 0)
30 %define nspr_version %(pkg-config --modversion nspr &>/dev/null && pkg-config --modversion nspr 2>/dev/null |sed -e 's!\.0!!' || echo 0)
31
32 %define _use_syshunspell 1
33
34 %define release %mkrel 5
35
36 %define channel beta
37
38 Summary: Next generation web browser
39 Name: firefox
40 Version: %{major}
41 Epoch: %{ff_epoch}
42 Release: %{release}
43 License: MPLv1+
44 Group: Networking/WWW
45 Url: http://www.mozilla.com/firefox/
46 %if 0%{?prel}
47 Source0: ftp://ftp.mozilla.org/pub/mozilla.org/%{name}/releases/%{realver}/source/%{name}-%{realver}%prel.source.tar.bz2
48 %else
49 Source0: ftp://ftp.mozilla.org/pub/mozilla.org/%{name}/releases/%{realver}/source/%{name}-%{realver}.source.tar.bz2
50 %endif
51 Source4: %{name}.desktop
52 Source9: kde.js
53 Patch1: firefox-6.0-lang.patch
54 Patch2: firefox-vendor.patch
55 Patch3: mozilla-firefox-1.5.0.6-systemproxy.patch
56 Patch4: firefox-10.0-nss-binary.patch
57 # (OpenSuse) add patch to make firefox always use /usr/bin/firefox when "make firefox
58 # the default web browser" is used fix mdv bug#58784
59 Patch5: firefox-6.0-appname.patch
60 Patch6: firefox-7.0-fix-str-fmt.patch
61 Patch7: mozilla-firefox-run-mozilla.patch
62 Patch8: firefox-disable-check-default-browser.patch
63 Patch10: firefox-3.5.3-default-mail-handler.patch
64 # Patches for kde integration of FF
65 Patch11: firefox-kde.patch
66 Patch12: mozilla-kde.patch
67 Patch13: firefox-13-fix-nspr-include.patch
68 Patch14: firefox-13-fix-cairo-build.patch
69 Patch34: xulrunner_nojit.patch
70 Patch35: firefox-5.0-asciidel.patch
71 BuildRequires: gtk+2-devel
72 BuildRequires: unzip
73 BuildRequires: zip
74 BuildRequires: libxinerama-devel
75 BuildRequires: libxscrnsaver-devel
76 BuildRequires: libjpeg-devel
77 BuildRequires: libpng-devel >= 2:1.4
78 BuildRequires: zlib-devel
79 BuildRequires: glib2-devel
80 BuildRequires: libIDL2-devel
81 BuildRequires: makedepend
82 BuildRequires: nss-devel >= 2:3.12.10
83 BuildRequires: nss-static-devel
84 BuildRequires: nspr-devel >= 2:4.8.9
85 BuildRequires: startup-notification-devel
86 BuildRequires: dbus-glib-devel
87 BuildRequires: python
88 BuildRequires: sqlite3-devel >= 3.7.7.1
89 %ifnarch %arm %mips
90 BuildRequires: valgrind
91 BuildRequires: java-rpmbuild
92 BuildRequires: yasm >= 1.0.1
93 %endif
94 %ifarch %arm
95 BuildRequires: libffi-devel
96 %endif
97 BuildRequires: rootcerts >= 1:20110830.00
98 BuildRequires: libxt-devel
99 %if %_use_syshunspell
100 BuildRequires: hunspell-devel
101 %endif
102 BuildRequires: doxygen
103 # BuildRequires: xulrunner-devel >= %xulrunner_version%{?prel:-0.%prel}
104 BuildRequires: pkgconfig(libproxy-1.0)
105 BuildRequires: pkgconfig(alsa)
106 BuildRequires: wget
107 BuildRequires: libnotify-devel
108 BuildRequires: cairo-devel >= 1.10
109 BuildRequires: mesagl-devel
110 BuildRequires: libvpx-devel
111 BuildRequires: autoconf2.1
112 BuildRequires: libiw-devel
113
114 %if 0%{?prel}
115 Provides: %{name} = %{epoch}:%{realver}-0.%{prel}
116 %else
117 Provides: %{name} = %{epoch}:%{realver}
118 %endif
119 Provides: mozilla-firefox = %{epoch}:%{version}-%{release}
120 Provides: webclient
121
122 Requires: %{mklibname sqlite3_ 0} >= %{sqlite3_version}
123 Requires: %{mklibname nss 3} >= 2:%{nss_version}
124 Requires: %{mklibname nspr 4} >= 2:%{nspr_version}
125 Requires: indexhtml
126 Requires: xdg-utils
127 # fixes bug #42096
128 Requires: mailcap
129 Suggests: hunspell-en
130 Suggests: %{_lib}canberra0
131 Suggests: %{_lib}cups2
132 Obsoletes: firefox-ext-weave-sync
133 Obsoletes: firefox-beta < 11
134
135 %description
136 The award-winning Web browser is now faster, more secure, and fully customizable
137 to your online life. With Firefox(R), we've added powerful new features that
138 make your online experience even better. It is an 'open source' product which is
139 freely available, and is acquiring a growing proportion of international web
140 browser usage.
141
142 Firefox claims to offer a more secure web browsing experience than other products,
143 with better protection against spyware and other Internet-based security threats.
144 It includes all the standard features of a modern web browser, like Internet
145 searching, tracking recently visited sites, setting up shortcuts to favourite
146 sites, customising the software behaviour and so on. Firefox also includes
147 features like 'tabbed browsing' (opening several web sites as sections within the
148 same window) and methods for controlling pop-up windows, cookies and downloaded
149 files.
150
151 %package devel
152 Summary: Development files for %{name}
153 Group: Development/Other
154 Obsoletes: firefox-beta-devel < 11
155
156 %description devel
157 Files and macros mainly for building Firefox extensions.
158
159 %prep
160 %setup -qn mozilla-%channel
161 %patch1 -p1 -b .lang
162 %patch2 -p1 -b .vendor
163 #patch3 -p1 -b .systemproxy
164 %patch4 -p0 -b .nss
165 %patch5 -p1 -b .appname
166 # It was disabled because firefox3 hangs when using soundwrapper
167 #patch7 -p1
168 %patch8 -p1 -b .disable-software-update
169 %patch10 -p1 -b .default-mail-handler
170 #%patch13 -p0
171 %patch14 -p1
172
173 ## KDE INTEGRATION
174 # Disable kde integration , need refactoring
175 %patch11 -p1 -b .kde
176 %patch12 -p1 -b .kdemoz
177 # install kde.js
178 install -m 644 %{SOURCE9} browser/app/profile/kde.js
179
180 %ifarch %arm
181 %if "%{_target_cpu}" != "armv7l"
182 %patch34 -p1
183 %endif
184 %endif
185 %patch35 -p1
186 pushd js/src
187 autoconf-2.13
188 popd
189 autoconf-2.13
190
191 # needed to regenerate certdata.c
192 pushd security/nss/lib/ckfw/builtins
193 perl ./certdata.perl < /etc/pki/tls/mozilla/certdata.txt
194 popd
195
196 %build
197 export MOZCONFIG=`pwd`/mozconfig
198 cat << EOF > $MOZCONFIG
199 mk_add_options MOZILLA_OFFICIAL=1
200 mk_add_options BUILD_OFFICIAL=1
201 mk_add_options MOZ_MAKE_FLAGS="%{_smp_mflags}"
202 mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj
203 ac_add_options --host=%{_host}
204 ac_add_options --target=%{_target_platform}
205 ac_add_options --enable-optimize="%{optflags}"
206 ac_add_options --prefix="%{_prefix}"
207 ac_add_options --libdir="%{_libdir}"
208 ac_add_options --sysconfdir="%{_sysconfdir}"
209 ac_add_options --mandir="%{_mandir}"
210 ac_add_options --includedir="%{_includedir}"
211 ac_add_options --datadir="%{_datadir}"
212 ac_add_options --with-system-nspr
213 ac_add_options --with-system-nss
214 ac_add_options --with-system-zlib
215 ac_add_options --with-system-libvpx
216 ac_add_options --enable-webm
217 ac_add_options --enable-gio
218 ac_add_options --disable-gnomevfs
219 ac_add_options --disable-installer
220 ac_add_options --disable-updater
221 ac_add_options --disable-tests
222 ac_add_options --disable-debug
223 #ac_add_options --enable-chrome-format=jar
224 #ac_add_options --enable-update-channel=beta
225 ac_add_options --enable-official-branding
226 ac_add_options --enable-libproxy
227 ac_add_options --with-system-png
228 ac_add_options --with-system-jpeg
229 ac_add_options --enable-system-cairo
230 ac_add_options --enable-system-sqlite
231 ac_add_options --enable-startup-notification
232 ac_add_options --enable-xinerama
233 ac_add_options --with-distribution-id=org.mageia
234 ac_add_options --disable-crashreporter
235 %ifarch %arm
236 %if "%{_target_cpu}" != "armv7l"
237 ac_add_options --disable-methodjit
238 ac_add_options --disable-tracejit
239 %endif
240 ac_add_options --enable-system-ffi
241 %endif
242 %ifnarch %arm %mips
243 ac_add_options --with-valgrind
244 ac_add_options --with-java-include-path=%{java_home}/include
245 ac_add_options --with-java-bin-path=%{java_home}/bin
246 %endif
247
248 EOF
249
250 %__perl -p -i -e 's|\-0|\-9|g' config/make-jars.pl
251
252 export LDFLAGS="%ldflags"
253 make -f client.mk build
254
255 %install
256 rm -rf %{buildroot}
257
258 make -C %{_builddir}/obj/browser/installer STRIP=/bin/true
259
260 # Copy files to buildroot
261 %{__mkdir_p} %{buildroot}%{mozillalibdir}
262 cp -rf %{_builddir}/obj/dist/firefox/* %{buildroot}%{mozillalibdir}
263
264 %{__mkdir_p} %{buildroot}%{_bindir}
265 ln -sf %{mozillalibdir}/firefox %{buildroot}%{_bindir}/firefox
266 pushd %{buildroot}%{_bindir}
267 ln -sf firefox mozilla-firefox
268 popd
269
270 # Create and own %_libdir/mozilla/plugins & firefox extensions directories
271 %{__mkdir_p} %{buildroot}%{pluginsdir}
272 %{__mkdir_p} %{buildroot}%{_libdir}/mozilla/extensions/%{firefox_appid}
273 %{__mkdir_p} %{buildroot}%{_datadir}/mozilla/extensions/%{firefox_appid}
274
275 # (tpg) desktop entry
276 %{__mkdir_p} %{buildroot}%{_datadir}/applications
277 install -m 644 %{SOURCE4} %{buildroot}%{_datadir}/applications/%{name}.desktop
278
279 # (tpg) icons
280 %{__cp} %{buildroot}%{mozillalibdir}/chrome/icons/default/default16.png %{buildroot}/%{mozillalibdir}/icons/
281 for i in 16 22 24 32 48 256; do
282 # (cg) Not all icon sizes are installed with make install, so just redo it here.
283 %{__install} -m 644 browser/branding/official/default$i.png %{buildroot}%{mozillalibdir}/chrome/icons/default/default$i.png
284 %{__mkdir_p} %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps
285 ln -sf %{mozillalibdir}/chrome/icons/default/default$i.png %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps/%{name}.png ;
286 done
287 %{__mkdir_p} %{buildroot}{%{_liconsdir},%{_iconsdir},%{_miconsdir}}
288 ln -sf %{mozillalibdir}/chrome/icons/default/default48.png %{buildroot}%{_liconsdir}/%{name}.png
289 ln -sf %{mozillalibdir}/chrome/icons/default/default32.png %{buildroot}%{_iconsdir}/%{name}.png
290 ln -sf %{mozillalibdir}/chrome/icons/default/default16.png %{buildroot}%{_miconsdir}/%{name}.png
291
292 # exclusions
293 rm -f %{buildroot}%{mozillalibdir}/README.txt
294 rm -f %{buildroot}%{mozillalibdir}/removed-files
295 rm -f %{buildroot}%{mozillalibdir}/precomplete
296
297 # this file is only used when creating a new user profile
298 install -D -m644 browser/app/profile/prefs.js %{buildroot}%{mozillalibdir}/defaults/profile/prefs.js
299 cat << EOF >> %{buildroot}%{mozillalibdir}/defaults/profile/prefs.js
300 user_pref("browser.EULA.override", true);
301 user_pref("browser.shell.checkDefaultBrowser", false);
302 user_pref("browser.startup.homepage", "file:///usr/share/indexhtml/index.html");
303 user_pref("app.update.auto", false);
304 user_pref("app.update.enabled", false);
305 user_pref("app.update.autoInstallEnabled", false);
306 user_pref("browser.showQuitWarning", true);
307 EOF
308
309 # display icon for Firefox button
310 %{__mkdir_p} %{buildroot}%{mozillalibdir}/defaults/profile/chrome
311 cat << EOF > %{buildroot}%{mozillalibdir}/defaults/profile/chrome/userChrome.css
312 #appmenu-toolbar-button {
313 list-style-image: url("chrome://branding/content/icon16.png");
314 }
315 EOF
316
317 # files in this directory are read on every startup, and can change/add
318 # preferences for existing profiles
319 # extensions.autoDisableScopes is a new preference added in firefox 8
320 # it defines "scopes" where newly installed addons are disabled by default
321 # this is an additive bit field, and the value defaults to 15 (1+2+4+8)
322 # we need to remove system scope (8) from it so language packs and other addons
323 # which are installed systemwide won't get marked as 3rd party and disabled
324 # documentation: http://kb.mozillazine.org/About:config_entries#Extensions.
325 # or in toolkit/mozapps/extensions/AddonManager.jsm
326 # we also need to disable the "disable addon selection dialog"
327 cat << EOF > %{buildroot}%{mozillalibdir}/defaults/pref/mga.js
328 pref("extensions.autoDisableScopes", 0);
329 pref("extensions.shownSelectionUI", true);
330 EOF
331
332 # use the system myspell dictionaries
333 rm -fr %{buildroot}%{mozillalibdir}/dictionaries
334 ln -s %{_datadir}/hunspell %{buildroot}%{mozillalibdir}/dictionaries
335
336 # (lm) touch and %ghost bookmarks.html to a proper uninstall
337 touch %{buildroot}%{mozillalibdir}/defaults/profile/bookmarks.html
338
339 %find_lang %{name}
340
341 mkdir -p %{buildroot}%{_sys_macros_dir}
342 cat <<FIN >%{buildroot}%{_sys_macros_dir}/%{name}.macros
343 # Macros from %{name} package
344 %%firefox_major %{major}
345 %%firefox_epoch %{ff_epoch}
346 %%firefox_version %{major}%{?prel:-0.%prel}
347 %%firefox_mozillapath %{mozillalibdir}
348 %%firefox_pluginsdir %{pluginsdir}
349 %%firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
350 %%firefox_extdir %%(if [ "%%_target_cpu" = "noarch" ]; then echo %%{_datadir}/mozilla/extensions/%%{firefox_appid}; else echo %%{_libdir}/mozilla/extensions/%%{firefox_appid}; fi)
351 FIN
352
353 %pre
354 if [ -d %{mozillalibdir}/dictionaries ]; then
355 rm -fr %{mozillalibdir}/dictionaries
356 fi
357
358 %post
359 if [ ! -r /etc/sysconfig/oem ]; then
360 case `grep META_CLASS /etc/sysconfig/system` in
361 *powerpack) bookmark="mozilla-powerpack.html" ;;
362 *desktop) bookmark="mozilla-one.html";;
363 *) bookmark="mozilla-download.html";;
364 esac
365 ln -s -f ../../../../share/mga/bookmarks/mozilla/$bookmark %{mozillalibdir}/defaults/profile/bookmarks.html
366 fi
367
368 %files -f %{name}.lang
369 %{_bindir}/%{name}
370 %{_bindir}/mozilla-firefox
371 %{_iconsdir}/hicolor/*/apps/*.png
372 %{_miconsdir}/%{name}.png
373 %{_iconsdir}/%{name}.png
374 %{_liconsdir}/%{name}.png
375 %{_datadir}/applications/*.desktop
376 %{_libdir}/%{name}-%{major}*
377 %ghost %{mozillalibdir}/defaults/profile/bookmarks.html
378 %dir %{_libdir}/mozilla
379 %dir %{pluginsdir}
380 %dir %{_libdir}/mozilla/extensions/%{firefox_appid}
381 %dir %{_datadir}/mozilla/extensions/%{firefox_appid}
382
383 %files devel
384 %{_sys_macros_dir}/%{name}.macros

  ViewVC Help
Powered by ViewVC 1.1.30