newmoon/newmoon.spec

323 lines
12 KiB
RPMSpec
Raw Permalink Normal View History

%ifarch %{ix86}
%define debug_package %{nil}
%endif
%bcond_with clang
2016-06-27 11:39:58 +04:00
%bcond_with syshunspell
2020-07-08 15:04:38 +10:00
%define oname Pale-Moon
2016-06-27 23:38:29 +10:00
%define newmoon_appid \{8de7fcbb-c55c-4fbe-bfc5-fc555c87dbc4\}
2016-06-27 11:39:58 +04:00
%define uxp_version 20210330
2020-07-08 15:04:38 +10:00
2016-06-27 11:39:58 +04:00
# (tpg) MOZILLA_FIVE_HOME
%define mozillalibdir %{_libdir}/%{name}-%{version}
%define pluginsdir %{_libdir}/mozilla/plugins
2020-08-27 16:23:58 +03:00
# For bundled NSS. copied from firefox.spec
# Do not make provides from plugins /usr/lib64/*/*.so
2020-08-27 16:27:17 +03:00
%global __provides_exclude_from ^%{_libdir}/.*/.*\\.so$
2020-08-27 16:23:58 +03:00
# Do not require filtered out provides
# To inspect them:
# for i in /usr/lib64/firefox/* ; do if file $i | grep -q ELF ; then echo ; echo -- $i ; LC_ALL=C ldd $i | grep found ; fi; done
# To make this list:
# ( for i in /usr/lib64/firefox/* ; do if file $i | grep -q ELF ; then LC_ALL=C ldd $i | grep found | awk '{print $1}' | awk -F '\\.so' '{print $1}' ; fi; done ) | sort -u | tr '\n' '|'
%global __requires_exclude ^(liblgpllibs|libmozavutil|libmozgtk|libmozsandbox|libmozsqlite3|libmozwayland|libnspr4|libnss3|libnssutil3|libplc4|libplds4|libsmime3|libssl3|libxul)\\.so.*$
2016-06-27 11:39:58 +04:00
Summary: Web browser based on Goanna engine
Name: newmoon
Version: 29.2.0
Release: 2
2016-06-27 11:39:58 +04:00
License: MPLv2.0
Group: Networking/WWW
Url: http://www.palemoon.org
Source0: https://repo.palemoon.org/MoonchildProductions/Pale-Moon/archive/%{version}_Release.tar.gz?/%{oname}-%{version}_Release.tar.gz
Source1: https://github.com/MoonchildProductions/UXP/archive/refs/tags/RELBASE_%{uxp_version}.tar.gz
2018-08-31 15:04:35 +03:00
Source2: xulstore.json
2020-07-08 15:04:38 +10:00
Source3: newmoon.rpmlintrc
2016-06-27 11:39:58 +04:00
Source4: %{name}.desktop
Source5: firefox-searchengines-yandex.xml
Source6: firefox-searchengines-google.xml
2016-06-27 11:39:58 +04:00
Source9: kde.js
2018-08-31 02:03:16 +03:00
# https://www.mozilla.org/en-US/firefox/all/
Source10: firefox-dictionary-61.0.2.tar.bz2
Patch1: palemoon-28.0.1-prefs-edit.patch
2020-07-08 15:04:38 +10:00
Patch5: palemoon-28.9.1-enable-addons.patch
Patch6: palemoon-28.9.1-user-agent-overrides.patch
# The following headers are used less widely in libstdc++
# and may need to be included explicitly when compiled with GCC 11
Patch7: newmoon-gcc11.patch
2016-06-27 11:39:58 +04:00
BuildRequires: autoconf2.1
2019-05-09 14:36:47 +03:00
%if %{with clang}
BuildRequires: clang
BuildRequires: clang-devel
BuildRequires: lld
%endif
2016-06-27 11:39:58 +04:00
BuildRequires: doxygen
BuildRequires: imagemagick
2016-06-27 11:39:58 +04:00
BuildRequires: makedepend
2020-07-08 15:04:38 +10:00
BuildRequires: python3-simplejson
2016-06-27 11:39:58 +04:00
BuildRequires: rootcerts
BuildRequires: unzip
BuildRequires: valgrind
BuildRequires: wget
BuildRequires: yasm
BuildRequires: zip
BuildRequires: libiw-devel
BuildRequires: nss-static-devel
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(dbus-glib-1)
2018-08-31 02:03:16 +03:00
BuildRequires: pkgconfig(gconf-2.0)
2016-06-27 11:39:58 +04:00
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)
2016-06-27 11:39:58 +04:00
BuildRequires: pkgconfig(gtk+-2.0)
2018-08-31 02:03:16 +03:00
BuildRequires: pkgconfig(gtk+-3.0)
2016-06-27 11:39:58 +04:00
%if %{with syshunspell}
BuildRequires: pkgconfig(hunspell)
%endif
BuildRequires: pkgconfig(libIDL-2.0)
BuildRequires: pkgconfig(libnotify)
BuildRequires: pkgconfig(libproxy-1.0)
2016-06-27 17:49:08 +10:00
BuildRequires: pkgconfig(libpulse)
2016-06-27 11:39:58 +04:00
BuildRequires: pkgconfig(libstartup-notification-1.0)
BuildRequires: pkgconfig(opus)
BuildRequires: pkgconfig(python)
BuildRequires: pkgconfig(xinerama)
BuildRequires: pkgconfig(xscrnsaver)
BuildRequires: pkgconfig(xt)
Requires: indexhtml
Requires: xdg-utils
# fixes bug #42096
Requires: mailcap
2018-08-31 02:03:16 +03:00
%if %{with syshunspell}
2020-01-04 04:49:03 +03:00
Recommends: hunspell-en
2018-08-31 02:03:16 +03:00
%endif
2020-01-04 04:49:03 +03:00
Recommends: %{_lib}canberra0
Recommends: %{_lib}cups2
2016-06-27 23:39:34 +10:00
Provides: palemoon = %{EVRD}
2016-06-27 11:39:58 +04:00
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
2018-08-31 15:04:35 +03:00
%{mozillalibdir}*
2016-06-27 11:39:58 +04:00
%dir %{_libdir}/mozilla
%dir %{_libdir}/mozilla/extensions
%dir %{_libdir}/mozilla/extensions/%{newmoon_appid}
%dir %{_datadir}/mozilla/extensions/%{newmoon_appid}
2018-08-31 02:03:16 +03:00
%dir %{pluginsdir}
2016-06-27 11:39:58 +04:00
#----------------------------------------------------------------------------
%package devel
Summary: Development files for %{name}
Group: Development/Other
%description devel
Files and macros mainly for building New Moon extensions.
%files devel
%{_rpmmacrodir}/*%{name}*
2016-06-27 11:39:58 +04:00
#----------------------------------------------------------------------------
%prep
%setup -qn pale-moon -a1
2020-07-08 15:04:38 +10:00
if [ -d %{_builddir}/obj ]
then
rm -rf %{_builddir}/obj
fi
rm -rf platform
mv UXP-RELBASE_%{uxp_version} platform
%patch1 -p1 -b .prefs
2020-07-08 15:04:38 +10:00
%patch5 -p1 -b .addons
%patch6 -p1 -b .ua
%patch7 -p1
# delete unofficial.shtml
sed -i -e "31d" palemoon/branding/unofficial/pref/palemoon-branding.js
2020-07-08 15:04:38 +10:00
pushd platform/js/src
2016-06-27 11:39:58 +04:00
autoconf-2.13
popd
autoconf-2.13
%build
%ifarch %{ix86}
%global optflags %(echo %{optflags} | sed -e 's/-gdwarf-4//' -e 's/-Wa,--compress-debug-sections//')
2020-07-08 16:34:19 +10:00
%endif
2019-05-09 14:36:47 +03:00
%if %{with clang}
export CC=clang
export CXX=clang++
export LINKER=ld.lld
2019-11-13 19:44:34 +03:00
export CFLAGS="$CFLAGS -fno-strict-aliasing -Wno-defaulted-function-deleted -Wno-enum-compare-switch -Wno-unused-private-field -Wno-unreachable-code -Wno-sign-compare"
export CXXFLAGS="$CFLAGS -fpermissive"
%global optflags %(echo %{optflags} | sed -e 's/-fvar-tracking-assignments//' -e 's/-frecord-gcc-switches//')
%else
2020-01-13 16:14:29 +03:00
%setup_compile_flags
2016-06-27 11:39:58 +04:00
CFLAGS=$(echo %{optflags} | sed -e 's/-fexceptions//')
2019-11-13 19:44:34 +03:00
CFLAGS="$CFLAGS -fno-strict-aliasing -Wno-ignored-optimization-argument"
2016-06-27 11:39:58 +04:00
CXXFLAGS="$CFLAGS -fpermissive"
RPM_OPT_FLAGS="$CFLAGS"
LDFLAGS="%{ldflags}"
export CFLAGS
export CXXFLAGS
export RPM_OPT_FLAGS
export LDFLAGS
%endif
2016-06-27 11:39:58 +04:00
export MOZCONFIG=`pwd`/mozconfig
cat << EOF > $MOZCONFIG
mk_add_options BUILD_OFFICIAL=0
mk_add_options MOZILLA_OFFICIAL=0
2016-06-27 11:39:58 +04:00
mk_add_options MOZ_MAKE_FLAGS="%{_smp_mflags}"
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj
2017-02-10 22:48:28 +03:00
mk_add_options AUTOCLOBBER=1
2018-08-31 02:03:16 +03:00
ac_add_options --enable-application=palemoon
ac_add_options --datadir="%{_datadir}"
2016-06-27 11:39:58 +04:00
ac_add_options --host=%{_host}
ac_add_options --includedir="%{_includedir}"
ac_add_options --libdir="%{_libdir}"
ac_add_options --prefix="%{_prefix}"
ac_add_options --target=%{_target_platform}
2019-05-09 14:36:47 +03:00
# https://github.com/MoonchildProductions/UXP/issues/1073
ac_add_options --disable-accessibility
ac_add_options --disable-crashreporter
2016-06-27 11:39:58 +04:00
ac_add_options --disable-debug
2020-07-08 15:04:38 +10:00
ac_add_options --disable-debug-symbols
2016-06-27 11:39:58 +04:00
ac_add_options --disable-official-branding
2019-11-13 19:44:34 +03:00
ac_add_options --disable-optimize
ac_add_options --disable-startupcache
ac_add_options --disable-tests
ac_add_options --disable-updater
ac_add_options --disable-webrtc
ac_add_options --enable-default-toolkit=cairo-gtk2
2016-06-27 11:39:58 +04:00
ac_add_options --enable-extensions=default
ac_add_options --enable-gio
ac_add_options --enable-jemalloc
ac_add_options --enable-libproxy
2016-06-27 11:39:58 +04:00
ac_add_options --enable-startup-notification
ac_add_options --with-distribution-id=org.rosa
ac_add_options --with-pthreads
2016-06-27 11:39:58 +04:00
EOF
2020-07-08 15:04:38 +10:00
./mach build --verbose
2016-06-27 11:39:58 +04:00
%install
2020-07-08 15:04:38 +10:00
make -C %{_builddir}/obj/palemoon/installer STRIP=/bin/true MOZ_PKG_FATAL_WARNINGS=0
2016-06-27 11:39:58 +04:00
# Copy files to buildroot
mkdir -p %{buildroot}%{mozillalibdir}
2020-07-08 15:04:38 +10:00
cp -rfL %{_builddir}/obj/dist/bin/* %{buildroot}%{mozillalibdir}
2016-06-27 11:39:58 +04:00
mkdir -p %{buildroot}%{_bindir}
ln -sf %{mozillalibdir}/palemoon %{buildroot}%{_bindir}/newmoon
2016-06-28 01:46:23 +10:00
mkdir -p %{buildroot}%{mozillalibdir}/browser/defaults/preferences/
install -m 644 %{SOURCE9} %{buildroot}%{mozillalibdir}/browser/defaults/preferences/kde.js
2016-06-27 11:39:58 +04:00
2017-11-08 14:07:59 +03:00
# Create and own %%_libdir/mozilla/plugins & newmoon extensions directories
2016-06-27 11:39:58 +04:00
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
2016-06-27 11:39:58 +04:00
# (cg) Not all icon sizes are installed with make install, so just redo it here.
2020-07-08 15:04:38 +10:00
convert %{_builddir}/obj/dist/bin/browser/icons/mozicon128.png -scale ${i}x${i} %{buildroot}%{mozillalibdir}/browser/chrome/icons/default/default${i}.png
2017-02-10 22:48:28 +03:00
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 ;
2016-06-27 11:39:58 +04:00
done
# exclusions
rm -f %{buildroot}%{mozillalibdir}/README.txt
rm -f %{buildroot}%{mozillalibdir}/removed-files
rm -f %{buildroot}%{mozillalibdir}/precomplete
2020-07-08 15:04:38 +10:00
install -D -m644 palemoon/app/profile/prefs.js %{buildroot}%{mozillalibdir}/browser/defaults/preferences/prefs.js
2018-08-31 02:03:16 +03:00
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.newtab.url", "file:///usr/share/doc/HTML/index.html");
2018-08-31 02:03:16 +03:00
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);
2018-09-23 21:33:35 +03:00
pref("general.useragent.compatMode", 2);
pref("general.useragent.override.consultant.ru", "Mozilla/5.0 (X11; Linux %{_target_cpu}; rv:78.0) Gecko/20100101 Firefox/78.0");
2018-08-31 02:03:16 +03:00
pref("intl.locale.matchOS", true);
pref("network.manage-offline-status", true);
2019-05-23 05:35:31 +03:00
pref("startup.homepage_welcome_url", "file:///usr/share/doc/HTML/first_startup.html");
2016-06-27 11:39:58 +04:00
EOF
2018-08-31 15:04:35 +03:00
install -m644 %{SOURCE2} %{buildroot}%{mozillalibdir}/browser/defaults/preferences/xulstore.json
2016-06-29 03:41:45 +10:00
2016-06-27 11:39:58 +04:00
# use the system myspell dictionaries
2018-08-31 02:03:16 +03:00
%if %{with syshunspell}
2016-06-27 11:39:58 +04:00
rm -fr %{buildroot}%{mozillalibdir}/dictionaries
ln -s %{_datadir}/dict/mozilla/ %{buildroot}%{mozillalibdir}/dictionaries
2018-08-31 02:03:16 +03:00
%else
rm -fr %{buildroot}%{mozillalibdir}/dictionaries
2018-08-31 15:04:35 +03:00
mkdir -p %{buildroot}%{mozillalibdir}/dictionaries
tar xjf %{SOURCE10} -C %{buildroot}%{mozillalibdir}/dictionaries
2018-08-31 02:03:16 +03:00
%endif
2016-06-27 11:39:58 +04:00
2017-11-08 14:07:59 +03:00
# (lm) touch and %%ghost bookmarks.html to a proper uninstall
2018-08-31 02:03:16 +03:00
touch %{buildroot}%{mozillalibdir}/browser/defaults/preferences/bookmarks.html
2016-06-27 11:39:58 +04:00
# search engines
2018-08-31 02:03:16 +03:00
mkdir -p %{buildroot}%{mozillalibdir}/browser/searchplugins
cp -f %{SOURCE5} %{buildroot}%{mozillalibdir}/browser/searchplugins/yandex.xml
cp -f %{SOURCE6} %{buildroot}%{mozillalibdir}/browser/searchplugins/google.xml
2020-07-08 15:04:38 +10:00
cp -f palemoon/locales/en-US/searchplugins/bing.xml %{buildroot}%{mozillalibdir}/browser/searchplugins/bing.xml
cp -f palemoon/locales/en-US/searchplugins/duckduckgo-palemoon.xml %{buildroot}%{mozillalibdir}/browser/searchplugins/duckduckgo-palemoon.xml
cp -f palemoon/locales/en-US/searchplugins/wikipedia.xml %{buildroot}%{mozillalibdir}/browser/searchplugins/wikipedia.xml
cp -f palemoon/locales/en-US/searchplugins/yahoo.xml %{buildroot}%{mozillalibdir}/browser/searchplugins/yahoo.xml
2016-06-27 11:39:58 +04:00
cat <<FIN >macro
2016-06-27 11:39:58 +04:00
# Macros from %{name} package
%%newmoon_major %{version}
%%newmoon_version %{version}
%%newmoon_mozillapath %{mozillalibdir}
%%newmoon_pluginsdir %{pluginsdir}
2016-06-27 23:38:29 +10:00
%%newmoon_appid \{8de7fcbb-c55c-4fbe-bfc5-fc555c87dbc4\}
2016-06-27 11:39:58 +04:00
%%newmoon_extdir %%(if [ "%%_target_cpu" = "noarch" ]; then echo %%{_datadir}/mozilla/extensions/%%{newmoon_appid}; else echo %%{_libdir}/mozilla/extensions/%%{newmoon_appid}; fi)
FIN
%install_macro %{name} macro