/[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 445230 - (show annotations) (download)
Thu Jun 20 11:39:10 2013 UTC (10 years, 9 months ago) by tv
File size: 14288 byte(s)
fix installing icons
1 #
2 # WARNING, READ FIRST:
3 #
4 # This is a special package that needs special treatment. Due to the amount of
5 # security updates it needs, it's common to ship new upstream versions instead of patching.
6 # That means this package MUST be BUILDABLE for stable official releases.
7 # This also means only STABLE upstream releases, NO betas.
8 # This is a discussed topic. Please, do not flame it again.
9
10 # Stay on ESR for stable releases and for cauldron before mageia 3.
11 # /!\ Do not update more than FF 17 for mga3. /!\
12
13 %define major 21
14 %define ff_epoch 0
15 # (tpg) set version HERE !!!
16 #define extra esr
17 %define extra %nil
18 %define realver %{version}%extra
19 %define firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
20
21 # (tpg) MOZILLA_FIVE_HOME
22 %define mozillalibdir %{_libdir}/%{name}-%{version}
23 %define pluginsdir %{_libdir}/mozilla/plugins
24
25 # libxul.so is provided by libxulrunnner2.0.
26 %define _requires_exceptions libxul.so
27
28 # this seems fragile, so require the exact version or later (#58754)
29 %define sqlite3_version %(pkg-config --modversion sqlite3 &>/dev/null && pkg-config --modversion sqlite3 2>/dev/null || echo 0)
30 %define nss_version %(pkg-config --modversion nss &>/dev/null && pkg-config --modversion nss 2>/dev/null || echo 0)
31 %define nspr_version %(pkg-config --modversion nspr &>/dev/null && pkg-config --modversion nspr 2>/dev/null |sed -e 's!\.0!!' || echo 0)
32
33 %define _use_syshunspell 1
34
35 %define release %mkrel 2
36
37 %define update_channel %{extra}%major
38
39 Summary: Next generation web browser
40 Name: firefox
41 Version: %{major}.0
42 Epoch: %{ff_epoch}
43 Release: %{release}
44 License: MPLv1+
45 Group: Networking/WWW
46 Url: http://www.mozilla.org/firefox/organizations/
47 Source0: ftp://ftp.mozilla.org/pub/mozilla.org/%{name}/releases/%{realver}/source/%{name}-%{realver}.source.tar.bz2
48 Source4: %{name}.desktop
49 Source8: %{name}-searchengines-duckduckgo.xml
50 Source9: kde.js
51 Patch1: firefox-6.0-lang.patch
52 Patch2: firefox-vendor.patch
53 Patch3: mozilla-firefox-1.5.0.6-systemproxy.patch
54 Patch4: firefox-21.0-nss-binary.patch
55 # (OpenSuse) add patch to make firefox always use /usr/bin/firefox when "make firefox
56 # the default web browser" is used fix mdv bug#58784
57 Patch5: firefox-21.0-appname.patch
58 Patch6: firefox-7.0-fix-str-fmt.patch
59 Patch7: mozilla-firefox-run-mozilla.patch
60 Patch8: firefox-disable-check-default-browser.patch
61 Patch9: firefox-5.0-asciidel.patch
62 Patch10: firefox-3.5.3-default-mail-handler.patch
63 # Patches for kde integration of FF
64 Patch11: firefox-kde.patch
65 Patch12: mozilla-kde.patch
66 Patch13: firefox-13-fix-nspr-include.patch
67 Patch14: firefox-21-fix-cairo-build.patch
68 Patch37: firefox-17.0-nss-version.patch
69 # (cjw) build against system ogg libs
70 Patch38: firefox-21.0-system-ogg.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.13.2
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.13
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: pkgconfig(libproxy-1.0)
104 BuildRequires: pkgconfig(alsa)
105 BuildRequires: wget
106 BuildRequires: libnotify-devel
107 BuildRequires: cairo-devel >= 1.10
108 BuildRequires: mesagl-devel
109 BuildRequires: libvpx-devel
110 BuildRequires: autoconf2.1
111 BuildRequires: libiw-devel
112 BuildRequires: python-virtualenv
113 BuildRequires: gstreamer0.10-devel
114 BuildRequires: libgstreamer0.10-plugins-base-devel
115 BuildRequires: pkgconfig(ogg)
116 BuildRequires: pkgconfig(vorbis)
117 BuildRequires: pkgconfig(theoradec)
118 BuildRequires: pkgconfig(opus)
119
120 Provides: %{name} = %{epoch}:%{version}
121 Provides: mozilla-firefox = %{epoch}:%{version}-%{release}
122 Provides: webclient
123
124 Requires: %{mklibname sqlite3_ 0} >= %{sqlite3_version}
125 Requires: %{mklibname nss 3} >= 2:%{nss_version}
126 Requires: %{mklibname nspr 4} >= 2:%{nspr_version}
127 Requires: indexhtml
128 Requires: xdg-utils
129 # fixes bug #42096
130 Requires: mailcap
131 Suggests: hunspell-en
132 Suggests: %{_lib}canberra0
133 Suggests: %{_lib}cups2
134 Obsoletes: firefox-ext-weave-sync
135 Obsoletes: firefox-beta < 18
136
137 %description
138 The award-winning Web browser is now faster, more secure, and fully customizable
139 to your online life. With Firefox(R), we've added powerful new features that
140 make your online experience even better. It is an 'open source' product which is
141 freely available, and is acquiring a growing proportion of international web
142 browser usage.
143
144 Firefox claims to offer a more secure web browsing experience than other products,
145 with better protection against spyware and other Internet-based security threats.
146 It includes all the standard features of a modern web browser, like Internet
147 searching, tracking recently visited sites, setting up shortcuts to favourite
148 sites, customising the software behaviour and so on. Firefox also includes
149 features like 'tabbed browsing' (opening several web sites as sections within the
150 same window) and methods for controlling pop-up windows, cookies and downloaded
151 files.
152
153 %package devel
154 Summary: Development files for %{name}
155 Group: Development/Other
156 Obsoletes: firefox-beta-devel < 18
157
158 %description devel
159 Files and macros mainly for building Firefox extensions.
160
161 %prep
162 %if 0%{?extra}
163 %setup -qn mozilla-%update_channel
164 %else
165 %setup -qn mozilla-release
166 %endif
167 %patch1 -p1 -b .lang
168 %patch2 -p1 -b .vendor
169 #patch3 -p1 -b .systemproxy
170 %patch4 -p0 -b .nss
171 %patch5 -p1 -b .appname
172 # It was disabled because firefox3 hangs when using soundwrapper
173 #patch7 -p1
174 %patch8 -p1 -b .disable-software-update
175 %patch9 -p1 -b .ascii
176 %patch10 -p1 -b .default-mail-handler
177 %patch14 -p1
178 ## KDE INTEGRATION
179 #patch11 -p1 -b .kde
180 #patch12 -p1 -b .kdemoz
181
182
183 %patch37 -p0
184 %patch38 -p1
185
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-updater
220 ac_add_options --disable-tests
221 ac_add_options --disable-debug
222 #ac_add_options --enable-chrome-format=jar
223 #ac_add_options --enable-update-channel=beta
224 ac_add_options --enable-official-branding
225 ac_add_options --enable-libproxy
226 ac_add_options --with-system-png
227 ac_add_options --with-system-jpeg
228 ac_add_options --enable-system-cairo
229 ac_add_options --enable-system-sqlite
230 ac_add_options --enable-startup-notification
231 ac_add_options --enable-xinerama
232 ac_add_options --with-distribution-id=org.mageia
233 ac_add_options --disable-crashreporter
234 ac_add_options --enable-update-channel=%{update_channel}
235 ac_add_options --enable-gstreamer
236 %ifarch %arm
237 %if "%{_target_cpu}" != "armv7l"
238 ac_add_options --disable-methodjit
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 ac_add_options --with-system-ogg
248 ac_add_options --enable-opus
249 ac_add_options --disable-webrtc
250
251 EOF
252
253 %__perl -p -i -e 's|\-0|\-9|g' config/make-jars.pl
254 %ifarch %arm
255 export CFLAGS="-D__ARM_PCS $(echo %{optflags})"
256 export CXXFLAGS="$CFLAGS"
257 %endif
258 export LDFLAGS="%ldflags"
259 make -f client.mk build
260
261 %install
262 rm -rf %{buildroot}
263
264 make -C %{_builddir}/obj/browser/installer STRIP=/bin/true MOZ_PKG_FATAL_WARNINGS=0
265
266 # Copy files to buildroot
267 %{__mkdir_p} %{buildroot}%{mozillalibdir}
268 cp -rf %{_builddir}/obj/dist/firefox/* %{buildroot}%{mozillalibdir}
269
270 %{__mkdir_p} %{buildroot}%{_bindir}
271 ln -sf %{mozillalibdir}/firefox %{buildroot}%{_bindir}/firefox
272 pushd %{buildroot}%{_bindir}
273 ln -sf firefox mozilla-firefox
274 popd
275 mkdir -p %{buildroot}%{mozillalibdir}/defaults/preferences/
276 install -m 644 %{SOURCE9} %{buildroot}%{mozillalibdir}/defaults/preferences/kde.js
277
278 # Create and own %_libdir/mozilla/plugins & firefox extensions directories
279 %{__mkdir_p} %{buildroot}%{pluginsdir}
280 %{__mkdir_p} %{buildroot}%{_libdir}/mozilla/extensions/%{firefox_appid}
281 %{__mkdir_p} %{buildroot}%{_datadir}/mozilla/extensions/%{firefox_appid}
282
283 # (tpg) desktop entry
284 %{__mkdir_p} %{buildroot}%{_datadir}/applications
285 install -m 644 %{SOURCE4} %{buildroot}%{_datadir}/applications/%{name}.desktop
286
287 # (tpg) icons
288 %{__cp} %{buildroot}%{mozillalibdir}/browser/chrome/icons/default/default16.png %{buildroot}/%{mozillalibdir}/browser/icons/
289 for i in 16 22 24 32 48 256; do
290 # (cg) Not all icon sizes are installed with make install, so just redo it here.
291 %{__install} -m 644 browser/branding/official/default$i.png %{buildroot}%{mozillalibdir}/chrome/icons/default/default$i.png
292 %{__mkdir_p} %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps
293 ln -sf %{mozillalibdir}/browser/chrome/icons/default/default$i.png %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps/%{name}.png ;
294 done
295 %{__mkdir_p} %{buildroot}{%{_liconsdir},%{_iconsdir},%{_miconsdir}}
296 ln -sf %{mozillalibdir}/browser/chrome/icons/default/default48.png %{buildroot}%{_liconsdir}/%{name}.png
297 ln -sf %{mozillalibdir}/browser/chrome/icons/default/default32.png %{buildroot}%{_iconsdir}/%{name}.png
298 ln -sf %{mozillalibdir}/browser/chrome/icons/default/default16.png %{buildroot}%{_miconsdir}/%{name}.png
299
300 # exclusions
301 rm -f %{buildroot}%{mozillalibdir}/README.txt
302 rm -f %{buildroot}%{mozillalibdir}/removed-files
303 rm -f %{buildroot}%{mozillalibdir}/precomplete
304
305 # this file is only used when creating a new user profile
306 install -D -m644 browser/app/profile/prefs.js %{buildroot}%{mozillalibdir}/defaults/profile/prefs.js
307 cat << EOF >> %{buildroot}%{mozillalibdir}/defaults/profile/prefs.js
308 user_pref("browser.EULA.override", true);
309 user_pref("browser.shell.checkDefaultBrowser", false);
310 user_pref("browser.startup.homepage", "file:///usr/share/indexhtml/index.html");
311 user_pref("app.update.auto", false);
312 user_pref("app.update.enabled", false);
313 user_pref("app.update.autoInstallEnabled", false);
314 user_pref("browser.showQuitWarning", true);
315 EOF
316
317 # display icon for Firefox button
318 %{__mkdir_p} %{buildroot}%{mozillalibdir}/defaults/profile/chrome
319 cat << EOF > %{buildroot}%{mozillalibdir}/defaults/profile/chrome/userChrome.css
320 #appmenu-toolbar-button {
321 list-style-image: url("chrome://branding/content/icon16.png");
322 }
323 EOF
324
325 # files in this directory are read on every startup, and can change/add
326 # preferences for existing profiles
327 # extensions.autoDisableScopes is a new preference added in firefox 8
328 # it defines "scopes" where newly installed addons are disabled by default
329 # this is an additive bit field, and the value defaults to 15 (1+2+4+8)
330 # we need to remove system scope (8) from it so language packs and other addons
331 # which are installed systemwide won't get marked as 3rd party and disabled
332 # documentation: http://kb.mozillazine.org/About:config_entries#Extensions.
333 # or in toolkit/mozapps/extensions/AddonManager.jsm
334 # we also need to disable the "disable addon selection dialog"
335 cat << EOF > %{buildroot}%{mozillalibdir}/defaults/preferences/mga.js
336 pref("extensions.autoDisableScopes", 0);
337 pref("extensions.shownSelectionUI", true);
338 EOF
339 # FIXME: Add it back in mga.js when this search engine will be used by default.
340 # user_pref("browser.search.selectedEngine","duckduckgo.com");
341
342 # use the system myspell dictionaries
343 rm -fr %{buildroot}%{mozillalibdir}/dictionaries
344 ln -s %{_datadir}/hunspell %{buildroot}%{mozillalibdir}/dictionaries
345
346 # (lm) touch and %ghost bookmarks.html to a proper uninstall
347 touch %{buildroot}%{mozillalibdir}/defaults/profile/bookmarks.html
348
349 %find_lang %{name}
350
351 mkdir -p %{buildroot}%{_sys_macros_dir}
352 cat <<FIN >%{buildroot}%{_sys_macros_dir}/%{name}.macros
353 # Macros from %{name} package
354 %%firefox_major %{version}
355 %%firefox_epoch %{ff_epoch}
356 %%firefox_version %{version}
357 %%firefox_mozillapath %{mozillalibdir}
358 %%firefox_pluginsdir %{pluginsdir}
359 %%firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
360 %%firefox_extdir %%(if [ "%%_target_cpu" = "noarch" ]; then echo %%{_datadir}/mozilla/extensions/%%{firefox_appid}; else echo %%{_libdir}/mozilla/extensions/%%{firefox_appid}; fi)
361 FIN
362 cp -f %{SOURCE8} %{buildroot}%{mozillalibdir}/searchplugins/duckduckgo.xml
363
364 %pre
365 if [ -d %{mozillalibdir}/dictionaries ]; then
366 rm -fr %{mozillalibdir}/dictionaries
367 fi
368
369 %post
370 if [ ! -r /etc/sysconfig/oem ]; then
371 case `grep META_CLASS /etc/sysconfig/system` in
372 *powerpack) bookmark="mozilla-powerpack.html" ;;
373 *desktop) bookmark="mozilla-one.html";;
374 *) bookmark="mozilla-download.html";;
375 esac
376 ln -s -f ../../../../share/mga/bookmarks/mozilla/$bookmark %{mozillalibdir}/defaults/profile/bookmarks.html
377 fi
378
379 %files -f %{name}.lang
380 %{_bindir}/%{name}
381 %{_bindir}/mozilla-firefox
382 %{_iconsdir}/hicolor/*/apps/*.png
383 %{_miconsdir}/%{name}.png
384 %{_iconsdir}/%{name}.png
385 %{_liconsdir}/%{name}.png
386 %{_datadir}/applications/*.desktop
387 %{_libdir}/%{name}-%{version}*
388 %ghost %{mozillalibdir}/defaults/profile/bookmarks.html
389 %dir %{_libdir}/mozilla
390 %dir %{pluginsdir}
391 %dir %{_libdir}/mozilla/extensions/%{firefox_appid}
392 %dir %{_datadir}/mozilla/extensions/%{firefox_appid}
393
394 %files devel
395 %{_sys_macros_dir}/%{name}.macros

  ViewVC Help
Powered by ViewVC 1.1.30