added newmoon build, not good for SBo

This commit is contained in:
shelldweller 2023-04-17 21:40:48 -05:00
parent 8324b7e5d5
commit 1b60c60fb3
7 changed files with 424 additions and 0 deletions

58
newmoon/README Normal file
View File

@ -0,0 +1,58 @@
palemoon (Web browser -- BUILD FROM SOURCE)
This SlackBuild builds Pale Moon from source.
For a binary repackage, see 'palemoon-bin' 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-bin"; which repackages
binaries offically released by the Pale Moon devs.
------------------------------------------------------------------------
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.
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.
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).
jack-audio-connection-kit is an optional dependency and, if detected,
automatically built. If this is undesirable you can blacklist jack, by
passing the variable:
BLACKLIST_JACK=yes ./palemoon.SlackBuild
ALSA=1 will disable pulse audio and build a pure alsa Pale Moon.
GLIB-C-1PATCH=1 is a patch that will enable compiling on newer glibc
(such as is found in Slackware current).
To enable debug information, pass the script the parameter
ENABLE_DEBUG=yes

9
newmoon/doinst.sh Normal file
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,20 @@
--- a/palemoon-31.3.0.1_Release/platform/ipc/chromium/src/third_party/libevent/arc4random.c 2022-09-27 20:12:40.000000000 -0000
+++ b/palemoon-31.3.0.1_Release/platform/ipc/chromium/src/third_party/libevent/arc4random.c 2022-10-03 10:09:16.859171354 -0000
@@ -481,7 +481,8 @@
}
#endif
-#ifndef HAVE_ARC4RANDOM_BUF
+#if defined(_we_have_arc4random_buf) || !defined(XP_SOLARIS)
+#if (__GLIBC__ <= 2 && __GLIBC_MINOR__ < 36) || !defined(XP_LINUX)
ARC4RANDOM_EXPORT void
arc4random_buf(void *_buf, size_t n)
{
@@ -496,6 +497,7 @@
_ARC4_UNLOCK();
}
#endif
+#endif
#ifndef ARC4RANDOM_NOUNIFORM
/*

295
newmoon/palemoon.SlackBuild Executable file
View File

@ -0,0 +1,295 @@
#!/bin/bash
# Slackware build script for Pale Moon
# Copyright 2018,2019,2022 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
## Modified once more by shelldweller@beauxbead.com
## NOTE: This verison of the script is NOT up to SBo standards.
## It syncs with a git repository while running, which is not
## desired behavior as far as SBo maintainers are conerned.
## Works for me though, and it allows me to run the latest version,
## instead of waiting for the official mainainer to figure out the
## details of making it work without a network connection during the
## build process, for some reason that is beyond me.
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=palemoon
VERSION=${VERSION:-32.1.1}
SRCNAM1=${SRCNAM1:-$PRGNAM-${VERSION}_Release}
SRCNAM2=${SRCNAM2:-uxp-RB_20230320}
BUILD=${BUILD:-2}
TAG=${TAG:-_shldwlr}
PKGTYPE=${PKGTYPE:-txz}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
fi
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/blds}
OBJ=${OBJ:-obj-$PRGNAM}
GTK=${GTK:-gtk2}
DOCS="AUTHORS LICENSE README.md SECURITY.md"
ALSA=${ALSA:-0}
# 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"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC -Wno-format-overflow"
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:---disable-official-branding --with-branding=palemoon/branding/unofficial}
#if [ "$BRANDING" = "NewMoon" ]; then
# BRANDING="--disable-official-branding --with-branding=palemoon/branding/unofficial"
#elif [ "$BRANDING" = "unstable" ]; then
# BRANDING="--disable-official-branding --with-branding=palemoon/branding/unstable"
#fi
rm -rf $PKG $TMP/gold $TMP/$OBJ
mkdir -p $TMP $PKG $OUTPUT $TMP/gold $TMP/$OBJ
DEBUG=" --enable-strip --disable-debug --disable-debug-symbols --enable-release"
if [ "${ENABLE_DEBUG:-no}" = "yes" ]; then
DEBUG=" --disable-strip --disable-install-strip --enable-debug --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
#git clone https://repo.palemoon.org/MoonchildProductions/Pale-Moon.git
# rm $SRCNAM1
ln -s Pale-Moon $SRCNAM1
cd $SRCNAM1
git pull
git submodule init && git submodule update
git checkout release && git submodule update
#pwd
#ls -l
#tar -xvzf $CWD/$SRCNAM1.tar.gz --transform s/pale-moon/${SRCNAM1}/
#cd $SRCNAM1
#tar -xvzf $CWD/$SRCNAM2.tar.gz --transform s/${SRCNAM2}/platform/
echo "git cloned, on with patching...."
#patch -p1 < $CWD/basilisk-include-limits.patch
GLIB_C_1PATCH=${GLIB_C_1PATCH:-0}
if [ $GLIB_C_1PATCH = 1 ]; then
patch -p2 < $CWD/glib-c-arc4random.c.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 {} \;
# 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 MOZCONFIG="$TMP/$SRCNAM1/.mozconfig"
export MOZILLA_OFFICIAL=1
export MOZ_MAKE_FLAGS=$MAKEFLAGS
export CFLAGS="$SLKCFLAGS"
export CXXFLAGS="$SLKCFLAGS"
export BUILDING_RELEASE=1
export MOZ_ADDON_SIGNING=
export MOZ_REQUIRE_SIGNING=
export MOZ_TELEMETRY_REPORTING=
export PYTHON=/usr/bin/python2
# A stale DBUS_SESSION_BUS_ADDRESS var can cause build failures
unset DBUS_SESSION_BUS_ADDRESS
# 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="--disable-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} \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--with-default-mozilla-five-home=/usr/lib${LIBDIRSUFFIX}/$PRGNAM-$VERSION \
--x-libraries=/usr/lib${LIBDIRSUFFIX} \
--enable-default-toolkit=cairo-$GTK \
--disable-accessibility \
$DEBUG \
$DEVTOOLS \
--enable-application=$PRGNAM \
--disable-crashreporter \
--disable-updater \
--disable-tests \
--enable-jemalloc \
--with-pthreads"
echo "mk_add_options MOZ_OBJDIR=$TMP/$OBJ" > .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
TAG=${TAG}_alsa
elif [ $ALSA = 1 ]; then
echo "ac_add_options --disable-pulseaudio" >> .mozconfig
TAG=${TAG}_alsa
fi
if pkg-config --exists jack && [ "${BLACKLIST_JACK:-no}" != "yes" ]; then
echo "ac_add_options --enable-jack" >> .mozconfig; fi
./mach build
## Clean up; and package Pale Moon.
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins
cd $TMP/$OBJ
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/UXP
for docs in $DOCS; do
cp $TMP/${SRCNAM1}/$docs $PKG/usr/doc/$PRGNAM-$VERSION/ || true
cp $TMP/${SRCNAM1}/platform/$docs $PKG/usr/doc/$PRGNAM-$VERSION/UXP/ || true
done
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

13
newmoon/palemoon.desktop Normal file
View File

@ -0,0 +1,13 @@
[Desktop Entry]
Version=1.0
Name=New 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

10
newmoon/palemoon.info Normal file
View File

@ -0,0 +1,10 @@
PRGNAM="palemoon"
VERSION="32.1.1"
HOMEPAGE="http://www.palemoon.org/"
DOWNLOAD=""
MD5SUM=""
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="shelldweller"
EMAIL="shelldweller@beauxbead.com"

19
newmoon/slack-desc Normal file
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: