%define branch_point alt0
%define branch M70P
%define revision 1
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: 26.5.0
Release: %branch_point.%branch.%revision
License: MPL/GPL/LGPL
Group: Networking/WWW
Url: https://github.com/MoonchildProductions/Pale-Moon
Epoch: 2
%define sname palemoon
%define bname newmoon
Packager: Hihin Ruslan <ruslandh@altlinux.ru>
# %%ifarch x86_64
# %%def_enable gst1 // Enable gstreamer 1.0
# %%else
# %%def_disable gst1 // Disable gstreamer 1.0
# %%endif
%def_enable gst1 // Enable gstreamer 1.0
%define palemoon_cid \{8de7fcbb-c55c-4fbe-bfc5-fc555c87dbc4\}
%define palemoon_prefix %_libdir/%bname
%define palemoon_datadir %_datadir/%sname
%define palemoon_arch_extensionsdir %palemoon_prefix/extensions
%define palemoon_noarch_extensionsdir %palemoon_datadir/extensions
Source: %sname-source-%version-%release.tar
Source1: rpm-build.tar
Source2: searchplugins.tar
Source4: %sname-mozconfig
Source6: %bname.desktop
Source7: firefox.c
Source8: firefox-prefs.js
Source9: HISTORY_GIT
Source10: Changelog
Patch5: firefox-duckduckgo.patch
Patch6: firefox3-alt-disable-werror.patch
#Patch14: firefox-fix-install.patch
Patch16: firefox-cross-desktop.patch
#Patch17: mozilla-disable-installer.patch
Patch18: mozilla_palimoon-bug-1153109-enable-stdcxx-compat.patch
Patch20: mozilla_palimoon-bug-1025605-GLIBCXX-26.0.0.patch
Patch21: cpp_check.patch
Patch23: palemoon_version-26.4.0.1.patch
Patch25: palemoon-26.5.0-ui_picker_false.patch
BuildRequires(pre): mozilla-common-devel
BuildRequires(pre): browser-plugins-npapi-devel
# BEGIN SourceDeps(oneline):
BuildRequires: libssl-devel perl-devel python-devel texinfo libpixman-devel
# END SourceDeps(oneline)
# Automatically added by buildreq on Mon May 02 2016
# optimized out: alternatives fontconfig fontconfig-devel glib2-devel gstreamer1.0-devel libGL-devel libICE-devel libSM-devel libX11-devel libXext-devel libXrender-devel libatk-devel libcairo-devel libfreetype-devel libgdk-pixbuf libgdk-pixbuf-devel libgio-devel libgst-plugins1.0 libpango-devel libstdc++-devel libwayland-client libwayland-server pkg-config python-base python-devel python-module-BeautifulSoup python-module-Crypto python-module-PyStemmer python-module-Pygments python-module-Scientific python-module-babel python-module-beaker python-module-cffi python-module-chardet python-module-cliff python-module-cmd2 python-module-contextlib2 python-module-cryptography python-module-django1.1 python-module-dns python-module-docutils python-module-ecdsa python-module-enum34 python-module-ferari python-module-fiat python-module-fixtures python-module-genshi python-module-greenlet python-module-instant python-module-jinja2 python-module-keystoneclient python-module-mako python-module-mimeparse python-module-mpmath python-module-ndg python-module-ndg-httpsclient python-module-netaddr python-module-nose python-module-nss python-module-ntlm python-module-numpy python-module-oslo.concurrency python-module-oslo.config python-module-oslo.log python-module-oslo.middleware python-module-oslo.service python-module-paste python-module-pbr python-module-protobuf python-module-psycopg2 python-module-pyasn1 python-module-pycparser python-module-pyglet python-module-pyparsing python-module-pypdf python-module-pytest python-module-pytz python-module-repoze python-module-repoze.lru python-module-scipy python-module-serial python-module-snowballstemmer python-module-sphinx python-module-stevedore python-module-sympy python-module-twisted-core python-module-ufl python-module-unittest2 python-module-wrapt python-module-yaml python-module-zope python-module-zope.interface python-modules python-modules-compiler python-modules-curses python-modules-email python-modules-encodings python-modules-json python-modules-logging python-modules-multiprocessing python-modules-wsgiref xorg-kbproto-devel xorg-renderproto-devel xorg-scrnsaverproto-devel xorg-xextproto-devel xorg-xproto-devel
BuildRequires: doxygen gcc-c++ imake libXScrnSaver-devel libXt-devel libalsa-devel libgtk+2-devel libpulseaudio-devel libvpx-devel
BuildRequires: python-module-Cython0.20.1 python-module-ffc python-module-libcf python-module-neutronclient python-modules-json python-module-oslo-messaging
BuildRequires: python-module-persistent python-module-pygobject3 python-module-pysnmp4 python-module-sidl python-module-sidlx python-module-wx2.9
BuildPreReq: unzip xorg-cf-files yasm zip
BuildPreReq: bzlib-devel fontconfig-devel gcc-c++-common glib2-devel libSM-devel libX11-devel libXcomposite-devel libXext-devel libcairo-devel libdbus-devel libdbus-glib-devel libevent-devel libffi-devel libfreetype-devel
BuildPreReq: libgio-devel libgnomeui-devel graphite2-devel libgtk+3-devel libhunspell-devel libjpeg-devel libnspr libpango-devel libpixman-devel libpng-devel libproxy-devel libqt4-devel libreadline-devel
BuildPreReq: libsqlite3-devel libssl-devel libstartup-notification-devel libunwind-devel libwebp-devel libwine-devel
BuildPreReq: chrpath
BuildPreReq: autoconf_2.13
%set_autoconf_version 2.13
%if_enabled gst1
BuildRequires(pre): gst-plugins1.0-devel
%else
BuildRequires(pre): gst-plugins-devel
%endif
%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 <= 26.2.2
Provides: palemoon = %version-%release
Conflicts: palemoon < %version-%release
%if_enabled gst1
Requires: libgstreamer1.0 gst-libav
Requires: gst-plugins-base1.0
%else
Requires: libgstreamer gst-ffmpeg
Requires: gst-plugins-base gst-plugins-good
%endif
# 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
%patch21 -p1
%patch20 -p1
%patch23 -p1
%patch25 -p1
cd %sname
%patch6 -p1
%patch16 -p1
%patch18 -p1
tar -xf %SOURCE1
pushd browser/locales/en-US/
tar -xf %SOURCE2
popd
cat >> browser/confvars.sh <<EOF
MOZ_UPDATER=
MOZ_JAVAXPCOM=
MOZ_EXTENSIONS_DEFAULT=' gio'
MOZ_CHROME_FILE_FORMAT=jar
EOF
echo %version > browser/config/version.txt
%__subst s~'$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)'~'$(MOZ_APP_NAME)$(MOZ_APP_VERSION)'~g ./config/baseconfig.mk
#subst s~'Moonchild Productions'~'Moonchild_Productions'~g ./build/application.ini
#subst s~'Pale Moon'~'Pale_Moon'~g ./build/application.ini
%__subst s~'"Moonchild Productions"'~'"Moonchild_Productions"'~g ./build/application.ini
%__subst s~'"Pale Moon"'~'"Pale_Moon"'~g ./build/application.ini
cp -f %SOURCE4 .mozconfig
%ifnarch %ix86 x86_64
echo "ac_add_options --disable-methodjit" >> .mozconfig
echo "ac_add_options --disable-monoic" >> .mozconfig
echo "ac_add_options --disable-polyic" >> .mozconfig
echo "ac_add_options --disable-tracejit" >> .mozconfig
%endif
echo "ac_add_options --disable-static" >> .mozconfig
echo "ac_add_options --enable-media-plugins --disable-elf-hack --enable-media-plugins --enable-media-navigator" >> .mozconfig
echo "ac_add_options --with-system-libvpx --enable-wave --enable-alsa --enable-pulseaudio" >> .mozconfig
# Add Ofiicial Options:
# --enable-shared-js --enable-jemalloc --enable-jemalloc-lib --with-pthreads --x-libraries=/usr/lib/X11
echo "ac_add_options --with-pthreads" >> .mozconfig
echo "ac_add_options --enable-shared-js" >> .mozconfig
echo "ac_add_options --enable-jemalloc --enable-jemalloc-lib" >> .mozconfig
echo "ac_add_options --x-libraries=/usr/lib/X11" >> .mozconfig
%ifarch %ix86
echo "ac_add_options --with-arch=i586" >> .mozconfig
echo 'ac_add_options --enable-optimize="-O2 -msse2 -mfpmath=sse" ' >> .mozconfig
%endif
%if_enabled gst1
echo "ac_add_options --enable-gstreamer=1.0" >> .mozconfig
%else
echo "ac_add_options --enable-gstreamer=0.10" >> .mozconfig
%endif
%build
cd %sname
%add_optflags %optflags_shared
%add_findprov_lib_path %palemoon_prefix
export MOZ_BUILD_APP=browser
# 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 -D_GNUC_"
# Add fake RPATH
rpath="/$(printf %%s '%palemoon_prefix' |tr '[:print:]' '_')"
export LDFLAGS="$LDFLAGS -Wl,-rpath,$rpath"
export LDFLAGS="-Wl,-rpath,%palemoon_prefix"
#make -f client.mk build STRIP="/bin/true" MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS"
export PREFIX="%prefix"
export LIBDIR="%_libdir"
export LIBIDL_CONFIG=%_bindir/libIDL-config-2
export srcdir="$PWD"
export SHELL=/bin/sh
%__autoconf
# On x86 architectures, Mozilla can build up to 4 jobs at once in parallel,
# however builds tend to fail on other arches when building in parallel.
MOZ_SMP_FLAGS=-j1
%ifarch %ix86 x86_64
[ "%__nprocs" -ge 2 ] && MOZ_SMP_FLAGS=-j2
[ "%__nprocs" -ge 4 ] && MOZ_SMP_FLAGS=-j4
%endif
make -f client.mk \
MAKENSISU= \
STRIP="/bin/true" \
MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" \
mozappdir=%buildroot/%palemoon_prefix \
clobber
make -f client.mk \
MAKENSISU= \
STRIP="/bin/true" \
MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" \
mozappdir=%buildroot/%palemoon_prefix \
build
# MOZ_APP_VERSION="" \
gcc %optflags \
-Wall -Wextra \
-DMOZ_PLUGIN_PATH=\"%browser_plugins_path\" \
-DMOZ_PROGRAM=\"%palemoon_prefix/%sname-bin\" \
%SOURCE7 -o %sname
%install
cd %sname
mkdir -p \
%buildroot/%mozilla_arch_extdir/%palemoon_cid \
%buildroot/%mozilla_noarch_extdir/%palemoon_cid \
#
pushd objdir
%makeinstall_std MOZ_APP_VERSION=
popd
if [ -f %buildroot/%_bindir/%sname ];then
rm -f %buildroot/%_bindir/%sname
fi
install %sname %buildroot/%_bindir/%sname
#mv -f %buildroot%palemoon_prefix-%version %buildroot%palemoon_prefix
#cp %buildroot/%palemoon_prefix/%name-bin %buildroot%_bindir/%name
# icons
for s in 16 32 48; do
install -D -m 644 \
browser/branding/unofficial/default$s.png \
%buildroot/%_iconsdir/hicolor/${s}x${s}/apps/%bname.png
done
# install rpm-build-%sname
mkdir -p -- \
%buildroot/%_rpmmacrosdir
sed \
-e 's,@palemoon_version@,%version,' \
-e 's,@palemoon_release@,%release,' \
rpm-build/rpm.macros.%sname.standalone > %buildroot/%_rpmmacrosdir/%sname
pushd %buildroot
# Remove devel files
rm -rf -- \
%buildroot%_includedir/%sname-%version \
%buildroot%_datadir/idl/%sname-%version \
%buildroot%_libdir/%sname-devel-%version \
%buildroot%_libdir/%sname-devel- \
install -d %buildroot%palemoon_prefix
mv -f %buildroot/%_libdir/%sname/* %buildroot%palemoon_prefix
mv -f %buildroot%palemoon_prefix/application.ini %buildroot%palemoon_prefix/browser/application.ini
# install altlinux-specific configuration
install -D -m 644 %SOURCE8 %buildroot/%palemoon_prefix/browser/defaults/preferences/all-altlinux.js
cat > %buildroot/%palemoon_prefix/browser/defaults/preferences/%sname-l10n.js <<EOF
pref("intl.locale.matchOS", true);
pref("general.useragent.locale", "chrome://global/locale/intl.properties");
EOF
# install menu file
install -D -m 644 %SOURCE6 ./%_desktopdir/%bname.desktop
# Add alternatives
mkdir -p ./%_altdir
printf '%_bindir/xbrowser\t%_bindir/%bname\t100\n' >./%_altdir/%bname
rm -f -- \
./%palemoon_prefix/%bname \
./%palemoon_prefix/removed-files
# Add real RPATH
(set +x
rpath="/$(printf %%s '%palemoon_prefix' |tr '[:print:]' '_')"
find \
%buildroot/%palemoon_prefix \
-type f |
while read f; do
t="$(readlink -ev "$f")"
file "$t" | fgrep -qs ELF || continue
if chrpath -l "$t" | fgrep -qs "RPATH=$rpath"; then
chrpath -r "%palemoon_prefix" "$t"
fi
done
)
popd
# Add Docdir
install -D -m 644 %SOURCE9 ../
install -D -m 644 %SOURCE10 ../
install -D -m 644 AUTHORS ../
install -D -m 644 LICENSE ../
%pre
for n in defaults browserconfig.properties; do
[ ! -L "%palemoon_prefix/$n" ] || rm -f "%palemoon_prefix/$n"
done
%files -n %bname
%doc AUTHORS LICENSE HISTORY_GIT Changelog
%_altdir/%bname
%_bindir/%sname
%dir %palemoon_prefix
%palemoon_prefix/*
%mozilla_arch_extdir/%palemoon_cid
%mozilla_noarch_extdir/%palemoon_cid
%_desktopdir/%bname.desktop
%_miconsdir/%bname.png
%_niconsdir/%bname.png
%_liconsdir/%bname.png
%files -n rpm-build-%sname
%_rpmmacrosdir/%sname
%exclude %_includedir/*
%exclude %_datadir/idl/*
%changelog
* Sat Oct 08 2016 Hihin Ruslan <ruslandh@altlinux.ru> 2:26.5.0-alt0.M70P.1
- Backport to branch p7
* Mon Oct 03 2016 Hihin Ruslan <ruslandh@altlinux.ru> 2:26.5.0-alt1
- Version 26.5.0 Release
* Tue Sep 13 2016 Hihin Ruslan <ruslandh@altlinux.ru> 2:26.4.1-alt0.M70P.1
- Backport to branch p7
* Mon Sep 12 2016 Hihin Ruslan <ruslandh@altlinux.ru> 2:26.4.1-alt1
- Version 26.4.1 Release
* Sun Aug 28 2016 Hihin Ruslan <ruslandh@altlinux.ru> 2:26.4.0.1-alt0.M70P.1
- Backport to branch p7
* Sun Aug 28 2016 Hihin Ruslan <ruslandh@altlinux.ru> 2:26.4.0.1-alt1
- Version 26.4.0.1 (2016-08-23) - Linux only
* Thu Aug 18 2016 Hihin Ruslan <ruslandh@altlinux.ru> 2:26.4.0-alt0.M70P.1
- Backport to branch p7
* Wed Aug 17 2016 Hihin Ruslan <ruslandh@altlinux.ru> 2:26.4.0-alt2.1
- Update Changelog
* Wed Aug 17 2016 Hihin Ruslan <ruslandh@altlinux.ru> 2:26.4.0-alt2.0
- Version 26.4.0 Release
* Sat Aug 06 2016 Hihin Ruslan <ruslandh@altlinux.ru> 2:26.4.0-alt0.M70T.1.1fd9
- Update from Git
* Mon Jul 04 2016 Hihin Ruslan <ruslandh@altlinux.ru> 2:26.3.3-alt0.M70P.1
- Version 26.3.3 Release
* Mon May 09 2016 Hihin Ruslan <ruslandh@altlinux.ru> 2:26.2.2-alt0.M70P.1
- Version 26.2.2 Release
* Tue May 03 2016 Hihin Ruslan <ruslandh@altlinux.ru> 2:26.2.1-alt0.M70P.1.3
- add Docdir
- Correct Buildreq
* Mon Apr 11 2016 Hihin Ruslan <ruslandh@altlinux.ru> 2:26.2.1-alt0.M70P.1.2
- New Branding - New Moon
* Sat Apr 09 2016 Hihin Ruslan <ruslandh@altlinux.ru> 2:26.2.1-alt0.M70P.1.1
- Version 26.2.1 Release
* Wed Apr 06 2016 Hihin Ruslan <ruslandh@altlinux.ru> 2:26.2.0-alt0.M70P.1.1
- Version 26.2 Release
* Sun Mar 06 2016 Hihin Ruslan <ruslandh@altlinux.ru> 2:26.1.1-alt0.M70P.1.1
- Versin 26.1.1
* Sun Feb 21 2016 Hihin Ruslan <ruslandh@altlinux.ru> 2:26.1.0-alt0.M70P.1.5
- Fix media.gstreamer
* Fri Feb 19 2016 Hihin Ruslan <ruslandh@altlinux.ru> 2:26.1.0-alt0.M70P.1.4
- Closes: Bug #31791
- Fix media.gstreamer.enabled
* Sun Feb 14 2016 Hihin Ruslan <ruslandh@altlinux.ru> 2:26.1.0-alt0.M70P.1.1
- Versin 26.1.0
* Sun Feb 07 2016 Hihin Ruslan <ruslandh@altlinux.ru> 2:26.0.3-alt0.M70P.1.1
- Versin 26.0.3
* Fri Feb 05 2016 Hihin Ruslan <ruslandh@altlinux.ru> 2:26.0.2-alt0.M70P.1.1
- New version
* Thu Jan 28 2016 Hihin Ruslan <ruslandh@altlinux.ru> 1:26.0.0r-alt0.M70P.1.1
- New version
* Sun Jan 17 2016 Hihin Ruslan <ruslandh@altlinux.ru> 1:25.8.1-alt0.M70P.1.2
- Versin 25.8.1
* Wed Dec 02 2015 Hihin Ruslan <ruslandh@altlinux.ru> 1:25.8.0.0-alt0.M70P.1.3
- Rollback to 25.8.0 to 25.8.0
* Mon Nov 30 2015 Hihin Ruslan <ruslandh@altlinux.ru> 25.8.1.0-alt0.M70P.1.1
- New version
* Thu Nov 26 2015 Hihin Ruslan <ruslandh@altlinux.ru> 25.8.0.0-alt0.M70P.1.2
- add buildreq to libpixman-devel
* Sun Nov 22 2015 Hihin Ruslan <ruslandh@altlinux.ru> 25.8.0.0-alt0.M70P.1.1
- New version
- Add cpp_check.patch
* Thu Oct 15 2015 Hihin Ruslan <ruslandh@altlinux.ru> 25.7.3.0-alt0.M70P.1.1
- New version
* Thu Oct 08 2015 Hihin Ruslan <ruslandh@altlinux.ru> 25.7.2-alt0.M70P.1.1
- New version
* Sun Aug 30 2015 Hihin Ruslan <ruslandh@altlinux.ru> 25.7.0.rel-alt0.M70P.1.1
- New version
* Fri Jul 31 2015 Hihin Ruslan <ruslandh@altlinux.ru> 25.6.0.rel-alt0.M70P.1.1
- New Version
* Wed Jul 15 2015 Hihin Ruslan <ruslandh@altlinux.ru> 25.6.0b3-alt0.M70P.1.1
- New Version
* Mon Jul 13 2015 Hihin Ruslan <ruslandh@altlinux.ru> 25.6.0b2-alt0.M70P.1.0.1
- Backport to branch p7
* Thu Jul 09 2015 Hihin Ruslan <ruslandh@altlinux.ru> 25.6.0b2-alt0.1
- New Version
* Sun Jun 28 2015 Hihin Ruslan <ruslandh@altlinux.ru> 25.5.01-alt0.1
- initial build for ALT Linux Sisyphus