X-Git-Url: http://git.pld-linux.org/?p=packages%2Ffirefox.git;a=blobdiff_plain;f=mozilla-firefox.spec;h=6df3efb1e3ad755b57ee1d80cb88d3a7d89b3ed2;hp=aa6b01b02e539d351e7f488684219b2f469b6345;hb=d63aebcf9508f7fc236ab606af7b233337e539b7;hpb=2620301e8ac00e671094f85a48032cd1dc9952e4 diff --git a/mozilla-firefox.spec b/mozilla-firefox.spec index aa6b01b..6df3efb 100644 --- a/mozilla-firefox.spec +++ b/mozilla-firefox.spec @@ -1,91 +1,130 @@ +# NOTE: PLD distributes iceweasel instead +# # TODO: -# - handle locales differently (runtime, since it's possible to do) -# - see ftp://ftp.debian.org/debian/pool/main/m/mozilla-firefox/*diff* -# for hints how to make locales -# - make it more pld-like (bookmarks, default page etc..) +# - (12:22:58) patrys: can you also move _libdir/mozilla-firefox to just _libdir/firefox? +# (12:23:25) patrys: it's not like we ship official firefox +# - fix wrapper script to allow playing with profiles (must not use -remote) # # Conditional build: %bcond_with tests # enable tests (whatever they check) -%bcond_without gnomeui # disable gnomeui support -%bcond_without gnomevfs # disable GNOME comp. (gconf+libgnome+gnomevfs) and gnomevfs ext. -%bcond_without gnome # disable all GNOME components (gnome+gnomeui+gnomevfs) -%bcond_with tidy # htmlvalidator extension (tidy) -# -%if %{without gnome} -%undefine with_gnomeui -%undefine with_gnomevfs +%bcond_with gtk3 # GTK+ 3.x instead of 2.x +%bcond_without kerberos # disable krb5 support +%bcond_without xulrunner # system xulrunner + +%if %{without xulrunner} +# The actual sqlite version (see RHBZ#480989): +%define sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo ERROR) %endif -%define tidy_ver 0.8.4.1 -%define firefox_ver 2.0.0.8 -# + +%define nspr_ver 4.10.3 +%define nss_ver 3.16 + Summary: Firefox Community Edition web browser Summary(pl.UTF-8): Firefox Community Edition - przeglądarka WWW Name: mozilla-firefox -Version: %{firefox_ver} -Release: 3 -License: MPL 1.1 or GPL v2+ or LGPL v2.1+ +Version: 29.0.1 +Release: 1 +License: MPL v2.0 Group: X11/Applications/Networking -Source0: ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/%{version}/source/firefox-%{version}-source.tar.bz2 -# Source0-md5: f4ffac67751bc3e556c4926da2e0b65a -Source1: http://users.skynet.be/mgueury/mozilla/tidy_08x_source.zip -# Source1-md5: 2cab81118267fc87c9ebbfa6fb44b113 -Source2: %{name}.desktop -Source3: %{name}.sh -Patch0: mozilla-install.patch -Patch1: %{name}-lib_path.patch -Patch2: %{name}-addon-tidy.patch -Patch3: %{name}-fonts.patch -Patch4: %{name}-agent.patch -Patch5: %{name}-myspell.patch -# if ac rebuild is needed... -#PatchX: %{name}-ac.patch +Source0: http://releases.mozilla.org/pub/mozilla.org/firefox/releases/%{version}/source/firefox-%{version}.source.tar.bz2 +# Source0-md5: ca37addc3a69ef30247e00375dd93cd0 +Source3: %{name}.desktop +Source4: %{name}.sh +Source5: vendor.js +Source6: vendor-ac.js +Patch0: %{name}-branding.patch +Patch7: %{name}-prefs.patch +Patch9: %{name}-no-subshell.patch +Patch11: %{name}-middle_click_paste.patch +Patch12: %{name}-packaging.patch +Patch13: %{name}-system-virtualenv.patch +Patch15: %{name}-Disable-Firefox-Health-Report.patch URL: http://www.mozilla.org/projects/firefox/ -%{?with_gnomevfs:BuildRequires: GConf2-devel >= 1.2.1} +BuildRequires: OpenGL-devel +BuildRequires: alsa-lib-devel BuildRequires: automake -BuildRequires: cairo-devel >= 1.0.0 -%{?with_gnomevfs:BuildRequires: gnome-vfs2-devel >= 2.0} -BuildRequires: gtk+2-devel >= 1:2.0.0 -BuildRequires: krb5-devel +BuildRequires: bzip2-devel +BuildRequires: cairo-devel >= 1.10.2-5 +BuildRequires: dbus-glib-devel >= 0.60 +BuildRequires: gcc-c++ >= 6:4.4 +BuildRequires: glib2-devel >= 1:2.20 +%{!?with_gtk3:BuildRequires: gtk+2-devel >= 2:2.14} +%{?with_gtk3:BuildRequires: gtk+3-devel >= 3.0.0} +%{?with_kerberos:BuildRequires: heimdal-devel >= 0.7.1} +BuildRequires: hunspell-devel BuildRequires: libIDL-devel >= 0.8.0 -%{?with_gnomevfs:BuildRequires: libgnome-devel >= 2.0} -%{?with_gnomeui:BuildRequires: libgnomeui-devel >= 2.2.0} +BuildRequires: libdnet-devel +BuildRequires: libevent-devel >= 1.4.7 +# standalone libffi 3.0.9 or gcc's from 4.5(?)+ +BuildRequires: libffi-devel >= 6:3.0.9 +BuildRequires: libicu-devel >= 50.1 +# requires libjpeg-turbo implementing at least libjpeg 6b API BuildRequires: libjpeg-devel >= 6b -BuildRequires: libpng-devel >= 1.2.7 -BuildRequires: libstdc++-devel -BuildRequires: myspell-devel -BuildRequires: nspr-devel >= 1:4.6.3 -BuildRequires: nss-devel >= 1:3.11.3-3 -%{?with_tidy:BuildRequires: opensp-devel >= 2:1.5.2-4} -BuildRequires: pango-devel >= 1:1.6.0 +BuildRequires: libjpeg-turbo-devel +BuildRequires: libpng(APNG)-devel >= 0.10 +BuildRequires: libpng-devel >= 2:1.6.7 +BuildRequires: libstdc++-devel >= 6:4.4 +BuildRequires: libvpx-devel >= 1.3.0 +BuildRequires: nspr-devel >= 1:%{nspr_ver} +BuildRequires: nss-devel >= 1:%{nss_ver} +BuildRequires: pango-devel >= 1:1.14.0 +BuildRequires: pixman-devel >= 0.19.2 BuildRequires: perl-modules >= 5.004 BuildRequires: pkgconfig -BuildRequires: rpmbuild(macros) >= 1.356 +BuildRequires: pkgconfig(libffi) >= 3.0.9 +BuildRequires: python-modules +BuildRequires: python-virtualenv +BuildRequires: rpm >= 4.4.9-56 +BuildRequires: rpmbuild(macros) >= 1.601 +BuildRequires: sqlite3-devel >= 3.8.2 +BuildRequires: startup-notification-devel >= 0.8 +BuildRequires: xorg-lib-libXScrnSaver-devel BuildRequires: xorg-lib-libXext-devel -BuildRequires: xorg-lib-libXft-devel >= 2.1 BuildRequires: xorg-lib-libXinerama-devel -BuildRequires: xorg-lib-libXp-devel BuildRequires: xorg-lib-libXt-devel +%if %{with xulrunner} +BuildRequires: xulrunner-devel >= 2:%{version} +%endif BuildRequires: zip BuildRequires: zlib-devel >= 1.2.3 Requires(post): mktemp >= 1.5-18 +Requires: desktop-file-utils +Requires: hicolor-icon-theme +%if %{with xulrunner} +%requires_eq_to xulrunner xulrunner-devel +%else Requires: browser-plugins >= 2.0 -Requires: nspr >= 1:4.6.3 -Requires: nss >= 1:3.11.3 +Requires: cairo >= 1.10.2-5 +Requires: dbus-glib >= 0.60 +Requires: glib2 >= 1:2.20 +%{!?with_gtk3:Requires: gtk+2 >= 2:2.14} +%{?with_gtk3:Requires: gtk+3 >= 3.0.0} +Requires: libjpeg-turbo +Requires: libpng >= 2:1.6.7 +Requires: libpng(APNG) >= 0.10 +Requires: libvpx >= 1.3.0 +Requires: myspell-common +Requires: nspr >= 1:%{nspr_ver} +Requires: nss >= 1:%{nss_ver} +Requires: pango >= 1:1.14.0 +Requires: sqlite3 >= %{sqlite_build_version} +Requires: startup-notification >= 0.8 +%endif Provides: wwwbrowser Obsoletes: mozilla-firebird Obsoletes: mozilla-firefox-lang-en < 2.0.0.8-3 Obsoletes: mozilla-firefox-libs +Conflicts: mozilla-firefox-lang-resources < %{version} BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) -# firefox/thunderbird/seamonkey provide their own versions -%define _noautoreqdep libgkgfx.so libgtkxtbin.so libjsj.so libxpcom_compat.so libxpcom_core.so -%define _noautoprovfiles %{_libdir}/%{name}/components -# we don't want these to satisfy xulrunner-devel -%define _noautoprov libgtkembedmoz.so libmozjs.so libxpcom.so libxul.so -# and as we don't provide them, don't require either -%define _noautoreq libgtkembedmoz.so libmozjs.so libxpcom.so libxul.so +%define filterout_cpp -D_FORTIFY_SOURCE=[0-9]+ -%define specflags -fno-strict-aliasing -fno-tree-vrp -fno-stack-protector +# don't satisfy other packages (don't use %{name} here) +%define _noautoprovfiles %{_libdir}/mozilla-firefox +%if %{without xulrunner} +# and as we don't provide them, don't require either +%define _noautoreq libmozalloc.so libmozjs.so libxpcom.so libxul.so +%endif %description Firefox Community Edition is an open-source web browser, designed for @@ -96,54 +135,36 @@ Firefox Community Edition jest przeglądarką WWW rozpowszechnianą zgodnie z ideami ruchu otwartego oprogramowania oraz tworzoną z myślą o zgodności ze standardami, wydajnością i przenośnością. -%package addon-tidy -Summary: HTML Validator for Firefox -Summary(pl.UTF-8): Narzędzie do sprawdzania poprawności HTML-a dla Firefoksa -Version: %{tidy_ver} -License: GPL -Group: X11/Applications/Networking -URL: http://users.skynet.be/mgueury/mozilla/ -Requires: %{name} = %{firefox_ver}-%{release} - -%description addon-tidy -HTML Validator is a Mozilla extension that adds HTML validation inside -Firefox. The number of errors of a HTML page is seen on the form of an -icon in the status bar when browsing. - -%description addon-tidy -l pl.UTF-8 -HTML Validator to rozszerzenie Mozilli dodające sprawdzanie -poprawności HTML-a w Firefoksie. Liczbę błędów na przeglądanej stronie -HTML można zobaczyć w postaci ikony na pasku stanu. - %prep -%setup -qc %{?with_tidy:-a1} -%if %{with tidy} -mv mozilla_tidy_source/mozilla/extensions/tidy mozilla/extensions/tidy -mv mozilla_tidy_source/tidy_extension . -rm -rf mozilla/extensions/tidy/opensp -%endif +%setup -qc +mv -f mozilla-release mozilla cd mozilla + %patch0 -p1 -%patch1 -p1 -%{?with_tidy:%patch2 -p1} -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 +%patch7 -p1 +%patch9 -p2 +%patch11 -p2 +%patch12 -p2 +%patch13 -p2 +%patch15 -p1 %build cd mozilla - cp -f %{_datadir}/automake/config.* build/autoconf -cp -f %{_datadir}/automake/config.* nsprpub/build/autoconf -cp -f %{_datadir}/automake/config.* directory/c-sdk/config/autoconf -cat << 'EOF' > .mozconfig -. $topsrcdir/browser/config/mozconfig +cat << EOF > .mozconfig +. \$topsrcdir/browser/config/mozconfig mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-%{_target_cpu} -ac_cv_visibility_pragma=no +# parallel build fails on _xpidlgen/ +%if %{without xulrunner} +mk_add_options MOZ_MAKE_FLAGS=%{_smp_mflags} +%endif +mk_add_options PROFILE_GEN_SCRIPT='@PYTHON@ @MOZ_OBJDIR@/_profile/pgo/profileserver.py' # Options for 'configure' (same as command-line options). +ac_add_options --build=%{_target_platform} +ac_add_options --host=%{_target_platform} ac_add_options --prefix=%{_prefix} ac_add_options --exec-prefix=%{_exec_prefix} ac_add_options --bindir=%{_bindir} @@ -167,42 +188,71 @@ ac_add_options --enable-crash-on-assert ac_add_options --disable-debug ac_add_options --disable-debug-modules ac_add_options --disable-logging -ac_add_options --enable-optimize="%{rpmcflags}" +ac_add_options --enable-optimize="%{rpmcflags} -Os" %endif +ac_add_options --disable-strip +ac_add_options --disable-strip-libs +ac_add_options --disable-install-strip %if %{with tests} ac_add_options --enable-tests +ac_add_options --enable-mochitest %else ac_add_options --disable-tests +ac_add_options --disable-mochitest %endif -%if %{with gnomeui} -ac_add_options --enable-gnomeui -%else +ac_add_options --disable-cpp-exceptions +ac_add_options --disable-crashreporter +ac_add_options --disable-elf-dynstr-gc +ac_add_options --disable-gconf ac_add_options --disable-gnomeui -%endif -%if %{with gnomevfs} -ac_add_options --enable-gnomevfs -%else ac_add_options --disable-gnomevfs -%endif -ac_add_options --disable-freetype2 ac_add_options --disable-installer ac_add_options --disable-javaxpcom +ac_add_options --disable-long-long-warning +ac_add_options --disable-necko-wifi +ac_add_options --disable-pedantic ac_add_options --disable-updater -ac_add_options --enable-default-toolkit=gtk2 +ac_add_options --disable-xterm-updates +ac_add_options --enable-canvas +ac_add_options --enable-chrome-format=omni +ac_add_options --enable-default-toolkit=%{?with_gtk3:cairo-gtk3}%{!?with_gtk3:cairo-gtk2} +ac_add_options --enable-extensions="default,gio" +ac_add_options --enable-gio +ac_add_options --enable-libxul +ac_add_options --enable-mathml +ac_add_options --enable-pango +ac_add_options --enable-readline +ac_add_options --enable-safe-browsing +ac_add_options --enable-shared-js +ac_add_options --enable-startup-notification ac_add_options --enable-svg ac_add_options --enable-system-cairo -ac_add_options --enable-system-myspell -ac_add_options --enable-xft +ac_add_options --enable-system-ffi +ac_add_options --enable-system-hunspell +ac_add_options --enable-system-sqlite +ac_add_options --enable-url-classifier +ac_add_options --enable-xinerama +ac_add_options --with-default-mozilla-five-home=%{_libdir}/%{name} ac_add_options --with-distribution-id=org.pld-linux +%if %{with xulrunner} +ac_add_options --with-libxul-sdk=$(pkg-config --variable=sdkdir libxul) +%endif +ac_add_options --with-pthreads +ac_add_options --with-system-bz2 ac_add_options --with-system-jpeg +ac_add_options --with-system-libevent +ac_add_options --with-system-libvpx ac_add_options --with-system-nspr ac_add_options --with-system-nss +ac_add_options --with-system-ply ac_add_options --with-system-png ac_add_options --with-system-zlib -ac_add_options --with-default-mozilla-five-home=%{_libdir}/%{name} +ac_add_options --with-system-icu +ac_add_options --with-x EOF -%{__make} -j1 -f client.mk build \ +%{__make} -f client.mk build \ + STRIP="/bin/true" \ CC="%{__cc}" \ CXX="%{__cxx}" @@ -211,61 +261,75 @@ rm -rf $RPM_BUILD_ROOT cd mozilla install -d \ $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_libdir}} \ - $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir}} \ - $RPM_BUILD_ROOT%{_datadir}/%{name} + $RPM_BUILD_ROOT%{_desktopdir} \ + $RPM_BUILD_ROOT%{_datadir}/%{name}/browser \ + $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/plugins -%browser_plugins_add_browser %{name} -p %{_libdir}/%{name}/plugins +%browser_plugins_add_browser %{name} -p %{_libdir}/%{name}/browser/plugins -%{__make} -C obj-%{_target_cpu}/xpinstall/packager stage-package \ +%{__make} -C obj-%{_target_cpu}/browser/installer stage-package \ DESTDIR=$RPM_BUILD_ROOT \ - MOZ_PKG_APPDIR=%{_libdir}/%{name} \ + installdir=%{_libdir}/%{name} \ PKG_SKIP_STRIP=1 +cp -a obj-%{_target_cpu}/dist/firefox/* $RPM_BUILD_ROOT%{_libdir}/%{name}/ + +%if %{with xulrunner} +# >= 5.0 seems to require this +ln -s ../xulrunner $RPM_BUILD_ROOT%{_libdir}/%{name}/xulrunner +%endif + # move arch independant ones to datadir -mv $RPM_BUILD_ROOT%{_libdir}/%{name}/chrome $RPM_BUILD_ROOT%{_datadir}/%{name}/chrome -mv $RPM_BUILD_ROOT%{_libdir}/%{name}/defaults $RPM_BUILD_ROOT%{_datadir}/%{name}/defaults -mv $RPM_BUILD_ROOT%{_libdir}/%{name}/extensions $RPM_BUILD_ROOT%{_datadir}/%{name}/extensions -mv $RPM_BUILD_ROOT%{_libdir}/%{name}/greprefs $RPM_BUILD_ROOT%{_datadir}/%{name}/greprefs -mv $RPM_BUILD_ROOT%{_libdir}/%{name}/icons $RPM_BUILD_ROOT%{_datadir}/%{name}/icons -mv $RPM_BUILD_ROOT%{_libdir}/%{name}/init.d $RPM_BUILD_ROOT%{_datadir}/%{name}/init.d -mv $RPM_BUILD_ROOT%{_libdir}/%{name}/res $RPM_BUILD_ROOT%{_datadir}/%{name}/res -mv $RPM_BUILD_ROOT%{_libdir}/%{name}/searchplugins $RPM_BUILD_ROOT%{_datadir}/%{name}/searchplugins -ln -s ../../share/%{name}/chrome $RPM_BUILD_ROOT%{_libdir}/%{name}/chrome -ln -s ../../share/%{name}/defaults $RPM_BUILD_ROOT%{_libdir}/%{name}/defaults -ln -s ../../share/%{name}/extensions $RPM_BUILD_ROOT%{_libdir}/%{name}/extensions -ln -s ../../share/%{name}/greprefs $RPM_BUILD_ROOT%{_libdir}/%{name}/greprefs -ln -s ../../share/%{name}/icons $RPM_BUILD_ROOT%{_libdir}/%{name}/icons -ln -s ../../share/%{name}/init.d $RPM_BUILD_ROOT%{_libdir}/%{name}/init.d -ln -s ../../share/%{name}/res $RPM_BUILD_ROOT%{_libdir}/%{name}/res -ln -s ../../share/%{name}/searchplugins $RPM_BUILD_ROOT%{_libdir}/%{name}/searchplugins - -rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/dictionaries +mv $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/chrome $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/chrome +mv $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/extensions $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/extensions +mv $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/icons $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/icons +mv $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/searchplugins $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/searchplugins +%if %{without xulrunner} +mv $RPM_BUILD_ROOT%{_libdir}/%{name}/defaults $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/defaults +mv $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/defaults/{pref,preferences} +%else +mv $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/defaults $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/defaults +%endif + +ln -s ../../../share/%{name}/browser/chrome $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/chrome +ln -s ../../../share/%{name}/browser/defaults $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/defaults +ln -s ../../../share/%{name}/browser/extensions $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/extensions +ln -s ../../../share/%{name}/browser/icons $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/icons +ln -s ../../../share/%{name}/browser/searchplugins $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/searchplugins + +%if %{without xulrunner} +%{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{name}/dictionaries ln -s %{_datadir}/myspell $RPM_BUILD_ROOT%{_libdir}/%{name}/dictionaries +%endif -sed 's,@LIBDIR@,%{_libdir},' %{SOURCE3} > $RPM_BUILD_ROOT%{_bindir}/mozilla-firefox +sed 's,@LIBDIR@,%{_libdir},' %{SOURCE4} > $RPM_BUILD_ROOT%{_bindir}/mozilla-firefox +chmod 755 $RPM_BUILD_ROOT%{_bindir}/mozilla-firefox ln -s mozilla-firefox $RPM_BUILD_ROOT%{_bindir}/firefox -install browser/base/branding/icon64.png $RPM_BUILD_ROOT%{_pixmapsdir}/mozilla-firefox.png - -install %{SOURCE2} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop +# install icons and desktop file +for i in 48 64; do + install -d $RPM_BUILD_ROOT%{_iconsdir}/hicolor/${i}x${i}/apps + cp -a browser/branding/unofficial/content/icon${i}.png \ + $RPM_BUILD_ROOT%{_iconsdir}/hicolor/${i}x${i}/apps/mozilla-firefox.png +done -# header/development files -rm $RPM_BUILD_ROOT%{_libdir}/%{name}/xpidl -rm $RPM_BUILD_ROOT%{_libdir}/%{name}/xpt_dump -rm $RPM_BUILD_ROOT%{_libdir}/%{name}/xpt_link +cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop -# files created by regxpcom and firefox -register -touch $RPM_BUILD_ROOT%{_libdir}/%{name}/components/compreg.dat -touch $RPM_BUILD_ROOT%{_libdir}/%{name}/components/xpti.dat +# install our settings +%if "%{pld_release}" == "ac" +cp -a %{SOURCE6} $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/defaults/preferences/vendor.js +%else +cp -a %{SOURCE5} $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/defaults/preferences/vendor.js +%endif -# what's this? it's content is invalid anyway. -rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/dependentlibs.list -rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/old-homepage-default.properties +# files created by firefox -register +touch $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/components/compreg.dat +touch $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/components/xpti.dat cat << 'EOF' > $RPM_BUILD_ROOT%{_sbindir}/%{name}-chrome+xpcom-generate #!/bin/sh umask 022 -rm -f %{_libdir}/%{name}/components/{compreg,xpti}.dat +rm -f %{_libdir}/%{name}/browser/components/{compreg,xpti}.dat # it attempts to touch files in $HOME/.mozilla # beware if you run this with sudo!!! @@ -273,34 +337,38 @@ export HOME=$(mktemp -d) # also TMPDIR could be pointing to sudo user's homedir unset TMPDIR TMP || : -LD_LIBRARY_PATH=%{_libdir}/%{name}${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} %{_libdir}/%{name}/regxpcom %{_libdir}/%{name}/firefox -register rm -rf $HOME EOF +chmod 755 $RPM_BUILD_ROOT%{_sbindir}/%{name}-chrome+xpcom-generate %clean rm -rf $RPM_BUILD_ROOT %pretrans +if [ -d %{_libdir}/%{name}/browser/extensions ] && [ ! -L %{_libdir}/%{name}/browser/extensions ]; then + install -d %{_datadir}/%{name}/browser + if [ -e %{_datadir}/%{name}/browser/extensions ]; then + mv %{_datadir}/%{name}/browser/extensions{,.rpmsave} + fi + mv -v %{_libdir}/%{name}/browser/extensions %{_datadir}/%{name}/browser/extensions +fi if [ -d %{_libdir}/%{name}/dictionaries ] && [ ! -L %{_libdir}/%{name}/dictionaries ]; then mv -v %{_libdir}/%{name}/dictionaries{,.rpmsave} fi -for d in chrome defaults extensions greprefs icons init.d res searchplugins; do - if [ -d %{_libdir}/%{name}/$d ] && [ ! -L %{_libdir}/%{name}/$d ]; then - install -d %{_datadir}/%{name} - mv %{_libdir}/%{name}/$d %{_datadir}/%{name}/$d - fi -done exit 0 %post %{_sbindir}/%{name}-chrome+xpcom-generate %update_browser_plugins +%update_icon_cache hicolor +%update_desktop_database %postun if [ "$1" = 0 ]; then %update_browser_plugins + %update_icon_cache hicolor fi %files @@ -309,295 +377,68 @@ fi %attr(755,root,root) %{_bindir}/firefox %attr(755,root,root) %{_sbindir}/%{name}-chrome+xpcom-generate +%{_desktopdir}/mozilla-firefox.desktop +%{_iconsdir}/hicolor/*/apps/mozilla-firefox.png + # browser plugins v2 %{_browserpluginsconfdir}/browsers.d/%{name}.* %config(noreplace) %verify(not md5 mtime size) %{_browserpluginsconfdir}/blacklist.d/%{name}.*.blacklist %dir %{_libdir}/%{name} -%attr(755,root,root) %{_libdir}/%{name}/*.so +%dir %{_libdir}/%{name}/browser +%dir %{_libdir}/%{name}/browser/components +%dir %{_libdir}/%{name}/browser/plugins -%dir %{_libdir}/%{name}/components -%attr(755,root,root) %{_libdir}/%{name}/components/libaccessibility.so -%attr(755,root,root) %{_libdir}/%{name}/components/libappcomps.so -%attr(755,root,root) %{_libdir}/%{name}/components/libauth.so -%attr(755,root,root) %{_libdir}/%{name}/components/libautoconfig.so -%attr(755,root,root) %{_libdir}/%{name}/components/libbrowsercomps.so -%attr(755,root,root) %{_libdir}/%{name}/components/libbrowserdirprovider.so -%attr(755,root,root) %{_libdir}/%{name}/components/libcaps.so -%attr(755,root,root) %{_libdir}/%{name}/components/libchrome.so -%attr(755,root,root) %{_libdir}/%{name}/components/libcommandlines.so -%attr(755,root,root) %{_libdir}/%{name}/components/libcomposer.so -%attr(755,root,root) %{_libdir}/%{name}/components/libcookie.so -%attr(755,root,root) %{_libdir}/%{name}/components/libdocshell.so -%attr(755,root,root) %{_libdir}/%{name}/components/libeditor.so -%attr(755,root,root) %{_libdir}/%{name}/components/libembedcomponents.so -%attr(755,root,root) %{_libdir}/%{name}/components/libfileview.so -%attr(755,root,root) %{_libdir}/%{name}/components/libgfx_gtk.so -%attr(755,root,root) %{_libdir}/%{name}/components/libgfxps.so -%attr(755,root,root) %{_libdir}/%{name}/components/libgklayout.so -%attr(755,root,root) %{_libdir}/%{name}/components/libgkplugin.so -%attr(755,root,root) %{_libdir}/%{name}/components/libhtmlpars.so -%attr(755,root,root) %{_libdir}/%{name}/components/libi18n.so -%{?with_gnomeui:%attr(755,root,root) %{_libdir}/%{name}/components/libimgicon.so} -%attr(755,root,root) %{_libdir}/%{name}/components/libimglib2.so -%attr(755,root,root) %{_libdir}/%{name}/components/libjar50.so -%attr(755,root,root) %{_libdir}/%{name}/components/libjsd.so -%attr(755,root,root) %{_libdir}/%{name}/components/libmork.so -%attr(755,root,root) %{_libdir}/%{name}/components/libmozfind.so -%{?with_gnomevfs:%attr(755,root,root) %{_libdir}/%{name}/components/libmozgnome.so} -%attr(755,root,root) %{_libdir}/%{name}/components/libmyspell.so -%attr(755,root,root) %{_libdir}/%{name}/components/libnecko2.so -%attr(755,root,root) %{_libdir}/%{name}/components/libnecko.so -%{?with_gnomevfs:%attr(755,root,root) %{_libdir}/%{name}/components/libnkgnomevfs.so} -%attr(755,root,root) %{_libdir}/%{name}/components/libnsappshell.so -%attr(755,root,root) %{_libdir}/%{name}/components/liboji.so -%attr(755,root,root) %{_libdir}/%{name}/components/libpermissions.so -%attr(755,root,root) %{_libdir}/%{name}/components/libpipboot.so -%attr(755,root,root) %{_libdir}/%{name}/components/libpipnss.so -%attr(755,root,root) %{_libdir}/%{name}/components/libpippki.so -%attr(755,root,root) %{_libdir}/%{name}/components/libpref.so -%attr(755,root,root) %{_libdir}/%{name}/components/librdf.so -%attr(755,root,root) %{_libdir}/%{name}/components/libremoteservice.so -%attr(755,root,root) %{_libdir}/%{name}/components/libsearchservice.so -%attr(755,root,root) %{_libdir}/%{name}/components/libspellchecker.so -%attr(755,root,root) %{_libdir}/%{name}/components/libstoragecomps.so -%attr(755,root,root) %{_libdir}/%{name}/components/libsystem-pref.so -%attr(755,root,root) %{_libdir}/%{name}/components/libtoolkitcomps.so -%attr(755,root,root) %{_libdir}/%{name}/components/libtransformiix.so -%attr(755,root,root) %{_libdir}/%{name}/components/libtxmgr.so -%attr(755,root,root) %{_libdir}/%{name}/components/libuconv.so -%attr(755,root,root) %{_libdir}/%{name}/components/libucvmath.so -%attr(755,root,root) %{_libdir}/%{name}/components/libuniversalchardet.so -%attr(755,root,root) %{_libdir}/%{name}/components/libwebbrwsr.so -%attr(755,root,root) %{_libdir}/%{name}/components/libwebsrvcs.so -%attr(755,root,root) %{_libdir}/%{name}/components/libwidget_gtk2.so -%attr(755,root,root) %{_libdir}/%{name}/components/libxmlextras.so -%attr(755,root,root) %{_libdir}/%{name}/components/libxpcom_compat_c.so -%attr(755,root,root) %{_libdir}/%{name}/components/libxpconnect.so -%attr(755,root,root) %{_libdir}/%{name}/components/libxpinstall.so -%{_libdir}/%{name}/components/accessibility-atk.xpt -%{_libdir}/%{name}/components/accessibility.xpt -%{_libdir}/%{name}/components/alerts.xpt -%{_libdir}/%{name}/components/appshell.xpt -%{_libdir}/%{name}/components/appstartup.xpt -%{_libdir}/%{name}/components/autocomplete.xpt -%{_libdir}/%{name}/components/autoconfig.xpt -%{_libdir}/%{name}/components/bookmarks.xpt -%{_libdir}/%{name}/components/browsercompsbase.xpt -%{_libdir}/%{name}/components/browser-feeds.xpt -%{_libdir}/%{name}/components/browsersearch.xpt -%{_libdir}/%{name}/components/caps.xpt -%{_libdir}/%{name}/components/chardet.xpt -%{_libdir}/%{name}/components/chrome.xpt -%{_libdir}/%{name}/components/commandhandler.xpt -%{_libdir}/%{name}/components/commandlines.xpt -%{_libdir}/%{name}/components/composer.xpt -%{_libdir}/%{name}/components/content_base.xpt -%{_libdir}/%{name}/components/content_htmldoc.xpt -%{_libdir}/%{name}/components/content_html.xpt -%{_libdir}/%{name}/components/content_xmldoc.xpt -%{_libdir}/%{name}/components/content_xslt.xpt -%{_libdir}/%{name}/components/content_xtf.xpt -%{_libdir}/%{name}/components/cookie.xpt -%{_libdir}/%{name}/components/directory.xpt -%{_libdir}/%{name}/components/docshell.xpt -%{_libdir}/%{name}/components/dom_base.xpt -%{_libdir}/%{name}/components/dom_canvas.xpt -%{_libdir}/%{name}/components/dom_core.xpt -%{_libdir}/%{name}/components/dom_css.xpt -%{_libdir}/%{name}/components/dom_events.xpt -%{_libdir}/%{name}/components/dom_html.xpt -%{_libdir}/%{name}/components/dom_loadsave.xpt -%{_libdir}/%{name}/components/dom_range.xpt -%{_libdir}/%{name}/components/dom_sidebar.xpt -%{_libdir}/%{name}/components/dom_storage.xpt -%{_libdir}/%{name}/components/dom_stylesheets.xpt -%{_libdir}/%{name}/components/dom_svg.xpt -%{_libdir}/%{name}/components/dom_traversal.xpt -%{_libdir}/%{name}/components/dom_views.xpt -%{_libdir}/%{name}/components/dom_xbl.xpt -%{_libdir}/%{name}/components/dom_xpath.xpt -%{_libdir}/%{name}/components/dom.xpt -%{_libdir}/%{name}/components/dom_xul.xpt -%{_libdir}/%{name}/components/downloads.xpt -%{_libdir}/%{name}/components/editor.xpt -%{_libdir}/%{name}/components/embed_base.xpt -%{_libdir}/%{name}/components/extensions.xpt -%{_libdir}/%{name}/components/exthandler.xpt -%{_libdir}/%{name}/components/fastfind.xpt -%{_libdir}/%{name}/components/FeedConverter.js -%{_libdir}/%{name}/components/FeedProcessor.js -%{_libdir}/%{name}/components/feeds.xpt -%{_libdir}/%{name}/components/FeedWriter.js -%{_libdir}/%{name}/components/filepicker.xpt -%{_libdir}/%{name}/components/find.xpt -%{_libdir}/%{name}/components/gfx.xpt -%{_libdir}/%{name}/components/gksvgrenderer.xpt -%{_libdir}/%{name}/components/history.xpt -%{_libdir}/%{name}/components/htmlparser.xpt -%{?with_gnomeui:%{_libdir}/%{name}/components/imgicon.xpt} -%{_libdir}/%{name}/components/imglib2.xpt -%{_libdir}/%{name}/components/inspector.xpt -%{_libdir}/%{name}/components/intl.xpt -%{_libdir}/%{name}/components/jar.xpt -%{_libdir}/%{name}/components/jsconsole-clhandler.js -%{_libdir}/%{name}/components/jsconsole.xpt -%{_libdir}/%{name}/components/jsdservice.xpt -%{_libdir}/%{name}/components/layout_base.xpt -%{_libdir}/%{name}/components/layout_printing.xpt -%{_libdir}/%{name}/components/layout_xul_tree.xpt -%{_libdir}/%{name}/components/layout_xul.xpt -%{_libdir}/%{name}/components/locale.xpt -%{_libdir}/%{name}/components/lwbrk.xpt -%{_libdir}/%{name}/components/microsummaries.xpt -%{_libdir}/%{name}/components/migration.xpt -%{_libdir}/%{name}/components/mimetype.xpt -%{_libdir}/%{name}/components/mozbrwsr.xpt -%{_libdir}/%{name}/components/mozfind.xpt -%{_libdir}/%{name}/components/mozgnome.xpt -%{_libdir}/%{name}/components/necko_about.xpt -%{_libdir}/%{name}/components/necko_cache.xpt -%{_libdir}/%{name}/components/necko_cookie.xpt -%{_libdir}/%{name}/components/necko_data.xpt -%{_libdir}/%{name}/components/necko_dns.xpt -%{_libdir}/%{name}/components/necko_file.xpt -%{_libdir}/%{name}/components/necko_ftp.xpt -%{_libdir}/%{name}/components/necko_http.xpt -%{_libdir}/%{name}/components/necko_res.xpt -%{_libdir}/%{name}/components/necko_socket.xpt -%{_libdir}/%{name}/components/necko_strconv.xpt -%{_libdir}/%{name}/components/necko_viewsource.xpt -%{_libdir}/%{name}/components/necko.xpt -%{_libdir}/%{name}/components/nsBookmarkTransactionManager.js -%{_libdir}/%{name}/components/nsBrowserContentHandler.js -%{_libdir}/%{name}/components/nsBrowserGlue.js -%{_libdir}/%{name}/components/nsCloseAllWindows.js -%{_libdir}/%{name}/components/nsDefaultCLH.js -%{_libdir}/%{name}/components/nsDictionary.js -%{_libdir}/%{name}/components/nsExtensionManager.js -%{_libdir}/%{name}/components/nsFilePicker.js -%{_libdir}/%{name}/components/nsHelperAppDlg.js -%{_libdir}/%{name}/components/nsInterfaceInfoToIDL.js -%{_libdir}/%{name}/components/nsKillAll.js -%{_libdir}/%{name}/components/nsMicrosummaryService.js -%{_libdir}/%{name}/components/nsProgressDialog.js -%{_libdir}/%{name}/components/nsProxyAutoConfig.js -%{_libdir}/%{name}/components/nsResetPref.js -%{_libdir}/%{name}/components/nsSafebrowsingApplication.js -%{_libdir}/%{name}/components/nsSearchService.js -%{_libdir}/%{name}/components/nsSearchSuggestions.js -%{_libdir}/%{name}/components/nsSessionStartup.js -%{_libdir}/%{name}/components/nsSessionStore.js -%{_libdir}/%{name}/components/nsSetDefaultBrowser.js -%{_libdir}/%{name}/components/nsSidebar.js -%{_libdir}/%{name}/components/nsUpdateService.js -%{_libdir}/%{name}/components/nsUrlClassifierLib.js -%{_libdir}/%{name}/components/nsUrlClassifierListManager.js -%{_libdir}/%{name}/components/nsUrlClassifierTable.js -%{_libdir}/%{name}/components/nsURLFormatter.js -%{_libdir}/%{name}/components/nsXmlRpcClient.js -%{_libdir}/%{name}/components/oji.xpt -%{_libdir}/%{name}/components/passwordmgr.xpt -%{_libdir}/%{name}/components/pipboot.xpt -%{_libdir}/%{name}/components/pipnss.xpt -%{_libdir}/%{name}/components/pippki.xpt -%{_libdir}/%{name}/components/plugin.xpt -%{_libdir}/%{name}/components/prefetch.xpt -%{_libdir}/%{name}/components/pref.xpt -%{_libdir}/%{name}/components/profile.xpt -%{_libdir}/%{name}/components/progressDlg.xpt -%{_libdir}/%{name}/components/proxyObjInst.xpt -%{_libdir}/%{name}/components/rdf.xpt -%{_libdir}/%{name}/components/safebrowsing.xpt -%{_libdir}/%{name}/components/satchel.xpt -%{_libdir}/%{name}/components/saxparser.xpt -%{_libdir}/%{name}/components/search.xpt -%{_libdir}/%{name}/components/sessionstore.xpt -%{_libdir}/%{name}/components/shellservice.xpt -%{_libdir}/%{name}/components/shistory.xpt -%{_libdir}/%{name}/components/spellchecker.xpt -%{_libdir}/%{name}/components/storage.xpt -%{_libdir}/%{name}/components/toolkitprofile.xpt -%{_libdir}/%{name}/components/toolkitremote.xpt -%{_libdir}/%{name}/components/txmgr.xpt -%{_libdir}/%{name}/components/txtsvc.xpt -%{_libdir}/%{name}/components/uconv.xpt -%{_libdir}/%{name}/components/unicharutil.xpt -%{_libdir}/%{name}/components/update.xpt -%{_libdir}/%{name}/components/uriloader.xpt -%{_libdir}/%{name}/components/url-classifier.xpt -%{_libdir}/%{name}/components/urlformatter.xpt -%{_libdir}/%{name}/components/webBrowser_core.xpt -%{_libdir}/%{name}/components/webbrowserpersist.xpt -%{_libdir}/%{name}/components/WebContentConverter.js -%{_libdir}/%{name}/components/webshell_idls.xpt -%{_libdir}/%{name}/components/websrvcs.xpt -%{_libdir}/%{name}/components/widget.xpt -%{_libdir}/%{name}/components/windowds.xpt -%{_libdir}/%{name}/components/windowwatcher.xpt -%{_libdir}/%{name}/components/xml-rpc.xpt -%{_libdir}/%{name}/components/xpcom_base.xpt -%{_libdir}/%{name}/components/xpcom_components.xpt -%{_libdir}/%{name}/components/xpcom_ds.xpt -%{_libdir}/%{name}/components/xpcom_io.xpt -%{_libdir}/%{name}/components/xpcom_obsolete.xpt -%{_libdir}/%{name}/components/xpcom_threads.xpt -%{_libdir}/%{name}/components/xpcom_xpti.xpt -%{_libdir}/%{name}/components/xpconnect.xpt -%{_libdir}/%{name}/components/xpinstall.xpt -%{_libdir}/%{name}/components/xulapp.xpt -%{_libdir}/%{name}/components/xuldoc.xpt -%{_libdir}/%{name}/components/xultmpl.xpt -%dir %{_libdir}/%{name}/plugins -%attr(755,root,root) %{_libdir}/%{name}/plugins/*.so -%attr(755,root,root) %{_libdir}/%{name}/*.sh -%attr(755,root,root) %{_libdir}/%{name}/m* -%attr(755,root,root) %{_libdir}/%{name}/f* -%attr(755,root,root) %{_libdir}/%{name}/regxpcom -%attr(755,root,root) %{_libdir}/%{name}/xpcshell -%attr(755,root,root) %{_libdir}/%{name}/xpicleanup -%{_pixmapsdir}/mozilla-firefox.png -%{_desktopdir}/mozilla-firefox.desktop +%dir %{_datadir}/%{name} +%dir %{_datadir}/%{name}/browser +%dir %{_datadir}/%{name}/browser/extensions +%{_datadir}/%{name}/browser/chrome +%{_datadir}/%{name}/browser/defaults +%{_datadir}/%{name}/browser/icons +%{_datadir}/%{name}/browser/searchplugins # symlinks -%{_libdir}/%{name}/chrome -%{_libdir}/%{name}/defaults -%{_libdir}/%{name}/dictionaries -%{_libdir}/%{name}/extensions -%{_libdir}/%{name}/greprefs -%{_libdir}/%{name}/icons -%{_libdir}/%{name}/init.d -%{_libdir}/%{name}/res -%{_libdir}/%{name}/searchplugins - -# browserconfig -%{_libdir}/%{name}/browserconfig.properties - -%{_libdir}/%{name}/LICENSE -%{_libdir}/%{name}/README.txt - -%dir %{_datadir}/%{name} -%{_datadir}/%{name}/chrome -%{_datadir}/%{name}/defaults -%{_datadir}/%{name}/greprefs -%{_datadir}/%{name}/icons -%{_datadir}/%{name}/init.d -%{_datadir}/%{name}/res -%{_datadir}/%{name}/searchplugins - -%dir %{_datadir}/%{name}/extensions -# -dom-inspector subpackage? -%{_datadir}/%{name}/extensions/inspector@mozilla.org +%{_libdir}/%{name}/browser/extensions +%{_libdir}/%{name}/browser/chrome +%{_libdir}/%{name}/browser/icons +%{_libdir}/%{name}/browser/searchplugins +%if %{with xulrunner} +%{_libdir}/%{name}/xulrunner +%endif +%{_libdir}/%{name}/browser/defaults + +%attr(755,root,root) %{_libdir}/%{name}/firefox +%attr(755,root,root) %{_libdir}/%{name}/firefox-bin +%attr(755,root,root) %{_libdir}/%{name}/run-mozilla.sh +%{_libdir}/%{name}/application.ini +%{_libdir}/%{name}/browser/blocklist.xml +%{_libdir}/%{name}/browser/chrome.manifest +%{_libdir}/%{name}/browser/components/components.manifest +%attr(755,root,root) %{_libdir}/%{name}/browser/components/libbrowsercomps.so # the signature of the default theme -%{_datadir}/%{name}/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} - -# files created by regxpcom and firefox -register -%ghost %{_libdir}/%{name}/components/compreg.dat -%ghost %{_libdir}/%{name}/components/xpti.dat - -%if %{with tidy} -%files addon-tidy -%defattr(644,root,root,755) -%attr(755,root,root) %{_libdir}/%{name}/components/libnstidy.so -%{_libdir}/%{name}/components/nstidy.xpt +%{_datadir}/%{name}/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} +%{_libdir}/%{name}/browser/omni.ja +%{_libdir}/%{name}/webapprt +%attr(755,root,root) %{_libdir}/%{name}/webapprt-stub + +# files created by firefox -register +%ghost %{_libdir}/%{name}/browser/components/compreg.dat +%ghost %{_libdir}/%{name}/browser/components/xpti.dat + +%if %{without xulrunner} +# private xulrunner instance +%{_libdir}/%{name}/dependentlibs.list +%{_libdir}/%{name}/platform.ini +%dir %{_libdir}/%{name}/components +%{_libdir}/%{name}/components/components.manifest +%attr(755,root,root) %{_libdir}/%{name}/components/libdbusservice.so +%attr(755,root,root) %{_libdir}/%{name}/components/libmozgnome.so +%attr(755,root,root) %{_libdir}/%{name}/libmozalloc.so +%attr(755,root,root) %{_libdir}/%{name}/libmozjs.so +%attr(755,root,root) %{_libdir}/%{name}/libxul.so +%attr(755,root,root) %{_libdir}/%{name}/mozilla-xremote-client +%attr(755,root,root) %{_libdir}/%{name}/plugin-container +%{_libdir}/%{name}/dictionaries +%{_libdir}/%{name}/chrome.manifest +%{_libdir}/%{name}/omni.ja %endif