X-Git-Url: http://git.pld-linux.org/gitweb.cgi?a=blobdiff_plain;f=iceweasel.spec;h=1f474a228331c54ba422fc68b93d84348a3d2283;hb=e425b710e2f24ecc1968f452f0bc65bc3b2df733;hp=942a90d97289a2d9d2bf86f6c2c772e552406213;hpb=3e529974dcb77f2761f25b371ad3b82ada50ff48;p=packages%2Ficeweasel.git diff --git a/iceweasel.spec b/iceweasel.spec index 942a90d..1f474a2 100644 --- a/iceweasel.spec +++ b/iceweasel.spec @@ -1,59 +1,55 @@ # TODO: -# - provide proper $DISPLAY for PGO (Xvfb, Xdummy...) for unattended builds +# - consider --enable-libproxy # # Conditional build: %bcond_with tests # enable tests (whatever they check) -%bcond_without gnomeui # disable gnomeui support -%bcond_without gnome # synonym for gnomeui (gconf, libnotify and gio are still enabled) +%bcond_with gtk3 # GTK+ 3.x instead of 2.x %bcond_without kerberos # disable krb5 support -%bcond_without xulrunner # build without system xulrunner -%bcond_with pgo # PGO-enabled build (requires working $DISPLAY == :100) +%bcond_without pgo # PGO-enabled build (requires working $DISPLAY == :100) +# - disabled shared_js - https://bugzilla.mozilla.org/show_bug.cgi?id=1039964 +%bcond_with shared_js # shared libmozjs library [broken] -%if %{without gnome} -%undefine with_gnomeui -%endif - -# convert firefox release number to platform version: 19.0.x -> 19.0.x -%define xulrunner_main 20.0 -%define xulrunner_ver %(v=%{version}; echo %{xulrunner_main}${v#20.0}) +# On updating version, grab CVE links from: +# https://www.mozilla.org/security/known-vulnerabilities/firefox.html -%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 nspr_ver 4.9.5 -%define nss_ver 3.14.3 +%define nspr_ver 4.10.8 +%define nss_ver 3.18.1 Summary: Iceweasel web browser Summary(hu.UTF-8): Iceweasel web böngésző Summary(pl.UTF-8): Iceweasel - przeglądarka WWW Name: iceweasel -Version: 20.0.1 +Version: 38.0.5 Release: 1 -License: MPL 1.1 or GPL v2+ or LGPL v2.1+ +License: MPL v2.0 Group: X11/Applications/Networking Source0: http://releases.mozilla.org/pub/mozilla.org/firefox/releases/%{version}/source/firefox-%{version}.source.tar.bz2 -# Source0-md5: b822ff4b2348410587dec563235d9320 -Source1: %{name}-branding.tar.bz2 -# Source1-md5: 816d926bd2c76a5bba5108979ba776ac +# Source0-md5: 60466afbc7105d29dcd18f996c9c67e0 +Source1: %{name}-branding.tar.xz +# Source1-md5: aacc7e8298a3e6aa3ef2a3613a62f635 Source2: %{name}-rm_nonfree.sh Source3: %{name}.desktop Source4: %{name}.sh Source5: vendor.js Source6: vendor-ac.js Patch0: %{name}-branding.patch -Patch2: %{name}-gcc3.patch -Patch7: %{name}-prefs.patch -Patch8: %{name}-pld-branding.patch -Patch9: %{name}-no-subshell.patch -Patch10: system-cairo.patch -Patch11: %{name}-middle_click_paste.patch -Patch12: %{name}-packaging.patch -# Edit patch below and restore --system-site-packages when system virtualenv gets 1.7 upgrade -Patch13: system-virtualenv.patch +Patch1: idl-parser.patch +Patch2: xulrunner-new-libxul.patch +Patch3: xulrunner-paths.patch +Patch4: xulrunner-pc.patch +Patch5: install-pc-files.patch +Patch6: %{name}-prefs.patch +Patch7: %{name}-pld-branding.patch +Patch8: %{name}-no-subshell.patch +Patch9: %{name}-middle_click_paste.patch +Patch10: %{name}-packaging.patch +Patch11: system-virtualenv.patch +Patch12: Disable-Firefox-Health-Report.patch +Patch13: freetype-2.6.patch URL: http://www.pld-linux.org/Packages/Iceweasel -BuildRequires: GConf2-devel >= 1.2.1 BuildRequires: OpenGL-devel BuildRequires: ImageMagick BuildRequires: ImageMagick-coder-png @@ -62,73 +58,72 @@ BuildRequires: automake BuildRequires: bzip2-devel BuildRequires: cairo-devel >= 1.10.2-5 BuildRequires: dbus-glib-devel >= 0.60 -BuildRequires: glib2-devel >= 1:2.20 -BuildRequires: gtk+2-devel >= 2:2.14 +BuildRequires: freetype-devel >= 1:2.6 +BuildRequires: gcc-c++ >= 6:4.4 +BuildRequires: glib2-devel >= 1:2.22 +BuildRequires: gstreamer-devel >= 1.0 +BuildRequires: gstreamer-plugins-base-devel >= 1.0 +%{!?with_gtk3:BuildRequires: gtk+2-devel >= 2:2.18.0} +%{?with_gtk3:BuildRequires: gtk+3-devel >= 3.4.0} %{?with_kerberos:BuildRequires: heimdal-devel >= 0.7.1} -BuildRequires: hunspell-devel +BuildRequires: hunspell-devel >= 1.2.3 BuildRequires: libIDL-devel >= 0.8.0 -BuildRequires: libdnet-devel +# DECnet (dnprogs.spec), not dummy net (libdnet.spec) +#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 -%{?with_gnomeui:BuildRequires: libgnomeui-devel >= 2.2.0} -BuildRequires: libiw-devel +BuildRequires: libicu-devel >= 50.1 # requires libjpeg-turbo implementing at least libjpeg 6b API BuildRequires: libjpeg-devel >= 6b BuildRequires: libjpeg-turbo-devel -BuildRequires: libnotify-devel >= 0.4 +# for rsvg-convert +BuildRequires: librsvg BuildRequires: libpng(APNG)-devel >= 0.10 -BuildRequires: libpng-devel >= 1.5.13 -BuildRequires: libstdc++-devel -BuildRequires: libvpx-devel >= 1.0.0 +BuildRequires: libpng-devel >= 2:1.6.16 +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: pango-devel >= 1:1.22.0 +BuildRequires: pixman-devel >= 0.19.2 BuildRequires: perl-modules >= 5.004 BuildRequires: pkgconfig BuildRequires: pkgconfig(libffi) >= 3.0.9 -BuildRequires: python-modules +BuildRequires: pulseaudio-devel +BuildRequires: python-modules >= 1:2.5 %{?with_pgo:BuildRequires: python-modules-sqlite} -BuildRequires: python-virtualenv +BuildRequires: python-simplejson +BuildRequires: python-virtualenv >= 1.9.1-4 +BuildRequires: readline-devel BuildRequires: rpm >= 4.4.9-56 BuildRequires: rpmbuild(macros) >= 1.601 -BuildRequires: sqlite3-devel >= 3.7.15.2 +BuildRequires: sed >= 4.0 +BuildRequires: sqlite3-devel >= 3.8.9 BuildRequires: startup-notification-devel >= 0.8 BuildRequires: xorg-lib-libXScrnSaver-devel BuildRequires: xorg-lib-libXext-devel BuildRequires: xorg-lib-libXinerama-devel BuildRequires: xorg-lib-libXt-devel -%if %{with xulrunner} -BuildRequires: xulrunner-devel >= 2:%{xulrunner_ver} -%endif +%{?with_pgo:BuildRequires: xorg-xserver-Xvfb} BuildRequires: zip BuildRequires: zlib-devel >= 1.2.3 +BuildConflicts: %{name}-devel < %{version} Requires(post): mktemp >= 1.5-18 +Requires: browser-plugins >= 2.0 Requires: desktop-file-utils Requires: hicolor-icon-theme -%if %{with xulrunner} -%requires_eq_to xulrunner xulrunner-devel -%else -Requires: browser-plugins >= 2.0 -Requires: cairo >= 1.10.2-5 -Requires: dbus-glib >= 0.60 -Requires: glib2 >= 1:2.20 -Requires: gtk+2 >= 2:2.14 -Requires: libjpeg-turbo -Requires: libpng >= 1.5.13 -Requires: libpng(APNG) >= 0.10 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 +Requires: %{name}-libs = %{version}-%{release} Provides: wwwbrowser Obsoletes: mozilla-firebird Obsoletes: mozilla-firefox Obsoletes: mozilla-firefox-lang-en < 2.0.0.8-3 Obsoletes: mozilla-firefox-libs +Obsoletes: xulrunner +Obsoletes: xulrunner-gnome Conflicts: iceweasel-lang-resources < %{version} BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) @@ -136,10 +131,9 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) # don't satisfy other packages %define _noautoprovfiles %{_libdir}/%{name} -%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 +%define _noautoreq libmozalloc.so libmozjs.so libxul.so %description Iceweasel is an open-source web browser, designed for standards @@ -154,6 +148,51 @@ Iceweasel 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 libs +Summary: Iceweasel shared libraries +Summary(pl.UTF-8): Biblioteki współdzielone Iceweasela +Group: X11/Libraries +Requires: cairo >= 1.10.2-5 +Requires: dbus-glib >= 0.60 +Requires: glib2 >= 1:2.22 +%{!?with_gtk3:Requires: gtk+2 >= 2:2.18.0} +%{?with_gtk3:Requires: gtk+3 >= 3.4.0} +Requires: libjpeg-turbo +Requires: libpng >= 2:1.6.16 +Requires: libpng(APNG) >= 0.10 +Requires: libvpx >= 1.3.0 +Requires: pango >= 1:1.22.0 +Requires: sqlite3 >= %{sqlite_build_version} +Requires: startup-notification >= 0.8 +Provides: xulrunner-libs = 2:%{version}-%{release} +Obsoletes: xulrunner-libs + +%description libs +XULRunner shared libraries. + +%description libs -l pl.UTF-8 +Biblioteki współdzielone XULRunnera. + +%package devel +Summary: Headers for developing programs that will use Iceweasel +Summary(pl.UTF-8): Pliki nagłówkowe do tworzenia programów używających Iceweasel +Group: X11/Development/Libraries +Requires: %{name}-libs = %{version}-%{release} +Requires: nspr-devel >= 1:%{nspr_ver} +Requires: nss-devel >= 1:%{nss_ver} +Requires: python-ply +Provides: xulrunner-devel = 2:%{version}-%{release} +Obsoletes: mozilla-devel +Obsoletes: mozilla-firefox-devel +Obsoletes: seamonkey-devel +Obsoletes: xulrunner-devel + +%description devel +Iceweasel development package. + +%description devel -l pl.UTF-8 +Pakiet programistyczny Iceweasela. + %prep %setup -qc mv -f mozilla-release mozilla @@ -161,23 +200,27 @@ mv -f mozilla-release mozilla cd mozilla /bin/sh %{SOURCE2} -%patch0 -p1 - -%if "%{cc_version}" < "3.4" -%patch2 -p2 -%endif +# avoid using included headers (-I. is before HUNSPELL_CFLAGS) +%{__rm} extensions/spellcheck/hunspell/src/{*.hxx,hunspell.h} +# hunspell needed for factory including mozHunspell.h +echo 'LOCAL_INCLUDES += $(MOZ_HUNSPELL_CFLAGS)' >> extensions/spellcheck/src/Makefile.in +%patch0 -p1 +%patch1 -p2 +%patch2 -p1 +%patch3 -p2 +%patch4 -p1 +%patch5 -p2 +%patch6 -p1 %patch7 -p1 -%patch8 -p1 +%patch8 -p2 %patch9 -p2 -%patch10 -p2 +%patch10 -p1 %patch11 -p2 -%patch12 -p2 -%patch13 -p2 +%patch12 -p1 +%patch13 -p1 -# config/rules.mk is patched by us and js/src/config/rules.mk -# is supposed to be exact copy -cp -a config/rules.mk js/src/config/rules.mk +cp -a xulrunner/installer/*.pc.in browser/installer/ %if %{with pgo} sed -i -e 's@__BROWSER_PATH__@"../../dist/bin/iceweasel-bin"@' build/automation.py.in @@ -185,19 +228,16 @@ sed -i -e 's@__BROWSER_PATH__@"../../dist/bin/iceweasel-bin"@' build/automation. %build cd mozilla -cp -f %{_datadir}/automake/config.* build/autoconf +cp -p %{_datadir}/automake/config.* build/autoconf -cat << EOF > .mozconfig -. \$topsrcdir/browser/config/mozconfig +cat << 'EOF' > .mozconfig +. $topsrcdir/browser/config/mozconfig mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-%{_target_cpu} -# 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} @@ -211,7 +251,6 @@ ac_add_options --localstatedir=%{_localstatedir} ac_add_options --sharedstatedir=%{_sharedstatedir} ac_add_options --mandir=%{_mandir} ac_add_options --infodir=%{_infodir} -ac_add_options --disable-elf-hack %if %{?debug:1}0 ac_add_options --disable-optimize ac_add_options --enable-debug @@ -226,59 +265,85 @@ 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 +%if %{with pgo} +ac_add_options --enable-tests %else ac_add_options --disable-tests %endif -%if %{with gnomeui} -ac_add_options --enable-gnomeui -%else -ac_add_options --disable-gnomeui +ac_add_options --disable-mochitest %endif -ac_add_options --disable-gnomevfs +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 +ac_add_options --disable-gnomevfs 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 --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 ac_add_options --enable-gio +ac_add_options --enable-gstreamer=1.0 ac_add_options --enable-libxul +ac_add_options --enable-mathml ac_add_options --enable-pango -ac_add_options --enable-shared-js +ac_add_options --enable-readline +ac_add_options --enable-safe-browsing +%{?with_shared_js: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-ffi ac_add_options --enable-system-hunspell ac_add_options --enable-system-sqlite -ac_add_options --with-distribution-id=org.pld-linux +ac_add_options --enable-url-classifier +ac_add_options --enable-xinerama ac_add_options --with-branding=iceweasel/branding -%if %{with xulrunner} -ac_add_options --with-libxul-sdk=$(pkg-config --variable=sdkdir libxul) -%endif +ac_add_options --with-default-mozilla-five-home=%{_libdir}/%{name} +ac_add_options --with-distribution-id=org.pld-linux ac_add_options --with-pthreads ac_add_options --with-system-bz2 -ac_add_options --with-system-ffi +ac_add_options --with-system-icu 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-x EOF %if %{with pgo} -export DISPLAY=:100 -%{__make} -f client.mk profiledbuild \ +D=$(( RANDOM % (200 - 100 + 1 ) + 5 )) +/usr/bin/Xvfb :${D} & +XVFB_PID=$! +[ -n "$XVFB_PID" ] || exit 1 +export DISPLAY=:${D} +%{__make} -j1 -f client.mk profiledbuild \ DESTDIR=obj-%{_target_cpu}/dist \ - STRIP="/bin/true" \ CC="%{__cc}" \ - CXX="%{__cxx}" + CXX="%{__cxx}" \ + MOZ_MAKE_FLAGS="%{_smp_mflags}" +kill $XVFB_PID %else -%{__make} -f client.mk build \ - STRIP="/bin/true" \ +%{__make} -j1 -f client.mk build \ CC="%{__cc}" \ - CXX="%{__cxx}" + CXX="%{__cxx}" \ + MOZ_MAKE_FLAGS="%{_smp_mflags}" %endif %install @@ -287,56 +352,62 @@ cd mozilla install -d \ $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_libdir}} \ $RPM_BUILD_ROOT%{_desktopdir} \ - $RPM_BUILD_ROOT%{_datadir}/%{name} \ - $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins + $RPM_BUILD_ROOT%{_datadir}/%{name}/browser \ + $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/plugins \ + $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/sdk/{lib,bin} \ + $RPM_BUILD_ROOT%{_includedir}/%{name} \ + $RPM_BUILD_ROOT%{_datadir}/idl/%{name} \ + $RPM_BUILD_ROOT%{_pkgconfigdir} -%browser_plugins_add_browser %{name} -p %{_libdir}/%{name}/plugins +%browser_plugins_add_browser %{name} -p %{_libdir}/%{name}/browser/plugins cd obj-%{_target_cpu} -%{__make} -C browser/installer stage-package \ +%{__make} -C browser/installer stage-package libxul.pc libxul-embedding.pc mozilla-js.pc mozilla-plugin.pc \ DESTDIR=$RPM_BUILD_ROOT \ installdir=%{_libdir}/%{name} \ + INSTALL_SDK=1 \ PKG_SKIP_STRIP=1 %{__make} -C iceweasel/branding install \ DESTDIR=$RPM_BUILD_ROOT -cp -a dist/iceweasel/* $RPM_BUILD_ROOT%{_libdir}/%{name}/ - -%if %{with xulrunner} -# >= 5.0 seems to require this -ln -s ../xulrunner $RPM_BUILD_ROOT%{_libdir}/%{name}/xulrunner -%endif +cp -aL browser/installer/*.pc $RPM_BUILD_ROOT%{_pkgconfigdir} +cp -aL dist/iceweasel/* $RPM_BUILD_ROOT%{_libdir}/%{name}/ +cp -aL dist/idl/* $RPM_BUILD_ROOT%{_datadir}/idl/%{name} +cp -aL dist/include/* $RPM_BUILD_ROOT%{_includedir}/%{name} +cp -aL dist/include/xpcom-config.h $RPM_BUILD_ROOT%{_libdir}/%{name}-devel +cp -aL dist/sdk/lib/* $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/sdk/lib +cp -aL dist/sdk/bin/* $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/sdk/bin +find $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/sdk -name "*.pyc" | xargs rm -f + +ln -s %{_libdir}/%{name} $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/bin +ln -s %{_includedir}/%{name} $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/include +ln -s %{_datadir}/idl/%{name} $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/idl +ln -s %{_libdir}/%{name}-devel/sdk/lib $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/lib + +# replace copies with symlinks +%{?with_shared_js:ln -sf %{_libdir}/%{name}/libmozjs.so $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/sdk/lib/libmozjs.so} +ln -sf %{_libdir}/%{name}/libxul.so $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/sdk/lib/libxul.so +ln -sf %{_libdir}/%{name}/libmozalloc.so $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/sdk/lib/libmozalloc.so +# temp fix for https://bugzilla.mozilla.org/show_bug.cgi?id=63955 +chmod a+rx $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/sdk/bin/xpt.py # 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}/icons $RPM_BUILD_ROOT%{_datadir}/%{name}/icons -mv $RPM_BUILD_ROOT%{_libdir}/%{name}/modules $RPM_BUILD_ROOT%{_datadir}/%{name}/modules -mv $RPM_BUILD_ROOT%{_libdir}/%{name}/searchplugins $RPM_BUILD_ROOT%{_datadir}/%{name}/searchplugins -%if %{without xulrunner} -mv $RPM_BUILD_ROOT%{_libdir}/%{name}/greprefs.js $RPM_BUILD_ROOT%{_datadir}/%{name}/greprefs.js -mv $RPM_BUILD_ROOT%{_libdir}/%{name}/res $RPM_BUILD_ROOT%{_datadir}/%{name}/res -%endif +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 +mv $RPM_BUILD_ROOT%{_libdir}/%{name}/defaults $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/defaults +mv $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/defaults/{pref,preferences} + +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 -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}/modules $RPM_BUILD_ROOT%{_libdir}/%{name}/modules -ln -s ../../share/%{name}/icons $RPM_BUILD_ROOT%{_libdir}/%{name}/icons -ln -s ../../share/%{name}/searchplugins $RPM_BUILD_ROOT%{_libdir}/%{name}/searchplugins -%if %{without xulrunner} -ln -s ../../share/%{name}/greprefs.js $RPM_BUILD_ROOT%{_libdir}/%{name}/greprefs.js -ln -s ../../share/%{name}/res $RPM_BUILD_ROOT%{_libdir}/%{name}/res -%endif - -%if %{without xulrunner} %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{name}/dictionaries ln -s %{_datadir}/myspell $RPM_BUILD_ROOT%{_libdir}/%{name}/dictionaries -%{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{name}/hyphenation -ln -s %{_datadir}/myspell $RPM_BUILD_ROOT%{_libdir}/%{name}/hyphenation -%endif sed 's,@LIBDIR@,%{_libdir},' %{SOURCE4} > $RPM_BUILD_ROOT%{_bindir}/iceweasel chmod 755 $RPM_BUILD_ROOT%{_bindir}/iceweasel @@ -354,20 +425,20 @@ done cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop # install our settings -cp -a %{SOURCE5} $RPM_BUILD_ROOT%{_datadir}/%{name}/defaults/preferences/vendor.js - %if "%{pld_release}" == "ac" -cp -a %{SOURCE6} $RPM_BUILD_ROOT%{_datadir}/%{name}/defaults/preferences/vendor.js +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 # files created by iceweasel -register -touch $RPM_BUILD_ROOT%{_libdir}/%{name}/components/compreg.dat -touch $RPM_BUILD_ROOT%{_libdir}/%{name}/components/xpti.dat +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!!! @@ -385,15 +456,16 @@ chmod 755 $RPM_BUILD_ROOT%{_sbindir}/%{name}-chrome+xpcom-generate 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.js icons 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 @@ -415,165 +487,98 @@ fi %attr(755,root,root) %{_bindir}/mozilla-firefox %attr(755,root,root) %{_sbindir}/%{name}-chrome+xpcom-generate +%{_desktopdir}/iceweasel.desktop +%{_iconsdir}/hicolor/*/apps/iceweasel.png + # browser plugins v2 %{_browserpluginsconfdir}/browsers.d/%{name}.* %config(noreplace) %verify(not md5 mtime size) %{_browserpluginsconfdir}/blacklist.d/%{name}.*.blacklist -%dir %{_libdir}/%{name} -%if %{without xulrunner} -%attr(755,root,root) %{_libdir}/%{name}/libmozalloc.so -%attr(755,root,root) %{_libdir}/%{name}/libmozjs.so -%attr(755,root,root) %{_libdir}/%{name}/libxpcom.so -%attr(755,root,root) %{_libdir}/%{name}/libxul.so -%endif -%{_libdir}/%{name}/blocklist.xml - -%if %{with crashreporter} -%{_libdir}/%{name}/crashreporter -%{_libdir}/%{name}/crashreporter-override.ini -%{_libdir}/%{name}/crashreporter.ini -%{_libdir}/%{name}/Throbber-small.gif -%endif - -# config? -%{_libdir}/%{name}/application.ini -%{_libdir}/%{name}/chrome.manifest +%dir %{_libdir}/%{name}/browser +%dir %{_libdir}/%{name}/browser/components +%dir %{_libdir}/%{name}/browser/plugins -%dir %{_libdir}/%{name}/components - -%{_libdir}/%{name}/components/ChromeProfileMigrator.js -%{_libdir}/%{name}/components/DownloadsStartup.js -%{_libdir}/%{name}/components/DownloadsUI.js -%{_libdir}/%{name}/components/FeedConverter.js -%{_libdir}/%{name}/components/FeedWriter.js -%{_libdir}/%{name}/components/FirefoxProfileMigrator.js -%{_libdir}/%{name}/components/PageThumbsProtocol.js -%{_libdir}/%{name}/components/PlacesProtocolHandler.js -%{_libdir}/%{name}/components/ProfileMigrator.js -%{_libdir}/%{name}/components/WebContentConverter.js -%{_libdir}/%{name}/components/browser.xpt -%{_libdir}/%{name}/components/fuelApplication.js -%{_libdir}/%{name}/components/nsBrowserContentHandler.js -%{_libdir}/%{name}/components/nsBrowserGlue.js -%{_libdir}/%{name}/components/nsPrivateBrowsingServiceObsolete.js -%{_libdir}/%{name}/components/nsSessionStartup.js -%{_libdir}/%{name}/components/nsSessionStore.js -%{_libdir}/%{name}/components/nsSetDefaultBrowser.js -%{_libdir}/%{name}/components/nsSidebar.js - -%{_libdir}/%{name}/components/components.manifest -%{_libdir}/%{name}/components/interfaces.manifest +%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 -%if %{without xulrunner} -%{_libdir}/%{name}/dependentlibs.list -%{_libdir}/%{name}/platform.ini -%{_libdir}/%{name}/components/AppsService.js -%{_libdir}/%{name}/components/BrowserElementParent.js -%{_libdir}/%{name}/components/ConsoleAPI.js -%{_libdir}/%{name}/components/ContactManager.js -%{_libdir}/%{name}/components/FeedProcessor.js -%{_libdir}/%{name}/components/GPSDGeolocationProvider.js -%{_libdir}/%{name}/components/NetworkGeolocationProvider.js -%{_libdir}/%{name}/components/PlacesCategoriesStarter.js -%{_libdir}/%{name}/components/SettingsManager.js -%{_libdir}/%{name}/components/TelemetryPing.js -%{_libdir}/%{name}/components/addonManager.js -%{_libdir}/%{name}/components/amContentHandler.js -%{_libdir}/%{name}/components/amWebInstallListener.js -%{_libdir}/%{name}/components/contentAreaDropListener.js -%{_libdir}/%{name}/components/contentSecurityPolicy.js -%{_libdir}/%{name}/components/crypto-SDR.js -%{_libdir}/%{name}/components/jsconsole-clhandler.js -%{_libdir}/%{name}/components/messageWakeupService.js -%{_libdir}/%{name}/components/nsBadCertHandler.js -%{_libdir}/%{name}/components/nsBlocklistService.js -%{_libdir}/%{name}/components/nsContentDispatchChooser.js -%{_libdir}/%{name}/components/nsContentPrefService.js -%{_libdir}/%{name}/components/nsDefaultCLH.js -%{_libdir}/%{name}/components/nsDownloadManagerUI.js -%{_libdir}/%{name}/components/nsFilePicker.js -%{_libdir}/%{name}/components/nsFormAutoComplete.js -%{_libdir}/%{name}/components/nsFormHistory.js -%{_libdir}/%{name}/components/nsHandlerService.js -%{_libdir}/%{name}/components/nsHelperAppDlg.js -%{_libdir}/%{name}/components/nsINIProcessor.js -%{_libdir}/%{name}/components/nsInputListAutoComplete.js -%{_libdir}/%{name}/components/nsLivemarkService.js -%{_libdir}/%{name}/components/nsLoginInfo.js -%{_libdir}/%{name}/components/nsLoginManager.js -%{_libdir}/%{name}/components/nsLoginManagerPrompter.js -%{_libdir}/%{name}/components/nsPlacesAutoComplete.js -%{_libdir}/%{name}/components/nsPlacesExpiration.js -%{_libdir}/%{name}/components/nsPrompter.js -%{_libdir}/%{name}/components/nsProxyAutoConfig.js -%{_libdir}/%{name}/components/nsSearchService.js -%{_libdir}/%{name}/components/nsSearchSuggestions.js -%{_libdir}/%{name}/components/nsTaggingService.js -%{_libdir}/%{name}/components/nsURLFormatter.js -%{_libdir}/%{name}/components/nsUrlClassifierHashCompleter.js -%{_libdir}/%{name}/components/nsUrlClassifierLib.js -%{_libdir}/%{name}/components/nsUrlClassifierListManager.js -%{_libdir}/%{name}/components/nsWebHandlerApp.js -%{_libdir}/%{name}/components/storage-Legacy.js -%{_libdir}/%{name}/components/storage-mozStorage.js -%{_libdir}/%{name}/components/txEXSLTRegExFunctions.js -%endif +# symlinks +%{_libdir}/%{name}/browser/extensions +%{_libdir}/%{name}/browser/chrome +%{_libdir}/%{name}/browser/icons +%{_libdir}/%{name}/browser/searchplugins +%{_libdir}/%{name}/browser/defaults +%attr(755,root,root) %{_libdir}/%{name}/iceweasel +%attr(755,root,root) %{_libdir}/%{name}/iceweasel-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}/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} +%{_libdir}/%{name}/browser/omni.ja %{_libdir}/%{name}/webapprt %attr(755,root,root) %{_libdir}/%{name}/webapprt-stub -%attr(755,root,root) %{_libdir}/%{name}/components/libbrowsercomps.so -%if %{without xulrunner} -%attr(755,root,root) %{_libdir}/%{name}/components/libdbusservice.so -%endif +# files created by iceweasel -register +%ghost %{_libdir}/%{name}/browser/components/compreg.dat +%ghost %{_libdir}/%{name}/browser/components/xpti.dat -%if %{without xulrunner} +# private xulrunner instance +%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 -%endif - -%attr(755,root,root) %{_libdir}/%{name}/iceweasel -%dir %{_libdir}/%{name}/plugins -%if %{without xulrunner} -%attr(755,root,root) %{_libdir}/%{name}/run-mozilla.sh -%attr(755,root,root) %{_libdir}/%{name}/iceweasel-bin -%attr(755,root,root) %{_libdir}/%{name}/mozilla-xremote-client %attr(755,root,root) %{_libdir}/%{name}/plugin-container -%endif - -%{_iconsdir}/hicolor/*/*/iceweasel.png -%{_desktopdir}/iceweasel.desktop - -# symlinks -%{_libdir}/%{name}/chrome -%{_libdir}/%{name}/defaults -%{_libdir}/%{name}/extensions -%{_libdir}/%{name}/icons -%{_libdir}/%{name}/modules -%{_libdir}/%{name}/searchplugins -%if %{with xulrunner} -%{_libdir}/%{name}/xulrunner -%else %{_libdir}/%{name}/dictionaries -%{_libdir}/%{name}/hyphenation -%{_libdir}/%{name}/greprefs.js -%{_libdir}/%{name}/res -%endif +%{_libdir}/%{name}/chrome.manifest -%dir %{_datadir}/%{name} -%{_datadir}/%{name}/chrome -%{_datadir}/%{name}/defaults -%{_datadir}/%{name}/icons -%{_datadir}/%{name}/modules -%{_datadir}/%{name}/searchplugins -%if %{without xulrunner} -%{_datadir}/%{name}/greprefs.js -%{_datadir}/%{name}/res -%endif +%dir %{_libdir}/%{name}/gmp-clearkey +%dir %{_libdir}/%{name}/gmp-clearkey/0.1 +%{_libdir}/%{name}/gmp-clearkey/0.1/clearkey.info +%attr(755,root,root) %{_libdir}/%{name}/gmp-clearkey/0.1/libclearkey.so -%dir %{_datadir}/%{name}/extensions -# the signature of the default theme -%{_datadir}/%{name}/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} +%files libs +%defattr(644,root,root,755) +%dir %{_libdir}/%{name} +%{_libdir}/%{name}/platform.ini +%attr(755,root,root) %{_libdir}/%{name}/libmozalloc.so +%{?with_shared_js:%attr(755,root,root) %{_libdir}/%{name}/libmozjs.so} +%attr(755,root,root) %{_libdir}/%{name}/libxul.so +%{_libdir}/%{name}/dependentlibs.list +%{_libdir}/%{name}/omni.ja -# files created by iceweasel -register -%ghost %{_libdir}/%{name}/components/compreg.dat -%ghost %{_libdir}/%{name}/components/xpti.dat +%files devel +%defattr(644,root,root,755) +%{_includedir}/%{name} +%{_datadir}/idl/%{name} +%dir %{_libdir}/%{name}-devel +%{_libdir}/%{name}-devel/bin +%{_libdir}/%{name}-devel/idl +%{_libdir}/%{name}-devel/lib +%{_libdir}/%{name}-devel/include +%{_libdir}/%{name}-devel/*.h +%dir %{_libdir}/%{name}-devel/sdk +%{_libdir}/%{name}-devel/sdk/lib +%dir %{_libdir}/%{name}-devel/sdk/bin +%attr(755,root,root) %{_libdir}/%{name}-devel/sdk/bin/header.py +%attr(755,root,root) %{_libdir}/%{name}-devel/sdk/bin/run-mozilla.sh +%attr(755,root,root) %{_libdir}/%{name}-devel/sdk/bin/typelib.py +%attr(755,root,root) %{_libdir}/%{name}-devel/sdk/bin/xpcshell +%attr(755,root,root) %{_libdir}/%{name}-devel/sdk/bin/xpidl.py +%{_libdir}/%{name}-devel/sdk/bin/xpidllex.py +%{_libdir}/%{name}-devel/sdk/bin/xpidlyacc.py +%attr(755,root,root) %{_libdir}/%{name}-devel/sdk/bin/xpt.py +%{_libdir}/%{name}-devel/sdk/bin/ply + +%{_pkgconfigdir}/libxul.pc +%{_pkgconfigdir}/libxul-embedding.pc +%{_pkgconfigdir}/mozilla-js.pc +%{_pkgconfigdir}/mozilla-plugin.pc