network/palemoon: Added (Web browser -- build from source).

Renamed from 'PaleMoon'.

Signed-off-by: David Spencer <idlemoor@slackbuilds.org>
This commit is contained in:
khronosschoty 2018-06-05 10:38:17 +01:00 committed by David Spencer
parent 57cd3ba00c
commit 1616bf422b
9 changed files with 434 additions and 0 deletions

68
network/palemoon/README Normal file
View file

@ -0,0 +1,68 @@
palemoon (Web browser -- BUILD FROM SOURCE)
This SlackBuild builds Pale Moon from source.
For a binary repackage, see 'palemoon' at SlackBuilds.org.
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.
This SlackBuild attempts to compile, build and package Pale Moon,
Slackware style, in a manner that conforms to official Pale Moon Linux
releases; while, at the same time, providing useful and easy ways to
deviate if desired. This SlackBuild may conflict with the alternative
SlackBuild known, here at SBo, as "palemoon"; which repackages binaries
offically released by the Pale Moon devs.
----------------------------------------------------------------------------
To package this version of Pale Moon for installation along side any other
version of Pale Moon, (such as the before mentioned version known here as
"palemoon") pass the script the parameter:
APPEND_VERSION_SUFFIX=yes
See http://docs.slackware.com/howtos:software:palemoon for additional tips and
help resources.
Using the Oxygen theme is known to cause Pale Moon to crash; if you are
experiencing crashes, and segfaults, make sure you are not using this theme;
or use Alienbob's patched oxygen-gtk2; which will fix this issue.
http://www.slackware.com/~alien/slackbuilds/oxygen-gtk2/build/
See the help doc link above for other creative tips and workarounds.
It is recommended that Pale Moon be compiled with gcc 4.9.4. Compiling Pale
Moon with any other compiler may result in an unstable build. Look for
gcclegacy494 here on SBo.
A native fork of FireFox's developer tools exists as an external add-on or
internally. Pale Moon by default ships with the developer tools internally;
if this is undesirable, dev tools can be disabled by passing the script the
parameter:
DEVTOOLS=no ./palemoon.SlackBuild
Pale Moon's default is to build, ship, and use its own internal dictionary;
if desired, however, do USE_SYSTEM_HUNSPELL=yes ./palemoon.SlackBuild, to
use the Slackware system Hunspell instead. This assumes you have dictionaries
such as hunspell-en or hunspell-es installed in /usr/share/hunspell -- the
location that a few SlackBuilds at SBo install them.
To remove the "AdNauseam" extension from the Pale Moon blocklist, do
ADNAUSEAM=unblock ./palemoon.SlackBuild
To remove the "NoScript" extension from the Pale Moon blocklist, do
NOSCRIPT=unblock ./palemoon.SlackBuild
Note: The most up-to-date version of the NoScript campatible with Pale Moon can
be found here: https://noscript.net/getit#classic
If your processor doesn't support sse2 instructions or you get segfaults,
try looking in the SlackBuild for the OPTIMIZE build option (eventually
refer to the Pale Moon developers for help).
To enable debug information, pass the script the parameter
ENABLE_DEBUG=yes

View file

@ -0,0 +1,16 @@
*** a/browser/app/blocklist.xml 2018-05-19 19:02:40.285091999 -0700
--- b/browser/app/blocklist.xml 2018-05-19 19:32:36.468323646 -0700
***************
*** 2504,2514 ****
</versionRange>
<prefs></prefs>
</emItem>
- <emItem blockID="pm110" id="adnauseam@rednoise.org">
- <versionRange minVersion="0" maxVersion="*" severity="2">
- </versionRange>
- <prefs></prefs>
- </emItem>
<emItem blockID="pm111" id="customtoolbarsplus@srazzano.com">
<versionRange minVersion="0" maxVersion="52.4.2" severity="3">
</versionRange>
--- 2504,2509 ----

View file

@ -0,0 +1,9 @@
if [ -x /usr/bin/update-desktop-database ]; then
/usr/bin/update-desktop-database usr/share/applications >/dev/null 2>&1
fi
if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then
if [ -x /usr/bin/gtk-update-icon-cache ]; then
/usr/bin/gtk-update-icon-cache -f usr/share/icons/hicolor >/dev/null 2>&1
fi
fi

View file

@ -0,0 +1,16 @@
*** a/browser/app/blocklist.xml 2018-06-04 18:09:57.238079553 -0700
--- b/browser/app/blocklist.xml 2018-06-04 18:08:19.325884594 -0700
***************
*** 2514,2524 ****
</versionRange>
<prefs></prefs>
</emItem>
- <emItem blockID="pm112" id="{73a6fe31-595d-460b-a920-fcc0f8843232}">
- <versionRange minVersion="0" maxVersion="*" severity="1">
- </versionRange>
- <prefs></prefs>
- </emItem>
</emItems>
<pluginItems>
<pluginItem blockID="p26">
--- 2514,2519 ----

View file

@ -0,0 +1,281 @@
#!/bin/sh
# Slackware build script for palemoon
# Copyright 2018 Vasily Sora USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Modified by SlackBuilds.org
# Special thanks to Ponce
PRGNAM=palemoon
SRCNAM=${SRCNAM:-Pale-Moon}
VERSION=${VERSION:-27.9.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
# You can try changing the optimization level to simply "-O2" if your processor
# doesn't support sse2 instructions.
# "-Os" might help if you experience segfaults.
OPTIMIZE=${OPTIMIZE:-"-O2 -msse2 -mfpmath=sse"}
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686 -fopenmp"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686 -fopenmp"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC -fopenmp"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
# The default is to build with official branding. This SlackBuild is used to
# produce officially approved third party "contributed builds" of Pale Moon.
# This SlackBuild can also be used to produce unapproved packages -- which
# requires the use of the "new moon", or if applicable, "unstable" branding.
# In general, the "unstable" branding is intended for those building from the
# master trunck of the Pale Moon github repository.
BRANDING=${BRANDING:---enable-official-branding}
if [ "$BRANDING" = "NewMoon" ]; then
BRANDING="--disable-official-branding --with-branding=browser/branding/unofficial"
elif [ "$BRANDING" = "unstable" ]; then
BRANDING="--disable-official-branding --with-branding=browser/branding/unstable"
fi
# Set the compiler that will be used. The ideal compiler for
# PaleMoon is most likely gcc-4.9.4.
#
# If the user has specified a compiler, use that. Other wise
# look to see if gcc-4.9.4 or gcc-4.8.2 and g++-4.9.4 or
# g++-4.8.2 can be found. If nothing else, default to using
# Slackware's stock compiler.
#
# Thank you to Orbea; for suggesting this method.
if command -v gcc-4.9.4 >/dev/null && command -v g++-gcc-4.9.4 >/dev/null; then
CC="${CC:-gcc-4.9.4}" && CXX="${CXX:-g++-gcc-4.9.4}"
elif command -v gcc-4.8.2 >/dev/null && command -v g++-gcc-4.8.2 >/dev/null; then
CC="${CC:-gcc-4.8.2}" && CXX="${CXX:-g++-gcc-4.8.2}"
else
CC="${CC:-gcc}" && CXX="${CXX:-g++}"
fi
export CC="$CC"
export CXX="$CXX"
rm -rf $PKG $TMP/pmbuild $TMP/gold
mkdir -p $TMP $PKG $OUTPUT $TMP/pmbuild $TMP/gold
DEBUG=" --enable-strip --disable-debug --disable-debug-symbols --enable-release"
if [ "${ENABLE_DEBUG:-no}" = "yes" ]; then
DEBUG=" --disable-strip --disable-install-strip --enable-debug-symbols "
# On IA32, use gold since GNU ld runs out of memory linking libxul.so
# when debug is turned on
if [ "$ARCH" = "i586" -o "$ARCH" = "i686" ]; then
echo "#!/bin/bash" >> $TMP/gold/gold
echo "/usr/bin/ld.gold \"\$@\"" >> $TMP/gold/gold
cp $TMP/gold/gold $TMP/gold/ld
chmod +x $TMP/gold/*
PATH="$TMP/gold:$PATH"
export CC="$CC -B$TMP/gold"
export CXX="$CXX -B$TMP/gold"
fi
fi
set -e
# We need to use the incredibly ancient autoconf-2.13 for this :/
# (Taken from Slackware's Firefox build Script)
cd $TMP
rm -rf autoconf-2.13
tar xvf $CWD/autoconf-2.13.tar.xz
cd autoconf-2.13
zcat $CWD/autoconf-2.13-consolidated_fixes-1.patch.gz | patch -p1 --verbose
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
# Build a temporary copy of autoconf-2.13 only to be used to compile
# Pale Moon, since it somewhat inexplicably requires this ancient version:
rm -rf $TMP/autoconf-tmp
mkdir -p $TMP/autoconf-tmp
# This will be at the beginning of the $PATH, so protect against nonsense
# happening in $TMP:
chmod 700 $TMP/autoconf-tmp
rm -rf $TMP/autoconf-tmp/*
mkdir -p $TMP/autoconf-tmp/usr
./configure \
--prefix=$TMP/autoconf-tmp/usr \
--program-suffix=-2.13 \
--infodir=$TMP/autoconf-tmp/usr/info \
--mandir=$TMP/autoconf-tmp/usr/man \
--build=$ARCH-slackware-linux
make || make -j1
make install
PATH=$TMP/autoconf-tmp/usr/bin:$PATH
# Build Pale Moon
cd $TMP
rm -rf $SRCNAM-${VERSION}_Release
tar xvf $CWD/$SRCNAM-${VERSION}_Release.tar.gz
cd $SRCNAM-${VERSION}_Release
if [ "${ADNAUSEAM:-block}" = "unblock" ]; then
patch -p1 < $CWD/adNauseam-unblock.patch
fi
if [ ${NOSCRIPT:-block} = "unblock" ]; then
patch -p1 < $CWD/noscript-unblock.patch
fi
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
# Crude hack so that /usr/lib/mozilla/plugins points to
# /usr/lib64/mozilla/plugins on 64 bit systems
if [ "$LIBDIRSUFFIX" = "64" ]; then
sed -i 's:/usr/lib/mozilla/plugins:/usr/lib64/mozilla/plugins:g' \
xpcom/io/nsAppFileLocationProvider.cpp
fi
# Without LANG=C, building the Python environment may fail with:
# "UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 36: ordinal not in range(128)"
export LANG=C
export MOZBUILD_STATE_PATH="$TMP/$SRCNAM-${VERSION}_Release/moz.build"
export MOZCONFIG="$TMP/$SRCNAM-${VERSION}_Release/.mozconfig"
export MOZILLA_OFFICIAL=1
export MOZ_MAKE_FLAGS=$MAKEFLAGS
export CFLAGS="$SLKCFLAGS"
export CXXFLAGS="$SLKCFLAGS"
export PYTHON=/usr/bin/python2
# Dev tools are enabled by default in the official binaries, so we should do the same here;
# passing DEVTOOLS=no to the script, however, will disable them.
if [ "$DEVTOOLS" = "no" ]; then
DEVTOOLS=""
else
DEVTOOLS="--enable-devtools"
fi
# Please see https://www.palemoon.org/redist.shtml for restrictions when using the official branding.
# Our building options, in a configure-like display ;)
OPTIONS="\
${BRANDING} \
--enable-application=browser \
--enable-default-toolkit=cairo-gtk2 \
--disable-installer \
--disable-updater \
--disable-tests \
--disable-mochitests \
--enable-jemalloc \
--with-pthreads \
--enable-shared-js \
$DEVTOOLS \
$DEBUG \
--x-libraries=/usr/lib${LIBDIRSUFFIX} \
--with-default-mozilla-five-home=/usr/lib${LIBDIRSUFFIX}/$PRGNAM-$VERSION \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man"
echo "mk_add_options MOZ_CO_PROJECT=browser" >> .mozconfig
echo "mk_add_options MOZ_OBJDIR=$TMP/pmbuild" >> .mozconfig
# Write in the .mozconfig the options above
for option in $OPTIONS; do echo "ac_add_options $option" >> .mozconfig; done
echo "ac_add_options --enable-optimize=\"$OPTIMIZE\"" >> .mozconfig
if ! pkg-config --exists libpulse; then
echo "ac_add_options --disable-pulseaudio" >> .mozconfig; fi
python2 mach build
# Clean up; and package Pale Moon.
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins
cd $TMP/pmbuild
make install DESTDIR=$PKG
cd $PKG
# We don't need these (just symlinks anyway):
rm -rf usr/lib${LIBDIRSUFFIX}/$PRGNAM-devel-$VERSION
# Avoid duplicate binaries; details: https://bugzilla.mozilla.org/show_bug.cgi?id=658850
# Pale Moon package scripts appear to attempt this, on other 'distros'; those scripts,
# however, appear to fail on Slackware.
rm -f usr/lib${LIBDIRSUFFIX}/$PRGNAM-$VERSION/$PRGNAM-bin
# Use system provided Hunspell, if desired.
if [ "${USE_SYSTEM_HUNSPELL}" = "yes" ]; then
rm -rfv usr/lib${LIBDIRSUFFIX}/$PRGNAM-$VERSION/dictionaries
cp -vsr /usr/share/hunspell usr/lib${LIBDIRSUFFIX}/$PRGNAM-$VERSION/dictionaries
fi
# Install icons:
for PX in 16 32 48 ; do
mkdir -p $PKG/usr/share/icons/hicolor/${PX}x${PX}/apps
ln -s /usr/lib${LIBDIRSUFFIX}/$PRGNAM-$VERSION/browser/chrome/icons/default/default${PX}.png \
$PKG/usr/share/icons/hicolor/${PX}x${PX}/apps/$PRGNAM.png
done
# ... and the 128px icon file too:
mkdir -p $PKG/usr/share/icons/hicolor/128x128/apps
ln -s /usr/lib${LIBDIRSUFFIX}/$PRGNAM-$VERSION/browser/icons/mozicon128.png \
$PKG/usr/share/icons/hicolor/128x128/apps/$PRGNAM.png
mkdir -p $PKG/usr/share/applications
cat $CWD/palemoon.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a $TMP/$SRCNAM-${VERSION}_Release/LICENSE $TMP/$SRCNAM-${VERSION}_Release/README.md $PKG/usr/doc/$PRGNAM-$VERSION/
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View file

@ -0,0 +1,13 @@
[Desktop Entry]
Version=1.0
Name=Pale Moon Web Browser
Comment=Browse the World Wide Web
Keywords=Internet;WWW;Browser;Web;Explorer
Exec=palemoon %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=palemoon
Categories=Network;WebBrowser
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
StartupNotify=true

View file

@ -0,0 +1,12 @@
PRGNAM="palemoon"
VERSION="27.9.2"
HOMEPAGE="http://www.palemoon.org/"
DOWNLOAD="https://github.com/MoonchildProductions/Pale-Moon/archive/27.9.2_Release/Pale-Moon-27.9.2_Release.tar.gz \
http://ponce.cc/slackware/sources/repo/autoconf-2.13.tar.xz"
MD5SUM="be2197b81fe50e5717ef644f59dd3345 \
f2994d302cf736e7e71974edfa51da3c"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="ffmpeg"
MAINTAINER="khronosschoty"
EMAIL="khronosschoty@posteo.org"

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
palemoon: palemoon (Web browser -- BUILD FROM SOURCE)
palemoon:
palemoon: Pale Moon is an Open Source, Goanna-based web browser available for
palemoon: Microsoft Windows and Linux (with other operating systems in
palemoon: development), focusing on efficiency and ease of use. Make sure to
palemoon: get the most out of your browser!
palemoon:
palemoon: Pale Moon's been built from its own, independently developed source
palemoon: that has been forked off from Firefox/Mozilla code.
palemoon:
palemoon: