%bcond_with syshunspell %define oname PM %define newmoon_appid \{8de7fcbb-c55c-4fbe-bfc5-fc555c87dbc4\} # (tpg) MOZILLA_FIVE_HOME %define mozillalibdir %{_libdir}/%{name}-%{version} %define pluginsdir %{_libdir}/mozilla/plugins # this seems fragile, so require the exact version or later (#58754) %define sqlite3_version %(pkg-config --modversion sqlite3 &>/dev/null && pkg-config --modversion sqlite3 2>/dev/null || echo 0) %define nss_version %(pkg-config --modversion nss &>/dev/null && pkg-config --modversion nss 2>/dev/null || echo 0) %define nspr_version %(pkg-config --modversion nspr &>/dev/null && pkg-config --modversion nspr 2>/dev/null |sed -e 's!\.0!!' || echo 0) # We cannot use "Pale Moon" branding because of various restrictions, see: # http://www.palemoon.org/branding.shtml Summary: Web browser based on Goanna engine Name: newmoon Version: 28.0.1 Release: 1 License: MPLv2.0 Group: Networking/WWW Url: http://www.palemoon.org Source0: https://github.com/MoonchildProductions/UXP/archive/%{oname}%{version}_Release.tar.gz?/UXP-%{oname}%{version}_Release.tar.gz Source1: newmoon.rpmlintrc Source2: xulstore.json Source4: %{name}.desktop Source5: firefox-searchengines-yandex.xml Source6: firefox-searchengines-google.xml Source9: kde.js # https://www.mozilla.org/en-US/firefox/all/ Source10: firefox-dictionary-61.0.2.tar.bz2 Patch6: palemoon-27.4.0-enable-addons.patch Patch7: palemoon-27.4.0-user-agent-overrides.patch BuildRequires: autoconf2.1 BuildRequires: doxygen BuildRequires: imagemagick BuildRequires: makedepend BuildRequires: python-simplejson BuildRequires: rootcerts BuildRequires: unzip BuildRequires: valgrind BuildRequires: wget BuildRequires: yasm BuildRequires: zip BuildRequires: libiw-devel BuildRequires: jpeg-devel BuildRequires: nss-static-devel BuildRequires: pkgconfig(alsa) BuildRequires: pkgconfig(cairo) BuildRequires: pkgconfig(dbus-glib-1) BuildRequires: pkgconfig(gconf-2.0) BuildRequires: pkgconfig(gl) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(gstreamer-1.0) BuildRequires: pkgconfig(gstreamer-app-1.0) BuildRequires: pkgconfig(gstreamer-plugins-base-1.0) BuildRequires: pkgconfig(gtk+-2.0) BuildRequires: pkgconfig(gtk+-3.0) %if %{with syshunspell} BuildRequires: pkgconfig(hunspell) %endif BuildRequires: pkgconfig(libIDL-2.0) BuildRequires: pkgconfig(libnotify) BuildRequires: pkgconfig(libproxy-1.0) BuildRequires: pkgconfig(libpulse) BuildRequires: pkgconfig(libstartup-notification-1.0) BuildRequires: pkgconfig(nspr) BuildRequires: pkgconfig(nss) BuildRequires: pkgconfig(opus) BuildRequires: pkgconfig(pixman-1) BuildRequires: pkgconfig(python) BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(xinerama) BuildRequires: pkgconfig(xscrnsaver) BuildRequires: pkgconfig(xt) BuildRequires: pkgconfig(zlib) Requires: %{_lib}nspr4 >= 2:%{nspr_version} Requires: %{_lib}nss3 >= 2:%{nss_version} Requires: %{_lib}sqlite3_0 >= %{sqlite3_version} Requires: indexhtml Requires: xdg-utils # fixes bug #42096 Requires: mailcap %if %{with syshunspell} Suggests: hunspell-en %endif Suggests: %{_lib}canberra0 Suggests: %{_lib}cups2 Provides: palemoon = %{EVRD} Provides: webclient %description New Moon (unofficial branding for Pale Moon) is an Open Source, Goanna-based web browser available for Microsoft Windows and Linux (with other operating systems in development), focusing on efficiency and ease of use. New Moon offers you a browsing experience in a browser completely built from its own, independently developed source that has been forked off from Firefox/Mozilla code, with carefully selected features and optimizations to improve the browser's speed, resource use, stability and user experience, while offering full customization and a growing collection of extensions and themes to make the browser truly your own. %files %{_bindir}/%{name} %{_iconsdir}/hicolor/*/apps/*.png %{_datadir}/applications/*.desktop %{mozillalibdir}* %dir %{_libdir}/mozilla %dir %{_libdir}/mozilla/extensions %dir %{_libdir}/mozilla/extensions/%{newmoon_appid} %dir %{_datadir}/mozilla/extensions/%{newmoon_appid} %dir %{pluginsdir} #---------------------------------------------------------------------------- %package devel Summary: Development files for %{name} Group: Development/Other %description devel Files and macros mainly for building New Moon extensions. %files devel %{_sys_macros_dir}/%{name}.macros #---------------------------------------------------------------------------- %prep %setup -qn UXP-%{oname}%{version}_Release %patch6 -p1 -b .addons %patch7 -p1 -b .ua pushd js/src autoconf-2.13 popd autoconf-2.13 %build %global optflags %(echo %{optflags} | sed -e 's/-gdwarf-4//' -e 's/-fvar-tracking-assignments//' -e 's/-frecord-gcc-switches//' -e 's/-Wa,--compress-debug-sections//') %setup_compile_flags CFLAGS=$(echo %{optflags} | sed -e 's/-fexceptions//') CFLAGS="$CFLAGS -fno-strict-aliasing" CXXFLAGS="$CFLAGS -fpermissive" RPM_OPT_FLAGS="$CFLAGS" LDFLAGS="%{ldflags}" export CFLAGS export CXXFLAGS export RPM_OPT_FLAGS export LDFLAGS export MOZCONFIG=`pwd`/mozconfig cat << EOF > $MOZCONFIG mk_add_options MOZILLA_OFFICIAL=0 mk_add_options BUILD_OFFICIAL=0 mk_add_options MOZ_MAKE_FLAGS="%{_smp_mflags}" mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj mk_add_options AUTOCLOBBER=1 ac_add_options --enable-application=palemoon ac_add_options --host=%{_host} ac_add_options --target=%{_target_platform} ac_add_options --enable-optimize ac_add_options --prefix="%{_prefix}" ac_add_options --libdir="%{_libdir}" ac_add_options --includedir="%{_includedir}" ac_add_options --datadir="%{_datadir}" ac_add_options --with-system-nspr ac_add_options --without-system-nss ac_add_options --with-system-zlib ac_add_options --with-pthreads ac_add_options --disable-webrtc ac_add_options --enable-jemalloc ac_add_options --enable-gio ac_add_options --disable-updater ac_add_options --disable-tests ac_add_options --disable-debug ac_add_options --without-system-libvpx ac_add_options --disable-official-branding ac_add_options --enable-libproxy ac_add_options --with-system-jpeg ac_add_options --enable-system-cairo ac_add_options --enable-system-pixman ac_add_options --enable-system-sqlite ac_add_options --enable-extensions=default ac_add_options --enable-startup-notification ac_add_options --with-distribution-id=org.rosa ac_add_options --disable-crashreporter EOF perl -p -i -e 's|\-0|\-9|g' config/make-jars.pl export LDFLAGS="%{ldflags}" make -f client.mk build %install make -C %{_builddir}/obj/application/palemoon/installer STRIP=/bin/true MOZ_PKG_FATAL_WARNINGS=0 # Copy files to buildroot mkdir -p %{buildroot}%{mozillalibdir} cp -rf %{_builddir}/obj/dist/palemoon/* %{buildroot}%{mozillalibdir} mkdir -p %{buildroot}%{_bindir} ln -sf %{mozillalibdir}/palemoon %{buildroot}%{_bindir}/newmoon mkdir -p %{buildroot}%{mozillalibdir}/browser/defaults/preferences/ install -m 644 %{SOURCE9} %{buildroot}%{mozillalibdir}/browser/defaults/preferences/kde.js # Create and own %%_libdir/mozilla/plugins & newmoon extensions directories mkdir -p %{buildroot}%{pluginsdir} mkdir -p %{buildroot}%{_libdir}/mozilla/extensions/%{newmoon_appid} mkdir -p %{buildroot}%{_datadir}/mozilla/extensions/%{newmoon_appid} # (tpg) desktop entry mkdir -p %{buildroot}%{_datadir}/applications install -m 644 %{SOURCE4} %{buildroot}%{_datadir}/applications/%{name}.desktop # (tpg) icons for i in 16 22 24 32 48 128; do # (cg) Not all icon sizes are installed with make install, so just redo it here. convert %{_builddir}/obj/dist/palemoon/browser/icons/mozicon128.png -scale ${i}x${i} %{buildroot}%{mozillalibdir}/browser/chrome/icons/default/default${i}.png mkdir -p %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps ln -sf %{mozillalibdir}/browser/chrome/icons/default/default$i.png %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps/%{name}.png ; done # exclusions rm -f %{buildroot}%{mozillalibdir}/README.txt rm -f %{buildroot}%{mozillalibdir}/removed-files rm -f %{buildroot}%{mozillalibdir}/precomplete install -D -m644 application/palemoon/app/profile/prefs.js %{buildroot}%{mozillalibdir}/browser/defaults/preferences/prefs.js cat << EOF >> %{buildroot}%{mozillalibdir}/browser/defaults/preferences/prefs.js pref("app.update.auto", false); pref("app.update.autoInstallEnabled", false); pref("app.update.enabled", false); pref("browser.EULA.override", true); pref("browser.backspace_action", 2); pref("browser.ctrlTab.previews", true); pref("browser.display.use_system_colors", true); pref("browser.download.folderList", 1); pref("browser.link.open_external", 3); pref("browser.search.openintab", true); pref("browser.shell.checkDefaultBrowser", false); pref("browser.startup.homepage", "file:///usr/share/doc/HTML/index.html"); pref("browser.startup.page", 1); pref("browser.tabs.insertRelatedAfterCurrent", false); pref("browser.tabs.onTop", true); pref("dom.ipc.plugins.enabled.nswrapper*", false); pref("extensions.autoDisableScopes", 0); pref("extensions.shownSelectionUI", true); pref("intl.locale.matchOS", true); pref("network.manage-offline-status", true); pref("startup.homepage_welcome_url", "file:///usr/share/branding-configs/fresh/first_startup.html"); EOF install -m644 %{SOURCE2} %{buildroot}%{mozillalibdir}/browser/defaults/preferences/xulstore.json # display icon for New Moon button #mkdir -p %{buildroot}%{mozillalibdir}/browser/defaults/preferences/chrome #cat << EOF > %{buildroot}%{mozillalibdir}/browser/defaults/preferences/chrome/userChrome.css # appmenu-toolbar-button { # list-style-image: url("chrome://branding/content/icon16.png"); #} #EOF # use the system myspell dictionaries %if %{with syshunspell} rm -fr %{buildroot}%{mozillalibdir}/dictionaries ln -s %{_datadir}/dict/mozilla/ %{buildroot}%{mozillalibdir}/dictionaries %else rm -fr %{buildroot}%{mozillalibdir}/dictionaries mkdir -p %{buildroot}%{mozillalibdir}/dictionaries tar xjf %{SOURCE10} -C %{buildroot}%{mozillalibdir}/dictionaries %endif # (lm) touch and %%ghost bookmarks.html to a proper uninstall touch %{buildroot}%{mozillalibdir}/browser/defaults/preferences/bookmarks.html # search engines mkdir -p %{buildroot}%{mozillalibdir}/browser/searchplugins cp -f %{SOURCE5} %{buildroot}%{mozillalibdir}/browser/searchplugins/yandex.xml cp -f %{SOURCE6} %{buildroot}%{mozillalibdir}/browser/searchplugins/google.xml cp -f application/palemoon/locales/en-US/searchplugins/bing.xml %{buildroot}%{mozillalibdir}/browser/searchplugins/bing.xml cp -f application/palemoon/locales/en-US/searchplugins/duckduckgo-palemoon.xml %{buildroot}%{mozillalibdir}/browser/searchplugins/duckduckgo-palemoon.xml cp -f application/palemoon/locales/en-US/searchplugins/wikipedia.xml %{buildroot}%{mozillalibdir}/browser/searchplugins/wikipedia.xml cp -f application/palemoon/locales/en-US/searchplugins/yahoo.xml %{buildroot}%{mozillalibdir}/browser/searchplugins/yahoo.xml mkdir -p %{buildroot}%{_sys_macros_dir} cat <%{buildroot}%{_sys_macros_dir}/%{name}.macros # Macros from %{name} package %%newmoon_major %{version} %%newmoon_version %{version} %%newmoon_mozillapath %{mozillalibdir} %%newmoon_pluginsdir %{pluginsdir} %%newmoon_appid \{8de7fcbb-c55c-4fbe-bfc5-fc555c87dbc4\} %%newmoon_extdir %%(if [ "%%_target_cpu" = "noarch" ]; then echo %%{_datadir}/mozilla/extensions/%%{newmoon_appid}; else echo %%{_libdir}/mozilla/extensions/%%{newmoon_appid}; fi) FIN