mirror of
https://abf.rosa.ru/djam/newmoon.git
synced 2025-02-23 15:12:54 +00:00
280 lines
10 KiB
RPMSpec
280 lines
10 KiB
RPMSpec
%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
|
|
|
|
%define clang 1
|
|
|
|
Summary: Web browser based on Goanna engine
|
|
Name: newmoon
|
|
Version: 28.4.0
|
|
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
|
|
Patch1: palemoon-28.0.1-prefs-edit.patch
|
|
Patch6: palemoon-27.4.0-enable-addons.patch
|
|
Patch7: palemoon-27.4.0-user-agent-overrides.patch
|
|
|
|
BuildRequires: autoconf2.1
|
|
%if 0%{?clang}
|
|
BuildRequires: clang
|
|
BuildRequires: clang-devel
|
|
BuildRequires: lld
|
|
%endif
|
|
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: nss-static-devel
|
|
BuildRequires: pkgconfig(alsa)
|
|
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(opus)
|
|
BuildRequires: pkgconfig(python)
|
|
BuildRequires: pkgconfig(xinerama)
|
|
BuildRequires: pkgconfig(xscrnsaver)
|
|
BuildRequires: pkgconfig(xt)
|
|
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
|
|
%patch1 -p1 -b .prefs
|
|
%patch6 -p1 -b .addons
|
|
%patch7 -p1 -b .ua
|
|
|
|
pushd js/src
|
|
autoconf-2.13
|
|
popd
|
|
autoconf-2.13
|
|
|
|
%build
|
|
%if 0%{?clang}
|
|
export CC=clang
|
|
export CXX=clang++
|
|
export LINKER=ld.lld
|
|
%else
|
|
%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
|
|
%endif
|
|
|
|
export MOZCONFIG=`pwd`/mozconfig
|
|
cat << EOF > $MOZCONFIG
|
|
mk_add_options BUILD_OFFICIAL=0
|
|
mk_add_options MOZILLA_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 --datadir="%{_datadir}"
|
|
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}
|
|
ac_add_options --disable-crashreporter
|
|
ac_add_options --disable-debug
|
|
ac_add_options --disable-official-branding
|
|
ac_add_options --disable-tests
|
|
ac_add_options --disable-updater
|
|
ac_add_options --disable-webrtc
|
|
ac_add_options --enable-default-toolkit=cairo-gtk2
|
|
ac_add_options --enable-extensions=default
|
|
ac_add_options --enable-gio
|
|
ac_add_options --enable-jemalloc
|
|
ac_add_options --enable-libproxy
|
|
ac_add_options --enable-optimize
|
|
ac_add_options --enable-startup-notification
|
|
ac_add_options --with-distribution-id=org.rosa
|
|
ac_add_options --with-pthreads
|
|
|
|
EOF
|
|
|
|
./mach 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.newtab.url", "file:///usr/share/doc/HTML/index.html");
|
|
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("general.useragent.compatMode", 2);
|
|
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
|
|
|
|
# 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 <<FIN >%{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
|