Group :: Networking/WWW
RPM: palemoon
Main Changelog Spec Patches Sources Download Gear Bugs and FR Repocop
# git commit 9a7eccc7ecea20840fd0a8b1c4021eb8d9cbfa54
Summary: The New Moon browser, an unofficial branding of the Pale Moon project browser
Summary(ru_RU.UTF-8): Интернет-браузер New Moon - неофициальная сборка браузера Pale Moon
Name: palemoon
Version: 32.0.1
Release: alt1
License: MPL-2.0 GPL-3.0 and LGPL-2.1+
Group: Networking/WWW
Url: https://github.com/MoonchildProductions/Pale-Moon
Epoch: 2
ExcludeArch: %ix86 %arm
%define sname palemoon
%define bname newmoon
Packager: Hihin Ruslan <ruslandh at altlinux.ru>
%define palemoon_cid \{8de7fcbb-c55c-4fbe-bfc5-fc555c87dbc4\}
#define newmoon_datadir %%_datadir/%%sname
%define newmoon_datadir %_datadir/%bname
%define newmoon_bindir %_libdir/%bname
%define palemoon_arch_extensionsdir %_newmoon_datadir/extensions
#define palemoon_noarch_extensionsdir %%newmoon_datadir/extensions
Source: %sname-source-%version-%release.tar
Source1: rpm-build.tar
Source2: defaults-newmoon.tar
Source4: %sname-mozconfig
Source6: %bname.desktop
Source7: firefox.c
Source8: firefox-prefs.js
Source9: HISTORY_GIT
Source10: Changelog
Source11: content.tar
Source12: xulstore.json
Source13: kde.js
#Patch1: palemoon_google_add-26.4.0.patch
Patch16: mozilla_palimoon-29.4.6-cross-desctop.patch
Patch18: mozilla_palimoon-29.4.6-bug-1153109-enable-stdcxx-compat.patch
#Patch21: palemoon-29.4.6-build-el5-nss.patch
Patch22: palemoon_rpath-29.4.6.patch
Patch23: palemoon_version-29.4.6.patch
Patch24: palemoon-31.0.0-ui_picker_false.patch
#Patch25: palemoon-31.3.0.1-lock_impl_posix.patch
# Patch from Rosa
Patch103: palemoon-29.4.6-disable-check-default-browser.patch
Patch105: palemoon-29.4.6-default-mail-handler.patch
Patch106: palemoon-29.4.6-enable-addons.patch
#Patch107: palemoon-29.4.6-user-agent-overrides.patch
# Patches for KDE integration of New Moon
Patch111: palemoon-29.4.6-firefox-kde.patch
Patch112: palemoon-29.4.6-mozilla-kde.patch
Patch113: palemoon-29.4.6-kde-background.patch
Patch114: nemoon_branding-31.0.0.patch
#set_gcc_version 10
%set_autoconf_version 2.13
BuildPreReq: libXcomposite-devel libXdamage-devel
# Automatically added by buildreq on Wed Jul 13 2022
# optimized out: alt-os-release alternatives fontconfig fontconfig-devel glib2-devel glibc-kernheaders-generic glibc-kernheaders-x86 libICE-devel libSM-devel libX11-devel libXext-devel libXrender-devel libatk-devel libcairo-devel libctf-nobfd0 libdbus-devel libdbus-glib libfreetype-devel libgdk-pixbuf libgdk-pixbuf-devel libgio-devel libgpg-error libharfbuzz-devel libpango-devel libstdc++-devel libxcb-devel perl pkg-config python-modules python-modules-compiler python-modules-ctypes python-modules-curses python-modules-email python-modules-encodings python-modules-logging python-modules-multiprocessing python-modules-xml python2-base python3 python3-base sh4 xorg-proto-devel zlib-devel
BuildRequires: doxygen gcc-c++ libGConf-devel libXt-devel libalsa-devel
BuildRequires: libdbus-glib-devel libgtk+2-devel libhunspell-devel
BuildRequires: libpulseaudio-devel libsocket python-modules-distutils
BuildRequires: python-modules-json python-modules-wsgiref unzip yasm zip
BuildRequires: %_bindir/python2.7 python2-base
# BEGIN SourceDeps(oneline):
BuildRequires: bzlib-devel gobject-introspection-devel libgtest-devel libpng-devel libssl-devel swig texinfo zlib-devel
# END SourceDeps(oneline)
BuildRequires(pre): mozilla-common-devel rpm-macros-alternatives mozilla-common
BuildRequires(pre): browser-plugins-npapi-devel
BuildPreReq: python-module-future python-modules-json python-modules-wsgiref
BuildPreReq: libnss-devel
#BuildRequires: gcc%%{_gcc_version}-c++
BuildPreReq: chrpath
BuildPreReq: autoconf_%_autoconf_version
BuildPreReq: gstreamer1.0-devel gst-plugins1.0-devel
BuildRequires: libhunspell-devel
%description
The %sname project is a redesign of Mozilla's Firefox browser component,
written using the XUL user interface language and designed to be
cross-platform.
%description -l ru_RU.UTF8
Интернет-браузер %sname - кроссплатформенная модификация браузера Mozilla Firefox ,
созданная с использованием языка XUL для описания интерфейса пользователя.
%package -n newmoon
Summary: The New Moon browser, an unofficial branding of the Pale Moon project browser
Summary(ru_RU.UTF-8): Интернет-браузер New Moon - неофициальная сборка браузера Pale Moon
Group: Networking/WWW
#Obsoletes: palemoon < 29.4.6
Provides: palemoon = %EVR
Provides: webclient
Conflicts: newmoon < 31.0.0
#Obsoletes: newmoon < 29.4.6
Requires: libgstreamer1.0 gst-libav
Requires: gst-plugins-base1.0
# Protection against fraudulent DigiNotar certificates
Requires: libnss
%description -n newmoon
The New Moon browser, an unofficial branding of the Pale Moon project browser
The %sname project is a redesign of Mozilla's Firefox browser component,
written using the XUL user interface language and designed to be
cross-platform.
%description -n newmoon -l ru_RU.UTF8
Интернет-браузер New Moon - неофициальная сборка браузера Pale Moon
Интернет-браузер %sname - кроссплатформенная модификация браузера Mozilla Firefox ,
созданная с использованием языка XUL для описания интерфейса пользователя.
%package -n rpm-build-palemoon
Summary: RPM helper macros to rebuild %name packages
Group: Development/Other
BuildArch: noarch
Requires: mozilla-common-devel
Requires: rpm-build-mozilla.org
%description -n rpm-build-palemoon
These helper macros provide possibility to rebuild
%sname packages by some Alt Linux Team Policy compatible way.
%prep
%setup -n %sname-%version -c
#cd UXP-PM%{version}_Release
# patch to move files directly to /usr/lib No more symlinks
pushd palemoon/platform
sed -e 's;$(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION);$(libdir)/$(MOZ_APP_NAME);g' -i config/baseconfig.mk
sed -e 's;$(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION);$(libdir)/$(MOZ_APP_NAME)-devel;g' -i config/baseconfig.mk
popd
%setup -T -D -a 2
%setup -T -D -a 11
%patch24 -p1
#patch25 -p1
#patch21 -p1
%patch16 -p1
%patch18 -p1
%patch22 -p1
cd %sname
tar -xf %SOURCE1
cd ..
%patch23 -p1
#Pach from Rosa
##patch101 -p1 -b .lang
%patch103 -p1 -b .disable-software-update
%patch105 -p1 -b .default-mail-handler
%patch106 -p1 -b .addons
#patch107 -p1 -b .ua
# KDE integration
#patch111 -p1 -b .kdepatch
#patch112 -p1 -b .kdemoz
#patch113 -p1 -b .kdebackground
%patch114 -p1
cd %sname
# icons
for s in 16 22 24 32 48 256; do
install -D -m 644 \
../defaults-newmoon/default$s.png \
palemoon/branding/unofficial/
done
cat >> confvars.sh <<EOF
MOZ_UPDATER=
MOZ_JAVAXPCOM=
MOZ_EXTENSIONS_DEFAULT=' gio'
MOZ_CHROME_FILE_FORMAT=jar
EOF
echo %version > config/version.txt
rpath="/$(printf %%s '%newmoon_bindir' |tr '[:print:]' '_')"
export LDFLAGS="$LDFLAGS -Wl,-rpath,$rpath"
# for palemoon_rpath-27.0.2.patch
export RPATH_PATH="$rpath"
# %__subst s~'$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)'~'$(MOZ_APP_NAME)$(MOZ_APP_VERSION)'~g ./platform/config/baseconfig.mk
%__subst s~'"Moonchild Productions"'~'"Moonchild_Productions"'~g ./platform/build/application.ini
%__subst s~'"Pale Moon"'~'"Pale_Moon"'~g ./platform/build/application.ini
cp -f %SOURCE4 .mozconfig
echo "mk_add_options MOZ_OBJDIR=obj-%_arch" >> .mozconfig
echo "mk_add_options MOZ_MAKE_FLAGS=-j${NPROCS:-4}" >> .mozconfig
# echo "ac_add_options --enable-rpath" >> .mozconfig
## echo "ac_add_options --disable-static" >> .mozconfig
echo "ac_add_options --disable-elf-hack" >> .mozconfig
echo "ac_add_options --enable-alsa --enable-pulseaudio" >> .mozconfig
echo "ac_add_options --enable-raw --enable-ffmpeg" >> .mozconfig
echo "ac_add_options --enable-system-hunspell" >> .mozconfig
echo "ac_add_options --with-pthreads" >> .mozconfig
echo "ac_add_options --x-libraries=%_libdir/X11" >> .mozconfig
echo "ac_add_options --with-nss-prefix=%_libdir/nss" >> .mozconfig
%ifarch %ix86
echo "ac_add_options --with-arch=i586" >> .mozconfig
echo 'ac_add_options --enable-optimize=" -march=i586 -msse2 -mfpmath=sse"' >> .mozconfig
%endif
%ifarch x86_64
echo "ac_add_options --with-arch=x86-64" >> .mozconfig
echo 'ac_add_options --enable-optimize=" -march=x86-64 -msse2 -mfpmath=sse"' >> .mozconfig
%endif
%build
cd %sname
%add_optflags %optflags_shared
%add_findprov_lib_path %newmoon_datadir
export MOZ_BUILD_APP=%sname
# Mozilla builds with -Wall with exception of a few warnings which show up
# everywhere in the code; so, don't override that.
#
# Disable C++ exceptions since Mozilla code is not exception-safe
#
MOZ_OPT_FLAGS=$(echo $RPM_OPT_FLAGS | \
sed -e 's/-Wall//' -e 's/-fexceptions/-fno-exceptions/g')
export CFLAGS="$MOZ_OPT_FLAGS"
export CXXFLAGS="$MOZ_OPT_FLAGS -Wno-error=format-overflow -Wmaybe-uninitialized -Wreorder -D_GNUC_"
# Add fake RPATH
rpath="/$(printf %%s '%newmoon_bindir' |tr '[:print:]' '_')"
export LDFLAGS="$LDFLAGS -Wl,-rpath,$rpath"
# for palemoon_rpath-27.0.2.patch
export RPATH_PATH="$rpath"
echo '%newmoon_bindir'
echo "$rpath"
export PREFIX="%prefix"
export LIBDIR="%_libdir"
export LIBIDL_CONFIG=%_bindir/libIDL-config-2
export srcdir="$PWD"
export SHELL=/bin/sh
%__autoconf
MOZ_SMP_FLAGS=-j1
%ifarch %ix86
[ "%__nprocs" -ge 2 ] && MOZ_SMP_FLAGS=-j2
[ "%__nprocs" -ge 4 ] && MOZ_SMP_FLAGS=-j4
%else
MOZ_SMP_FLAGS=-j${NPROCS:-4}
%endif
TOPSRCDIR=$pwd
%make -f client.mk \
MAKENSISU= \
STRIP="/bin/true" \
MOZ_APP_VERSION=%version \
MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" \
mozappdir=%buildroot%newmoon_bindir \
clobber
%make -f client.mk \
MAKENSISU= \
STRIP="/bin/true" \
MOZ_APP_VERSION=%version \
MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" \
mozappdir=%buildroot%newmoon_bindir \
build
gcc %optflags \
-Wall -Wextra \
-DMOZ_PLUGIN_PATH=\"%browser_plugins_path\" \
-DMOZ_PROGRAM=\"%newmoon_bindir/%bname-bin\" \
%SOURCE7 -o %bname
%install
## ? install -D -m644 %SOURCE12 obj-%_arch/dist/bin/browser/defaults/profile/xulstore.json
# нужен только с патчами KDE
# install -D -m644 %SOURCE13 obj-%_arch/dist/bin/defaults/pref/kde.js
cd palemoon
cd obj-%_arch
%makeinstall MOZ_APP_VERSION=%version SHELL=/bin/sh
#makeinstall_std MOZ_APP_VERSION=%version COMSPEC=rpm SHELL=/bin/sh
# MOZILLABUILD SHELL=/bin/sh COMSPEC=rpm
rm -f %buildroot%newmoon_bindir/%bname
mkdir -p \
%buildroot/%mozilla_arch_extdir/%palemoon_cid \
%buildroot/%mozilla_noarch_extdir/%palemoon_cid
cd ..
# icons
for s in 16 32 48; do
install -D -m 644 \
../defaults-newmoon/default$s.png \
%buildroot/%_iconsdir/hicolor/${s}x${s}/apps/%bname.png
done
if [ -f %buildroot/%_bindir/%sname ];then
rm -f %buildroot/%_bindir/%sname
fi
install %bname %buildroot/%_bindir/%bname
mkdir -p -- \
%buildroot/%_rpmmacrosdir
#sed \
# -e 's, at palemoon_version at ,%version,' \
# -e 's, at palemoon_release at ,%release,' \
# rpm-build/rpm.macros.%sname.standalone > %buildroot/%_rpmmacrosdir/%sname
install -D -m 644 rpm-build/rpm.macros.%sname.standalone %buildroot/%_rpmmacrosdir/%sname
pushd %buildroot
# Remove devel files
rm -rf -- \
%buildroot%_libdir/newmoon-devel-%version \
%buildroot%_libdir/newmoon-devel \
%buildroot%_datadir/idl/%bname-%version
# install menu file
install -D -m 644 %SOURCE6 ./%_desktopdir/%bname.desktop
install -d -m 755 %buildroot/%newmoon_bindir/browser/defaults/preferences/
#cat > %buildroot/%newmoon_bindir/browser/defaults/preferences/%sname-l10n.js <<EOF
#pref("intl.locale.matchOS", true);
#pref("general.useragent.locale", "chrome://global/locale/intl.properties");
#pref("extensions.getAddons.cache.enabled", false);
#EOF
cat << EOF >> %buildroot%newmoon_bindir/defaults/pref/prefs.js
user_pref("browser.EULA.override", true);
user_pref("browser.ctrlTab.previews", true);
user_pref("browser.tabs.insertRelatedAfterCurrent", false);
user_pref("browser.tabs.onTop", true);
user_pref("browser.startup.homepage", "file://%_docdir/HTML/index.html");
user_pref("browser.backspace_action", 2);
user_pref("browser.display.use_system_colors", true);
user_pref("browser.download.folderList", 1);
user_pref("browser.link.open_external", 3);
user_pref("app.update.auto", false);
user_pref("app.update.enabled", false);
user_pref("app.update.autoInstallEnabled", false);
user_pref("dom.ipc.plugins.enabled.nswrapper*", false);
user_pref("extensions.autoDisableScopes", 0);
user_pref("extensions.shownSelectionUI", true);
user_pref("network.manage-offline-status", true);
user_pref("browser.urlbar.decodeURLsOnCopy", true);
EOF
install -m 644 %_builddir/palemoon-%version/defaults-newmoon/default48.png %buildroot%newmoon_bindir/browser/chrome/icons/default/PMaboutDialog48.png
set -x
# Add alternatives
mkdir -p ./%_altdir
printf '%_bindir/xbrowser\t%_bindir/%bname\t99\n' >./%_altdir/%bname
# Add real RPATH
(set -x
rpath="/$(printf %%s '%newmoon_bindir' |tr '[:print:]' '_')"
find \
%buildroot/%newmoon_bindir \
-type f |
while read f; do
t="$(readlink -ev "$f")"
echo $t
file "$t" | grep -Fqs ELF || continue
if chrpath -l "$t" | grep -Fqs "PATH=$rpath"; then
chrpath -r "%newmoon_bindir" "$t"
echo cmp Ok
else
echo cmp No
chrpath -l "$t"
echo PATH=$rpath
echo
fi
done
)
#install -d %buildroot/%_docdir/%bname-%version/
# Add Doc
install -D -m 644 %SOURCE9 %_builddir/%sname-%version
install -D -m 644 %SOURCE10 %_builddir/%sname-%version
install -D -m 644 %_builddir/palemoon-%version/palemoon/AUTHORS %_builddir/%sname-%version
install -D -m 644 %_builddir/palemoon-%version/palemoon/LICENSE %_builddir/%sname-%version
install -D -m 644 %_builddir/palemoon-%version/palemoon/README.md %_builddir/%sname-%version
%files -n %bname
%dir %newmoon_bindir
%newmoon_bindir/
%_desktopdir/%bname.desktop
%_miconsdir/%bname.png
%_niconsdir/%bname.png
%_liconsdir/%bname.png
%doc AUTHORS LICENSE HISTORY_GIT Changelog README.md
%_altdir/%bname
%_bindir/%bname
%mozilla_arch_extdir/%palemoon_cid
%mozilla_noarch_extdir/%palemoon_cid
%files -n rpm-build-%sname
%_rpmmacrosdir/%sname
%exclude %_includedir/*
%changelog
…
Full changelog you can see here
Summary: The New Moon browser, an unofficial branding of the Pale Moon project browser
Summary(ru_RU.UTF-8): Интернет-браузер New Moon - неофициальная сборка браузера Pale Moon
Name: palemoon
Version: 32.0.1
Release: alt1
License: MPL-2.0 GPL-3.0 and LGPL-2.1+
Group: Networking/WWW
Url: https://github.com/MoonchildProductions/Pale-Moon
Epoch: 2
ExcludeArch: %ix86 %arm
%define sname palemoon
%define bname newmoon
Packager: Hihin Ruslan <ruslandh at altlinux.ru>
%define palemoon_cid \{8de7fcbb-c55c-4fbe-bfc5-fc555c87dbc4\}
#define newmoon_datadir %%_datadir/%%sname
%define newmoon_datadir %_datadir/%bname
%define newmoon_bindir %_libdir/%bname
%define palemoon_arch_extensionsdir %_newmoon_datadir/extensions
#define palemoon_noarch_extensionsdir %%newmoon_datadir/extensions
Source: %sname-source-%version-%release.tar
Source1: rpm-build.tar
Source2: defaults-newmoon.tar
Source4: %sname-mozconfig
Source6: %bname.desktop
Source7: firefox.c
Source8: firefox-prefs.js
Source9: HISTORY_GIT
Source10: Changelog
Source11: content.tar
Source12: xulstore.json
Source13: kde.js
#Patch1: palemoon_google_add-26.4.0.patch
Patch16: mozilla_palimoon-29.4.6-cross-desctop.patch
Patch18: mozilla_palimoon-29.4.6-bug-1153109-enable-stdcxx-compat.patch
#Patch21: palemoon-29.4.6-build-el5-nss.patch
Patch22: palemoon_rpath-29.4.6.patch
Patch23: palemoon_version-29.4.6.patch
Patch24: palemoon-31.0.0-ui_picker_false.patch
#Patch25: palemoon-31.3.0.1-lock_impl_posix.patch
# Patch from Rosa
Patch103: palemoon-29.4.6-disable-check-default-browser.patch
Patch105: palemoon-29.4.6-default-mail-handler.patch
Patch106: palemoon-29.4.6-enable-addons.patch
#Patch107: palemoon-29.4.6-user-agent-overrides.patch
# Patches for KDE integration of New Moon
Patch111: palemoon-29.4.6-firefox-kde.patch
Patch112: palemoon-29.4.6-mozilla-kde.patch
Patch113: palemoon-29.4.6-kde-background.patch
Patch114: nemoon_branding-31.0.0.patch
#set_gcc_version 10
%set_autoconf_version 2.13
BuildPreReq: libXcomposite-devel libXdamage-devel
# Automatically added by buildreq on Wed Jul 13 2022
# optimized out: alt-os-release alternatives fontconfig fontconfig-devel glib2-devel glibc-kernheaders-generic glibc-kernheaders-x86 libICE-devel libSM-devel libX11-devel libXext-devel libXrender-devel libatk-devel libcairo-devel libctf-nobfd0 libdbus-devel libdbus-glib libfreetype-devel libgdk-pixbuf libgdk-pixbuf-devel libgio-devel libgpg-error libharfbuzz-devel libpango-devel libstdc++-devel libxcb-devel perl pkg-config python-modules python-modules-compiler python-modules-ctypes python-modules-curses python-modules-email python-modules-encodings python-modules-logging python-modules-multiprocessing python-modules-xml python2-base python3 python3-base sh4 xorg-proto-devel zlib-devel
BuildRequires: doxygen gcc-c++ libGConf-devel libXt-devel libalsa-devel
BuildRequires: libdbus-glib-devel libgtk+2-devel libhunspell-devel
BuildRequires: libpulseaudio-devel libsocket python-modules-distutils
BuildRequires: python-modules-json python-modules-wsgiref unzip yasm zip
BuildRequires: %_bindir/python2.7 python2-base
# BEGIN SourceDeps(oneline):
BuildRequires: bzlib-devel gobject-introspection-devel libgtest-devel libpng-devel libssl-devel swig texinfo zlib-devel
# END SourceDeps(oneline)
BuildRequires(pre): mozilla-common-devel rpm-macros-alternatives mozilla-common
BuildRequires(pre): browser-plugins-npapi-devel
BuildPreReq: python-module-future python-modules-json python-modules-wsgiref
BuildPreReq: libnss-devel
#BuildRequires: gcc%%{_gcc_version}-c++
BuildPreReq: chrpath
BuildPreReq: autoconf_%_autoconf_version
BuildPreReq: gstreamer1.0-devel gst-plugins1.0-devel
BuildRequires: libhunspell-devel
%description
The %sname project is a redesign of Mozilla's Firefox browser component,
written using the XUL user interface language and designed to be
cross-platform.
%description -l ru_RU.UTF8
Интернет-браузер %sname - кроссплатформенная модификация браузера Mozilla Firefox ,
созданная с использованием языка XUL для описания интерфейса пользователя.
%package -n newmoon
Summary: The New Moon browser, an unofficial branding of the Pale Moon project browser
Summary(ru_RU.UTF-8): Интернет-браузер New Moon - неофициальная сборка браузера Pale Moon
Group: Networking/WWW
#Obsoletes: palemoon < 29.4.6
Provides: palemoon = %EVR
Provides: webclient
Conflicts: newmoon < 31.0.0
#Obsoletes: newmoon < 29.4.6
Requires: libgstreamer1.0 gst-libav
Requires: gst-plugins-base1.0
# Protection against fraudulent DigiNotar certificates
Requires: libnss
%description -n newmoon
The New Moon browser, an unofficial branding of the Pale Moon project browser
The %sname project is a redesign of Mozilla's Firefox browser component,
written using the XUL user interface language and designed to be
cross-platform.
%description -n newmoon -l ru_RU.UTF8
Интернет-браузер New Moon - неофициальная сборка браузера Pale Moon
Интернет-браузер %sname - кроссплатформенная модификация браузера Mozilla Firefox ,
созданная с использованием языка XUL для описания интерфейса пользователя.
%package -n rpm-build-palemoon
Summary: RPM helper macros to rebuild %name packages
Group: Development/Other
BuildArch: noarch
Requires: mozilla-common-devel
Requires: rpm-build-mozilla.org
%description -n rpm-build-palemoon
These helper macros provide possibility to rebuild
%sname packages by some Alt Linux Team Policy compatible way.
%prep
%setup -n %sname-%version -c
#cd UXP-PM%{version}_Release
# patch to move files directly to /usr/lib No more symlinks
pushd palemoon/platform
sed -e 's;$(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION);$(libdir)/$(MOZ_APP_NAME);g' -i config/baseconfig.mk
sed -e 's;$(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION);$(libdir)/$(MOZ_APP_NAME)-devel;g' -i config/baseconfig.mk
popd
%setup -T -D -a 2
%setup -T -D -a 11
%patch24 -p1
#patch25 -p1
#patch21 -p1
%patch16 -p1
%patch18 -p1
%patch22 -p1
cd %sname
tar -xf %SOURCE1
cd ..
%patch23 -p1
#Pach from Rosa
##patch101 -p1 -b .lang
%patch103 -p1 -b .disable-software-update
%patch105 -p1 -b .default-mail-handler
%patch106 -p1 -b .addons
#patch107 -p1 -b .ua
# KDE integration
#patch111 -p1 -b .kdepatch
#patch112 -p1 -b .kdemoz
#patch113 -p1 -b .kdebackground
%patch114 -p1
cd %sname
# icons
for s in 16 22 24 32 48 256; do
install -D -m 644 \
../defaults-newmoon/default$s.png \
palemoon/branding/unofficial/
done
cat >> confvars.sh <<EOF
MOZ_UPDATER=
MOZ_JAVAXPCOM=
MOZ_EXTENSIONS_DEFAULT=' gio'
MOZ_CHROME_FILE_FORMAT=jar
EOF
echo %version > config/version.txt
rpath="/$(printf %%s '%newmoon_bindir' |tr '[:print:]' '_')"
export LDFLAGS="$LDFLAGS -Wl,-rpath,$rpath"
# for palemoon_rpath-27.0.2.patch
export RPATH_PATH="$rpath"
# %__subst s~'$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)'~'$(MOZ_APP_NAME)$(MOZ_APP_VERSION)'~g ./platform/config/baseconfig.mk
%__subst s~'"Moonchild Productions"'~'"Moonchild_Productions"'~g ./platform/build/application.ini
%__subst s~'"Pale Moon"'~'"Pale_Moon"'~g ./platform/build/application.ini
cp -f %SOURCE4 .mozconfig
echo "mk_add_options MOZ_OBJDIR=obj-%_arch" >> .mozconfig
echo "mk_add_options MOZ_MAKE_FLAGS=-j${NPROCS:-4}" >> .mozconfig
# echo "ac_add_options --enable-rpath" >> .mozconfig
## echo "ac_add_options --disable-static" >> .mozconfig
echo "ac_add_options --disable-elf-hack" >> .mozconfig
echo "ac_add_options --enable-alsa --enable-pulseaudio" >> .mozconfig
echo "ac_add_options --enable-raw --enable-ffmpeg" >> .mozconfig
echo "ac_add_options --enable-system-hunspell" >> .mozconfig
echo "ac_add_options --with-pthreads" >> .mozconfig
echo "ac_add_options --x-libraries=%_libdir/X11" >> .mozconfig
echo "ac_add_options --with-nss-prefix=%_libdir/nss" >> .mozconfig
%ifarch %ix86
echo "ac_add_options --with-arch=i586" >> .mozconfig
echo 'ac_add_options --enable-optimize=" -march=i586 -msse2 -mfpmath=sse"' >> .mozconfig
%endif
%ifarch x86_64
echo "ac_add_options --with-arch=x86-64" >> .mozconfig
echo 'ac_add_options --enable-optimize=" -march=x86-64 -msse2 -mfpmath=sse"' >> .mozconfig
%endif
%build
cd %sname
%add_optflags %optflags_shared
%add_findprov_lib_path %newmoon_datadir
export MOZ_BUILD_APP=%sname
# Mozilla builds with -Wall with exception of a few warnings which show up
# everywhere in the code; so, don't override that.
#
# Disable C++ exceptions since Mozilla code is not exception-safe
#
MOZ_OPT_FLAGS=$(echo $RPM_OPT_FLAGS | \
sed -e 's/-Wall//' -e 's/-fexceptions/-fno-exceptions/g')
export CFLAGS="$MOZ_OPT_FLAGS"
export CXXFLAGS="$MOZ_OPT_FLAGS -Wno-error=format-overflow -Wmaybe-uninitialized -Wreorder -D_GNUC_"
# Add fake RPATH
rpath="/$(printf %%s '%newmoon_bindir' |tr '[:print:]' '_')"
export LDFLAGS="$LDFLAGS -Wl,-rpath,$rpath"
# for palemoon_rpath-27.0.2.patch
export RPATH_PATH="$rpath"
echo '%newmoon_bindir'
echo "$rpath"
export PREFIX="%prefix"
export LIBDIR="%_libdir"
export LIBIDL_CONFIG=%_bindir/libIDL-config-2
export srcdir="$PWD"
export SHELL=/bin/sh
%__autoconf
MOZ_SMP_FLAGS=-j1
%ifarch %ix86
[ "%__nprocs" -ge 2 ] && MOZ_SMP_FLAGS=-j2
[ "%__nprocs" -ge 4 ] && MOZ_SMP_FLAGS=-j4
%else
MOZ_SMP_FLAGS=-j${NPROCS:-4}
%endif
TOPSRCDIR=$pwd
%make -f client.mk \
MAKENSISU= \
STRIP="/bin/true" \
MOZ_APP_VERSION=%version \
MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" \
mozappdir=%buildroot%newmoon_bindir \
clobber
%make -f client.mk \
MAKENSISU= \
STRIP="/bin/true" \
MOZ_APP_VERSION=%version \
MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" \
mozappdir=%buildroot%newmoon_bindir \
build
gcc %optflags \
-Wall -Wextra \
-DMOZ_PLUGIN_PATH=\"%browser_plugins_path\" \
-DMOZ_PROGRAM=\"%newmoon_bindir/%bname-bin\" \
%SOURCE7 -o %bname
%install
## ? install -D -m644 %SOURCE12 obj-%_arch/dist/bin/browser/defaults/profile/xulstore.json
# нужен только с патчами KDE
# install -D -m644 %SOURCE13 obj-%_arch/dist/bin/defaults/pref/kde.js
cd palemoon
cd obj-%_arch
%makeinstall MOZ_APP_VERSION=%version SHELL=/bin/sh
#makeinstall_std MOZ_APP_VERSION=%version COMSPEC=rpm SHELL=/bin/sh
# MOZILLABUILD SHELL=/bin/sh COMSPEC=rpm
rm -f %buildroot%newmoon_bindir/%bname
mkdir -p \
%buildroot/%mozilla_arch_extdir/%palemoon_cid \
%buildroot/%mozilla_noarch_extdir/%palemoon_cid
cd ..
# icons
for s in 16 32 48; do
install -D -m 644 \
../defaults-newmoon/default$s.png \
%buildroot/%_iconsdir/hicolor/${s}x${s}/apps/%bname.png
done
if [ -f %buildroot/%_bindir/%sname ];then
rm -f %buildroot/%_bindir/%sname
fi
install %bname %buildroot/%_bindir/%bname
mkdir -p -- \
%buildroot/%_rpmmacrosdir
#sed \
# -e 's, at palemoon_version at ,%version,' \
# -e 's, at palemoon_release at ,%release,' \
# rpm-build/rpm.macros.%sname.standalone > %buildroot/%_rpmmacrosdir/%sname
install -D -m 644 rpm-build/rpm.macros.%sname.standalone %buildroot/%_rpmmacrosdir/%sname
pushd %buildroot
# Remove devel files
rm -rf -- \
%buildroot%_libdir/newmoon-devel-%version \
%buildroot%_libdir/newmoon-devel \
%buildroot%_datadir/idl/%bname-%version
# install menu file
install -D -m 644 %SOURCE6 ./%_desktopdir/%bname.desktop
install -d -m 755 %buildroot/%newmoon_bindir/browser/defaults/preferences/
#cat > %buildroot/%newmoon_bindir/browser/defaults/preferences/%sname-l10n.js <<EOF
#pref("intl.locale.matchOS", true);
#pref("general.useragent.locale", "chrome://global/locale/intl.properties");
#pref("extensions.getAddons.cache.enabled", false);
#EOF
cat << EOF >> %buildroot%newmoon_bindir/defaults/pref/prefs.js
user_pref("browser.EULA.override", true);
user_pref("browser.ctrlTab.previews", true);
user_pref("browser.tabs.insertRelatedAfterCurrent", false);
user_pref("browser.tabs.onTop", true);
user_pref("browser.startup.homepage", "file://%_docdir/HTML/index.html");
user_pref("browser.backspace_action", 2);
user_pref("browser.display.use_system_colors", true);
user_pref("browser.download.folderList", 1);
user_pref("browser.link.open_external", 3);
user_pref("app.update.auto", false);
user_pref("app.update.enabled", false);
user_pref("app.update.autoInstallEnabled", false);
user_pref("dom.ipc.plugins.enabled.nswrapper*", false);
user_pref("extensions.autoDisableScopes", 0);
user_pref("extensions.shownSelectionUI", true);
user_pref("network.manage-offline-status", true);
user_pref("browser.urlbar.decodeURLsOnCopy", true);
EOF
install -m 644 %_builddir/palemoon-%version/defaults-newmoon/default48.png %buildroot%newmoon_bindir/browser/chrome/icons/default/PMaboutDialog48.png
set -x
# Add alternatives
mkdir -p ./%_altdir
printf '%_bindir/xbrowser\t%_bindir/%bname\t99\n' >./%_altdir/%bname
# Add real RPATH
(set -x
rpath="/$(printf %%s '%newmoon_bindir' |tr '[:print:]' '_')"
find \
%buildroot/%newmoon_bindir \
-type f |
while read f; do
t="$(readlink -ev "$f")"
echo $t
file "$t" | grep -Fqs ELF || continue
if chrpath -l "$t" | grep -Fqs "PATH=$rpath"; then
chrpath -r "%newmoon_bindir" "$t"
echo cmp Ok
else
echo cmp No
chrpath -l "$t"
echo PATH=$rpath
echo
fi
done
)
#install -d %buildroot/%_docdir/%bname-%version/
# Add Doc
install -D -m 644 %SOURCE9 %_builddir/%sname-%version
install -D -m 644 %SOURCE10 %_builddir/%sname-%version
install -D -m 644 %_builddir/palemoon-%version/palemoon/AUTHORS %_builddir/%sname-%version
install -D -m 644 %_builddir/palemoon-%version/palemoon/LICENSE %_builddir/%sname-%version
install -D -m 644 %_builddir/palemoon-%version/palemoon/README.md %_builddir/%sname-%version
%files -n %bname
%dir %newmoon_bindir
%newmoon_bindir/
%_desktopdir/%bname.desktop
%_miconsdir/%bname.png
%_niconsdir/%bname.png
%_liconsdir/%bname.png
%doc AUTHORS LICENSE HISTORY_GIT Changelog README.md
%_altdir/%bname
%_bindir/%bname
%mozilla_arch_extdir/%palemoon_cid
%mozilla_noarch_extdir/%palemoon_cid
%files -n rpm-build-%sname
%_rpmmacrosdir/%sname
%exclude %_includedir/*
%changelog
…
Full changelog you can see here